From c8aefb6fe838c76d82a6271c751307dd3e24933f Mon Sep 17 00:00:00 2001 From: Vincent de Lachaux Date: Fri, 15 Mar 2024 17:55:10 +0100 Subject: [PATCH] widget windowFrame --- .gitignore | 3 +- .../Classes/_DEMO_WINDOW_FRAME_Controller.4dm | 82 + .../Classes/_DEMO_menus_Controller.4dm | 4 +- .../Classes/_WINDOW_FRAME_Controller.4dm | 319 + Project/Sources/Classes/buttonDelegate.4dm | 20 +- Project/Sources/Classes/comboBoxDelegate.4dm | 3 + .../Sources/Classes/constraintsDelegate.4dm | 11 +- Project/Sources/Classes/dropDownDelegate.4dm | 10 +- Project/Sources/Classes/formDelegate.4dm | 49 +- Project/Sources/Classes/groupDelegate.4dm | 4 +- Project/Sources/Classes/hListDelegate.4dm | 6 +- Project/Sources/Classes/listboxDelegate.4dm | 91 +- Project/Sources/Classes/menu.4dm | 2 + Project/Sources/Classes/pictureDelegate.4dm | 2 +- .../Sources/Classes/scrollableDelegate.4dm | 8 +- Project/Sources/Classes/selectorDelegate.4dm | 6 +- Project/Sources/Classes/staticDelegate.4dm | 89 +- Project/Sources/Classes/subformDelegate.4dm | 3 + Project/Sources/Classes/svg.4dm | 1915 +++-- .../Sources/Classes/tabControlDelegate.4dm | 66 + Project/Sources/Classes/wait.4dm | 46 + Project/Sources/Classes/webAreaDelegate.4dm | 30 +- Project/Sources/Classes/widgetDelegate.4dm | 13 +- Project/Sources/Classes/windowDelegate.4dm | 15 + Project/Sources/Classes/xml.4dm | 601 +- .../ObjectMethods/Button.4dm | 3 + .../Forms/DEMO_WINDOW_FRAME/Windows.css | 25 + .../Forms/DEMO_WINDOW_FRAME/form.4DForm | 151 + .../Sources/Forms/DEMO_WINDOW_FRAME/macOS.css | 29 + .../Sources/Forms/WINDOW_FRAME/Windows.css | 3 + .../Forms/WINDOW_FRAME/Windows/close.png | Bin 0 -> 3807 bytes .../Forms/WINDOW_FRAME/Windows/maximize.png | Bin 0 -> 3256 bytes .../Forms/WINDOW_FRAME/Windows/minimize.png | Bin 0 -> 3212 bytes .../Forms/WINDOW_FRAME/Windows/restore.png | Bin 0 -> 3343 bytes .../Sources/Forms/WINDOW_FRAME/form.4DForm | 179 + Project/Sources/Forms/WINDOW_FRAME/macOS.css | 3 + .../Forms/WINDOW_FRAME/macOS/close.png | Bin 0 -> 400 bytes .../Forms/WINDOW_FRAME/macOS/close@2x.png | Bin 0 -> 588 bytes .../WINDOW_FRAME/macOS/closeModified.png | Bin 0 -> 469 bytes .../WINDOW_FRAME/macOS/closeModified@2x.png | Bin 0 -> 738 bytes .../Forms/WINDOW_FRAME/macOS/closeOver.png | Bin 0 -> 499 bytes .../Forms/WINDOW_FRAME/macOS/closeOver@2x.png | Bin 0 -> 777 bytes .../Forms/WINDOW_FRAME/macOS/disabled.png | Bin 0 -> 3733 bytes .../Forms/WINDOW_FRAME/macOS/disabled@2x.png | Bin 0 -> 3999 bytes .../WINDOW_FRAME/macOS/disabledModified.png | Bin 0 -> 3772 bytes .../macOS/disabledModified@2x.png | Bin 0 -> 4106 bytes .../Forms/WINDOW_FRAME/macOS/minimize.png | Bin 0 -> 409 bytes .../Forms/WINDOW_FRAME/macOS/minimizeOver.png | Bin 0 -> 437 bytes .../WINDOW_FRAME/macOS/minimizeOver@2x.png | Bin 0 -> 682 bytes .../Forms/WINDOW_FRAME/macOS/minimizel@2x.png | Bin 0 -> 597 bytes .../Sources/Forms/WINDOW_FRAME/macOS/zoom.png | Bin 0 -> 398 bytes .../Forms/WINDOW_FRAME/macOS/zoom@2x.png | Bin 0 -> 599 bytes .../WINDOW_FRAME/macOS/zoomEnlargeOver.png | Bin 0 -> 473 bytes .../WINDOW_FRAME/macOS/zoomEnlargeOver@2x.png | Bin 0 -> 710 bytes .../WINDOW_FRAME/macOS/zoomRestoreOver.png | Bin 0 -> 464 bytes .../WINDOW_FRAME/macOS/zoomRestoreOver@2x.png | Bin 0 -> 705 bytes Project/Sources/Methods/DEMO_windowFrame.4dm | 6 + Project/Sources/folders.json | 28 +- Resources/en.lproj/syntaxEN.json | 6215 ++++++++++------- 59 files changed, 6749 insertions(+), 3291 deletions(-) create mode 100644 Project/Sources/Classes/_DEMO_WINDOW_FRAME_Controller.4dm create mode 100644 Project/Sources/Classes/_WINDOW_FRAME_Controller.4dm create mode 100644 Project/Sources/Classes/tabControlDelegate.4dm create mode 100644 Project/Sources/Classes/wait.4dm create mode 100644 Project/Sources/Forms/DEMO_WINDOW_FRAME/ObjectMethods/Button.4dm create mode 100644 Project/Sources/Forms/DEMO_WINDOW_FRAME/Windows.css create mode 100644 Project/Sources/Forms/DEMO_WINDOW_FRAME/form.4DForm create mode 100644 Project/Sources/Forms/DEMO_WINDOW_FRAME/macOS.css create mode 100644 Project/Sources/Forms/WINDOW_FRAME/Windows.css create mode 100644 Project/Sources/Forms/WINDOW_FRAME/Windows/close.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/Windows/maximize.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/Windows/minimize.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/Windows/restore.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/form.4DForm create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS.css create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/close.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/close@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/closeModified.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/closeModified@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/closeOver.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/closeOver@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/disabled.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/disabled@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/disabledModified.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/disabledModified@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/minimize.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/minimizeOver.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/minimizeOver@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/minimizel@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/zoom.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/zoom@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/zoomEnlargeOver.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/zoomEnlargeOver@2x.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/zoomRestoreOver.png create mode 100644 Project/Sources/Forms/WINDOW_FRAME/macOS/zoomRestoreOver@2x.png create mode 100644 Project/Sources/Methods/DEMO_windowFrame.4dm diff --git a/.gitignore b/.gitignore index c3872a8..d3da0b8 100644 --- a/.gitignore +++ b/.gitignore @@ -51,4 +51,5 @@ Thumbs.db Project/Trash Resources/php.ini Project/Sources/Methods/Method[0-9]*.4dm -Project/Sources/Forms/Form[0-9]* \ No newline at end of file +Project/Sources/Forms/Form[0-9]* +Project/Sources/dependencies.json diff --git a/Project/Sources/Classes/_DEMO_WINDOW_FRAME_Controller.4dm b/Project/Sources/Classes/_DEMO_WINDOW_FRAME_Controller.4dm new file mode 100644 index 0000000..9c9e6ba --- /dev/null +++ b/Project/Sources/Classes/_DEMO_WINDOW_FRAME_Controller.4dm @@ -0,0 +1,82 @@ +property form : cs:C1710.formDelegate +property bar : cs:C1710.subformDelegate + +Class constructor + + // MARK:-Delegates 📦 + This:C1470.form:=cs:C1710.formDelegate.new(This:C1470) + + This:C1470.form.init() + + // MARK:-[Standard Suite] + // === === === === === === === === === === === === === === === === === === === === === === === === +Function init() + + // MARK:-Title bar + This:C1470.bar:=This:C1470.form.subform.new("bar") + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function handleEvents($e : cs:C1710.evt) + + $e:=$e || cs:C1710.evt.new() + + // MARK:Form Method + If ($e.objectName=Null:C1517) + + Case of + + //______________________________________________________ + : ($e.load) + + This:C1470.form.onLoad() + + //______________________________________________________ + : ($e.timer) + + This:C1470.form.update() + + //______________________________________________________ + : ($e.activate) + + This:C1470.bar.refresh() + + //______________________________________________________ + : ($e.deactivate) + + This:C1470.bar.refresh() + + //______________________________________________________ + : ($e.unload) + + // + + //______________________________________________________ + End case + + return + + End if + + // MARK: Widget Methods + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function onLoad() + + // Resize the window frame widget + This:C1470._barManager() + + This:C1470.form.refresh() + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function update() + + // + + // MARK:-Managers + // === === === === === === === === === === === === === === === === === === === === === === === === +Function _barManager($e : cs:C1710.evt) + + $e:=$e || cs:C1710.evt.new() + + This:C1470.bar.left:=0 + This:C1470.bar.width:=This:C1470.form.dimensions.width \ No newline at end of file diff --git a/Project/Sources/Classes/_DEMO_menus_Controller.4dm b/Project/Sources/Classes/_DEMO_menus_Controller.4dm index 2f2c921..e53859d 100644 --- a/Project/Sources/Classes/_DEMO_menus_Controller.4dm +++ b/Project/Sources/Classes/_DEMO_menus_Controller.4dm @@ -45,7 +45,7 @@ Function init() /* -📌 Note that a third empty "Windows" is added and will be filled in later. +📌 Note that a third empty menu "Windows" is added and will be filled in later. */ @@ -147,7 +147,7 @@ Function onLoad() This:C1470.windows.setLinkedPopupMenu() // Mark: Distribute according to labels - cs:C1710.groupDelegate.new(This:C1470.fonts; This:C1470.withFamilies).distributeLeftToRight() + cs:C1710.groupDelegate.new([This:C1470.fonts; This:C1470.withFamilies]).distributeLeftToRight() This:C1470.windows.alignCenter() // Mark: Hide font sample diff --git a/Project/Sources/Classes/_WINDOW_FRAME_Controller.4dm b/Project/Sources/Classes/_WINDOW_FRAME_Controller.4dm new file mode 100644 index 0000000..a5a6359 --- /dev/null +++ b/Project/Sources/Classes/_WINDOW_FRAME_Controller.4dm @@ -0,0 +1,319 @@ +property form : cs:C1710.formDelegate +property drag; reduce; zoom; close : cs:C1710.buttonDelegate +property isModal : Boolean +property options : Integer + +Class constructor + + This:C1470.isSubform:=True:C214 + This:C1470.toBeInitialized:=False:C215 + + // MARK:-Delegates 📦 + This:C1470.form:=cs:C1710.formDelegate.new(This:C1470) + + This:C1470.isModal:=This:C1470.form.window.type=Modal dialog:K27:2 + This:C1470.options:=0 + + If (Is macOS:C1572) + + var $in; $out : Text + LAUNCH EXTERNAL PROCESS:C811("defaults read NSGlobalDomain"; $in; $out) + + If (OK=1) + + ARRAY LONGINT:C221($pos; 0x0000) + ARRAY LONGINT:C221($len; 0x0000) + + If (Match regex:C1019("(?mi-s)AppleActionOnDoubleClick\\s*=\\s*([^;]*);"; $out; 1; $pos; $len)) + + This:C1470.AppleActionOnDoubleClick:=Substring:C12($out; $pos{1}; $len{1}) + + End if + End if + + Else + + // TODO:Windows part ? + + End if + + This:C1470.form.init() + + // MARK:-[Standard Suite] + // === === === === === === === === === === === === === === === === === === === === === === === === +Function init() + + This:C1470.drag:=This:C1470.form.button.new("dragWindow") + + If (Is macOS:C1572) + + This:C1470.reduce:=This:C1470.form.button.new("minusMac") + This:C1470.zoom:=This:C1470.form.button.new("plusMac") + This:C1470.close:=This:C1470.form.button.new("closeMac") + + Else + + This:C1470.reduce:=This:C1470.form.button.new("minusWin") + This:C1470.zoom:=This:C1470.form.button.new("plusWin") + This:C1470.close:=This:C1470.form.button.new("closeWin") + + End if + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function handleEvents($e : cs:C1710.evt) + + $e:=$e || cs:C1710.evt.new() + + // MARK:Form Method + If ($e.objectName=Null:C1517) + + Case of + + //______________________________________________________ + : ($e.load) + + This:C1470.form.onLoad() + + //______________________________________________________ + : ($e.boundVariableChange) + + // ⚠️ The container must be of numeric type + + This:C1470.options:=OBJECT Get subform container value:C1785 + This:C1470.form.update() + + //______________________________________________________ + : ($e.timer) + + This:C1470.form.update() + + //______________________________________________________ + End case + + return + + End if + + // MARK: Widget Methods + Case of + + //______________________________________________________ + : (This:C1470.drag.catch($e)) + + If ($e.doubleClick) + + Case of + + //……………………………………………………………………………………………………………… + : (This:C1470.AppleActionOnDoubleClick=Null:C1517)\ + || (This:C1470.AppleActionOnDoubleClick="none") + + // + //……………………………………………………………………………………………………………… + : (This:C1470.AppleActionOnDoubleClick="Minimize") + + If (Not:C34(This:C1470.reduceDisabled)) + + This:C1470.form.window.reduce() + + End if + + //……………………………………………………………………………………………………………… + : (This:C1470.AppleActionOnDoubleClick="Maximize") + + This:C1470.miniaturiseOrNot() + + //……………………………………………………………………………………………………………… + End case + + Else + + This:C1470.form.window.drag() + + End if + + //______________________________________________________ + : (This:C1470.close.catch($e)) + + If (Not:C34(This:C1470.closeDisabled)) + + CANCEL:C270 + + End if + + //______________________________________________________ + : (This:C1470.reduce.catch($e)) + + If (Not:C34(This:C1470.reduceDisabled)) + + This:C1470.form.window.reduce() + + End if + + //______________________________________________________ + : (This:C1470.zoom.catch($e)) + + This:C1470.miniaturiseOrNot() + + //______________________________________________________ + : (Is Windows:C1573) + + // The rollover animation is managed by the button icon, which has 4 states + //______________________________________________________ + : ($e.mouseEnter) + + If (Not:C34(This:C1470.closeDisabled)) + + This:C1470.close.setPicture("macOS/closeOver.png") + + End if + + If (Not:C34(This:C1470.zoomDisabled)) + + This:C1470.zoom.setPicture(Is window maximized:C1830(This:C1470.form.window.ref) ? "macOS/zoomRestoreOver.png" : "macOS/zoomEnlargeOver.png") + + End if + + If (Not:C34(This:C1470.reduceDisabled)) + + This:C1470.reduce.setPicture("macOS/minimizeOver.png") + + End if + + //______________________________________________________ + : ($e.mouseLeave) + + If (Not:C34(This:C1470.closeDisabled)) + + This:C1470.close.setPicture(This:C1470.documentModified ? "macOS/closeModified.png" : "macOS/close.png") + + End if + + If (Not:C34(This:C1470.zoomDisabled)) + + This:C1470.zoom.setPicture("macOS/zoom.png") + + End if + + If (Not:C34(This:C1470.reduceDisabled)) + + This:C1470.reduce.setPicture("macOS/minimize.png") + + End if + + //______________________________________________________ + End case + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function onLoad() + + This:C1470.form.refresh() + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function update() + + If (Is macOS:C1572) + + If (This:C1470.form.window.isFrontmost()) + + If (This:C1470.closeDisabled) + + This:C1470.close.setPicture("macOS/disabled.png") + + Else + + This:C1470.close.setPicture(This:C1470.documentModified ? "macOS/closeModified.png" : "macOS/close.png") + + End if + + This:C1470.reduce.setPicture(This:C1470.reduceDisabled ? "macOS/disabled.png" : "macOS/minimize.png") + + This:C1470.zoom.setPicture(This:C1470.zoomDisabled ? "macOS/disabled.png" : "macOS/zoom.png") + + Else + + If (This:C1470.closeDisabled) + + This:C1470.close.setPicture("macOS/disabled.png") + + Else + + This:C1470.close.setPicture(This:C1470.documentModified ? "macOS/disabledModified.png" : "macOS/disabled.png") + + End if + + This:C1470.zoom.setPicture("macOS/disabled.png") + This:C1470.reduce.setPicture("macOS/disabled.png") + + End if + + Else + + If (This:C1470.form.window.isFrontmost()) + + This:C1470.close.enable() + This:C1470.reduce.enable(Not:C34(This:C1470.isModal)) + This:C1470.zoom.enable() + + Else + + This:C1470.close.disable() + This:C1470.reduce.disable() + This:C1470.zoom.disable() + + End if + End if + + This:C1470.form.callParent(On Load:K2:1) // Resize + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get documentModified() : Boolean + + return This:C1470.options ?? 0 + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get reduceDisabled() : Boolean + + return This:C1470.isModal | (This:C1470.options ?? 1) + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get zoomDisabled() : Boolean + + return This:C1470.options ?? 2 + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get closeDisabled() : Boolean + + return This:C1470.options ?? 3 + + // === === === === === === === === === === === === === === === === === === === === === === === === +Function miniaturiseOrNot() + + If (This:C1470.zoomDisabled) + + return + + End if + + If (Is window maximized:C1830(This:C1470.form.window.ref)) + + This:C1470.form.window.minimize() + + If (Is Windows:C1573) + + This:C1470.zoom.setPicture("Windows/maximize.png") + + End if + + Else + + This:C1470.form.window.maximize() + + If (Is Windows:C1573) + + This:C1470.zoom.setPicture("Windows/restore.png") + + End if + End if + + This:C1470.form.callParent(On Load:K2:1) // Resize \ No newline at end of file diff --git a/Project/Sources/Classes/buttonDelegate.4dm b/Project/Sources/Classes/buttonDelegate.4dm index 2672080..5d1446f 100644 --- a/Project/Sources/Classes/buttonDelegate.4dm +++ b/Project/Sources/Classes/buttonDelegate.4dm @@ -189,7 +189,8 @@ Function _proxy($proxy : Text) : Text //______________________________________________________ Else - return "path:/RESOURCES/"+$proxy + // Relative to the form.4DForm + return "path:/FORM/"+$proxy //______________________________________________________ End case @@ -245,6 +246,23 @@ Function get styleName() : Text // Button style Function setStyle($style : Integer) : cs:C1710.buttonDelegate +/** +style = 0: None (default) +style = 1: Background offset +style = 2: Push button +style = 3: Toolbar button +style = 4: Custom +style = 5: Circle +style = 6: Small system square +style = 7: Office XP +style = 8: Bevel +style = 9: Rounded bevel +style = 10: Collapse/Expand +style = 11: Help +style = 12: OS X Textured +style = 13: OS X Gradient +**/ + This:C1470.setFormat(";;;;;;"+String:C10($style)) return This:C1470 diff --git a/Project/Sources/Classes/comboBoxDelegate.4dm b/Project/Sources/Classes/comboBoxDelegate.4dm index 3c0a071..c7049e2 100644 --- a/Project/Sources/Classes/comboBoxDelegate.4dm +++ b/Project/Sources/Classes/comboBoxDelegate.4dm @@ -1,5 +1,7 @@ Class extends dropDownDelegate +property _ordered; automaticExpand : Boolean + Class constructor($name : Text; $data : Object) Super:C1705($name; $data) @@ -91,6 +93,7 @@ Function expand() If (Bool:C1537(This:C1470.data.automaticExpand)) + // Get the current widget window coordinates $o:=This:C1470.windowCoordinates POST CLICK:C466($o.right-10; $o.top+10; Current process:C322) diff --git a/Project/Sources/Classes/constraintsDelegate.4dm b/Project/Sources/Classes/constraintsDelegate.4dm index f1b3078..22ac263 100644 --- a/Project/Sources/Classes/constraintsDelegate.4dm +++ b/Project/Sources/Classes/constraintsDelegate.4dm @@ -19,12 +19,12 @@ Class constructor($metrics : Object) // === === === === === === === === === === === === === === === === === === === === === === === === Function load($file : 4D:C1709.File) - var $metrics; $o : Object + var $metrics : Object - $o:=JSON Parse:C1218($metrics.getText().rules) - This:C1470.rules:=$o.rules || [] + $metrics:=JSON Parse:C1218($file.getText()).rules + This:C1470.rules:=$metrics.rules || [] - This:C1470.setMetrics($o) + This:C1470.setMetrics($metrics) // === === === === === === === === === === === === === === === === === === === === === === === === Function setMetrics($metrics : Object) @@ -528,6 +528,9 @@ Function apply() continue End if + + // TODO:Adjust the border + End for each End for each diff --git a/Project/Sources/Classes/dropDownDelegate.4dm b/Project/Sources/Classes/dropDownDelegate.4dm index d38202e..d62b9e8 100644 --- a/Project/Sources/Classes/dropDownDelegate.4dm +++ b/Project/Sources/Classes/dropDownDelegate.4dm @@ -10,9 +10,9 @@ Class constructor($name : Text; $data : Object) If (This:C1470.data#Null:C1517) && (This:C1470.data.currentValue#Null:C1517) - This:C1470.data.placeholder:=This:C1470.data.placeholder#Null:C1517\ - ? This:C1470.data.placeholder\ - : This:C1470.data.currentValue + This:C1470.data.placeholder:=This:C1470.data.placeholder=Null:C1517\ + ? This:C1470.data.currentValue\ + : This:C1470.data.placeholder End if @@ -58,10 +58,8 @@ Function set placeholder($placeholder : Text) // === === === === === === === === === === === === === === === === === === === === === === === === === === // Reset -Function clear() : cs:C1710.dropDownDelegate +Function clear() This:C1470.data.index:=-1 This:C1470.data.currentValue:=String:C10(This:C1470.data.placeholder) - - return This:C1470 \ No newline at end of file diff --git a/Project/Sources/Classes/formDelegate.4dm b/Project/Sources/Classes/formDelegate.4dm index dae8a3b..1206fce 100644 --- a/Project/Sources/Classes/formDelegate.4dm +++ b/Project/Sources/Classes/formDelegate.4dm @@ -105,6 +105,9 @@ Class constructor($param) This:C1470.subform:=cs:C1710.subformDelegate This:C1470.__DELEGATES__.push(This:C1470.subform) + This:C1470.tabControl:=cs:C1710.tabControlDelegate + This:C1470.__DELEGATES__.push(This:C1470.tabControl) + This:C1470.thermometer:=cs:C1710.thermometerDelegate This:C1470.__DELEGATES__.push(This:C1470.thermometer) @@ -132,6 +135,7 @@ Class constructor($param) This:C1470.selector; \ This:C1470.stepper; \ This:C1470.subform; \ + This:C1470.tabControl; \ This:C1470.thermometer; \ This:C1470.webArea; \ This:C1470.widget] @@ -187,7 +191,9 @@ Function onLoad() var $widget : cs:C1710.widgetDelegate // Defines the container reference in subform instances - For each ($o; This:C1470.instantiatedSubforms) + $widgets:=This:C1470._getInstantiated(cs:C1710.subformDelegate) + + For each ($o; $widgets) $o._execute(Formula:C1597(Form:C1466.__DIALOG__.__CONTAINER__:=$o)) @@ -195,6 +201,7 @@ Function onLoad() // Add the widgets events that we cannot select in the form properties 😇 // ⚠️ OBJECT GET EVENTS return an empty array if no object method, so we analyze the json form + $widgets:=This:C1470._getInstantiated() If ($widgets.length>0) @@ -266,7 +273,7 @@ Function update($stopTimer : Boolean) // === === === === === === === === === === === === === === === === === === === === === === === === === === Function onBoundVariableChange() - If (Asserted:C1132(This:C1470.isSubform; "Warning: This form is not declared as a subform")) + If (Asserted:C1132(This:C1470.isSubform; "⚠️ This form is not declared as a sub-form.")) This:C1470._standardSuite(Current method name:C684) @@ -485,7 +492,7 @@ Function stopTimer() /// Gets the associated worker Function get worker() : Variant - return This:C1470._worker#Null:C1517 ? This:C1470._worker : "" + return String:C10(This:C1470._worker) // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> /// Sets the associated worker @@ -574,11 +581,11 @@ Function get containerName() : Text If (This:C1470._isDebugWindow()) - return This:C1470.isSubform ? This:C1470.__SUPER__.__CONTAINER__.parent.container : "" + return This:C1470.__SUPER__.__CONTAINER__ ? This:C1470.__SUPER__.__CONTAINER__.parent.container : "" Else - If (Asserted:C1132(Bool:C1537(This:C1470.isSubform); "Warning: This form is not declared as a subform")) + If (Asserted:C1132(Bool:C1537(This:C1470.isSubform); "⚠️ This form is not declared as a sub-form.")) return This:C1470.__SUPER__.__CONTAINER__.parent.container @@ -590,11 +597,11 @@ Function get container() : Object If (This:C1470._isDebugWindow()) - return This:C1470.isSubform ? This:C1470.__SUPER__.__CONTAINER__.__SUPER__ : Null:C1517 + return This:C1470.__SUPER__.__CONTAINER__ ? This:C1470.__SUPER__.__CONTAINER__.__SUPER__ : Null:C1517 Else - If (Asserted:C1132(Bool:C1537(This:C1470.isSubform); "Warning: This form is not declared as a subform")) + If (Asserted:C1132(Bool:C1537(This:C1470.isSubform); "⚠️ This form is not declared as a sub-form.")) return This:C1470.__SUPER__.__CONTAINER__.__SUPER__ @@ -606,13 +613,13 @@ Function get containerInstance() : Object If (This:C1470._isDebugWindow()) - return This:C1470.isSubform ? This:C1470.container[This:C1470.containerName] : Null:C1517 + return This:C1470.__SUPER__.__CONTAINER__m ? This:C1470.container[This:C1470.containerName] : Null:C1517 Else - If (Asserted:C1132(Bool:C1537(This:C1470.isSubform); "Warning: This form is not declared as a subform")) + If (Asserted:C1132(Bool:C1537(This:C1470.isSubform); "⚠️ This form is not declared as a sub-form.")) - return This:C1470.container[This:C1470.containerName] + return Try(This:C1470.container[This:C1470.containerName]) End if End if @@ -631,7 +638,7 @@ Function set getContainerValue($value) // Sets the container value Function setContainerValue($value) - If (Asserted:C1132(This:C1470.isSubform; "Warning: This form is not declared as a subform")) + If (Asserted:C1132(This:C1470.isSubform; "⚠️ This form is not declared as a sub-form.")) OBJECT SET SUBFORM CONTAINER VALUE:C1784($value) @@ -646,7 +653,7 @@ Function getContainerValue() : Variant Else - If (Asserted:C1132(This:C1470.isSubform; "Warning: This form is not declared as a subform")) + If (Asserted:C1132(This:C1470.isSubform; "⚠️ This form is not declared as a sub-form.")) return OBJECT Get subform container value:C1785 @@ -747,7 +754,7 @@ Function callMeBack($param; $param1; $paramN) // === === === === === === === === === === === === === === === === === === === === === === === === === === /// Generates a callback of the current form with the given method -Function callMe($method : Text; $param; ... ) +Function callMe($method : Text; ... ) /* .callMe ( method : Text ) @@ -765,10 +772,11 @@ Function callMe($method : Text; $param; ... ) Else $code:="CALL FORM:C1391("+String:C10(This:C1470.window.ref)+"; \""+$method+"\"" + var $param : Collection - If (Value type:C1509($param)=Is collection:K8:32) - - For ($i; 0; $param.length-1; 1) + If (Value type:C1509($2)=Is collection:K8:32) + $param:=${2} + For ($i; 0; $2.length-1; 1) $code:=$code+"; $1["+String:C10($i)+"]" @@ -777,7 +785,6 @@ Function callMe($method : Text; $param; ... ) Else $param:=[] - For ($i; 2; Count parameters:C259; 1) $param.push(${$i}) @@ -794,7 +801,7 @@ Function callMe($method : Text; $param; ... ) // === === === === === === === === === === === === === === === === === === === === === === === === === === /// Executes a project method in the context of a subform (without returned value) -Function callChild($subform; $method : Text; $param; ... ) +Function callChild($subform; $method : Text; ... ) // .executeInSubform ( subform : Object | Text ; method : Text ) // .executeInSubform ( subform : Object | Text ; method : Text ; param : Collection ) @@ -819,6 +826,7 @@ Function callChild($subform; $method : Text; $param; ... ) ARRAY TEXT:C222($widgets; 0) FORM GET OBJECTS:C898($widgets; Form all pages:K67:7) + var $param : Collection If (Find in array:C230($widgets; $target)>0) @@ -1468,6 +1476,11 @@ Function set maxHeight($height : Integer) FORM SET VERTICAL RESIZING:C893($resize; $min; $height) // MARK:- + // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _isSubform() : Boolean + + return Value type:C1509(OBJECT Get subform container value:C1785)#Is undefined:K8:13 + // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Function _isDebugWindow() : Boolean diff --git a/Project/Sources/Classes/groupDelegate.4dm b/Project/Sources/Classes/groupDelegate.4dm index c33da62..9636748 100644 --- a/Project/Sources/Classes/groupDelegate.4dm +++ b/Project/Sources/Classes/groupDelegate.4dm @@ -15,7 +15,7 @@ in this case, all named objects are initialized with widget class property members : Collection -Class constructor($members : Variant; ... ) +Class constructor($members : Variant; ... : Object) C_LONGINT:C283($i) C_TEXT:C284($t) @@ -589,7 +589,7 @@ Function show($visible : Boolean) : cs:C1710.groupDelegate return This:C1470 // === === === === === === === === === === === === === === === === === === === === === === === === === === -Function hide() : cs:C1710.groupDelegate +Function hide : cs:C1710.groupDelegate var $o : cs:C1710.staticDelegate diff --git a/Project/Sources/Classes/hListDelegate.4dm b/Project/Sources/Classes/hListDelegate.4dm index 7e3fddc..c5dcfc8 100644 --- a/Project/Sources/Classes/hListDelegate.4dm +++ b/Project/Sources/Classes/hListDelegate.4dm @@ -40,17 +40,17 @@ Function clear($keepSubLists : Boolean) // === === === === === === === === === === === === === === === === === === === === === === === === === === /// Returns a copy of the current list -Function copy() : Integer +Function copy() : cs:C1710.hListDelegate If (Asserted:C1132(This:C1470.isList; "No list to duplicate")) - return Copy list:C626(This:C1470.ref) + return cs:C1710.hListDelegate.new(This:C1470.name; Copy list:C626(This:C1470.ref)) End if // === === === === === === === === === === === === === === === === === === === === === === === === === === /// Alias of copy() -Function clone() : Integer +Function clone() : cs:C1710.hListDelegate return This:C1470.copy() diff --git a/Project/Sources/Classes/listboxDelegate.4dm b/Project/Sources/Classes/listboxDelegate.4dm index c7d9a6e..a391bd9 100644 --- a/Project/Sources/Classes/listboxDelegate.4dm +++ b/Project/Sources/Classes/listboxDelegate.4dm @@ -1,4 +1,3 @@ - Class extends scrollableDelegate // === === === === === === === === === === === === === === === === === === === === === === === === === === @@ -8,11 +7,16 @@ Class constructor($name : Text) ASSERT:C1129(This:C1470.type=Object type listbox:K79:8) + This:C1470.source:=Null:C1517 // collection/entity selection + This:C1470.data:=Null:C1517 + // Predefined container for collection or selection listboxes This:C1470.item:=Null:C1517 This:C1470.itemPosition:=0 This:C1470.items:=Null:C1517 + This:C1470.updateDefinition() + // Backup design properties This:C1470.saveProperties() @@ -29,6 +33,27 @@ Function get rowsNumber() : Integer return LISTBOX Get number of rows:C915(*; This:C1470.name) + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== + // return true when there is data +Function get isReady : Boolean + + return (This:C1470.source#Null:C1517) + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get dataLength : Integer + + return This:C1470.data=Null:C1517 ? 0 : This:C1470.data.length + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get isSelected : Boolean + + return This:C1470.item#Null:C1517 + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get index : Integer + + return This:C1470.itemPosition-1 + //mark:-[READ & WRITE] // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== Function get movableLines() : Boolean @@ -99,15 +124,18 @@ Function sort($column : Integer; $descendant : Boolean) Else LISTBOX SORT COLUMNS:C916(*; This:C1470.name; $column; >) + End if + OBJECT SET VALUE:C1742(This:C1470.definition[$column-1].header; $descendant ? 2 : 1) + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== Function get selectionHighlight() : Boolean return Bool:C1537(LISTBOX Get property:C917(*; This:C1470.name; lk hide selection highlight:K53:41)) // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> -Function set selectionHighlight($on : Boolean) +Function set selectionHighlight($on : Boolean) : cs:C1710.listboxDelegate LISTBOX SET PROPERTY:C1440(*; This:C1470.name; lk hide selection highlight:K53:41; $on ? lk yes:K53:69 : lk no:K53:68) @@ -155,6 +183,50 @@ Function get dataSourceType() : Text End case End if + + // MARK:-[SOURCE & DATA] + // === === === === === === === === === === === === === === === === === === === === === === === === === === + // Set the source data and determine it's kind +Function setSource($source) : cs:C1710.listboxDelegate + + This:C1470._clearDatasources() + + var $type : Integer:=Value type:C1509($source) + + If ($type=Is collection:K8:32) + + This:C1470.source:=$source + This:C1470.kind:=$type + This:C1470.setData() + + return This:C1470 + + End if + + If ($type=Is object:K8:27) && (OB Instance of:C1731($source; 4D:C1709.EntitySelection)) // entity selection + + This:C1470.source:=$source + This:C1470.kind:=$type + This:C1470.setData() + + return This:C1470 + + End if + + This:C1470.source:=Null:C1517 + This:C1470.data:=Null:C1517 + This:C1470.kind:=Null:C1517 + + return This:C1470 + + // === === === === === === === === === === === === === === === === === === === === === === === === === === +Function setData : cs:C1710.listboxDelegate + + This:C1470.data:=This:C1470.source + + return This:C1470 + + // MARK:- // === === === === === === === === === === === === === === === === === === === === === === === === === === Function isCollection($caller : Text) : Boolean @@ -406,7 +478,7 @@ Function getFooterName($columnNumber : Integer) : Text If (This:C1470.definition=Null:C1517) This:C1470.updateDefinition() - + End if return String:C10(This:C1470.definition[$columnNumber-1].footer) @@ -502,7 +574,7 @@ Function cellPosition($e : cs:C1710.evt) : Object Function getCoordinates() : Object This:C1470.getScrollPosition() - This:C1470._getScrollbars() + This:C1470.getScrollbars() This:C1470.updateDefinition() This:C1470.updateCell() @@ -853,7 +925,7 @@ Function updateDefinition() : cs:C1710.listboxDelegate End for each End for - This:C1470._getScrollbars() + This:C1470.getScrollbars() return This:C1470 @@ -1220,4 +1292,11 @@ Function _commonProperties() : Object fontStyleExpression: {k: lk font style expression:K53:49}; \ truncate: {k: lk truncate:K53:37}\ } - \ No newline at end of file + + // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** + // clear the objects that are set by the listbox object +Function _clearDatasources() + + This:C1470.item:=Null:C1517 + This:C1470.itemPosition:=0 + This:C1470.items:=Null:C1517 \ No newline at end of file diff --git a/Project/Sources/Classes/menu.4dm b/Project/Sources/Classes/menu.4dm index 5062109..c4936fd 100644 --- a/Project/Sources/Classes/menu.4dm +++ b/Project/Sources/Classes/menu.4dm @@ -862,6 +862,8 @@ Function popup($where : Variant; $x : Variant; $y : Integer) : cs:C1710.menu //______________________________________________________ : (Value type:C1509($where)=Is object:K8:27) // Widget reference {; default} + Try($where.updateCoordinates()) + If (Count parameters:C259>1) This:C1470.choice:=Dynamic pop up menu:C1006(This:C1470.ref; String:C10($x); Num:C11($where.windowCoordinates.left); Num:C11($where.windowCoordinates.bottom)) diff --git a/Project/Sources/Classes/pictureDelegate.4dm b/Project/Sources/Classes/pictureDelegate.4dm index 7073d69..b560cae 100644 --- a/Project/Sources/Classes/pictureDelegate.4dm +++ b/Project/Sources/Classes/pictureDelegate.4dm @@ -111,7 +111,7 @@ Function getCoordinates()->$coordinates : Object $coordinates:=Super:C1706.getCoordinates() - This:C1470._getScrollbars() + This:C1470.getScrollbars() This:C1470.getScrollPosition() This:C1470.getDimensions() diff --git a/Project/Sources/Classes/scrollableDelegate.4dm b/Project/Sources/Classes/scrollableDelegate.4dm index fdc777e..e65d1f0 100644 --- a/Project/Sources/Classes/scrollableDelegate.4dm +++ b/Project/Sources/Classes/scrollableDelegate.4dm @@ -15,7 +15,7 @@ Class constructor($name : Text) Object type hierarchical list:K79:7; \ Object type text input:K79:4].includes(This:C1470.type)) - This:C1470._getScrollbars() + This:C1470.getScrollbars() // === === === === === === === === === === === === === === === === === === === === === === === === === === Function getScrollPosition() : Variant @@ -71,7 +71,7 @@ Function setScrollPosition($vertical; $horizontal) : cs:C1710.scrollableDelegate return This:C1470 // === === === === === === === === === === === === === === === === === === === === === === === === === === -Function _getScrollbars() +Function getScrollbars var $horizontal; $vertical : Integer @@ -91,7 +91,7 @@ Function setScrollbars($horizontal; $vertical) : cs:C1710.scrollableDelegate // === === === === === === === === === === === === === === === === === === === === === === === === === === Function setHorizontalScrollbar($display) : cs:C1710.scrollableDelegate - This:C1470._getScrollbars() + This:C1470.getScrollbars() OBJECT SET SCROLLBAR:C843(*; This:C1470.name; Num:C11($display); Num:C11(This:C1470.scrollbar.vertical)) @@ -100,7 +100,7 @@ Function setHorizontalScrollbar($display) : cs:C1710.scrollableDelegate // === === === === === === === === === === === === === === === === === === === === === === === === === === Function setVerticalScrollbar($display) : cs:C1710.scrollableDelegate - This:C1470._getScrollbars() + This:C1470.getScrollbars() OBJECT SET SCROLLBAR:C843(*; This:C1470.name; Num:C11(This:C1470.scrollbar.horizontal); Num:C11($display)) diff --git a/Project/Sources/Classes/selectorDelegate.4dm b/Project/Sources/Classes/selectorDelegate.4dm index ba76925..fb5e788 100644 --- a/Project/Sources/Classes/selectorDelegate.4dm +++ b/Project/Sources/Classes/selectorDelegate.4dm @@ -102,7 +102,7 @@ Function set current($current) // === === === === === === === === === === === === === === === === === === === === === === === === === === // Selects an element by its position or by its value (or that of the linked data). -Function select($element) : cs:C1710.selectorDelegate +Function select($element) var $index : Integer @@ -139,6 +139,4 @@ Function select($element) : cs:C1710.selectorDelegate ASSERT:C1129(False:C215; "element parameter must be a text or a number") //______________________________________________________ - End case - - return This:C1470 \ No newline at end of file + End case \ No newline at end of file diff --git a/Project/Sources/Classes/staticDelegate.4dm b/Project/Sources/Classes/staticDelegate.4dm index 93bc5da..b38ad81 100644 --- a/Project/Sources/Classes/staticDelegate.4dm +++ b/Project/Sources/Classes/staticDelegate.4dm @@ -58,6 +58,21 @@ Function setTitle($title : Text) : cs:C1710.staticDelegate return This:C1470 //MARK:-[Coordinates & Sizing] + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get resizingOptions() : Object + + var $horizontal; $vertical : Integer + + OBJECT GET RESIZING OPTIONS:C1176(*; This:C1470.name; $horizontal; $vertical) + + return {horizontal: $horizontal; vertical: $vertical} + + // === === === === === === === === === === === === === === === === === === === === === === === === === === +Function setResizingOptions($horizontal : Integer; $vertical : Integer) + + $vertical:=Count parameters:C259<2 ? This:C1470.resizingOptions.vertical : $vertical + OBJECT SET RESIZING OPTIONS:C1175(*; This:C1470.name; $horizontal; $vertical) + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== Function get width() : Integer @@ -104,6 +119,74 @@ Function setHeight($height : Integer) : cs:C1710.staticDelegate return This:C1470 + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get left() : Integer + + return This:C1470.getCoordinates().left + + // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> +Function set left($left : Integer) + + var $width : Integer + var $o : cs:C1710.coord + + This:C1470.getCoordinates() + $o:=This:C1470._coordinates + $width:=$o.width + $o.left:=$left + $o.right:=$o.left+$width + This:C1470.setCoordinates($o) + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get top() : Integer + + return This:C1470.getCoordinates().top + + // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> +Function set top($top : Integer) + + var $height : Integer + var $o : cs:C1710.coord + + This:C1470.getCoordinates() + $o:=This:C1470._coordinates + $height:=$o.height + $o.top:=$top + $o.bottom:=$o.top+$height + This:C1470.setCoordinates($o) + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get right() : Integer + + return This:C1470.getCoordinates().right + + // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> +Function set right($right : Integer) + + var $width : Integer + var $o : cs:C1710.coord + + This:C1470.getCoordinates() + $o:=This:C1470._coordinates + $o.right:=$right + This:C1470.setCoordinates($o) + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get bottom() : Integer + + return This:C1470.getCoordinates().bottom + + // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> +Function set bottom($bottom : Integer) + + var $width : Integer + var $o : cs:C1710.coord + + This:C1470.getCoordinates() + $o:=This:C1470._coordinates + $o.bottom:=$bottom + This:C1470.setCoordinates($o) + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== Function get dimensions() : Object @@ -518,12 +601,6 @@ Function updateCoordinates($left : Integer; $top : Integer; $right : Integer; $b End if - //This._coordinates:={\ - left: $left; \ - top: $top; \ - right: $right; \ - bottom: $bottom} - This:C1470._coordinates:=cs:C1710.coord.new($left; $top; $right; $bottom) // Keep the position defined in structure diff --git a/Project/Sources/Classes/subformDelegate.4dm b/Project/Sources/Classes/subformDelegate.4dm index a6c1a43..b7fbec7 100644 --- a/Project/Sources/Classes/subformDelegate.4dm +++ b/Project/Sources/Classes/subformDelegate.4dm @@ -9,6 +9,9 @@ Class constructor($name : Text; $events : Object; $super : Object) This:C1470.parent:=This:C1470._getParent($name) + This:C1470.isSubform:=True:C214 + + // MARK:Delegates 📦 This:C1470.form:=cs:C1710.formDelegate.new(This:C1470) diff --git a/Project/Sources/Classes/svg.4dm b/Project/Sources/Classes/svg.4dm index 7c91172..77bdd0a 100644 --- a/Project/Sources/Classes/svg.4dm +++ b/Project/Sources/Classes/svg.4dm @@ -1,25 +1,38 @@ +property store : Collection +property _containers; _shapes; _descriptive; _notContainer; _aspectRatioValues; _textRenderingValue; _reservedNames : Collection + Class extends xml Class constructor($content) - If (Count parameters:C259>=1) - - Super:C1705($content) - - Else - - Super:C1705() + Super:C1705($content) + + This:C1470.latest:=Null:C1517 + This:C1470.graphic:=Null:C1517 + This:C1470.store:=New collection:C1472 + + If ($content=Null:C1517) // Create an empty canvas This:C1470.newCanvas() End if - This:C1470.latest:=Null:C1517 - This:C1470.graphic:=Null:C1517 - This:C1470.store:=New collection:C1472 + This:C1470[""]:=New object:C1471(\ + "absolute"; True:C214\ + ) + + // Elements that can have graphic elements and other container elements as child elements. + This:C1470._containers:=New collection:C1472("a"; "defs"; "g"; "marker"; "mask"; "pattern"; "svg"; "switch"; "symbol") + + // Graphics element that is defined by some combination of straight lines and curves + This:C1470._shapes:=New collection:C1472("path"; "rect"; "circle"; "ellipse"; "line"; "polyline"; "polygon") + + // Elements that provide additional descriptive information about their parent. + This:C1470._descriptive:=New collection:C1472("desc"; "metadata"; "title") + + This:C1470._notContainer:=New collection:C1472("rect"; "line"; "image"; "circle"; "ellipse"; "polygon"; "polyline"; "use"; "textArea"; "path") - This:C1470._notContainer:=New collection:C1472("rect"; "line"; "image"; "circle"; "ellipse"; "path"; "polygon"; "polyline"; "use"; "textArea") This:C1470._aspectRatioValues:=New collection:C1472("none"; "xMinYMin"; "xMidYMin"; "xMaxYMin"; "xMinYMid"; "xMidYMid"; "xMaxYMid"; "xMinYMax"; "xMidYMax"; "xMaxYMax") This:C1470._textRenderingValue:=New collection:C1472("auto"; "optimizeSpeed"; "optimizeLegibility"; "geometricPrecision"; "inherit") @@ -30,31 +43,29 @@ Class constructor($content) //MARK:-DOCUMENTS & STRUCTURE //——————————————————————————————————————————————————————————— // Close the current tree if any & create a new svg default structure. - // ⚠️ Overrides the method of the inherited class Function newCanvas($attributes : Object) : cs:C1710.svg - var $root; $t : Text + var $t : Text This:C1470._reset() - $root:=DOM Create XML Ref:C861("svg"; "http://www.w3.org/2000/svg") - This:C1470.success:=Bool:C1537(OK) + Super:C1706.newRef("svg"; "http://www.w3.org/2000/svg") If (This:C1470.success) - This:C1470.root:=$root + This:C1470.store.push(New object:C1471(\ + "id"; "root"; \ + "dom"; This:C1470.root)) - DOM SET XML ATTRIBUTE:C866($root; "xmlns:xlink"; "http://www.w3.org/1999/xlink") - - DOM SET XML DECLARATION:C859($root; "UTF-8"; True:C214) - XML SET OPTIONS:C1090($root; XML indentation:K45:34; Choose:C955(Is compiled mode:C492; XML no indentation:K45:36; XML with indentation:K45:35)) - - This:C1470.success:=Bool:C1537(OK) + Super:C1706.setDeclaration("UTF-8"; True:C214) + Super:C1706.setOption(XML indentation:K45:34; Is compiled mode:C492 ? XML no indentation:K45:36 : XML with indentation:K45:35) + Super:C1706.setAttribute(This:C1470.root; "xmlns:xlink"; "http://www.w3.org/1999/xlink") + Super:C1706.setAttribute(This:C1470.root; "xmlns:vdl"; "https://github.com/vdelachaux") If (This:C1470.success) // Default values - DOM SET XML ATTRIBUTE:C866(This:C1470.root; \ + Super:C1706.setAttributes(This:C1470.root; New object:C1471(\ "viewport-fill"; "none"; \ "fill"; "none"; \ "stroke"; "black"; \ @@ -62,46 +73,34 @@ Function newCanvas($attributes : Object) : cs:C1710.svg "font-size"; 12; \ "text-rendering"; "geometricPrecision"; \ "shape-rendering"; "crispEdges"; \ - "preserveAspectRatio"; "none") + "preserveAspectRatio"; "none")) + + This:C1470.success:=Bool:C1537(OK) End if End if - If (Bool:C1537(OK) & (This:C1470.root#Null:C1517)) + If (This:C1470.success) - If (Count parameters:C259>=1) + If ($attributes#Null:C1517) - If ($attributes#Null:C1517) - - For each ($t; $attributes) - - Case of - - //_______________________ - : ($t="keepReference") - - This:C1470.autoClose:=Bool:C1537($attributes[$t]) - - //_______________________ - Else - - DOM SET XML ATTRIBUTE:C866(This:C1470.root; \ - $t; $attributes[$t]) - - //______________________ - End case - End for each - - Else - - // + For each ($t; $attributes) - End if - - Else - - // - + Case of + + //_______________________ + : ($t="keepReference") + + This:C1470.autoClose:=Bool:C1537($attributes[$t]) + + //_______________________ + Else + + Super:C1706.setAttribute(This:C1470.root; $t; $attributes[$t]) + + //______________________ + End case + End for each End if Else @@ -110,11 +109,11 @@ Function newCanvas($attributes : Object) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Returns the picture described by the SVG structure -Function picture($exportType : Variant; $keepStructure : Boolean) : Picture +Function picture($exportType; $keepStructure : Boolean) : Picture var $picture : Picture @@ -128,7 +127,7 @@ Function picture($exportType : Variant; $keepStructure : Boolean) : Picture If (This:C1470.autoClose)\ & (Not:C34($keepStructure)) - This:C1470.close() + Super:C1706.close() End if @@ -142,7 +141,7 @@ Function picture($exportType : Variant; $keepStructure : Boolean) : Picture If (This:C1470.autoClose)\ & (Not:C34($exportType)) - This:C1470.close() + Super:C1706.close() End if @@ -152,7 +151,7 @@ Function picture($exportType : Variant; $keepStructure : Boolean) : Picture If (This:C1470.autoClose) - This:C1470.close() + Super:C1706.close() End if End if @@ -164,7 +163,7 @@ Function picture($exportType : Variant; $keepStructure : Boolean) : Picture If (This:C1470.autoClose) - This:C1470.close() + Super:C1706.close() End if @@ -175,7 +174,7 @@ Function picture($exportType : Variant; $keepStructure : Boolean) : Picture This:C1470.graphic:=$picture - return ($picture) + return $picture Else @@ -197,7 +196,7 @@ Function exportText($file : 4D:C1709.File; $keepStructure : Boolean) : cs:C1710. End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Writes the contents of the SVG tree into a picture file @@ -222,7 +221,7 @@ Function exportPicture($file : 4D:C1709.File; $keepStructure : Boolean) : cs:C17 End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function group($id : Text; $attachTo) : cs:C1710.svg @@ -233,8 +232,23 @@ Function group($id : Text; $attachTo) : cs:C1710.svg Else - // Auto - This:C1470.latest:=Super:C1706.create(This:C1470._getContainer(); "g") + If (This:C1470.latest=Null:C1517) + + This:C1470.latest:=This:C1470.root + + Else + + var $name : Text + DOM GET XML ELEMENT NAME:C730(This:C1470.latest; $name) + + If (This:C1470._notContainer.includes($name)) + + This:C1470.latest:=This:C1470.parent(This:C1470.latest) + + End if + End if + + This:C1470.latest:=Super:C1706.create(This:C1470.latest; "g") End if @@ -245,7 +259,7 @@ Function group($id : Text; $attachTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Store the last created element as symbol @@ -267,16 +281,7 @@ Function symbol($name : Text; $applyTo) : cs:C1710.svg If (This:C1470.success) - If (Count parameters:C259>=2) - - $source:=This:C1470._getTarget($applyTo) - - Else - - // Auto - $source:=This:C1470._getTarget() - - End if + $source:=Count parameters:C259>=2 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget() This:C1470.store.push(New object:C1471(\ "id"; $name; \ @@ -302,10 +307,62 @@ Function symbol($name : Text; $applyTo) : cs:C1710.svg End if End if - // Restore the target preceding the creation of the symbol - This:C1470.latest:=Choose:C955(This:C1470._current=Null:C1517; This:C1470.root; This:C1470._current) + // Restore the root as target + This:C1470.latest:=This:C1470.root + + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Define a clipPath and apply to the root element +Function clipPath($id : Text; $applyTo) : cs:C1710.svg + + var $defs; $mask; $node; $source : Text + + $id:=Length:C16($id)>0 ? $id : Generate UUID:C1066 + + $defs:=This:C1470._defs() + + If (This:C1470.success) + + $mask:=Super:C1706.create($defs; "clipPath") + + If (This:C1470.success) + + Super:C1706.setAttribute($mask; "id"; $id) + + If (This:C1470.success) + + $source:=Count parameters:C259>=2 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget() + + This:C1470.store.push(New object:C1471(\ + "id"; $id; \ + "dom"; $mask)) + + Super:C1706.setAttribute($mask; "preserveAspectRatio"; "xMidYMid") + + $node:=Super:C1706.clone($source; $mask) + This:C1470.remove($source) + + Super:C1706.setAttribute(This:C1470.root; "clip-path"; "url(#"+$id+")") + + End if + + Else + + This:C1470._pushError("Failed to create the clipPath: "+$id) + + End if + + Else + + This:C1470._pushError("Failed to locate/create the \"defs\" element") + + End if + + // Restore the root as target + This:C1470.latest:=This:C1470.root - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Place an occurence of the symbol @@ -339,7 +396,30 @@ Function use($symbol; $attachTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Assigns a built-in style to an element or creates a root style element +Function style($style : Text; $applyTo) : cs:C1710.svg + + var $node : Text + + $node:=$applyTo#Null:C1517 ? This:C1470._getContainer($applyTo) : This:C1470._getContainer() + + If ($node=This:C1470.root) + + // Create an internal CSS style sheet + $node:=Super:C1706.create(This:C1470.root; "style"; {type: "text/css"}) + Super:C1706.setValue($node; $style; True:C214) + + Else + + // Assigns a built-in style to an element + Super:C1706.setAttribute($node; "style"; $style) + + End if + + return This:C1470 //——————————————————————————————————————————————————————————— // Attach a style sheet @@ -367,11 +447,56 @@ Function styleSheet($file : 4D:C1709.File) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Create, if any, & set the document 'title' element +Function title($title : Text) : cs:C1710.svg + + var $node : Text + + $node:=This:C1470.findOrCreate(This:C1470.root; "title") + Super:C1706.setValue($node; $title) + + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Create, if any, & set the document 'desc' element +Function desc($description : Text) : cs:C1710.svg + + var $node : Text + + $node:=This:C1470.findOrCreate(This:C1470.root; "desc") + Super:C1706.setValue($node; $description) + + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Append a comment element +Function comment($comment : Text; $attachTo) : cs:C1710.svg + + var $node : Text + + $node:=Count parameters:C259=2 ? This:C1470._getContainer($attachTo) : This:C1470.root + Super:C1706.comment($node; $comment) //MARK:-DRAWING //——————————————————————————————————————————————————————————— -Function rect($height : Real; $width : Variant; $attachTo) : cs:C1710.svg + // Defines the following coordinates as absolute +Function absolute() : cs:C1710.svg + + This:C1470[""].absolute:=True:C214 + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Defines the following coordinates as relative +Function relative() : cs:C1710.svg + + This:C1470[""].absolute:=False:C215 + return This:C1470 + + //——————————————————————————————————————————————————————————— +Function rect($width : Variant; $height : Real; $attachTo) : cs:C1710.svg var $node : Text var $breadth : Real @@ -381,26 +506,29 @@ Function rect($height : Real; $width : Variant; $attachTo) : cs:C1710.svg If (This:C1470._requiredParams($paramNumber; 1)) - $breadth:=$height // Square by default + $breadth:=$width // Square by default Case of //………………………………………………………………………………………… : ($paramNumber=1) + // .rect(width) $node:=This:C1470._getContainer() //………………………………………………………………………………………… : ($paramNumber=2) - If (Value type:C1509($width)=Is real:K8:4)\ + If (Value type:C1509($height)=Is real:K8:4)\ | (Value type:C1509($width)=Is longint:K8:6) - $breadth:=$width + // .rect(width; height) + $breadth:=$height $node:=This:C1470._getContainer() Else + // .rect(width; attachTo) $node:=This:C1470._getContainer($width) End if @@ -408,34 +536,35 @@ Function rect($height : Real; $width : Variant; $attachTo) : cs:C1710.svg //………………………………………………………………………………………… : ($paramNumber=3) + // .rect(width; height; attachTo) $node:=This:C1470._getContainer($attachTo) - $breadth:=$width + $breadth:=$height //………………………………………………………………………………………… End case This:C1470.latest:=Super:C1706.create($node; "rect"; New object:C1471(\ - "width"; $height; \ + "width"; $width; \ "height"; $breadth)) End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function square($side : Real; $attachTo) : cs:C1710.svg If (Count parameters:C259=2) - This:C1470.rect($side; This:C1470._getContainer($attachTo)) + This:C1470.rect($side; $side; This:C1470._getContainer($attachTo)) Else - This:C1470.rect($side; This:C1470._getContainer()) + This:C1470.rect($side; $side; This:C1470._getContainer()) End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function circle($r : Real; $cx : Real; $cy : Real; $attachTo) : cs:C1710.svg @@ -506,7 +635,7 @@ Function circle($r : Real; $cx : Real; $cy : Real; $attachTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function ellipse($rx : Real; $ry : Real; $cx : Real; $cy : Real; $attachTo) : cs:C1710.svg @@ -600,7 +729,30 @@ Function ellipse($rx : Real; $ry : Real; $cx : Real; $cy : Real; $attachTo) : cs End if - return (This:C1470) + return This:C1470 + + //——————————————————————————————————————————————————————————— +Function boundedEllipse($x : Real; $y : Real; $width : Real; $height : Real; $attachTo) : cs:C1710.svg + + var $rx; $ry : Real + var $node : Text + + If (This:C1470._requiredParams(Count parameters:C259; 4)) + + $node:=$attachTo#Null:C1517 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() + + $rx:=$width\2 + $ry:=$height\2 + + This:C1470.latest:=Super:C1706.create($node; "ellipse"; New object:C1471(\ + "cx"; $x+$rx; \ + "cy"; $y+$ry; \ + "rx"; $rx; \ + "ry"; $ry)) + + End if + + return This:C1470 //——————————————————————————————————————————————————————————— Function line($x1 : Real; $y1 : Real; $x2 : Real; $y2 : Real; $attachTo) : cs:C1710.svg @@ -631,10 +783,10 @@ Function line($x1 : Real; $y1 : Real; $x2 : Real; $y2 : Real; $attachTo) : cs:C1 End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— -Function image($picture : Variant; $attachTo) : cs:C1710.svg +Function image($picture; $attachTo) : cs:C1710.svg var $node; $t : Text var $p : Picture @@ -645,26 +797,31 @@ Function image($picture : Variant; $attachTo) : cs:C1710.svg If (This:C1470._requiredParams($paramNumber; 1)) - If ($paramNumber=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if + $node:=$paramNumber=2 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() Case of //______________________________________________________ - : (Value type:C1509($picture)=Is picture:K8:10) // Embedded + : (Value type:C1509($picture)=Is picture:K8:10) // Embed the image - If (Picture size:C356($picture)>0) + This:C1470.success:=Picture size:C356($picture)>0 + + If (This:C1470.success) + + // Determines the codec to use (default: .png) + ARRAY TEXT:C222($codecs; 0x0000) + GET PICTURE FORMATS:C1406($picture; $codecs) + + // Priority order: svg > png > jpg > fisrt | default = png + $codecs{0}:=\ + Find in array:C230($codecs; ".svg")>0 ? ".svg" : \ + Find in array:C230($codecs; ".png")>0 ? ".png" : \ + Find in array:C230($codecs; ".jpg")>0 ? ".jpg" : \ + Size of array:C274($codecs)>0 ? $codecs{1} : \ + ".png" - // Encode in base64 - PICTURE TO BLOB:C692($picture; $x; ".png") + // Encode the image + PICTURE TO BLOB:C692($picture; $x; $codecs{0}) This:C1470.success:=Bool:C1537(OK) If (This:C1470.success) @@ -672,22 +829,11 @@ Function image($picture : Variant; $attachTo) : cs:C1710.svg BASE64 ENCODE:C895($x; $t) CLEAR VARIABLE:C89($x) - // Put the encoded image PICTURE PROPERTIES:C457($picture; $width; $height) - - If ($paramNumber=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if + $codecs{0}:=$codecs{0}=".svg" ? "svg+xml" : Replace string:C233($codecs{0}; "."; "") This:C1470.latest:=Super:C1706.create($node; "image"; New object:C1471(\ - "xlink:href"; "data:;base64,"+$t; \ + "xlink:href"; "data:image/"+$codecs{0}+";base64,"+$t; \ "x"; 0; \ "y"; 0; \ "width"; $width; \ @@ -695,6 +841,8 @@ Function image($picture : Variant; $attachTo) : cs:C1710.svg End if + CLEAR VARIABLE:C89($picture) + Else This:C1470._pushError("Given picture is empty") @@ -702,64 +850,49 @@ Function image($picture : Variant; $attachTo) : cs:C1710.svg End if //______________________________________________________ - : (Value type:C1509($picture)=Is object:K8:27) // Url + : (Value type:C1509($picture)=Is object:K8:27)\ + && (OB Instance of:C1731($picture; 4D:C1709.File)) // Create a link to a file + + This:C1470.success:=$picture.exists - If (OB Instance of:C1731($picture; 4D:C1709.File)) + If (This:C1470.success) + + // Unsandboxed, if any + $picture:=File:C1566(File:C1566($picture.path).platformPath; fk platform path:K87:2) + + READ PICTURE FILE:C678($picture.platformPath; $p) + + This:C1470.success:=Bool:C1537(OK) - If (Bool:C1537($picture.exists)) + If (This:C1470.success) - // Unsandboxed, if any - $picture:=File:C1566(File:C1566($picture.path).platformPath; fk platform path:K87:2) + PICTURE PROPERTIES:C457($p; $width; $height) + CLEAR VARIABLE:C89($p) - READ PICTURE FILE:C678($picture.platformPath; $p) + This:C1470.latest:=Super:C1706.create($node; "image"; New object:C1471(\ + "xlink:href"; (Is Windows:C1573 ? "file:///" : "file://")+Replace string:C233($picture.path; " "; "%20"); \ + "x"; 0; \ + "y"; 0; \ + "width"; $width; \ + "height"; $height)) - If (Bool:C1537(OK)) - - PICTURE PROPERTIES:C457($p; $width; $height) - CLEAR VARIABLE:C89($p) + If (Not:C34(This:C1470.success)) - If ($paramNumber=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if - - This:C1470.latest:=Super:C1706.create($node; "image"; New object:C1471(\ - "xlink:href"; "file://"+Choose:C955(Is Windows:C1573; "/"; "")+Replace string:C233($picture.path; " "; "%20"); \ - "x"; 0; \ - "y"; 0; \ - "width"; $width; \ - "height"; $height)) - - If (Not:C34(This:C1470.success)) - - This:C1470._pushError("Failed to create image \""+String:C10($picture.path)+"\"") - - End if - - Else - - This:C1470._pushError("Failed to read image \""+String:C10($picture.path)+"\"") + This:C1470._pushError("Failed to create image \""+$picture.path+"\"") End if Else - This:C1470._pushError("File not found \""+String:C10($picture.path)+"\"") + This:C1470._pushError("Failed to read image \""+$picture.path+"\"") End if Else - This:C1470._pushError("Picture must be a picture file.") + This:C1470._pushError("File not found \""+$picture.path+"\"") End if - //______________________________________________________ Else @@ -769,7 +902,7 @@ Function image($picture : Variant; $attachTo) : cs:C1710.svg End case End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function text($text : Text; $attachTo) : cs:C1710.svg @@ -784,16 +917,7 @@ Function text($text : Text; $attachTo) : cs:C1710.svg If (This:C1470._requiredParams(Count parameters:C259; 1)) - If (Count parameters:C259=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if + $node:=Count parameters:C259=2 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() $y:=$defaultFontSize @@ -830,7 +954,7 @@ Function text($text : Text; $attachTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function textArea($text : Text; $attachTo) : cs:C1710.svg @@ -850,16 +974,7 @@ Function textArea($text : Text; $attachTo) : cs:C1710.svg "width"; "auto"; \ "height"; "auto") - If ($paramNumber=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if + $node:=$paramNumber=2 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() This:C1470.latest:=Super:C1706.create($node; "textArea"; $o) @@ -895,7 +1010,7 @@ Function textArea($text : Text; $attachTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Creates a set of connected straight line segments, @@ -907,16 +1022,7 @@ Function polyline($points : Variant; $attachTo) : cs:C1710.svg $paramNumber:=Count parameters:C259 - If ($paramNumber>=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if + $node:=$paramNumber=2 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() This:C1470.latest:=Super:C1706.create($node; "polyline") @@ -931,7 +1037,7 @@ Function polyline($points : Variant; $attachTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Defines a closed shape consisting of connected lines. @@ -942,16 +1048,7 @@ Function polygon($points : Variant; $attachTo) : cs:C1710.svg $paramNumber:=Count parameters:C259 - If ($paramNumber>=2) - - $node:=This:C1470._getContainer($attachTo) - - Else - - // Auto - $node:=This:C1470._getContainer() - - End if + $node:=$paramNumber=2 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() This:C1470.latest:=Super:C1706.create($node; "polygon") @@ -964,19 +1061,83 @@ Function polygon($points : Variant; $attachTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— - // Defines a new path element. -Function path($data : Variant; $attachTo) : cs:C1710.svg + // Draws a regular polygon with number of sides fit into a circle +Function regularPolygon($diameter : Real; $sides : Integer; $cx : Real; $cy : Real) : cs:C1710.svg + + var $angle; $r : Real + var $i : Integer + var $c : Collection + + $r:=$diameter/2 + $cx:=$cx=0 ? $r+1 : $cx + $cy:=$cy=0 ? $r+1 : $cy + + $c:=[] + + For ($i; 1; $sides; 1) + + $angle:=((2*Pi:K30:1)/$sides)*$i + $c.push([Round:C94($cx+($r*Cos:C18($angle)); 2); Round:C94($cy+($r*Sin:C17($angle)); 2)]) + + End for + + This:C1470.polygon($c) + + If (($sides%2)#0) + + This:C1470.rotate(-(360/$sides)/4; $cx; $cy; This:C1470.latest) + + End if + + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Draws a five pointed star fit into a circle +Function fivePointStar($diameter : Real; $cx : Real; $cy : Real) : cs:C1710.svg + + var $angle; $r; $x; $y : Real + var $i : Integer + var $c : Collection + + $r:=$diameter/2 + $cx:=$cx=0 ? $r+1 : $cx + $cy:=$cy=0 ? $r+1 : $cy + + This:C1470.absolute() - //FIXME:TO_DO + $c:=[] + + For ($i; 1; 5; 1) + + $angle:=((2*Pi:K30:1)/5)*$i + $x:=Round:C94($cx+($r*Cos:C18($angle)); 2) + $y:=Round:C94($cy+($r*Sin:C17($angle)); 2) + + $c.push([$x; $y]) + + End for + + This:C1470.path() + This:C1470.moveTo($c[0]) + This:C1470.lineTo($c[2]) + This:C1470.lineTo($c[4]) + This:C1470.lineTo($c[1]) + This:C1470.lineTo($c[3]) + This:C1470.closePath() + + This:C1470.rotate(-(360/5)/4; $cx; $cy)\ + .setAttribute("fill-rule"; "nonzero"; This:C1470.latest) + + return This:C1470 //——————————————————————————————————————————————————————————— // Populate the "points" property of a polyline, polygon Function points($points : Variant; $applyTo) : cs:C1710.svg - var $data; $node; $element : Text + var $data; $node; $name : Text var $i; $paramNumber : Integer $paramNumber:=Count parameters:C259 @@ -994,10 +1155,10 @@ Function points($points : Variant; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) - If ($element="polyline")\ - | ($element="polygon") + If ($name="polyline")\ + | ($name="polygon") Case of //______________________________________________________ @@ -1037,197 +1198,478 @@ Function points($points : Variant; $applyTo) : cs:C1710.svg //………………………………………………………………………………………………… Else - This:C1470._pushError("The element \""+$element+"\" is not compatible withe \"points\" property") + This:C1470._pushError("The element \""+$name+"\" is not compatible withe \"points\" property") //………………………………………………………………………………………………… End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— - // Absolute moveTo -Function M($points : Variant; $applyTo) : cs:C1710.svg + // Defines a new path element. +Function path($data : Text; $attachTo) : cs:C1710.svg - var $data; $element; $node : Text - var $paramNumber : Integer + var $node : Text - $paramNumber:=Count parameters:C259 + //TODO:Accept other data formats (Collection, …) + $node:=Count parameters:C259=2 ? This:C1470._getContainer($attachTo) : This:C1470._getContainer() - If (This:C1470._requiredParams($paramNumber; 1)) - - If ($paramNumber>=2) - - $node:=This:C1470._getTarget($applyTo) - - Else - - // Auto - $node:=This:C1470._getTarget() - - End if + This:C1470.latest:=Super:C1706.create($node; "path") + This:C1470.setAttribute("d"; $data; This:C1470.latest) + + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Populate the "d" property of a path +Function d($data : Text; $applyTo) : cs:C1710.svg + + var $name; $node : Text + + If (Not:C34(This:C1470._requiredParams(Count parameters:C259; 1))) - DOM GET XML ELEMENT NAME:C730($node; $element) + return This:C1470 - Case of - - //………………………………………………………………………………………………… - : ($element="polyline")\ - | ($element="polygon") + End if + + $node:=Count parameters:C259>=2 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget() + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name="path") + + Super:C1706.setAttribute($node; "d"; $data) + + Else + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \"points\" property") + + End if + + return This:C1470 + + //mark:- + //——————————————————————————————————————————————————————————— + // Start a new sub-path at the given point [x,y] coordinate +Function moveTo($point : Collection; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.M($point; $applyTo) + + Else + + return This:C1470.m($point; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute moveTo +Function M($points : Variant; $applyTo) : cs:C1710.svg + + return This:C1470._moveTo(Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative moveTo +Function m($points : Variant; $applyTo) : cs:C1710.svg + + return This:C1470._moveTo(Copy parameters:C1790) + + //mark:- + //——————————————————————————————————————————————————————————— + // Draw a line from the current point to the given point [x,y] coordinate which becomes the new current point + // A number of coordinates pairs may be specified to draw a polyline +Function lineTo($point : Collection; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.L($point; $applyTo) + + Else + + return This:C1470.l($point; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute lineTo +Function L($points; $applyTo) : cs:C1710.svg + + var $data; $name; $node : Text + var $i : Integer + var $c : Collection + + If (Not:C34(This:C1470._requiredParams(Count parameters:C259; 1))) + + return This:C1470 + + End if + + Case of + //______________________________________________________ + : (Value type:C1509($points)=Is collection:K8:32) + + If ($points.length%2=0) - Case of - //______________________________________________________ - : (Value type:C1509($points)=Is collection:K8:32) - - $data:=String:C10($points[0]; "&xml")+","+String:C10($points[1]; "&xml") - - //______________________________________________________ - : (Value type:C1509($points)=Is text:K8:3) - - $data:=$points - - //______________________________________________________ - Else - - // #ERROR - - //______________________________________________________ - End case + $c:=[] - If (Length:C16($data)>0) - - Super:C1706.setAttribute($node; "points"; $data) + For ($i; 0; $points.length-1; 2) - Else - - This:C1470._pushError("For a "+$element+", points must be passed as string or collection") + $c.push(String:C10($points[$i]; "&xml")+" "+String:C10($points[$i+1]; "&xml")) - End if - - //………………………………………………………………………………………………… - : ($element="path") + End for - //FIXME:TO_DO + $data:=$c.join(" ") - //………………………………………………………………………………………………… Else - This:C1470._pushError("The element \""+$element+"\" is not compatible withe \"points\" property") + This:C1470._pushError(Current method name:C684+" The length of the point collection must be a multiple of 2") + return This:C1470 - //………………………………………………………………………………………………… - End case - End if - - return (This:C1470) - - //——————————————————————————————————————————————————————————— - // Absolute lineTo -Function L($points : Variant; $applyTo) : cs:C1710.svg - - var $data; $name; $node; $element : Text - var $i; $paramNumber : Integer + End if + + //______________________________________________________ + : (Value type:C1509($points)=Is text:K8:3) + + $data:=$points + + //______________________________________________________ + Else + + This:C1470._pushError(Current method name:C684+" Points must be passed as string or collection") + return This:C1470 + + //______________________________________________________ + End case - $paramNumber:=Count parameters:C259 + $node:=Count parameters:C259>=2 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget() + DOM GET XML ELEMENT NAME:C730($node; $name) - If (This:C1470._requiredParams($paramNumber; 1)) - - If ($paramNumber>=2) + Case of - $node:=This:C1470._getTarget($applyTo) + //………………………………………………………………………………………………… + : ($name="polyline")\ + | ($name="polygon") + Super:C1706.setAttribute($node; "points"; String:C10(This:C1470.getAttribute($node; "points"))+" "+$data) + + //………………………………………………………………………………………………… + : ($name="path") + + Super:C1706.setAttribute($node; "d"; Super:C1706.getAttribute($node; "d")+" L"+$data) + + //………………………………………………………………………………………………… Else - // Auto - $node:=This:C1470._getTarget() + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \"points\" property") - End if + //………………………………………………………………………………………………… + End case + + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Relative lineTo +Function l($points; $applyTo) : cs:C1710.svg + + var $data; $name; $node : Text + var $i : Integer + var $c : Collection + + If (Not:C34(This:C1470._requiredParams(Count parameters:C259; 1))) - DOM GET XML ELEMENT NAME:C730($node; $element) + return This:C1470 - Case of - - //………………………………………………………………………………………………… - : ($element="polyline")\ - | ($element="polygon") + End if + + Case of + //______________________________________________________ + : (Value type:C1509($points)=Is collection:K8:32) + + If ($points.length%2=0) - Case of - //______________________________________________________ - : (Value type:C1509($points)=Is collection:K8:32) - - If ($points.length%2=0) - - For ($i; 0; $points.length-1; 2) - - $data:=$data+String:C10($points[$i]; "&xml")+" "+String:C10($points[$i+1]; "&xml") - - End for - - $data:=String:C10(This:C1470.getAttribute($node; "points"))+" "+$data - - Else - - // #ERROR - - End if - - //______________________________________________________ - : (Value type:C1509($points)=Is text:K8:3) - - $data:=String:C10(This:C1470.getAttribute($node; "points"))+" "+$points - - //______________________________________________________ - Else - - // #ERROR - - //______________________________________________________ - End case + $c:=[] - If (Length:C16($data)>0) + For ($i; 0; $points.length-1; 2) - Super:C1706.setAttribute($node; "points"; $data) + $c.push(String:C10($points[$i]; "&xml")+" "+String:C10($points[$i+1]; "&xml")) - Else - - This:C1470._pushError("For a "+$element+", points must be passed as string or collection") - - End if - - //………………………………………………………………………………………………… - : ($element="path") + End for - //FIXME:TO_DO + $data:=$c.join(" ") - //………………………………………………………………………………………………… Else - This:C1470._pushError("he element \""+$element+"\" is not compatible withe \"points\" property") + This:C1470._pushError(Current method name:C684+" The length of the point collection must be a multiple of 2") + return This:C1470 - //………………………………………………………………………………………………… - End case + End if + + //______________________________________________________ + : (Value type:C1509($points)=Is text:K8:3) + + $data:=$points + + //______________________________________________________ + Else + + This:C1470._pushError(Current method name:C684+" Points must be passed as string or collection") + return This:C1470 + + //______________________________________________________ + End case + + $node:=Count parameters:C259>=2 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget() + DOM GET XML ELEMENT NAME:C730($node; $name) + + Case of + + //………………………………………………………………………………………………… + : ($name="polyline")\ + | ($name="polygon") + + Super:C1706.setAttribute($node; "points"; String:C10(This:C1470.getAttribute($node; "points"))+" "+$data) + + //………………………………………………………………………………………………… + : ($name="path") + + Super:C1706.setAttribute($node; "d"; Super:C1706.getAttribute($node; "d")+" l"+$data) + + //………………………………………………………………………………………………… + Else + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \"points\" property") + + //………………………………………………………………………………………………… + End case + + return This:C1470 + + //mark:- + //——————————————————————————————————————————————————————————— + // Draws an horizontal line from the current point (cpx, cpy) to (x, cpy) +Function horizontalLineto($x : Real; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.H($x; $applyTo) + Else + + return This:C1470.h($x; $applyTo) End if - return (This:C1470) + //——————————————————————————————————————————————————————————— + // Absolute horizontal lineTo +Function H($x : Real; $applyTo) : cs:C1710.svg + + return This:C1470._lineTo(False:C215; Copy parameters:C1790; True:C214) //——————————————————————————————————————————————————————————— - // Relative moveTo -Function m($points : Variant; $applyTo) : cs:C1710.svg + // Relative horizontal lineTo +Function h($x : Real; $applyTo) : cs:C1710.svg - //FIXME:TO_DO + return This:C1470._lineTo(False:C215; Copy parameters:C1790) + //mark:- //——————————————————————————————————————————————————————————— - // Relative lineTo -Function l($points : Variant; $applyTo) : cs:C1710.svg + // Draws a vertical line from the current point (cpx, cpy) to (cpx, y) +Function verticalLineto($y : Real; $applyTo) : cs:C1710.svg - //FIXME:TO_DO + If (This:C1470[""].absolute) + + return This:C1470.V($y; $applyTo) + + Else + + return This:C1470.v($y; $applyTo) + + End if //——————————————————————————————————————————————————————————— - // Populate the "d" property of a path -Function d($data : Variant; $applyTo) : cs:C1710.svg + // Absolute vertical lineTo +Function V($x : Real; $applyTo) : cs:C1710.svg + + return This:C1470._lineTo(True:C214; Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative vertical lineTo +Function v($x : Real; $applyTo) : cs:C1710.svg + + return This:C1470._lineTo(True:C214; Copy parameters:C1790) - //FIXME:TO_DO + //mark:- + //——————————————————————————————————————————————————————————— + // Draws an elliptical arc from the current point to [x, y] + // The size and orientation of the ellipse are defined by one radius or two radii [rx, ry] and an x-axis-rotation + // The center of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. + // flags [large-arc-flag and sweep-flag] contribute to the automatic calculations and help determine how the arc is drawn. +Function arc($to : Collection; $radii; $axis : Real; $flags : Collection; $applyTo) : cs:C1710.svg + + If (Value type:C1509($radii)=Is real:K8:4) | (Value type:C1509($radii)=Is longint:K8:6) + + $radii:=[$radii; $radii] + + End if + + If (This:C1470[""].absolute) + + return This:C1470.A($radii[0]; $radii[1]; $axis; $flags[0]; $flags[1]; $to[0]; $to[1]; $applyTo) + + Else + + return This:C1470.a($radii[0]; $radii[1]; $axis; $flags[0]; $flags[1]; $to[0]; $to[1]; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute elliptical arc +Function A($rx : Real; $ry : Real; $rotation : Real; $largeArcFlag : Integer; $sweepFlag : Integer; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._ellipticalArc(Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative elliptical arc +Function a($rx : Real; $ry : Real; $rotation : Real; $largeArcFlag : Integer; $sweepFlag : Integer; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._ellipticalArc(Copy parameters:C1790) + + //mark:- + //——————————————————————————————————————————————————————————— + // Draws a cubic Bézier curve from the current point to [x,y] using beginCtrlPoint [x1,y1] as the control point at the beginning of the curve + // and endCtrlPoint [x2,y2] as the control point at the end of the curve +Function cubicBezierCurveto($to : Collection; $beginCtrlPoint : Collection; $endCtrlPoint : Collection; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.C($beginCtrlPoint[0]; $beginCtrlPoint[1]; $endCtrlPoint[0]; $endCtrlPoint[1]; $to[0]; $to[1]; $applyTo) + + Else + + return This:C1470.c($beginCtrlPoint[0]; $beginCtrlPoint[1]; $endCtrlPoint[0]; $endCtrlPoint[1]; $to[0]; $to[1]; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute curvTo +Function C($x1 : Real; $y1 : Real; $x2 : Real; $y2 : Real; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._curveTo(Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative curvTo +Function c($x1 : Real; $y1 : Real; $x2 : Real; $y2 : Real; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._curveTo(Copy parameters:C1790) + + //mark:- + //——————————————————————————————————————————————————————————— + // Draws a cubic Bézier curve from the current point to [x,y] +Function smoothCubicBezierCurveto($to : Collection; $endCtrlPoint : Collection; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.S($endCtrlPoint[0]; $endCtrlPoint[1]; $to[0]; $to[1]; $applyTo) + + Else + + return This:C1470.c($endCtrlPoint[0]; $endCtrlPoint[1]; $to[0]; $to[1]; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute shorthand/smooth curvTo +Function S($x2 : Real; $y2 : Real; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._smoothCurveTo(Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative shorthand/smooth curvTo +Function s($x2 : Real; $y2 : Real; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._smoothCurveTo(Copy parameters:C1790) + + //mark:- + //——————————————————————————————————————————————————————————— + // Draws a quadratic Bézier curve from the current point to [x,y] using controlPoint [x1,y1] as the control point +Function quadraticBezierCurveto($to : Collection; $controlPoint : Collection; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.Q($controlPoint[0]; $controlPoint[1]; $to[0]; $to[1]; $applyTo) + + Else + + return This:C1470.q($controlPoint[0]; $controlPoint[1]; $to[0]; $to[1]; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute quadratic Bézier curveto +Function Q($x1 : Real; $y1 : Real; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._quadraticCurveto(Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative quadratic Bézier curveto +Function q($x1 : Real; $y1 : Real; $x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._quadraticCurveto(Copy parameters:C1790) + + //mark:- + //——————————————————————————————————————————————————————————— + // Draws a quadratic Bézier curve from the current point to [x,y] +Function smoothQuadraticBezierCurveto($to : Collection; $applyTo) : cs:C1710.svg + + If (This:C1470[""].absolute) + + return This:C1470.T($to[0]; $to[1]; $applyTo) + + Else + + return This:C1470.t($to[0]; $to[1]; $applyTo) + + End if + + //——————————————————————————————————————————————————————————— + // Absolute shorthand/smooth quadratic Bézier curveto +Function T($x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._smoothQuadraticCurveto(Copy parameters:C1790; True:C214) + + //——————————————————————————————————————————————————————————— + // Relative shorthand/smooth quadratic Bézier curveto +Function t($x : Real; $y : Real; $applyTo) : cs:C1710.svg + + return This:C1470._smoothQuadraticCurveto(Copy parameters:C1790) + + //mark:- + //——————————————————————————————————————————————————————————— + // Close the current subpath by drawing a straight line from the current point to current subpath's initial point +Function closePath($applyTo) : cs:C1710.svg + + return This:C1470.Z($applyTo) + + //——————————————————————————————————————————————————————————— + // Close path +Function Z($applyTo) : cs:C1710.svg + + var $name; $node : Text + + $node:=Count parameters:C259>=1 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget() + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name="path") + + Super:C1706.setAttribute($node; "d"; Super:C1706.getAttribute($node; "d")+"Z") + + Else + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \"points\" property") + + End if + + return This:C1470 //MARK:-ATTRIBUTES //——————————————————————————————————————————————————————————— @@ -1245,7 +1687,7 @@ Function setAttribute($name : Text; $value : Variant; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // ⚠️ Overrides the method of the inherited class @@ -1321,7 +1763,41 @@ Function setAttributes($attributes : Variant; $value : Variant; $applyTo) : cs:C //______________________________________________________ End case - return (This:C1470) + return This:C1470 + + //——————————————————————————————————————————————————————————— +Function viewbox($left; $top : Real; $width : Real; $height : Real; $applyTo) : cs:C1710.svg + + var $name; $node; $viewbox : Text + var $c : Collection + + $node:=Count parameters:C259>=5 ? This:C1470._getTarget($applyTo) : This:C1470._getTarget("root") + + DOM GET XML ELEMENT NAME:C730($node; $name) + + $c:=New collection:C1472("svg"; "symbol"; "marker"; "pattern"; "view") + + If ($c.includes($name)) + + If (Value type:C1509($left)=Is text:K8:3) + + $viewbox:=$left + + Else + + $viewbox:=String:C10(Num:C11($left); "&xml")+" "+String:C10($top; "&xml")+" "+String:C10($width; "&xml")+" "+String:C10($height; "&xml") + + End if + + Super:C1706.setAttribute($node; "viewbox"; $viewbox) + + Else + + ASSERT:C1129(False:C215; Current method name:C684+": The element must be \""+$c.join("\", ")+"\"") + + End if + + return This:C1470 //——————————————————————————————————————————————————————————— Function id($id : Text; $applyTo) : cs:C1710.svg @@ -1360,14 +1836,14 @@ Function id($id : Text; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Sets the x value Function x($x : Real; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text var $spans : Collection If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1383,12 +1859,12 @@ Function x($x : Real; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) Case of //______________________________________________________ - : ($element="text") + : ($name="text") Super:C1706.setAttribute($node; "x"; $x) @@ -1405,22 +1881,22 @@ Function x($x : Real; $applyTo) : cs:C1710.svg End if //______________________________________________________ - : ($element="rect")\ - | ($element="image")\ - | ($element="textArea") + : ($name="rect")\ + | ($name="image")\ + | ($name="textArea") Super:C1706.setAttribute($node; "x"; $x) //______________________________________________________ Else - This:C1470._pushError("cannot be fixed for the element \""+$element+"\"") + This:C1470._pushError("cannot be fixed for the element \""+$name+"\"") //______________________________________________________ End case End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Sets the y value @@ -1439,13 +1915,13 @@ Function y($y : Real; $applyTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Sets the radius of a circle Function r($r : Real; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1460,15 +1936,15 @@ Function r($r : Real; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) - If ($element="circle") + If ($name="circle") Super:C1706.setAttribute($node; "r"; $r) Else - This:C1470._pushError("cannot be fixed for the element \""+$element+"\"") + This:C1470._pushError("cannot be fixed for the element \""+$name+"\"") End if End if @@ -1477,7 +1953,7 @@ Function r($r : Real; $applyTo) : cs:C1710.svg // Sets the rx of a rect or an ellipse Function rx($rx : Real; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1492,16 +1968,16 @@ Function rx($rx : Real; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) - If ($element="rect")\ - | ($element="ellipse") + If ($name="rect")\ + | ($name="ellipse") Super:C1706.setAttribute($node; "rx"; $rx) Else - This:C1470._pushError("cannot be fixed for the element \""+$element+"\"") + This:C1470._pushError("cannot be fixed for the element \""+$name+"\"") End if End if @@ -1510,7 +1986,7 @@ Function rx($rx : Real; $applyTo) : cs:C1710.svg // Sets the ry of an ellipse Function ry($ry : Real; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1525,16 +2001,16 @@ Function ry($ry : Real; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) - If ($element="rect")\ - | ($element="ellipse") + If ($name="rect")\ + | ($name="ellipse") Super:C1706.setAttribute($node; "ry"; $ry) Else - This:C1470._pushError("cannot be fixed for the element \""+$element+"\"") + This:C1470._pushError("cannot be fixed for the element \""+$name+"\"") End if End if @@ -1543,7 +2019,7 @@ Function ry($ry : Real; $applyTo) : cs:C1710.svg // Sets the cx of a circle or ellipse Function cx($cx : Real; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1558,16 +2034,16 @@ Function cx($cx : Real; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) - If ($element="circle")\ - | ($element="ellipse") + If ($name="circle")\ + | ($name="ellipse") Super:C1706.setAttribute($node; "cx"; $cx) Else - This:C1470._pushError("cannot be fixed for the element \""+$element+"\"") + This:C1470._pushError("cannot be fixed for the element \""+$name+"\"") End if End if @@ -1576,7 +2052,7 @@ Function cx($cx : Real; $applyTo) : cs:C1710.svg // Sets the cy of a circle or ellipse Function cy($cy : Real; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1591,16 +2067,16 @@ Function cy($cy : Real; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) - If ($element="circle")\ - | ($element="ellipse") + If ($name="circle")\ + | ($name="ellipse") Super:C1706.setAttribute($node; "cy"; $cy) Else - This:C1470._pushError("cannot be fixed for the element \""+$element+"\"") + This:C1470._pushError("cannot be fixed for the element \""+$name+"\"") End if End if @@ -1608,7 +2084,7 @@ Function cy($cy : Real; $applyTo) : cs:C1710.svg //——————————————————————————————————————————————————————————— Function width($width : Real; $applyTo) : cs:C1710.svg - //FIXME:Target specific treatment + //FIXME:Target specific treatment (line,…) If (This:C1470._requiredParams(Count parameters:C259; 1)) If (Count parameters:C259>=2) @@ -1622,7 +2098,7 @@ Function width($width : Real; $applyTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function height($height : Real; $applyTo) : cs:C1710.svg @@ -1640,7 +2116,7 @@ Function height($height : Real; $applyTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function translate($tx : Real; $ty; $applyTo) : cs:C1710.svg @@ -1713,7 +2189,7 @@ Function translate($tx : Real; $ty; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function rotate($angle : Integer; $cx : Variant; $cy : Real; $applyTo) : cs:C1710.svg @@ -1804,7 +2280,7 @@ Function rotate($angle : Integer; $cx : Variant; $cy : Real; $applyTo) : cs:C171 End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function scale($sx : Real; $sy; $applyTo) : cs:C1710.svg @@ -1877,7 +2353,7 @@ Function scale($sx : Real; $sy; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function fillColor($color : Text; $applyTo) : cs:C1710.svg @@ -1905,7 +2381,7 @@ Function fillColor($color : Text; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function fillOpacity($opacity : Real; $applyTo) : cs:C1710.svg @@ -1933,7 +2409,7 @@ Function fillOpacity($opacity : Real; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function strokeColor($color : Text; $applyTo) : cs:C1710.svg @@ -1948,7 +2424,7 @@ Function strokeColor($color : Text; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function strokeWidth($width : Real; $applyTo) : cs:C1710.svg @@ -1963,22 +2439,64 @@ Function strokeWidth($width : Real; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function strokeOpacity($opacity : Real; $applyTo) : cs:C1710.svg - If (Count parameters:C259>=2) + If (Count parameters:C259>=2) + + Super:C1706.setAttribute(This:C1470._getTarget($applyTo); "stroke-opacity"; $opacity) + + Else + + Super:C1706.setAttribute(This:C1470._getTarget(); "stroke-opacity"; $opacity) + + End if + + return This:C1470 + + //——————————————————————————————————————————————————————————— +Function dasharray($dash : Real; ... : Integer) : cs:C1710.svg + + var $buffer; $separator; $value : Text + var $i; $offset : Integer + + If ($dash=0) - Super:C1706.setAttribute(This:C1470._getTarget($applyTo); "stroke-opacity"; $opacity) + $value:="none" Else - Super:C1706.setAttribute(This:C1470._getTarget(); "stroke-opacity"; $opacity) + If (Dec:C9($dash)#0) + + $buffer:=String:C10($dash) + GET SYSTEM FORMAT:C994(Decimal separator:K60:1; $separator) + $buffer:=Delete string:C232($buffer; 1; Position:C15($separator; $buffer)) + $offset:=Num:C11($buffer) + + End if + + $value:=String:C10(Int:C8($dash)) + If (Count parameters:C259=1) + + $value:=$value+","+$value + + Else + + For ($i; 2; Count parameters:C259; 1) + + $value:=$value+","+String:C10(${$i}) + + End for + End if End if - return (This:C1470) + Super:C1706.setAttribute(This:C1470._getTarget(); "stroke-dashoffset"; String:C10($offset)) + Super:C1706.setAttribute(This:C1470._getTarget(); "stroke-dasharray"; $value) + + return This:C1470 //——————————————————————————————————————————————————————————— Function fontFamily($fonts : Text; $applyTo) : cs:C1710.svg @@ -1994,7 +2512,7 @@ Function fontFamily($fonts : Text; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function fontSize($size : Integer; $applyTo) : cs:C1710.svg @@ -2010,7 +2528,7 @@ Function fontSize($size : Integer; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function fontStyle($style : Integer; $applyTo) : cs:C1710.svg @@ -2037,43 +2555,50 @@ Function fontStyle($style : Integer; $applyTo) : cs:C1710.svg Else - If ($style>=8) // Line-through + var $c : Collection + + // Mark:font-weight + If ($style ?? 0) - Super:C1706.setAttribute($node; "text-decoration"; "line-through") - $style:=$style-8 + Super:C1706.setAttribute($node; "font-weight"; "bold") End if - If (This:C1470.success)\ - & ($style>=Underline:K14:4) + // Mark:font-style + If ($style ?? 1) - Super:C1706.setAttribute($node; "text-decoration"; "underline") - $style:=$style-Underline:K14:4 + Super:C1706.setAttribute($node; "font-style"; "italic") End if - If (This:C1470.success)\ - & ($style>=Italic:K14:3) + // Mark:text-decoration + $c:=New collection:C1472 + + If ($style ?? 2) // Underline - Super:C1706.setAttribute($node; "font-style"; "italic") - $style:=$style-Italic:K14:3 + $c.push("underline") End if - If (This:C1470.success)\ - & ($style=Bold:K14:2) + If ($style ?? 3) // Line-through - Super:C1706.setAttribute($node; "font-weight"; "bold") + $c.push("line-through") + + End if + + If ($c.length>0) + + Super:C1706.setAttribute($node; "text-decoration"; $c.join(" ")) End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function alignment($alignment : Integer; $applyTo) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text If (Count parameters:C259>=2) @@ -2086,14 +2611,14 @@ Function alignment($alignment : Integer; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) Case of //………………………………………………………………………………………… : ($alignment=Align center:K42:3) - If ($element="textArea") + If ($name="textArea") Super:C1706.setAttribute($node; "text-align"; "center") @@ -2106,29 +2631,29 @@ Function alignment($alignment : Integer; $applyTo) : cs:C1710.svg //………………………………………………………………………………………… : ($alignment=Align right:K42:4) - Super:C1706.setAttribute($node; Choose:C955($element="textArea"; "text-align"; "text-anchor"); "end") + Super:C1706.setAttribute($node; Choose:C955($name="textArea"; "text-align"; "text-anchor"); "end") //………………………………………………………………………………………… : ($alignment=Align left:K42:2)\ | ($alignment=Align default:K42:1) - Super:C1706.setAttribute($node; Choose:C955($element="textArea"; "text-align"; "text-anchor"); "start") + Super:C1706.setAttribute($node; Choose:C955($name="textArea"; "text-align"; "text-anchor"); "start") //………………………………………………………………………………………… : ($alignment=5)\ - & ($element="textArea") + & ($name="textArea") Super:C1706.setAttribute($node; "text-align"; "justify") //………………………………………………………………………………………… Else - Super:C1706.setAttribute($node; Choose:C955($element="textArea"; "text-align"; "text-anchor"); "inherit") + Super:C1706.setAttribute($node; Choose:C955($name="textArea"; "text-align"; "text-anchor"); "inherit") //………………………………………………………………………………………… End case - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function textRendering($rendering : Text; $applyTo) : cs:C1710.svg @@ -2152,7 +2677,7 @@ Function textRendering($rendering : Text; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function visible($visible : Boolean; $applyTo) : cs:C1710.svg @@ -2167,7 +2692,7 @@ Function visible($visible : Boolean; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Assigns a class name, or a set of class names, to an element @@ -2183,23 +2708,7 @@ Function class($class : Text; $applyTo) : cs:C1710.svg End if - return (This:C1470) - - //——————————————————————————————————————————————————————————— - // Assigns an embedded style to an element -Function style($tyle : Text; $applyTo) : cs:C1710.svg - - If (Count parameters:C259=2) - - Super:C1706.setAttribute(This:C1470._getTarget($applyTo); "style"; $tyle) - - Else - - Super:C1706.setAttribute(This:C1470._getTarget(); "style"; $tyle) - - End if - - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— Function preserveAspectRatio($value : Text; $applyTo) : cs:C1710.svg @@ -2265,7 +2774,7 @@ Function attachTo($parent : Variant) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // ⚠️ Overrides the method of the inherited class @@ -2295,7 +2804,7 @@ Function clone($source : Text; $attachTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Create one or more layer at the root of the SVG structure @@ -2311,7 +2820,7 @@ Function layer($name : Text; ... : Text) : cs:C1710.svg End for - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Define an element for the next operations @@ -2319,7 +2828,7 @@ Function with($name : Text) : Boolean var $o : Object - $o:=This:C1470.store.query("id=:1"; $name).pop() + $o:=This:C1470.store.query("id=:1"; $name).first() If ($o#Null:C1517) @@ -2385,7 +2894,7 @@ Function push($name : Text) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Retrieve a stored dom reference @@ -2435,7 +2944,7 @@ Function color($color : Text; $applyTo) : cs:C1710.svg Super:C1706.setAttribute($node; "fill"; $color) Super:C1706.setAttribute($node; "stroke"; $color) - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Sets opacity of stroke and fill. @@ -2457,7 +2966,7 @@ Function opacity($opacity : Real; $applyTo) : cs:C1710.svg This:C1470.fillOpacity($opacity; $node) This:C1470.strokeOpacity($opacity; $node) - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Sets one or more stroke attributes @@ -2542,7 +3051,7 @@ Function stroke($value; $applyTo) : cs:C1710.svg //______________________________________________________ End case - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Sets one or more fill attributes @@ -2649,7 +3158,7 @@ Function fill($value; $applyTo) : cs:C1710.svg //______________________________________________________ End case - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Define font properties @@ -2678,6 +3187,11 @@ Function font($attributes : Object; $applyTo) : cs:C1710.svg Super:C1706.setAttribute($node; "font-size"; $attributes.size) + If (Super:C1706.getAttribute($node; "y")<$attributes.size) + + Super:C1706.setAttribute($node; "y"; $attributes.size) + + End if End if If ($attributes.color#Null:C1517) @@ -2704,28 +3218,28 @@ Function font($attributes : Object; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Set the position of an object Function position($x : Real; $y : Variant; $unit : Text) : cs:C1710.svg - var $element; $node : Text + var $name; $node : Text $node:=This:C1470._getTarget() - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) Case of //______________________________________________________ - : ($element="svg")\ - | ($element="g") + : ($name="svg")\ + | ($name="g") - This:C1470._pushError("You can't set position for the element"+$element+"!") + This:C1470._pushError("You can't set position for the element"+$name+"!") //______________________________________________________ - : ($element="circle")\ - | ($element="ellipse") + : ($name="circle")\ + | ($name="ellipse") Case of @@ -2781,7 +3295,7 @@ Function position($x : Real; $y : Variant; $unit : Text) : cs:C1710.svg End case //______________________________________________________ - : ($element="line") + : ($name="line") Case of @@ -2883,27 +3397,27 @@ Function position($x : Real; $y : Variant; $unit : Text) : cs:C1710.svg //______________________________________________________ End case - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Set the dimensions of an object Function size($width : Real; $height : Real; $unit : Text) : cs:C1710.svg - var $node; $element : Text + var $node; $name : Text $node:=This:C1470._getTarget() - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) Case of //______________________________________________________ - : ($element="g")\ - | ($element="use") + : ($name="g")\ + | ($name="use") - This:C1470._pushError("You can't set dimensions for the element"+$element+"!") + This:C1470._pushError("You can't set dimensions for the element"+$name+"!") //______________________________________________________ - : ($element="textArea") + : ($name="textArea") Case of @@ -2937,7 +3451,7 @@ Function size($width : Real; $height : Real; $unit : Text) : cs:C1710.svg End case //______________________________________________________ - : ($element="line") + : ($name="line") Case of @@ -2962,8 +3476,8 @@ Function size($width : Real; $height : Real; $unit : Text) : cs:C1710.svg End case //______________________________________________________ - : ($element="circle")\ - | ($element="ellipse") + : ($name="circle")\ + | ($name="ellipse") //FIXME:TO_DO? @@ -2997,7 +3511,7 @@ Function size($width : Real; $height : Real; $unit : Text) : cs:C1710.svg //______________________________________________________ End case - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Horizontal shift @@ -3014,7 +3528,7 @@ Function moveHorizontally($x : Real; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Vertical shift @@ -3031,14 +3545,14 @@ Function moveVertically($y : Real; $applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Populate the "points" property of a polyline, polygon // or the "data" proprety of a path Function plot($points : Variant; $applyTo) : cs:C1710.svg - var $data; $node; $element : Text + var $data; $node; $name : Text var $i; $paramNumber : Integer $paramNumber:=Count parameters:C259 @@ -3056,37 +3570,37 @@ Function plot($points : Variant; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) Case of //………………………………………………………………………………………………… - : ($element="polyline")\ - | ($element="polygon") + : ($name="polyline")\ + | ($name="polygon") This:C1470.points($points; $node) //………………………………………………………………………………………………… - : ($element="path") + : ($name="path") This:C1470.d($points; $node) //………………………………………………………………………………………………… Else - This:C1470._pushError("The element \""+$element+"\" is not compatible withe \"plot\" property") + This:C1470._pushError("The element \""+$name+"\" is not compatible withe \"plot\" property") //………………………………………………………………………………………………… End case End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Fix the radius of a circle or a rounded rectangle Function radius($radius : Integer; $applyTo) : cs:C1710.svg - var $element; $node : Text + var $name; $node : Text If (Count parameters:C259=2) @@ -3099,30 +3613,30 @@ Function radius($radius : Integer; $applyTo) : cs:C1710.svg End if - DOM GET XML ELEMENT NAME:C730($node; $element) + DOM GET XML ELEMENT NAME:C730($node; $name) Case of //______________________________________________________ - : ($element="rect")\ - | ($element="g") + : ($name="rect")\ + | ($name="g") Super:C1706.setAttribute($node; "rx"; $radius) //______________________________________________________ - : ($element="circle") + : ($name="circle") Super:C1706.setAttribute($node; "r"; $radius) //______________________________________________________ Else - This:C1470._pushError("Cant set radius for an object "+$element) + This:C1470._pushError("Cant set radius for an object "+$name) //______________________________________________________ End case - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Make visible @@ -3138,7 +3652,7 @@ Function show($applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Make invisible @@ -3154,7 +3668,7 @@ Function hide($applyTo) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Add a class name to an element @@ -3191,7 +3705,7 @@ Function addClass($class : Text; $applyTo) : cs:C1710.svg Super:C1706.setAttribute($node; "class"; $t) - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Remove a class name from an element @@ -3228,11 +3742,11 @@ Function removeClass($class : Text; $applyTo) : cs:C1710.svg End if End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Tests if the node belongs to a class -Function isOfClass($class : Text; $applyTo)->$isOfclass : Boolean +Function isOfClass($class : Text; $applyTo) : Boolean var $node : Text @@ -3247,7 +3761,7 @@ Function isOfClass($class : Text; $applyTo)->$isOfclass : Boolean End if - $isOfclass:=(Position:C15($class; String:C10(This:C1470.getAttribute($node; "class")))#0) + return (Position:C15($class; String:C10(This:C1470.getAttribute($node; "class")))#0) //——————————————————————————————————————————————————————————— // ⚠️ Overrides the method of the inherited class @@ -3293,7 +3807,7 @@ Function setValue($value : Text; $applyTo; $CDATA : Boolean) : cs:C1710.svg End if - return (This:C1470) + return This:C1470 //——————————————————————————————————————————————————————————— // Display the SVG image & tree into the SVG Viewer @@ -3308,7 +3822,7 @@ Function preview($keepStructure : Boolean) If (This:C1470.autoClose)\ & (Not:C34($keepStructure)) - This:C1470.close() + Super:C1706.close() End if @@ -3316,7 +3830,7 @@ Function preview($keepStructure : Boolean) If (This:C1470.autoClose) - This:C1470.close() + Super:C1706.close() End if End if @@ -3393,8 +3907,53 @@ Function getTextHeight($string : Text; $fontAttributes : Object)->$height : Inte End if - //MARK:-PRIVATES //——————————————————————————————————————————————————————————— +Function setText($text : Text; $applyTo) + + var $node : Text + + If (Count parameters:C259>=2) + + $node:=This:C1470._getTarget(String:C10($applyTo)) + + Else + + $node:=This:C1470._getTarget() + + End if + + DOM SET XML ELEMENT VALUE:C868($node; "") + $node:=DOM Append XML child node:C1080($node; XML DATA:K45:12; $text) + + //——————————————————————————————————————————————————————————— +Function TextToPicture($text : Text; $attributes : Object) : Picture + + This:C1470.text($text) + If ($attributes#Null:C1517) + This:C1470.font($attributes) + End if + return This:C1470.picture() + + //——————————————————————————————————————————————————————————— + // Making a point from x & y +Function point($x : Real; $y : Real) : Collection + + return [Round:C94($x; 5); Round:C94($y; 5)] + + //——————————————————————————————————————————————————————————— + // Transforms a point's polar coordinates into cartesian coordinate +Function polarToCartesian($point : Collection; $r : Real; $degree : Integer) : Collection + + var $radian : Real + + $radian:=$degree*Pi:K30:1/180 + $point[0]+=Round:C94($r*Cos:C18($radian); 5) + $point[1]+=Round:C94($r*Sin:C17($radian); 5) + + return $point + + //MARK:-PRIVATES + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // ⚠️ Overrides the method of the inherited class Function _reset @@ -3404,9 +3963,12 @@ Function _reset This:C1470.graphic:=Null:C1517 This:C1470.store:=New collection:C1472 - //——————————————————————————————————————————————————————————— + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // Get an available container -Function _getContainer($param)->$container : Text +Function _getContainer($param) : Text + + var $name : Text + var $container // Keep a backup of the current item reference. // We might need it, if the created element is assigned to a symbol @@ -3423,20 +3985,42 @@ Function _getContainer($param)->$container : Text End if - If ($container#This:C1470.root) + If ($container=This:C1470.root) + + return $container - If (This:C1470._notContainer.indexOf(This:C1470.getName($container))#-1) - - $container:=This:C1470.parent($container) - - End if End if - //——————————————————————————————————————————————————————————— + DOM GET XML ELEMENT NAME:C730($container; $name) + + If (This:C1470._containers.includes($name)) + + return $container + + End if + + $name:=Split string:C1554(Get call chain:C1662[1].name; ".")[1] + + If (This:C1470._notContainer.includes($name)) + + return This:C1470.parent($container) + + End if + + DOM GET XML ELEMENT NAME:C730($container; $name) + + If ($name#"path") + + return This:C1470.parent($container) + + End if + + return $container + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // Returns the target of the function call -Function _getTarget($param)->$target : Text +Function _getTarget($param) : Text - var $tryToBeSmart : Boolean var $o : Object Case of @@ -3444,73 +4028,60 @@ Function _getTarget($param)->$target : Text //______________________________________________________ : (Count parameters:C259=0) - $tryToBeSmart:=True:C214 + // //_______________________________ : (Value type:C1509($param)#Is text:K8:3) - $tryToBeSmart:=True:C214 + // //_______________________________ : ($param="root") - $target:=This:C1470.root + return This:C1470.root //_______________________________ : ($param="latest") - $tryToBeSmart:=True:C214 + // //_______________________________ : ($param="parent") If (This:C1470.latest=Null:C1517) - $target:=This:C1470.root + return This:C1470.root Else // Get the parent - $target:=This:C1470.parent(This:C1470.latest) + return This:C1470.parent(This:C1470.latest) End if //_______________________________ - : (This:C1470._reservedNames.indexOf($param)#-1) + : (This:C1470._reservedNames.includes($param)) - $tryToBeSmart:=True:C214 + // //_______________________________ : (This:C1470.isReference($param)) - $target:=$param // The given reference + return $param // The given reference //_______________________________ Else // Find a memorized targets - $o:=This:C1470.store.query("id=:1"; $param).pop() - - If ($o#Null:C1517) - - $target:=$o.dom - - Else - - $tryToBeSmart:=True:C214 - - End if + $o:=This:C1470.store.query("id=:1"; $param).first() + return $o#Null:C1517 ? $o.dom : "" //_______________________________ End case - If ($tryToBeSmart) - - $target:=Choose:C955(This:C1470.latest#Null:C1517; This:C1470.latest; This:C1470.root) - - End if + return This:C1470.latest#Null:C1517 ? This:C1470.latest : This:C1470.root - //——————————————————————————————————————————————————————————— + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // Looks for element "defs", create if not exists Function _defs()->$reference @@ -3525,6 +4096,7 @@ Function _defs()->$reference Else + // Create & put in first position $root:=DOM Create XML Ref:C861("root") This:C1470.success:=Bool:C1537(OK) @@ -3542,4 +4114,263 @@ Function _defs()->$reference End if End if - \ No newline at end of file + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _data($node : Text) : Collection + + var $data; $name : Text + + $data:=This:C1470.getAttribute($node; "d") + + If (This:C1470.success) + + return Split string:C1554($data; " "; sk ignore empty strings:K86:1) + + Else + + DOM GET XML ELEMENT NAME:C730($node; $name) + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" has no \"d\" property") + + End if + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _ellipticalArc($parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $name; $node : Text + var $c : Collection + + $node:=$parameters.length=8 ? This:C1470._getContainer($parameters[7]) : This:C1470._getContainer() + + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name#"path") + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? "A" : "a")+"\" property") + return This:C1470 + + End if + + $c:=This:C1470._data($node) + + If (This:C1470.success) + + $c.push(($absolute ? "A" : "a")+String:C10($parameters[0]; "&xml")+","+String:C10($parameters[1]; "&xml")) + $c.push(String:C10($parameters[2]; "&xml")) + $c.push(String:C10($parameters[3])+","+String:C10($parameters[4])) + $c.push(String:C10($parameters[5]; "&xml")+","+String:C10($parameters[6]; "&xml")) + + Super:C1706.setAttribute($node; "d"; $c.join(" ")) + + End if + + return This:C1470 + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _moveTo($parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $data; $name; $node : Text + var $points + + $node:=$parameters.length=2 ? This:C1470._getContainer($parameters[1]) : This:C1470._getContainer() + + If (Not:C34(This:C1470._requiredParams(Count parameters:C259; 1))) + + return This:C1470 + + End if + + $points:=$parameters[0] + + Case of + //______________________________________________________ + : (Value type:C1509($points)=Is collection:K8:32) + + $data:=String:C10($points[0]; "&xml")+","+String:C10($points[1]; "&xml") + + //______________________________________________________ + : (Value type:C1509($points)=Is text:K8:3) + + $data:=$points + + //______________________________________________________ + Else + + This:C1470._pushError(Current method name:C684+" Points must be passed as string or collection") + return This:C1470 + + //______________________________________________________ + End case + + DOM GET XML ELEMENT NAME:C730($node; $name) + + Case of + + //………………………………………………………………………………………………… + : ($name="polyline")\ + | ($name="polygon") + + Super:C1706.setAttribute($node; "points"; $data) + + //………………………………………………………………………………………………… + : ($name="path") + + Super:C1706.setAttribute($node; "d"; Super:C1706.getAttribute($node; "d")+($absolute ? " M" : " m")+$data) + + //………………………………………………………………………………………………… + Else + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? " M" : " m")+"\" property") + + //………………………………………………………………………………………………… + End case + + return This:C1470 + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _lineTo($vertical : Boolean; $parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $name; $node : Text + var $c : Collection + + $node:=$parameters.length=2 ? This:C1470._getContainer($parameters[1]) : This:C1470._getContainer() + + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name#"path") + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? "V" : "v")+"\" property") + return This:C1470 + + End if + + $c:=This:C1470._data($node) + + If (This:C1470.success) + + $c.push(($vertical ? ($absolute ? "V" : "v") : ($absolute ? "H" : "h"))+String:C10($parameters[0]; "&xml")) + + Super:C1706.setAttribute($node; "d"; $c.join(" ")) + + End if + + return This:C1470 + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _curveTo($parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $name; $node : Text + var $c : Collection + + $node:=$parameters.length=7 ? This:C1470._getContainer($parameters[6]) : This:C1470._getContainer() + + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name#"path") + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? "C" : "c")+"\" property") + return This:C1470 + + End if + + $c:=This:C1470._data($node) + + If (This:C1470.success) + + $c.push(($absolute ? "C" : "c")+String:C10($parameters[0]; "&xml")+","+String:C10($parameters[1]; "&xml")) + $c.push(String:C10($parameters[2]; "&xml")+","+String:C10($parameters[3]; "&xml")) + $c.push(String:C10($parameters[4]; "&xml")+","+String:C10($parameters[5]; "&xml")) + + Super:C1706.setAttribute($node; "d"; $c.join(" ")) + + End if + + return This:C1470 + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _smoothCurveTo($parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $name; $node : Text + var $c : Collection + + $node:=$parameters.length=5 ? This:C1470._getContainer($parameters[4]) : This:C1470._getContainer() + + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name#"path") + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? "S" : "s")+"\" property") + return This:C1470 + + End if + + $c:=This:C1470._data($node) + + If (This:C1470.success) + + $c.push(($absolute ? "S" : "s")+String:C10($parameters[0]; "&xml")+","+String:C10($parameters[1]; "&xml")) + $c.push(String:C10($parameters[2]; "&xml")+","+String:C10($parameters[3]; "&xml")) + + Super:C1706.setAttribute($node; "d"; $c.join(" ")) + + End if + + return This:C1470 + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _quadraticCurveto($parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $name; $node : Text + var $c : Collection + + $node:=$parameters.length=5 ? This:C1470._getContainer($parameters[4]) : This:C1470._getContainer() + + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name#"path") + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? "Q" : "q")+"\" property") + return This:C1470 + + End if + + $c:=This:C1470._data($node) + + If (This:C1470.success) + + $c.push(($absolute ? "Q" : "q")+String:C10($parameters[0]; "&xml")+","+String:C10($parameters[1]; "&xml")) + $c.push(String:C10($parameters[2]; "&xml")+","+String:C10($parameters[3]; "&xml")) + + Super:C1706.setAttribute($node; "d"; $c.join(" ")) + + End if + + return This:C1470 + + //*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Function _smoothQuadraticCurveto($parameters : Collection; $absolute : Boolean) : cs:C1710.svg + + var $name; $node : Text + var $c : Collection + + $node:=$parameters.length=3 ? This:C1470._getContainer($parameters[2]) : This:C1470._getContainer() + + DOM GET XML ELEMENT NAME:C730($node; $name) + + If ($name#"path") + + This:C1470._pushError(Current method name:C684+" The element \""+$name+"\" is not compatible with \""+($absolute ? "T" : "t")+"\" property") + return This:C1470 + + End if + + $c:=This:C1470._data($node) + + If (This:C1470.success) + + $c.push(($absolute ? "T" : "t")+String:C10($parameters[0]; "&xml")+","+String:C10($parameters[1]; "&xml")) + + Super:C1706.setAttribute($node; "d"; $c.join(" ")) + + End if + + return This:C1470 \ No newline at end of file diff --git a/Project/Sources/Classes/tabControlDelegate.4dm b/Project/Sources/Classes/tabControlDelegate.4dm new file mode 100644 index 0000000..e96ef14 --- /dev/null +++ b/Project/Sources/Classes/tabControlDelegate.4dm @@ -0,0 +1,66 @@ +Class extends widgetDelegate + +property data : Object + +Class constructor($name : Text; $data : Object) + + Super:C1705($name) + + This:C1470.data:={} + + Case of + + //______________________________________________________ + : ($data.values=Null:C1517) + + This:C1470.data.values:=[] + + //______________________________________________________ + : (Value type:C1509($data.values)=Is collection:K8:32) + + This:C1470.data.values:=$data.values + + //______________________________________________________ + : (Value type:C1509($data.values)=Is text:K8:3) + + This:C1470.data.values:=[$data.values] + + //______________________________________________________ + Else + + ASSERT:C1129(False:C215; "Type not allowed for data.values!") + + //______________________________________________________ + End case + + This:C1470.data.index:=Num:C11($data.index) + + This:C1470.data.currentValue:=This:C1470.data.index<=This:C1470.data.values.length\ + ? This:C1470.data.values[This:C1470.data.index]\ + : "" + + // <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== <== +Function get pageNumber() : Integer + + return This:C1470.data.values.indexOf(This:C1470.data.currentValue)+1 + + // ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> ==> +Function set pageNumber($page : Integer) + + $page-=1 // Map to 0 - collection.length-1 + + This:C1470.data.index:=$page>=0 ? $page : 0 + + This:C1470.data.currentValue:=This:C1470.data.index<=This:C1470.data.values.length\ + ? This:C1470.data.values[This:C1470.data.index]\ + : "" + + If (Value type:C1509(OBJECT Get subform container value:C1785)=Is undefined:K8:13) + + FORM GOTO PAGE:C247($page+1) + + Else + + FORM GOTO PAGE:C247($page+1; *) + + End if \ No newline at end of file diff --git a/Project/Sources/Classes/wait.4dm b/Project/Sources/Classes/wait.4dm new file mode 100644 index 0000000..e588b0c --- /dev/null +++ b/Project/Sources/Classes/wait.4dm @@ -0,0 +1,46 @@ + +// The constructor expects a timeout in milliseconds +Class constructor($timeout : Integer) + + This:C1470.startTime:=Milliseconds:C459 + This:C1470.endTime:=This:C1470.startTime+$timeout + This:C1470.stepDelay:=30 + + // === === === === === === === === === === === === === === === === === === === === === === === === === === + // With a start delay +Function withDelay($delay : Integer) : cs:C1710.wait + + DELAY PROCESS:C323(Current process:C322; $delay) + + return This:C1470 + + // === === === === === === === === === === === === === === === === === === === === === === === === === === + // With a specific delay for each check +Function withStep($delay : Integer) : cs:C1710.wait + + This:C1470.stepDelay:=$delay + + return This:C1470 + + // === === === === === === === === === === === === === === === === === === === === === === === === === === + // Stop on condition or timeout +/* +If (cs.wait.new(1000).until(Formula(myFormula))) +// +End if +*/ +Function until($condition : 4D:C1709.Function) : Boolean + + var $milliseconds : Integer + $milliseconds:=Milliseconds:C459 + + While ($condition.call())\ + && ($milliseconds=2) - OBJECT SET DRAG AND DROP OPTIONS:C1183(*; This:C1470.name; $enabled; $automatic; $droppable; $automaticDrop) + $draggable:=$enabled + $automaticDrag:=$automatic //______________________________________________________ : (Count parameters:C259>=1) - OBJECT SET DRAG AND DROP OPTIONS:C1183(*; This:C1470.name; $enabled; False:C215; $droppable; $automaticDrop) + $draggable:=$enabled + $automaticDrag:=False:C215 //______________________________________________________ Else - OBJECT SET DRAG AND DROP OPTIONS:C1183(*; This:C1470.name; True:C214; False:C215; $droppable; $automaticDrop) + $draggable:=True:C214 + $automaticDrag:=False:C215 //______________________________________________________ End case + OBJECT SET DRAG AND DROP OPTIONS:C1183(*; This:C1470.name; $draggable; $automaticDrag; $droppable; $automaticDrop) + return This:C1470 // === === === === === === === === === === === === === === === === === === === === === === === === === === diff --git a/Project/Sources/Classes/windowDelegate.4dm b/Project/Sources/Classes/windowDelegate.4dm index 50d5933..91167c4 100644 --- a/Project/Sources/Classes/windowDelegate.4dm +++ b/Project/Sources/Classes/windowDelegate.4dm @@ -330,6 +330,21 @@ Function erase() ERASE WINDOW:C160(This:C1470.ref) + // === === === === === === === === === === === === === === === === === === === === === === === === === === +Function drag() + + DRAG WINDOW:C452 + + // === === === === === === === === === === === === === === === === === === === === === === === === === === +Function reduce() + + REDUCE RESTORE WINDOW:C1829(This:C1470.ref) + + // === === === === === === === === === === === === === === === === === === === === === === === === === === +Function restore() + + REDUCE RESTORE WINDOW:C1829(This:C1470.ref) + // === === === === === === === === === === === === === === === === === === === === === === === === === === Function maximize() diff --git a/Project/Sources/Classes/xml.4dm b/Project/Sources/Classes/xml.4dm index b4be68f..5fc5ce1 100644 --- a/Project/Sources/Classes/xml.4dm +++ b/Project/Sources/Classes/xml.4dm @@ -9,7 +9,7 @@ Class constructor($variable) This:C1470.errors:=New collection:C1472 - If (Count parameters:C259>=1) + If ($variable#Null:C1517) This:C1470.load($variable) @@ -21,7 +21,7 @@ Class constructor($variable) //——————————————————————————————————————————————————————————— // Creates a XML tree in memory -Function newRef($root : Text; ... : Text)->$this : cs:C1710.xml +Function newRef($root : Text; $nameSpace : Text; ... : Text) : cs:C1710.xml var $t : Text var $countParam; $i : Integer @@ -47,7 +47,7 @@ Function newRef($root : Text; ... : Text)->$this : cs:C1710.xml //______________________________________________________ : ($countParam=2) // -> root + namespace - This:C1470.root:=DOM Create XML Ref:C861($root; $2) + This:C1470.root:=DOM Create XML Ref:C861($root; $nameSpace) //______________________________________________________ : (($countParam%2)=0) // -> root + namespace's pairs @@ -67,7 +67,7 @@ Function newRef($root : Text; ... : Text)->$this : cs:C1710.xml //______________________________________________________ Else // -> root + namespace + namespace's pairs - $t:="DOM Create XML Ref:C861("+$root+";"+$1 + $t:="DOM Create XML Ref:C861("+$root+";"+$nameSpace For ($i; 2; $countParam; 2) @@ -84,11 +84,35 @@ Function newRef($root : Text; ... : Text)->$this : cs:C1710.xml This:C1470.success:=Bool:C1537(OK) - $this:=This:C1470 + return This:C1470 + + //——————————————————————————————————————————————————————————— + // Defines the options concerning the encoding and the standalone property of the tree +Function setDeclaration($encoding : Text; $standalone : Boolean) + + Case of + + //____________________________________________ + : (Count parameters:C259=0) // Defaults values + + DOM SET XML DECLARATION:C859(This:C1470.root; "UTF-8"; False:C215) + + //____________________________________________ + : (Count parameters:C259=1) + + DOM SET XML DECLARATION:C859(This:C1470.root; $encoding; False:C215) + + //____________________________________________ + : (Count parameters:C259=2) + + DOM SET XML DECLARATION:C859(This:C1470.root; $encoding; $standalone) + + //____________________________________________ + End case //——————————————————————————————————————————————————————————— // Set the value of one option for the structure -Function setOption($selector : Integer; $value : Integer)->$this : cs:C1710.xml +Function setOption($selector : Integer; $value : Integer) : cs:C1710.xml This:C1470.success:=(Count parameters:C259=2) @@ -102,11 +126,11 @@ Function setOption($selector : Integer; $value : Integer)->$this : cs:C1710.xml End if - $this:=This:C1470 + return This:C1470 //——————————————————————————————————————————————————————————— // Set the value of one or more XML options for the structure -Function setOptions($selector : Integer; $value : Integer; ... : Integer)->$this : cs:C1710.xml +Function setOptions($selector : Integer; $value : Integer; ... : Integer) : cs:C1710.xml var $i : Integer @@ -126,69 +150,54 @@ Function setOptions($selector : Integer; $value : Integer; ... : Integer)->$th End if - $this:=This:C1470 + return This:C1470 //——————————————————————————————————————————————————————————— // Parse a variable (TEXT or BLOB) -Function parse($source : Variant; $validate : Boolean; $schema : Text)->$this : cs:C1710.xml +Function parse($source : Variant; $validate : Boolean; $schema : Text) : cs:C1710.xml Case of //…………………………………………………………………………………………… : (Count parameters:C259=3) - $this:=This:C1470.load($source; $validate; $schema) + return This:C1470.load($source; $validate; $schema) //…………………………………………………………………………………………… : (Count parameters:C259=2) - $this:=This:C1470.load($source; $validate) + return This:C1470.load($source; $validate) //…………………………………………………………………………………………… : (Count parameters:C259=1) - $this:=This:C1470.load($source) + return This:C1470.load($source) //…………………………………………………………………………………………… Else - $this:=This:C1470.load() + return This:C1470.load() //…………………………………………………………………………………………… End case //——————————————————————————————————————————————————————————— // Open and parse a file -Function open($file : 4D:C1709.File; $validate : Boolean; $schema : Text)->$this : cs:C1710.xml +Function open($file : 4D:C1709.File; $validate : Boolean; $schema : Text) : cs:C1710.xml - Case of - - //…………………………………………………………………………………………… - : (Count parameters:C259=3) - - $this:=This:C1470.load($file; $validate; $schema) - - //…………………………………………………………………………………………… - : (Count parameters:C259=2) - - $this:=This:C1470.load($file; $validate) - - //…………………………………………………………………………………………… - : (Count parameters:C259=1) - - $this:=This:C1470.load($file) - - //…………………………………………………………………………………………… - Else - - $this:=This:C1470.load() - - //…………………………………………………………………………………………… - End case + If ($file=Null:C1517) + + This:C1470.success:=False:C215 + This:C1470.errors.push(Current method name:C684+" - Missing the target to load") + return + + End if + + return This:C1470.load($file; $validate; $schema) //——————————————————————————————————————————————————————————— // Load a variable (TEXT or BLOB) or a file -Function load($source : Variant; $validate : Boolean; $schema : Text)->$this : cs:C1710.xml +Function load($source; $validate : Boolean; $schema : Text) : cs:C1710.xml var $root : Text @@ -206,26 +215,7 @@ Function load($source : Variant; $validate : Boolean; $schema : Text)->$this : c : (Value type:C1509($source)=Is text:K8:3)\ | (Value type:C1509($source)=Is BLOB:K8:12) // Parse a given variable - Case of - - //…………………………………………………………………………………………… - : (Count parameters:C259=1) - - $root:=DOM Parse XML variable:C720($source) - - //…………………………………………………………………………………………… - : (Count parameters:C259=2) - - $root:=DOM Parse XML variable:C720($source; $validate) - - //…………………………………………………………………………………………… - Else - - $root:=DOM Parse XML variable:C720($source; $validate; $schema) - - //…………………………………………………………………………………………… - End case - + $root:=DOM Parse XML variable:C720($source; $validate; $schema) This:C1470.success:=Bool:C1537(OK) If (This:C1470.success) @@ -234,7 +224,7 @@ Function load($source : Variant; $validate : Boolean; $schema : Text)->$this : c Else - This:C1470.errors.push(Current method name:C684+" - Failed to parse the "+Choose:C955(Value type:C1509($source)=Is text:K8:3; "text"; "blob")+" variable") + This:C1470.errors.push(Current method name:C684+" - Failed to parse the "+(Value type:C1509($source)=Is text:K8:3 ? "text" : "blob")+" variable") End if @@ -243,50 +233,29 @@ Function load($source : Variant; $validate : Boolean; $schema : Text)->$this : c This:C1470.success:=OB Instance of:C1731($source; 4D:C1709.File) - If (This:C1470.success) + If (Not:C34(This:C1470.success)) - This:C1470.success:=Bool:C1537($source.isFile) & Bool:C1537($source.exists) + This:C1470.errors.push(Current method name:C684+" - The parameter is not a File object") + return This:C1470 - If (This:C1470.success) - - Case of - - //…………………………………………………………………………………………… - : (Count parameters:C259=1) - - $root:=DOM Parse XML source:C719($source.platformPath) - - //…………………………………………………………………………………………… - : (Count parameters:C259=2) - - $root:=DOM Parse XML source:C719($source.platformPath; $validate) - - //…………………………………………………………………………………………… - Else - - $root:=DOM Parse XML source:C719($source.platformPath; $validate; $schema) - - //…………………………………………………………………………………………… - End case - - This:C1470.success:=Bool:C1537(OK) - - If (This:C1470.success) - - This:C1470.root:=$root - This:C1470.file:=$source - - End if - - Else - - This:C1470.errors.push(Current method name:C684+" - File not found: "+String:C10($source.platformPath)) - - End if + End if + + This:C1470.success:=$source.isFile & $source.exists + + If (Not:C34(This:C1470.success)) - Else + This:C1470.errors.push(Current method name:C684+" - File not found: "+String:C10($source.platformPath)) + return This:C1470 - This:C1470.errors.push(Current method name:C684+" - The parameter is not a File object") + End if + + $root:=DOM Parse XML source:C719($source.platformPath; $validate; $schema) + This:C1470.success:=Bool:C1537(OK) + + If (This:C1470.success) + + This:C1470.root:=$root + This:C1470.file:=$source End if @@ -298,19 +267,16 @@ Function load($source : Variant; $validate : Boolean; $schema : Text)->$this : c //________________________________________ End case - $this:=This:C1470 + return This:C1470 //——————————————————————————————————————————————————————————— -Function save($file : Variant; $keepStructure : Boolean)->$this : cs:C1710.xml +Function save($file; $keepStructure : Boolean) : cs:C1710.xml - var $close : Boolean var $t : Text - var $fileƒ : 4D:C1709.File If (Count parameters:C259>=2) - $fileƒ:=$file - $close:=$keepStructure + // Else @@ -318,23 +284,23 @@ Function save($file : Variant; $keepStructure : Boolean)->$this : cs:C1710.xml If (Value type:C1509($file)=Is object:K8:27) - $fileƒ:=$file + // Else - $fileƒ:=This:C1470.file - $close:=Bool:C1537($file) + $file:=This:C1470.file + $keepStructure:=Bool:C1537($file) End if Else - $fileƒ:=This:C1470.file + $file:=This:C1470.file End if End if - This:C1470.success:=OB Instance of:C1731($fileƒ; 4D:C1709.File) + This:C1470.success:=OB Instance of:C1731($file; 4D:C1709.File) If (This:C1470.success) @@ -344,7 +310,7 @@ Function save($file : Variant; $keepStructure : Boolean)->$this : cs:C1710.xml If (This:C1470.success) This:C1470.xml:=$t - $fileƒ.setText($t) + $file.setText($t) Else @@ -362,7 +328,7 @@ Function save($file : Variant; $keepStructure : Boolean)->$this : cs:C1710.xml If (Count parameters:C259>=1) - This:C1470._close($close) + This:C1470._close($keepStructure) Else @@ -371,11 +337,11 @@ Function save($file : Variant; $keepStructure : Boolean)->$this : cs:C1710.xml End if End if - $this:=This:C1470 + return This:C1470 //——————————————————————————————————————————————————————————— // Close the XML tree -Function close()->$this : cs:C1710.xml +Function close() : cs:C1710.xml This:C1470.success:=(This:C1470.root#Null:C1517) @@ -387,38 +353,40 @@ Function close()->$this : cs:C1710.xml End if - $this:=This:C1470 + return This:C1470 /*———————————————————————————————————————————————————————————*/ -Function create($target : Text; $XPath : Variant; $attributes : Variant)->$node : Text +Function create($target : Text; $XPath; $attributes)->$node : Text - If (This:C1470._requiredParams(Count parameters:C259; 1)) + If (Not:C34(This:C1470._requiredParams(Count parameters:C259; 1))) - If (This:C1470.isReference($target)) - - $node:=DOM Create XML element:C865($target; $XPath) - - If (Count parameters:C259>=3) - - This:C1470.setAttributes($node; $attributes) - - End if - - Else + return + + End if + + If (This:C1470.isReference($target)) + + $node:=DOM Create XML element:C865($target; $XPath) + + If (Count parameters:C259>=3) - $node:=DOM Create XML element:C865(This:C1470.root; $target) + This:C1470.setAttributes($node; $attributes) - If (Count parameters:C259>=2) - - This:C1470.setAttributes($node; $XPath) - - End if End if - This:C1470.success:=Bool:C1537(OK) + Else + + $node:=DOM Create XML element:C865(This:C1470.root; $target) + If (Count parameters:C259>=2) + + This:C1470.setAttributes($node; $XPath) + + End if End if + This:C1470.success:=Bool:C1537(OK) + //——————————————————————————————————————————————————————————— // Append a source element to the target element Function append($target : Text; $source : Text)->$node : Text @@ -426,6 +394,18 @@ Function append($target : Text; $source : Text)->$node : Text If (This:C1470._requiredParams(Count parameters:C259; 2)) $node:=DOM Append XML element:C1082($target; $source) + This:C1470.success:=Bool:C1537(OK) + + End if + + //——————————————————————————————————————————————————————————— + // Append a comment to the target element +Function comment($target : Text; $comment : Text)->$node : Text + + If (This:C1470._requiredParams(Count parameters:C259; 1)) + + $node:=DOM Append XML child node:C1080($target; XML comment:K45:8; $comment) + This:C1470.success:=Bool:C1537(OK) End if @@ -433,17 +413,9 @@ Function append($target : Text; $source : Text)->$node : Text // Insert a XML element among the child elements of the $target element Function insert($target : Text; $source : Text; $index : Integer)->$node : Text - var $indx : Integer - If (This:C1470._requiredParams(Count parameters:C259; 2)) - If (Count parameters:C259>=3) - - $indx:=$index - - End if - - $node:=DOM Insert XML element:C1083($target; $source; $indx) + $node:=DOM Insert XML element:C1083($target; $source; $index) This:C1470.success:=Bool:C1537(OK) End if @@ -513,17 +485,115 @@ Function getContent($keepStructure : Boolean)->$content : Blob //———————————————————————————————————————————————————————————/ // -Function toObject($withAdresses : Boolean)->$object : Object +Function toObject($withAdresses : Boolean) : Object - If (Count parameters:C259>=1) - - $object:=This:C1470._elementToObject(This:C1470.root; $withAdresses) - - Else - - $object:=This:C1470._elementToObject(This:C1470.root) - - End if + return This:C1470._elementToObject(This:C1470.root; $withAdresses) + + //———————————————————————————————————————————————————————————/ + // +Function toList($refPtr : Pointer; $xpath : Text; $root : Text) : Integer + + var $name; $node; $value; $current : Text + var $count; $i; $ref; $list; $sublist : Integer + + Case of + //______________________________________________________ + : (Count parameters:C259<2) + + This:C1470._pushError("Missing parameter") + return + + //______________________________________________________ + : (Length:C16($xpath)=0) + + This:C1470._pushError("xpath parameter couldn't be an empty string") + return + + //______________________________________________________ + : ($xpath="/") + + This:C1470._pushError("You must provide the root name of the XML tree in the xpath parameter") + return + + //______________________________________________________ + Else + + If (Count parameters:C259<3) + + If (This:C1470.isReference($xpath)) + + $root:=$xpath + $xpath:="" + + Else + + $root:=This:C1470.root + + End if + End if + + // Ensure to work with an absolute path + $xpath:=$xpath[[1]]="/" ? $xpath : "/"+$xpath + + DOM GET XML ELEMENT NAME:C730($root; $name) + DOM GET XML ELEMENT VALUE:C731($root; $value) + + $list:=New list:C375 + + Repeat + + $current:=$xpath+"/"+$name + $refPtr->+=1 + $ref:=$refPtr-> + + $count:=DOM Count XML attributes:C727($root) + ARRAY TEXT:C222($names; $count) + ARRAY TEXT:C222($values; $count) + + If ($count>0) + + For ($i; 1; $count; 1) + + DOM GET XML ATTRIBUTE BY INDEX:C729($root; $i; $names{$i}; $values{$i}) + + End for + End if + + $node:=DOM Get first child XML element:C723($root) + + If (Bool:C1537(OK)) + + $sublist:=This:C1470.toList($refPtr; $current; $node) // <==== RECURSIVE + + APPEND TO LIST:C376($list; $name; $ref; $sublist; True:C214) + SET LIST ITEM PROPERTIES:C386($list; 0; False:C215; Bold:K14:2; 0) + + Else + + If ($name#"") + + APPEND TO LIST:C376($list; $name; $ref) + SET LIST ITEM PARAMETER:C986($list; 0; "value"; This:C1470._convert($value)) + SET LIST ITEM PARAMETER:C986($list; 0; "dom"; $root) + + For ($i; 1; $count; 1) + + SET LIST ITEM PARAMETER:C986($list; 0; $names{$i}; $values{$i}) + + End for + End if + End if + + SET LIST ITEM PARAMETER:C986($list; 0; "xpath"; $current) + + $root:=DOM Get next sibling XML element:C724($root; $name; $value) + + Until (OK=0) + + //______________________________________________________ + End case + + return $list // ————————————————————————————————————————————————————————————————————————————————— // Search for an element by its id @@ -565,8 +635,8 @@ Function findByXPath($xpath : Text; $node : Text)->$reference : Text // Searches for one or more elements corresponding to an XPath & returns a references collection if success. Function find($node : Text; $xpath : Text)->$references : Collection - $references:=New collection:C1472() - ARRAY TEXT:C222($nodes; 0x0000) + $references:=New collection:C1472 + ARRAY TEXT:C222($nodes; 0) If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -597,7 +667,7 @@ Function findByName($target : Text; $name : Text)->$references : Collection If (This:C1470._requiredParams(Count parameters:C259; 1)) - ARRAY TEXT:C222($nodes; 0x0000) + ARRAY TEXT:C222($nodes; 0) If (Count parameters:C259>=2) @@ -649,7 +719,7 @@ Function findByAttribute($target : Text; $name : Text; $value : Text; $valor)->$ If (This:C1470._requiredParams(Count parameters:C259; 1)) - ARRAY TEXT:C222($nodes; 0x0000) + ARRAY TEXT:C222($nodes; 0) If (This:C1470.isReference($1)) @@ -766,6 +836,7 @@ Function findOrCreate($target : Text; $value : Text)->$reference : Text // Returns a reference to the parent of a node // If a name is passed, goes up in the hierarchy to find the named element Function parent($node : Text; $name : Text)->$reference : Text + var $elementName : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -802,6 +873,7 @@ Function parent($node : Text; $name : Text)->$reference : Text // If the node's reference isn't passed, return the first child of the root // If a name is passed, looks for the first child with that name Function firstChild($node : Text; $name : Text)->$reference : Text + var $elementName : Text If (Count parameters:C259>=1) @@ -843,11 +915,12 @@ Function firstChild($node : Text; $name : Text)->$reference : Text // If the node's reference isn't passed, return the last child of the root // If a name is passed, looks for the last child with that name Function lastChild($node : Text; $name : Text)->$reference : Text + var $elementName : Text If (Count parameters:C259>=1) - If (This:C1470._requiredRef($1)) + If (This:C1470._requiredRef($node)) $reference:=DOM Get last child XML element:C925($node; $elementName) This:C1470.success:=Bool:C1537(OK) @@ -883,7 +956,7 @@ Function lastChild($node : Text; $name : Text)->$reference : Text // Returns the list of the childs' references of a node or root if ref is omitted Function childrens($node : Text)->$childs : Collection - ARRAY TEXT:C222($nodes; 0x0000) + ARRAY TEXT:C222($nodes; 0) If (Count parameters:C259>=1) @@ -908,12 +981,13 @@ Function childrens($node : Text)->$childs : Collection // ————————————————————————————————————————————————————————————————————————————————— // Returns the list of the descendant' references of a node or root if ref is omitted Function descendants($node : Text)->$descendants : Collection + var $i : Integer $descendants:=New collection:C1472 - ARRAY LONGINT:C221($types; 0x0000) - ARRAY TEXT:C222($nodes; 0x0000) + ARRAY LONGINT:C221($types; 0) + ARRAY TEXT:C222($nodes; 0) If (Count parameters:C259>=1) @@ -943,6 +1017,7 @@ Function descendants($node : Text)->$descendants : Collection // Returns a reference to the next “sibling” // If a name is passed, looks for the first sibling with that name Function nextSibling($node : Text; $name : Text)->$reference : Text + var $elementName : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -977,6 +1052,7 @@ Function nextSibling($node : Text; $name : Text)->$reference : Text // Returns a reference to the previous “sibling” // If a name is passed, looks for the first sibling with that name Function previousSibling($node : Text; $name : Text)->$reference : Text + var $elementName : Text If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1023,7 +1099,7 @@ Function getName($node : Text)->$name : Text // ————————————————————————————————————————————————————————————————————————————————— // Modifies the name of the element set by $node -Function setName($node : Text; $name : Text)->$this : cs:C1710.xml +Function setName($node : Text; $name : Text) : cs:C1710.xml If (This:C1470._requiredParams(Count parameters:C259; 2)) @@ -1035,11 +1111,11 @@ Function setName($node : Text; $name : Text)->$this : cs:C1710.xml End if End if - $this:=This:C1470 + return This:C1470 // ————————————————————————————————————————————————————————————————————————————————— // Removes the element set by $node -Function remove($node : Text)->$this : cs:C1710.xml +Function remove($node : Text) : cs:C1710.xml If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1051,7 +1127,7 @@ Function remove($node : Text)->$this : cs:C1710.xml End if End if - $this:=This:C1470 + return This:C1470 // ————————————————————————————————————————————————————————————————————————————————— // Returns the value of the XML element designated by $node @@ -1127,11 +1203,12 @@ Function popAttribute($node : Text; $attribute : Text)->$value End if End if + // ————————————————————————————————————————————————————————————————————————————————— // Returns a node attributes as object Function getAttributes($node : Text)->$attributes : Object - var $key; $nodeƒ; $t; $value : Text + var $key; $nodeƒ; $value : Text var $i : Integer If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1151,8 +1228,6 @@ Function getAttributes($node : Text)->$attributes : Object $attributes:=New object:C1471 - GET SYSTEM FORMAT:C994(Decimal separator:K60:1; $t) - For ($i; 1; DOM Count XML attributes:C727($nodeƒ); 1) DOM GET XML ATTRIBUTE BY INDEX:C729($nodeƒ; $i; $key; $value) @@ -1175,91 +1250,116 @@ Function getAttributesCollection($node : Text)->$attributes : Collection // ————————————————————————————————————————————————————————————————————————————————— // Set a node attribute -Function setAttribute($node : Text; $name : Text; $value)->$this : cs:C1710.xml +Function setAttribute($node : Text; $name : Text; $value) : cs:C1710.xml If (This:C1470._requiredParams(Count parameters:C259; 3)) If (This:C1470._requiredRef($node)) - DOM SET XML ATTRIBUTE:C866($node; $name; $value) + Case of + //______________________________________________________ + : (Value type:C1509($value)=Is collection:K8:32)\ + | (Value type:C1509($value)=Is object:K8:27) + + DOM SET XML ATTRIBUTE:C866($node; $name; JSON Stringify:C1217($value)) + + //______________________________________________________ + Else + + DOM SET XML ATTRIBUTE:C866($node; $name; $value) + + //______________________________________________________ + End case + + This:C1470.success:=Bool:C1537(OK) End if End if - $this:=This:C1470 + return This:C1470 // ————————————————————————————————————————————————————————————————————————————————— // Set a node attributes from an object or a collection (key/value pairs) -Function setAttributes($node : Text; $attributes; $value)->$this : cs:C1710.xml +Function setAttributes($node : Text; $attributes; $value) : cs:C1710.xml var $t : Text var $o : Object + var $val - If (This:C1470._requiredParams(Count parameters:C259; 2)) + If (This:C1470._requiredParams(Count parameters:C259; 2)) && (This:C1470._requiredRef($node)) - If (This:C1470._requiredRef($node)) - - Case of + Case of + + //______________________________________________________ + : (Value type:C1509($attributes)=Is text:K8:3) + + If (This:C1470._requiredParams(Count parameters:C259; 3)) - //______________________________________________________ - : (Value type:C1509($attributes)=Is text:K8:3) + This:C1470.setAttribute($node; $attributes; $value) - If (This:C1470._requiredParams(Count parameters:C259; 3)) - - This:C1470.setAttribute($node; $attributes; $value) - - End if + End if + + //______________________________________________________ + : (Value type:C1509($attributes)=Is object:K8:27) + + For each ($t; $attributes) While (This:C1470.success) - //______________________________________________________ - : (Value type:C1509($attributes)=Is object:K8:27) + $val:=$attributes[$t] + DOM SET XML ATTRIBUTE:C866($node; $t; $val) - For each ($t; $attributes) While (This:C1470.success) - - DOM SET XML ATTRIBUTE:C866($node; \ - $t; $attributes[$t]) - This:C1470.success:=Bool:C1537(OK) - - End for each + This:C1470.success:=Bool:C1537(OK) If (Not:C34(This:C1470.success)) This:C1470.errors.push(Current method name:C684+" - Failed to set attribute \""+$t+"\"") + break End if + End for each + + //______________________________________________________ + : (Value type:C1509($attributes)=Is collection:K8:32) + + For each ($o; $attributes) While (This:C1470.success) - //______________________________________________________ - : (Value type:C1509($attributes)=Is collection:K8:32) - - For each ($o; $attributes) While (This:C1470.success) + If (Value type:C1509($o.value)=Is object:K8:27)\ + | (Value type:C1509($o.value)=Is collection:K8:32) - DOM SET XML ATTRIBUTE:C866($node; \ - String:C10($o.key); $o.value) - This:C1470.success:=Bool:C1537(OK) + DOM SET XML ATTRIBUTE:C866($node; String:C10($o.key); JSON Stringify:C1217($o.value)) - If (Not:C34(This:C1470.success)) - - This:C1470.errors.push(Current method name:C684+" - Failed to set attribute \""+String:C10($o.key)+"\"") - - End if - End for each - - //______________________________________________________ - Else + Else + + $val:=$o.value + DOM SET XML ATTRIBUTE:C866($node; String:C10($o.key); $val) + + End if - This:C1470.success:=False:C215 - This:C1470.errors.push(Current method name:C684+" - Unmanaged type: "+String:C10(Value type:C1509($node))) + This:C1470.success:=Bool:C1537(OK) - //______________________________________________________ - End case - End if + If (Not:C34(This:C1470.success)) + + This:C1470.errors.push(Current method name:C684+" - Failed to set attribute \""+String:C10($o.key)+"\"") + break + + End if + End for each + + //______________________________________________________ + Else + + This:C1470.success:=False:C215 + This:C1470.errors.push(Current method name:C684+" - Unmanaged type: "+String:C10(Value type:C1509($node))) + + //______________________________________________________ + End case End if - $this:=This:C1470 + return This:C1470 // ————————————————————————————————————————————————————————————————————————————————— // Removes, if it exists, the attribute designated by $name from the XML $node -Function removeAttribute($node : Text; $attribute : Text)->$this : cs:C1710.xml +Function removeAttribute($node : Text; $attribute : Text) : cs:C1710.xml If (This:C1470._requiredParams(Count parameters:C259; 1)) @@ -1284,11 +1384,11 @@ Function removeAttribute($node : Text; $attribute : Text)->$this : cs:C1710.xml End if - $this:=This:C1470 + return This:C1470 // ————————————————————————————————————————————————————————————————————————————————— // Modifies the value of the element set by $node -Function setValue($node : Text; $value : Variant; $inCDATA : Boolean)->$this : cs:C1710.xml +Function setValue($node : Text; $value : Variant; $inCDATA : Boolean) : cs:C1710.xml If (Count parameters:C259=3) @@ -1310,49 +1410,50 @@ Function setValue($node : Text; $value : Variant; $inCDATA : Boolean)->$this : c This:C1470.success:=Bool:C1537(OK) - $this:=This:C1470 + return This:C1470 // ————————————————————————————————————————————————————————————————————————————————— -Function isNull($reference : Text)->$response : Boolean +Function isNull($reference : Text) : Boolean - $response:=Match regex:C1019("0{32}"; $reference; 1) + return Match regex:C1019("0{32}"; $reference; 1) // ————————————————————————————————————————————————————————————————————————————————— -Function isNotNull($reference : Text)->$response : Boolean +Function isNotNull($reference : Text) : Boolean - $response:=Not:C34(This:C1470.isNull($reference)) + return Not:C34(This:C1470.isNull($reference)) // ————————————————————————————————————————————————————————————————————————————————— // Tests if the passed text is compliant with a XML reference -Function isReference($text : Text)->$response : Boolean +Function isReference($text : Text) : Boolean - $response:=Match regex:C1019("[[:xdigit:]]{32}"; $text; 1) + return Match regex:C1019("[[:xdigit:]]{32}"; $text; 1) // ————————————————————————————————————————————————————————————————————————————————— -Function _requiredRef($reference : Text)->$response : Boolean +Function _requiredRef($reference : Text) : Boolean - $response:=Match regex:C1019("[[:xdigit:]]{32}"; $reference; 1) + This:C1470.success:=Match regex:C1019("[[:xdigit:]]{32}"; $reference; 1) - If (Not:C34($response)) + If (Not:C34(This:C1470.success)) This:C1470._pushError("Invalid XML element reference") + return End if - This:C1470.success:=$response + return This:C1470.success // ————————————————————————————————————————————————————————————————————————————————— -Function _requiredParams($count; $number)->$response : Boolean +Function _requiredParams($count; $number) : Boolean - $response:=$count>=$number + This:C1470.success:=$count>=$number - If (Not:C34($response)) + If (Not:C34(This:C1470.success)) This:C1470._pushError("Missing one or more parameters") End if - This:C1470.success:=$response + return This:C1470.success // ————————————————————————————————————————————————————————————————————————————————— Function _convert($textValue : Text)->$value @@ -1360,17 +1461,22 @@ Function _convert($textValue : Text)->$value Case of //______________________________________________________ - : (Match regex:C1019("(?m-is)^(?:[tT]rue|[fF]alse)$"; $textValue; 1)) + : (Match regex:C1019("(?mi-s)^\\[.*\\]$"; $textValue; 1; *)) + + $value:=JSON Parse:C1218($textValue) + + //______________________________________________________ + : (Match regex:C1019("(?m-is)^(?:[tT]rue|[fF]alse)$"; $textValue; 1; *)) $value:=($textValue="true") //______________________________________________________ - : (Match regex:C1019("(?m-si)^(?:\\+|-)?\\d+(?:\\.|"+$textValue+"\\d+)?$"; $textValue; 1)) + : (Match regex:C1019("(?m-si)^(?:\\+|-)?\\d+(?:\\.\\d+)?$"; $textValue; 1; *)) - $value:=Num:C11($textValue) + $value:=Num:C11($textValue; ".") //______________________________________________________ - : (Match regex:C1019("(?m-si)^\\d+-\\d+-\\d+$"; $textValue; 1)) + : (Match regex:C1019("(?m-si)^\\d+-\\d+-\\d+$"; $textValue; 1; *)) $value:=Date:C102($textValue+"T00:00:00") @@ -1433,19 +1539,12 @@ Function _reset Function _elementToObject($ref : Text; $withAdresses : Boolean)->$object : Object var $node; $key; $name; $tValue : Text - var $withRef : Boolean var $count; $i : Integer - If (Count parameters:C259>=2) - - $withRef:=$withAdresses - - End if - $object:=New object:C1471 // DOM reference - If ($withRef) + If ($withAdresses) $object["@"]:=$ref @@ -1505,13 +1604,13 @@ Function _elementToObject($ref : Text; $withAdresses : Boolean)->$object : Objec For ($i; 1; $count; 1) - $object[$name].push(This:C1470._elementToObject(DOM Get XML element:C725($ref; $name; $i); $withRef)) + $object[$name].push(This:C1470._elementToObject(DOM Get XML element:C725($ref; $name; $i); $withAdresses)) End for Else - $object[$name]:=This:C1470._elementToObject($node; $withRef) + $object[$name]:=This:C1470._elementToObject($node; $withAdresses) End if @@ -1532,13 +1631,13 @@ Function _elementToObject($ref : Text; $withAdresses : Boolean)->$object : Objec For ($i; 1; $count; 1) - $object[$name].push(This:C1470._elementToObject(DOM Get XML element:C725($ref; $name; $i); $withRef)) + $object[$name].push(This:C1470._elementToObject(DOM Get XML element:C725($ref; $name; $i); $withAdresses)) End for Else - $object[$name]:=This:C1470._elementToObject($node; $withRef) + $object[$name]:=This:C1470._elementToObject($node; $withAdresses) End if End if diff --git a/Project/Sources/Forms/DEMO_WINDOW_FRAME/ObjectMethods/Button.4dm b/Project/Sources/Forms/DEMO_WINDOW_FRAME/ObjectMethods/Button.4dm new file mode 100644 index 0000000..291c201 --- /dev/null +++ b/Project/Sources/Forms/DEMO_WINDOW_FRAME/ObjectMethods/Button.4dm @@ -0,0 +1,3 @@ +var $state : Integer +$state:=OBJECT Get value:C1743("bar") +OBJECT SET VALUE:C1742("bar"; $state ?? 0 ? $state ?- 0 : $state ?+ 0) \ No newline at end of file diff --git a/Project/Sources/Forms/DEMO_WINDOW_FRAME/Windows.css b/Project/Sources/Forms/DEMO_WINDOW_FRAME/Windows.css new file mode 100644 index 0000000..407eadc --- /dev/null +++ b/Project/Sources/Forms/DEMO_WINDOW_FRAME/Windows.css @@ -0,0 +1,25 @@ +.windowFrameBackground, +.winListHeaderBackground { + fill: #F8F8F8; + stroke: transparent; + sizingX: "grow"; +} + @media (prefers-color-scheme: dark) { + .windowFrameBackground, + .listHeaderBackground { + fill: rgb(46, 47, 51); + } + } + +.ListBackground { + fill: #FEFEFE; + stroke: transparent; + sizingY: "grow"; + +} + @media (prefers-color-scheme: dark) { + .ListBackground { + fill: rgb(0, 0, 0); + + } + } diff --git a/Project/Sources/Forms/DEMO_WINDOW_FRAME/form.4DForm b/Project/Sources/Forms/DEMO_WINDOW_FRAME/form.4DForm new file mode 100644 index 0000000..3bb0091 --- /dev/null +++ b/Project/Sources/Forms/DEMO_WINDOW_FRAME/form.4DForm @@ -0,0 +1,151 @@ +{ + "$4d": { + "version": "1", + "kind": "form" + }, + "windowSizingX": "variable", + "windowSizingY": "variable", + "windowMinWidth": 1050, + "windowMinHeight": 415, + "windowMaxWidth": 32767, + "windowMaxHeight": 32767, + "events": [ + "onLoad", + "onActivate", + "onDeactivate", + "onUnload", + "onTimer", + "onResize" + ], + "windowTitle": ":xliff:pakageManagerDialTitle", + "destination": "detailScreen", + "pages": [ + { + "objects": { + "left.background": { + "type": "rectangle", + "top": 0, + "left": 0, + "width": 200, + "height": 800, + "right": 200, + "class": "ListBackground" + }, + "winTitleBar": { + "type": "rectangle", + "top": 0, + "left": 0, + "width": 201, + "height": 56, + "right": 201, + "class": "win winListHeaderBackground", + "stroke": "transparent" + }, + "titleBar": { + "type": "rectangle", + "top": 0, + "left": 200, + "width": 1000, + "height": 56, + "right": 1200, + "class": "windowFrameBackground" + }, + "collection.separator": { + "type": "line", + "top": 0, + "left": 200, + "width": 0, + "height": 800, + "sizingY": "grow", + "stroke": "#c0c0c0" + }, + "header.separator": { + "type": "line", + "top": 56, + "left": 200, + "width": 1000, + "height": 0, + "sizingX": "grow", + "right": 1200, + "stroke": "#c0c0c0" + }, + "winHeader.separator": { + "type": "line", + "top": 56, + "left": 0, + "width": 201, + "height": 0, + "right": 201, + "class": "winListHeaderSeparator", + "stroke": "#c0c0c0" + }, + "bar": { + "type": "subform", + "left": 0, + "top": 0, + "width": 121, + "height": 56, + "detailForm": "WINDOW_FRAME", + "dataSourceTypeHint": "number", + "events": [ + "onLoad" + ], + "method": "subformWidgetMethod", + "sizingX": "grow", + "focusable": false + }, + "Text": { + "type": "text", + "text": "• Place the widget on the right or left (depending on your development platform). In either case, the widget will be resized to the full width of the window and only the icons corresponding to the platform currently running will be visible.\r\r• Note that some elements of the interface are only visible on Windows or macOS, there's no code for that, just CSS!", + "top": 76, + "left": 235, + "width": 901, + "height": 403, + "fontSize": 18, + "stroke": "#808080", + "visibility": "hidden", + "sizingX": "grow" + } + } + }, + { + "objects": { + "Button": { + "type": "button", + "text": "Modif", + "top": 10, + "left": 220, + "width": 68, + "height": 36, + "events": [ + "onClick" + ], + "method": "ObjectMethods/Button.4dm", + "class": "dev", + "focusable": false + } + } + } + ], + "geometryStamp": 589, + "width": 1200, + "height": 800, + "editor": { + "activeView": "View 1", + "defaultView": "View 1", + "views": { + "View 1": {} + } + }, + "css": [ + { + "path": "macOS.css", + "media": "mac" + }, + { + "path": "Windows.css", + "media": "windows" + } + ], + "method": "formMethod" +} \ No newline at end of file diff --git a/Project/Sources/Forms/DEMO_WINDOW_FRAME/macOS.css b/Project/Sources/Forms/DEMO_WINDOW_FRAME/macOS.css new file mode 100644 index 0000000..621abf6 --- /dev/null +++ b/Project/Sources/Forms/DEMO_WINDOW_FRAME/macOS.css @@ -0,0 +1,29 @@ +.windowFrameBackground { + fill: #E6E6E6; + stroke: transparent; + sizingX: "grow"; +} + @media (prefers-color-scheme: dark) { + .windowFrameBackground { + fill: rgb(46, 47, 51); + } + } + +.winListHeaderBackground, +.winListHeaderSeparator { + visibility: "hidden"; +} + +.ListBackground { + fill: rgb(224, 224, 224); + stroke: transparent; + sizingY: "grow"; + +} + @media (prefers-color-scheme: dark) { + .ListBackground { + fill: rgb(0, 0, 0); + + } + } + \ No newline at end of file diff --git a/Project/Sources/Forms/WINDOW_FRAME/Windows.css b/Project/Sources/Forms/WINDOW_FRAME/Windows.css new file mode 100644 index 0000000..80401be --- /dev/null +++ b/Project/Sources/Forms/WINDOW_FRAME/Windows.css @@ -0,0 +1,3 @@ +.mac { + visibility: "hidden"; +} \ No newline at end of file diff --git a/Project/Sources/Forms/WINDOW_FRAME/Windows/close.png b/Project/Sources/Forms/WINDOW_FRAME/Windows/close.png new file mode 100644 index 0000000000000000000000000000000000000000..3b68955559865a72925af2175e3069a74a5f4274 GIT binary patch literal 3807 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!3HF=(z2z16k~CayA#8@b22Z1oR-uG&op0O z1}z|4f`LIs5lE-NX%0TW!M!UASEy8)!>iyJ%8wcLuCArU1JzCKpT`MG+DDfvmMdKI|^ zAO#FI_7w$*$=RtT3Q4KynR&KK?|1K4QpilPRSGxtHSjHPPR+>ls47YguJQ{>uF6if zOi{A8*7iAWdWaj57fXq!y$}cUkRZ;?31P2gzmSm74ahL7h@jNs{G3vdv+T@`3=H)R4Ge6+ z_Mk{1TnW(@iCY`86uLHquF$;95<4TPO=!YMxp_>msxcCw(a^{OStpVVx=vT1E5lNYz}A6MK2#gBFjR|; zJ}B;y(gGx*fklBS4VY;4;i(oWuHXrT`V53$sBbph#8FG&K|u^-G`NTfCAgZ=;DQGQ zF^tjRA|{mJYDR+#9u&kdMuUr(P=c$$7hGJ3c5iAPu(4YXY}GnVGA;(Th&c;9B7row zFbFd;%$fsi!80BAba4!+nDb`#!K~X30&TVWnwC!`e{s|<_$F~H`nLnC`oSejj!pR@ zSJkO|e4Vhy&LjK21bIx%NjY7yD6;x&*u*t=FKXPr@H27a!PS55Gt;h%|Ltw_Q28a! z%CMD}QGxkPnz6&tLY~U~?TH+olMcA;VYvKKZ2-`U5) z5%F<6j!Xx3cV8;Jlcm}GFJVLLg=g;S*`E&N&Os|Alv7YBWs${o7#I zPR0`^X}PK$XJ;)xCbeYxJ3eU+qXr}Y-PPIqR_?qhyjMY^Re^Cu?hK}yEHio2m~Dpo zyJNTNMlya-nB}APx^~{?t0FF0s}##jRd%v)G-_F;e9+XLe)`f~2et=NOdo6*To(QJ zz8|;$*P~*N1_mICV7$Zsd;c$ae*GNrqdO~jr5W^QxFqH@bG?`up4We$Ri8uR?#TreU;b z)?@~s!|!&RmxrD?$)MK4ws75HCWpPhPpKX_udd&CUG2**-o0`z_xh9G*SnSSF$ypM z(f#%M9WF`}=kD2W-O(NRi8bfa&!)27v9t6KSV}edrtM?k?fS&}WA;q_gvn-?@&mFt zt{gHr|BO3=@smQyK8KmlpK#w`G-){}zQC|=QH^6RgH`+jMxc&23~BouY`^*LW7z-v zDNyy9n#RcD&FY(eGMUZ%*_3lQRr>N7@eQ8Oxv$vipA^4RB=9h4N)4knLn_cQ7dKx3 e^(+7XXJ)upEWYT@S@C{Q*U!_{&t;ucLK6Uhv{{h= literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/Windows/maximize.png b/Project/Sources/Forms/WINDOW_FRAME/Windows/maximize.png new file mode 100644 index 0000000000000000000000000000000000000000..cb9b2c7f6a39771e1e1d628819edaf186b574657 GIT binary patch literal 3256 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!2%=?>`k+IPNMyN`l`~oJpN`(c?aCQSo(-${(pli7mGeaUuB7A+UlJj%*5>xV%QuQiw z3qT4OZ0suv5|gu2OB9k)(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOY zY?-2DZ^va*VFffGH?<^Dp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPALg=ak zGAmMZB3v?aQ}c>JzA^^d0@i~rfmLH9LZhLP1+q>g8FZblKv#yP7J;n;rF^J1WMQZl z8+}mRBc%mMLIaBeQyMVQ>cdklQe43k2=y5Vzfj+7xQU~dz=MJq#%OR66H0J3qrn9a z3St7Ch)dsz*;A^in|(MS4&q&fCOI46WqQV*)QTJ2T(R?6-56 zcVjp@)aq<=B7|DQp(?wHxX(gk`vs*5><)>|I#))l3r@C z^*I9iG1vs%wscCPaU&i%EvA&5E16a%u*=M;BmjB)Of{LB#s)osCned(e0~0cp{2Bs zIe#p|Mbv&gC52`+JTe;{P0dcHJZYxS@AR4?B*tc#|PvGR(b6En-uR){g} zW8#rvx?j;S-Q(h19OHM=H0{;W88H?dEWzQ)$4nW9Dza=opLgZmE=8MUd5_1#asn#| z-4M~OUy_Za*)8iwib?+F31U5^Nva_!GEMR(CzKh($1tRj{VVoqNSSgaSuc?Rw6Mg( z@-B|u2!>5*6BzLnVb*&U%XvvMF&@LZlAR%K`Hu@6&+;7Swd(xiDtB3gjc*RCbXCL3 zs4-bG{6eWxmAL{%Iv4wutfGy;1Yke!Wvflq(ZiC7v+U7n@k{wg0%ci0hrA}8ZEZH&tqsv*|d$A15ZXUMU zz-_k<8}SY`G!C+5FF6#tw+I_NGQz==qvqn5_q=nC+u8W;L!sl)+Y5^ysW;4nJ8Pem zEB>GJfwk*rPkrk}=x%HJWo92-4Sua0cmnr?XD8OR`(s_ytMBay6&&l2VEey(@O96E u6_iT+-nAV-&Do1*9>X0YL8-9S7YYsN=^k@6lvp@S_Vn;TG`Ji{T>S$HAx6^x literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/Windows/restore.png b/Project/Sources/Forms/WINDOW_FRAME/Windows/restore.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad24f18bc9c0e034181a84896988c905ace711f GIT binary patch literal 3343 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!2%=?>`k+IPNMyN`l`~oJpN`(c?aCQSo(-${(pli7mGeaUuB7A+UlJj%*5>xV%QuQiw z3qT4OZ0suv5|gu2OB9k)(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOY zY?-2DZ^va*VFffGH?<^Dp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf_NpP;kyKN>wn^ zGte_ovg1-vP_QXVNwW%aaf50H@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8E%gnI^o@*k zfhu&1EAvVcD|GXUl_7?}%yCIAPALg=ak zGAmMZB3v?aQ}c>JzA^^d0@i~rfmLH9LZhLP1+q>g8FZblKv#yP7J;n;rF^J1WMQZl z8+}mRBc%mMLIaBeQyMVQ>cdklQe43k2=y5Vzfj+7xQU~dz=MJq#%OR66H0J3qrn9a z3St`HY}5=lvC$4=)z*RI@1DCgHE{@ZkFaGp(|uILFljUcc=${e`3y6>`g2maW>z z6gA~=`x2W+4wW1ND_A6sh%vFOVqJInnzxnw0f#wpW|x$&5fi}f5}A&O)QxzTRE5|BzicqTr>h;ae!eDrm`dB7hgAE9Qp$PfSL zi|g<6gA}f5OZp5{w$0PUF(iWX zZP;GF!v+HTk`te@&X`!iaHMI~M3o{ooOAEg`a%@85&X83u6VbO#Gl}D0};()BYo$ ze9y#x5VtvNzxz{}kiz2C+)6vu7K$8k*L~v6ak{hO+~w{4Vmb?S)y!YYDkLlTM=ki5 zzEHj-#pZPUAO3yY!y4|y*(Ip;sN5t=1w2 zCw%UDIx(tkJYodoC2We)3Em;fXtwm�QtQ9+%~Euwzepxv;H}=lLQ(QH~8qTh2Z& z&G46>6SYu?qu}xf8ObwGJ|~_jY790EbqG9}azJ_hceBG2O+(#RF&HmBec#A&b3aFq ztK+6+T3I?CJsio=x+mwbblgY_jOyBOu_Itw_|NZe@Ae#!m%G<;KXoqGR!~fOy85}S Ib4q9e0H$2&F8}}l literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/closeModified.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/closeModified.png new file mode 100644 index 0000000000000000000000000000000000000000..270956fe293fe679ac6fca4e358c76f6596c0285 GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K#jX7B0Z7-AuK zG|1MQ*-@Z&cUOgYM`_1KaTa?8Ev{Ru6H1$ebpHOZ)w~kM(w)tk&CM;SGO@wl!6{3$ zXhp^AH*e3rtIE2?bLZTh>U_H!vI#fTx|mmJNI6>+v8;%FlvcElxx@R*em_^4`X83| zTr2*r;8I-gVeq_r&kok9d7YnkoSvbZV0C&o<4HC5g}t5ERWI(TyWU`;F;}(H<9Yqu zwLDClE41Ye3{EkMe9Q4USiHS`_U+$1QSoaRhpn}^l`&hYK$wBsuTf{`e3c9G;-7w0 z_Wfn*`THP+mFVzsk^jpX^RCX=&HVRVz-b>J->?feZa%x; zbUi9Luj$ii$=HP%)xy^sxRS$!IYbHp11O=(5tDnm{r-UW|s0FU5 literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/closeModified@2x.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/closeModified@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d08fa1b520e89f8fca00eac508066fdaabbff084 GIT binary patch literal 738 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07Sip>6gA}f5OZv>fz~tlU;usRa z`8Lc}$Hh@#o~ZlNcUF(o7ftf;@aS++xt%Sj@uUlc82eMYB|dmIq~;OwVX( zaZwEHEU4S%+?sUu%)QCmx7(N7EGn41=X+UM`o6#S-kj%gi2Ya1awMEdLHyFlvo>iJzxR$KeRFP{TK}4P*E3ax=gX&m^bfnRG_rhkWcAS#sYjo^ zTXp)dXT$%P15qs}n=RuDUrvjen8C5;Q2f?s65rncuaxLpG+i^f?f1@H)dSM+R%hoq zv|CAVn{RaGVXC=uC2#u-_ZLoQJ{ewfkTUhv)cjM?f9vvRZkhS>oIk#sXlr#VIx!`K zLFl7cYeKzn8khXrJ_F7Rs*f$_E?q8uG&WYWn9cFFvc47Lyy|{auF!%t&n7-RSeKF2B`J2rJvnY;LNrH#SLq`a;lg`w zZST$%=r;Z2oLkED$j@Fb;APZi!+ynQ#alEUKHkIqVukOLV#W0kks_K za%rZEtYL0zm!pHP@;1ZfK)e5vi8@ENbWC;FIqBp=+h?CoI7wKBm!_yX1h4v|yZJ_s z6I1O*g^wYw=bBnPCj80tT&AJWxnIYNSxBZgUgPxPA78)y?>WF;_muZY;72_^Hjq({oyK-`}|hcT|1VPqEct`_s=oH7z0K z7E?$mdKI;Vst0QEt#0ssI2 literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/closeOver@2x.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/closeOver@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6a2307cda3948343ec4e973eed17b1aff80529cc GIT binary patch literal 777 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 literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/disabledModified@2x.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/disabledModified@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..70cc8c416472b8f459755b263f662319cef9dcc7 GIT binary patch literal 4106 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 IM6N<$f~ghU>Hq)$ literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/minimize.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/minimize.png new file mode 100644 index 0000000000000000000000000000000000000000..77fbec164fca9e1cf88e253bec44c154b3b64b33 GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K#j#_Z|h7-AuK zHfXOOlcT`A^UTuPnUyS_4&3h<-}q$-*D@@8Quu+>XH9M`gK*M2o{}xwt~)+rluX|< z`>ex}#g~1{(!c+{?OWFIuPWg?Zi$nBf*Tiesaoaor0jqHOhNgPo~i#k zUJgc{ea0KsRpoLBTy~v%@#FJt-x=FvgTmE5G3K+$1uS32$$0;NPKNK-TLKP8KQ(eh z_J+Uw9u%$R-0)A^;X2cD)vuSeY#CIpF|Xoath&JGysz_Vr?RDAiry;AK%Sq!E|o7V c_@7Y2_+yi!S-fn7Jt$Z_UHx3vIVCg!0QxA5L;wH) literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/minimizeOver.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/minimizeOver.png new file mode 100644 index 0000000000000000000000000000000000000000..6d17fddc0593797e6118621a77fd8da5311d77fb GIT binary patch literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K#jChzIu7-Auq zoFI{LpyOS`|J7S=O0>){{%369!t}Ic!Kd&BuIa{mep@#izImmeVynUS=l*K_zyJUL z*L7fJJJB`ahPZ^JWUa(peY@7qgS-qk|HOCvRFOLyVA~@uSzl|K{$Z~CpD7Hz zYsB&x4zJHQmXwgt7rMYbX&*}0LZu6{1-oD!M< D7NwA* literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/minimizeOver@2x.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/minimizeOver@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6eeeb29d8fec29f7db193f8530e75dd3c61dc593 GIT binary patch literal 682 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07Sip>6gA}f5OZv>fz$D`7;usRa z`8LeZpUF_9&XrmC*jZO$vmR#d&O$?r7x@N9>K{CK@GND<9T|x~?0o;&WIZB!loeGB zCT^JJk+REs!JhIhTlaq3!FY1Z@vDFG3WNO^$gJ|j6bSh@-)O2m{}hE z$CBLd@`s_JT;hC9;{Am1wda@Y>16rPf9WU74_@Z7-Xp&apE&dV(Pe%!HFn!9!-x*i zhLic02V{jrAD?jg9ILW^amVxt_YIzN9eBb&TSuPS@@9o35<)=*rxpHzE%9GE8E3i%-6M)!lS?)@GIqfx`8> zS>uj6&e@!tvnhh<#T;docPnPXH+9+gEo?VD(H1 zZLxf29ynvoa+S%KR?LWq4%BiD_%ENj^W1*f{AXM~jBJ0G#caOSa2J$LJYD@<);T3K F0RW2&64n3! literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/minimizel@2x.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/minimizel@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..56dda7c52c14ef90ffe7ad30cdb6703999a00134 GIT binary patch literal 597 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07Sip>6gA}f5OZp5{w%^mmF(iWX z?X-=4hYbYU&PVS0#B^q=gq4z*3R?vm+r5Uy#$L|Sq~sR|qzyjs7=*lPlCTarb%wj- zZP4fVB=?;^E-mSGZa3?${q}RWz26(_MURVLSSM_|$?)59mx59FwKeB2&P#l|GWx%F ziuf@#`;6t!(*E6@cH67ruT<>1llLTzwlmB(IWT?N8+WH?cVo_{^X|K%!Eo@s?nP#Y z!)g(!cC0l_g85Sm6Z1qG9{6+o>k(z%xN7f4rv^ipJy&#BiaxmaXRC98{A5>~Yj0g1 z?LDPiU%dV8?tPV#<_TiPr6PVpP}5g%+Cq_)^-Pa08#7~! zPl26yoFGqHR;!mnLvo>Eqgt=Pb>*PrU&=17V%jmuk!$XO?9hsL_a2sgnp|vd$@?2>`wZ=#T&a literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/zoom.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..5c1a0861c87f5aa9836aa9fcb0ee03109b7660b8 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K$eet5b#hFAzD zCrD%*=y=EQcJ;!Xdb_#{K`l;my?|N61gNKc@lk8m=l~_F8r6Q zI~<}Yd7y$%&4Z6gA}f5OZp5{cF@zsF(iWX zZJ1#glcB)eg&V&zUE^TCkX!RWQ)5qKYwO&p=TDtGbVxd)fNNU%<|>8>x43Uyl6bB! z%{lYUrVYD;9A>4c+1LM5n|($=_SU}l4EdWF=Pr?#Tx2I{rMygUqGjZo=lUOgk9=2b z`DoHLdDEVyEG74=#qHbHtNd^flM$cD{Vdwxu-NSDCx8A}%hA1aE0fj9r&|?^m2Z5r zGRm(zcI5o!j4zLVhM#d_T<-b4Z^rx7>i)2>sirfYrJOmOZc=w9dXl!n-y$>rX!h-b zt}N2~&fe~vc66uhIh(uRa`)d+73M2wyj*&_Fo2=Xf-$G+*)-!T+l~E9m$RgV=PsBa zD!aq+!MDsQ40nou8gi|laY!OvXIj2k$G_ zYOgw-JpbKNeT4+epYn?v7(8`)P0y}nRak9$mFZ4Y!;&k@9x2EEzT?$!=emUERrav0 z2RZZRyK_1iDjrzKzb32MIAnzeBS%Y;)2_&?3(ozDJoa*j*x>~XAx0W%PtH8cI=YN+ zN%F%}tNWUm1eDL-5Aq2SnkcGLxs~D3iHjoJ=T1uryXDs%q|H<-oVxRLy~O+He1DkO WOJ+Sja9XMk6sexBelF{r5}E)TZ|*z* literal 0 HcmV?d00001 diff --git a/Project/Sources/Forms/WINDOW_FRAME/macOS/zoomEnlargeOver.png b/Project/Sources/Forms/WINDOW_FRAME/macOS/zoomEnlargeOver.png new file mode 100644 index 0000000000000000000000000000000000000000..72e02c4424253301a46b5e78c2f6d55bf24c4b97 GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K#j=IrU>7-Auq zoFI{LpyM6G+tmwm>h1QPOi1}7&pG9C_ObE2X}V*u^p{T4{YwpVPAV|&;Fge(T%4e_ zA@kqQf7(7$FGO0RS{Ql$_X=o9NKD9O%dFe-lgVk;#DfCI9E}*%T4F!nm)|eQ_0RZ# zr3ahAyyle+KPA(QyV5!qX&Y=UV0QS(Bh11ou`A7wvu=h7^QNc@D+X8I?hD^1JB0o! zm>MDZU;l6A@zk>8*}wfKnA~9yXb*5=(%Sjsz5HbJA}1$9h7=A9&HB2zoKrd&i%cDp q913J-a82Lvq07(R|CGSXMis^oi%Q|W@$6gA}f5OZv>fz+~X*;usRa z`8I5?ACsfNJXa-7vnj_`=sG36nc{Zv+@X1g%r|VtmRRX8;@Y9u36ARmwCe)sJU$)f3>A9-7s0z8jh1x6H_$ z@%h?o_T)w-w%e)~{MXyCc^)rX_n_pJT!JwRTl<}?n&&c749*PP-Unvf+1dS8Xu+yu zJtyZXYc#(VIxy+fkMc=9``$K+_c14KkY)N2XREbx+uoTE7tJ|7xqF*s-5#yW^MIBw zNMrJxlHh1QPOi1}7&pG9C>ceB4=?|ku$=E436ZfS-_5{Gtpuo*Nk`6gA}f5OZv>fz@+Wz;usRa z`8LefpUF{RuB%d~nOas-a!)VE+*U6|#(LJ)wNqR7PW{NAk(8L4eQ>=%a&yp)g&|ow zI)6BN)uc-2mNy)Kd;M;!0QZfS4c6A5@7=z6`>vwYHplY~9g`b;w$7OB;yP)IQ`07w zqHUu3ayP=#Z>utgtt+0I6>`UeX_I*CpMDW(pSVX2oZ=S0O>QoqBk*a-zN)f!pN__? zXz(em^`3Mm?S6^G45Rx3DtzmUm%De_8u+ldol4jkbz`E_yUjN}{uPz3cVTJEJi?@$ z5Xu(D7-7k|@pSd*d(nT6){&Rxc74ig3$wp_>`IymEE|$9mRzY)WY;uk zl+`-0J4IxD+{ynB3K}(iPcwKwl|GlR_vy)v74IdME>BQaS$X_nRqkDXzfT`U&OQw4|}e7S$q9_jiU d@@IJdFx~9C&G}_T&o@x=@pScbS?83{1OTk`C4B$@ literal 0 HcmV?d00001 diff --git a/Project/Sources/Methods/DEMO_windowFrame.4dm b/Project/Sources/Methods/DEMO_windowFrame.4dm new file mode 100644 index 0000000..7c8560a --- /dev/null +++ b/Project/Sources/Methods/DEMO_windowFrame.4dm @@ -0,0 +1,6 @@ +//%attributes = {} +var $winRef : Integer + +$winRef:=Open form window:C675("DEMO_WINDOW_FRAME"; Plain form window no title:K39:19; *) +DIALOG:C40("DEMO_WINDOW_FRAME") +CLOSE WINDOW:C154($winRef) \ No newline at end of file diff --git a/Project/Sources/folders.json b/Project/Sources/folders.json index 7af4526..1323d76 100644 --- a/Project/Sources/folders.json +++ b/Project/Sources/folders.json @@ -55,6 +55,7 @@ "staticDelegate", "stepperDelegate", "subformDelegate", + "tabControlDelegate", "thermometerDelegate", "webAreaDelegate", "widgetDelegate", @@ -93,18 +94,41 @@ "_DEMO_webArea_Controller" ] }, + "DEMO_WINDOW_FRAME": { + "forms": [ + "DEMO_WINDOW_FRAME" + ], + "classes": [ + "_DEMO_WINDOW_FRAME_Controller" + ] + }, "DEMOS": { "groups": [ "DEMO_1", "DEMO_constraints", "DEMO_menus", - "DEMO_webArea" + "DEMO_webArea", + "DEMO_WINDOW_FRAME" ], "methods": [ "DEMO_1", "DEMO_constraints", "DEMO_menus", - "DEMO_webArea" + "DEMO_webArea", + "DEMO_windowFrame" + ] + }, + "Widgets": { + "groups": [ + "WINDOW_FRAME" + ] + }, + "WINDOW_FRAME": { + "forms": [ + "WINDOW_FRAME" + ], + "classes": [ + "_WINDOW_FRAME_Controller" ] }, "trash": {} diff --git a/Resources/en.lproj/syntaxEN.json b/Resources/en.lproj/syntaxEN.json index d2a6d6f..152bb41 100644 --- a/Resources/en.lproj/syntaxEN.json +++ b/Resources/en.lproj/syntaxEN.json @@ -1,29 +1,23 @@ { "_method_": {}, "cs.ui": { - "listboxDelegate": { + "constraintsDelegate": { "new()": { - "Syntax": "**.new**( *name* : Text )", + "Syntax": "**.new**( *metrics* : Object )", "Params": [ [ - "name", - "Text", + "metrics", + "Object", "->" ] ], "Summary": "" } }, - "evt": { + "_DEMO_constraints_Controller": { "new()": { - "Syntax": "**.new**( *e* : cs.ui.evt )", - "Params": [ - [ - "e", - "cs.ui.evt", - "->" - ] - ], + "Syntax": "**.new**()", + "Params": [], "Summary": "" } }, @@ -45,23 +39,29 @@ "Summary": "" } }, - "constraintsDelegate": { + "listboxDelegate": { "new()": { - "Syntax": "**.new**( *metrics* : Object )", + "Syntax": "**.new**( *name* : Text )", "Params": [ [ - "metrics", - "Object", + "name", + "Text", "->" ] ], "Summary": "" } }, - "_DEMO_constraints_Controller": { + "evt": { "new()": { - "Syntax": "**.new**()", - "Params": [], + "Syntax": "**.new**( *e* : cs.ui.evt )", + "Params": [ + [ + "e", + "cs.ui.evt", + "->" + ] + ], "Summary": "" } }, @@ -141,46 +141,56 @@ "Summary": "" } }, - "groupDelegate": { + "stepperDelegate": { "new()": { - "Syntax": "**.new**( *members* : Variant )", + "Syntax": "**.new**( *name* : Text )", "Params": [ [ - "members", - "Variant", + "name", + "Text", "->" ] ], "Summary": "" } }, - "inputDelegate": { + "hListDelegate": { "new()": { - "Syntax": "**.new**( *name* : Text )", + "Syntax": "**.new**( *name* : Text; *itemRef* : Integer )", "Params": [ [ "name", "Text", "->" + ], + [ + "itemRef", + "Integer", + "->" ] ], "Summary": "" } }, - "buttonDelegate": { + "groupDelegate": { "new()": { - "Syntax": "**.new**( *name* : Text )", + "Syntax": "**.new**( *members* : Variant; *...* : Object )", "Params": [ [ - "name", - "Text", + "members", + "Variant", + "->" + ], + [ + "", + "Object", "->" ] ], "Summary": "" } }, - "stepperDelegate": { + "buttonDelegate": { "new()": { "Syntax": "**.new**( *name* : Text )", "Params": [ @@ -193,19 +203,14 @@ "Summary": "" } }, - "hListDelegate": { + "inputDelegate": { "new()": { - "Syntax": "**.new**( *name* : Text; *itemRef* : Integer )", + "Syntax": "**.new**( *name* : Text )", "Params": [ [ "name", "Text", "->" - ], - [ - "itemRef", - "Integer", - "->" ] ], "Summary": "" @@ -242,26 +247,6 @@ "Summary": "" } }, - "colour": { - "new()": { - "Syntax": "**.new**()", - "Params": [], - "Summary": "" - } - }, - "menu": { - "new()": { - "Syntax": "**.new**( *def* : Variant )", - "Params": [ - [ - "def", - "Variant", - "->" - ] - ], - "Summary": "" - } - }, "menuBar": { "new()": { "Syntax": "**.new**( *menus* : Collection )", @@ -282,6 +267,26 @@ "Summary": "" } }, + "colour": { + "new()": { + "Syntax": "**.new**()", + "Params": [], + "Summary": "" + } + }, + "menu": { + "new()": { + "Syntax": "**.new**( *def* : Variant )", + "Params": [ + [ + "def", + "Variant", + "->" + ] + ], + "Summary": "" + } + }, "selectorDelegate": { "new()": { "Syntax": "**.new**( *name* : Text; *values* : Collection )", @@ -380,6 +385,13 @@ "Summary": "" } }, + "_WINDOW_FRAME_Controller": { + "new()": { + "Syntax": "**.new**()", + "Params": [], + "Summary": "" + } + }, "thermometerDelegate": { "new()": { "Syntax": "**.new**( *name* : Text )", @@ -393,6 +405,24 @@ "Summary": "" } }, + "tabControlDelegate": { + "new()": { + "Syntax": "**.new**( *name* : Text; *data* : Object )", + "Params": [ + [ + "name", + "Text", + "->" + ], + [ + "data", + "Object", + "->" + ] + ], + "Summary": "" + } + }, "svg": { "new()": { "Syntax": "**.new**( *content* : Variant )", @@ -458,395 +488,432 @@ } } }, - "listboxDelegate": { - "saveProperties()": { - "Syntax": "**.saveProperties**()", + "constraintsDelegate": { + "apply()": { + "Syntax": "**.apply**()", "Params": [], "Summary": "" }, - "setNotSortable()": { - "Syntax": "**.setNotSortable**() : cs.ui.listboxDelegate", + "load()": { + "Syntax": "**.load**( *file* : 4D.File )", "Params": [ [ - "", - "cs.ui.listboxDelegate", - "<-" + "file", + "4D.File", + "->" ] ], "Summary": "" }, - "setSortable()": { - "Syntax": "**.setSortable**( *enabled* : Boolean ) : cs.ui.listboxDelegate", + "add()": { + "Syntax": "**.add**( *rule* : Object ) : cs.ui.constraintsDelegate", "Params": [ [ - "enabled", - "Boolean", + "rule", + "Object", "->" ], [ "", - "cs.ui.listboxDelegate", + "cs.ui.constraintsDelegate", "<-" ] ], "Summary": "" }, - "setMultipleSelectable()": { - "Syntax": "**.setMultipleSelectable**() : cs.ui.listboxDelegate", + "setMetrics()": { + "Syntax": "**.setMetrics**( *metrics* : Object )", "Params": [ [ - "", - "cs.ui.listboxDelegate", - "<-" + "metrics", + "Object", + "->" ] ], "Summary": "" }, - "setSingleSelectable()": { - "Syntax": "**.setSingleSelectable**() : cs.ui.listboxDelegate", + "rules": { + "Syntax": "rules : Collection" + } + }, + "_DEMO_constraints_Controller": { + "onLoad()": { + "Syntax": "**.onLoad**()", + "Params": [], + "Summary": "" + }, + "handleEvents()": { + "Syntax": "**.handleEvents**( *e* : cs.ui.evt )", "Params": [ [ - "", - "cs.ui.listboxDelegate", - "<-" + "e", + "cs.ui.evt", + "->" ] ], "Summary": "" }, - "restoreProperties()": { - "Syntax": "**.restoreProperties**()", + "init()": { + "Syntax": "**.init**()", "Params": [], "Summary": "" }, - "setMovableLines()": { - "Syntax": "**.setMovableLines**( *enabled* : Boolean ) : cs.ui.listboxDelegate", + "form": { + "Syntax": "form : cs.ui.formDelegate" + } + }, + "webAreaDelegate": { + "get lastError()": { + "Syntax": "**.get lastError**() : Text", "Params": [ - [ - "enabled", - "Boolean", - "->" - ], [ "", - "cs.ui.listboxDelegate", + "Text", "<-" ] ], "Summary": "" }, - "withoutSelectionHighlight()": { - "Syntax": "**.withoutSelectionHighlight**() : cs.ui.listboxDelegate", + "getWebEngine()": { + "Syntax": "**.getWebEngine**() : Object", "Params": [ [ "", - "cs.ui.listboxDelegate", + "Object", "<-" ] ], "Summary": "" }, - "withSelectionHighlight()": { - "Syntax": "**.withSelectionHighlight**( *enabled* : Boolean ) : cs.ui.listboxDelegate", + "allow()": { + "Syntax": "**.allow**( *data* : Variant; *allow* : Boolean )", "Params": [ [ - "enabled", - "Boolean", + "data", + "Variant", "->" ], [ - "", - "cs.ui.listboxDelegate", - "<-" + "allow", + "Boolean", + "->" ] ], "Summary": "" }, - "getProperties()": { - "Syntax": "**.getProperties**( *column* : Text ) : Object", + "get title()": { + "Syntax": "**.get title**() : Text", "Params": [ - [ - "column", - "Text", - "->" - ], [ "", - "Object", + "Text", "<-" ] ], "Summary": "" }, - "deleteRows()": { - "Syntax": "**.deleteRows**( *row* : Integer ) : cs.ui.listboxDelegate", + "load()": { + "Syntax": "**.load**( *file* : 4D.File )", "Params": [ [ - "row", - "Integer", + "file", + "4D.File", "->" - ], - [ - "", - "cs.ui.listboxDelegate", - "<-" ] ], "Summary": "" }, - "hideColumn()": { - "Syntax": "**.hideColumn**( *column* : Variant ) : cs.ui.listboxDelegate", + "zoomIn()": { + "Syntax": "**.zoomIn**()", + "Params": [], + "Summary": "" + }, + "zoom()": { + "Syntax": "**.zoom**( *in* : Boolean )", "Params": [ [ - "column", - "Variant", + "in", + "Boolean", "->" - ], + ] + ], + "Summary": "" + }, + "refresh()": { + "Syntax": "**.refresh**()", + "Params": [], + "Summary": "" + }, + "stop()": { + "Syntax": "**.stop**()", + "Params": [], + "Summary": "" + }, + "get lastFilteredURL()": { + "Syntax": "**.get lastFilteredURL**() : Text", + "Params": [ [ "", - "cs.ui.listboxDelegate", + "Text", "<-" ] ], "Summary": "" }, - "setSelectable()": { - "Syntax": "**.setSelectable**( *enabled* : Boolean; *mode* : Integer ) : cs.ui.listboxDelegate", + "isLoaded()": { + "Syntax": "**.isLoaded**() : Boolean", "Params": [ [ - "enabled", + "", "Boolean", - "->" - ], - [ - "mode", - "Integer", - "->" - ], + "<-" + ] + ], + "Summary": "" + }, + "forward()": { + "Syntax": "**.forward**()", + "Params": [], + "Summary": "" + }, + "zoomOut()": { + "Syntax": "**.zoomOut**()", + "Params": [], + "Summary": "" + }, + "get canForwards()": { + "Syntax": "**.get canForwards**() : Boolean", + "Params": [ [ "", - "cs.ui.listboxDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "showColumn()": { - "Syntax": "**.showColumn**( *column* : Variant; *visible* : Boolean ) : cs.ui.listboxDelegate", + "setContent()": { + "Syntax": "**.setContent**( *content* : Text; *base* : Text )", "Params": [ [ - "column", - "Variant", + "content", + "Text", "->" ], [ - "visible", - "Boolean", + "base", + "Text", "->" - ], - [ - "", - "cs.ui.listboxDelegate", - "<-" ] ], "Summary": "" }, - "popup()": { - "Syntax": "**.popup**( *menu* : cs.ui.menu; *default* : Text ) : cs.ui.menu", + "evaluateJS()": { + "Syntax": "**.evaluateJS**( *code* : Text; *type* : Integer ) : Variant", "Params": [ [ - "menu", - "cs.ui.menu", + "code", + "Text", "->" ], [ - "default", - "Text", + "type", + "Integer", "->" ], [ "", - "cs.ui.menu", + "Variant", "<-" ] ], "Summary": "" }, - "clear()": { - "Syntax": "**.clear**() : cs.ui.listboxDelegate", + "forwardMenu()": { + "Syntax": "**.forwardMenu**()", + "Params": [], + "Summary": "" + }, + "back()": { + "Syntax": "**.back**()", + "Params": [], + "Summary": "" + }, + "getTitle()": { + "Syntax": "**.getTitle**() : Text", "Params": [ [ "", - "cs.ui.listboxDelegate", + "Text", "<-" ] ], "Summary": "" }, - "updateCell()": { - "Syntax": "**.updateCell**() : cs.ui.listboxDelegate", + "get content()": { + "Syntax": "**.get content**() : Text", "Params": [ [ "", - "cs.ui.listboxDelegate", + "Text", "<-" ] ], "Summary": "" }, - "updateDefinition()": { - "Syntax": "**.updateDefinition**() : cs.ui.listboxDelegate", + "inspector()": { + "Syntax": "**.inspector**()", + "Params": [], + "Summary": "" + }, + "get canBackwards()": { + "Syntax": "**.get canBackwards**() : Boolean", "Params": [ [ "", - "cs.ui.listboxDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "reveal()": { - "Syntax": "**.reveal**( *row* : Integer ) : cs.ui.listboxDelegate", + "open()": { + "Syntax": "**.open**( *data* : Variant )", "Params": [ [ - "row", - "Integer", + "data", + "Variant", "->" - ], - [ - "", - "cs.ui.listboxDelegate", - "<-" ] ], "Summary": "" }, - "rowCoordinates()": { - "Syntax": "**.rowCoordinates**( *row* : Integer ) : Object", + "get url()": { + "Syntax": "**.get url**() : Text", "Params": [ - [ - "row", - "Integer", - "->" - ], [ "", - "Object", + "Text", "<-" ] ], "Summary": "" }, - "edit()": { - "Syntax": "**.edit**( *target* : Variant; *item* : Integer )", + "deny()": { + "Syntax": "**.deny**( *data* : Variant )", "Params": [ [ - "target", + "data", "Variant", "->" - ], + ] + ], + "Summary": "" + }, + "executeJS()": { + "Syntax": "**.executeJS**( *code* : Text )", + "Params": [ [ - "item", - "Integer", + "code", + "Text", "->" ] ], "Summary": "" }, - "selectLastRow()": { - "Syntax": "**.selectLastRow**() : cs.ui.listboxDelegate", + "set content()": { + "Syntax": "**.set content**( *content* : Text )", "Params": [ [ - "", - "cs.ui.listboxDelegate", - "<-" + "content", + "Text", + "->" ] ], "Summary": "" }, - "selectFirstRow()": { - "Syntax": "**.selectFirstRow**() : cs.ui.listboxDelegate", + "get loaded()": { + "Syntax": "**.get loaded**() : Boolean", "Params": [ [ "", - "cs.ui.listboxDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "cellCoordinates()": { - "Syntax": "**.cellCoordinates**( *column* : Integer; *row* : Integer ) : Object", + "backMenu()": { + "Syntax": "**.backMenu**()", + "Params": [], + "Summary": "" + }, + "set url()": { + "Syntax": "**.set url**( *data* : Variant )", "Params": [ [ - "column", - "Integer", - "->" - ], - [ - "row", - "Integer", + "data", + "Variant", "->" - ], - [ - "", - "Object", - "<-" ] ], "Summary": "" }, - "getCoordinates()": { - "Syntax": "**.getCoordinates**() : Object", + "filterdURLs": { + "Syntax": "filterdURLs : Collection" + }, + "errors": { + "Syntax": "errors : Collection" + }, + "_inheritedFrom_": "widgetDelegate" + }, + "listboxDelegate": { + "saveProperties()": { + "Syntax": "**.saveProperties**()", + "Params": [], + "Summary": "" + }, + "setNotSortable()": { + "Syntax": "**.setNotSortable**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Object", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "setRowFontStyle()": { - "Syntax": "**.setRowFontStyle**( *row* : Integer; *style* : Integer )", + "setSortable()": { + "Syntax": "**.setSortable**( *enabled* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "row", - "Integer", + "enabled", + "Boolean", "->" ], [ - "style", - "Integer", - "->" + "", + "cs.ui.listboxDelegate", + "<-" ] ], "Summary": "" }, - "getColumnName()": { - "Syntax": "**.getColumnName**( *columnNumber* : Integer ) : Text", + "setMultipleSelectable()": { + "Syntax": "**.setMultipleSelectable**() : cs.ui.listboxDelegate", "Params": [ - [ - "columnNumber", - "Integer", - "->" - ], [ "", - "Text", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "unselect()": { - "Syntax": "**.unselect**( *row* : Integer ) : cs.ui.listboxDelegate", + "setSingleSelectable()": { + "Syntax": "**.setSingleSelectable**() : cs.ui.listboxDelegate", "Params": [ - [ - "row", - "Integer", - "->" - ], [ "", "cs.ui.listboxDelegate", @@ -855,46 +922,30 @@ ], "Summary": "" }, - "setNotSelectable()": { - "Syntax": "**.setNotSelectable**() : cs.ui.listboxDelegate", - "Params": [ - [ - "", - "cs.ui.listboxDelegate", - "<-" - ] - ], + "restoreProperties()": { + "Syntax": "**.restoreProperties**()", + "Params": [], "Summary": "" }, - "columnNumber()": { - "Syntax": "**.columnNumber**( *name* : Text ) : Integer", + "setMovableLines()": { + "Syntax": "**.setMovableLines**( *enabled* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "name", - "Text", + "enabled", + "Boolean", "->" ], [ "", - "Integer", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "setProperty()": { - "Syntax": "**.setProperty**( *property* : Integer; *value* : Variant ) : cs.ui.listboxDelegate", + "withoutSelectionHighlight()": { + "Syntax": "**.withoutSelectionHighlight**() : cs.ui.listboxDelegate", "Params": [ - [ - "property", - "Integer", - "->" - ], - [ - "value", - "Variant", - "->" - ], [ "", "cs.ui.listboxDelegate", @@ -903,30 +954,25 @@ ], "Summary": "" }, - "columnPtr()": { - "Syntax": "**.columnPtr**( *name* : Text ) : Pointer", + "withSelectionHighlight()": { + "Syntax": "**.withSelectionHighlight**( *enabled* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "name", - "Text", + "enabled", + "Boolean", "->" ], [ "", - "Pointer", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "getProperty()": { - "Syntax": "**.getProperty**( *property* : Integer; *column* : Text ) : Variant", + "getProperties()": { + "Syntax": "**.getProperties**( *column* : Text ) : Object", "Params": [ - [ - "property", - "Integer", - "->" - ], [ "column", "Text", @@ -934,15 +980,20 @@ ], [ "", - "Variant", + "Object", "<-" ] ], "Summary": "" }, - "expandAll()": { - "Syntax": "**.expandAll**() : cs.ui.listboxDelegate", + "deleteRows()": { + "Syntax": "**.deleteRows**( *row* : Integer ) : cs.ui.listboxDelegate", "Params": [ + [ + "row", + "Integer", + "->" + ], [ "", "cs.ui.listboxDelegate", @@ -951,45 +1002,35 @@ ], "Summary": "" }, - "setRowForegroundColor()": { - "Syntax": "**.setRowForegroundColor**( *row* : Integer; *color* : Variant; *target* : Variant )", + "hideColumn()": { + "Syntax": "**.hideColumn**( *column* : Variant ) : cs.ui.listboxDelegate", "Params": [ [ - "row", - "Integer", - "->" - ], - [ - "color", + "column", "Variant", "->" ], [ - "target", - "Variant", - "->" + "", + "cs.ui.listboxDelegate", + "<-" ] ], "Summary": "" }, - "expand()": { - "Syntax": "**.expand**( *row* : Integer; *selector* : Integer; *recursive* : Boolean ) : cs.ui.listboxDelegate", + "setSelectable()": { + "Syntax": "**.setSelectable**( *enabled* : Boolean; *mode* : Integer ) : cs.ui.listboxDelegate", "Params": [ [ - "row", - "Integer", + "enabled", + "Boolean", "->" ], [ - "selector", + "mode", "Integer", "->" ], - [ - "recursive", - "Boolean", - "->" - ], [ "", "cs.ui.listboxDelegate", @@ -998,12 +1039,17 @@ ], "Summary": "" }, - "doSafeSelect()": { - "Syntax": "**.doSafeSelect**( *row* : Integer ) : cs.ui.listboxDelegate", + "showColumn()": { + "Syntax": "**.showColumn**( *column* : Variant; *visible* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "row", - "Integer", + "column", + "Variant", + "->" + ], + [ + "visible", + "Boolean", "->" ], [ @@ -1014,77 +1060,52 @@ ], "Summary": "" }, - "autoSelect()": { - "Syntax": "**.autoSelect**()", - "Params": [], - "Summary": "" - }, - "selectBreak()": { - "Syntax": "**.selectBreak**( *row* : Integer; *column* : Integer ) : cs.ui.listboxDelegate", + "popup()": { + "Syntax": "**.popup**( *menu* : cs.ui.menu; *default* : Text ) : cs.ui.menu", "Params": [ [ - "row", - "Integer", + "menu", + "cs.ui.menu", "->" ], [ - "column", - "Integer", + "default", + "Text", "->" ], [ "", - "cs.ui.listboxDelegate", + "cs.ui.menu", "<-" ] ], "Summary": "" }, - "setSystemFormat()": { - "Syntax": "**.setSystemFormat**()", - "Params": [], - "Summary": "" - }, - "set movableLines()": { - "Syntax": "**.set movableLines**( *on* : Boolean )", + "clear()": { + "Syntax": "**.clear**() : cs.ui.listboxDelegate", "Params": [ [ - "on", - "Boolean", - "->" + "", + "cs.ui.listboxDelegate", + "<-" ] ], "Summary": "" }, - "get multipleSelection()": { - "Syntax": "**.get multipleSelection**() : Boolean", + "updateCell()": { + "Syntax": "**.updateCell**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "collapse()": { - "Syntax": "**.collapse**( *row* : Integer; *selector* : Integer; *recursive* : Boolean ) : cs.ui.listboxDelegate", + "updateDefinition()": { + "Syntax": "**.updateDefinition**() : cs.ui.listboxDelegate", "Params": [ - [ - "row", - "Integer", - "->" - ], - [ - "selector", - "Integer", - "->" - ], - [ - "recursive", - "Boolean", - "->" - ], [ "", "cs.ui.listboxDelegate", @@ -1093,8 +1114,8 @@ ], "Summary": "" }, - "select()": { - "Syntax": "**.select**( *row* : Integer ) : cs.ui.listboxDelegate", + "reveal()": { + "Syntax": "**.reveal**( *row* : Integer ) : cs.ui.listboxDelegate", "Params": [ [ "row", @@ -1109,40 +1130,40 @@ ], "Summary": "" }, - "isHierarchical()": { - "Syntax": "**.isHierarchical**( *caller* : Text ) : Boolean", + "selectAll()": { + "Syntax": "**.selectAll**() : cs.ui.listboxDelegate", "Params": [ - [ - "caller", - "Text", - "->" - ], [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "isArray()": { - "Syntax": "**.isArray**( *caller* : Text ) : Boolean", + "doSafeSelect()": { + "Syntax": "**.doSafeSelect**( *row* : Integer ) : cs.ui.listboxDelegate", "Params": [ [ - "caller", - "Text", + "row", + "Integer", "->" ], [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "collapseAll()": { - "Syntax": "**.collapseAll**() : cs.ui.listboxDelegate", + "autoSelect()": { + "Syntax": "**.autoSelect**()", + "Params": [], + "Summary": "" + }, + "selectLastRow()": { + "Syntax": "**.selectLastRow**() : cs.ui.listboxDelegate", "Params": [ [ "", @@ -1152,122 +1173,121 @@ ], "Summary": "" }, - "get dataSourceType()": { - "Syntax": "**.get dataSourceType**() : Text", + "selectFirstRow()": { + "Syntax": "**.selectFirstRow**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Text", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "selectAll()": { - "Syntax": "**.selectAll**() : cs.ui.listboxDelegate", + "cellCoordinates()": { + "Syntax": "**.cellCoordinates**( *column* : Integer; *row* : Integer ) : Object", "Params": [ + [ + "column", + "Integer", + "->" + ], + [ + "row", + "Integer", + "->" + ], [ "", - "cs.ui.listboxDelegate", + "Object", "<-" ] ], "Summary": "" }, - "set selectable()": { - "Syntax": "**.set selectable**( *on* : Boolean )", + "getCoordinates()": { + "Syntax": "**.getCoordinates**() : Object", "Params": [ [ - "on", - "Boolean", - "->" + "", + "Object", + "<-" ] ], "Summary": "" }, - "resetForegroundColor()": { - "Syntax": "**.resetForegroundColor**( *target* : Variant )", + "get dataLength()": { + "Syntax": "**.get dataLength**() : Integer", "Params": [ [ - "target", - "Variant", - "->" + "", + "Integer", + "<-" ] ], "Summary": "" }, - "get selectionHighlight()": { - "Syntax": "**.get selectionHighlight**() : Boolean", - "Params": [ - [ - "", - "Boolean", - "<-" - ] - ], - "Summary": "" - }, - "sort()": { - "Syntax": "**.sort**( *column* : Integer; *descendant* : Boolean )", + "setRowFontStyle()": { + "Syntax": "**.setRowFontStyle**( *row* : Integer; *style* : Integer )", "Params": [ [ - "column", + "row", "Integer", "->" ], [ - "descendant", - "Boolean", + "style", + "Integer", "->" ] ], "Summary": "" }, - "get sortable()": { - "Syntax": "**.get sortable**() : Boolean", + "setData()": { + "Syntax": "**.setData**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "cellPosition()": { - "Syntax": "**.cellPosition**( *e* : cs.ui.evt ) : Object", + "getColumnName()": { + "Syntax": "**.getColumnName**( *columnNumber* : Integer ) : Text", "Params": [ [ - "e", - "cs.ui.evt", + "columnNumber", + "Integer", "->" ], [ "", - "Object", + "Text", "<-" ] ], "Summary": "" }, - "isCollection()": { - "Syntax": "**.isCollection**( *caller* : Text ) : Boolean", + "unselect()": { + "Syntax": "**.unselect**( *row* : Integer ) : cs.ui.listboxDelegate", "Params": [ [ - "caller", - "Text", + "row", + "Integer", "->" ], [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "setNotMovableLines()": { - "Syntax": "**.setNotMovableLines**() : cs.ui.listboxDelegate", + "setNotSelectable()": { + "Syntax": "**.setNotSelectable**() : cs.ui.listboxDelegate", "Params": [ [ "", @@ -1277,20 +1297,14 @@ ], "Summary": "" }, - "set singleSelection()": { - "Syntax": "**.set singleSelection**( *on* : Boolean )", + "columnNumber()": { + "Syntax": "**.columnNumber**( *name* : Text ) : Integer", "Params": [ [ - "on", - "Boolean", + "name", + "Text", "->" - ] - ], - "Summary": "" - }, - "selected()": { - "Syntax": "**.selected**() : Integer", - "Params": [ + ], [ "", "Integer", @@ -1299,17 +1313,17 @@ ], "Summary": "" }, - "setRowsHeight()": { - "Syntax": "**.setRowsHeight**( *height* : Integer; *unit* : Integer ) : cs.ui.listboxDelegate", + "setProperty()": { + "Syntax": "**.setProperty**( *property* : Integer; *value* : Variant ) : cs.ui.listboxDelegate", "Params": [ [ - "height", + "property", "Integer", "->" ], [ - "unit", - "Integer", + "value", + "Variant", "->" ], [ @@ -1320,8 +1334,8 @@ ], "Summary": "" }, - "get singleSelection()": { - "Syntax": "**.get singleSelection**() : Boolean", + "get isReady()": { + "Syntax": "**.get isReady**() : Boolean", "Params": [ [ "", @@ -1331,137 +1345,178 @@ ], "Summary": "" }, - "set selectionHighlight()": { - "Syntax": "**.set selectionHighlight**( *on* : Boolean )", + "columnPtr()": { + "Syntax": "**.columnPtr**( *name* : Text ) : Pointer", "Params": [ [ - "on", - "Boolean", + "name", + "Text", "->" + ], + [ + "", + "Pointer", + "<-" ] ], "Summary": "" }, - "getFooterName()": { - "Syntax": "**.getFooterName**( *columnNumber* : Integer ) : Text", + "edit()": { + "Syntax": "**.edit**( *target* : Variant; *item* : Integer )", "Params": [ [ - "columnNumber", - "Integer", + "target", + "Variant", "->" ], [ - "", - "Text", - "<-" + "item", + "Integer", + "->" ] ], "Summary": "" }, - "getHeaderName()": { - "Syntax": "**.getHeaderName**( *columnNumber* : Integer ) : Text", + "rowCoordinates()": { + "Syntax": "**.rowCoordinates**( *row* : Integer ) : Object", "Params": [ [ - "columnNumber", + "row", "Integer", "->" ], [ "", - "Text", + "Object", "<-" ] ], "Summary": "" }, - "isEntitySelection()": { - "Syntax": "**.isEntitySelection**( *caller* : Text ) : Boolean", + "getProperty()": { + "Syntax": "**.getProperty**( *property* : Integer; *column* : Text ) : Variant", "Params": [ [ - "caller", + "property", + "Integer", + "->" + ], + [ + "column", "Text", "->" ], [ "", - "Boolean", + "Variant", "<-" ] ], "Summary": "" }, - "get selectable()": { - "Syntax": "**.get selectable**() : Boolean", + "expandAll()": { + "Syntax": "**.expandAll**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "set multipleSelection()": { - "Syntax": "**.set multipleSelection**( *on* : Boolean )", + "setRowForegroundColor()": { + "Syntax": "**.setRowForegroundColor**( *row* : Integer; *color* : Variant; *target* : Variant )", "Params": [ [ - "on", - "Boolean", + "row", + "Integer", + "->" + ], + [ + "color", + "Variant", + "->" + ], + [ + "target", + "Variant", "->" ] ], "Summary": "" }, - "get columnsNumber()": { - "Syntax": "**.get columnsNumber**() : Integer", + "expand()": { + "Syntax": "**.expand**( *row* : Integer; *selector* : Integer; *recursive* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "", + "row", "Integer", - "<-" - ] - ], - "Summary": "" - }, - "set sortable()": { - "Syntax": "**.set sortable**( *on* : Boolean )", - "Params": [ + "->" + ], [ - "on", + "selector", + "Integer", + "->" + ], + [ + "recursive", "Boolean", "->" + ], + [ + "", + "cs.ui.listboxDelegate", + "<-" ] ], "Summary": "" }, - "get movableLines()": { - "Syntax": "**.get movableLines**() : Boolean", + "selectBreak()": { + "Syntax": "**.selectBreak**( *row* : Integer; *column* : Integer ) : cs.ui.listboxDelegate", "Params": [ + [ + "row", + "Integer", + "->" + ], + [ + "column", + "Integer", + "->" + ], [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get rowsNumber()": { - "Syntax": "**.get rowsNumber**() : Integer", + "select()": { + "Syntax": "**.select**( *row* : Integer ) : cs.ui.listboxDelegate", "Params": [ [ - "", + "row", "Integer", + "->" + ], + [ + "", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "_inheritedFrom_": "scrollableDelegate" - }, - "evt": { - "get vpReady()": { - "Syntax": "**.get vpReady**() : Boolean", + "isHierarchical()": { + "Syntax": "**.isHierarchical**( *caller* : Text ) : Boolean", "Params": [ + [ + "caller", + "Text", + "->" + ], [ "", "Boolean", @@ -1470,9 +1525,14 @@ ], "Summary": "" }, - "get windowOpeningDenied()": { - "Syntax": "**.get windowOpeningDenied**() : Boolean", + "isArray()": { + "Syntax": "**.isArray**( *caller* : Text ) : Boolean", "Params": [ + [ + "caller", + "Text", + "->" + ], [ "", "Boolean", @@ -1481,74 +1541,79 @@ ], "Summary": "" }, - "get urlFiltering()": { - "Syntax": "**.get urlFiltering**() : Boolean", + "set sortable()": { + "Syntax": "**.set sortable**( *on* : Boolean )", "Params": [ [ - "", + "on", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "get urlLoadingError()": { - "Syntax": "**.get urlLoadingError**() : Boolean", + "setSource()": { + "Syntax": "**.setSource**( *source* : Variant ) : cs.ui.listboxDelegate", "Params": [ + [ + "source", + "Variant", + "->" + ], [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get endUrlLoading()": { - "Syntax": "**.get endUrlLoading**() : Boolean", + "collapseAll()": { + "Syntax": "**.collapseAll**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get beginUrlLoading()": { - "Syntax": "**.get beginUrlLoading**() : Boolean", + "get dataSourceType()": { + "Syntax": "**.get dataSourceType**() : Text", "Params": [ [ "", - "Boolean", + "Text", "<-" ] ], "Summary": "" }, - "get afterHostDatabaseStartup()": { - "Syntax": "**.get afterHostDatabaseStartup**() : Boolean", + "set selectable()": { + "Syntax": "**.set selectable**( *on* : Boolean )", "Params": [ [ - "", + "on", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "get beforeHostDatabaseStartup()": { - "Syntax": "**.get beforeHostDatabaseStartup**() : Boolean", + "resetForegroundColor()": { + "Syntax": "**.resetForegroundColor**( *target* : Variant )", "Params": [ [ - "", - "Boolean", - "<-" + "target", + "Variant", + "->" ] ], "Summary": "" }, - "get urlResourceLoading()": { - "Syntax": "**.get urlResourceLoading**() : Boolean", + "get selectionHighlight()": { + "Syntax": "**.get selectionHighlight**() : Boolean", "Params": [ [ "", @@ -1558,19 +1623,24 @@ ], "Summary": "" }, - "get footerClick()": { - "Syntax": "**.get footerClick**() : Boolean", + "sort()": { + "Syntax": "**.sort**( *column* : Integer; *descendant* : Boolean )", "Params": [ [ - "", + "column", + "Integer", + "->" + ], + [ + "descendant", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "get headerClick()": { - "Syntax": "**.get headerClick**() : Boolean", + "get isSelected()": { + "Syntax": "**.get isSelected**() : Boolean", "Params": [ [ "", @@ -1580,20 +1650,30 @@ ], "Summary": "" }, - "get rowResize()": { - "Syntax": "**.get rowResize**() : Boolean", + "cellPosition()": { + "Syntax": "**.cellPosition**( *e* : cs.ui.evt ) : Object", "Params": [ + [ + "e", + "cs.ui.evt", + "->" + ], [ "", - "Boolean", + "Object", "<-" ] ], "Summary": "" }, - "get columnResize()": { - "Syntax": "**.get columnResize**() : Boolean", + "isCollection()": { + "Syntax": "**.isCollection**( *caller* : Text ) : Boolean", "Params": [ + [ + "caller", + "Text", + "->" + ], [ "", "Boolean", @@ -1602,30 +1682,50 @@ ], "Summary": "" }, - "get openDetail()": { - "Syntax": "**.get openDetail**() : Boolean", + "setSystemFormat()": { + "Syntax": "**.setSystemFormat**()", + "Params": [], + "Summary": "" + }, + "collapse()": { + "Syntax": "**.collapse**( *row* : Integer; *selector* : Integer; *recursive* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "", + "row", + "Integer", + "->" + ], + [ + "selector", + "Integer", + "->" + ], + [ + "recursive", "Boolean", + "->" + ], + [ + "", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get rowMoved()": { - "Syntax": "**.get rowMoved**() : Boolean", + "set movableLines()": { + "Syntax": "**.set movableLines**( *on* : Boolean )", "Params": [ [ - "", + "on", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "get openExternalLink()": { - "Syntax": "**.get openExternalLink**() : Boolean", + "get multipleSelection()": { + "Syntax": "**.get multipleSelection**() : Boolean", "Params": [ [ "", @@ -1635,52 +1735,62 @@ ], "Summary": "" }, - "get closeDetail()": { - "Syntax": "**.get closeDetail**() : Boolean", + "setNotMovableLines()": { + "Syntax": "**.setNotMovableLines**() : cs.ui.listboxDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get columnMoved()": { - "Syntax": "**.get columnMoved**() : Boolean", + "set singleSelection()": { + "Syntax": "**.set singleSelection**( *on* : Boolean )", "Params": [ [ - "", + "on", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "get menuSelected()": { - "Syntax": "**.get menuSelected**() : Boolean", + "selected()": { + "Syntax": "**.selected**() : Integer", "Params": [ [ "", - "Boolean", + "Integer", "<-" ] ], "Summary": "" }, - "get displayDetail()": { - "Syntax": "**.get displayDetail**() : Boolean", + "setRowsHeight()": { + "Syntax": "**.setRowsHeight**( *height* : Integer; *unit* : Integer ) : cs.ui.listboxDelegate", "Params": [ + [ + "height", + "Integer", + "->" + ], + [ + "unit", + "Integer", + "->" + ], [ "", - "Boolean", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get sort()": { - "Syntax": "**.get sort**() : Boolean", + "get singleSelection()": { + "Syntax": "**.get singleSelection**() : Boolean", "Params": [ [ "", @@ -1690,19 +1800,19 @@ ], "Summary": "" }, - "get collapse()": { - "Syntax": "**.get collapse**() : Boolean", + "set multipleSelection()": { + "Syntax": "**.set multipleSelection**( *on* : Boolean )", "Params": [ [ - "", + "on", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "get delete()": { - "Syntax": "**.get delete**() : Boolean", + "get selectable()": { + "Syntax": "**.get selectable**() : Boolean", "Params": [ [ "", @@ -1712,41 +1822,41 @@ ], "Summary": "" }, - "get expand()": { - "Syntax": "**.get expand**() : Boolean", + "get columnsNumber()": { + "Syntax": "**.get columnsNumber**() : Integer", "Params": [ [ "", - "Boolean", + "Integer", "<-" ] ], "Summary": "" }, - "get scroll()": { - "Syntax": "**.get scroll**() : Boolean", + "get index()": { + "Syntax": "**.get index**() : Integer", "Params": [ [ "", - "Boolean", + "Integer", "<-" ] ], "Summary": "" }, - "get afterKeystroke()": { - "Syntax": "**.get afterKeystroke**() : Boolean", + "get rowsNumber()": { + "Syntax": "**.get rowsNumber**() : Integer", "Params": [ [ "", - "Boolean", + "Integer", "<-" ] ], "Summary": "" }, - "get mouseEnter()": { - "Syntax": "**.get mouseEnter**() : Boolean", + "get sortable()": { + "Syntax": "**.get sortable**() : Boolean", "Params": [ [ "", @@ -1756,8 +1866,8 @@ ], "Summary": "" }, - "get drop()": { - "Syntax": "**.get drop**() : Boolean", + "get movableLines()": { + "Syntax": "**.get movableLines**() : Boolean", "Params": [ [ "", @@ -1767,42 +1877,62 @@ ], "Summary": "" }, - "get dragOver()": { - "Syntax": "**.get dragOver**() : Boolean", + "set selectionHighlight()": { + "Syntax": "**.set selectionHighlight**( *on* : Boolean ) : cs.ui.listboxDelegate", "Params": [ [ - "", + "on", "Boolean", + "->" + ], + [ + "", + "cs.ui.listboxDelegate", "<-" ] ], "Summary": "" }, - "get vpRange()": { - "Syntax": "**.get vpRange**() : Boolean", + "getFooterName()": { + "Syntax": "**.getFooterName**( *columnNumber* : Integer ) : Text", "Params": [ + [ + "columnNumber", + "Integer", + "->" + ], [ "", - "Boolean", + "Text", "<-" ] ], "Summary": "" }, - "get dataChange()": { - "Syntax": "**.get dataChange**() : Boolean", + "getHeaderName()": { + "Syntax": "**.getHeaderName**( *columnNumber* : Integer ) : Text", "Params": [ + [ + "columnNumber", + "Integer", + "->" + ], [ "", - "Boolean", + "Text", "<-" ] ], "Summary": "" }, - "get beforeHostDatabaseExit()": { - "Syntax": "**.get beforeHostDatabaseExit**() : Boolean", + "isEntitySelection()": { + "Syntax": "**.isEntitySelection**( *caller* : Text ) : Boolean", "Params": [ + [ + "caller", + "Text", + "->" + ], [ "", "Boolean", @@ -1811,8 +1941,11 @@ ], "Summary": "" }, - "get mouseUp()": { - "Syntax": "**.get mouseUp**() : Boolean", + "_inheritedFrom_": "scrollableDelegate" + }, + "evt": { + "get vpReady()": { + "Syntax": "**.get vpReady**() : Boolean", "Params": [ [ "", @@ -1822,8 +1955,8 @@ ], "Summary": "" }, - "get boundVariableChange()": { - "Syntax": "**.get boundVariableChange**() : Boolean", + "get windowOpeningDenied()": { + "Syntax": "**.get windowOpeningDenied**() : Boolean", "Params": [ [ "", @@ -1833,8 +1966,8 @@ ], "Summary": "" }, - "get afterEdit()": { - "Syntax": "**.get afterEdit**() : Boolean", + "get urlFiltering()": { + "Syntax": "**.get urlFiltering**() : Boolean", "Params": [ [ "", @@ -1844,8 +1977,8 @@ ], "Summary": "" }, - "get beforeKeystroke()": { - "Syntax": "**.get beforeKeystroke**() : Boolean", + "get urlLoadingError()": { + "Syntax": "**.get urlLoadingError**() : Boolean", "Params": [ [ "", @@ -1855,8 +1988,8 @@ ], "Summary": "" }, - "get beginDragOver()": { - "Syntax": "**.get beginDragOver**() : Boolean", + "get endUrlLoading()": { + "Syntax": "**.get endUrlLoading**() : Boolean", "Params": [ [ "", @@ -1866,8 +1999,8 @@ ], "Summary": "" }, - "get alternateClick()": { - "Syntax": "**.get alternateClick**() : Boolean", + "get beginUrlLoading()": { + "Syntax": "**.get beginUrlLoading**() : Boolean", "Params": [ [ "", @@ -1877,8 +2010,8 @@ ], "Summary": "" }, - "get close()": { - "Syntax": "**.get close**() : Boolean", + "get afterHostDatabaseStartup()": { + "Syntax": "**.get afterHostDatabaseStartup**() : Boolean", "Params": [ [ "", @@ -1888,8 +2021,8 @@ ], "Summary": "" }, - "get afterHostDatabaseExit()": { - "Syntax": "**.get afterHostDatabaseExit**() : Boolean", + "get beforeHostDatabaseStartup()": { + "Syntax": "**.get beforeHostDatabaseStartup**() : Boolean", "Params": [ [ "", @@ -1899,8 +2032,8 @@ ], "Summary": "" }, - "get plugin()": { - "Syntax": "**.get plugin**() : Boolean", + "get urlResourceLoading()": { + "Syntax": "**.get urlResourceLoading**() : Boolean", "Params": [ [ "", @@ -1910,8 +2043,8 @@ ], "Summary": "" }, - "get doubleClick()": { - "Syntax": "**.get doubleClick**() : Boolean", + "get footerClick()": { + "Syntax": "**.get footerClick**() : Boolean", "Params": [ [ "", @@ -1921,8 +2054,8 @@ ], "Summary": "" }, - "get loadRecord()": { - "Syntax": "**.get loadRecord**() : Boolean", + "get headerClick()": { + "Syntax": "**.get headerClick**() : Boolean", "Params": [ [ "", @@ -1932,8 +2065,8 @@ ], "Summary": "" }, - "get deactivate()": { - "Syntax": "**.get deactivate**() : Boolean", + "get rowResize()": { + "Syntax": "**.get rowResize**() : Boolean", "Params": [ [ "", @@ -1943,8 +2076,8 @@ ], "Summary": "" }, - "get printingDetail()": { - "Syntax": "**.get printingDetail**() : Boolean", + "get columnResize()": { + "Syntax": "**.get columnResize**() : Boolean", "Params": [ [ "", @@ -1954,8 +2087,8 @@ ], "Summary": "" }, - "get outsideCall()": { - "Syntax": "**.get outsideCall**() : Boolean", + "get openDetail()": { + "Syntax": "**.get openDetail**() : Boolean", "Params": [ [ "", @@ -1965,8 +2098,8 @@ ], "Summary": "" }, - "get printingBreak()": { - "Syntax": "**.get printingBreak**() : Boolean", + "get rowMoved()": { + "Syntax": "**.get rowMoved**() : Boolean", "Params": [ [ "", @@ -1976,8 +2109,8 @@ ], "Summary": "" }, - "get click()": { - "Syntax": "**.get click**() : Boolean", + "get openExternalLink()": { + "Syntax": "**.get openExternalLink**() : Boolean", "Params": [ [ "", @@ -1987,8 +2120,8 @@ ], "Summary": "" }, - "get longClick()": { - "Syntax": "**.get longClick**() : Boolean", + "get closeDetail()": { + "Syntax": "**.get closeDetail**() : Boolean", "Params": [ [ "", @@ -1998,8 +2131,8 @@ ], "Summary": "" }, - "get header()": { - "Syntax": "**.get header**() : Boolean", + "get columnMoved()": { + "Syntax": "**.get columnMoved**() : Boolean", "Params": [ [ "", @@ -2009,8 +2142,8 @@ ], "Summary": "" }, - "get mouseLeave()": { - "Syntax": "**.get mouseLeave**() : Boolean", + "get menuSelected()": { + "Syntax": "**.get menuSelected**() : Boolean", "Params": [ [ "", @@ -2020,8 +2153,8 @@ ], "Summary": "" }, - "get timer()": { - "Syntax": "**.get timer**() : Boolean", + "get displayDetail()": { + "Syntax": "**.get displayDetail**() : Boolean", "Params": [ [ "", @@ -2031,8 +2164,8 @@ ], "Summary": "" }, - "get pageChange()": { - "Syntax": "**.get pageChange**() : Boolean", + "get sort()": { + "Syntax": "**.get sort**() : Boolean", "Params": [ [ "", @@ -2042,8 +2175,8 @@ ], "Summary": "" }, - "get activate()": { - "Syntax": "**.get activate**() : Boolean", + "get collapse()": { + "Syntax": "**.get collapse**() : Boolean", "Params": [ [ "", @@ -2053,8 +2186,8 @@ ], "Summary": "" }, - "get losingFocus()": { - "Syntax": "**.get losingFocus**() : Boolean", + "get delete()": { + "Syntax": "**.get delete**() : Boolean", "Params": [ [ "", @@ -2064,8 +2197,8 @@ ], "Summary": "" }, - "get validate()": { - "Syntax": "**.get validate**() : Boolean", + "get expand()": { + "Syntax": "**.get expand**() : Boolean", "Params": [ [ "", @@ -2075,8 +2208,8 @@ ], "Summary": "" }, - "get resize()": { - "Syntax": "**.get resize**() : Boolean", + "get scroll()": { + "Syntax": "**.get scroll**() : Boolean", "Params": [ [ "", @@ -2086,8 +2219,8 @@ ], "Summary": "" }, - "get mouseMove()": { - "Syntax": "**.get mouseMove**() : Boolean", + "get afterKeystroke()": { + "Syntax": "**.get afterKeystroke**() : Boolean", "Params": [ [ "", @@ -2097,8 +2230,8 @@ ], "Summary": "" }, - "get printingFooter()": { - "Syntax": "**.get printingFooter**() : Boolean", + "get mouseEnter()": { + "Syntax": "**.get mouseEnter**() : Boolean", "Params": [ [ "", @@ -2108,8 +2241,8 @@ ], "Summary": "" }, - "get unload()": { - "Syntax": "**.get unload**() : Boolean", + "get drop()": { + "Syntax": "**.get drop**() : Boolean", "Params": [ [ "", @@ -2119,8 +2252,8 @@ ], "Summary": "" }, - "get load()": { - "Syntax": "**.get load**() : Boolean", + "get dragOver()": { + "Syntax": "**.get dragOver**() : Boolean", "Params": [ [ "", @@ -2130,8 +2263,8 @@ ], "Summary": "" }, - "get gettingFocus()": { - "Syntax": "**.get gettingFocus**() : Boolean", + "get vpRange()": { + "Syntax": "**.get vpRange**() : Boolean", "Params": [ [ "", @@ -2141,8 +2274,8 @@ ], "Summary": "" }, - "get selectionChange()": { - "Syntax": "**.get selectionChange**() : Boolean", + "get dataChange()": { + "Syntax": "**.get dataChange**() : Boolean", "Params": [ [ "", @@ -2152,8 +2285,8 @@ ], "Summary": "" }, - "get beforeDataEntry()": { - "Syntax": "**.get beforeDataEntry**() : Boolean", + "get beforeHostDatabaseExit()": { + "Syntax": "**.get beforeHostDatabaseExit**() : Boolean", "Params": [ [ "", @@ -2163,8 +2296,8 @@ ], "Summary": "" }, - "get form()": { - "Syntax": "**.get form**() : Boolean", + "get mouseUp()": { + "Syntax": "**.get mouseUp**() : Boolean", "Params": [ [ "", @@ -2173,119 +2306,97 @@ ] ], "Summary": "" - } - }, - "webAreaDelegate": { - "get lastError()": { - "Syntax": "**.get lastError**() : Text", + }, + "get boundVariableChange()": { + "Syntax": "**.get boundVariableChange**() : Boolean", "Params": [ [ "", - "Text", + "Boolean", "<-" ] ], "Summary": "" }, - "getWebEngine()": { - "Syntax": "**.getWebEngine**() : Object", + "get afterEdit()": { + "Syntax": "**.get afterEdit**() : Boolean", "Params": [ [ "", - "Object", + "Boolean", "<-" ] ], "Summary": "" }, - "deny()": { - "Syntax": "**.deny**( *data* : Variant )", + "get beforeKeystroke()": { + "Syntax": "**.get beforeKeystroke**() : Boolean", "Params": [ [ - "data", - "Variant", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "allow()": { - "Syntax": "**.allow**( *data* : Variant; *allow* : Boolean )", + "get beginDragOver()": { + "Syntax": "**.get beginDragOver**() : Boolean", "Params": [ [ - "data", - "Variant", - "->" - ], - [ - "allow", + "", "Boolean", - "->" + "<-" ] ], "Summary": "" }, - "get title()": { - "Syntax": "**.get title**() : Text", + "get alternateClick()": { + "Syntax": "**.get alternateClick**() : Boolean", "Params": [ [ "", - "Text", + "Boolean", "<-" ] ], "Summary": "" }, - "get lastFilteredURL()": { - "Syntax": "**.get lastFilteredURL**() : Text", + "get close()": { + "Syntax": "**.get close**() : Boolean", "Params": [ [ "", - "Text", + "Boolean", "<-" ] ], "Summary": "" }, - "stop()": { - "Syntax": "**.stop**()", - "Params": [], - "Summary": "" - }, - "load()": { - "Syntax": "**.load**( *file* : 4D.File )", + "get afterHostDatabaseExit()": { + "Syntax": "**.get afterHostDatabaseExit**() : Boolean", "Params": [ [ - "file", - "4D.File", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "zoomIn()": { - "Syntax": "**.zoomIn**()", - "Params": [], - "Summary": "" - }, - "zoom()": { - "Syntax": "**.zoom**( *in* : Boolean )", + "get plugin()": { + "Syntax": "**.get plugin**() : Boolean", "Params": [ [ - "in", + "", "Boolean", - "->" + "<-" ] ], "Summary": "" }, - "refresh()": { - "Syntax": "**.refresh**()", - "Params": [], - "Summary": "" - }, - "isLoaded()": { - "Syntax": "**.isLoaded**() : Boolean", + "get doubleClick()": { + "Syntax": "**.get doubleClick**() : Boolean", "Params": [ [ "", @@ -2295,18 +2406,8 @@ ], "Summary": "" }, - "forward()": { - "Syntax": "**.forward**()", - "Params": [], - "Summary": "" - }, - "zoomOut()": { - "Syntax": "**.zoomOut**()", - "Params": [], - "Summary": "" - }, - "get canForwards()": { - "Syntax": "**.get canForwards**() : Boolean", + "get loadRecord()": { + "Syntax": "**.get loadRecord**() : Boolean", "Params": [ [ "", @@ -2316,82 +2417,52 @@ ], "Summary": "" }, - "setContent()": { - "Syntax": "**.setContent**( *content* : Text; *base* : Text )", + "get deactivate()": { + "Syntax": "**.get deactivate**() : Boolean", "Params": [ [ - "content", - "Text", - "->" - ], - [ - "base", - "Text", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "evaluateJS()": { - "Syntax": "**.evaluateJS**( *code* : Text; *type* : Integer ) : Variant", + "get printingDetail()": { + "Syntax": "**.get printingDetail**() : Boolean", "Params": [ - [ - "code", - "Text", - "->" - ], - [ - "type", - "Integer", - "->" - ], [ "", - "Variant", + "Boolean", "<-" ] ], "Summary": "" }, - "forwardMenu()": { - "Syntax": "**.forwardMenu**()", - "Params": [], - "Summary": "" - }, - "back()": { - "Syntax": "**.back**()", - "Params": [], - "Summary": "" - }, - "getTitle()": { - "Syntax": "**.getTitle**() : Text", + "get outsideCall()": { + "Syntax": "**.get outsideCall**() : Boolean", "Params": [ [ "", - "Text", + "Boolean", "<-" ] ], "Summary": "" }, - "get content()": { - "Syntax": "**.get content**() : Text", + "get printingBreak()": { + "Syntax": "**.get printingBreak**() : Boolean", "Params": [ [ "", - "Text", + "Boolean", "<-" ] ], "Summary": "" }, - "inspector()": { - "Syntax": "**.inspector**()", - "Params": [], - "Summary": "" - }, - "get canBackwards()": { - "Syntax": "**.get canBackwards**() : Boolean", + "get click()": { + "Syntax": "**.get click**() : Boolean", "Params": [ [ "", @@ -2401,19 +2472,19 @@ ], "Summary": "" }, - "set content()": { - "Syntax": "**.set content**( *content* : Text )", + "get longClick()": { + "Syntax": "**.get longClick**() : Boolean", "Params": [ [ - "content", - "Text", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "get loaded()": { - "Syntax": "**.get loaded**() : Boolean", + "get header()": { + "Syntax": "**.get header**() : Boolean", "Params": [ [ "", @@ -2423,124 +2494,170 @@ ], "Summary": "" }, - "backMenu()": { - "Syntax": "**.backMenu**()", - "Params": [], + "get mouseLeave()": { + "Syntax": "**.get mouseLeave**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], "Summary": "" }, - "get url()": { - "Syntax": "**.get url**() : Text", + "get timer()": { + "Syntax": "**.get timer**() : Boolean", "Params": [ [ "", - "Text", + "Boolean", "<-" ] ], "Summary": "" }, - "open()": { - "Syntax": "**.open**( *data* : Variant )", + "get pageChange()": { + "Syntax": "**.get pageChange**() : Boolean", "Params": [ [ - "data", - "Variant", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "set url()": { - "Syntax": "**.set url**( *data* : Variant )", + "get activate()": { + "Syntax": "**.get activate**() : Boolean", "Params": [ [ - "data", - "Variant", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "filterdURLs": { - "Syntax": "filterdURLs : Collection" + "get losingFocus()": { + "Syntax": "**.get losingFocus**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" }, - "errors": { - "Syntax": "errors : Collection" + "get validate()": { + "Syntax": "**.get validate**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" }, - "_inheritedFrom_": "widgetDelegate" - }, - "constraintsDelegate": { - "apply()": { - "Syntax": "**.apply**()", - "Params": [], + "get resize()": { + "Syntax": "**.get resize**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], "Summary": "" }, - "load()": { - "Syntax": "**.load**( *file* : 4D.File )", + "get mouseMove()": { + "Syntax": "**.get mouseMove**() : Boolean", "Params": [ [ - "file", - "4D.File", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "add()": { - "Syntax": "**.add**( *rule* : Object ) : cs.ui.constraintsDelegate", + "get printingFooter()": { + "Syntax": "**.get printingFooter**() : Boolean", "Params": [ [ - "rule", - "Object", - "->" - ], + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "get unload()": { + "Syntax": "**.get unload**() : Boolean", + "Params": [ [ "", - "cs.ui.constraintsDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "setMetrics()": { - "Syntax": "**.setMetrics**( *metrics* : Object )", + "get load()": { + "Syntax": "**.get load**() : Boolean", "Params": [ [ - "metrics", - "Object", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "rules": { - "Syntax": "rules : Collection" - } - }, - "_DEMO_constraints_Controller": { - "onLoad()": { - "Syntax": "**.onLoad**()", - "Params": [], + "get gettingFocus()": { + "Syntax": "**.get gettingFocus**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], "Summary": "" }, - "handleEvents()": { - "Syntax": "**.handleEvents**( *e* : cs.ui.evt )", + "get selectionChange()": { + "Syntax": "**.get selectionChange**() : Boolean", "Params": [ [ - "e", - "cs.ui.evt", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "init()": { - "Syntax": "**.init**()", - "Params": [], + "get beforeDataEntry()": { + "Syntax": "**.get beforeDataEntry**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], "Summary": "" }, - "form": { - "Syntax": "form : cs.ui.formDelegate" + "get form()": { + "Syntax": "**.get form**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" } }, "_DEMO_1_Controller": { @@ -2866,6 +2983,32 @@ ], "Summary": "" }, + "setColors()": { + "Syntax": "**.setColors**( *foreground* : Variant; *background* : Variant; *altBackground* : Variant ) : cs.ui.staticDelegate", + "Params": [ + [ + "foreground", + "Variant", + "->" + ], + [ + "background", + "Variant", + "->" + ], + [ + "altBackground", + "Variant", + "->" + ], + [ + "", + "cs.ui.staticDelegate", + "<-" + ] + ], + "Summary": "" + }, "get fontStyle()": { "Syntax": "**.get fontStyle**() : Integer", "Params": [ @@ -2970,12 +3113,12 @@ ], "Summary": "" }, - "moveVertically()": { - "Syntax": "**.moveVertically**( *offset* : Integer ) : cs.ui.staticDelegate", + "enable()": { + "Syntax": "**.enable**( *state* : Boolean ) : cs.ui.staticDelegate", "Params": [ [ - "offset", - "Integer", + "state", + "Boolean", "->" ], [ @@ -2986,33 +3129,38 @@ ], "Summary": "" }, - "disable()": { - "Syntax": "**.disable**() : cs.ui.staticDelegate", + "set disabled()": { + "Syntax": "**.set disabled**( *disabled* : Boolean )", "Params": [ [ - "", - "cs.ui.staticDelegate", - "<-" + "disabled", + "Boolean", + "->" ] ], "Summary": "" }, - "setColors()": { - "Syntax": "**.setColors**( *foreground* : Variant; *background* : Variant; *altBackground* : Variant ) : cs.ui.staticDelegate", + "updateCoordinates()": { + "Syntax": "**.updateCoordinates**( *left* : Integer; *top* : Integer; *right* : Integer; *bottom* : Integer ) : cs.ui.staticDelegate", "Params": [ [ - "foreground", - "Variant", + "left", + "Integer", "->" ], [ - "background", - "Variant", + "top", + "Integer", "->" ], [ - "altBackground", - "Variant", + "right", + "Integer", + "->" + ], + [ + "bottom", + "Integer", "->" ], [ @@ -3023,80 +3171,59 @@ ], "Summary": "" }, - "setFontStyle()": { - "Syntax": "**.setFontStyle**( *style* : Integer ) : cs.ui.staticDelegate", + "moveAndResizeVertically()": { + "Syntax": "**.moveAndResizeVertically**( *offset* : Integer; *resize* : Integer ) : cs.ui.staticDelegate", "Params": [ [ - "style", + "offset", "Integer", "->" ], [ - "", - "cs.ui.staticDelegate", - "<-" - ] - ], - "Summary": "" - }, - "get enabled()": { - "Syntax": "**.get enabled**() : Boolean", - "Params": [ + "resize", + "Integer", + "->" + ], [ "", - "Boolean", + "cs.ui.staticDelegate", "<-" ] ], "Summary": "" }, - "enable()": { - "Syntax": "**.enable**( *state* : Boolean ) : cs.ui.staticDelegate", + "get disabled()": { + "Syntax": "**.get disabled**() : Boolean", "Params": [ - [ - "state", - "Boolean", - "->" - ], [ "", - "cs.ui.staticDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "set disabled()": { - "Syntax": "**.set disabled**( *disabled* : Boolean )", + "set foregroundColor()": { + "Syntax": "**.set foregroundColor**( *color* : Variant )", "Params": [ [ - "disabled", - "Boolean", + "color", + "Variant", "->" ] ], "Summary": "" }, - "updateCoordinates()": { - "Syntax": "**.updateCoordinates**( *left* : Integer; *top* : Integer; *right* : Integer; *bottom* : Integer ) : cs.ui.staticDelegate", + "moveAndResizeHorizontally()": { + "Syntax": "**.moveAndResizeHorizontally**( *offset* : Integer; *resize* : Integer ) : cs.ui.staticDelegate", "Params": [ [ - "left", - "Integer", - "->" - ], - [ - "top", - "Integer", - "->" - ], - [ - "right", + "offset", "Integer", "->" ], [ - "bottom", + "resize", "Integer", "->" ], @@ -3108,8 +3235,8 @@ ], "Summary": "" }, - "moveAndResizeVertically()": { - "Syntax": "**.moveAndResizeVertically**( *offset* : Integer; *resize* : Integer ) : cs.ui.staticDelegate", + "resizeVertically()": { + "Syntax": "**.resizeVertically**( *offset* : Integer ) : cs.ui.staticDelegate", "Params": [ [ "offset", @@ -3117,10 +3244,16 @@ "->" ], [ - "resize", - "Integer", - "->" - ], + "", + "cs.ui.staticDelegate", + "<-" + ] + ], + "Summary": "" + }, + "disable()": { + "Syntax": "**.disable**() : cs.ui.staticDelegate", + "Params": [ [ "", "cs.ui.staticDelegate", @@ -3129,8 +3262,8 @@ ], "Summary": "" }, - "resizeVertically()": { - "Syntax": "**.resizeVertically**( *offset* : Integer ) : cs.ui.staticDelegate", + "moveVertically()": { + "Syntax": "**.moveVertically**( *offset* : Integer ) : cs.ui.staticDelegate", "Params": [ [ "offset", @@ -3426,60 +3559,6 @@ ], "Summary": "" }, - "get disabled()": { - "Syntax": "**.get disabled**() : Boolean", - "Params": [ - [ - "", - "Boolean", - "<-" - ] - ], - "Summary": "" - }, - "set foregroundColor()": { - "Syntax": "**.set foregroundColor**( *color* : Variant )", - "Params": [ - [ - "color", - "Variant", - "->" - ] - ], - "Summary": "" - }, - "moveAndResizeHorizontally()": { - "Syntax": "**.moveAndResizeHorizontally**( *offset* : Integer; *resize* : Integer ) : cs.ui.staticDelegate", - "Params": [ - [ - "offset", - "Integer", - "->" - ], - [ - "resize", - "Integer", - "->" - ], - [ - "", - "cs.ui.staticDelegate", - "<-" - ] - ], - "Summary": "" - }, - "set enabled()": { - "Syntax": "**.set enabled**( *enabled* : Boolean )", - "Params": [ - [ - "enabled", - "Boolean", - "->" - ] - ], - "Summary": "" - }, "set verticalAlignment()": { "Syntax": "**.set verticalAlignment**( *alignment* : Integer )", "Params": [ @@ -3524,6 +3603,33 @@ ], "Summary": "" }, + "setResizingOptions()": { + "Syntax": "**.setResizingOptions**( *horizontal* : Integer; *vertical* : Integer )", + "Params": [ + [ + "horizontal", + "Integer", + "->" + ], + [ + "vertical", + "Integer", + "->" + ] + ], + "Summary": "" + }, + "set enabled()": { + "Syntax": "**.set enabled**( *enabled* : Boolean )", + "Params": [ + [ + "enabled", + "Boolean", + "->" + ] + ], + "Summary": "" + }, "setCoordinates()": { "Syntax": "**.setCoordinates**( *left* : Variant; *top* : Integer; *right* : Integer; *bottom* : Integer ) : cs.ui.staticDelegate", "Params": [ @@ -3593,6 +3699,44 @@ ], "Summary": "" }, + "setFontStyle()": { + "Syntax": "**.setFontStyle**( *style* : Integer ) : cs.ui.staticDelegate", + "Params": [ + [ + "style", + "Integer", + "->" + ], + [ + "", + "cs.ui.staticDelegate", + "<-" + ] + ], + "Summary": "" + }, + "get enabled()": { + "Syntax": "**.get enabled**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "get resizingOptions()": { + "Syntax": "**.get resizingOptions**() : Object", + "Params": [ + [ + "", + "Object", + "<-" + ] + ], + "Summary": "" + }, "type": { "Syntax": "type : Integer" }, @@ -3969,6 +4113,16 @@ "Params": [], "Summary": "" }, + "restore()": { + "Syntax": "**.restore**()", + "Params": [], + "Summary": "" + }, + "reduce()": { + "Syntax": "**.reduce**()", + "Params": [], + "Summary": "" + }, "show()": { "Syntax": "**.show**()", "Params": [], @@ -4228,6 +4382,11 @@ ], "Summary": "" }, + "drag()": { + "Syntax": "**.drag**()", + "Params": [], + "Summary": "" + }, "set right()": { "Syntax": "**.set right**( *right* : Integer )", "Params": [ @@ -4667,7 +4826,7 @@ "Summary": "" }, "callWorker()": { - "Syntax": "**.callWorker**( *method* : Variant; *param* : Variant; *param1* : Variant; *paramN* : Variant )", + "Syntax": "**.callWorker**( *method* : Variant; *param* : Variant; *...* : Variant )", "Params": [ [ "method", @@ -4680,12 +4839,7 @@ "->" ], [ - "param1", - "Variant", - "->" - ], - [ - "paramN", + "", "Variant", "->" ] @@ -4899,7 +5053,7 @@ "Summary": "" }, "callMe()": { - "Syntax": "**.callMe**( *method* : Text; *param* : Variant; *param1* : Variant; *paramN* : Variant )", + "Syntax": "**.callMe**( *method* : Text; *...* : Variant )", "Params": [ [ "method", @@ -4907,17 +5061,7 @@ "->" ], [ - "param", - "Variant", - "->" - ], - [ - "param1", - "Variant", - "->" - ], - [ - "paramN", + "", "Variant", "->" ] @@ -5005,7 +5149,7 @@ "Summary": "" }, "callChild()": { - "Syntax": "**.callChild**( *subform* : Variant; *method* : Text; *param* : Variant; *param1* : Variant; *paramN* : Variant )", + "Syntax": "**.callChild**( *subform* : Variant; *method* : Text; *...* : Variant )", "Params": [ [ "subform", @@ -5018,17 +5162,7 @@ "->" ], [ - "param", - "Variant", - "->" - ], - [ - "param1", - "Variant", - "->" - ], - [ - "paramN", + "", "Variant", "->" ] @@ -5211,391 +5345,337 @@ "Syntax": "isSubform : Boolean" } }, - "groupDelegate": { - "setFontStyle()": { - "Syntax": "**.setFontStyle**( *style* : Integer ) : cs.ui.groupDelegate", + "stepperDelegate": { + "stop()": { + "Syntax": "**.stop**()", + "Params": [], + "Summary": "" + }, + "isRunning()": { + "Syntax": "**.isRunning**() : Boolean", "Params": [ - [ - "style", - "Integer", - "->" - ], [ "", - "cs.ui.groupDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "show()": { - "Syntax": "**.show**( *visible* : Boolean ) : cs.ui.groupDelegate", - "Params": [ - [ - "visible", - "Boolean", - "->" - ], - [ - "", - "cs.ui.groupDelegate", - "<-" - ] - ], + "start()": { + "Syntax": "**.start**()", + "Params": [], "Summary": "" }, - "alignLeft()": { - "Syntax": "**.alignLeft**( *reference* : Variant ) : cs.ui.groupDelegate", + "_inheritedFrom_": "widgetDelegate" + }, + "hListDelegate": { + "unselect()": { + "Syntax": "**.unselect**()", + "Params": [], + "Summary": "" + }, + "selectByPosition()": { + "Syntax": "**.selectByPosition**( *itemPos* : Integer )", "Params": [ [ - "reference", - "Variant", + "itemPos", + "Integer", "->" - ], + ] + ], + "Summary": "" + }, + "get selectedItemReferences()": { + "Syntax": "**.get selectedItemReferences**() : Collection", + "Params": [ [ "", - "cs.ui.groupDelegate", + "Collection", "<-" ] ], "Summary": "" }, - "centerVertically()": { - "Syntax": "**.centerVertically**( *reference* : Text ) : cs.ui.groupDelegate", + "get selectedItemIndexes()": { + "Syntax": "**.get selectedItemIndexes**() : Collection", "Params": [ - [ - "reference", - "Text", - "->" - ], [ "", - "cs.ui.groupDelegate", + "Collection", "<-" ] ], "Summary": "" }, - "distributeLeftToRight()": { - "Syntax": "**.distributeLeftToRight**( *params* : Object ) : cs.ui.groupDelegate", + "findReference()": { + "Syntax": "**.findReference**( *itemText* : Text; *scope* : Integer ) : Integer", "Params": [ [ - "params", - "Object", + "itemText", + "Text", + "->" + ], + [ + "scope", + "Integer", "->" ], [ "", - "cs.ui.groupDelegate", + "Integer", "<-" ] ], "Summary": "" }, - "moveHorizontally()": { - "Syntax": "**.moveHorizontally**( *offset* : Integer )", + "findPosition()": { + "Syntax": "**.findPosition**( *itemText* : Text; *scope* : Integer ) : Integer", "Params": [ [ - "offset", + "itemText", + "Text", + "->" + ], + [ + "scope", "Integer", "->" + ], + [ + "", + "Integer", + "<-" ] ], "Summary": "" }, - "hide()": { - "Syntax": "**.hide**() : cs.ui.groupDelegate", + "get parent()": { + "Syntax": "**.get parent**() : Integer", "Params": [ [ "", - "cs.ui.groupDelegate", + "Integer", "<-" ] ], "Summary": "" }, - "moveVertically()": { - "Syntax": "**.moveVertically**( *offset* : Integer )", + "collapse()": { + "Syntax": "**.collapse**( *itemPos* : Integer )", "Params": [ [ - "offset", + "itemPos", "Integer", "->" ] ], "Summary": "" }, - "enable()": { - "Syntax": "**.enable**( *enabled* : Boolean ) : cs.ui.groupDelegate", + "get parameters()": { + "Syntax": "**.get parameters**() : Collection", "Params": [ - [ - "enabled", - "Boolean", - "->" - ], [ "", - "cs.ui.groupDelegate", + "Collection", "<-" ] ], "Summary": "" }, - "hiddenFromView()": { - "Syntax": "**.hiddenFromView**()", - "Params": [], - "Summary": "" - }, - "disable()": { - "Syntax": "**.disable**() : cs.ui.groupDelegate", + "get itemPosition()": { + "Syntax": "**.get itemPosition**() : Integer", "Params": [ [ "", - "cs.ui.groupDelegate", + "Integer", "<-" ] ], "Summary": "" }, - "alignRight()": { - "Syntax": "**.alignRight**( *reference* : Variant ) : cs.ui.groupDelegate", + "get itemIcon()": { + "Syntax": "**.get itemIcon**() : Picture", "Params": [ - [ - "reference", - "Variant", - "->" - ], [ "", - "cs.ui.groupDelegate", + "Picture", "<-" ] ], "Summary": "" }, - "set data()": { - "Syntax": "**.set data**( *data* : Variant )", + "get itemExpanded()": { + "Syntax": "**.get itemExpanded**() : Boolean", "Params": [ [ - "data", - "Variant", - "->" + "", + "Boolean", + "<-" ] ], "Summary": "" }, - "enclosingRect()": { - "Syntax": "**.enclosingRect**( *gap* : Integer ) : cs.ui.coord", + "getSublistByRef()": { + "Syntax": "**.getSublistByRef**( *ref* : Integer ) : Integer", "Params": [ [ - "gap", + "ref", "Integer", "->" ], [ "", - "cs.ui.coord", + "Integer", "<-" ] ], "Summary": "" }, - "center()": { - "Syntax": "**.center**( *horizontally* : Boolean; *vertically* : Boolean )", + "getSublist()": { + "Syntax": "**.getSublist**( *pos* : Integer ) : Integer", "Params": [ [ - "horizontally", - "Boolean", + "pos", + "Integer", "->" ], - [ - "vertically", - "Boolean", - "->" - ] - ], - "Summary": "" - }, - "get data()": { - "Syntax": "**.get data**() : Variant", - "Params": [ [ "", - "Variant", + "Integer", "<-" ] ], "Summary": "" }, - "belongsTo()": { - "Syntax": "**.belongsTo**( *widget* : Variant ) : Boolean", + "expand()": { + "Syntax": "**.expand**( *itemPos* : Integer )", "Params": [ [ - "widget", - "Variant", + "itemPos", + "Integer", "->" - ], - [ - "", - "Boolean", - "<-" ] ], "Summary": "" }, - "distributeRigthToLeft()": { - "Syntax": "**.distributeRigthToLeft**( *params* : Object ) : cs.ui.groupDelegate", + "set itemSublist()": { + "Syntax": "**.set itemSublist**( *sublist* : Integer )", "Params": [ [ - "params", - "Object", + "sublist", + "Integer", "->" - ], - [ - "", - "cs.ui.groupDelegate", - "<-" ] ], "Summary": "" }, - "add()": { - "Syntax": "**.add**( *member* : Variant ) : cs.ui.groupDelegate", + "get itemSublist()": { + "Syntax": "**.get itemSublist**() : Integer", "Params": [ - [ - "member", - "Variant", - "->" - ], [ "", - "cs.ui.groupDelegate", + "Integer", "<-" ] ], "Summary": "" }, - "members": { - "Syntax": "members : Collection" - } - }, - "inputDelegate": { - "getFilter()": { - "Syntax": "**.getFilter**() : Text", + "get itemRef()": { + "Syntax": "**.get itemRef**() : Integer", "Params": [ [ "", - "Text", + "Integer", "<-" ] ], "Summary": "" }, - "setFilter()": { - "Syntax": "**.setFilter**( *filter* : Variant; *separator* : Text ) : cs.ui.inputDelegate", + "get expandable()": { + "Syntax": "**.get expandable**() : Boolean", "Params": [ - [ - "filter", - "Variant", - "->" - ], - [ - "separator", - "Text", - "->" - ], [ "", - "cs.ui.inputDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "highlightingEnd()": { - "Syntax": "**.highlightingEnd**() : Integer", + "get selected()": { + "Syntax": "**.get selected**() : Collection", "Params": [ [ "", - "Integer", + "Collection", "<-" ] ], "Summary": "" }, - "highlightingStart()": { - "Syntax": "**.highlightingStart**() : Integer", + "get itemValue()": { + "Syntax": "**.get itemValue**() : Text", "Params": [ [ "", - "Integer", + "Text", "<-" ] ], "Summary": "" }, - "highlighted()": { - "Syntax": "**.highlighted**() : Object", + "getItemPositionByRef()": { + "Syntax": "**.getItemPositionByRef**( *itemRef* : Integer ) : Integer", "Params": [ + [ + "itemRef", + "Integer", + "->" + ], [ "", - "Object", + "Integer", "<-" ] ], "Summary": "" }, - "set dictionary()": { - "Syntax": "**.set dictionary**( *dictionary* : Variant )", + "collapseAll()": { + "Syntax": "**.collapseAll**( *keep* : Boolean )", "Params": [ [ - "dictionary", - "Variant", + "keep", + "Boolean", "->" ] ], "Summary": "" }, - "setPlaceholder()": { - "Syntax": "**.setPlaceholder**( *placeholder* : Text ) : cs.ui.inputDelegate", - "Params": [ - [ - "placeholder", - "Text", - "->" - ], - [ - "", - "cs.ui.inputDelegate", - "<-" - ] - ], - "Summary": "" - }, - "set placeholder()": { - "Syntax": "**.set placeholder**( *placeholder* : Text )", + "set itemExpanded()": { + "Syntax": "**.set itemExpanded**( *expanded* : Boolean )", "Params": [ [ - "placeholder", - "Text", + "expanded", + "Boolean", "->" ] ], "Summary": "" }, - "highlightLastToEnd()": { - "Syntax": "**.highlightLastToEnd**() : cs.ui.inputDelegate", + "create()": { + "Syntax": "**.create**() : Integer", "Params": [ [ "", - "cs.ui.inputDelegate", + "Integer", "<-" ] ], "Summary": "" }, - "get modified()": { - "Syntax": "**.get modified**() : Boolean", + "get collapsable()": { + "Syntax": "**.get collapsable**() : Boolean", "Params": [ [ "", @@ -5605,591 +5685,554 @@ ], "Summary": "" }, - "backup()": { - "Syntax": "**.backup**( *value* : Variant ) : cs.ui.inputDelegate", + "insert()": { + "Syntax": "**.insert**( *itemText* : Text; *itemRef* : Integer; *sublist* : Integer; *expanded* : Boolean; *beforeItemRef* : Integer )", "Params": [ [ - "value", - "Variant", + "itemText", + "Text", "->" ], [ - "", - "cs.ui.inputDelegate", - "<-" + "itemRef", + "Integer", + "->" + ], + [ + "sublist", + "Integer", + "->" + ], + [ + "expanded", + "Boolean", + "->" + ], + [ + "beforeItemRef", + "Integer", + "->" ] ], "Summary": "" }, - "get dictionary()": { - "Syntax": "**.get dictionary**() : Object", + "set properties()": { + "Syntax": "**.set properties**( *properties* : Object )", "Params": [ [ - "", + "properties", "Object", - "<-" + "->" ] ], "Summary": "" }, - "set filter()": { - "Syntax": "**.set filter**( *filter* : Variant )", + "append()": { + "Syntax": "**.append**( *itemText* : Text; *itemRef* : Integer; *sublist* : Integer; *expanded* : Boolean )", "Params": [ [ - "filter", - "Variant", + "itemText", + "Text", "->" - ] - ], - "Summary": "" - }, - "highlight()": { - "Syntax": "**.highlight**( *startSel* : Integer; *endSel* : Integer ) : cs.ui.inputDelegate", - "Params": [ + ], [ - "startSel", + "itemRef", "Integer", "->" ], [ - "endSel", + "sublist", "Integer", "->" ], [ - "", - "cs.ui.inputDelegate", - "<-" + "expanded", + "Boolean", + "->" ] ], "Summary": "" }, - "get placeholder()": { - "Syntax": "**.get placeholder**() : Text", + "clear()": { + "Syntax": "**.clear**( *keepSubLists* : Boolean )", "Params": [ [ - "", - "Text", - "<-" + "keepSubLists", + "Boolean", + "->" ] ], "Summary": "" }, - "get filter()": { - "Syntax": "**.get filter**() : Text", + "get visibleItemCount()": { + "Syntax": "**.get visibleItemCount**() : Integer", "Params": [ [ "", - "Text", + "Integer", "<-" ] ], "Summary": "" }, - "get asPassword()": { - "Syntax": "**.get asPassword**() : Boolean", + "get selectedReferences()": { + "Syntax": "**.get selectedReferences**() : Collection", "Params": [ [ "", - "Boolean", + "Collection", "<-" ] ], "Summary": "" }, - "set asPassword()": { - "Syntax": "**.set asPassword**( *password* : Boolean )", - "Params": [ - [ - "password", - "Boolean", - "->" - ] - ], + "selectAll()": { + "Syntax": "**.selectAll**()", + "Params": [], "Summary": "" }, - "_inheritedFrom_": "widgetDelegate" - }, - "buttonDelegate": { - "highlightShortcut()": { - "Syntax": "**.highlightShortcut**() : cs.ui.buttonDelegate", + "get itemCount()": { + "Syntax": "**.get itemCount**() : Integer", "Params": [ [ "", - "cs.ui.buttonDelegate", + "Integer", "<-" ] ], "Summary": "" }, - "setStyle()": { - "Syntax": "**.setStyle**( *style* : Integer ) : cs.ui.buttonDelegate", + "set itemRef()": { + "Syntax": "**.set itemRef**( *îtemRef* : Integer )", "Params": [ [ - "style", + "îtemRef", "Integer", "->" - ], - [ - "", - "cs.ui.buttonDelegate", - "<-" ] ], "Summary": "" }, - "set horizontalMargin()": { - "Syntax": "**.set horizontalMargin**( *pixels* : Integer ) : cs.ui.buttonDelegate", + "get properties()": { + "Syntax": "**.get properties**() : Object", "Params": [ - [ - "pixels", - "Integer", - "->" - ], [ "", - "cs.ui.buttonDelegate", + "Object", "<-" ] ], "Summary": "" }, - "get style()": { - "Syntax": "**.get style**() : Integer", + "clone()": { + "Syntax": "**.clone**() : cs.ui.hListDelegate", "Params": [ [ "", - "Integer", + "cs.ui.hListDelegate", "<-" ] ], "Summary": "" }, - "set numStates()": { - "Syntax": "**.set numStates**( *states* : Integer )", + "set itemValue()": { + "Syntax": "**.set itemValue**( *value* : Text )", "Params": [ [ - "states", - "Integer", + "value", + "Text", "->" ] ], "Summary": "" }, - "get numStates()": { - "Syntax": "**.get numStates**() : Integer", + "get isList()": { + "Syntax": "**.get isList**() : Boolean", "Params": [ [ "", - "Integer", + "Boolean", "<-" ] ], "Summary": "" }, - "is3DButton()": { - "Syntax": "**.is3DButton**( *message* : Text ) : Boolean", + "set itemIcon()": { + "Syntax": "**.set itemIcon**( *icon* : Picture )", "Params": [ [ - "message", - "Text", + "icon", + "Picture", "->" - ], - [ - "", - "Boolean", - "<-" ] ], "Summary": "" }, - "set style()": { - "Syntax": "**.set style**( *style* : Integer )", + "expandAll()": { + "Syntax": "**.expandAll**()", + "Params": [], + "Summary": "" + }, + "selectByReference()": { + "Syntax": "**.selectByReference**( *itemRef* : Integer )", "Params": [ [ - "style", + "itemRef", "Integer", "->" ] ], "Summary": "" }, - "set backgroundPicture()": { - "Syntax": "**.set backgroundPicture**( *proxy* : Text )", + "copy()": { + "Syntax": "**.copy**() : cs.ui.hListDelegate", "Params": [ [ - "proxy", - "Text", - "->" + "", + "cs.ui.hListDelegate", + "<-" ] ], "Summary": "" }, - "setNumStates()": { - "Syntax": "**.setNumStates**( *states* : Integer ) : cs.ui.buttonDelegate", + "_inheritedFrom_": "scrollableDelegate" + }, + "groupDelegate": { + "setFontStyle()": { + "Syntax": "**.setFontStyle**( *style* : Integer ) : cs.ui.groupDelegate", "Params": [ [ - "states", + "style", "Integer", "->" ], [ "", - "cs.ui.buttonDelegate", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "setPicture()": { - "Syntax": "**.setPicture**( *proxy* : Text ) : cs.ui.buttonDelegate", + "show()": { + "Syntax": "**.show**( *visible* : Boolean ) : cs.ui.groupDelegate", "Params": [ [ - "proxy", - "Text", + "visible", + "Boolean", "->" ], [ "", - "cs.ui.buttonDelegate", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "setBackgroundPicture()": { - "Syntax": "**.setBackgroundPicture**( *proxy* : Text ) : cs.ui.buttonDelegate", + "alignLeft()": { + "Syntax": "**.alignLeft**( *reference* : Variant ) : cs.ui.groupDelegate", "Params": [ [ - "proxy", - "Text", + "reference", + "Variant", "->" ], [ "", - "cs.ui.buttonDelegate", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "get styleName()": { - "Syntax": "**.get styleName**() : Text", + "centerVertically()": { + "Syntax": "**.centerVertically**( *reference* : Text ) : cs.ui.groupDelegate", "Params": [ [ - "", + "reference", "Text", + "->" + ], + [ + "", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "get linkedPopupMenu()": { - "Syntax": "**.get linkedPopupMenu**() : Boolean", + "distributeLeftToRight()": { + "Syntax": "**.distributeLeftToRight**( *params* : Object ) : cs.ui.groupDelegate", "Params": [ [ - "", - "Boolean", - "<-" - ] - ], - "Summary": "" - }, - "setNoPopupMenu()": { - "Syntax": "**.setNoPopupMenu**() : cs.ui.buttonDelegate", - "Params": [ + "params", + "Object", + "->" + ], [ "", - "cs.ui.buttonDelegate", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "set picture()": { - "Syntax": "**.set picture**( *proxy* : Text )", - "Params": [ - [ - "proxy", - "Text", - "->" - ] - ], - "Summary": "" - }, - "get horizontalMargin()": { - "Syntax": "**.get horizontalMargin**() : Integer", + "moveHorizontally()": { + "Syntax": "**.moveHorizontally**( *offset* : Integer )", "Params": [ [ - "", + "offset", "Integer", - "<-" + "->" ] ], "Summary": "" }, - "setSeparatePopupMenu()": { - "Syntax": "**.setSeparatePopupMenu**() : cs.ui.buttonDelegate", + "hide()": { + "Syntax": "**.hide**() : cs.ui.groupDelegate", "Params": [ [ "", - "cs.ui.buttonDelegate", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "setLinkedPopupMenu()": { - "Syntax": "**.setLinkedPopupMenu**() : cs.ui.buttonDelegate", + "moveVertically()": { + "Syntax": "**.moveVertically**( *offset* : Integer )", "Params": [ [ - "", - "cs.ui.buttonDelegate", - "<-" + "offset", + "Integer", + "->" ] ], "Summary": "" }, - "set linkedPopupMenu()": { - "Syntax": "**.set linkedPopupMenu**( *linked* : Boolean )", + "enable()": { + "Syntax": "**.enable**( *enabled* : Boolean ) : cs.ui.groupDelegate", "Params": [ [ - "linked", + "enabled", "Boolean", "->" + ], + [ + "", + "cs.ui.groupDelegate", + "<-" ] ], "Summary": "" }, - "_inheritedFrom_": "widgetDelegate" - }, - "stepperDelegate": { - "stop()": { - "Syntax": "**.stop**()", + "hiddenFromView()": { + "Syntax": "**.hiddenFromView**()", "Params": [], "Summary": "" }, - "isRunning()": { - "Syntax": "**.isRunning**() : Boolean", + "disable()": { + "Syntax": "**.disable**() : cs.ui.groupDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "start()": { - "Syntax": "**.start**()", - "Params": [], - "Summary": "" - }, - "_inheritedFrom_": "widgetDelegate" - }, - "hListDelegate": { - "unselect()": { - "Syntax": "**.unselect**()", - "Params": [], - "Summary": "" - }, - "selectByPosition()": { - "Syntax": "**.selectByPosition**( *itemPos* : Integer )", + "alignRight()": { + "Syntax": "**.alignRight**( *reference* : Variant ) : cs.ui.groupDelegate", "Params": [ [ - "itemPos", - "Integer", + "reference", + "Variant", "->" - ] - ], - "Summary": "" - }, - "get selectedItemReferences()": { - "Syntax": "**.get selectedItemReferences**() : Collection", - "Params": [ + ], [ "", - "Collection", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "get selectedItemIndexes()": { - "Syntax": "**.get selectedItemIndexes**() : Collection", + "set data()": { + "Syntax": "**.set data**( *data* : Variant )", "Params": [ [ - "", - "Collection", - "<-" + "data", + "Variant", + "->" ] ], "Summary": "" }, - "findReference()": { - "Syntax": "**.findReference**( *itemText* : Text; *scope* : Integer ) : Integer", + "enclosingRect()": { + "Syntax": "**.enclosingRect**( *gap* : Integer ) : cs.ui.coord", "Params": [ [ - "itemText", - "Text", - "->" - ], - [ - "scope", + "gap", "Integer", "->" ], [ "", - "Integer", + "cs.ui.coord", "<-" ] ], "Summary": "" }, - "findPosition()": { - "Syntax": "**.findPosition**( *itemText* : Text; *scope* : Integer ) : Integer", + "center()": { + "Syntax": "**.center**( *horizontally* : Boolean; *vertically* : Boolean )", "Params": [ [ - "itemText", - "Text", + "horizontally", + "Boolean", "->" ], [ - "scope", - "Integer", + "vertically", + "Boolean", "->" - ], - [ - "", - "Integer", - "<-" ] ], "Summary": "" }, - "get parent()": { - "Syntax": "**.get parent**() : Integer", + "get data()": { + "Syntax": "**.get data**() : Variant", "Params": [ [ "", - "Integer", + "Variant", "<-" ] ], "Summary": "" }, - "collapse()": { - "Syntax": "**.collapse**( *itemPos* : Integer )", + "belongsTo()": { + "Syntax": "**.belongsTo**( *widget* : Variant ) : Boolean", "Params": [ [ - "itemPos", - "Integer", + "widget", + "Variant", "->" - ] - ], - "Summary": "" - }, - "get parameters()": { - "Syntax": "**.get parameters**() : Collection", - "Params": [ + ], [ "", - "Collection", + "Boolean", "<-" ] ], "Summary": "" }, - "get itemPosition()": { - "Syntax": "**.get itemPosition**() : Integer", + "distributeRigthToLeft()": { + "Syntax": "**.distributeRigthToLeft**( *params* : Object ) : cs.ui.groupDelegate", "Params": [ + [ + "params", + "Object", + "->" + ], [ "", - "Integer", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "get itemIcon()": { - "Syntax": "**.get itemIcon**() : Picture", + "add()": { + "Syntax": "**.add**( *member* : Variant ) : cs.ui.groupDelegate", "Params": [ + [ + "member", + "Variant", + "->" + ], [ "", - "Picture", + "cs.ui.groupDelegate", "<-" ] ], "Summary": "" }, - "get itemExpanded()": { - "Syntax": "**.get itemExpanded**() : Boolean", + "members": { + "Syntax": "members : Collection" + } + }, + "buttonDelegate": { + "highlightShortcut()": { + "Syntax": "**.highlightShortcut**() : cs.ui.buttonDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.buttonDelegate", "<-" ] ], "Summary": "" }, - "getSublistByRef()": { - "Syntax": "**.getSublistByRef**( *ref* : Integer ) : Integer", + "setStyle()": { + "Syntax": "**.setStyle**( *style* : Integer ) : cs.ui.buttonDelegate", "Params": [ [ - "ref", + "style", "Integer", "->" ], [ "", - "Integer", + "cs.ui.buttonDelegate", "<-" ] ], "Summary": "" }, - "getSublist()": { - "Syntax": "**.getSublist**( *pos* : Integer ) : Integer", + "set horizontalMargin()": { + "Syntax": "**.set horizontalMargin**( *pixels* : Integer ) : cs.ui.buttonDelegate", "Params": [ [ - "pos", + "pixels", "Integer", "->" ], [ "", - "Integer", + "cs.ui.buttonDelegate", "<-" ] ], "Summary": "" }, - "expand()": { - "Syntax": "**.expand**( *itemPos* : Integer )", + "get style()": { + "Syntax": "**.get style**() : Integer", "Params": [ [ - "itemPos", + "", "Integer", - "->" + "<-" ] ], "Summary": "" }, - "set itemSublist()": { - "Syntax": "**.set itemSublist**( *sublist* : Integer )", + "set numStates()": { + "Syntax": "**.set numStates**( *states* : Integer )", "Params": [ [ - "sublist", + "states", "Integer", "->" ] ], "Summary": "" }, - "get itemSublist()": { - "Syntax": "**.get itemSublist**() : Integer", + "get numStates()": { + "Syntax": "**.get numStates**() : Integer", "Params": [ [ "", @@ -6199,218 +6242,228 @@ ], "Summary": "" }, - "get itemRef()": { - "Syntax": "**.get itemRef**() : Integer", + "is3DButton()": { + "Syntax": "**.is3DButton**( *message* : Text ) : Boolean", "Params": [ + [ + "message", + "Text", + "->" + ], [ "", - "Integer", + "Boolean", "<-" ] ], "Summary": "" }, - "get expandable()": { - "Syntax": "**.get expandable**() : Boolean", + "set style()": { + "Syntax": "**.set style**( *style* : Integer )", "Params": [ [ - "", - "Boolean", - "<-" + "style", + "Integer", + "->" ] ], "Summary": "" }, - "get selected()": { - "Syntax": "**.get selected**() : Collection", + "set backgroundPicture()": { + "Syntax": "**.set backgroundPicture**( *proxy* : Text )", "Params": [ [ - "", - "Collection", - "<-" + "proxy", + "Text", + "->" ] ], "Summary": "" }, - "get itemValue()": { - "Syntax": "**.get itemValue**() : Text", + "setNumStates()": { + "Syntax": "**.setNumStates**( *states* : Integer ) : cs.ui.buttonDelegate", "Params": [ + [ + "states", + "Integer", + "->" + ], [ "", - "Text", + "cs.ui.buttonDelegate", "<-" ] ], "Summary": "" }, - "getItemPositionByRef()": { - "Syntax": "**.getItemPositionByRef**( *itemRef* : Integer ) : Integer", + "setPicture()": { + "Syntax": "**.setPicture**( *proxy* : Text ) : cs.ui.buttonDelegate", "Params": [ [ - "itemRef", - "Integer", + "proxy", + "Text", "->" ], [ "", - "Integer", + "cs.ui.buttonDelegate", "<-" ] ], "Summary": "" }, - "collapseAll()": { - "Syntax": "**.collapseAll**( *keep* : Boolean )", + "setBackgroundPicture()": { + "Syntax": "**.setBackgroundPicture**( *proxy* : Text ) : cs.ui.buttonDelegate", "Params": [ [ - "keep", - "Boolean", + "proxy", + "Text", "->" + ], + [ + "", + "cs.ui.buttonDelegate", + "<-" ] ], "Summary": "" }, - "set itemExpanded()": { - "Syntax": "**.set itemExpanded**( *expanded* : Boolean )", + "get styleName()": { + "Syntax": "**.get styleName**() : Text", "Params": [ [ - "expanded", - "Boolean", - "->" + "", + "Text", + "<-" ] ], "Summary": "" }, - "create()": { - "Syntax": "**.create**() : Integer", + "get linkedPopupMenu()": { + "Syntax": "**.get linkedPopupMenu**() : Boolean", "Params": [ [ "", - "Integer", + "Boolean", "<-" ] ], "Summary": "" }, - "get collapsable()": { - "Syntax": "**.get collapsable**() : Boolean", + "setNoPopupMenu()": { + "Syntax": "**.setNoPopupMenu**() : cs.ui.buttonDelegate", "Params": [ [ "", - "Boolean", + "cs.ui.buttonDelegate", "<-" ] ], "Summary": "" }, - "insert()": { - "Syntax": "**.insert**( *itemText* : Text; *itemRef* : Integer; *sublist* : Integer; *expanded* : Boolean; *beforeItemRef* : Integer )", + "set picture()": { + "Syntax": "**.set picture**( *proxy* : Text )", "Params": [ [ - "itemText", + "proxy", "Text", "->" - ], - [ - "itemRef", - "Integer", - "->" - ], - [ - "sublist", - "Integer", - "->" - ], - [ - "expanded", - "Boolean", - "->" - ], + ] + ], + "Summary": "" + }, + "get horizontalMargin()": { + "Syntax": "**.get horizontalMargin**() : Integer", + "Params": [ [ - "beforeItemRef", + "", "Integer", - "->" + "<-" ] ], "Summary": "" }, - "set properties()": { - "Syntax": "**.set properties**( *properties* : Object )", + "setSeparatePopupMenu()": { + "Syntax": "**.setSeparatePopupMenu**() : cs.ui.buttonDelegate", "Params": [ [ - "properties", - "Object", - "->" + "", + "cs.ui.buttonDelegate", + "<-" ] ], "Summary": "" }, - "append()": { - "Syntax": "**.append**( *itemText* : Text; *itemRef* : Integer; *sublist* : Integer; *expanded* : Boolean )", + "setLinkedPopupMenu()": { + "Syntax": "**.setLinkedPopupMenu**() : cs.ui.buttonDelegate", "Params": [ [ - "itemText", - "Text", - "->" - ], - [ - "itemRef", - "Integer", - "->" - ], - [ - "sublist", - "Integer", - "->" - ], + "", + "cs.ui.buttonDelegate", + "<-" + ] + ], + "Summary": "" + }, + "set linkedPopupMenu()": { + "Syntax": "**.set linkedPopupMenu**( *linked* : Boolean )", + "Params": [ [ - "expanded", + "linked", "Boolean", "->" ] ], "Summary": "" }, - "clear()": { - "Syntax": "**.clear**( *keepSubLists* : Boolean )", + "_inheritedFrom_": "widgetDelegate" + }, + "inputDelegate": { + "set autoSpellcheck()": { + "Syntax": "**.set autoSpellcheck**( *enabled* : Boolean )", "Params": [ [ - "keepSubLists", + "enabled", "Boolean", "->" ] ], "Summary": "" }, - "get visibleItemCount()": { - "Syntax": "**.get visibleItemCount**() : Integer", + "getFilter()": { + "Syntax": "**.getFilter**() : Text", "Params": [ [ "", - "Integer", + "Text", "<-" ] ], "Summary": "" }, - "get selectedReferences()": { - "Syntax": "**.get selectedReferences**() : Collection", + "setFilter()": { + "Syntax": "**.setFilter**( *filter* : Variant; *separator* : Text ) : cs.ui.inputDelegate", "Params": [ + [ + "filter", + "Variant", + "->" + ], + [ + "separator", + "Text", + "->" + ], [ "", - "Collection", + "cs.ui.inputDelegate", "<-" ] ], "Summary": "" }, - "selectAll()": { - "Syntax": "**.selectAll**()", - "Params": [], - "Summary": "" - }, - "get itemCount()": { - "Syntax": "**.get itemCount**() : Integer", + "highlightingEnd()": { + "Syntax": "**.highlightingEnd**() : Integer", "Params": [ [ "", @@ -6420,19 +6473,19 @@ ], "Summary": "" }, - "set itemRef()": { - "Syntax": "**.set itemRef**( *îtemRef* : Integer )", + "highlightingStart()": { + "Syntax": "**.highlightingStart**() : Integer", "Params": [ [ - "îtemRef", + "", "Integer", - "->" + "<-" ] ], "Summary": "" }, - "get properties()": { - "Syntax": "**.get properties**() : Object", + "highlighted()": { + "Syntax": "**.highlighted**() : Object", "Params": [ [ "", @@ -6442,83 +6495,186 @@ ], "Summary": "" }, - "clone()": { - "Syntax": "**.clone**() : cs.ui.hListDelegate", + "set dictionary()": { + "Syntax": "**.set dictionary**( *dictionary* : Variant )", "Params": [ [ - "", - "cs.ui.hListDelegate", - "<-" + "dictionary", + "Variant", + "->" ] ], "Summary": "" }, - "set itemValue()": { - "Syntax": "**.set itemValue**( *value* : Text )", + "setPlaceholder()": { + "Syntax": "**.setPlaceholder**( *placeholder* : Text ) : cs.ui.inputDelegate", "Params": [ [ - "value", + "placeholder", "Text", "->" - ] - ], - "Summary": "" - }, - "get isList()": { - "Syntax": "**.get isList**() : Boolean", - "Params": [ + ], [ "", - "Boolean", + "cs.ui.inputDelegate", "<-" ] ], "Summary": "" }, - "set itemIcon()": { - "Syntax": "**.set itemIcon**( *icon* : Picture )", + "set placeholder()": { + "Syntax": "**.set placeholder**( *placeholder* : Text )", "Params": [ [ - "icon", - "Picture", + "placeholder", + "Text", "->" ] ], "Summary": "" }, - "expandAll()": { - "Syntax": "**.expandAll**()", - "Params": [], - "Summary": "" - }, - "selectByReference()": { - "Syntax": "**.selectByReference**( *itemRef* : Integer )", + "highlightLastToEnd()": { + "Syntax": "**.highlightLastToEnd**() : cs.ui.inputDelegate", "Params": [ [ - "itemRef", - "Integer", - "->" + "", + "cs.ui.inputDelegate", + "<-" ] ], "Summary": "" }, - "copy()": { - "Syntax": "**.copy**() : cs.ui.hListDelegate", + "get modified()": { + "Syntax": "**.get modified**() : Boolean", "Params": [ [ "", - "cs.ui.hListDelegate", + "Boolean", "<-" ] ], "Summary": "" }, - "_inheritedFrom_": "scrollableDelegate" - }, - "pictureDelegate": { - "superImposition()": { - "Syntax": "**.superImposition**( *file* : 4D.File; *horOffset* : Integer; *vertOffset* : Integer ) : cs.ui.pictureDelegate", - "Params": [ + "backup()": { + "Syntax": "**.backup**( *value* : Variant ) : cs.ui.inputDelegate", + "Params": [ + [ + "value", + "Variant", + "->" + ], + [ + "", + "cs.ui.inputDelegate", + "<-" + ] + ], + "Summary": "" + }, + "get dictionary()": { + "Syntax": "**.get dictionary**() : Object", + "Params": [ + [ + "", + "Object", + "<-" + ] + ], + "Summary": "" + }, + "get autoSpellcheck()": { + "Syntax": "**.get autoSpellcheck**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "set filter()": { + "Syntax": "**.set filter**( *filter* : Variant )", + "Params": [ + [ + "filter", + "Variant", + "->" + ] + ], + "Summary": "" + }, + "highlight()": { + "Syntax": "**.highlight**( *startSel* : Integer; *endSel* : Integer ) : cs.ui.inputDelegate", + "Params": [ + [ + "startSel", + "Integer", + "->" + ], + [ + "endSel", + "Integer", + "->" + ], + [ + "", + "cs.ui.inputDelegate", + "<-" + ] + ], + "Summary": "" + }, + "get placeholder()": { + "Syntax": "**.get placeholder**() : Text", + "Params": [ + [ + "", + "Text", + "<-" + ] + ], + "Summary": "" + }, + "get filter()": { + "Syntax": "**.get filter**() : Text", + "Params": [ + [ + "", + "Text", + "<-" + ] + ], + "Summary": "" + }, + "get asPassword()": { + "Syntax": "**.get asPassword**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "set asPassword()": { + "Syntax": "**.set asPassword**( *password* : Boolean )", + "Params": [ + [ + "password", + "Boolean", + "->" + ] + ], + "Summary": "" + }, + "_inheritedFrom_": "widgetDelegate" + }, + "pictureDelegate": { + "superImposition()": { + "Syntax": "**.superImposition**( *file* : 4D.File; *horOffset* : Integer; *vertOffset* : Integer ) : cs.ui.pictureDelegate", + "Params": [ [ "file", "4D.File", @@ -6742,7 +6898,7 @@ }, "xml": { "isReference()": { - "Syntax": "**.isReference**( *text* : Text )->response : Boolean", + "Syntax": "**.isReference**( *text* : Text ) : Boolean", "Params": [ [ "text", @@ -6750,7 +6906,7 @@ "->" ], [ - "response", + "", "Boolean", "<-" ] @@ -6758,7 +6914,7 @@ "Summary": "" }, "setValue()": { - "Syntax": "**.setValue**( *node* : Text; *value* : Variant; *inCDATA* : Boolean )->this : cs.ui.xml", + "Syntax": "**.setValue**( *node* : Text; *value* : Variant; *inCDATA* : Boolean ) : cs.ui.xml", "Params": [ [ "node", @@ -6776,28 +6932,7 @@ "->" ], [ - "this", - "cs.ui.xml", - "<-" - ] - ], - "Summary": "" - }, - "removeAttribute()": { - "Syntax": "**.removeAttribute**( *node* : Text; *attribute* : Text )->this : cs.ui.xml", - "Params": [ - [ - "node", - "Text", - "->" - ], - [ - "attribute", - "Text", - "->" - ], - [ - "this", + "", "cs.ui.xml", "<-" ] @@ -6857,6 +6992,22 @@ ], "Summary": "" }, + "setDeclaration()": { + "Syntax": "**.setDeclaration**( *encoding* : Text; *standalone* : Boolean )", + "Params": [ + [ + "encoding", + "Text", + "->" + ], + [ + "standalone", + "Boolean", + "->" + ] + ], + "Summary": "" + }, "getValue()": { "Syntax": "**.getValue**( *node* : Text )->value : Variant", "Params": [ @@ -6874,7 +7025,7 @@ "Summary": "" }, "remove()": { - "Syntax": "**.remove**( *node* : Text )->this : cs.ui.xml", + "Syntax": "**.remove**( *node* : Text ) : cs.ui.xml", "Params": [ [ "node", @@ -6882,7 +7033,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -6890,7 +7041,7 @@ "Summary": "" }, "toObject()": { - "Syntax": "**.toObject**( *withAdresses* : Boolean )->object : Object", + "Syntax": "**.toObject**( *withAdresses* : Boolean ) : Object", "Params": [ [ "withAdresses", @@ -6898,7 +7049,7 @@ "->" ], [ - "object", + "", "Object", "<-" ] @@ -6927,7 +7078,7 @@ "Summary": "" }, "parse()": { - "Syntax": "**.parse**( *source* : Variant; *validate* : Boolean; *schema* : Text )->this : cs.ui.xml", + "Syntax": "**.parse**( *source* : Variant; *validate* : Boolean; *schema* : Text ) : cs.ui.xml", "Params": [ [ "source", @@ -6945,7 +7096,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7015,6 +7166,90 @@ ], "Summary": "" }, + "comment()": { + "Syntax": "**.comment**( *target* : Text; *comment* : Text )->node : Text", + "Params": [ + [ + "target", + "Text", + "->" + ], + [ + "comment", + "Text", + "->" + ], + [ + "node", + "Text", + "<-" + ] + ], + "Summary": "" + }, + "setName()": { + "Syntax": "**.setName**( *node* : Text; *name* : Text ) : cs.ui.xml", + "Params": [ + [ + "node", + "Text", + "->" + ], + [ + "name", + "Text", + "->" + ], + [ + "", + "cs.ui.xml", + "<-" + ] + ], + "Summary": "" + }, + "parent()": { + "Syntax": "**.parent**( *node* : Text; *name* : Text )->reference : Text", + "Params": [ + [ + "node", + "Text", + "->" + ], + [ + "name", + "Text", + "->" + ], + [ + "reference", + "Text", + "<-" + ] + ], + "Summary": "" + }, + "findOrCreate()": { + "Syntax": "**.findOrCreate**( *target* : Text; *value* : Text )->reference : Text", + "Params": [ + [ + "target", + "Text", + "->" + ], + [ + "value", + "Text", + "->" + ], + [ + "reference", + "Text", + "<-" + ] + ], + "Summary": "" + }, "append()": { "Syntax": "**.append**( *target* : Text; *source* : Text )->node : Text", "Params": [ @@ -7053,7 +7288,7 @@ "Summary": "" }, "isNull()": { - "Syntax": "**.isNull**( *reference* : Text )->response : Boolean", + "Syntax": "**.isNull**( *reference* : Text ) : Boolean", "Params": [ [ "reference", @@ -7061,7 +7296,7 @@ "->" ], [ - "response", + "", "Boolean", "<-" ] @@ -7148,7 +7383,7 @@ "Summary": "" }, "setOptions()": { - "Syntax": "**.setOptions**( *selector* : Integer; *value* : Integer )->this : cs.ui.xml", + "Syntax": "**.setOptions**( *selector* : Integer; *value* : Integer; *...* : Integer ) : cs.ui.xml", "Params": [ [ "selector", @@ -7161,7 +7396,12 @@ "->" ], [ - "this", + "", + "Integer", + "->" + ], + [ + "", "cs.ui.xml", "<-" ] @@ -7169,10 +7409,10 @@ "Summary": "" }, "close()": { - "Syntax": "**.close**()->this : cs.ui.xml", + "Syntax": "**.close**() : cs.ui.xml", "Params": [ [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7180,7 +7420,7 @@ "Summary": "" }, "setOption()": { - "Syntax": "**.setOption**( *selector* : Integer; *value* : Integer )->this : cs.ui.xml", + "Syntax": "**.setOption**( *selector* : Integer; *value* : Integer ) : cs.ui.xml", "Params": [ [ "selector", @@ -7193,7 +7433,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7238,7 +7478,7 @@ "Summary": "" }, "setAttributes()": { - "Syntax": "**.setAttributes**( *node* : Text; *attributes* : Variant; *value* : Variant )->this : cs.ui.xml", + "Syntax": "**.setAttributes**( *node* : Text; *attributes* : Variant; *value* : Variant ) : cs.ui.xml", "Params": [ [ "node", @@ -7256,7 +7496,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7264,7 +7504,7 @@ "Summary": "" }, "setAttribute()": { - "Syntax": "**.setAttribute**( *node* : Text; *name* : Text; *value* : Variant )->this : cs.ui.xml", + "Syntax": "**.setAttribute**( *node* : Text; *name* : Text; *value* : Variant ) : cs.ui.xml", "Params": [ [ "node", @@ -7282,7 +7522,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7336,22 +7576,48 @@ ], "Summary": "" }, - "insert()": { - "Syntax": "**.insert**( *target* : Text; *source* : Text; *index* : Integer )->node : Text", + "toList()": { + "Syntax": "**.toList**( *refPtr* : Pointer; *xpath* : Text; *root* : Text ) : Integer", "Params": [ [ - "target", - "Text", + "refPtr", + "Pointer", "->" ], [ - "source", + "xpath", "Text", "->" ], [ - "index", - "Integer", + "root", + "Text", + "->" + ], + [ + "", + "Integer", + "<-" + ] + ], + "Summary": "" + }, + "insert()": { + "Syntax": "**.insert**( *target* : Text; *source* : Text; *index* : Integer )->node : Text", + "Params": [ + [ + "target", + "Text", + "->" + ], + [ + "source", + "Text", + "->" + ], + [ + "index", + "Integer", "->" ], [ @@ -7378,8 +7644,34 @@ ], "Summary": "" }, + "newRef()": { + "Syntax": "**.newRef**( *root* : Text; *nameSpace* : Text; *...* : Text ) : cs.ui.xml", + "Params": [ + [ + "root", + "Text", + "->" + ], + [ + "nameSpace", + "Text", + "->" + ], + [ + "", + "Text", + "->" + ], + [ + "", + "cs.ui.xml", + "<-" + ] + ], + "Summary": "" + }, "open()": { - "Syntax": "**.open**( *file* : 4D.File; *validate* : Boolean; *schema* : Text )->this : cs.ui.xml", + "Syntax": "**.open**( *file* : 4D.File; *validate* : Boolean; *schema* : Text ) : cs.ui.xml", "Params": [ [ "file", @@ -7397,7 +7689,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7430,43 +7722,27 @@ ], "Summary": "" }, - "setName()": { - "Syntax": "**.setName**( *node* : Text; *name* : Text )->this : cs.ui.xml", + "load()": { + "Syntax": "**.load**( *source* : Variant; *validate* : Boolean; *schema* : Text ) : cs.ui.xml", "Params": [ [ - "node", - "Text", - "->" - ], - [ - "name", - "Text", + "source", + "Variant", "->" ], [ - "this", - "cs.ui.xml", - "<-" - ] - ], - "Summary": "" - }, - "parent()": { - "Syntax": "**.parent**( *node* : Text; *name* : Text )->reference : Text", - "Params": [ - [ - "node", - "Text", + "validate", + "Boolean", "->" ], [ - "name", + "schema", "Text", "->" ], [ - "reference", - "Text", + "", + "cs.ui.xml", "<-" ] ], @@ -7509,63 +7785,21 @@ ], "Summary": "" }, - "findOrCreate()": { - "Syntax": "**.findOrCreate**( *target* : Text; *value* : Text )->reference : Text", - "Params": [ - [ - "target", - "Text", - "->" - ], - [ - "value", - "Text", - "->" - ], - [ - "reference", - "Text", - "<-" - ] - ], - "Summary": "" - }, - "load()": { - "Syntax": "**.load**( *source* : Variant; *validate* : Boolean; *schema* : Text )->this : cs.ui.xml", + "removeAttribute()": { + "Syntax": "**.removeAttribute**( *node* : Text; *attribute* : Text ) : cs.ui.xml", "Params": [ [ - "source", - "Variant", - "->" - ], - [ - "validate", - "Boolean", - "->" - ], - [ - "schema", + "node", "Text", "->" ], [ - "this", - "cs.ui.xml", - "<-" - ] - ], - "Summary": "" - }, - "newRef()": { - "Syntax": "**.newRef**( *root* : Text )->this : cs.ui.xml", - "Params": [ - [ - "root", + "attribute", "Text", "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7573,7 +7807,7 @@ "Summary": "" }, "isNotNull()": { - "Syntax": "**.isNotNull**( *reference* : Text )->response : Boolean", + "Syntax": "**.isNotNull**( *reference* : Text ) : Boolean", "Params": [ [ "reference", @@ -7581,7 +7815,7 @@ "->" ], [ - "response", + "", "Boolean", "<-" ] @@ -7589,7 +7823,7 @@ "Summary": "" }, "save()": { - "Syntax": "**.save**( *file* : Variant; *keepStructure* : Boolean )->this : cs.ui.xml", + "Syntax": "**.save**( *file* : Variant; *keepStructure* : Boolean ) : cs.ui.xml", "Params": [ [ "file", @@ -7602,7 +7836,7 @@ "->" ], [ - "this", + "", "cs.ui.xml", "<-" ] @@ -7610,158 +7844,328 @@ "Summary": "" } }, - "colour": {}, - "menu": { - "fonts()": { - "Syntax": "**.fonts**( *withStyle* : Variant; *callback* : Text ) : cs.ui.menu", + "menuBar": { + "getMenuItemParameter()": { + "Syntax": "**.getMenuItemParameter**( *type* : Integer ) : Variant", "Params": [ [ - "withStyle", - "Variant", - "->" - ], - [ - "callback", - "Text", + "type", + "Integer", "->" ], [ "", - "cs.ui.menu", + "Variant", "<-" ] ], "Summary": "" }, - "popup()": { - "Syntax": "**.popup**( *where* : Variant; *x* : Variant; *y* : Integer ) : cs.ui.menu", + "menuSelected()": { + "Syntax": "**.menuSelected**() : Object", "Params": [ - [ - "where", - "Variant", - "->" - ], - [ - "x", - "Variant", - "->" - ], - [ - "y", - "Integer", - "->" - ], [ "", - "cs.ui.menu", + "Object", "<-" ] ], "Summary": "" }, - "getProperty()": { - "Syntax": "**.getProperty**( *property* : Text; *index* : Integer ) : Variant", + "disableItem()": { + "Syntax": "**.disableItem**( *item* : Text )", "Params": [ [ - "property", + "item", "Text", "->" - ], - [ - "index", - "Integer", - "->" - ], + ] + ], + "Summary": "" + }, + "defaultMinimalMenuBar()": { + "Syntax": "**.defaultMinimalMenuBar**() : cs.ui.menuBar", + "Params": [ [ "", - "Variant", + "cs.ui.menuBar", "<-" ] ], "Summary": "" }, - "isSeparatorItem()": { - "Syntax": "**.isSeparatorItem**( *item* : Integer ) : Boolean", + "enableItem()": { + "Syntax": "**.enableItem**( *item* : Text; *enabled* : Boolean )", "Params": [ [ "item", - "Integer", + "Text", "->" ], [ - "", + "enabled", "Boolean", - "<-" + "->" ] ], "Summary": "" }, - "item()": { - "Syntax": "**.item**( *item* : Variant; *ref* : Text ) : Object", + "update()": { + "Syntax": "**.update**( *index* : Integer; *menu* : cs.ui.menu ) : cs.ui.menuBar", "Params": [ [ - "item", - "Variant", + "index", + "Integer", "->" ], [ - "ref", - "Text", + "menu", + "cs.ui.menu", "->" ], [ "", - "Object", + "cs.ui.menuBar", "<-" ] ], "Summary": "" }, - "getData()": { - "Syntax": "**.getData**( *name* : Text; *ref* : Text ) : Variant", + "set()": { + "Syntax": "**.set**() : cs.ui.menuBar", "Params": [ - [ - "name", - "Text", - "->" - ], - [ - "ref", - "Text", - "->" - ], [ "", - "Variant", + "cs.ui.menuBar", "<-" ] ], "Summary": "" }, - "setStyle()": { - "Syntax": "**.setStyle**( *tyle* : Integer; *index* : Integer ) : cs.ui.menu", + "setHelpMenu()": { + "Syntax": "**.setHelpMenu**( *items* : Collection )", "Params": [ [ - "tyle", - "Integer", + "items", + "Collection", "->" - ], + ] + ], + "Summary": "" + }, + "populate()": { + "Syntax": "**.populate**( *menus* : Collection ) : cs.ui.menuBar", + "Params": [ [ - "index", - "Integer", + "menus", + "Collection", "->" ], [ "", - "cs.ui.menu", + "cs.ui.menuBar", "<-" ] ], "Summary": "" }, - "shortcut()": { - "Syntax": "**.shortcut**( *key* : Variant; *modifier* : Integer; *index* : Integer ) : cs.ui.menu", - "Params": [ + "_inheritedFrom_": "menu" + }, + "_DEMO_window_Controller": { + "onLoad()": { + "Syntax": "**.onLoad**()", + "Params": [], + "Summary": "" + }, + "update()": { + "Syntax": "**.update**()", + "Params": [], + "Summary": "" + }, + "handleEvents()": { + "Syntax": "**.handleEvents**( *e* : cs.ui.evt )", + "Params": [ + [ + "e", + "cs.ui.evt", + "->" + ] + ], + "Summary": "" + }, + "init()": { + "Syntax": "**.init**()", + "Params": [], + "Summary": "" + }, + "cancel": { + "Syntax": "cancel : cs.ui.buttonDelegate" + }, + "ok": { + "Syntax": "ok : cs.ui.buttonDelegate" + }, + "pwd": { + "Syntax": "pwd : cs.ui.inputDelegate" + }, + "buttons": { + "Syntax": "buttons : cs.ui.groupDelegate" + }, + "form": { + "Syntax": "form : cs.ui.formDelegate" + } + }, + "colour": {}, + "menu": { + "fonts()": { + "Syntax": "**.fonts**( *withStyle* : Variant; *callback* : Text ) : cs.ui.menu", + "Params": [ + [ + "withStyle", + "Variant", + "->" + ], + [ + "callback", + "Text", + "->" + ], + [ + "", + "cs.ui.menu", + "<-" + ] + ], + "Summary": "" + }, + "popup()": { + "Syntax": "**.popup**( *where* : Variant; *x* : Variant; *y* : Integer ) : cs.ui.menu", + "Params": [ + [ + "where", + "Variant", + "->" + ], + [ + "x", + "Variant", + "->" + ], + [ + "y", + "Integer", + "->" + ], + [ + "", + "cs.ui.menu", + "<-" + ] + ], + "Summary": "" + }, + "getProperty()": { + "Syntax": "**.getProperty**( *property* : Text; *index* : Integer ) : Variant", + "Params": [ + [ + "property", + "Text", + "->" + ], + [ + "index", + "Integer", + "->" + ], + [ + "", + "Variant", + "<-" + ] + ], + "Summary": "" + }, + "isSeparatorItem()": { + "Syntax": "**.isSeparatorItem**( *item* : Integer ) : Boolean", + "Params": [ + [ + "item", + "Integer", + "->" + ], + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "item()": { + "Syntax": "**.item**( *item* : Variant; *ref* : Text ) : Object", + "Params": [ + [ + "item", + "Variant", + "->" + ], + [ + "ref", + "Text", + "->" + ], + [ + "", + "Object", + "<-" + ] + ], + "Summary": "" + }, + "getData()": { + "Syntax": "**.getData**( *name* : Text; *ref* : Text ) : Variant", + "Params": [ + [ + "name", + "Text", + "->" + ], + [ + "ref", + "Text", + "->" + ], + [ + "", + "Variant", + "<-" + ] + ], + "Summary": "" + }, + "setStyle()": { + "Syntax": "**.setStyle**( *tyle* : Integer; *index* : Integer ) : cs.ui.menu", + "Params": [ + [ + "tyle", + "Integer", + "->" + ], + [ + "index", + "Integer", + "->" + ], + [ + "", + "cs.ui.menu", + "<-" + ] + ], + "Summary": "" + }, + "shortcut()": { + "Syntax": "**.shortcut**( *key* : Variant; *modifier* : Integer; *index* : Integer ) : cs.ui.menu", + "Params": [ [ "key", "Variant", @@ -8198,239 +8602,64 @@ "Syntax": "data : Collection" } }, - "menuBar": { - "getMenuItemParameter()": { - "Syntax": "**.getMenuItemParameter**( *type* : Integer ) : Variant", + "selectorDelegate": { + "set current()": { + "Syntax": "**.set current**( *current* : Variant )", "Params": [ [ - "type", - "Integer", - "->" - ], - [ - "", + "current", "Variant", - "<-" + "->" ] ], "Summary": "" }, - "menuSelected()": { - "Syntax": "**.menuSelected**() : Object", + "select()": { + "Syntax": "**.select**( *element* : Variant )", "Params": [ [ - "", - "Object", - "<-" + "element", + "Variant", + "->" ] ], "Summary": "" }, - "disableItem()": { - "Syntax": "**.disableItem**( *item* : Text )", + "set index()": { + "Syntax": "**.set index**( *index* : Integer )", "Params": [ [ - "item", - "Text", + "index", + "Integer", "->" ] ], "Summary": "" }, - "defaultMinimalMenuBar()": { - "Syntax": "**.defaultMinimalMenuBar**() : cs.ui.menuBar", + "get current()": { + "Syntax": "**.get current**() : Text", "Params": [ [ "", - "cs.ui.menuBar", + "Text", "<-" ] ], "Summary": "" }, - "enableItem()": { - "Syntax": "**.enableItem**( *item* : Text; *enabled* : Boolean )", + "set binding()": { + "Syntax": "**.set binding**( *values* : Collection )", "Params": [ [ - "item", - "Text", - "->" - ], - [ - "enabled", - "Boolean", + "values", + "Collection", "->" ] ], "Summary": "" }, - "update()": { - "Syntax": "**.update**( *index* : Integer; *menu* : cs.ui.menu ) : cs.ui.menuBar", - "Params": [ - [ - "index", - "Integer", - "->" - ], - [ - "menu", - "cs.ui.menu", - "->" - ], - [ - "", - "cs.ui.menuBar", - "<-" - ] - ], - "Summary": "" - }, - "set()": { - "Syntax": "**.set**() : cs.ui.menuBar", - "Params": [ - [ - "", - "cs.ui.menuBar", - "<-" - ] - ], - "Summary": "" - }, - "setHelpMenu()": { - "Syntax": "**.setHelpMenu**( *items* : Collection )", - "Params": [ - [ - "items", - "Collection", - "->" - ] - ], - "Summary": "" - }, - "populate()": { - "Syntax": "**.populate**( *menus* : Collection ) : cs.ui.menuBar", - "Params": [ - [ - "menus", - "Collection", - "->" - ], - [ - "", - "cs.ui.menuBar", - "<-" - ] - ], - "Summary": "" - }, - "_inheritedFrom_": "menu" - }, - "_DEMO_window_Controller": { - "onLoad()": { - "Syntax": "**.onLoad**()", - "Params": [], - "Summary": "" - }, - "update()": { - "Syntax": "**.update**()", - "Params": [], - "Summary": "" - }, - "handleEvents()": { - "Syntax": "**.handleEvents**( *e* : cs.ui.evt )", - "Params": [ - [ - "e", - "cs.ui.evt", - "->" - ] - ], - "Summary": "" - }, - "init()": { - "Syntax": "**.init**()", - "Params": [], - "Summary": "" - }, - "cancel": { - "Syntax": "cancel : cs.ui.buttonDelegate" - }, - "ok": { - "Syntax": "ok : cs.ui.buttonDelegate" - }, - "pwd": { - "Syntax": "pwd : cs.ui.inputDelegate" - }, - "buttons": { - "Syntax": "buttons : cs.ui.groupDelegate" - }, - "form": { - "Syntax": "form : cs.ui.formDelegate" - } - }, - "selectorDelegate": { - "set current()": { - "Syntax": "**.set current**( *current* : Variant )", - "Params": [ - [ - "current", - "Variant", - "->" - ] - ], - "Summary": "" - }, - "select()": { - "Syntax": "**.select**( *element* : Variant ) : cs.ui.selectorDelegate", - "Params": [ - [ - "element", - "Variant", - "->" - ], - [ - "", - "cs.ui.selectorDelegate", - "<-" - ] - ], - "Summary": "" - }, - "set index()": { - "Syntax": "**.set index**( *index* : Integer )", - "Params": [ - [ - "index", - "Integer", - "->" - ] - ], - "Summary": "" - }, - "get current()": { - "Syntax": "**.get current**() : Text", - "Params": [ - [ - "", - "Text", - "<-" - ] - ], - "Summary": "" - }, - "set binding()": { - "Syntax": "**.set binding**( *values* : Collection )", - "Params": [ - [ - "values", - "Collection", - "->" - ] - ], - "Summary": "" - }, - "get values()": { - "Syntax": "**.get values**() : Collection", + "get values()": { + "Syntax": "**.get values**() : Collection", "Params": [ [ "", @@ -8508,17 +8737,6 @@ ], "Summary": "" }, - "getScrollPosition()": { - "Syntax": "**.getScrollPosition**() : Variant", - "Params": [ - [ - "", - "Variant", - "<-" - ] - ], - "Summary": "" - }, "setScrollPosition()": { "Syntax": "**.setScrollPosition**( *vertical* : Variant; *horizontal* : Variant ) : cs.ui.scrollableDelegate", "Params": [ @@ -8561,6 +8779,22 @@ ], "Summary": "" }, + "getScrollbars()": { + "Syntax": "**.getScrollbars**()", + "Params": [], + "Summary": "" + }, + "getScrollPosition()": { + "Syntax": "**.getScrollPosition**() : Variant", + "Params": [ + [ + "", + "Variant", + "<-" + ] + ], + "Summary": "" + }, "scrollbars": { "Syntax": "scrollbars : Object" }, @@ -8959,6 +9193,49 @@ "Summary": "" } }, + "_WINDOW_FRAME_Controller": { + "onLoad()": { + "Syntax": "**.onLoad**()", + "Params": [], + "Summary": "" + }, + "update()": { + "Syntax": "**.update**()", + "Params": [], + "Summary": "" + }, + "handleEvents()": { + "Syntax": "**.handleEvents**( *e* : cs.ui.evt )", + "Params": [ + [ + "e", + "cs.ui.evt", + "->" + ] + ], + "Summary": "" + }, + "init()": { + "Syntax": "**.init**()", + "Params": [], + "Summary": "" + }, + "close": { + "Syntax": "close : cs.ui.buttonDelegate" + }, + "reduce": { + "Syntax": "reduce : cs.ui.buttonDelegate" + }, + "miniMaxise": { + "Syntax": "miniMaxise : cs.ui.buttonDelegate" + }, + "drag": { + "Syntax": "drag : cs.ui.buttonDelegate" + }, + "form": { + "Syntax": "form : cs.ui.formDelegate" + } + }, "thermometerDelegate": { "stop()": { "Syntax": "**.stop**() : cs.ui.thermometerDelegate", @@ -9015,93 +9292,1079 @@ ], "Summary": "" }, - "isBarber()": { - "Syntax": "**.isBarber**() : Boolean", + "isBarber()": { + "Syntax": "**.isBarber**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "barber()": { + "Syntax": "**.barber**() : cs.ui.thermometerDelegate", + "Params": [ + [ + "", + "cs.ui.thermometerDelegate", + "<-" + ] + ], + "Summary": "" + }, + "isAsynchronous()": { + "Syntax": "**.isAsynchronous**() : Boolean", + "Params": [ + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "setIndicatorType()": { + "Syntax": "**.setIndicatorType**( *type* : Integer ) : cs.ui.thermometerDelegate", + "Params": [ + [ + "type", + "Integer", + "->" + ], + [ + "", + "cs.ui.thermometerDelegate", + "<-" + ] + ], + "Summary": "" + }, + "asynchronous()": { + "Syntax": "**.asynchronous**() : cs.ui.thermometerDelegate", + "Params": [ + [ + "", + "cs.ui.thermometerDelegate", + "<-" + ] + ], + "Summary": "" + }, + "_inheritedFrom_": "widgetDelegate" + }, + "tabControlDelegate": { + "set pageNumber()": { + "Syntax": "**.set pageNumber**( *page* : Integer )", + "Params": [ + [ + "page", + "Integer", + "->" + ] + ], + "Summary": "" + }, + "get pageNumber()": { + "Syntax": "**.get pageNumber**() : Integer", + "Params": [ + [ + "", + "Integer", + "<-" + ] + ], + "Summary": "" + }, + "data": { + "Syntax": "data : Object" + }, + "_inheritedFrom_": "widgetDelegate" + }, + "svg": { + "polarToCartesian()": { + "Syntax": "**.polarToCartesian**( *point* : Collection; *r* : Real; *degree* : Integer ) : Collection", + "Params": [ + [ + "point", + "Collection", + "->" + ], + [ + "r", + "Real", + "->" + ], + [ + "degree", + "Integer", + "->" + ], + [ + "", + "Collection", + "<-" + ] + ], + "Summary": "" + }, + "point()": { + "Syntax": "**.point**( *x* : Real; *y* : Real ) : Collection", + "Params": [ + [ + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], + [ + "", + "Collection", + "<-" + ] + ], + "Summary": "" + }, + "TextToPicture()": { + "Syntax": "**.TextToPicture**( *text* : Text; *attributes* : Object ) : Picture", + "Params": [ + [ + "text", + "Text", + "->" + ], + [ + "attributes", + "Object", + "->" + ], + [ + "", + "Picture", + "<-" + ] + ], + "Summary": "" + }, + "getTextWidth()": { + "Syntax": "**.getTextWidth**( *string* : Text; *fontAttributes* : Object )->width : Integer", + "Params": [ + [ + "string", + "Text", + "->" + ], + [ + "fontAttributes", + "Object", + "->" + ], + [ + "width", + "Integer", + "<-" + ] + ], + "Summary": "" + }, + "preview()": { + "Syntax": "**.preview**( *keepStructure* : Boolean )", + "Params": [ + [ + "keepStructure", + "Boolean", + "->" + ] + ], + "Summary": "" + }, + "isOfClass()": { + "Syntax": "**.isOfClass**( *class* : Text; *applyTo* : Variant ) : Boolean", + "Params": [ + [ + "class", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "addClass()": { + "Syntax": "**.addClass**( *class* : Text; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "class", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "hide()": { + "Syntax": "**.hide**( *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "show()": { + "Syntax": "**.show**( *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "radius()": { + "Syntax": "**.radius**( *radius* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "radius", + "Integer", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "plot()": { + "Syntax": "**.plot**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "points", + "Variant", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "moveHorizontally()": { + "Syntax": "**.moveHorizontally**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "x", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "size()": { + "Syntax": "**.size**( *width* : Real; *height* : Real; *unit* : Text ) : cs.ui.svg", + "Params": [ + [ + "width", + "Real", + "->" + ], + [ + "height", + "Real", + "->" + ], + [ + "unit", + "Text", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "fill()": { + "Syntax": "**.fill**( *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "value", + "Variant", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "position()": { + "Syntax": "**.position**( *x* : Real; *y* : Variant; *unit* : Text ) : cs.ui.svg", + "Params": [ + [ + "x", + "Real", + "->" + ], + [ + "y", + "Variant", + "->" + ], + [ + "unit", + "Text", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "stroke()": { + "Syntax": "**.stroke**( *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "value", + "Variant", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "opacity()": { + "Syntax": "**.opacity**( *opacity* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "opacity", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "push()": { + "Syntax": "**.push**( *name* : Text ) : cs.ui.svg", + "Params": [ + [ + "name", + "Text", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "c()": { + "Syntax": "**.c**( *x1* : Real; *y1* : Real; *x2* : Real; *y2* : Real; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "x1", + "Real", + "->" + ], + [ + "y1", + "Real", + "->" + ], + [ + "x2", + "Real", + "->" + ], + [ + "y2", + "Real", + "->" + ], + [ + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "fetch()": { + "Syntax": "**.fetch**( *name* : Text )->dom : Text", + "Params": [ + [ + "name", + "Text", + "->" + ], + [ + "dom", + "Text", + "<-" + ] + ], + "Summary": "" + }, + "textRendering()": { + "Syntax": "**.textRendering**( *rendering* : Text; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "rendering", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "strokeOpacity()": { + "Syntax": "**.strokeOpacity**( *opacity* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "opacity", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "cy()": { + "Syntax": "**.cy**( *cy* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "cy", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "m()": { + "Syntax": "**.m**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "points", + "Variant", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "color()": { + "Syntax": "**.color**( *color* : Text; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "color", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "strokeColor()": { + "Syntax": "**.strokeColor**( *color* : Text; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "color", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "fillOpacity()": { + "Syntax": "**.fillOpacity**( *opacity* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "opacity", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "rotate()": { + "Syntax": "**.rotate**( *angle* : Integer; *cx* : Variant; *cy* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "angle", + "Integer", + "->" + ], + [ + "cx", + "Variant", + "->" + ], + [ + "cy", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "H()": { + "Syntax": "**.H**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "x", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "preserveAspectRatio()": { + "Syntax": "**.preserveAspectRatio**( *value* : Text; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "value", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "fontSize()": { + "Syntax": "**.fontSize**( *size* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "size", + "Integer", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "height()": { + "Syntax": "**.height**( *height* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "height", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "with()": { + "Syntax": "**.with**( *name* : Text ) : Boolean", + "Params": [ + [ + "name", + "Text", + "->" + ], + [ + "", + "Boolean", + "<-" + ] + ], + "Summary": "" + }, + "alignment()": { + "Syntax": "**.alignment**( *alignment* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "alignment", + "Integer", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "font()": { + "Syntax": "**.font**( *attributes* : Object; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "attributes", + "Object", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "ry()": { + "Syntax": "**.ry**( *ry* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "ry", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "smoothCubicBezierCurveto()": { + "Syntax": "**.smoothCubicBezierCurveto**( *to* : Collection; *endCtrlPoint* : Collection; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "to", + "Collection", + "->" + ], + [ + "endCtrlPoint", + "Collection", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "r()": { + "Syntax": "**.r**( *r* : Real; *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "r", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "y()": { + "Syntax": "**.y**( *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ + [ + "y", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], [ "", - "Boolean", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "barber()": { - "Syntax": "**.barber**() : cs.ui.thermometerDelegate", + "moveVertically()": { + "Syntax": "**.moveVertically**( *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ + [ + "y", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], [ "", - "cs.ui.thermometerDelegate", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "isAsynchronous()": { - "Syntax": "**.isAsynchronous**() : Boolean", + "S()": { + "Syntax": "**.S**( *x2* : Real; *y2* : Real; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ + [ + "x2", + "Real", + "->" + ], + [ + "y2", + "Real", + "->" + ], + [ + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], [ "", - "Boolean", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "setIndicatorType()": { - "Syntax": "**.setIndicatorType**( *type* : Integer ) : cs.ui.thermometerDelegate", + "id()": { + "Syntax": "**.id**( *id* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "type", - "Integer", + "id", + "Text", + "->" + ], + [ + "applyTo", + "Variant", "->" ], [ "", - "cs.ui.thermometerDelegate", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "asynchronous()": { - "Syntax": "**.asynchronous**() : cs.ui.thermometerDelegate", + "symbol()": { + "Syntax": "**.symbol**( *name* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ + [ + "name", + "Text", + "->" + ], + [ + "applyTo", + "Variant", + "->" + ], [ "", - "cs.ui.thermometerDelegate", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "_inheritedFrom_": "widgetDelegate" - }, - "svg": { - "getTextWidth()": { - "Syntax": "**.getTextWidth**( *string* : Text; *fontAttributes* : Object )->width : Integer", + "textArea()": { + "Syntax": "**.textArea**( *text* : Text; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "string", + "text", "Text", "->" ], [ - "fontAttributes", - "Object", + "attachTo", + "Variant", "->" ], [ - "width", - "Integer", + "", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "hide()": { - "Syntax": "**.hide**( *applyTo* : Variant ) : cs.ui.svg", + "q()": { + "Syntax": "**.q**( *x1* : Real; *y1* : Real; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ + [ + "x1", + "Real", + "->" + ], + [ + "y1", + "Real", + "->" + ], + [ + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], [ "applyTo", "Variant", @@ -9115,11 +10378,11 @@ ], "Summary": "" }, - "radius()": { - "Syntax": "**.radius**( *radius* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "fontStyle()": { + "Syntax": "**.fontStyle**( *style* : Integer; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "radius", + "style", "Integer", "->" ], @@ -9136,16 +10399,16 @@ ], "Summary": "" }, - "plot()": { - "Syntax": "**.plot**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "use()": { + "Syntax": "**.use**( *symbol* : Variant; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "points", + "symbol", "Variant", "->" ], [ - "applyTo", + "attachTo", "Variant", "->" ], @@ -9157,16 +10420,21 @@ ], "Summary": "" }, - "moveVertically()": { - "Syntax": "**.moveVertically**( *y* : Real; *applyTo* : Variant ) : cs.ui.svg", + "rect()": { + "Syntax": "**.rect**( *width* : Variant; *height* : Real; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "y", + "width", + "Variant", + "->" + ], + [ + "height", "Real", "->" ], [ - "applyTo", + "attachTo", "Variant", "->" ], @@ -9178,22 +10446,17 @@ ], "Summary": "" }, - "size()": { - "Syntax": "**.size**( *width* : Real; *height* : Real; *unit* : Text ) : cs.ui.svg", + "verticalLineto()": { + "Syntax": "**.verticalLineto**( *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "width", - "Real", - "->" - ], - [ - "height", + "y", "Real", "->" ], [ - "unit", - "Text", + "applyTo", + "Variant", "->" ], [ @@ -9204,22 +10467,22 @@ ], "Summary": "" }, - "position()": { - "Syntax": "**.position**( *x* : Real; *y* : Variant; *unit* : Text ) : cs.ui.svg", + "setAttribute()": { + "Syntax": "**.setAttribute**( *name* : Text; *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "x", - "Real", + "name", + "Text", "->" ], [ - "y", + "value", "Variant", "->" ], [ - "unit", - "Text", + "applyTo", + "Variant", "->" ], [ @@ -9230,12 +10493,33 @@ ], "Summary": "" }, - "font()": { - "Syntax": "**.font**( *attributes* : Object; *applyTo* : Variant ) : cs.ui.svg", + "Z()": { + "Syntax": "**.Z**( *applyTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "applyTo", + "Variant", + "->" + ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "setAttributes()": { + "Syntax": "**.setAttributes**( *attributes* : Variant; *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ "attributes", - "Object", + "Variant", + "->" + ], + [ + "value", + "Variant", "->" ], [ @@ -9251,14 +10535,19 @@ ], "Summary": "" }, - "push()": { - "Syntax": "**.push**( *name* : Text ) : cs.ui.svg", + "path()": { + "Syntax": "**.path**( *data* : Text; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "name", + "data", "Text", "->" ], + [ + "attachTo", + "Variant", + "->" + ], [ "", "cs.ui.svg", @@ -9267,28 +10556,43 @@ ], "Summary": "" }, - "fetch()": { - "Syntax": "**.fetch**( *name* : Text )->dom : Text", + "closePath()": { + "Syntax": "**.closePath**( *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "name", - "Text", + "applyTo", + "Variant", "->" ], [ - "dom", - "Text", + "", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "textRendering()": { - "Syntax": "**.textRendering**( *rendering* : Text; *applyTo* : Variant ) : cs.ui.svg", + "viewbox()": { + "Syntax": "**.viewbox**( *left* : Variant; *top* : Real; *width* : Real; *height* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "rendering", - "Text", + "left", + "Variant", + "->" + ], + [ + "top", + "Real", + "->" + ], + [ + "width", + "Real", + "->" + ], + [ + "height", + "Real", "->" ], [ @@ -9304,12 +10608,17 @@ ], "Summary": "" }, - "color()": { - "Syntax": "**.color**( *color* : Text; *applyTo* : Variant ) : cs.ui.svg", + "T()": { + "Syntax": "**.T**( *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "color", - "Text", + "x", + "Real", + "->" + ], + [ + "y", + "Real", "->" ], [ @@ -9325,12 +10634,12 @@ ], "Summary": "" }, - "strokeColor()": { - "Syntax": "**.strokeColor**( *color* : Text; *applyTo* : Variant ) : cs.ui.svg", + "smoothQuadraticBezierCurveto()": { + "Syntax": "**.smoothQuadraticBezierCurveto**( *to* : Collection; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "color", - "Text", + "to", + "Collection", "->" ], [ @@ -9346,16 +10655,16 @@ ], "Summary": "" }, - "fontFamily()": { - "Syntax": "**.fontFamily**( *fonts* : Text; *applyTo* : Variant ) : cs.ui.svg", + "clone()": { + "Syntax": "**.clone**( *source* : Text; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "fonts", + "source", "Text", "->" ], [ - "applyTo", + "attachTo", "Variant", "->" ], @@ -9367,14 +10676,19 @@ ], "Summary": "" }, - "opacity()": { - "Syntax": "**.opacity**( *opacity* : Real; *applyTo* : Variant ) : cs.ui.svg", + "translate()": { + "Syntax": "**.translate**( *tx* : Real; *ty* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "opacity", + "tx", "Real", "->" ], + [ + "ty", + "Variant", + "->" + ], [ "applyTo", "Variant", @@ -9388,11 +10702,16 @@ ], "Summary": "" }, - "fillOpacity()": { - "Syntax": "**.fillOpacity**( *opacity* : Real; *applyTo* : Variant ) : cs.ui.svg", + "t()": { + "Syntax": "**.t**( *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "opacity", + "x", + "Real", + "->" + ], + [ + "y", "Real", "->" ], @@ -9409,33 +10728,37 @@ ], "Summary": "" }, - "style()": { - "Syntax": "**.style**( *tyle* : Text; *applyTo* : Variant ) : cs.ui.svg", + "C()": { + "Syntax": "**.C**( *x1* : Real; *y1* : Real; *x2* : Real; *y2* : Real; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "tyle", - "Text", + "x1", + "Real", "->" ], [ - "applyTo", - "Variant", + "y1", + "Real", "->" ], [ - "", - "cs.ui.svg", - "<-" - ] - ], - "Summary": "" - }, - "fillColor()": { - "Syntax": "**.fillColor**( *color* : Text; *applyTo* : Variant ) : cs.ui.svg", - "Params": [ + "x2", + "Real", + "->" + ], [ - "color", - "Text", + "y2", + "Real", + "->" + ], + [ + "x", + "Real", + "->" + ], + [ + "y", + "Real", "->" ], [ @@ -9451,27 +10774,16 @@ ], "Summary": "" }, - "preview()": { - "Syntax": "**.preview**( *keepStructure* : Boolean )", - "Params": [ - [ - "keepStructure", - "Boolean", - "->" - ] - ], - "Summary": "" - }, - "square()": { - "Syntax": "**.square**( *side* : Real; *attachTo* : Variant ) : cs.ui.svg", + "rx()": { + "Syntax": "**.rx**( *rx* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "side", + "rx", "Real", "->" ], [ - "attachTo", + "applyTo", "Variant", "->" ], @@ -9483,47 +10795,41 @@ ], "Summary": "" }, - "scale()": { - "Syntax": "**.scale**( *sx* : Real; *sy* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "a()": { + "Syntax": "**.a**( *rx* : Real; *ry* : Real; *rotation* : Real; *largeArcFlag* : Integer; *sweepFlag* : Integer; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "sx", + "rx", "Real", "->" ], [ - "sy", - "Variant", + "ry", + "Real", "->" ], [ - "applyTo", - "Variant", + "rotation", + "Real", "->" ], [ - "", - "cs.ui.svg", - "<-" - ] - ], - "Summary": "" - }, - "rotate()": { - "Syntax": "**.rotate**( *angle* : Integer; *cx* : Variant; *cy* : Real; *applyTo* : Variant ) : cs.ui.svg", - "Params": [ + "largeArcFlag", + "Integer", + "->" + ], [ - "angle", + "sweepFlag", "Integer", "->" ], [ - "cx", - "Variant", + "x", + "Real", "->" ], [ - "cy", + "y", "Real", "->" ], @@ -9540,16 +10846,16 @@ ], "Summary": "" }, - "clone()": { - "Syntax": "**.clone**( *source* : Text; *attachTo* : Variant ) : cs.ui.svg", + "h()": { + "Syntax": "**.h**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "source", - "Text", + "x", + "Real", "->" ], [ - "attachTo", + "applyTo", "Variant", "->" ], @@ -9561,17 +10867,17 @@ ], "Summary": "" }, - "translate()": { - "Syntax": "**.translate**( *tx* : Real; *ty* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "quadraticBezierCurveto()": { + "Syntax": "**.quadraticBezierCurveto**( *to* : Collection; *controlPoint* : Collection; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "tx", - "Real", + "to", + "Collection", "->" ], [ - "ty", - "Variant", + "controlPoint", + "Collection", "->" ], [ @@ -9587,37 +10893,37 @@ ], "Summary": "" }, - "getTextHeight()": { - "Syntax": "**.getTextHeight**( *string* : Text; *fontAttributes* : Object )->height : Integer", + "text()": { + "Syntax": "**.text**( *text* : Text; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "string", + "text", "Text", "->" ], [ - "fontAttributes", - "Object", + "attachTo", + "Variant", "->" ], [ - "height", - "Integer", + "", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "addClass()": { - "Syntax": "**.addClass**( *class* : Text; *applyTo* : Variant ) : cs.ui.svg", + "square()": { + "Syntax": "**.square**( *side* : Real; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "class", - "Text", + "side", + "Real", "->" ], [ - "applyTo", + "attachTo", "Variant", "->" ], @@ -9629,11 +10935,11 @@ ], "Summary": "" }, - "width()": { - "Syntax": "**.width**( *width* : Real; *applyTo* : Variant ) : cs.ui.svg", + "horizontalLineto()": { + "Syntax": "**.horizontalLineto**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "width", + "x", "Real", "->" ], @@ -9650,12 +10956,32 @@ ], "Summary": "" }, - "styleSheet()": { - "Syntax": "**.styleSheet**( *file* : 4D.File ) : cs.ui.svg", + "boundedEllipse()": { + "Syntax": "**.boundedEllipse**( *x* : Real; *y* : Real; *width* : Real; *height* : Real; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "file", - "4D.File", + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], + [ + "width", + "Real", + "->" + ], + [ + "height", + "Real", + "->" + ], + [ + "attachTo", + "Variant", "->" ], [ @@ -9666,16 +10992,16 @@ ], "Summary": "" }, - "textArea()": { - "Syntax": "**.textArea**( *text* : Text; *attachTo* : Variant ) : cs.ui.svg", + "l()": { + "Syntax": "**.l**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "text", - "Text", + "points", + "Variant", "->" ], [ - "attachTo", + "applyTo", "Variant", "->" ], @@ -9687,11 +11013,11 @@ ], "Summary": "" }, - "cx()": { - "Syntax": "**.cx**( *cx* : Real; *applyTo* : Variant ) : cs.ui.svg", + "width()": { + "Syntax": "**.width**( *width* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "cx", + "width", "Real", "->" ], @@ -9708,49 +11034,49 @@ ], "Summary": "" }, - "with()": { - "Syntax": "**.with**( *name* : Text ) : Boolean", + "lineTo()": { + "Syntax": "**.lineTo**( *point* : Collection; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "name", - "Text", + "point", + "Collection", + "->" + ], + [ + "applyTo", + "Variant", "->" ], [ "", - "Boolean", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "alignment()": { - "Syntax": "**.alignment**( *alignment* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "setText()": { + "Syntax": "**.setText**( *text* : Text; *applyTo* : Variant )", "Params": [ [ - "alignment", - "Integer", + "text", + "Text", "->" ], [ "applyTo", "Variant", "->" - ], - [ - "", - "cs.ui.svg", - "<-" ] ], "Summary": "" }, - "ry()": { - "Syntax": "**.ry**( *ry* : Real; *applyTo* : Variant ) : cs.ui.svg", + "removeClass()": { + "Syntax": "**.removeClass**( *class* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "ry", - "Real", + "class", + "Text", "->" ], [ @@ -9766,8 +11092,8 @@ ], "Summary": "" }, - "r()": { - "Syntax": "**.r**( *r* : Real; *applyTo* : Variant ) : cs.ui.svg", + "circle()": { + "Syntax": "**.circle**( *r* : Real; *cx* : Real; *cy* : Real; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ "r", @@ -9775,7 +11101,17 @@ "->" ], [ - "applyTo", + "cx", + "Real", + "->" + ], + [ + "cy", + "Real", + "->" + ], + [ + "attachTo", "Variant", "->" ], @@ -9787,12 +11123,12 @@ ], "Summary": "" }, - "y()": { - "Syntax": "**.y**( *y* : Real; *applyTo* : Variant ) : cs.ui.svg", + "M()": { + "Syntax": "**.M**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "y", - "Real", + "points", + "Variant", "->" ], [ @@ -9808,12 +11144,12 @@ ], "Summary": "" }, - "fontStyle()": { - "Syntax": "**.fontStyle**( *style* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "visible()": { + "Syntax": "**.visible**( *visible* : Boolean; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "style", - "Integer", + "visible", + "Boolean", "->" ], [ @@ -9829,24 +11165,30 @@ ], "Summary": "" }, - "setAttribute()": { - "Syntax": "**.setAttribute**( *name* : Text; *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "group()": { + "Syntax": "**.group**( *id* : Text; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "name", + "id", "Text", "->" ], [ - "value", + "attachTo", "Variant", "->" ], [ - "applyTo", - "Variant", - "->" - ], + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "absolute()": { + "Syntax": "**.absolute**() : cs.ui.svg", + "Params": [ [ "", "cs.ui.svg", @@ -9855,11 +11197,11 @@ ], "Summary": "" }, - "setValue()": { - "Syntax": "**.setValue**( *value* : Text; *applyTo* : Variant; *CDATA* : Boolean ) : cs.ui.svg", + "d()": { + "Syntax": "**.d**( *data* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "value", + "data", "Text", "->" ], @@ -9868,11 +11210,6 @@ "Variant", "->" ], - [ - "CDATA", - "Boolean", - "->" - ], [ "", "cs.ui.svg", @@ -9881,12 +11218,12 @@ ], "Summary": "" }, - "visible()": { - "Syntax": "**.visible**( *visible* : Boolean; *applyTo* : Variant ) : cs.ui.svg", + "strokeWidth()": { + "Syntax": "**.strokeWidth**( *width* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "visible", - "Boolean", + "width", + "Real", "->" ], [ @@ -9902,16 +11239,16 @@ ], "Summary": "" }, - "d()": { - "Syntax": "**.d**( *data* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "polygon()": { + "Syntax": "**.polygon**( *points* : Variant; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "data", + "points", "Variant", "->" ], [ - "applyTo", + "attachTo", "Variant", "->" ], @@ -9923,8 +11260,8 @@ ], "Summary": "" }, - "l()": { - "Syntax": "**.l**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "points()": { + "Syntax": "**.points**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ "points", @@ -9944,17 +11281,22 @@ ], "Summary": "" }, - "id()": { - "Syntax": "**.id**( *id* : Text; *applyTo* : Variant ) : cs.ui.svg", + "fivePointStar()": { + "Syntax": "**.fivePointStar**( *diameter* : Real; *cx* : Real; *cy* : Real ) : cs.ui.svg", "Params": [ [ - "id", - "Text", + "diameter", + "Real", "->" ], [ - "applyTo", - "Variant", + "cx", + "Real", + "->" + ], + [ + "cy", + "Real", "->" ], [ @@ -9965,17 +11307,27 @@ ], "Summary": "" }, - "fill()": { - "Syntax": "**.fill**( *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "regularPolygon()": { + "Syntax": "**.regularPolygon**( *diameter* : Real; *sides* : Integer; *cx* : Real; *cy* : Real ) : cs.ui.svg", "Params": [ [ - "value", - "Variant", + "diameter", + "Real", "->" ], [ - "applyTo", - "Variant", + "sides", + "Integer", + "->" + ], + [ + "cx", + "Real", + "->" + ], + [ + "cy", + "Real", "->" ], [ @@ -9986,12 +11338,12 @@ ], "Summary": "" }, - "m()": { - "Syntax": "**.m**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "setValue()": { + "Syntax": "**.setValue**( *value* : Text; *applyTo* : Variant; *CDATA* : Boolean ) : cs.ui.svg", "Params": [ [ - "points", - "Variant", + "value", + "Text", "->" ], [ @@ -9999,6 +11351,11 @@ "Variant", "->" ], + [ + "CDATA", + "Boolean", + "->" + ], [ "", "cs.ui.svg", @@ -10007,11 +11364,16 @@ ], "Summary": "" }, - "show()": { - "Syntax": "**.show**( *applyTo* : Variant ) : cs.ui.svg", + "polyline()": { + "Syntax": "**.polyline**( *points* : Variant; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "applyTo", + "points", + "Variant", + "->" + ], + [ + "attachTo", "Variant", "->" ], @@ -10023,12 +11385,12 @@ ], "Summary": "" }, - "stroke()": { - "Syntax": "**.stroke**( *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "cx()": { + "Syntax": "**.cx**( *cx* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "value", - "Variant", + "cx", + "Real", "->" ], [ @@ -10044,19 +11406,25 @@ ], "Summary": "" }, - "strokeOpacity()": { - "Syntax": "**.strokeOpacity**( *opacity* : Real; *applyTo* : Variant ) : cs.ui.svg", + "styleSheet()": { + "Syntax": "**.styleSheet**( *file* : 4D.File ) : cs.ui.svg", "Params": [ [ - "opacity", - "Real", + "file", + "4D.File", "->" ], [ - "applyTo", - "Variant", - "->" - ], + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "relative()": { + "Syntax": "**.relative**() : cs.ui.svg", + "Params": [ [ "", "cs.ui.svg", @@ -10065,14 +11433,19 @@ ], "Summary": "" }, - "x()": { - "Syntax": "**.x**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", + "scale()": { + "Syntax": "**.scale**( *sx* : Real; *sy* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "x", + "sx", "Real", "->" ], + [ + "sy", + "Variant", + "->" + ], [ "applyTo", "Variant", @@ -10086,31 +11459,31 @@ ], "Summary": "" }, - "ellipse()": { - "Syntax": "**.ellipse**( *rx* : Real; *ry* : Real; *cx* : Real; *cy* : Real; *attachTo* : Variant ) : cs.ui.svg", + "arc()": { + "Syntax": "**.arc**( *to* : Collection; *radii* : Variant; *axis* : Real; *flags* : Collection; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "rx", - "Real", + "to", + "Collection", "->" ], [ - "ry", - "Real", + "radii", + "Variant", "->" ], [ - "cx", + "axis", "Real", "->" ], [ - "cy", - "Real", + "flags", + "Collection", "->" ], [ - "attachTo", + "applyTo", "Variant", "->" ], @@ -10122,28 +11495,22 @@ ], "Summary": "" }, - "layer()": { - "Syntax": "**.layer**( *name* : Text ) : cs.ui.svg", + "cubicBezierCurveto()": { + "Syntax": "**.cubicBezierCurveto**( *to* : Collection; *beginCtrlPoint* : Collection; *endCtrlPoint* : Collection; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "name", - "Text", + "to", + "Collection", "->" ], [ - "", - "cs.ui.svg", - "<-" - ] - ], - "Summary": "" - }, - "L()": { - "Syntax": "**.L**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", - "Params": [ + "beginCtrlPoint", + "Collection", + "->" + ], [ - "points", - "Variant", + "endCtrlPoint", + "Collection", "->" ], [ @@ -10159,12 +11526,12 @@ ], "Summary": "" }, - "M()": { - "Syntax": "**.M**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "v()": { + "Syntax": "**.v**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "points", - "Variant", + "x", + "Real", "->" ], [ @@ -10180,75 +11547,42 @@ ], "Summary": "" }, - "strokeWidth()": { - "Syntax": "**.strokeWidth**( *width* : Real; *applyTo* : Variant ) : cs.ui.svg", + "A()": { + "Syntax": "**.A**( *rx* : Real; *ry* : Real; *rotation* : Real; *largeArcFlag* : Integer; *sweepFlag* : Integer; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "width", + "rx", "Real", "->" ], [ - "applyTo", - "Variant", + "ry", + "Real", "->" ], [ - "", - "cs.ui.svg", - "<-" - ] - ], - "Summary": "" - }, - "points()": { - "Syntax": "**.points**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", - "Params": [ - [ - "points", - "Variant", + "rotation", + "Real", "->" ], [ - "applyTo", - "Variant", + "largeArcFlag", + "Integer", "->" ], [ - "", - "cs.ui.svg", - "<-" - ] - ], - "Summary": "" - }, - "polygon()": { - "Syntax": "**.polygon**( *points* : Variant; *attachTo* : Variant ) : cs.ui.svg", - "Params": [ - [ - "points", - "Variant", + "sweepFlag", + "Integer", "->" ], [ - "attachTo", - "Variant", + "x", + "Real", "->" ], [ - "", - "cs.ui.svg", - "<-" - ] - ], - "Summary": "" - }, - "removeClass()": { - "Syntax": "**.removeClass**( *class* : Text; *applyTo* : Variant ) : cs.ui.svg", - "Params": [ - [ - "class", - "Text", + "y", + "Real", "->" ], [ @@ -10264,27 +11598,12 @@ ], "Summary": "" }, - "circle()": { - "Syntax": "**.circle**( *r* : Real; *cx* : Real; *cy* : Real; *attachTo* : Variant ) : cs.ui.svg", + "newCanvas()": { + "Syntax": "**.newCanvas**( *attributes* : Object ) : cs.ui.svg", "Params": [ [ - "r", - "Real", - "->" - ], - [ - "cx", - "Real", - "->" - ], - [ - "cy", - "Real", - "->" - ], - [ - "attachTo", - "Variant", + "attributes", + "Object", "->" ], [ @@ -10295,17 +11614,17 @@ ], "Summary": "" }, - "preserveAspectRatio()": { - "Syntax": "**.preserveAspectRatio**( *value* : Text; *applyTo* : Variant ) : cs.ui.svg", + "layer()": { + "Syntax": "**.layer**( *name* : Text; *...* : Text ) : cs.ui.svg", "Params": [ [ - "value", + "name", "Text", "->" ], [ - "applyTo", - "Variant", + "", + "Text", "->" ], [ @@ -10316,33 +11635,33 @@ ], "Summary": "" }, - "height()": { - "Syntax": "**.height**( *height* : Real; *applyTo* : Variant ) : cs.ui.svg", + "getTextHeight()": { + "Syntax": "**.getTextHeight**( *string* : Text; *fontAttributes* : Object )->height : Integer", "Params": [ [ - "height", - "Real", + "string", + "Text", "->" ], [ - "applyTo", - "Variant", + "fontAttributes", + "Object", "->" ], [ - "", - "cs.ui.svg", + "height", + "Integer", "<-" ] ], "Summary": "" }, - "fontSize()": { - "Syntax": "**.fontSize**( *size* : Integer; *applyTo* : Variant ) : cs.ui.svg", + "L()": { + "Syntax": "**.L**( *points* : Variant; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "size", - "Integer", + "points", + "Variant", "->" ], [ @@ -10358,12 +11677,12 @@ ], "Summary": "" }, - "newCanvas()": { - "Syntax": "**.newCanvas**( *attributes* : Object ) : cs.ui.svg", + "desc()": { + "Syntax": "**.desc**( *description* : Text ) : cs.ui.svg", "Params": [ [ - "attributes", - "Object", + "description", + "Text", "->" ], [ @@ -10374,21 +11693,31 @@ ], "Summary": "" }, - "rect()": { - "Syntax": "**.rect**( *height* : Real; *width* : Variant; *attachTo* : Variant ) : cs.ui.svg", + "s()": { + "Syntax": "**.s**( *x2* : Real; *y2* : Real; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "height", + "x2", "Real", "->" ], [ - "width", - "Variant", + "y2", + "Real", "->" ], [ - "attachTo", + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], + [ + "applyTo", "Variant", "->" ], @@ -10400,14 +11729,35 @@ ], "Summary": "" }, - "polyline()": { - "Syntax": "**.polyline**( *points* : Variant; *attachTo* : Variant ) : cs.ui.svg", + "class()": { + "Syntax": "**.class**( *class* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "points", + "class", + "Text", + "->" + ], + [ + "applyTo", "Variant", "->" ], + [ + "", + "cs.ui.svg", + "<-" + ] + ], + "Summary": "" + }, + "comment()": { + "Syntax": "**.comment**( *comment* : Text; *attachTo* : Variant ) : cs.ui.svg", + "Params": [ + [ + "comment", + "Text", + "->" + ], [ "attachTo", "Variant", @@ -10442,37 +11792,52 @@ ], "Summary": "" }, - "picture()": { - "Syntax": "**.picture**( *exportType* : Variant; *keepStructure* : Boolean ) : Picture", + "dasharray()": { + "Syntax": "**.dasharray**( *dash* : Real; *...* : Integer ) : cs.ui.svg", "Params": [ [ - "exportType", - "Variant", + "dash", + "Real", "->" ], [ - "keepStructure", - "Boolean", + "", + "Integer", "->" ], [ "", - "Picture", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "text()": { - "Syntax": "**.text**( *text* : Text; *attachTo* : Variant ) : cs.ui.svg", + "Q()": { + "Syntax": "**.Q**( *x1* : Real; *y1* : Real; *x* : Real; *y* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "text", - "Text", + "x1", + "Real", "->" ], [ - "attachTo", + "y1", + "Real", + "->" + ], + [ + "x", + "Real", + "->" + ], + [ + "y", + "Real", + "->" + ], + [ + "applyTo", "Variant", "->" ], @@ -10484,8 +11849,8 @@ ], "Summary": "" }, - "group()": { - "Syntax": "**.group**( *id* : Text; *attachTo* : Variant ) : cs.ui.svg", + "clipPath()": { + "Syntax": "**.clipPath**( *id* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ "id", @@ -10493,7 +11858,7 @@ "->" ], [ - "attachTo", + "applyTo", "Variant", "->" ], @@ -10505,17 +11870,12 @@ ], "Summary": "" }, - "cy()": { - "Syntax": "**.cy**( *cy* : Real; *applyTo* : Variant ) : cs.ui.svg", + "title()": { + "Syntax": "**.title**( *title* : Text ) : cs.ui.svg", "Params": [ [ - "cy", - "Real", - "->" - ], - [ - "applyTo", - "Variant", + "title", + "Text", "->" ], [ @@ -10526,33 +11886,33 @@ ], "Summary": "" }, - "class()": { - "Syntax": "**.class**( *class* : Text; *applyTo* : Variant ) : cs.ui.svg", + "picture()": { + "Syntax": "**.picture**( *exportType* : Variant; *keepStructure* : Boolean ) : Picture", "Params": [ [ - "class", - "Text", + "exportType", + "Variant", "->" ], [ - "applyTo", - "Variant", + "keepStructure", + "Boolean", "->" ], [ "", - "cs.ui.svg", + "Picture", "<-" ] ], "Summary": "" }, - "rx()": { - "Syntax": "**.rx**( *rx* : Real; *applyTo* : Variant ) : cs.ui.svg", + "fillColor()": { + "Syntax": "**.fillColor**( *color* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "rx", - "Real", + "color", + "Text", "->" ], [ @@ -10568,17 +11928,12 @@ ], "Summary": "" }, - "setAttributes()": { - "Syntax": "**.setAttributes**( *attributes* : Variant; *value* : Variant; *applyTo* : Variant ) : cs.ui.svg", + "style()": { + "Syntax": "**.style**( *style* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "attributes", - "Variant", - "->" - ], - [ - "value", - "Variant", + "style", + "Text", "->" ], [ @@ -10594,11 +11949,11 @@ ], "Summary": "" }, - "isOfClass()": { - "Syntax": "**.isOfClass**( *class* : Text; *applyTo* : Variant )->isOfclass : Boolean", + "fontFamily()": { + "Syntax": "**.fontFamily**( *fonts* : Text; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "class", + "fonts", "Text", "->" ], @@ -10608,19 +11963,19 @@ "->" ], [ - "isOfclass", - "Boolean", + "", + "cs.ui.svg", "<-" ] ], "Summary": "" }, - "symbol()": { - "Syntax": "**.symbol**( *name* : Text; *applyTo* : Variant ) : cs.ui.svg", + "V()": { + "Syntax": "**.V**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "name", - "Text", + "x", + "Real", "->" ], [ @@ -10636,11 +11991,11 @@ ], "Summary": "" }, - "path()": { - "Syntax": "**.path**( *data* : Variant; *attachTo* : Variant ) : cs.ui.svg", + "image()": { + "Syntax": "**.image**( *picture* : Variant; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "data", + "picture", "Variant", "->" ], @@ -10657,16 +12012,16 @@ ], "Summary": "" }, - "image()": { - "Syntax": "**.image**( *picture* : Variant; *attachTo* : Variant ) : cs.ui.svg", + "x()": { + "Syntax": "**.x**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "picture", - "Variant", + "x", + "Real", "->" ], [ - "attachTo", + "applyTo", "Variant", "->" ], @@ -10678,12 +12033,27 @@ ], "Summary": "" }, - "use()": { - "Syntax": "**.use**( *symbol* : Variant; *attachTo* : Variant ) : cs.ui.svg", + "ellipse()": { + "Syntax": "**.ellipse**( *rx* : Real; *ry* : Real; *cx* : Real; *cy* : Real; *attachTo* : Variant ) : cs.ui.svg", "Params": [ [ - "symbol", - "Variant", + "rx", + "Real", + "->" + ], + [ + "ry", + "Real", + "->" + ], + [ + "cx", + "Real", + "->" + ], + [ + "cy", + "Real", "->" ], [ @@ -10699,12 +12069,12 @@ ], "Summary": "" }, - "moveHorizontally()": { - "Syntax": "**.moveHorizontally**( *x* : Real; *applyTo* : Variant ) : cs.ui.svg", + "moveTo()": { + "Syntax": "**.moveTo**( *point* : Collection; *applyTo* : Variant ) : cs.ui.svg", "Params": [ [ - "x", - "Real", + "point", + "Collection", "->" ], [ @@ -10793,6 +12163,9 @@ ], "Summary": "" }, + "store": { + "Syntax": "store : Collection" + }, "_inheritedFrom_": "xml" }, "widgetDelegate": { @@ -11434,14 +12807,8 @@ "Summary": "" }, "clear()": { - "Syntax": "**.clear**() : cs.ui.dropDownDelegate", - "Params": [ - [ - "", - "cs.ui.dropDownDelegate", - "<-" - ] - ], + "Syntax": "**.clear**()", + "Params": [], "Summary": "" }, "set currentValue()": {