User Tools

Site Tools


menus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
menus [2017/04/16 21:20]
avon layout changes
menus [2019/03/24 22:24] (current)
g00r00 [MENU SYSTEM]
Line 1: Line 1:
-====== ​Menus ====== +====== ​MENU SYSTEM ======= 
-==== Menu Editor ​====+ 
 +^ Related Categories ​                       ^ 
 +| [[themes|Themes]] ​                        | 
 +| [[menu_commands|Menu Command Reference]] ​ | 
 + 
 +----- 
 +===== ANATOMY OF A MENU =====
  
 The BBS menus are the core of the BBS system. ​ It is where all BBS The BBS menus are the core of the BBS system. ​ It is where all BBS
Line 6: Line 12:
 Mystic BBS supports an unlimited number of defined menus which can Mystic BBS supports an unlimited number of defined menus which can
 be setup in any way, allowing a totally customizable and unique be setup in any way, allowing a totally customizable and unique
-interface to the user.+interface ​for the user. 
 + 
 +Each menu consists of a Settings page where general options are 
 +defined for the menu, along with an command/​options list, where options 
 +that appear on the menu are defined. ​ Each option then has one or more 
 +"menu commands"​ associated ​to it.  These menu commands are executed when 
 +the option is selected by the user.  In order words, a menu option 
 +defines the option that is presented to the user and the menu command(s) 
 +configured inside of the option define what the BBS actually does when 
 +the option is executed. 
 + 
 +Menus can be configured to automatically generate a menu of options for 
 +the user based on the options configured, or the internally generated menu 
 +can be replaced by a display file (in the Settings page). 
 + 
 +There are many more advanced techniques such as automatic execution 
 +of menu options based on specific criteria or time-based intervals,​ 
 +or menu option chaining and branching that will be discussed in their 
 +own sections. 
 + 
 +In addition to the standard type of menu, there are also Lightbar, Grid, 
 +and Prompt menu styles which build off of the standard menu system. ​ These 
 +types of menus will also be covered in more detail in their own sections. 
 + 
 +----- 
 +===== MENU EDITOR OVERVIEW =====
  
 When first entering the menu editor, you will be prompted to select When first entering the menu editor, you will be prompted to select
-which language ​definition you'd like to edit.  It is possible to have +which theme definition you'd like to edit.  It is possible to have 
-different sets of menus for each language!+different sets of menus for each theme!
  
 After you've selected the theme you'd like to edit, you will be After you've selected the theme you'd like to edit, you will be
-shown the main menu selection screen:+shown the main menu selection screen ​below. ​ As with most Mystic menus, if 
 +you wish to search for an item just start typing the text you wish 
 +to search for.
  
 <​code>​ <​code>​
Line 39: Line 72:
  
 === Command List === === Command List ===
-This view will show the list of commands that this menu contains.+ 
 +When a menu is first opened for editing, the default ​view is the list 
 +of options defined in the menu.  This view is presented first because 
 +it is the most widely used, but each menu also has a Settings page as 
 +well that can be accessed from the command list by typing / 
 <​code>​ <​code>​
