Keyboard Mapping Settings (Magic xpa 3.x)
The Keyboard Mapping repository contains the assignments of keystrokes to Magic xpa internal events.
The Studio tab reflects the keyboard mapping defined by the Studio Keyboard mapping definition file.
The Runtime tab reflects the keyboard mapping defined by the Runtime Keyboard mapping definition file.
The Keyboard repository box includes the following columns:
|
|
#
|
The keyboard mapping identifier (#) used in the project. Magic xpa sets this column automatically.
|
Internal Event
|
The Magic xpa internal event name. The insertion point does not park on this column. Internal event names are fixed and are provided by Magic xpa. The same internal event may appear on more than one row, meaning the internal event has multiple key assignments. Pressing any of the keys assigned to the internal event will invoke it.
Magic xpa's internal commands are referred to as Magic xpa internal events or just internal events. A Magic xpa internal event is the lowest level command that Magic xpa can "understand". Every internal event has a well-defined function, which means all user interaction with Magic xpa is translated into internal events that invoke some internal process. For example, the Exit internal event will cause the current process to terminate. Since most user interaction with Magic xpa is done using the computer's keyboard, keystrokes have to invoke internal Magic xpa internal event to achieve results. The Keyboard Mapping repository contains the assignments of keystrokes to Magic xpa internal events.
Magic xpa has a large set of internal events, each of which performs a unique function. Some of these functions are global, and may be performed from anywhere in Magic xpa, while others are context-specific and can only be invoked in context. Since certain functions are context- specific, it is possible to assign the same keyboard sequence to more than one internal event, provided that the internal events are not all invokable in the same context.
|
Key
|
The key assigned to the internal event of the current row. From this column it is also possible to define the key. Select Edit/Zoom or F5 to access the Key Definition dialog box. In the Key Definition dialog box, press the key you want assigned to the internal event and it will register on the screen. The space bar will clear the current value in the Key Definition dialog box. If accepted, the key will be copied to the Key column and assigned to the key.
Note: If the word "Internal" is displayed in the Key column, then no operations are allowed on this internal event. Internal events may not be redefined.
See also How Do I Set an Accelerator for a Menu Entry?
|
States
|
Displays the number of states conditioning the assignments. All states have to be satisfied to invoke the internal event when the key is pressed. From the States column, select Edit/Zoom (F5) to zoom to the Keyboard States window. In this window, define the conditions for the assignment of the key to the internal event. See also States List.
|
You can refine the keystroke/internal event relationship further by adding State qualifications to the assignment of a keystroke to an internal event. Each assignment can have up to 4 State qualifications. These State qualifications are related to the two different editing contexts Magic xpa may be in: Table or Column Edit.
Table is the context of editing rows and columns in a table, or scrolling through a list, or moving between columns in a dialog box.
Column is the context of editing a specific column using the Column Editor.
When editing a table, Table Editor states are in effect. When editing a column, the Column Editor states are in effect. Each of these editing contexts can have several states. A state describes some circumstance arrived at during user interaction. Magic xpa needs to be informed of the various possible circumstances, in order to allow assignment of the same keystroke to two internal events while in the same context.
For example, using the default Keyboard Mapping: While editing a table, the End key is assigned to the End Table internal event, which represents "move to end of table information". The End key is also assigned to the End Screen internal event, which represents "move to last row of table displayed on the screen". Both internal events are active in the same context (Table Editing) and have the same keystroke assignment (End). The ambiguity is resolved by qualifying the assignment of the End key using Magic xpa States. The End Table internal event is qualified by the Tbl:Screen End state, which means it will only be invoked when the End key is pressed and the insertion point is positioned at the last visible row of the table. The End Screen internal event is qualified by the Tbl:Not Screen End state, which means it will only be invoked when the End key is pressed and the insertion point is not positioned at the last visible row of the table. Since the two states are mutually exclusive, Magic xpa has no problem determining which internal event should be invoked. The result of these settings is that the first pressing of the End key will move the insertion point to the last visible row of the table (because the Tbl:Screen End state is turned off), the Tbl:Screen End state is then turned on, and the second pressing of the End key will move the insertion point to the last row of table information (because the Tbl:Screen End state is turned on). Moving the insertion point to the last row of the table may result in scrolling the screen.
In this table it is possible to change, delete or add Internal Event/Keystroke assignments. It is not possible to delete the last keystroke assignment of an internal event. When adding a new row to the table, the internal event is copied from the line preceding it, without the key assignment.
Platform specific: The keyboard mappings are not supported for mobile devices. Therefore, raising a system event that is mapped to an internal event (such as F5 for Zoom) is not supported for mobile. You should raise the internal event directly.