Skip to content

PixelUI.MsgBox

Extends: PixelUI.Dialog

Properties

NameTypeDescription
autoClosebooleanWhether the dialog should close automatically after a button press
buttonAlign"left"|"center"|"right"Horizontal alignment of the button row

Methods

new

lua
new()

setMessage

lua
setMessage()

getMessage

lua
getMessage()

setOnResult

lua
setOnResult()

_createButtonEntry

lua
_createButtonEntry()

setButtons

lua
setButtons()

_handleButtonSelection

lua
_handleButtonSelection()

setButtonAlign

lua
setButtonAlign()

setAutoClose

lua
setAutoClose()

setButtonGap

lua
setButtonGap()

_updateLayout

lua
_updateLayout()

setSize

lua
setSize()

setBorder

lua
setBorder()

setTitleBar

lua
setTitleBar()

Examples

Basic
lua
local pixelui = require("pixelui")
local app = pixelui.app()

-- Simple message box
local msgbox = app:msgbox({
    x = 10, y = 5,
    width = 30, height = 8,
    title = "Info",
    message = "Operation completed!"
})

app.root:addChild(msgbox)

app:run()
Advanced
lua
local pixelui = require("pixelui")
local app = pixelui.app()

-- Message box with custom buttons and callbacks
local msgbox = app:msgbox({
    x = 10, y = 5,
    width = 35, height = 10,
    title = "Confirm Action",
    message = "Do you want to save changes before closing?",
    autoClose = true,
    buttonAlign = "center",
    buttons = {
        {
            id = "save",
            label = "Save",
            bg = colors.green,
            fg = colors.white,
            onSelect = function(self, id, button)
                -- Save logic here
            end
        },
        {
            id = "discard",
            label = "Discard",
            bg = colors.red,
            fg = colors.white
        },
        {
            id = "cancel",
            label = "Cancel",
            autoClose = false,  -- Don't close on this button
            onSelect = function(self, id, button)
                -- Stay open
            end
        }
    }
})

app.root:addChild(msgbox)

app:run()

Released under the MIT License.