diff --git a/0.1/ObjectRef/ApexChart/index.html b/0.1/ObjectRef/ApexChart/index.html index 4f47f66..d6413b4 100755 --- a/0.1/ObjectRef/ApexChart/index.html +++ b/0.1/ObjectRef/ApexChart/index.html @@ -1328,7 +1328,7 @@

ApexChart

-

The EWC implementation of ApexChart supports:

+

The EWC implementation of ApexChart supports:

diff --git a/0.1/ObjectRef/BitMap/index.html b/0.1/ObjectRef/BitMap/index.html index 722a242..89e40f1 100755 --- a/0.1/ObjectRef/BitMap/index.html +++ b/0.1/ObjectRef/BitMap/index.html @@ -1328,7 +1328,7 @@

BitMap

-

The EWC implementation of BitMap has some degree of support for:

+

The EWC implementation of ⎕WC class BitMap has some degree of support for:

diff --git a/0.1/ObjectRef/Button/index.html b/0.1/ObjectRef/Button/index.html index 03d2234..974d970 100755 --- a/0.1/ObjectRef/Button/index.html +++ b/0.1/ObjectRef/Button/index.html @@ -1328,7 +1328,7 @@

Button

-

The EWC implementation of Button has some degree of support for:

+

The EWC implementation of ⎕WC class Button has some degree of support for:

diff --git a/0.1/ObjectRef/Circle/index.html b/0.1/ObjectRef/Circle/index.html index dd3e501..079cf49 100755 --- a/0.1/ObjectRef/Circle/index.html +++ b/0.1/ObjectRef/Circle/index.html @@ -1328,7 +1328,7 @@

Circle

-

The EWC implementation of Circle has some degree of support for:

+

The EWC implementation of ⎕WC class Circle has some degree of support for:

diff --git a/0.1/ObjectRef/Combo/index.html b/0.1/ObjectRef/Combo/index.html index 087f65b..ce8e7f9 100755 --- a/0.1/ObjectRef/Combo/index.html +++ b/0.1/ObjectRef/Combo/index.html @@ -1328,7 +1328,7 @@

Combo

-

The EWC implementation of Combo has some degree of support for:

+

The EWC implementation of ⎕WC class Combo has some degree of support for:

diff --git a/0.1/ObjectRef/Edit/index.html b/0.1/ObjectRef/Edit/index.html index 8fd476f..f72462c 100755 --- a/0.1/ObjectRef/Edit/index.html +++ b/0.1/ObjectRef/Edit/index.html @@ -1328,7 +1328,7 @@

Edit

-

The EWC implementation of Edit has some degree of support for:

+

The EWC implementation of ⎕WC class Edit has some degree of support for:

diff --git a/0.1/ObjectRef/Ellipse/index.html b/0.1/ObjectRef/Ellipse/index.html index 5ba9140..670e764 100755 --- a/0.1/ObjectRef/Ellipse/index.html +++ b/0.1/ObjectRef/Ellipse/index.html @@ -1328,7 +1328,7 @@

Ellipse

-

The EWC implementation of Ellipse has some degree of support for:

+

The EWC implementation of ⎕WC class Ellipse has some degree of support for:

diff --git a/0.1/ObjectRef/Font/index.html b/0.1/ObjectRef/Font/index.html index 7076f52..a15a276 100755 --- a/0.1/ObjectRef/Font/index.html +++ b/0.1/ObjectRef/Font/index.html @@ -1328,7 +1328,7 @@

Font

-

The EWC implementation of Font has some degree of support for:

+

The EWC implementation of ⎕WC class Font has some degree of support for:

diff --git a/0.1/ObjectRef/Form/index.html b/0.1/ObjectRef/Form/index.html index 573a4c4..4972ca5 100755 --- a/0.1/ObjectRef/Form/index.html +++ b/0.1/ObjectRef/Form/index.html @@ -1328,7 +1328,7 @@

Form

-

The EWC implementation of Form has some degree of support for:

