
Command packages up the diplay name, icon, execution, and undo support for a user command. You can create a command two ways:
If the command supports undo, then you must create a a subclass and override undo.
Commands are often used to centralize control of multiple widgets. For example if a Command is associated with both a menu item and a toolbar button, then disabling the command will disable both the menu item and toolbar button.
Slots
- enabled
-
Bool enabled := true
The enable state of the command automatically controls the enabled state of all the registered widgets.
- icon
-
Image icon
Icon of the command or null. Typically a 16x16.
- invoke
-
virtual Void invoke(Event event)
Invoke the command. If the user event is known then is passed, otherwise it might be null.
- make
-
new make(Str name := null, Image icon := null, |Event| onInvoke := null)
Construct a command with the specified onInvoke function. If onInvoke is not specified, then the invoke method must be overridden to execute the command.
- name
-
Str name
Name of the command.
- onInvoke
-
|Event| onInvoke
The function to invoke when the command is executed. If null, then invoke must be overridden.
- redo
-
virtual Void redo()
This method is invoked when the command invoked as a redo. It is not called on the first invocation. Default calls invoke with a null event.
- register
-
Register a widget with this command. This is done automatically by the widget. You only need to call this method if you are developing a custom widget.
-
private Widget[] registry := Widget[,]
- undo
-
virtual Void undo()
This method is invoked to undo the command. This method is only used if undoable returns true.
- undoable
-
virtual Bool undoable()
Return if the command can be undone. Default implementation returns true is the undo method has been overridden.
- unregister
-
Unregister a widget with this command. This is done automatically by the widget. You only need to call this method if you are developing a custom widget.
- widgets
-
Widget[] widgets()
Get the associated widgets with this command. Widgets are automatically associated with their command field is set.