Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- MCNet Mail UI
- Main screen
- ]]--
- ui = ui or {}
- local MainScreen = common.newClass({
- background = colours.white,
- horizontal = false,
- -- Message format for unread mails
- unreadFormat = "%d unread mail(s)",
- _name = "main"
- }, ccgui.Page)
- ui.MainScreen = MainScreen
- function MainScreen:init()
- ccgui.Page.init(self)
- -- Header
- self.header = ccgui.FlowContainer:new{
- horizontal = true,
- background = colours.blue,
- _name = "main.header"
- }
- self.headerTitle = ccgui.TextElement:new{
- align = ccgui.Align.Center,
- foreground = colours.white,
- stretch = true,
- _name = "main.headerTitle"
- }
- self.btnQuit = ccgui.Button:new{
- text = "X",
- align = ccgui.Align.Right,
- padding = ccgui.newMargins(0),
- _name = "main.btnQuit"
- }
- self.btnQuit:on("buttonpress", function()
- self:trigger("quit")
- end)
- self.header:add(self.headerTitle, self.btnQuit)
- -- Header bar
- self.headerBar = ccgui.FlowContainer:new{
- horizontal = true,
- background = colours.lightGrey,
- _name = "main.headerBar"
- }
- self.headerBar.user = ccgui.TextElement:new{
- align = ccgui.Align.Left,
- foreground = colours.white,
- _name = "main.headerBar.user"
- }
- self.headerBar.unread = ccgui.TextElement:new{
- align = ccgui.Align.Right,
- foreground = colours.white,
- stretch = true,
- _name = "main.headerBar.unread"
- }
- self.headerBar:add(self.headerBar.user, self.headerBar.unread)
- -- Tabs
- self.tabs = ccgui.TabContainer:new{
- horizontal = false,
- stretch = true,
- tabSpacing = 1,
- _name = "main.tabs"
- }
- self:add(self.header, self.headerBar, self.tabs)
- self:setTitle(self.title)
- self:setUnread(0)
- end
- function MainScreen:setTitle(title)
- assert(type(title) == "string", "invalid title")
- self.headerTitle:setText(self.title)
- end
- function MainScreen:setAddress(address)
- if type(address) == "table" then
- return self:setAddress(mcnet.address.format(address))
- end
- assert(type(address) == "string", "invalid address")
- self.headerBar.user:setText(address)
- end
- function MainScreen:setUnread(unread)
- unread = tonumber(unread)
- local unreadText = string.format(self.unreadFormat, unread)
- self.headerBar.unread:setText(unreadText)
- end
- function MainScreen:addTab(...)
- return self.tabs:addTab(...)
- end
- function MainScreen:setCurrentTab(...)
- return self.tabs:setCurrentTab(...)
- end
Advertisement
Add Comment
Please, Sign In to add comment