+

The EWC implementation of ⎕WC class Form has some degree of support for:

diff --git a/0.1/ObjectRef/Grid/index.html b/0.1/ObjectRef/Grid/index.html index 51a9fcd..9cf2f67 100755 --- a/0.1/ObjectRef/Grid/index.html +++ b/0.1/ObjectRef/Grid/index.html @@ -1328,7 +1328,7 @@

Grid

-

The EWC implementation of Grid has some degree of support for:

+

The EWC implementation of ⎕WC class Grid has some degree of support for:

diff --git a/0.1/ObjectRef/Group/index.html b/0.1/ObjectRef/Group/index.html index 0df5da8..865e031 100755 --- a/0.1/ObjectRef/Group/index.html +++ b/0.1/ObjectRef/Group/index.html @@ -1328,7 +1328,7 @@

Group

-

The EWC implementation of Group has some degree of support for:

+

The EWC implementation of ⎕WC class Group has some degree of support for:

diff --git a/0.1/ObjectRef/Icon/index.html b/0.1/ObjectRef/Icon/index.html index 362e0e4..ea54159 100755 --- a/0.1/ObjectRef/Icon/index.html +++ b/0.1/ObjectRef/Icon/index.html @@ -1328,7 +1328,7 @@

Icon

-

The EWC implementation of Icon has some degree of support for:

+

The EWC implementation of ⎕WC class Icon has some degree of support for:

diff --git a/0.1/ObjectRef/Image/index.html b/0.1/ObjectRef/Image/index.html index e806afd..ae42a97 100755 --- a/0.1/ObjectRef/Image/index.html +++ b/0.1/ObjectRef/Image/index.html @@ -1328,7 +1328,7 @@

Image

-

The EWC implementation of Image has some degree of support for:

+

The EWC implementation of ⎕WC class Image has some degree of support for:

diff --git a/0.1/ObjectRef/ImageList/index.html b/0.1/ObjectRef/ImageList/index.html index 8d214d3..6bca1ea 100755 --- a/0.1/ObjectRef/ImageList/index.html +++ b/0.1/ObjectRef/ImageList/index.html @@ -1328,7 +1328,7 @@

ImageList

-

The EWC implementation of ImageList has some degree of support for:

+

The EWC implementation of ⎕WC class ImageList has some degree of support for:

diff --git a/0.1/ObjectRef/Label/index.html b/0.1/ObjectRef/Label/index.html index 7ed9392..4230d0b 100755 --- a/0.1/ObjectRef/Label/index.html +++ b/0.1/ObjectRef/Label/index.html @@ -1328,7 +1328,7 @@

Label

-

The EWC implementation of Label has some degree of support for:

+

The EWC implementation of ⎕WC class Label has some degree of support for:

diff --git a/0.1/ObjectRef/List/index.html b/0.1/ObjectRef/List/index.html index 7707d7f..6326f97 100755 --- a/0.1/ObjectRef/List/index.html +++ b/0.1/ObjectRef/List/index.html @@ -1328,7 +1328,7 @@

List

-

The EWC implementation of List has some degree of support for:

+

The EWC implementation of ⎕WC class List has some degree of support for:

diff --git a/0.1/ObjectRef/ListView/index.html b/0.1/ObjectRef/ListView/index.html index eb974ec..f706136 100755 --- a/0.1/ObjectRef/ListView/index.html +++ b/0.1/ObjectRef/ListView/index.html @@ -1328,7 +1328,7 @@

ListView

-

The EWC implementation of ListView has some degree of support for:

+

The EWC implementation of ⎕WC class ListView has some degree of support for:

diff --git a/0.1/ObjectRef/Menu/index.html b/0.1/ObjectRef/Menu/index.html index 131bf17..71c07bf 100755 --- a/0.1/ObjectRef/Menu/index.html +++ b/0.1/ObjectRef/Menu/index.html @@ -1328,7 +1328,7 @@

Menu

-

