Compile Time Changes

The functions to create visually transparent windows (layered windows in Windows parlance) have been changed to make their purpose clearer: For more information, you can refer to the comments in cm/win/winApi.cm

Old: public void overlayCapture(mwnd hwnd, int alpha)
New: public void setLayeredWindow(mwnd hwnd, int alpha)

Old: public void setOverlayCaptureAlpha(mwnd hwnd, int alpha)
New: public void setLayeredWindow(mwnd hwnd, byte alpha)

Old: public void initOverlayCapture(mwnd hwnd, int alpha) = win_initOverlayCapture;
New: public void setLayeredWindow(mwnd hwnd, byte alpha) = win_setLayeredWindow;

New: public void removeLayeredWindow(mwnd hwnd) {}

The following methods on Window have been removed:

Removed: final public bool isSuspended() {}

The following method has been removed from FrameWindow:

Removed: final public void reportVisibleTime() {}

The Card constructor has been modified to remove the pos and size parameters:

Old: public constructor(Window parent,
                        Font font=systemFont(),
                        Brush brush=null,
                        pointI origin=(0, 0),
                        bool selectable=true,
                        pointI pos=(0, 0),
                        sizeI size=sizeI(-1, -1),
                        bool passive=false,
                        str key=null,
                        str label=null,
                        str toolTip=null,
                        Image image=null,
                        Skin overrideSkin=null,
                        bool on=true,
                        SrcRef src=#:src) {}

New: public constructor(Window parent,
                        Font font=systemFont(),
                        Brush brush=null,
                        pointI origin=(0, 0),
                        bool selectable=true,
                        //pointI pos=(0, 0),           // REMOVED
                        //sizeI size=sizeI(-1, -1),    // REMOVED
                        bool passive=false,
                        str key=null,
                        str label=null,
                        str toolTip=null,
                        Image image=null,
                        Skin overrideSkin=null,
                        bool on=true,
                        SrcRef src=#:src) {}

The FormattedTextArea constructor has been updated to handle links.

Old: public constructor(Window parent,
                        // inherited key arguments
                        Font font=smallSystemFont,
                        Brush brush=null,
                        FrameStyle frameStyle=stdLightFrame,
                        frame3DState frameState=frameStateDown,
                        pointI pos=(0, 0),
                        sizeI size=(0, 0),
                        pointI margins=(2, 1),
                        // extended
                        bool lineBreak=true,
                        function(Control button) posChangedCallback=null,
                        function(Control button) callback=null,
                        function(Control button) escapeKeyCallback=null,
                        function(Control button) lostFocusCallback=null,
                        str key=null,
                        bool absFontH=false,
                        bool spellCheck=false,
                        SrcRef src=#:src) {
New: public constructor(Window parent,
                        // inherited key arguments
                        Font font=smallSystemFont,
                        Brush brush=null,
                        FrameStyle frameStyle=stdLightFrame,
                        frame3DState frameState=frameStateDown,
                        pointI pos=(0, 0),
                        sizeI size=(0, 0),
                        pointI margins=(2, 1),
                        // extended
                        bool lineBreak=true,
                        function(Control button) posChangedCallback=null,
                        function(Control button) callback=null,
                        function(Control button) escapeKeyCallback=null,
                        function(Control button) lostFocusCallback=null,
                        str key=null,
                        bool absFontH=false,
                        bool spellCheck=false,
                        // link support
                        color linkColor=primary600,
                        color linkHoverColor=primary600,
                        function(Control button, str key):bool linkCallback=null,
                        SrcRef src=#:src {
 

The ColorControl class has had the following fields removed:

Removed: public IntField rC;
Removed: public IntField gC;
Removed: public IntField bC;
Removed: public HsvSlider hsvC;

The RoundedPenFrame constructor has ability to show on hover.

Old: public constructor(Pen pen, Pen highlightPen) {
New: public constructor(Pen pen, Pen highlightPen, bool onlyOnHover=false) {

A method was removed from the FaceliftToggle class:

Removed: extend public void drawToggle(PixelDevice device,
                                       pointI p,
                                       int w,
                                       int h,
                                       int progress,
                                       int innerOffset) : deprecated {}

The IconInfo class has been removed. As a result of this change, IconFinder's fields have been changed to remove references to this type:

Removed: public str->IconInfo icons();

The MenuBar class has a couple of its methods changed as follows:

Old: extend public int buildButton(str key,
                                   Image img,
                                   str toolTipText,
                                   function(Control) cb,
                                   int margin=0,
                                   bool right=false,
                                   bool assignIID=false) {}

New: extend public int buildButton(str key,
                                   Image img,
                                   str toolTipText,
                                   function(Control) cb,
                                   str bindingKey=null    // ADDED
                                   int margin=0,
                                   bool right=false,
                                   bool assignIID=false,
                                   SrcRef src=#:src) {}   // ADDED

Old: extend public int buildSeparator(bool right=false) {}

New: extend public int buildSeparator(bool right=false, SrcRef src=#:src)  {}

Old: final public void initIID(str buttonsIID) : deprecated {}

New: final public void initIID(str buttonsIID, VisibilityProfile root)

The constructor for SeparatorLine has been changed to allow spawning it as a popup window:

Old: public constructor(Window parent,
                        FrameStyle frameStyle=thin3DFrame,
                        frame3DState frameState=frameStateDown,
                        int external=0,
                        int internal=0,
                        bool vertical=false,
                        bool light=false,
                        SrcRef src=#:src) {}

New:
Old: public constructor(Window parent,
                        FrameStyle frameStyle=thin3DFrame,
                        frame3DState frameState=frameStateDown,
                        int external=0,
                        int internal=0,
                        bool vertical=false,
                        bool light=false,
                        bool popup=false,    // ADDED
                        SrcRef src=#:src) {}

The following methods on TreeViewItem have been changed:

Old: final public void sortByLabel(bool recursive=true) {}
New: final public void sortByLabel(bool recursive=true, Object{} visited=null) {}

The following methods on TreeViewSubTree have been changed:

Old: extend public void sortByLabel(bool recursive=true) {}
New: extend public void sortByLabel(bool recursive=true, Object{} visited=null) {}

The following functions have been removed from this package:

Removed: public bool removeRegisteredLanguage(str lang, str resKey, str nextLang) {}

GroupBox

Some changes have been made to GroupBox to rationalise it's behaviour regarding origins. The constructor now takes an origin offset instead of an origin directly:

Old: public constructor(Window parent,
                        Font font=systemFont(),
                        Brush brush=null,
                        FrameStyle frameStyle=noFrame,
                        frame3DState frameState=frameStateDown,
                        pointI origin=(0, 0),    // REMOVED
                        bool selectable=true,
                        pointI pos=(0, 0),
                        sizeI size=(0, 0),
                        bool passive=true,
                        str label=null,
                        color labelColor=color(),
                        str key=null,
                        SrcRef src=#:src) {}

New: public constructor(Window parent,
                        Font font=systemFont(),
                        Brush brush=null,
                        FrameStyle frameStyle=noFrame,
                        frame3DState frameState=frameStateDown,
                        pointI originOffset=(0, 0),    // ADDED
                        bool selectable=true,
                        pointI pos=(0, 0),
                        sizeI size=(0, 0),
                        bool passive=true,
                        str label=null,
                        color labelColor=color(),
                        str key=null,
                        SrcRef src=#:src) {}

The following method was also removed as part of this origin rationalisation:

Removed: final public void updateOrigin() {}

Previously, the API did not respect the origin set by the user, as an overriding origin was required to fit the text into the element. With the new originOffset parameter, a custom offset from the text of the GroupBox can now be specified.

The constructors for SubGroupBox and ShrinkBox have also been modified to match this change.

Runtime/Behavior Changes

Added new argument to isValid method of G3StatsEntity in cm.win.eventLogG3.cm to allow for different validities for different event actions.

Old: extend public bool isValid()
New: extend public bool isValid(str action)

The following functions have been overritten in Display affecting displays with passive=true.

public void rightClick(pointI p) {
public void rightClick2(pointI p) {
public void rightRelease(pointI p) {
public void rightRelease2(pointI p) {

The setGlobalSkin(Skin) function is now a no-op when CET is in the new UI. This is part of larger plan to remove the Skin concept entirely in a future version of CET.