doc/svghmi/pages.rst
changeset 3925 1d383b4c0a23
child 3929 1a0bed0b4f1c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/svghmi/pages.rst	Wed Apr 03 13:02:50 2024 +0200
@@ -0,0 +1,96 @@
+Pages, Jumps and HMI_NODE relativity
+====================================
+
+Pages are full screen. Only one page is displayed at the same time.
+
+Page change is triggered by ``HMI:Jump`` and ``HMI:Back``, or by changing ``/CURRENTPAGE_N``.
+
+.. code-block:: text
+
+    HMI:Page:PageName[@RootPath]
+    HMI:Jump:PageName[@RelativePath]
+    HMI:Back
+
+Absolute and relative pages
+---------------------------
+
+When ``[@RootPath]`` is given, page is relative.
+
+When using ``HMI:Jump`` to reach a relative page, a compatible
+``[@RelativePath]`` may be provided.
+
+To be compatible, ``RootPath`` and ``RelativePath`` must both point to
+HMI tree nodes of type ``HMI_NODE`` instanciated from same POU.
+
+Every widget using a path descendant of ``RootPath`` in a relative
+page is relative. Relative widgets get the ``RootPath`` section of
+their path replaced by ``RelativePath``.
+
+Relative page label::
+
+    HMI:Page:PageName
+
+Absolute page label::
+
+    HMI:Page:PageName@RootPath
+
+.. image:: svghmi_relative.svg
+
+
+Jump and Back
+-------------
+
+
+``HMI:Jump`` can have ``inactive``, ``active`` and ``disabled`` labeled children:
+
+    * ``inactive`` is shown when target page is not currently displayed
+    * ``active`` is shown when target page is currently displayed
+    * ``disabled`` is shown when relative page's RootPath is set to 0, disabling jump.
+
+Relative page label::
+
+    HMI:Jump:PageName[@RelativePath]
+
+Absolute page label::
+
+    HMI:Jump:PageName
+
+
+``HMI:Back`` takes no parameter and just go back one step in page change history.
+
+
+Special ``/CURRENTPAGE_N`` variable
+-----------------------------------
+
+..
+    TODO
+
+
+Overlapping geometry
+--------------------
+
+If widget's bounding box is included in page bounding box, then widget is part of page.
+
+..
+    TODO
+
+
+References frames
+-----------------
+
+References frames help to unclutter page and widgets.
+
+..
+    TODO
+
+Screensaver
+-----------
+
+..
+    TODO
+
+Fading
+------
+
+..
+    TODO