The EWC implementation of Menu has some degree of support for:

+

The EWC implementation of ⎕WC class Menu has some degree of support for:

diff --git a/0.1/ObjectRef/MenuBar/index.html b/0.1/ObjectRef/MenuBar/index.html index 6793afe..2a486f0 100755 --- a/0.1/ObjectRef/MenuBar/index.html +++ b/0.1/ObjectRef/MenuBar/index.html @@ -1328,7 +1328,7 @@

MenuBar

-

The EWC implementation of MenuBar has some degree of support for:

+

The EWC implementation of ⎕WC class MenuBar has some degree of support for:

diff --git a/0.1/ObjectRef/MenuItem/index.html b/0.1/ObjectRef/MenuItem/index.html index 4141c08..a5770b3 100755 --- a/0.1/ObjectRef/MenuItem/index.html +++ b/0.1/ObjectRef/MenuItem/index.html @@ -1328,7 +1328,7 @@

MenuItem

-

The EWC implementation of MenuItem has some degree of support for:

+

The EWC implementation of ⎕WC class MenuItem has some degree of support for:

diff --git a/0.1/ObjectRef/MsgBox/index.html b/0.1/ObjectRef/MsgBox/index.html index a1b4ccf..3117bd3 100755 --- a/0.1/ObjectRef/MsgBox/index.html +++ b/0.1/ObjectRef/MsgBox/index.html @@ -1328,7 +1328,7 @@

MsgBox

-

The EWC implementation of MsgBox has some degree of support for:

+

The EWC implementation of ⎕WC class MsgBox has some degree of support for:

diff --git a/0.1/ObjectRef/Poly/index.html b/0.1/ObjectRef/Poly/index.html index 53422f4..d22f5cd 100755 --- a/0.1/ObjectRef/Poly/index.html +++ b/0.1/ObjectRef/Poly/index.html @@ -1328,7 +1328,7 @@

Poly

-

The EWC implementation of Poly has some degree of support for:

+

The EWC implementation of ⎕WC class Poly has some degree of support for:

diff --git a/0.1/ObjectRef/Rect/index.html b/0.1/ObjectRef/Rect/index.html index deaa6a6..0f7bcae 100755 --- a/0.1/ObjectRef/Rect/index.html +++ b/0.1/ObjectRef/Rect/index.html @@ -1328,7 +1328,7 @@

Rect

-

The EWC implementation of Rect has some degree of support for:

+

The EWC implementation of ⎕WC class Rect has some degree of support for:

diff --git a/0.1/ObjectRef/Ribbon/index.html b/0.1/ObjectRef/Ribbon/index.html index da99e45..1773309 100755 --- a/0.1/ObjectRef/Ribbon/index.html +++ b/0.1/ObjectRef/Ribbon/index.html @@ -1328,7 +1328,7 @@

Ribbon

-

The EWC implementation of Ribbon supports:

+

The EWC implementation of Ribbon supports:

diff --git a/0.1/ObjectRef/RibbonButton/index.html b/0.1/ObjectRef/RibbonButton/index.html index 0a7b8d8..a1f288e 100755 --- a/0.1/ObjectRef/RibbonButton/index.html +++ b/0.1/ObjectRef/RibbonButton/index.html @@ -1328,7 +1328,7 @@

RibbonButton

-

The EWC implementation of RibbonButton supports:

+

The EWC implementation of RibbonButton supports:

diff --git a/0.1/ObjectRef/RibbonButtonGroup/index.html b/0.1/ObjectRef/RibbonButtonGroup/index.html index 0441073..2333ea9 100755 --- a/0.1/ObjectRef/RibbonButtonGroup/index.html +++ b/0.1/ObjectRef/RibbonButtonGroup/index.html @@ -1328,7 +1328,7 @@

RibbonButtonGroup

-

The EWC implementation of RibbonButtonGroup supports:

+

The EWC implementation of RibbonButtonGroup supports:

