IDE: Fix PLCOpenEditor (wxPython4 menus) and drop broken PDF doc support.
Widget Types
============
HMI:Animate
-----------
HMI:Animaterotation
-------------------
HMI:Assign
----------
HMI:Back
--------
HMI:Button
----------
HMI:Circularbar
---------------
HMI:Circularslider
------------------
HMI:Custom
----------
HMI:Customhtml
--------------
HMI:Display
-----------
HMI:Dropdown
------------
HMI:Foreach
-----------
HMI:Image
---------
| It is an SVG Image element with label
| ``HMI:Image:variable``
| where ``variable`` contains the HTTP GET path to the image it should display.
HMI:Input
---------
HMI:JsonTable
-------------
| It is a SVG (group) element with label
| ``HMI:JsonTable:path@notify_var@range_var@position_var@visible_var@filter_var``
| where:
* ``path`` is HTTP POST path used to fetch JSON list response
* ``range_var`` is a variable containing number of elements in a list
* ``position_var`` is a variable containing index of the first element from the list shown in the table
* ``visible_var`` is a variable with number of elements to be displayed in the table
* ``filter_var`` is a variable containing the string which is posted in a request for JSON response, and it's used to filter the results
| On render request, the widget does a POST request to the path. That request contains all the variables listed above.
| Handler for the request should be written in such manner that it returns a JSON list containing defined number of elements.
| Elements are objects with keys and values defined by a user.
| SVG element itself contains another element group ``data``. All of the elements in that group are also groups, with name ``[i]`` where ``i`` goes from 0 to ``visible_var - 1``. Only the last one is actually created, others are just copy of it.
| Elements from ``data`` can be placed in such manner to depict table rows.
| Elements in ``[i]`` can emulate columns. They can be:
* HMI:TextStyleList (label dictates the style and text content)
* Image (label dictates path to the image)
* Other SVG elements
| Any of the above elements can have label with ``onClick[acknowledge]=var`` which means that on a click on such element, the same POST request is invoked, but among ``options`` posted now there is a variable ``onClick[acknowledge]`` and its value is ``var``
| Beside ``data`` element, there can also be ``action_reset`` group element with similar behavior as stated above: click invokes POST with ``action_reset`` among ``options``.
| If it's needed to display images in a table, and those images should be loaded dynamically, one may use GET handler to load and return appropriate image.
HMI:Jump
--------
HMI:Keypad
----------
HMI:List
--------
HMI:Listswitch
--------------
HMI:Meter
---------
HMI:Multistate
--------------
HMI:Page
--------
HMI:Pathslider
--------------
HMI:Scrollbar
-------------
HMI:Slider
----------
HMI:Switch
----------
HMI:Textlist
------------
HMI:Textstylelist
-----------------
HMI:Tooglebutton
----------------
HMI:Xygraph
-----------