host.controller_config.tooltips

Shared tooltip strings for the controller config GUI.

Both ActionPanel (sidebar) and ActionEditorTab reference these so that the same field always shows the same help text.

  1"""Shared tooltip strings for the controller config GUI.
  2
  3Both ActionPanel (sidebar) and ActionEditorTab reference these so
  4that the same field always shows the same help text.
  5"""
  6
  7# ---------------------------------------------------------------------------
  8#   Action identity fields
  9# ---------------------------------------------------------------------------
 10
 11TIP_NAME = ("Short action name (no dots). Combined\n"
 12            "with group to form qualified name: group.name")
 13
 14TIP_GROUP = ("Group this action belongs to.\n"
 15             "Type a new name to create a group.")
 16
 17TIP_DESC = ("Human-readable description of\n"
 18            "what this action does on the robot.")
 19
 20TIP_INPUT_TYPE = ("Input type determines available options:\n"
 21                  "  button — digital on/off (incl. D-pad)\n"
 22                  "  analog — continuous value (stick, trigger)\n"
 23                  "  boolean trigger — axis threshold to on/off\n"
 24                  "  output — rumble or LED feedback")
 25
 26# ---------------------------------------------------------------------------
 27#   Trigger mode
 28# ---------------------------------------------------------------------------
 29
 30# Combined tooltip (sidebar uses one combo for both button + analog modes)
 31TIP_TRIGGER = ("Button modes — when the command fires:\n"
 32               "  on_true — runs while input is pressed\n"
 33               "  on_false — runs while input is released\n"
 34               "  while_true — starts on press, ends on release\n"
 35               "  while_false — starts on release, ends on press\n"
 36               "  toggle_on_true — toggles on/off each press\n"
 37               "\n"
 38               "Analog modes — how the input is shaped:\n"
 39               "  raw — no processing, bypasses all shaping\n"
 40               "  scaled — linear output multiplied by scale\n"
 41               "  squared — quadratic curve for fine control\n"
 42               "  spline — custom cubic hermite curve\n"
 43               "  segmented — custom piecewise-linear curve")
 44
 45# Expanded tooltips (action editor has separate panes)
 46TIP_TRIGGER_BUTTON = ("When the button command fires:\n"
 47                      "  on_true — runs while input is pressed\n"
 48                      "  on_false — runs while input is released\n"
 49                      "  while_true — starts on press, ends on release\n"
 50                      "  while_false — starts on release, ends on press\n"
 51                      "  toggle_on_true — toggles on/off each press")
 52
 53TIP_TRIGGER_ANALOG = ("How the analog input value is shaped:\n"
 54                      "  raw — no processing, bypasses all shaping\n"
 55                      "  scaled — linear output multiplied by scale\n"
 56                      "  squared — quadratic curve for fine control\n"
 57                      "  spline — custom cubic hermite curve\n"
 58                      "  segmented — custom piecewise-linear curve")
 59
 60# ---------------------------------------------------------------------------
 61#   Analog shaping fields
 62# ---------------------------------------------------------------------------
 63
 64TIP_DEADBAND = ("Dead zone around center (0.0–1.0).\n"
 65                "Input below this threshold reads as 0.\n"
 66                "Prevents drift from stick center.")
 67
 68TIP_INVERSION = ("Negate the input value.\n"
 69                 "Flips the axis direction.")
 70
 71TIP_SCALE = ("Multiplier applied to the output value.\n"
 72             "Use to limit max speed or amplify input.")
 73
 74TIP_SLEW = ("Max rate of output change per second.\n"
 75            "0 = disabled (no slew limiting).\n"
 76            "Smooths sudden input changes.")
 77
 78TIP_NEG_SLEW = ("Separate slew rate for decreasing values.\n"
 79                "Enables asymmetric acceleration/braking.\n"
 80                "Must be negative or zero.")
 81
 82TIP_THRESHOLD = ("Axis value threshold for boolean conversion.\n"
 83                 "Input above this value reads as True.\n"
 84                 "Range: 0.0 to 1.0 (default 0.5).")
 85
 86# ---------------------------------------------------------------------------
 87#   Curve editor buttons (sidebar)
 88# ---------------------------------------------------------------------------
 89
 90TIP_EDIT_SPLINE = ("Open the visual spline curve editor.\n"
 91                   "Click to add points, right-click to remove.")
 92
 93TIP_EDIT_SEGMENTS = ("Open the piecewise-linear curve editor.\n"
 94                     "Click to add points, right-click to remove.")
 95
 96# ---------------------------------------------------------------------------
 97#   Bindings pane (action editor)
 98# ---------------------------------------------------------------------------
 99