diff --git a/0.1/ObjectRef/RibbonGroup/index.html b/0.1/ObjectRef/RibbonGroup/index.html index 8f82be3..f9431e9 100755 --- a/0.1/ObjectRef/RibbonGroup/index.html +++ b/0.1/ObjectRef/RibbonGroup/index.html @@ -1328,7 +1328,7 @@

RibbonGroup

-

The EWC implementation of RibbonGroup supports:

+

The EWC implementation of RibbonGroup supports:

diff --git a/0.1/ObjectRef/RibbonGroupItem/index.html b/0.1/ObjectRef/RibbonGroupItem/index.html index 744fe94..c61c792 100755 --- a/0.1/ObjectRef/RibbonGroupItem/index.html +++ b/0.1/ObjectRef/RibbonGroupItem/index.html @@ -1328,7 +1328,7 @@

RibbonGroupItem

-

The EWC implementation of RibbonGroupItem supports:

+

The EWC implementation of RibbonGroupItem supports:

diff --git a/0.1/ObjectRef/Scroll/index.html b/0.1/ObjectRef/Scroll/index.html index 1534143..95c9d68 100755 --- a/0.1/ObjectRef/Scroll/index.html +++ b/0.1/ObjectRef/Scroll/index.html @@ -1328,7 +1328,7 @@

Scroll

-

The EWC implementation of Scroll has some degree of support for:

+

The EWC implementation of ⎕WC class Scroll has some degree of support for:

diff --git a/0.1/ObjectRef/Splitter/index.html b/0.1/ObjectRef/Splitter/index.html index 971793c..77bd87c 100755 --- a/0.1/ObjectRef/Splitter/index.html +++ b/0.1/ObjectRef/Splitter/index.html @@ -1328,7 +1328,7 @@

Splitter

-

The EWC implementation of Splitter has some degree of support for:

+

The EWC implementation of ⎕WC class Splitter has some degree of support for:

diff --git a/0.1/ObjectRef/SubForm/index.html b/0.1/ObjectRef/SubForm/index.html index 0d853e2..42d8932 100755 --- a/0.1/ObjectRef/SubForm/index.html +++ b/0.1/ObjectRef/SubForm/index.html @@ -1328,7 +1328,7 @@

SubForm

-

The EWC implementation of SubForm has some degree of support for:

+

The EWC implementation of ⎕WC class SubForm has some degree of support for:

diff --git a/0.1/ObjectRef/TabButton/index.html b/0.1/ObjectRef/TabButton/index.html index 3d73218..2e87a57 100755 --- a/0.1/ObjectRef/TabButton/index.html +++ b/0.1/ObjectRef/TabButton/index.html @@ -1328,7 +1328,7 @@

TabButton

-

The EWC implementation of TabButton has some degree of support for:

+

The EWC implementation of ⎕WC class TabButton has some degree of support for:

diff --git a/0.1/ObjectRef/TabControl/index.html b/0.1/ObjectRef/TabControl/index.html index 3c6cdb0..766d004 100755 --- a/0.1/ObjectRef/TabControl/index.html +++ b/0.1/ObjectRef/TabControl/index.html @@ -1328,7 +1328,7 @@

TabControl

-

The EWC implementation of TabControl has some degree of support for:

+

The EWC implementation of ⎕WC class TabControl has some degree of support for:

diff --git a/0.1/ObjectRef/Text/index.html b/0.1/ObjectRef/Text/index.html index a747c4a..7c2fec5 100755 --- a/0.1/ObjectRef/Text/index.html +++ b/0.1/ObjectRef/Text/index.html @@ -1328,7 +1328,7 @@

Text

-

The EWC implementation of Text has some degree of support for:

+

The EWC implementation of ⎕WC class Text has some degree of support for:

diff --git a/0.1/ObjectRef/Timer/index.html b/0.1/ObjectRef/Timer/index.html index ee4eaca..5eb11fe 100755 --- a/0.1/ObjectRef/Timer/index.html +++ b/0.1/ObjectRef/Timer/index.html @@ -1328,7 +1328,7 @@

