diff options
Diffstat (limited to 'config/example-menu.cfg')
-rw-r--r-- | config/example-menu.cfg | 186 |
1 files changed, 52 insertions, 134 deletions
diff --git a/config/example-menu.cfg b/config/example-menu.cfg index 03dff965..ea58abfc 100644 --- a/config/example-menu.cfg +++ b/config/example-menu.cfg @@ -3,153 +3,71 @@ # The snippets in this file may be copied into the main printer.cfg file. # See the "example.cfg" file for description of common config parameters. -# Available menu elements: -# item - purely visual element -# command - same like 'item' but with gcode trigger -# input - same like 'command' but has value changing capabilities -# list - menu element container, with entry and exit gcode triggers -# vsdcard - same as 'list' but will append files from virtual sdcard +# Available options in menu Jinja2 template context: +# Read-only attributes for menu element: +# menu.width - element width (number of display columns) +# menu.ns - element namespace +# menu.event - name of the event that triggered the script +# menu.input - input value, only available in input script context +# List of actions for menu element: +# menu.back(force, update) - will execute menu back command, optional boolean parameters <force> and <update>. +# When <force> is set True then it will also stop editing. Default value is False +# When <update> is set False then parent container items are not updated. Default value is True +# menu.exit(force) - will execute menu exit command, optional boolean parameter <force> default value False +# When <force> is set True then it will also stop editing. Default value is False -#[menu item1] -#type: item -# Type will determine menu item properties and behaviours: +# Common parameters available for all menu config sections. +#[menu some_name] +#type: +# One of command, input, list, text: +# command - basic menu element with various script triggers +# input - same like 'command' but has value changing capabilities. +# Press will start/stop edit mode. +# list - it allows for menu items to be grouped together in a scrollable list. +# Add to the list by creating menu configurations +# using "some_list" as a prefix - for example: [menu some_list some_item_in_the_list] +# vsdlist - same as 'list' but will append files from virtual sdcard (will be removed in the future) #name: -# This is mandatory attribute for every menu element. -# You can use Python output formatting for parameter and transform values. -# Quotes can be used in the beginning and end of name. -#cursor: -# It allows to change cursor character for selected menu element. -# The default is > -# This parameter is optional. -#width: -# This attribute accepts integer value. Element name is cut to this width. -# This parameter is optional. -#scroll: -# This attribute accepts static boolean value. You can use it together with 'width'. -# When this is enabled then names longer than width are scrolled back and forth. -# The default is disabled. This parameter is optional. +# Name of menu item - evaluated as a template. #enable: -# This attribute accepts static boolean values and parameters (converted to boolean). -# It accepts multiple logical expressions. Values separated by comma will return True if all elements are true. -# Values on different lines will return True if any element is true. -# You can use logical negation by using character ! as parameter prefix. -#parameter: -# This attribute accepts float values or special variables. Multiple values are delimited by comma. -# All available parameter variables can be listed by 'MENU DO=dump' gcode, menu itself must be running. -# This value is available for output formatting as {0}..{n} Where n is count of parameters. -#transform: -# This attribute allows to transform parameters value to something else. -# More than one transformation can be added. Each transformation must be on separate line. -# These transformed values are available for output formatting as {n+1}..{x} -# Where n is count of parameters and x is count of transformations. -# In order to transform the value of a particular parameter, you must add -# an parameter index as prefix. Like this "transform: 1.choose('OFF','ON')" -# If the index is not set then the default index 0 is used. -# -# map(fromLow,fromHigh,toLow,toHigh) - interpolate re-maps a parameter value from one range to another. -# Output value type is taken from toHigh. It can be int or float. -# -# choose(e1,e2) - boolean chooser, converts the value of the parameter to the boolean type (0 and 1), -# and selects the corresponding value by the index from the list. -# -# choose(e1,e2,...) - int chooser, converts the value of the parameter to the int type -# and selects the corresponding value by the index from the list. -# -# choose({key:value,..}) - special dictionary chooser, parameter value cast type by first key type. -# Selects the corresponding value by the key from the dictionary. -# -# int(), float(), bool(), str(), abs(), bin(), hex(), oct(), days(), hours(), minutes(), seconds() -# These will convert parameter value to the special form. -# int,float,bool,str,abs,bin,hex and oct are python functions. -# days,hours,minutes,seconds will convert parameter value (it's taken as seconds) to time specific value -# -# scale(xx) - Multiplies parameter value by this xx. Pure interger or float value is excpected. +# Template that evaluates to True or False. +#index: +# Position where an item needs to be inserted in list +# By default the item is added at the end. This parameter is optional. +#[menu some_list] +#type: list +#name: +#enable: -#[menu command1] -#type:command +#[menu some_list some_command] +#type: command #name: -#cursor: -#width: -#scroll: #enable: -#parameter: -#transform: #gcode: -# When menu element is clicked then gcodes on this attribute will be executed. -# Can have multiline gcode script and supports output formatting for parameter and transform values. -#action: -# Special action can be executed. Supports [back, exit] menu commands -# and [respond response_info] command. Respond command will send '// response_info' to host. +# Script to run on button click or long click. Evaluated as a template. -#[menu input1] +#[menu some_list some_input] #type: input #name: -#cursor: -#width: #enable: -#transform: -#parameter: -# Value from parameter (always index 0) is taken as input value when in edit mode. -#gcode: -# This will be triggered in realtime mode, on exit from edit mode -# or in edit mode this will be triggered after click button long press (>0.8sec). -#longpress_gcode: -# In edit mode this will be triggered after click button long press (>0.8sec). -# The default is empty. This parameter is optional. -#reverse: -# This attribute accepts static boolean value. -# When enabled it will reverse increment and decrement directions for input. -# The default is False. This parameter is optional. -#readonly: -# This attribute accepts same logical expression as 'enable'. -# When true then input element is readonly like 'item' and cannot enter to edit mode. -# The default is False. This parameter is optional. -#realtime: -# This attribute accepts static boolean value. -# When enabled it will execute gcode after each value change. -# The default is False. This parameter is optional. +#input: +# Initial value to use when editing - evaluated as a template. +# Result must be float. #input_min: -# It accepts integer or float value. Will set minimal bound for edit value. -# The default is 2.2250738585072014e-308. This parameter is optional. +# Minimum value of range - evaluated as a template. +# Default -99999. #input_max: -# It accepts integer or float value. Will set maximal bound for edit value. -# The default is 1.7976931348623157e+308. This parameter is optional. +# Maximum value of range - evaluated as a template. +# Default 99999. #input_step: -# This is mandatory attribute for input. -# It accepts positive integer or float value. Will determine increment -# and decrement steps for edit value. -#input_step2: -# This is optional attribute for input. -# It accepts positive integer or float value. Will determine fast rate -# increment and decrement steps for edit value. -# The default is 0 (input_step will be used instead) - -#[menu list1] -#type:list or vsdcard -#name: -#cursor: -#width: -#scroll: -#enable: -#enter_gcode: -# Will trigger gcode script when entering to this menu container. -# This parameter is optional. -#leave_gcode: -# Will trigger gcode script when leaving from this menu container. -# This parameter is optional. -#show_back: -# This attribute accepts static boolean value. -# Show back [..] as first element. -# The default is True. This parameter is optional. -#show_title: +# Editing step - Must be a positive integer or float value. +# It has internal fast rate step. When (input_max - input_min) / input_step > 100 +# then fast rate step is 10 * input_step else fast rate step is same input_step +#realtime: # This attribute accepts static boolean value. -# Show container name next to back [..] element. -# The default is True. This parameter is optional. -#items: -# Menu elements listed in this container. -# Each element must be on separate line. -# Elements can be grouped on same line by separating them with comma -# -# When element name stars with . then menu system will add parent -# container config name as prefix to element name (delimited by space) +# When enabled then gcode script is run after each value change. +# The default is False. This parameter is optional. +#gcode: +# Script to run on button click, long click or value change. Evaluated as a template. +# The button click will trigger the edit mode start or end. |