edouard@3925: Pages, Jumps and HMI_NODE relativity edouard@3925: ==================================== edouard@3925: edouard@3925: Pages are full screen. Only one page is displayed at the same time. edouard@3925: edouard@3925: Page change is triggered by ``HMI:Jump`` and ``HMI:Back``, or by changing ``/CURRENTPAGE_N``. edouard@3925: edouard@3925: .. code-block:: text edouard@3925: edouard@3925: HMI:Page:PageName[@RootPath] edouard@3925: HMI:Jump:PageName[@RelativePath] edouard@3925: HMI:Back edouard@3925: edouard@3925: Absolute and relative pages edouard@3925: --------------------------- edouard@3925: edouard@3925: When ``[@RootPath]`` is given, page is relative. edouard@3925: edouard@3925: When using ``HMI:Jump`` to reach a relative page, a compatible edouard@3925: ``[@RelativePath]`` may be provided. edouard@3925: edouard@3925: To be compatible, ``RootPath`` and ``RelativePath`` must both point to edouard@3925: HMI tree nodes of type ``HMI_NODE`` instanciated from same POU. edouard@3925: edouard@3925: Every widget using a path descendant of ``RootPath`` in a relative edouard@3925: page is relative. Relative widgets get the ``RootPath`` section of edouard@3925: their path replaced by ``RelativePath``. edouard@3925: edouard@3925: Relative page label:: edouard@3925: edouard@3925: HMI:Page:PageName edouard@3925: edouard@3925: Absolute page label:: edouard@3925: edouard@3925: HMI:Page:PageName@RootPath edouard@3925: edouard@3936: Example:: edouard@3936: edouard@3936: HMI:Page:PumpControl@/PUMP0 edouard@3936: edouard@3925: .. image:: svghmi_relative.svg edouard@3925: edouard@3925: edouard@3936: Jumps edouard@3936: ----- edouard@3925: edouard@3925: edouard@3925: ``HMI:Jump`` can have ``inactive``, ``active`` and ``disabled`` labeled children: edouard@3925: edouard@3925: * ``inactive`` is shown when target page is not currently displayed edouard@3925: * ``active`` is shown when target page is currently displayed edouard@3925: * ``disabled`` is shown when relative page's RootPath is set to 0, disabling jump. edouard@3925: edouard@3925: Relative page label:: edouard@3925: edouard@3936: HMI:Jump:PageName@RelativePath edouard@3925: edouard@3925: Absolute page label:: edouard@3925: edouard@3925: HMI:Jump:PageName edouard@3925: edouard@3936: Example:: edouard@3925: edouard@3936: HMI:Jump:PumpControl@/PUMP7 edouard@3925: edouard@3925: edouard@3936: Back: Jump to previous page edouard@3936: ---------------------------- edouard@3936: edouard@3936: ``HMI:Back`` takes no parameter and goes back one step in page change history when clicked. edouard@3936: edouard@3936: edouard@3936: Special ``/CURRENT_PAGE_n`` variable edouard@3925: ----------------------------------- edouard@3925: edouard@3936: Each SVGHMI instance have its own ``/CURRENT_PAGE_n``, with ``n`` being the position of SVGHMI instance in Configuration Tree. edouard@3936: edouard@3936: By reading ``/CURRENT_PAGE_n`` value, PLC knows last page being displayed in HMI. Variable is of type STRING, and formatted as follows:: edouard@3936: edouard@3936: PageName edouard@3936: edouard@3936: edouard@3936: edouard@3925: .. edouard@3925: TODO edouard@3925: edouard@3925: edouard@3925: Overlapping geometry edouard@3925: -------------------- edouard@3925: edouard@3925: If widget's bounding box is included in page bounding box, then widget is part of page. edouard@3925: edouard@3925: .. edouard@3925: TODO edouard@3925: edouard@3936: Discarded element edouard@3936: ----------------- edouard@3936: edouard@3925: edouard@3925: References frames edouard@3925: ----------------- edouard@3925: edouard@3925: References frames help to unclutter page and widgets. edouard@3925: edouard@3925: .. edouard@3925: TODO edouard@3925: edouard@3925: Screensaver edouard@3925: ----------- edouard@3925: edouard@3925: .. edouard@3925: TODO edouard@3925: edouard@3925: Fading edouard@3925: ------ edouard@3925: edouard@3925: .. edouard@3925: TODO edouard@3929: edouard@3929: Go full screen edouard@3929: -------------- edouard@3929: edouard@3929: .. edouard@3929: TODO