Timer

-

The EWC implementation of Timer has some degree of support for:

+

The EWC implementation of ⎕WC class Timer has some degree of support for:

diff --git a/0.1/ObjectRef/TreeView/index.html b/0.1/ObjectRef/TreeView/index.html index a062005..61ec044 100755 --- a/0.1/ObjectRef/TreeView/index.html +++ b/0.1/ObjectRef/TreeView/index.html @@ -1326,7 +1326,7 @@

TreeView

-

The EWC implementation of TreeView has some degree of support for:

+

The EWC implementation of ⎕WC class TreeView has some degree of support for:

diff --git a/0.1/search/search_index.json b/0.1/search/search_index.json index fbf1a24..938c399 100755 --- a/0.1/search/search_index.json +++ b/0.1/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":"

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.

"},{"location":"Discussion/Differences/#implicit-interactive-dq","title":"Implicit Interactive \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:

"},{"location":"Discussion/Images/","title":"Images","text":"

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 BitMap has some degree of support for:

Properties File Size"},{"location":"ObjectRef/Button/","title":"Button","text":"

The EWC implementation of Button has some degree of support for:

Properties Align Event Size Styles Attach Picture State Visible Caption Posn Style Events KeyPress Select"},{"location":"ObjectRef/Circle/","title":"Circle","text":"

The EWC implementation of Circle has some degree of support for:

Properties ArcMode FStyle Radius End FillCol Start FCol Points Visible"},{"location":"ObjectRef/Classes/","title":"Classes","text":"

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:

Additional ApexChart RibbonButton RibbonGroup Ribbon RibbonButtonGroup RibbonGroupItem

See EWC.Doc.Details 'classname' for more details

"},{"location":"ObjectRef/Combo/","title":"Combo","text":"

The EWC implementation of Combo has some degree of support for:

Properties Attach Items SelItems Text Event Posn Size Visible Events Select"},{"location":"ObjectRef/Edit/","title":"Edit","text":"

The EWC implementation of Edit has some degree of support for:

Properties Attach FieldType Posn Text Border Font SelText Value Decimals FontObj Size Visible Event MaxLength Style FCol Password Styles Events Change GotFocus KeyPress

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 Ellipse has some degree of support for:

Properties ArcMode FStyle Size End FillCol Start FCol Points Visible"},{"location":"ObjectRef/Font/","title":"Font","text":"

The EWC implementation of Font has some degree of support for:

Properties Italic Rotate Underline PName Size Weight"},{"location":"ObjectRef/Form/","title":"Form","text":"

The EWC implementation of Form has some degree of support for:

Properties BCol Flex Size Caption Picture Styles Coord Posn Visible Events Configure MouseDown MouseUp

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 Grid has some degree of support for:

Properties Attach ColTitleFCol Input TitleHeight BCol ColTitles Posn TitleWidth CellFonts CurCell RowTitleBCol VScroll CellHeights Event RowTitleFCol Values CellTypes FCol RowTitles Visible CellWidths FormatString ShowInput ColTitleBCol HScroll Size Events CellChanged CellMove KeyPress"},{"location":"ObjectRef/Group/","title":"Group","text":"

The EWC implementation of Group has some degree of support for:

Properties Attach Caption Posn Styles Border Flex Size Visible Events Configure"},{"location":"ObjectRef/Icon/","title":"Icon","text":"

The EWC implementation of Icon has some degree of support for:

Properties File"},{"location":"ObjectRef/Image/","title":"Image","text":"

The EWC implementation of Image has some degree of support for:

Properties Picture Points Visible"},{"location":"ObjectRef/ImageList/","title":"ImageList","text":"

The EWC implementation of ImageList has some degree of support for:

Properties Files ImageCount Masked Size"},{"location":"ObjectRef/Label/","title":"Label","text":"

The EWC implementation of Label has some degree of support for:

Properties Attach FCol Posn Visible BCol Font Size Caption FontObj Styles Events KeyPress"},{"location":"ObjectRef/List/","title":"List","text":"

The EWC implementation of List has some degree of support for:

Properties Attach Items SelItems Visible Border Posn Size"},{"location":"ObjectRef/ListView/","title":"ListView","text":"

The EWC implementation of ListView has some degree of support for:

Properties BCol ImageIndex ReportInfo Visible Border ImageListObj SelItems ColTitles Items Size FCol Posn View Events GotFocus ItemDblClick ItemDown"},{"location":"ObjectRef/Menu/","title":"Menu","text":"

The EWC implementation of Menu has some degree of support for:

Properties Caption"},{"location":"ObjectRef/MenuBar/","title":"MenuBar","text":"

The EWC implementation of MenuBar has some degree of support for:

Properties Visible"},{"location":"ObjectRef/MenuItem/","title":"MenuItem","text":"

The EWC implementation of MenuItem has some degree of support for:

Properties Caption Event Events Select"},{"location":"ObjectRef/MsgBox/","title":"MsgBox","text":"

The EWC implementation of MsgBox has some degree of support for:

Properties Btns Default PropList Caption Event Style Data MethodList Text"},{"location":"ObjectRef/Poly/","title":"Poly","text":"

The EWC implementation of Poly has some degree of support for:

Properties FCol FillCol LWidth Visible FStyle LStyle Points"},{"location":"ObjectRef/Rect/","title":"Rect","text":"

The EWC implementation of Rect has some degree of support for:

Properties FCol FillCol Radius Visible FStyle Points Size"},{"location":"ObjectRef/Ribbon/","title":"Ribbon","text":"

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 Scroll has some degree of support for:

Properties Align HScroll Size Visible Attach Posn Thumb Event Range VScroll Events Scroll"},{"location":"ObjectRef/Splitter/","title":"Splitter","text":"

The EWC implementation of Splitter has some degree of support for:

Properties Event SplitObj1 Style Posn SplitObj2 Visible Events EndSplit"},{"location":"ObjectRef/SubForm/","title":"SubForm","text":"

The EWC implementation of SubForm has some degree of support for:

Properties BCol Flex Size Visible Border Picture Styles Caption Posn TabObj Events Configure"},{"location":"ObjectRef/TabButton/","title":"TabButton","text":"

The EWC implementation of TabButton has some degree of support for:

Properties Caption Event Events Select"},{"location":"ObjectRef/TabControl/","title":"TabControl","text":"

The EWC implementation of TabControl has some degree of support for:

Properties ActiveBCol BCol MultiLine Size Attach FCol Posn Visible"},{"location":"ObjectRef/Text/","title":"Text","text":"

The EWC implementation of Text has some degree of support for:

Properties BCol Font Points Text FCol FontObj Rotate Visible"},{"location":"ObjectRef/Timer/","title":"Timer","text":"

The EWC implementation of Timer has some degree of support for:

Properties Active Event FireOnce Interval Events Timer"},{"location":"ObjectRef/TreeView/","title":"TreeView","text":"

The EWC implementation of TreeView has some degree of support for:

Properties Attach ImageIndex Posn Visible Depth ImageListObj SelItems Event Items Size Events Expanding ItemDblClick ItemDown Retracting"},{"location":"Usage/Configuration/","title":"Configuration","text":"

The EWC namespace contains a number of variables that can be used to configure the system.

"},{"location":"Usage/Configuration/#port","title":"PORT","text":"

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.

"},{"location":"Usage/Configuration/#for-developers","title":"For Developers","text":""},{"location":"Usage/Configuration/#showdevtools","title":"SHOWDEVTOOLS","text":"

If you set this to 1, EWC will call ShowDevTools 1 on each HTMLRenderer that it creates.

"},{"location":"Usage/Configuration/#jsclientfolder","title":"JSClientFolder","text":"

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.