-█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ​Command ​list (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄+█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ​Options ​list (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
 █ HotKey ​    ​Text ​                                      ID Exe █ █ HotKey ​    ​Text ​                                      ID Exe █
 █ ──────────────────────────────────────────────────────────── █ █ ──────────────────────────────────────────────────────────── █
Line 72: Line 110:
 </​code>​ </​code>​
  
-  * Insert ​  - Insert a new command +  ​* **Insert**   - Insert a new command 
-  * Delete ​  - Delete the highlighted command +  ​* **Delete**   - Delete the highlighted command 
-  * Copy     - Copy the highlighted command +  ​* **Copy**     - Copy the highlighted command 
-  * Paste    - Paste the copied command +  ​* **Paste**    - Paste the copied command 
-  * View     - View the generated menu. +  ​* **View**     - View the generated menu. 
-  * Settings - Adjust the settings of the menu+  ​* **Settings** - Adjust the settings of the menu
  
 === Menu settings === === Menu settings ===
-This menu will allow for the adjustment of many different features of the menu.+The Menu Settings page will allow for the adjustment of many different features of the menu.
  
 <​code>​ <​code>​
Line 102: Line 140:
 </​code>​ </​code>​
  
-  * Description - Set the description of the Menu as seen in the Menu List. +  ​* **Description** - Set the description of the Menu as seen in the Menu List. 
-  * Access ​     - Set the ACS level for the menu + 
-  * Fallback ​   - <​optional>​ Define ​a fallback menu if this menu is not available +  ​* **Access**      - Set the ACS level required ​for the user to access this menu
-  * Menu Type   - Select either Standard, Lightbar, Lightbar/​Grid,​ or Lightbar/​Prompt + 
-  * Input Type  - Select either User Defined, HotKey, or LongKey +  ​* **Fallback**    ​- ​Defines ​a fallback menu which is loaded ​if the user is sent to this menu but does not meet the access requirements. ​ Leaving this value blank will send the user back to the menu they were last on. 
-  * Input Chars - Select ​Uppercase, ​Lowercase or Hidden + 
-  * Use Global ​ - Select whether or not to append the global menu to this menu +  ​* **Menu Type**   - Select either Standard, Lightbar, Lightbar/​Grid,​ or Lightbar/​Prompt 
-  * Node Status - <​optional>​ Text to display in the node status when user is in this menu + 
-  * Display File- The display file to use for this menu.  ​The default location for the file is in the TEXT directory. +  ​* **Input Type**  - Select either User Defined, HotKey, or LongKey 
-  * Display Cols- Select how many columns ​the generated menu will use when displaying ​menu options.  ​The options are 1-9, or H for Hidden. ​ The H option will not display any generated menu options on the screen. + 
-  * Menu Header - <​optional>​ Define ​the header ​for the generated menu.  All MCI codes are available for use. +  ​* **Input Chars** This defines how user input is visually represented on the menu.  If set to Uppercase, ​then the user input will be displayed as uppercase. ​ Lowercased would display as lowercase, and Hidden ​will hide all user input from appearing. 
-  * Menu Prompt - <​optional> ​Defines the prompt to use for the generated ​menu.  All MCI codes are available for use. + 
-  * X,Y - The X and Y positions to park the cursor after the menu has been drawn on the screen. ​ These are only used in the Lightbar-type Menu types.+  ​* **Use Global**  ​- ​Mystic has a "global" ​menu, wherre menu options can be defined that will be loaded into this menu if this option is set to Yes. 
 + 
 +  ​* **Node Status** Sets the text that will be displayed for the user's "status"​. ​ Leaving this option blank will not set the user's status. ​ By default Mystic will set the user status to "​Browsing menus" ​when the user is in menu
 + 
 +  ​* **Display File** When left blank, Mystic will automatically generate a menu based on the configured menu options and the user's access to them.  ​However, a menu can be replaced by defining ​the base filename (the filename without the .asc or .ans extension) to be loaded from the Theme'​s text directory. ​ Note that "​@S"​ can be used in the filename and will be replaced by the user's security level allowing you to create menus specific to different security levels you may wish to use on your BBS. 
 + 
 +  ​* **Display Cols** Sets the number of columns Mystic ​will use to format the menu options ​when generating a menu.  ​Valid options are 1-9, or H for Hidden. ​ The H option will not display any generated menu options on the screen. 
 + 
 +  ​* **Menu Header** Defines ​the header ​to be displayed before ​the list of generated menu commands. ​ If left blank, no menu header will be displayed. ​ When the default generated menu is replaced by "​Display File" then the header will not be displayed.  All MCI codes are available for use in menu headers. 
 + 
 +  ​* **Menu Prompt** - Defines the prompt to  be displayed after the menu is displayed. ​ Setting this to blank will display no prompt. ​ The prompt is always displayed regardless of if the menu is generated by Mystic BBS or replaced by a Display File.  All MCI codes are available for use. 
 + 
 +  ​* **X, Y** - The X and Y positions to park the cursor after the menu has been drawn on the screen. ​ These are only used in the Lightbar-type Menu types.
 === Menu Types === === Menu Types ===
 ^Type^Description^ ^Type^Description^
 |Standard|Uses the standard displayed menu| |Standard|Uses the standard displayed menu|
 |Lightbar|The LightBar High and LightBar Low text can be placed anywhere on the screen| |Lightbar|The LightBar High and LightBar Low text can be placed anywhere on the screen|
-|Lightbar/​Prompt|Searchlight-style. ​ The menu options can be scrolled through at just the prompt location.| +|Lightbar/​Prompt|Searchlight-style. ​ The menu options can be scrolled through at the prompt location ​by using the arrow keys or typing in hotkeys to jump quickly to a selection.| 
-|Lightbar/​Grid|Allow you to define the jumps between menu commands ​based on the key input. ​ It is more complicated to set up but if you wanted to make a more complex interface.  The Up, Down, Left, Right, Home, Escape, Tab, PageUp PageDown and End Fields ​link to the commandin menu.  ​Selecting ​one of those keys will move the lightbar ​to that command.|+|Lightbar/​Grid|Allows ​you to define the jumps between menu options ​based on the user'​s ​input. ​ It is more complicated to set up but allows for more intricate control over how menu input behaves.  The Up, Down, Left, Right, Home, Escape, Tab, PageUpPageDownand End fields can link to command ​ID found in the menu.  ​When the user presses ​one of the keys while the command option is selected, Mystic will jump to the command ID defined for that key.  A series of menu commands can also be defined for each specific key press, and will be executed prior to jumping to the defined ​command ​ID.|
  
-=== Command ​Editor === +=== Option ​Editor === 
-The Command ​Editor is used for editing the individual ​commands.+The Option ​Editor is used for editing the individual ​menu options.
 <​code>​ <​code>​
-█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ​Command ​#20 (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄t+█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ​Option  ​#20 (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
 █ Display Text  │                                                             █ █ Display Text  │                                                             █
 █ LightBar Low  │                                                             █ █ LightBar Low  │                                                             █
Line 144: Line 194:
 </​code>​ </​code>​
  
-  * Display Text - The text that is displayed in the Command List window list+  ​* **Display Text** - The text that is displayed in the Command List window list.
-  * Lightbar Low - The text that is displayed when this lightbar menu option is cold. +
-  * Lightbar High- The text that is displayed when this lightbar menu option is hot. +
-  * Hot Key - The keyboard keys that will activate this command. ​ There are many automatic  +
-  * Access - Define the ACS string for this menu.  Use CTRL-L to see a list of non-keyboard keys that can be used. +
-  * X,Y - The X,Y location for the Lightbar Low and and Lightbar High text +
-  * Timer +
-  * Timer Type +
-  * Redraw - Select whether or not to redraw this command when the menu redraws. +
-  * Up, Down, Left, Right, Home, Escape, Tab, PageUp, PageDn, End - Define which menu command to switch to when one of these keys are used when this command is hightlighted.+
  
-Each command can perform several sub-tasks in a series. +  * **Lightbar Low** The text that is displayed when this lightbar menu option is cold (deselected).
-Select ​(TABto toggle between the command metadata menu and the list of sub-commands for this command.+
  
-=== Sub Command Editor === +  * **Lightbar High** - The text that is displayed when this lightbar menu option is hot (selected). 
-Many sub commands can be stacked in one menu command.  The sub commands will be activated in serial order when the menu command ​is activated. ​ This allows for multiple actions for one menu command.+ 
 +  * **Hot Key** - The key(s) that the user must enter in otder to activate this command. ​ When hotkey input is enabled for a menu, keys with multiple characters can be executed by typing a / before it.  When longkey input is enabled for a menu, the / key is not needed. ​ In other words, if the key is "​RUN"​ then the user would type /RUN on a hotkey menu or just "​RUN"​ on a longkey input menu.  In addition the a typical hotkey, there are some reserved words that can be used here that allow for various auto-execution type of commands or display formatting to be done that are not dependent on user input to execute. ​ Pressing Control+L will open up a reference of these commands. 
 + 
 +  * **Access** - Define the ACS string required for this menu option to be executable by the user 
 + 
 +  * **X, Y** - The X,Y location for the Lightbar Low and and Lightbar High text 
 + 
 +  * **Timer** - Sets the number of seconds to activate the Timer-based execution or 0 to disable a time-based execution of this menu command. 
 + 
 +  * **Timer Type** - Sets the type of time-based execution. ​ When set to "​Interval"​ then the command will be automatically executed after <​Timer>​ number of seconds. ​ When set to "​OnlyOnce"​ the command will be automatically executed one time when the menu is loaded after <​Timer>​ number of seconds. ​ When set to "​PerRedraw"​ then the command will be automatically executed after <​Timer>​ seconds every time the menu is redrawn. 
 + 
 +  * **Redraw** - If set to TRUE the menu will be redrawn after this menu selection is executed. ​ If set to false the menu will not be redrawn after execution. 
 + 
 +  * **Up, Down, Left, Right, Home, Escape, Tab, PageUp, PageDn, End** - These are used only by Grid style menus and each one defines which menu command ID to switch to when the user presses the key with this command highlighted.  
 + This allows very intricate configuration of menu selection behavior at the expense of complexity. 
 + 
 +Each option can perform several sub-tasks in a series when the option is selected and these tasks are defined by creating a menu command or a list of menu commands within the option. ​ Select (TAB) to toggle between the option metadata and the list of menu commands for this menu option. 
 + 
 +=== Menu Command Editor === 
 + 
 +Many menu commands can be defined to be executed by a single ​menu option.  The menu commands will be activated in serial order when the menu option ​is activated. ​ This allows for multiple actions for one menu command. ​ Each menu command can have its own access string requirement which allows for advance techniques such as command branching. 
 + 
 +A list of menu commands can be found in the [[menu_commands|Menu Command Reference]]
  
 <​code>​ <​code>​
Line 172: Line 234:
 </​code>​ </​code>​
  
-  *Command - Select from a picklist ​of available menu commands. +  ​* **Command** - Select from a pick list of available menu commands.  Type to search when window is open
-  *Data - The optional data field to use for menu commands that require more information. +  ​* **Data** - The optional data field to use for menu commands that require more information ​to execute
-  *Access - The ACS string to use for this sub command +  ​* **Access** - The access ​string ​(ACS) that the user must meet in order to execute ​this menu command. 
-  *Execute - Execute the sub command on which grid event.  ​Used only on Lightbar/Grid menus.+  ​* **Execute** - Used only for Grid style menus. ​ This command defines which hotkey the user must have pressed for this menu command to execute. 
 + 
 +----- 
 +===== CREATING STANDARD MENU ===== 
 + 
 +----- 
 +===== CREATING LIGHTBAR MENU ===== 
 + 
 +----- 
 +===== CREATING GRID MENU ===== 
 + 
 +----- 
 +===== CREATING PROMPT MENU ===== 
 + 
 +----- 
 +===== AUTO-EXECUTION ===== 
 + 
 +----- 
 +===== OPTION CHAINING ===== 
 + 
 +----- 
 +===== TIMER EVENTS ===== 
 + 
 +----- 
 +===== COMMAND BRANCHING =====
  
menus.1492392017.txt.gz · Last modified: 2017/04/16 21:20 by avon