MattiasBuelens

MCMail ui/list

Jul 23rd, 2012
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.04 KB | None | 0 0
  1. --[[
  2.  
  3.     MCNet Mail UI
  4.     List messages pane
  5.  
  6. ]]--
  7.  
  8. ui = ui or {}
  9.  
  10. local ListPane = common.newClass({
  11.     horizontal = true,
  12.     tabSpacing = 1,
  13.     -- Message panes
  14.     paneClass = ui.ReadPane,
  15.     messagePanes = nil
  16. }, ccgui.TabContainer)
  17. ui.ListPane = ListPane
  18.  
  19. function ListPane:init()
  20.     ccgui.TabContainer.init(self)
  21.  
  22.     self.messagePanes = self.messagePanes or {}
  23. end
  24.  
  25. function ListPane:addMessage(message)
  26.     -- Check if message already in list
  27.     if self.messagePanes[message] ~= nil then return false end
  28.  
  29.     -- Add pane
  30.     local pane = self.paneClass:new{
  31.         message = message
  32.     }
  33.     local label = message.from.localPart
  34.     self:addTab(label, pane)
  35.  
  36.     -- Add to list
  37.     self.messagePanes[message] = pane
  38.  
  39.     self:trigger("addMessage", message)
  40.  
  41.     return pane
  42. end
  43.  
  44. function ListPane:removeMessage(message)
  45.     local pane = self.messagePanes[message]
  46.     if pane == nil then return false end
  47.  
  48.     -- Remove pane
  49.     self:removeTab(pane)
  50.  
  51.     -- Remove from list
  52.     self.messagePanes[message] = nil
  53.  
  54.     self:trigger("removeMessage", message)
  55.  
  56.     return true
  57. end
Advertisement
Add Comment
Please, Sign In to add comment