"},{"location":"Usage/Initialisation/","title":"Initialising an EWC session","text":"

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.

"},{"location":"Usage/Initialisation/#ewcinit","title":"EWC.Init","text":"

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.

"},{"location":"Usage/Initialisation/#multi-modes","title":"Multi Modes","text":"

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.

"},{"location":"Usage/Installation/","title":"Installation","text":"

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

"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":"

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.

"},{"location":"Discussion/Differences/#implicit-interactive-dq","title":"Implicit Interactive \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:

"},{"location":"Discussion/Images/","title":"Images","text":"

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:

Properties File Size"},{"location":"ObjectRef/Button/","title":"Button","text":"

The EWC implementation of \u2395WC class Button has some degree of support for:

Properties Align Event Size Styles Attach Picture State Visible Caption Posn Style Events KeyPress Select"},{"location":"ObjectRef/Circle/","title":"Circle","text":"

The EWC implementation of \u2395WC class Circle has some degree of support for:

Properties ArcMode FStyle Radius End FillCol Start FCol Points Visible"},{"location":"ObjectRef/Classes/","title":"Classes","text":"

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:

Additional ApexChart RibbonButton RibbonGroup Ribbon RibbonButtonGroup RibbonGroupItem

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:

Properties Attach Items SelItems Text Event Posn Size Visible Events Select"},{"location":"ObjectRef/Edit/","title":"Edit","text":"

The EWC implementation of \u2395WC class Edit has some degree of support for:

Properties Attach FieldType Posn Text Border Font SelText Value Decimals FontObj Size Visible Event MaxLength Style FCol Password Styles Events Change GotFocus KeyPress

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:

Properties ArcMode FStyle Size End FillCol Start FCol Points Visible"},{"location":"ObjectRef/Font/","title":"Font","text":"

The EWC implementation of \u2395WC class Font has some degree of support for:

Properties Italic Rotate Underline PName Size Weight"},{"location":"ObjectRef/Form/","title":"Form","text":"

The EWC implementation of \u2395WC class Form has some degree of support for:

Properties BCol Flex Size Caption Picture Styles Coord Posn Visible Events Configure MouseDown MouseUp

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:

Properties Attach ColTitleFCol Input TitleHeight BCol ColTitles Posn TitleWidth CellFonts CurCell RowTitleBCol VScroll CellHeights Event RowTitleFCol Values CellTypes FCol RowTitles Visible CellWidths FormatString ShowInput ColTitleBCol HScroll Size Events CellChanged CellMove KeyPress"},{"location":"ObjectRef/Group/","title":"Group","text":"

The EWC implementation of \u2395WC class Group has some degree of support for:

Properties Attach Caption Posn Styles Border Flex Size Visible Events Configure"},{"location":"ObjectRef/Icon/","title":"Icon","text":"

The EWC implementation of \u2395WC class Icon has some degree of support for:

Properties File"},{"location":"ObjectRef/Image/","title":"Image","text":"

The EWC implementation of \u2395WC class Image has some degree of support for:

Properties Picture Points Visible"},{"location":"ObjectRef/ImageList/","title":"ImageList","text":"

The EWC implementation of \u2395WC class ImageList has some degree of support for:

Properties Files ImageCount Masked Size"},{"location":"ObjectRef/Label/","title":"Label","text":"

The EWC implementation of \u2395WC class Label has some degree of support for:

Properties Attach FCol Posn Visible BCol Font Size Caption FontObj Styles Events KeyPress"},{"location":"ObjectRef/List/","title":"List","text":"

The EWC implementation of \u2395WC class List has some degree of support for:

Properties Attach Items SelItems Visible Border Posn Size"},{"location":"ObjectRef/ListView/","title":"ListView","text":"

The EWC implementation of \u2395WC class ListView has some degree of support for:

Properties BCol ImageIndex ReportInfo Visible Border ImageListObj SelItems ColTitles Items Size FCol Posn View Events GotFocus ItemDblClick ItemDown"},{"location":"ObjectRef/Menu/","title":"Menu","text":"

