Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: image/svg+xml Edouard@3625: Edouard@3628: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Switch widget Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Togglebutton Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Button Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: PushButton Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Notes: - Widget roles are described in objects labels.- Press Ctrl+O to open object properties panel- To see objects in a tree, select Object->Objects in menu- Inkscape's "objects" are SVG elements- Press Ctrl+X to edit SVG elements directly with XML editor Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Page (inkscape) Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: final position in page Edouard@3625: offset positionfor "B" Edouard@3625: offset positionfor "C" Edouard@3625: HMI:Switch@... (group) |-. "A" (group) | |- reference (rect) | |- ... |-. "B" (group) | |- frame (rect) | |- ... |-. "C" (group) | |- frame (rect) | |- ... Edouard@3625: Some widgets like Switch or Button are displaying one of many groups that represent the possible states of the widget. Since all groups need to appear in the same place, they overlap and the drawing becomes hard to understand and maintain.Using specially labelled "reference" and "frame" rectangles, groups can be spread out. Theses rectangles can be used in widget or anywhere in the drawing, and do not appear in final result. Edouard@3625: reference Edouard@3625: frame Edouard@3625: frame Edouard@3628: Button widgets Edouard@3628: HMI:Switch@... (group) |- reference (rect) |-. "A" (group) | |- ... |-. "B" (group) | |- frame (rect) | |- ... |-. "C" (group) | |- frame (rect) | |- ... Edouard@3628: or Edouard@3628: Edouard@3628: Edouard@3628: simple Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: with widgets Edouard@3628: Edouard@3628: Edouard@3628: user choice : %s Edouard@3628: Edouard@3628: Edouard@3628: selected dialog : %s Edouard@3628: Edouard@3628: Switch and Assign widgets can be used together to simulate behavior modal dialog or "popup" with user feedback."selection" and "userChoice" local HMI are used to respectivelyselect dialog to be shown and store user choice.Here, "reference" and "frame" rectangles are necessary toto spread out dialogs and page, otherwise overlapping. Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: A SIMPLE MODAL DIALOG Edouard@3628: Edouard@3628: Edouard@3628: OK Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Cancel Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: X Edouard@3628: Edouard@3628: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: A MODAL DIALOGwith widgets Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: 0 Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: 1 Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: 2 Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: 3 Edouard@3625: Edouard@3625: 0 Edouard@3625: position Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: X Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: :dialog="None" Edouard@3628: :return="Applied" Edouard@3628: :plcvar=uservar Edouard@3628: @dialog=selection Edouard@3628: @return=userChoice Edouard@3628: @uservar=.position Edouard@3628: @plcvar=/PLCHMIVAR Edouard@3628: Edouard@3628: Apply Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: In this example, 3 types of button ar connected to the sameHMI local variable. Here, "reference" and "frame" rectangles are used toseparate active and inactive state of buttons Edouard@3628: A Edouard@3628: B Edouard@3628: C Edouard@3628: Edouard@3628: Edouard@3628: Page (final result) Edouard@3628: Edouard@3628: Edouard@3628: A Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: B Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: C Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Home Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Swith Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Edouard@3628: Buttons Edouard@3625: Edouard@3625: Edouard@3625: Edouard@3628: Edouard@3628: declaration of "position" HMI local variable Edouard@3628: Edouard@3628: Edouard@3628: declaration of 'selection' local variable Edouard@3628: Edouard@3628: Edouard@3628: declaration of 'userChoice' local variable Edouard@3628: Edouard@3628: Edouard@3628: declaration of "range" HMI local variable Edouard@3628: Edouard@3628: Edouard@3628: declaration of "size" HMI local variable Edouard@3628: Edouard@3628: Edouard@3628: declaration of "position" HMI local variable Edouard@3628: Edouard@3625: Edouard@3625: