MattiasBuelens

MCMail ui/console

Jul 23rd, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.54 KB | None | 0 0
  1. --[[
  2.  
  3.     MCNet Mail UI
  4.     Console screen
  5.  
  6. ]]--
  7.  
  8. ui = ui or {}
  9.  
  10. local ConsoleScreen = common.newClass({
  11.     background  = colours.black,
  12.     horizontal  = false,
  13.     _name       = "console"
  14. }, ccgui.Page)
  15. ui.ConsoleScreen = ConsoleScreen
  16.  
  17. function ConsoleScreen:init()
  18.     ccgui.Page.init(self)
  19.  
  20.     -- Header
  21.     self.header = ccgui.FlowContainer:new{
  22.         horizontal  = true,
  23.         _name       = "console.header"
  24.     }
  25.     self.headerTitle = ccgui.TextElement:new{
  26.         align       = ccgui.Align.Center,
  27.         stretch     = true,
  28.         foreground  = colours.white,
  29.         background  = colours.blue,
  30.         _name       = "console.headerTitle"
  31.     }
  32.     self.btnQuit = ccgui.Button:new{
  33.         text    = "X",
  34.         align   = ccgui.Align.Right,
  35.         padding = ccgui.newMargins(0),
  36.         _name   = "console.btnQuit"
  37.     }
  38.     self.btnQuit:on("buttonpress", function()
  39.         self:trigger("quit")
  40.     end)
  41.     self.header:add(self.headerTitle, self.btnQuit)
  42.  
  43.     -- Console
  44.     self.console = ccgui.TextElement:new{
  45.         valign      = ccgui.VAlign.Bottom,
  46.         foreground  = colours.white,
  47.         background  = colours.black,
  48.         padding     = ccgui.newMargins(1),
  49.         stretch     = true,
  50.         _name       = "console.console"
  51.     }
  52.  
  53.     self:add(self.header, self.console)
  54.     self:setTitle(self.title)
  55. end
  56.  
  57. function ConsoleScreen:setTitle(title)
  58.     assert(type(title) == "string", "invalid title")
  59.     self.headerTitle:setText(self.title)
  60. end
  61.  
  62. function ConsoleScreen:write(...)
  63.     local newText = self.console.text
  64.     for i,text in ipairs({...}) do
  65.         newText = newText..tostring(text)
  66.     end
  67.     self.console:setText(newText)
  68. end
  69.  
  70. function ConsoleScreen:print(...)
  71.     self:write(...)
  72.     self:write("\n")
  73. end
Advertisement
Add Comment
Please, Sign In to add comment