Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- MCNet Mail UI
- Write message pane
- ]]--
- ui = ui or {}
- local WritePane = common.newClass({
- horizontal = false,
- -- Message type
- messageType = "mailMessage",
- -- Fields
- to = "",
- message = "",
- -- Field labels
- toLabel = "To:"
- }, ccgui.FlowContainer)
- ui.WritePane = WritePane
- function WritePane:init()
- ccgui.FlowContainer.init(self)
- -- Styles
- local Button = common.newClass(ccgui.Button)
- -- Header
- self.header = ccgui.FlowContainer:new{
- horizontal = true,
- spacing = 1
- }
- -- Fields
- self.fields = ccgui.FlowContainer:new{
- horizontal = false,
- stretch = true,
- padding = ccgui.newMargins(1, 0)
- }
- local to = ccgui.FlowContainer:new{
- horizontal = true,
- spacing = 1
- }
- self.toLabel = ccgui.TextElement:new{
- text = self.toLabel
- }
- self.toField = ccgui.TextInput:new{
- stretch = true
- }
- -- Buttons
- self.buttons = ccgui.FlowContainer:new{
- horizontal = false,
- padding = ccgui.newMargins(0, 0, 0, 1)
- }
- local send = Button:new{
- text = "Send"
- }
- local clear = Button:new{
- text = "Clear"
- }
- send:on("buttonpress", function(pane)
- pane:trigger("sendMessage")
- end, self)
- clear:on("buttonpress", function(pane)
- pane:trigger("clearMessage")
- end, self)
- -- Message
- self.messageField = ccgui.TextArea:new{
- stretch = true
- }
- -- Set fields
- self:setTo(self.to)
- self:setMessage(self.message)
- -- Add elements
- to:add(self.toLabel, self.toField)
- self.fields:add(to)
- self.buttons:add(send, clear)
- self.header:add(self.fields, self.buttons)
- self:add(self.header, self.messageField)
- -- Bindings
- self:on("clearMessage", self.clearFields, self)
- end
- function WritePane:clearFields()
- self:setTo("")
- self:setMessage("")
- end
- function WritePane:setTo(to)
- self.toField:setText(tostring(to))
- end
- function WritePane:setMessage(message)
- self.messageField:setText(tostring(message))
- end
- function WritePane:focusMessage()
- self.messageField:focus()
- end
- function WritePane:buildMessage()
- return mcnet.message.new{
- type = self.messageType,
- to = self.toField:text(),
- data = self.messageField:text()
- }
- end
Advertisement
Add Comment
Please, Sign In to add comment