The EWC implementation of \u2395WC class Menu has some degree of support for:

Properties Caption"},{"location":"ObjectRef/MenuBar/","title":"MenuBar","text":"

The EWC implementation of \u2395WC class MenuBar has some degree of support for:

Properties Visible"},{"location":"ObjectRef/MenuItem/","title":"MenuItem","text":"

The EWC implementation of \u2395WC class MenuItem has some degree of support for:

Properties Caption Event Events Select"},{"location":"ObjectRef/MsgBox/","title":"MsgBox","text":"

The EWC implementation of \u2395WC class MsgBox has some degree of support for:

Properties Btns Default PropList Caption Event Style Data MethodList Text"},{"location":"ObjectRef/Poly/","title":"Poly","text":"

The EWC implementation of \u2395WC class Poly has some degree of support for:

Properties FCol FillCol LWidth Visible FStyle LStyle Points"},{"location":"ObjectRef/Rect/","title":"Rect","text":"

The EWC implementation of \u2395WC class Rect has some degree of support for:

Properties FCol FillCol Radius Visible FStyle Points Size"},{"location":"ObjectRef/Ribbon/","title":"Ribbon","text":"

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:

Properties Align HScroll Size Visible Attach Posn Thumb Event Range VScroll Events Scroll"},{"location":"ObjectRef/Splitter/","title":"Splitter","text":"

The EWC implementation of \u2395WC class Splitter has some degree of support for:

Properties Event SplitObj1 Style Posn SplitObj2 Visible Events EndSplit"},{"location":"ObjectRef/SubForm/","title":"SubForm","text":"

The EWC implementation of \u2395WC class SubForm has some degree of support for:

Properties BCol Flex Size Visible Border Picture Styles Caption Posn TabObj Events Configure"},{"location":"ObjectRef/TabButton/","title":"TabButton","text":"

The EWC implementation of \u2395WC class TabButton has some degree of support for:

Properties Caption Event Events Select"},{"location":"ObjectRef/TabControl/","title":"TabControl","text":"

The EWC implementation of \u2395WC class TabControl has some degree of support for:

Properties ActiveBCol BCol MultiLine Size Attach FCol Posn Visible"},{"location":"ObjectRef/Text/","title":"Text","text":"

The EWC implementation of \u2395WC class Text has some degree of support for:

Properties BCol Font Points Text FCol FontObj Rotate Visible"},{"location":"ObjectRef/Timer/","title":"Timer","text":"

The EWC implementation of \u2395WC class Timer has some degree of support for:

Properties Active Event FireOnce Interval Events Timer"},{"location":"ObjectRef/TreeView/","title":"TreeView","text":"

The EWC implementation of \u2395WC class TreeView has some degree of support for:

Properties Attach ImageIndex Posn Visible Depth ImageListObj SelItems Event Items Size Events Expanding ItemDblClick ItemDown Retracting"},{"location":"Usage/Configuration/","title":"Configuration","text":"

The EWC namespace contains a number of variables that can be used to configure the system.

"},{"location":"Usage/Configuration/#port","title":"PORT","text":"

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.

"},{"location":"Usage/Configuration/#for-developers","title":"For Developers","text":""},{"location":"Usage/Configuration/#showdevtools","title":"SHOWDEVTOOLS","text":"

If you set this to 1, EWC will call ShowDevTools 1 on each HTMLRenderer that it creates.

"},{"location":"Usage/Configuration/#jsclientfolder","title":"JSClientFolder","text":"

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.

"},{"location":"Usage/Initialisation/","title":"Initialising an EWC session","text":"

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.

"},{"location":"Usage/Initialisation/#ewcinit","title":"EWC.Init","text":"

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.

"},{"location":"Usage/Initialisation/#multi-modes","title":"Multi Modes","text":"

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.

"},{"location":"Usage/Installation/","title":"Installation","text":"

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

"}]} \ No newline at end of file