diff --git a/0.1/ObjectRef/BitMap/index.html b/0.1/ObjectRef/BitMap/index.html index 56d49a2..1ef00e6 100755 --- a/0.1/ObjectRef/BitMap/index.html +++ b/0.1/ObjectRef/BitMap/index.html @@ -1347,7 +1347,7 @@
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
Known limitations of the Edit implementation:
There is limited support for FieldType, but Numeric and Date should work.
diff --git a/0.1/ObjectRef/Ellipse/index.html b/0.1/ObjectRef/Ellipse/index.html index 44b83bc..09b401a 100755 --- a/0.1/ObjectRef/Ellipse/index.html +++ b/0.1/ObjectRef/Ellipse/index.html @@ -1359,7 +1359,7 @@NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
Known limitations of the Form implementation:
Coord defaults to Pixel, Size to 400 600 and Posn to 100 100
diff --git a/0.1/ObjectRef/Grid/index.html b/0.1/ObjectRef/Grid/index.html index c072591..dcbf5da 100755 --- a/0.1/ObjectRef/Grid/index.html +++ b/0.1/ObjectRef/Grid/index.html @@ -1401,7 +1401,7 @@NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
NB: External links are to the complete ⎕WC
documentation
NB: Links above are to the complete ⎕WC
documentation
EWC stands for \"Everywhere Window Create\". EWC is a cross-platform implementation of the \u2395WC
family of system functions (\u2395WC, \u2395WS, \u2395WG, \u2395WN, \u2395NQ and \u2395DQ
) that are available in Dyalog APL for Microsoft Windows.
EWC only supports a subset of the functionality provided by \u2395WC
. This subset is growing, driven by the requirements of early adopters. The supported subset is documented in the object reference.
Note
At this time, EWC is work in progress, and not supported via normal channels. A supported release of EWC is expected in mid-2025.
EWC can run in \"Desktop\" mode using an HTMLRenderer. In this mode, EWC supports multiple forms in the same way as \u2395WC
, creating one HTMLRenderer for each form.
Alternatively, EWC can be initialised in \"Browser\" mode, in which case it starts a listener on the configured port (22322 by default), and a Browser must be connected to that port. In this mode, it really only makes sense to have a single form, although modeal MsgBox's can be popped up if required.
Finally, there is an experimental \"Multi\" mode, intended to support multi-user applications. In this mode, EWC must also be used via browsers. For each connection, the application namespace is cloned. If the application namespace is called demo
, then clones will be named demo_1
, demo_2
etc. This allows each session to have separate state.
The browser-based modes can be used on any Dyalog-supported platform, desktop mode is restricted to the platforms where the HTMLRenderer is available - currently Linux, MacOS and Windows.
"},{"location":"#getting-started","title":"Getting Started","text":"Check out the installation instructions, the section on initialisation, or the implementation details.
If you are not familiar with \u2395WC
, you may want to start with the standard Dyalog documentation for this feature. The documentation for EWC
only discusses differences between the original Win32 based implementation (\u2395WC
) and the emulation (EWC
).
Note
During prototyping, the project has been known as JSWC, or \"JavaScript WC\". Both the code and the documentation for EWC still contain references to JSWC. Until the transition is complete, JSWC should be read as EWC anywhere that it occurs.
"},{"location":"Discussion/Differences/","title":"EWC
versus \u2395WC
","text":"Most importantly, EWC
only supports a subset of the objects supported by \u2395WC
- and for each of the supported classes, only a subset of the features of the class.
If you use an unsupported property, EWC will output a warning message to the log and continue, in the hope that your application will work in a degraded mode. The warning message identifies the line of application code that used the unsupported feature. For example:
59:15.169 W: *** Warning: at Make[16] wMakeSubForm[8] - Unsupported on button: FCol BCol Accelerator
You can decide to ignore the warning, work around it, or request support for the missing feature from Dyalog. For more information, see the documentation of supported classes.
"},{"location":"Discussion/Differences/#validation-and-error-messages","title":"Validation and Error Messages","text":"Property validation and error messages are not as reliable as \u2395WC
and \u2395WS
. If you provide incorrect property values, the results can be unpredictable: the property may simply be ignored, in the worst case the form will be blanked out due to the creation of invalid HTML.
\u2395DQ
","text":"This is supported, but considered experimental. The implementation uses a Timer object called _EWC.EWCTIMER within the application namespace.
"},{"location":"Discussion/Differences/#images-and-imagelists","title":"Images and ImageLists","text":"Images are handled differently - all images must be made available as image files that can be loaded by a web browser. See Images for details.
"},{"location":"Discussion/Differences/#temporary-limitations","title":"Temporary Limitations","text":"The following restrictions are temporary and will be relaxed before the first supported release:
Coord must be (and defaults to) \"Pixel\"
Setting properties must be done using \u2395WC and \u2395WS, assignment is not supported.
Up-to-date property values must be retrieved using \u2395WG. Although a namespace is created for each EWC object, and there are variables in these spaces that correspond to the properties of GUI objects, these values are not kept up-to-date when the user manipulates the GUI.
In EWC all images are defined using images files, which can be in any format supported by web browsers.
The ImageList object has a property \"Files\", which contains a list of the file names that define the ImageList. It is not possible to populate an ImageList by creating child icons and bitmap objects, as in \u2395WC
.
The location of your images must be declared by setting the variable EWC.RESOURCES before calling EWC.Init, fo example:
EWC.RESOURCES\u21901 2\u2374'images' '/tmp/myapp/images'
This creates a virtual folder /images/
that can be referred to when creating ImageLists and other objects created from image files.
See the [Configuration] for more details.
"},{"location":"Discussion/TechDetails/","title":"Implementation","text":"A detailed discussion of the implementation will appear here.
"},{"location":"ObjectRef/ApexChart/","title":"ApexChart","text":"The EWC implementation of ApexChart supports:
Properties ChartType Options Series Event Posn Size Events click legendclick"},{"location":"ObjectRef/BitMap/","title":"BitMap","text":"The EWC implementation of \u2395WC
class BitMap has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Button has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Circle has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
EWC has some degree of support for the following \u2395WC
classes:
\u2395WC
Classes BitMap Grid Menu SubForm Button Group MenuBar TabButton Circle Icon MenuItem TabControl Combo Image MsgBox Text Edit ImageList Poly Timer Ellipse Label Rect TreeView Font List Scroll Form ListView Splitter EWC adds the following classes not supported by \u2395WC
:
See EWC.Doc.Details 'classname' for more details
"},{"location":"ObjectRef/Combo/","title":"Combo","text":"The EWC implementation of \u2395WC
class Combo has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Edit has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
Known limitations of the Edit implementation:
There is limited support for FieldType, but Numeric and Date should work.
"},{"location":"ObjectRef/Ellipse/","title":"Ellipse","text":"The EWC implementation of \u2395WC
class Ellipse has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Font has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Form has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
Known limitations of the Form implementation:
Coord defaults to Pixel, Size to 400 600 and Posn to 100 100
"},{"location":"ObjectRef/Grid/","title":"Grid","text":"The EWC implementation of \u2395WC
class Grid has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Group has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Icon has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Image has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class ImageList has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Label has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class List has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class ListView has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Menu has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class MenuBar has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class MenuItem has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class MsgBox has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Poly has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Rect has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of Ribbon supports:
Properties BCol FCol Size Visible Data ImageListObj TitleBCol"},{"location":"ObjectRef/RibbonButton/","title":"RibbonButton","text":"The EWC implementation of RibbonButton supports:
Properties Border Data Icon ImageListObj Caption Event ImageIndex Size Events Select"},{"location":"ObjectRef/RibbonButtonGroup/","title":"RibbonButtonGroup","text":"The EWC implementation of RibbonButtonGroup supports:
Properties Border Data Icons ImageListObj Captions Event ImageIndex Events Select"},{"location":"ObjectRef/RibbonGroup/","title":"RibbonGroup","text":"The EWC implementation of RibbonGroup supports:
Properties BorderCol Data Size Title"},{"location":"ObjectRef/RibbonGroupItem/","title":"RibbonGroupItem","text":"The EWC implementation of RibbonGroupItem supports:
Properties Data Size"},{"location":"ObjectRef/Scroll/","title":"Scroll","text":"The EWC implementation of \u2395WC
class Scroll has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Splitter has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class SubForm has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class TabButton has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class TabControl has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Text has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Timer has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class TreeView has some degree of support for:
NB: External links are to the complete \u2395WC
documentation
The EWC
namespace contains a number of variables that can be used to configure the system.
Sets the port number to be used by the server. Defaults to 22322.
"},{"location":"Usage/Configuration/#resources","title":"RESOURCES","text":"Sets up virtual folders that contain images and other resources that your application might refer to. This is a 2-column matric containing pairs of virtual folder names and real folders containing resource files. For example:
EWC.RESOURCES\u21901 2\u2374'images' '/tmp/myapp/images'
This creates a virtual folder /images/
that can be referred to when creating ImageLists and other objects created from image files.
You can define as many resources as you like, one per row.
"},{"location":"Usage/Configuration/#logmodes","title":"LOGMODES","text":"This variable allows you to control the log messages that are output to the session while running EWC. At this stage in the development of EWC, all messages are output for diagnostic purposes. By default, all message types are output (EWC.LOGMODES\u2190\u2395A
). At the time that this text was written, the following modes existed:
An up-to-date list can be found in the function EWC.Log
.
If you set this to 1, EWC will call ShowDevTools 1
on each HTMLRenderer that it creates.
If you want to override EWC's efforts to locate a folder where the JavaScript client code resides, you can set this variable to point to a specific folder. This is only useful if you are either a developer or on the bleeding edge of client development, and need to switch between versions of the client.
If this variable is not set, EWC will first look for a sibling folder called EWC-client
in case you have a checkout of the JavaScript code in that location, and if that does not exist use the client in the /client/dist
folder within the EWC folder.
Once you have a folder on your machine containing EWC, you can load it into a Dyalog APL session (18.2 or later is required):
]link.import # /path/to/ewc
Where /path/to/ewc
is the name of the folder that you created during installation.
The function EWC.Init takes a right argument of the mode that you want to enable:
For example:
EWC.Init 'Desktop'
EWC.Init
will also create cover-functions eWC
, eWS
and so on, in the namespace from which Init was called. These are intended to be used as replacements for the system functions \u2395WC
, \u2395WS
, etc.
If you would like to use a different prefix letter for these functions, you can provide a left argument to change the names. For example,
'x' EWC.Init 'Browser'
Will create functions xWC
, xWS
etc, and start EWC in Browser mode.
In Desktop and Browser mode, your application can call EWC.Init and then immediately continue to create GUI components using eWC
. In browser mode, EWC.Init will not return until a browser is connected.
However, in Multi mode, your application namespace must contain a function called Init
which will be called when each new browser session starts, to create the GUI for the new session.
EWC is developed as an open-sourcen GitHub repository. To download the code, you can either install Git and clone the repository using the following command:
git clone https://github.com/dyalog/ewc.git
Alternatively, you can just download a zip file containing all the code.
"},{"location":"Usage/Installation/#verify-installation","title":"Verify Installation","text":"The simplest way to verify installtion is to run the demo application:
]link.create # /path/to/ewc
demo.Run ''
This will pop up a form with a Dyalog logo and a dropdown on the right which allows you to select a variety of simple test applications that have been used to test EWC during development.
Alternatively, after linking ewc, you can create a form as follows:
EWC.Init 'Desktop'
'F1' eWC 'Form' 'Hello World' (10 10) (400 600)
This should create an HTMLRenderer window with the caption \"Hello World\". For more information on getting started, see initialisation.
"},{"location":"Usage/Installation/#ewc-development","title":"EWC Development","text":"If you are developing EWC, or you are working with EWC developers and need to quickly pick up changes to the JavaScript client, it may be a good idea to clone the client code separately. In order for EWC to automatically find this code, it must be located in a folder called ewc-client, in the same folder as EWC itself.
You can achieve this using:
git clone https://github.com/dyalog/ewc-client.git
EWC stands for \"Everywhere Window Create\". EWC is a cross-platform implementation of the \u2395WC
family of system functions (\u2395WC, \u2395WS, \u2395WG, \u2395WN, \u2395NQ and \u2395DQ
) that are available in Dyalog APL for Microsoft Windows.
EWC only supports a subset of the functionality provided by \u2395WC
. This subset is growing, driven by the requirements of early adopters. The supported subset is documented in the object reference.
Note
At this time, EWC is work in progress, and not supported via normal channels. A supported release of EWC is expected in mid-2025.
EWC can run in \"Desktop\" mode using an HTMLRenderer. In this mode, EWC supports multiple forms in the same way as \u2395WC
, creating one HTMLRenderer for each form.
Alternatively, EWC can be initialised in \"Browser\" mode, in which case it starts a listener on the configured port (22322 by default), and a Browser must be connected to that port. In this mode, it really only makes sense to have a single form, although modeal MsgBox's can be popped up if required.
Finally, there is an experimental \"Multi\" mode, intended to support multi-user applications. In this mode, EWC must also be used via browsers. For each connection, the application namespace is cloned. If the application namespace is called demo
, then clones will be named demo_1
, demo_2
etc. This allows each session to have separate state.
The browser-based modes can be used on any Dyalog-supported platform, desktop mode is restricted to the platforms where the HTMLRenderer is available - currently Linux, MacOS and Windows.
"},{"location":"#getting-started","title":"Getting Started","text":"Check out the installation instructions, the section on initialisation, or the implementation details.
If you are not familiar with \u2395WC
, you may want to start with the standard Dyalog documentation for this feature. The documentation for EWC
only discusses differences between the original Win32 based implementation (\u2395WC
) and the emulation (EWC
).
Note
During prototyping, the project has been known as JSWC, or \"JavaScript WC\". Both the code and the documentation for EWC still contain references to JSWC. Until the transition is complete, JSWC should be read as EWC anywhere that it occurs.
"},{"location":"Discussion/Differences/","title":"EWC
versus \u2395WC
","text":"Most importantly, EWC
only supports a subset of the objects supported by \u2395WC
- and for each of the supported classes, only a subset of the features of the class.
If you use an unsupported property, EWC will output a warning message to the log and continue, in the hope that your application will work in a degraded mode. The warning message identifies the line of application code that used the unsupported feature. For example:
59:15.169 W: *** Warning: at Make[16] wMakeSubForm[8] - Unsupported on button: FCol BCol Accelerator
You can decide to ignore the warning, work around it, or request support for the missing feature from Dyalog. For more information, see the documentation of supported classes.
"},{"location":"Discussion/Differences/#validation-and-error-messages","title":"Validation and Error Messages","text":"Property validation and error messages are not as reliable as \u2395WC
and \u2395WS
. If you provide incorrect property values, the results can be unpredictable: the property may simply be ignored, in the worst case the form will be blanked out due to the creation of invalid HTML.
\u2395DQ
","text":"This is supported, but considered experimental. The implementation uses a Timer object called _EWC.EWCTIMER within the application namespace.
"},{"location":"Discussion/Differences/#images-and-imagelists","title":"Images and ImageLists","text":"Images are handled differently - all images must be made available as image files that can be loaded by a web browser. See Images for details.
"},{"location":"Discussion/Differences/#temporary-limitations","title":"Temporary Limitations","text":"The following restrictions are temporary and will be relaxed before the first supported release:
Coord must be (and defaults to) \"Pixel\"
Setting properties must be done using \u2395WC and \u2395WS, assignment is not supported.
Up-to-date property values must be retrieved using \u2395WG. Although a namespace is created for each EWC object, and there are variables in these spaces that correspond to the properties of GUI objects, these values are not kept up-to-date when the user manipulates the GUI.
In EWC all images are defined using images files, which can be in any format supported by web browsers.
The ImageList object has a property \"Files\", which contains a list of the file names that define the ImageList. It is not possible to populate an ImageList by creating child icons and bitmap objects, as in \u2395WC
.
The location of your images must be declared by setting the variable EWC.RESOURCES before calling EWC.Init, fo example:
EWC.RESOURCES\u21901 2\u2374'images' '/tmp/myapp/images'
This creates a virtual folder /images/
that can be referred to when creating ImageLists and other objects created from image files.
See the [Configuration] for more details.
"},{"location":"Discussion/TechDetails/","title":"Implementation","text":"A detailed discussion of the implementation will appear here.
"},{"location":"ObjectRef/ApexChart/","title":"ApexChart","text":"The EWC implementation of ApexChart supports:
Properties ChartType Options Series Event Posn Size Events click legendclick"},{"location":"ObjectRef/BitMap/","title":"BitMap","text":"The EWC implementation of \u2395WC
class BitMap has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Button has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Circle has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
EWC has some degree of support for the following \u2395WC
classes:
\u2395WC
Classes BitMap Grid Menu SubForm Button Group MenuBar TabButton Circle Icon MenuItem TabControl Combo Image MsgBox Text Edit ImageList Poly Timer Ellipse Label Rect TreeView Font List Scroll Form ListView Splitter EWC adds the following classes not supported by \u2395WC
:
See EWC.Doc.Details 'classname' for more details
"},{"location":"ObjectRef/Combo/","title":"Combo","text":"The EWC implementation of \u2395WC
class Combo has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Edit has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
Known limitations of the Edit implementation:
There is limited support for FieldType, but Numeric and Date should work.
"},{"location":"ObjectRef/Ellipse/","title":"Ellipse","text":"The EWC implementation of \u2395WC
class Ellipse has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Font has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Form has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
Known limitations of the Form implementation:
Coord defaults to Pixel, Size to 400 600 and Posn to 100 100
"},{"location":"ObjectRef/Grid/","title":"Grid","text":"The EWC implementation of \u2395WC
class Grid has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Group has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Icon has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Image has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class ImageList has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Label has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class List has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class ListView has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Menu has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class MenuBar has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class MenuItem has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class MsgBox has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Poly has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Rect has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of Ribbon supports:
Properties BCol FCol Size Visible Data ImageListObj TitleBCol"},{"location":"ObjectRef/RibbonButton/","title":"RibbonButton","text":"The EWC implementation of RibbonButton supports:
Properties Border Data Icon ImageListObj Caption Event ImageIndex Size Events Select"},{"location":"ObjectRef/RibbonButtonGroup/","title":"RibbonButtonGroup","text":"The EWC implementation of RibbonButtonGroup supports:
Properties Border Data Icons ImageListObj Captions Event ImageIndex Events Select"},{"location":"ObjectRef/RibbonGroup/","title":"RibbonGroup","text":"The EWC implementation of RibbonGroup supports:
Properties BorderCol Data Size Title"},{"location":"ObjectRef/RibbonGroupItem/","title":"RibbonGroupItem","text":"The EWC implementation of RibbonGroupItem supports:
Properties Data Size"},{"location":"ObjectRef/Scroll/","title":"Scroll","text":"The EWC implementation of \u2395WC
class Scroll has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Splitter has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class SubForm has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class TabButton has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class TabControl has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Text has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class Timer has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC implementation of \u2395WC
class TreeView has some degree of support for:
NB: Links above are to the complete \u2395WC
documentation
The EWC
namespace contains a number of variables that can be used to configure the system.
Sets the port number to be used by the server. Defaults to 22322.
"},{"location":"Usage/Configuration/#resources","title":"RESOURCES","text":"Sets up virtual folders that contain images and other resources that your application might refer to. This is a 2-column matric containing pairs of virtual folder names and real folders containing resource files. For example:
EWC.RESOURCES\u21901 2\u2374'images' '/tmp/myapp/images'
This creates a virtual folder /images/
that can be referred to when creating ImageLists and other objects created from image files.
You can define as many resources as you like, one per row.
"},{"location":"Usage/Configuration/#logmodes","title":"LOGMODES","text":"This variable allows you to control the log messages that are output to the session while running EWC. At this stage in the development of EWC, all messages are output for diagnostic purposes. By default, all message types are output (EWC.LOGMODES\u2190\u2395A
). At the time that this text was written, the following modes existed:
An up-to-date list can be found in the function EWC.Log
.
If you set this to 1, EWC will call ShowDevTools 1
on each HTMLRenderer that it creates.
If you want to override EWC's efforts to locate a folder where the JavaScript client code resides, you can set this variable to point to a specific folder. This is only useful if you are either a developer or on the bleeding edge of client development, and need to switch between versions of the client.
If this variable is not set, EWC will first look for a sibling folder called EWC-client
in case you have a checkout of the JavaScript code in that location, and if that does not exist use the client in the /client/dist
folder within the EWC folder.
Once you have a folder on your machine containing EWC, you can load it into a Dyalog APL session (18.2 or later is required):
]link.import # /path/to/ewc
Where /path/to/ewc
is the name of the folder that you created during installation.
The function EWC.Init takes a right argument of the mode that you want to enable:
For example:
EWC.Init 'Desktop'
EWC.Init
will also create cover-functions eWC
, eWS
and so on, in the namespace from which Init was called. These are intended to be used as replacements for the system functions \u2395WC
, \u2395WS
, etc.
If you would like to use a different prefix letter for these functions, you can provide a left argument to change the names. For example,
'x' EWC.Init 'Browser'
Will create functions xWC
, xWS
etc, and start EWC in Browser mode.
In Desktop and Browser mode, your application can call EWC.Init and then immediately continue to create GUI components using eWC
. In browser mode, EWC.Init will not return until a browser is connected.
However, in Multi mode, your application namespace must contain a function called Init
which will be called when each new browser session starts, to create the GUI for the new session.
EWC is developed as an open-sourcen GitHub repository. To download the code, you can either install Git and clone the repository using the following command:
git clone https://github.com/dyalog/ewc.git
Alternatively, you can just download a zip file containing all the code.
"},{"location":"Usage/Installation/#verify-installation","title":"Verify Installation","text":"The simplest way to verify installtion is to run the demo application:
]link.create # /path/to/ewc
demo.Run ''
This will pop up a form with a Dyalog logo and a dropdown on the right which allows you to select a variety of simple test applications that have been used to test EWC during development.
Alternatively, after linking ewc, you can create a form as follows:
EWC.Init 'Desktop'
'F1' eWC 'Form' 'Hello World' (10 10) (400 600)
This should create an HTMLRenderer window with the caption \"Hello World\". For more information on getting started, see initialisation.
"},{"location":"Usage/Installation/#ewc-development","title":"EWC Development","text":"If you are developing EWC, or you are working with EWC developers and need to quickly pick up changes to the JavaScript client, it may be a good idea to clone the client code separately. In order for EWC to automatically find this code, it must be located in a folder called ewc-client, in the same folder as EWC itself.
You can achieve this using:
git clone https://github.com/dyalog/ewc-client.git