Menu Model#
- class ignis.menu_model.IgnisMenuModel(*args: IgnisMenuItem | IgnisMenuModel | IgnisMenuSeparator, label: str | None = None)#
A helper class that provides a convenient way to construct a
Gio.Menu
.- Parameters:
*args (
IgnisMenuItem
|IgnisMenuModel
|IgnisMenuSeparator
) -- Items to add.label (
str
|None
, default:None
) -- The label of the submenu. Only works if this model passed as an item of the parent model. Must be provided only as a keyword argument.
from ignis.menu_model import IgnisMenuModel, IgnisMenuItem, IgnisMenuSeparator model = IgnisMenuModel( IgnisMenuItem( label="Item 1", on_activate=lambda x: print("item 1 activated!"), ), IgnisMenuItem( label="This is disabled item", enabled=False, on_activate=lambda x: print( "you will not see this message in terminal hehehehehe" ), ), IgnisMenuModel( *( # unpacking because items must be passed as *args IgnisMenuItem( label=str(i), on_activate=lambda x, i=i: print(f"Clicked on item {i}!"), ) for i in range(10) ), label="Submenu", # pass label as keyword argument ), ) # Access built Gio.Menu print(model.gmenu)
- gproperty items: list[IgnisMenuItem | IgnisMenuModel | IgnisMenuSeparator]#
read-write
A list of items.
- gproperty gmenu: Gio.Menu | None#
read-only
The Gio.Menu built from the contents of
items
, orNone
if no items are present.
- class ignis.menu_model.IgnisMenuItem(label: str, enabled: bool = True, on_activate: Callable | None = None)#
A menu item.
- Parameters:
- class ignis.menu_model.IgnisMenuSeparator#
A simple object representing a menu separator.