100TIP_ASSIGN_INPUT = ("Select a controller input and click +\n"
101                    "to bind it to this action.")
102
103TIP_ASSIGN_BTN = "Assign selected input to this action"
104
105TIP_BOUND_LIST = ("Currently assigned inputs.\n"
106                  "Double-click to remove a binding.")
107
108TIP_UNASSIGN_BTN = "Remove the selected binding"
109
110# ---------------------------------------------------------------------------
111#   Filter bar (sidebar)
112# ---------------------------------------------------------------------------
113
114TIP_FILTER = ("Filter by name, group, or description.\n"
115              "Wildcards: * = any chars, ? = one char.\n"
116              "e.g. r*n = starts with r ends with n,\n"
117              "*ee* = contains ee. Escape to clear.")
118
119TIP_FILTER_UNASSIGNED = ("Show only actions not assigned\n"
120                         "to any controller input.")
121
122TIP_FILTER_MULTI = ("Show only actions bound to\n"
123                    "more than one input.")
124
125# ---------------------------------------------------------------------------
126#   Virtual Analog fields
127# ---------------------------------------------------------------------------
128
129TIP_VA_BUTTON_MODE = ("How the button drives the ramp:\n"
130                      "  held — ramp while held, return on release\n"
131                      "  toggle — each press toggles active/inactive")
132
133TIP_VA_RAMP_RATE = ("Constant velocity (units/sec) — triangle wave.\n"
134                    "Mutually exclusive with acceleration.\n"
135                    "0 = use acceleration mode (or instant jump).")
136
137TIP_VA_ACCELERATION = ("Rate of velocity change (units/s²) — hyperbolic curve.\n"
138                       "Mutually exclusive with ramp rate.\n"
139                       "0 = use ramp rate mode (or instant jump).")
140
141TIP_VA_TARGET = ("Value to ramp toward when pressed.\n"
142                 "Default: 1.0")
143
144TIP_VA_REST = ("Value to ramp toward when released.\n"
145               "Default: 0.0")
146
147TIP_VA_ZERO_VEL = ("Zero velocity immediately on release.\n"
148                   "Without this, release inherits press velocity.")
149
150TIP_VA_NEG_RAMP = ("Max velocity when ramping back to rest.\n"
151                   "Falls back to ramp rate if not set.")
152
153TIP_VA_NEG_ACCEL = ("Acceleration when ramping back to rest.\n"
154                    "Falls back to acceleration if not set.")
TIP_NAME = 'Short action name (no dots). Combined\nwith group to form qualified name: group.name'
TIP_GROUP = 'Group this action belongs to.\nType a new name to create a group.'
TIP_DESC = 'Human-readable description of\nwhat this action does on the robot.'
TIP_INPUT_TYPE = 'Input type determines available options:\n button — digital on/off (incl. D-pad)\n analog — continuous value (stick, trigger)\n boolean trigger — axis threshold to on/off\n output — rumble or LED feedback'
TIP_TRIGGER = 'Button modes — when the command fires:\n on_true — runs while input is pressed\n on_false — runs while input is released\n while_true — starts on press, ends on release\n while_false — starts on release, ends on press\n toggle_on_true — toggles on/off each press\n\nAnalog modes — how the input is shaped:\n raw — no processing, bypasses all shaping\n scaled — linear output multiplied by scale\n squared — quadratic curve for fine control\n spline — custom cubic hermite curve\n segmented — custom piecewise-linear curve'
TIP_TRIGGER_BUTTON = 'When the button command fires:\n on_true — runs while input is pressed\n on_false — runs while input is released\n while_true — starts on press, ends on release\n while_false — starts on release, ends on press\n toggle_on_true — toggles on/off each press'
TIP_TRIGGER_ANALOG = 'How the analog input value is shaped:\n raw — no processing, bypasses all shaping\n scaled — linear output multiplied by scale\n squared — quadratic curve for fine control\n spline — custom cubic hermite curve\n segmented — custom piecewise-linear curve'
TIP_DEADBAND = 'Dead zone around center (0.0–1.0).\nInput below this threshold reads as 0.\nPrevents drift from stick center.'
TIP_INVERSION = 'Negate the input value.\nFlips the axis direction.'
TIP_SCALE = 'Multiplier applied to the output value.\nUse to limit max speed or amplify input.'
TIP_SLEW = 'Max rate of output change per second.\n0 = disabled (no slew limiting).\nSmooths sudden input changes.'
TIP_NEG_SLEW = 'Separate slew rate for decreasing values.\nEnables asymmetric acceleration/braking.\nMust be negative or zero.'
TIP_THRESHOLD = 'Axis value threshold for boolean conversion.\nInput above this value reads as True.\nRange: 0.0 to 1.0 (default 0.5).'
TIP_EDIT_SPLINE = 'Open the visual spline curve editor.\nClick to add points, right-click to remove.'
TIP_EDIT_SEGMENTS = 'Open the piecewise-linear curve editor.\nClick to add points, right-click to remove.'
TIP_ASSIGN_INPUT = 'Select a controller input and click +\nto bind it to this action.'
TIP_ASSIGN_BTN = 'Assign selected input to this action'
TIP_BOUND_LIST = 'Currently assigned inputs.\nDouble-click to remove a binding.'
TIP_UNASSIGN_BTN = 'Remove the selected binding'
TIP_FILTER = 'Filter by name, group, or description.\nWildcards: * = any chars, ? = one char.\ne.g. r*n = starts with r ends with n,\n*ee* = contains ee. Escape to clear.'
TIP_FILTER_UNASSIGNED = 'Show only actions not assigned\nto any controller input.'
TIP_FILTER_MULTI = 'Show only actions bound to\nmore than one input.'
TIP_VA_BUTTON_MODE = 'How the button drives the ramp:\n held — ramp while held, return on release\n toggle — each press toggles active/inactive'
TIP_VA_RAMP_RATE = 'Constant velocity (units/sec) — triangle wave.\nMutually exclusive with acceleration.\n0 = use acceleration mode (or instant jump).'
TIP_VA_ACCELERATION = 'Rate of velocity change (units/s²) — hyperbolic curve.\nMutually exclusive with ramp rate.\n0 = use ramp rate mode (or instant jump).'
TIP_VA_TARGET = 'Value to ramp toward when pressed.\nDefault: 1.0'
TIP_VA_REST = 'Value to ramp toward when released.\nDefault: 0.0'
TIP_VA_ZERO_VEL = 'Zero velocity immediately on release.\nWithout this, release inherits press velocity.'
TIP_VA_NEG_RAMP = 'Max velocity when ramping back to rest.\nFalls back to ramp rate if not set.'
TIP_VA_NEG_ACCEL = 'Acceleration when ramping back to rest.\nFalls back to acceleration if not set.'