MenuAction
- class pygamelib.gfx.ui.MenuAction(title: Text = None, action=None, parameter=None, padding: int = 1, config: UiConfig = None)
Bases:
object
A menu action is a menu entry that executes a callback when activated. Usually a Menuaction represents an action from the user interface like open file, save, quit, etc.
Therefor a MenuAction is fairly simple, at its simplest it has a title and a callable reference to a function.
An action cannot be used by itself but can be added to a
MenuBar
or aMenu
.Like everything in the UI module, MenuAction are styled through a
UiConfig
object. Unlike the other classes of that module however, the configuration object is not mandatory when instanciating this class. The reason is that theMenuBar
object impose the configuration to its managedMenuAction
andMenu
.- __init__(title: Text = None, action=None, parameter=None, padding: int = 1, config: UiConfig = None) → None
The constructor takes the following parameters.
- Parameters:
title (str |
Text
) – The title of the action (i.e: its label)action (callable) – A reference to a callable function that is going to be executed when the action is activated. If set to None, nothing will happen when the action is activated.
parameter (Any) – A parameter that is passed to the callback action if not None.
padding (int) – The horizontal padding, i.e the number of space characters added to the left and right of the action.
config (
UiConfig
) – The configuration object.
Example
menubar = MenuBar(config=UiConfig.instance()) file_menu = Menu( "File", [ MenuAction("Open", open_file), MenuAction("Save", save_file), MenuAction("Save as", save_file_as), MenuAction("Quit", exit_application), ] ) menubar.add_entry( file_menu ) menubar.add_entry( MenuAction("Help", display_help) ) screen.place(menubar, 0, 0) screen.update()
Methods
__init__
([title, action, parameter, ...])The constructor takes the following parameters.
activate
()Execute and return the result of the callback.
render_to_buffer
(buffer, row, column, ...)Render the object from the display buffer to the frame buffer.
Return the actual width of the action's title.
Attributes
Get / set the action's callback, it needs to be a callable.
Get / set the config of the MenuAction, it needs to be a
UiConfig
.Get / set the padding before and after the menu action, it needs to be an int.
Get / set the selected of the MenuAction, it needs to be a boolean.
Get / set the title of the action, it needs to be a str or a
Text
object.- property action
Get / set the action’s callback, it needs to be a callable.
- activate()
Execute and return the result of the callback.
Example:
file_save_action.activate()
- property padding
Get / set the padding before and after the menu action, it needs to be an int.
- render_to_buffer(buffer, row: int, column: int, buffer_height: int, buffer_width: int) → None
Render the object from the display buffer to the frame buffer.
This method is automatically called by
pygamelib.engine.Screen.render()
.- Parameters:
buffer (numpy.array) – A screen buffer to render the item into.
row (int) – The row to render in.
column (int) – The column to render in.
height (int) – The total height of the display buffer.
width (int) – The total width of the display buffer.
- property selected: bool
Get / set the selected of the MenuAction, it needs to be a boolean.
This changes the representation (way it’s drawn) of the menu entry.
- property title: Text
Get / set the title of the action, it needs to be a str or a
Text
object.The title is used in the
Menu
. In the following image, the title of the first action in the expanded menu is “Open”, followed by “Save”.
- title_width()
Return the actual width of the action’s title. This takes into account the padding.
Example:
menu_action.title_width()