Are you an LLM? You can read better optimized documentation at /api/scripts/extension-modules/core/ui/menubar.md for this page in Markdown format
core.ui.menubar
This module provides a menu bar component for the terminal UI system.
TIP
To use this module, you need to import it first: import("core.ui.menubar")
NOTE
The UI module is primarily used for xmake's internal xmake f --menu menu-based visual configuration. It provides basic UI components that can also be used by users to implement their own terminal UIs.
The menubar module extends panel and provides menu bar display functionality.
menubar:new
- Create a new menu bar instance
Function Prototype
API
lua
menubar:new(name: <string>, bounds: <rect>)Parameter Description
| Parameter | Description |
|---|---|
| name | Required. Menu bar name string |
| bounds | Required. Menu bar bounds rectangle |
Return Value
| Type | Description |
|---|---|
| menubar | Returns a menu bar instance |
Usage
Create a menu bar:
lua
import("core.ui.menubar")
import("core.ui.rect")
local menubar = menubar:new("menubar", rect{1, 1, 80, 1})menubar:title
- Get the title label
Function Prototype
API
lua
menubar:title()Parameter Description
No parameters
Return Value
| Type | Description |
|---|---|
| label | Returns the title label instance |
Usage
Access and customize the title label:
lua
local title = menubar:title()
title:text_set("My Application")
title:textattr_set("red bold")Here is a complete menu bar usage example:
lua
import("core.ui.menubar")
import("core.ui.window")
import("core.ui.rect")
import("core.ui.application")
local demo = application()
function demo:init()
application.init(self, "demo")
self:background_set("blue")
-- Create menu bar
local menubar = menubar:new("menubar", rect{1, 1, self:width() - 1, 1})
menubar:title():text_set("Xmake Demo Application")
menubar:title():textattr_set("red bold")
-- Create main window
local win = window:new("main", rect{1, 2, self:width() - 1, self:height() - 2}, "Main Window")
-- Add to application
self:insert(menubar)
self:insert(win)
self._menubar = menubar
self._win = win
end
function demo:on_resize()
self._menubar:bounds_set(rect{1, 1, self:width() - 1, 1})
self._win:bounds_set(rect{1, 2, self:width() - 1, self:height() - 2})
application.on_resize(self)
end
function main(...)
demo:run(...)
end