@babylonjs/gui 5.0.0-beta.9 → 5.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/2D/adtInstrumentation.d.ts +52 -52
- package/2D/adtInstrumentation.js +126 -126
- package/2D/adtInstrumentation.js.map +1 -1
- package/2D/advancedDynamicTexture.d.ts +449 -412
- package/2D/advancedDynamicTexture.js +1318 -1239
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +135 -97
- package/2D/controls/button.js +276 -238
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +59 -51
- package/2D/controls/checkbox.js +188 -178
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +103 -90
- package/2D/controls/colorpicker.js +1417 -1400
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +175 -130
- package/2D/controls/container.js +570 -525
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +866 -743
- package/2D/controls/control.js +2433 -2308
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.d.ts +53 -55
- package/2D/controls/displayGrid.js +245 -245
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.d.ts +21 -21
- package/2D/controls/ellipse.js +85 -85
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.d.ts +59 -52
- package/2D/controls/focusableButton.js +99 -92
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/focusableControl.d.ts +34 -34
- package/2D/controls/focusableControl.js +1 -1
- package/2D/controls/focusableControl.js.map +1 -1
- package/2D/controls/grid.d.ts +139 -135
- package/2D/controls/grid.js +529 -525
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +204 -197
- package/2D/controls/image.js +887 -879
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/index.d.ts +29 -29
- package/2D/controls/index.js +29 -29
- package/2D/controls/index.js.map +1 -1
- package/2D/controls/inputPassword.d.ts +9 -8
- package/2D/controls/inputPassword.js +28 -25
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.d.ts +201 -180
- package/2D/controls/inputText.js +1119 -1095
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/line.d.ts +66 -66
- package/2D/controls/line.js +271 -271
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.d.ts +75 -77
- package/2D/controls/multiLine.js +262 -262
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.d.ts +49 -49
- package/2D/controls/radioButton.js +205 -205
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.d.ts +29 -29
- package/2D/controls/rectangle.js +150 -150
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
- package/2D/controls/scrollViewers/scrollViewer.js +677 -676
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
- package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +263 -209
- package/2D/controls/selector.js +692 -629
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +82 -78
- package/2D/controls/sliders/baseSlider.js +347 -343
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
- package/2D/controls/sliders/imageBasedSlider.js +192 -188
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
- package/2D/controls/sliders/imageScrollBar.js +263 -256
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +38 -34
- package/2D/controls/sliders/scrollBar.js +143 -136
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +35 -37
- package/2D/controls/sliders/slider.js +271 -271
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +64 -56
- package/2D/controls/stackPanel.js +246 -236
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.d.ts +6 -6
- package/2D/controls/statics.js +49 -47
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.d.ts +175 -171
- package/2D/controls/textBlock.js +603 -588
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.d.ts +13 -13
- package/2D/controls/textWrapper.js +101 -101
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.d.ts +117 -83
- package/2D/controls/toggleButton.js +268 -234
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.d.ts +96 -96
- package/2D/controls/virtualKeyboard.js +256 -256
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/index.d.ts +9 -9
- package/2D/index.js +10 -9
- package/2D/index.js.map +1 -1
- package/2D/math2D.d.ts +117 -117
- package/2D/math2D.js +221 -221
- package/2D/math2D.js.map +1 -1
- package/2D/measure.d.ts +77 -77
- package/2D/measure.js +139 -149
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.d.ts +47 -47
- package/2D/multiLinePoint.js +127 -127
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.d.ts +46 -46
- package/2D/style.js +97 -97
- package/2D/style.js.map +1 -1
- package/2D/valueAndUnit.d.ts +89 -89
- package/2D/valueAndUnit.js +226 -222
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.d.ts +60 -60
- package/2D/xmlLoader.js +348 -341
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.d.ts +73 -73
- package/3D/behaviors/defaultBehavior.js +121 -121
- package/3D/behaviors/defaultBehavior.js.map +1 -1
- package/3D/controls/abstractButton3D.d.ts +15 -15
- package/3D/controls/abstractButton3D.js +25 -25
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.d.ts +30 -30
- package/3D/controls/button3D.js +93 -93
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.d.ts +72 -72
- package/3D/controls/container3D.js +139 -140
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.d.ts +30 -30
- package/3D/controls/contentDisplay3D.js +79 -78
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.d.ts +201 -165
- package/3D/controls/control3D.js +445 -408
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.d.ts +17 -17
- package/3D/controls/cylinderPanel.js +66 -66
- package/3D/controls/cylinderPanel.js.map +1 -1
- package/3D/controls/handMenu.d.ts +28 -28
- package/3D/controls/handMenu.js +47 -47
- package/3D/controls/handMenu.js.map +1 -1
- package/3D/controls/holographicBackplate.d.ts +49 -48
- package/3D/controls/holographicBackplate.js +120 -120
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +84 -83
- package/3D/controls/holographicButton.js +339 -338
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +131 -118
- package/3D/controls/holographicSlate.js +431 -369
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/index.d.ts +21 -21
- package/3D/controls/index.js +21 -21
- package/3D/controls/index.js.map +1 -1
- package/3D/controls/meshButton3D.d.ts +21 -21
- package/3D/controls/meshButton3D.js +62 -61
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.d.ts +44 -44
- package/3D/controls/nearMenu.js +114 -112
- package/3D/controls/nearMenu.js.map +1 -1
- package/3D/controls/planePanel.d.ts +9 -9
- package/3D/controls/planePanel.js +36 -36
- package/3D/controls/planePanel.js.map +1 -1
- package/3D/controls/scatterPanel.d.ts +18 -18
- package/3D/controls/scatterPanel.js +108 -108
- package/3D/controls/scatterPanel.js.map +1 -1
- package/3D/controls/slider3D.d.ts +81 -80
- package/3D/controls/slider3D.js +268 -267
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/spherePanel.d.ts +17 -17
- package/3D/controls/spherePanel.js +67 -67
- package/3D/controls/spherePanel.js.map +1 -1
- package/3D/controls/stackPanel3D.d.ts +22 -22
- package/3D/controls/stackPanel3D.js +107 -107
- package/3D/controls/stackPanel3D.js.map +1 -1
- package/3D/controls/touchButton3D.d.ts +80 -64
- package/3D/controls/touchButton3D.js +233 -188
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +110 -104
- package/3D/controls/touchHolographicButton.js +445 -432
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.d.ts +61 -61
- package/3D/controls/touchHolographicMenu.js +149 -148
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.d.ts +21 -22
- package/3D/controls/touchMeshButton3D.js +62 -62
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.d.ts +53 -52
- package/3D/controls/volumeBasedPanel.js +174 -174
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +108 -108
- package/3D/gizmos/gizmoHandle.js +209 -209
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/index.d.ts +2 -2
- package/3D/gizmos/index.js +2 -2
- package/3D/gizmos/index.js.map +1 -1
- package/3D/gizmos/slateGizmo.d.ts +57 -59
- package/3D/gizmos/slateGizmo.js +369 -363
- package/3D/gizmos/slateGizmo.js.map +1 -1
- package/3D/gui3DManager.d.ts +94 -94
- package/3D/gui3DManager.js +257 -257
- package/3D/gui3DManager.js.map +1 -1
- package/3D/index.d.ts +5 -5
- package/3D/index.js +6 -5
- package/3D/index.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
- package/3D/materials/fluent/fluentMaterial.js +292 -281
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/index.d.ts +1 -1
- package/3D/materials/fluent/index.js +1 -1
- package/3D/materials/fluent/index.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/index.d.ts +1 -1
- package/3D/materials/fluentBackplate/index.js +1 -1
- package/3D/materials/fluentBackplate/index.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
- package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/index.d.ts +1 -1
- package/3D/materials/fluentButton/index.js +1 -1
- package/3D/materials/fluentButton/index.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/fluentMaterial.d.ts +4 -4
- package/3D/materials/fluentMaterial.js +4 -4
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +68 -68
- package/3D/materials/handle/handleMaterial.js +126 -126
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/index.d.ts +1 -1
- package/3D/materials/handle/index.js +1 -1
- package/3D/materials/handle/index.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.fragment.js +8 -6
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.vertex.js +8 -6
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/index.d.ts +5 -5
- package/3D/materials/index.js +6 -5
- package/3D/materials/index.js.map +1 -1
- package/3D/materials/mrdl/index.d.ts +3 -3
- package/3D/materials/mrdl/index.js +3 -3
- package/3D/materials/mrdl/index.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/3D/vector3WithInfo.d.ts +16 -16
- package/3D/vector3WithInfo.js +23 -23
- package/3D/vector3WithInfo.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/legacy/legacy.d.ts +1 -1
- package/legacy/legacy.js +14 -13
- package/legacy/legacy.js.map +1 -1
- package/package.json +21 -328
- package/readme.md +2 -2
package/2D/controls/grid.js
CHANGED
|
@@ -1,526 +1,530 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { Container } from "./container
|
|
3
|
-
import { ValueAndUnit } from "../valueAndUnit
|
|
4
|
-
import { Control } from "./control
|
|
5
|
-
import { Tools } from
|
|
6
|
-
import { RegisterClass } from
|
|
7
|
-
/**
|
|
8
|
-
* Class used to create a 2D grid container
|
|
9
|
-
*/
|
|
10
|
-
var Grid = /** @class */ (function (_super) {
|
|
11
|
-
__extends(Grid, _super);
|
|
12
|
-
/**
|
|
13
|
-
* Creates a new Grid
|
|
14
|
-
* @param name defines control name
|
|
15
|
-
*/
|
|
16
|
-
function Grid(name) {
|
|
17
|
-
var _this = _super.call(this, name) || this;
|
|
18
|
-
_this.name = name;
|
|
19
|
-
_this._rowDefinitions = new Array();
|
|
20
|
-
_this._rowDefinitionObservers = [];
|
|
21
|
-
_this._columnDefinitions = new Array();
|
|
22
|
-
_this._columnDefinitionObservers = [];
|
|
23
|
-
_this._cells = {};
|
|
24
|
-
_this._childControls = new Array();
|
|
25
|
-
return _this;
|
|
26
|
-
}
|
|
27
|
-
Object.defineProperty(Grid.prototype, "columnCount", {
|
|
28
|
-
/**
|
|
29
|
-
* Gets the number of columns
|
|
30
|
-
*/
|
|
31
|
-
get: function () {
|
|
32
|
-
return this._columnDefinitions.length;
|
|
33
|
-
},
|
|
34
|
-
enumerable: false,
|
|
35
|
-
configurable: true
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(Grid.prototype, "rowCount", {
|
|
38
|
-
/**
|
|
39
|
-
* Gets the number of rows
|
|
40
|
-
*/
|
|
41
|
-
get: function () {
|
|
42
|
-
return this._rowDefinitions.length;
|
|
43
|
-
},
|
|
44
|
-
enumerable: false,
|
|
45
|
-
configurable: true
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(Grid.prototype, "children", {
|
|
48
|
-
/** Gets the list of children */
|
|
49
|
-
get: function () {
|
|
50
|
-
return this._childControls;
|
|
51
|
-
},
|
|
52
|
-
enumerable: false,
|
|
53
|
-
configurable: true
|
|
54
|
-
});
|
|
55
|
-
Object.defineProperty(Grid.prototype, "cells", {
|
|
56
|
-
/** Gets the list of cells (e.g. the containers) */
|
|
57
|
-
get: function () {
|
|
58
|
-
return this._cells;
|
|
59
|
-
},
|
|
60
|
-
enumerable: false,
|
|
61
|
-
configurable: true
|
|
62
|
-
});
|
|
63
|
-
/**
|
|
64
|
-
* Gets the definition of a specific row
|
|
65
|
-
* @param index defines the index of the row
|
|
66
|
-
* @returns the row definition
|
|
67
|
-
*/
|
|
68
|
-
Grid.prototype.getRowDefinition = function (index) {
|
|
69
|
-
if (index < 0 || index >= this._rowDefinitions.length) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
return this._rowDefinitions[index];
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Gets the definition of a specific column
|
|
76
|
-
* @param index defines the index of the column
|
|
77
|
-
* @returns the column definition
|
|
78
|
-
*/
|
|
79
|
-
Grid.prototype.getColumnDefinition = function (index) {
|
|
80
|
-
if (index < 0 || index >= this._columnDefinitions.length) {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
return this._columnDefinitions[index];
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Adds a new row to the grid
|
|
87
|
-
* @param height defines the height of the row (either in pixel or a value between 0 and 1)
|
|
88
|
-
* @param isPixel defines if the height is expressed in pixel (or in percentage)
|
|
89
|
-
* @returns the current grid
|
|
90
|
-
*/
|
|
91
|
-
Grid.prototype.addRowDefinition = function (height, isPixel) {
|
|
92
|
-
var _this = this;
|
|
93
|
-
if (isPixel === void 0) { isPixel = false; }
|
|
94
|
-
this._rowDefinitions.push(new ValueAndUnit(height, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE));
|
|
95
|
-
this._rowDefinitionObservers.push(this._rowDefinitions[this.rowCount - 1].onChangedObservable.add(function () { return _this._markAsDirty(); }));
|
|
96
|
-
this._markAsDirty();
|
|
97
|
-
return this;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Adds a new column to the grid
|
|
101
|
-
* @param width defines the width of the column (either in pixel or a value between 0 and 1)
|
|
102
|
-
* @param isPixel defines if the width is expressed in pixel (or in percentage)
|
|
103
|
-
* @returns the current grid
|
|
104
|
-
*/
|
|
105
|
-
Grid.prototype.addColumnDefinition = function (width, isPixel) {
|
|
106
|
-
var _this = this;
|
|
107
|
-
if (isPixel === void 0) { isPixel = false; }
|
|
108
|
-
this._columnDefinitions.push(new ValueAndUnit(width, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE));
|
|
109
|
-
this._columnDefinitionObservers.push(this._columnDefinitions[this.columnCount - 1].onChangedObservable.add(function () { return _this._markAsDirty(); }));
|
|
110
|
-
this._markAsDirty();
|
|
111
|
-
return this;
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* Update a row definition
|
|
115
|
-
* @param index defines the index of the row to update
|
|
116
|
-
* @param height defines the height of the row (either in pixel or a value between 0 and 1)
|
|
117
|
-
* @param isPixel defines if the weight is expressed in pixel (or in percentage)
|
|
118
|
-
* @returns the current grid
|
|
119
|
-
*/
|
|
120
|
-
Grid.prototype.setRowDefinition = function (index, height, isPixel) {
|
|
121
|
-
var _this = this;
|
|
122
|
-
if (isPixel === void 0) { isPixel = false; }
|
|
123
|
-
if (index < 0 || index >= this._rowDefinitions.length) {
|
|
124
|
-
return this;
|
|
125
|
-
}
|
|
126
|
-
var current = this._rowDefinitions[index];
|
|
127
|
-
if (current && current.isPixel === isPixel && current.value === height) {
|
|
128
|
-
return this;
|
|
129
|
-
}
|
|
130
|
-
this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
|
|
131
|
-
this._rowDefinitions[index] = new ValueAndUnit(height, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE);
|
|
132
|
-
this._rowDefinitionObservers[index] = this._rowDefinitions[index].onChangedObservable.add(function () { return _this._markAsDirty(); });
|
|
133
|
-
this._markAsDirty();
|
|
134
|
-
return this;
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* Update a column definition
|
|
138
|
-
* @param index defines the index of the column to update
|
|
139
|
-
* @param width defines the width of the column (either in pixel or a value between 0 and 1)
|
|
140
|
-
* @param isPixel defines if the width is expressed in pixel (or in percentage)
|
|
141
|
-
* @returns the current grid
|
|
142
|
-
*/
|
|
143
|
-
Grid.prototype.setColumnDefinition = function (index, width, isPixel) {
|
|
144
|
-
var _this = this;
|
|
145
|
-
if (isPixel === void 0) { isPixel = false; }
|
|
146
|
-
if (index < 0 || index >= this._columnDefinitions.length) {
|
|
147
|
-
return this;
|
|
148
|
-
}
|
|
149
|
-
var current = this._columnDefinitions[index];
|
|
150
|
-
if (current && current.isPixel === isPixel && current.value === width) {
|
|
151
|
-
return this;
|
|
152
|
-
}
|
|
153
|
-
this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
|
|
154
|
-
this._columnDefinitions[index] = new ValueAndUnit(width, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE);
|
|
155
|
-
this._columnDefinitionObservers[index] = this._columnDefinitions[index].onChangedObservable.add(function () { return _this._markAsDirty(); });
|
|
156
|
-
this._markAsDirty();
|
|
157
|
-
return this;
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* Gets the list of children stored in a specific cell
|
|
161
|
-
* @param row defines the row to check
|
|
162
|
-
* @param column defines the column to check
|
|
163
|
-
* @returns the list of controls
|
|
164
|
-
*/
|
|
165
|
-
Grid.prototype.getChildrenAt = function (row, column) {
|
|
166
|
-
var cell = this._cells["".concat(row, ":").concat(column)];
|
|
167
|
-
if (!cell) {
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
return cell.children;
|
|
171
|
-
};
|
|
172
|
-
/**
|
|
173
|
-
* Gets a string representing the child cell info (row x column)
|
|
174
|
-
* @param child defines the control to get info from
|
|
175
|
-
* @returns a string containing the child cell info (row x column)
|
|
176
|
-
*/
|
|
177
|
-
Grid.prototype.getChildCellInfo = function (child) {
|
|
178
|
-
return child._tag;
|
|
179
|
-
};
|
|
180
|
-
Grid.prototype._removeCell = function (cell, key) {
|
|
181
|
-
if (!cell) {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
_super.prototype.removeControl.call(this, cell);
|
|
185
|
-
for (var _i = 0, _a = cell.children; _i < _a.length; _i++) {
|
|
186
|
-
var control = _a[_i];
|
|
187
|
-
var childIndex = this._childControls.indexOf(control);
|
|
188
|
-
if (childIndex !== -1) {
|
|
189
|
-
this._childControls.splice(childIndex, 1);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
delete this._cells[key];
|
|
193
|
-
};
|
|
194
|
-
Grid.prototype._offsetCell = function (previousKey, key) {
|
|
195
|
-
if (!this._cells[key]) {
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
this._cells[previousKey] = this._cells[key];
|
|
199
|
-
for (var _i = 0, _a = this._cells[previousKey].children; _i < _a.length; _i++) {
|
|
200
|
-
var control = _a[_i];
|
|
201
|
-
control._tag = previousKey;
|
|
202
|
-
}
|
|
203
|
-
delete this._cells[key];
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* Remove a column definition at specified index
|
|
207
|
-
* @param index defines the index of the column to remove
|
|
208
|
-
* @returns the current grid
|
|
209
|
-
*/
|
|
210
|
-
Grid.prototype.removeColumnDefinition = function (index) {
|
|
211
|
-
if (index < 0 || index >= this._columnDefinitions.length) {
|
|
212
|
-
return this;
|
|
213
|
-
}
|
|
214
|
-
for (var x = 0; x < this._rowDefinitions.length; x++) {
|
|
215
|
-
var key = "".concat(x, ":").concat(index);
|
|
216
|
-
var cell = this._cells[key];
|
|
217
|
-
this._removeCell(cell, key);
|
|
218
|
-
}
|
|
219
|
-
for (var x = 0; x < this._rowDefinitions.length; x++) {
|
|
220
|
-
for (var y = index + 1; y < this._columnDefinitions.length; y++) {
|
|
221
|
-
var previousKey = "".concat(x, ":").concat(y - 1);
|
|
222
|
-
var key = "".concat(x, ":").concat(y);
|
|
223
|
-
this._offsetCell(previousKey, key);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
|
|
227
|
-
this._columnDefinitions.splice(index, 1);
|
|
228
|
-
this._columnDefinitionObservers.splice(index, 1);
|
|
229
|
-
this._markAsDirty();
|
|
230
|
-
return this;
|
|
231
|
-
};
|
|
232
|
-
/**
|
|
233
|
-
* Remove a row definition at specified index
|
|
234
|
-
* @param index defines the index of the row to remove
|
|
235
|
-
* @returns the current grid
|
|
236
|
-
*/
|
|
237
|
-
Grid.prototype.removeRowDefinition = function (index) {
|
|
238
|
-
if (index < 0 || index >= this._rowDefinitions.length) {
|
|
239
|
-
return this;
|
|
240
|
-
}
|
|
241
|
-
for (var y = 0; y < this._columnDefinitions.length; y++) {
|
|
242
|
-
var key = "".concat(index, ":").concat(y);
|
|
243
|
-
var cell = this._cells[key];
|
|
244
|
-
this._removeCell(cell, key);
|
|
245
|
-
}
|
|
246
|
-
for (var y = 0; y < this._columnDefinitions.length; y++) {
|
|
247
|
-
for (var x = index + 1; x < this._rowDefinitions.length; x++) {
|
|
248
|
-
var previousKey = "".concat(x - 1, ":").concat(y);
|
|
249
|
-
var key = "".concat(x, ":").concat(y);
|
|
250
|
-
this._offsetCell(previousKey, key);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
|
|
254
|
-
this._rowDefinitions.splice(index, 1);
|
|
255
|
-
this._rowDefinitionObservers.splice(index, 1);
|
|
256
|
-
this._markAsDirty();
|
|
257
|
-
return this;
|
|
258
|
-
};
|
|
259
|
-
/**
|
|
260
|
-
* Adds a new control to the current grid
|
|
261
|
-
* @param control defines the control to add
|
|
262
|
-
* @param row defines the row where to add the control (0 by default)
|
|
263
|
-
* @param column defines the column where to add the control (0 by default)
|
|
264
|
-
* @returns the current grid
|
|
265
|
-
*/
|
|
266
|
-
Grid.prototype.addControl = function (control, row, column) {
|
|
267
|
-
if (row === void 0) { row = 0; }
|
|
268
|
-
if (column === void 0) { column = 0; }
|
|
269
|
-
if (this._rowDefinitions.length === 0) {
|
|
270
|
-
// Add default row definition
|
|
271
|
-
this.addRowDefinition(1, false);
|
|
272
|
-
}
|
|
273
|
-
if (this._columnDefinitions.length === 0) {
|
|
274
|
-
// Add default column definition
|
|
275
|
-
this.addColumnDefinition(1, false);
|
|
276
|
-
}
|
|
277
|
-
if (this._childControls.indexOf(control) !== -1) {
|
|
278
|
-
Tools.Warn("Control (Name:".concat(control.name, ", UniqueId:").concat(control.uniqueId, ") is already associated with this grid. You must remove it before reattaching it"));
|
|
279
|
-
return this;
|
|
280
|
-
}
|
|
281
|
-
var x = Math.min(row, this._rowDefinitions.length - 1);
|
|
282
|
-
var y = Math.min(column, this._columnDefinitions.length - 1);
|
|
283
|
-
var key = "".concat(x, ":").concat(y);
|
|
284
|
-
var goodContainer = this._cells[key];
|
|
285
|
-
if (!goodContainer) {
|
|
286
|
-
goodContainer = new Container(key);
|
|
287
|
-
this._cells[key] = goodContainer;
|
|
288
|
-
goodContainer.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
289
|
-
goodContainer.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
290
|
-
_super.prototype.addControl.call(this, goodContainer);
|
|
291
|
-
}
|
|
292
|
-
goodContainer.addControl(control);
|
|
293
|
-
this._childControls.push(control);
|
|
294
|
-
control._tag = key;
|
|
295
|
-
control.parent = this;
|
|
296
|
-
this._markAsDirty();
|
|
297
|
-
return this;
|
|
298
|
-
};
|
|
299
|
-
/**
|
|
300
|
-
* Removes a control from the current container
|
|
301
|
-
* @param control defines the control to remove
|
|
302
|
-
* @returns the current container
|
|
303
|
-
*/
|
|
304
|
-
Grid.prototype.removeControl = function (control) {
|
|
305
|
-
var index = this._childControls.indexOf(control);
|
|
306
|
-
if (index !== -1) {
|
|
307
|
-
this._childControls.splice(index, 1);
|
|
308
|
-
}
|
|
309
|
-
var cell = this._cells[control._tag];
|
|
310
|
-
if (cell) {
|
|
311
|
-
cell.removeControl(control);
|
|
312
|
-
control._tag = null;
|
|
313
|
-
}
|
|
314
|
-
this._markAsDirty();
|
|
315
|
-
return this;
|
|
316
|
-
};
|
|
317
|
-
Grid.prototype._getTypeName = function () {
|
|
318
|
-
return "Grid";
|
|
319
|
-
};
|
|
320
|
-
Grid.prototype._getGridDefinitions = function (definitionCallback) {
|
|
321
|
-
var widths = [];
|
|
322
|
-
var heights = [];
|
|
323
|
-
var lefts = [];
|
|
324
|
-
var tops = [];
|
|
325
|
-
var availableWidth = this._currentMeasure.width;
|
|
326
|
-
var globalWidthPercentage = 0;
|
|
327
|
-
var availableHeight = this._currentMeasure.height;
|
|
328
|
-
var globalHeightPercentage = 0;
|
|
329
|
-
// Heights
|
|
330
|
-
var index = 0;
|
|
331
|
-
for (var _i = 0, _a = this._rowDefinitions; _i < _a.length; _i++) {
|
|
332
|
-
var rowDefinition = _a[_i];
|
|
333
|
-
if (rowDefinition.isPixel) {
|
|
334
|
-
var height = rowDefinition.getValue(this._host);
|
|
335
|
-
availableHeight -= height;
|
|
336
|
-
heights[index] = height;
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
globalHeightPercentage += rowDefinition.value;
|
|
340
|
-
}
|
|
341
|
-
index++;
|
|
342
|
-
}
|
|
343
|
-
var top = 0;
|
|
344
|
-
index = 0;
|
|
345
|
-
for (var _b = 0, _c = this._rowDefinitions; _b < _c.length; _b++) {
|
|
346
|
-
var rowDefinition = _c[_b];
|
|
347
|
-
tops.push(top);
|
|
348
|
-
if (!rowDefinition.isPixel) {
|
|
349
|
-
var height = (rowDefinition.value / globalHeightPercentage) * availableHeight;
|
|
350
|
-
top += height;
|
|
351
|
-
heights[index] = height;
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
top += rowDefinition.getValue(this._host);
|
|
355
|
-
}
|
|
356
|
-
index++;
|
|
357
|
-
}
|
|
358
|
-
// Widths
|
|
359
|
-
index = 0;
|
|
360
|
-
for (var _d = 0, _e = this._columnDefinitions; _d < _e.length; _d++) {
|
|
361
|
-
var columnDefinition = _e[_d];
|
|
362
|
-
if (columnDefinition.isPixel) {
|
|
363
|
-
var width = columnDefinition.getValue(this._host);
|
|
364
|
-
availableWidth -= width;
|
|
365
|
-
widths[index] = width;
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
globalWidthPercentage += columnDefinition.value;
|
|
369
|
-
}
|
|
370
|
-
index++;
|
|
371
|
-
}
|
|
372
|
-
var left = 0;
|
|
373
|
-
index = 0;
|
|
374
|
-
for (var _f = 0, _g = this._columnDefinitions; _f < _g.length; _f++) {
|
|
375
|
-
var columnDefinition = _g[_f];
|
|
376
|
-
lefts.push(left);
|
|
377
|
-
if (!columnDefinition.isPixel) {
|
|
378
|
-
var width = (columnDefinition.value / globalWidthPercentage) * availableWidth;
|
|
379
|
-
left += width;
|
|
380
|
-
widths[index] = width;
|
|
381
|
-
}
|
|
382
|
-
else {
|
|
383
|
-
left += columnDefinition.getValue(this._host);
|
|
384
|
-
}
|
|
385
|
-
index++;
|
|
386
|
-
}
|
|
387
|
-
definitionCallback(lefts, tops, widths, heights);
|
|
388
|
-
};
|
|
389
|
-
Grid.prototype._additionalProcessing = function (parentMeasure, context) {
|
|
390
|
-
var _this = this;
|
|
391
|
-
this._getGridDefinitions(function (lefts, tops, widths, heights) {
|
|
392
|
-
// Setting child sizes
|
|
393
|
-
for (var key in _this._cells) {
|
|
394
|
-
if (!
|
|
395
|
-
continue;
|
|
396
|
-
}
|
|
397
|
-
var split = key.split(":");
|
|
398
|
-
var x = parseInt(split[0]);
|
|
399
|
-
var y = parseInt(split[1]);
|
|
400
|
-
var cell = _this._cells[key];
|
|
401
|
-
cell.left = lefts[y] + "px";
|
|
402
|
-
cell.top = tops[x] + "px";
|
|
403
|
-
cell.width = widths[y] + "px";
|
|
404
|
-
cell.height = heights[x] + "px";
|
|
405
|
-
cell._left.ignoreAdaptiveScaling = true;
|
|
406
|
-
cell._top.ignoreAdaptiveScaling = true;
|
|
407
|
-
cell._width.ignoreAdaptiveScaling = true;
|
|
408
|
-
cell._height.ignoreAdaptiveScaling = true;
|
|
409
|
-
}
|
|
410
|
-
});
|
|
411
|
-
_super.prototype._additionalProcessing.call(this, parentMeasure, context);
|
|
412
|
-
};
|
|
413
|
-
Grid.prototype._flagDescendantsAsMatrixDirty = function () {
|
|
414
|
-
for (var key in this._cells) {
|
|
415
|
-
if (!
|
|
416
|
-
continue;
|
|
417
|
-
}
|
|
418
|
-
var child = this._cells[key];
|
|
419
|
-
child._markMatrixAsDirty();
|
|
420
|
-
}
|
|
421
|
-
};
|
|
422
|
-
Grid.prototype._renderHighlightSpecific = function (context) {
|
|
423
|
-
var _this = this;
|
|
424
|
-
_super.prototype._renderHighlightSpecific.call(this, context);
|
|
425
|
-
this._getGridDefinitions(function (lefts, tops, widths, heights) {
|
|
426
|
-
// Columns
|
|
427
|
-
for (var index = 0; index < lefts.length; index++) {
|
|
428
|
-
var left = _this._currentMeasure.left + lefts[index] + widths[index];
|
|
429
|
-
context.beginPath();
|
|
430
|
-
context.moveTo(left, _this._currentMeasure.top);
|
|
431
|
-
context.lineTo(left, _this._currentMeasure.top + _this._currentMeasure.height);
|
|
432
|
-
context.stroke();
|
|
433
|
-
}
|
|
434
|
-
// Rows
|
|
435
|
-
for (var index = 0; index < tops.length; index++) {
|
|
436
|
-
var top_1 = _this._currentMeasure.top + tops[index] + heights[index];
|
|
437
|
-
context.beginPath();
|
|
438
|
-
context.moveTo(_this._currentMeasure.left, top_1);
|
|
439
|
-
context.lineTo(_this._currentMeasure.left + _this._currentMeasure.width, top_1);
|
|
440
|
-
context.stroke();
|
|
441
|
-
}
|
|
442
|
-
});
|
|
443
|
-
context.restore();
|
|
444
|
-
};
|
|
445
|
-
/** Releases associated resources */
|
|
446
|
-
Grid.prototype.dispose = function () {
|
|
447
|
-
_super.prototype.dispose.call(this);
|
|
448
|
-
for (var _i = 0, _a = this._childControls; _i < _a.length; _i++) {
|
|
449
|
-
var control = _a[_i];
|
|
450
|
-
control.dispose();
|
|
451
|
-
}
|
|
452
|
-
for (var index = 0; index < this._rowDefinitions.length; index++) {
|
|
453
|
-
this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
|
|
454
|
-
}
|
|
455
|
-
for (var index = 0; index < this._columnDefinitions.length; index++) {
|
|
456
|
-
this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
|
|
457
|
-
}
|
|
458
|
-
this._rowDefinitionObservers = [];
|
|
459
|
-
this._rowDefinitions = [];
|
|
460
|
-
this._columnDefinitionObservers = [];
|
|
461
|
-
this._columnDefinitions = [];
|
|
462
|
-
this._cells = {};
|
|
463
|
-
this._childControls = [];
|
|
464
|
-
};
|
|
465
|
-
/**
|
|
466
|
-
* Serializes the current control
|
|
467
|
-
* @param serializationObject defined the JSON serialized object
|
|
468
|
-
*/
|
|
469
|
-
Grid.prototype.serialize = function (serializationObject) {
|
|
470
|
-
_super.prototype.serialize.call(this, serializationObject);
|
|
471
|
-
serializationObject.columnCount = this.columnCount;
|
|
472
|
-
serializationObject.rowCount = this.rowCount;
|
|
473
|
-
serializationObject.columns = [];
|
|
474
|
-
serializationObject.rows = [];
|
|
475
|
-
serializationObject.tags = [];
|
|
476
|
-
for (var i = 0; i < this.columnCount; ++i) {
|
|
477
|
-
var cd = this.getColumnDefinition(i);
|
|
478
|
-
var childSerializationObject = { value: cd === null || cd === void 0 ? void 0 : cd.getValue(this.host), unit: cd === null || cd === void 0 ? void 0 : cd.unit };
|
|
479
|
-
serializationObject.columns.push(childSerializationObject);
|
|
480
|
-
}
|
|
481
|
-
for (var i = 0; i < this.rowCount; ++i) {
|
|
482
|
-
var rd = this.getRowDefinition(i);
|
|
483
|
-
var childSerializationObject = { value: rd === null || rd === void 0 ? void 0 : rd.getValue(this.host), unit: rd === null || rd === void 0 ? void 0 : rd.unit };
|
|
484
|
-
serializationObject.rows.push(childSerializationObject);
|
|
485
|
-
}
|
|
486
|
-
this.children.forEach(function (child) {
|
|
487
|
-
serializationObject.tags.push(child._tag);
|
|
488
|
-
});
|
|
489
|
-
};
|
|
490
|
-
/**
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
this.
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
var
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
var
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
var
|
|
516
|
-
if (isNaN(
|
|
517
|
-
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { Container } from "./container";
|
|
3
|
+
import { ValueAndUnit } from "../valueAndUnit";
|
|
4
|
+
import { Control } from "./control";
|
|
5
|
+
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
|
6
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to create a 2D grid container
|
|
9
|
+
*/
|
|
10
|
+
var Grid = /** @class */ (function (_super) {
|
|
11
|
+
__extends(Grid, _super);
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new Grid
|
|
14
|
+
* @param name defines control name
|
|
15
|
+
*/
|
|
16
|
+
function Grid(name) {
|
|
17
|
+
var _this = _super.call(this, name) || this;
|
|
18
|
+
_this.name = name;
|
|
19
|
+
_this._rowDefinitions = new Array();
|
|
20
|
+
_this._rowDefinitionObservers = [];
|
|
21
|
+
_this._columnDefinitions = new Array();
|
|
22
|
+
_this._columnDefinitionObservers = [];
|
|
23
|
+
_this._cells = {};
|
|
24
|
+
_this._childControls = new Array();
|
|
25
|
+
return _this;
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(Grid.prototype, "columnCount", {
|
|
28
|
+
/**
|
|
29
|
+
* Gets the number of columns
|
|
30
|
+
*/
|
|
31
|
+
get: function () {
|
|
32
|
+
return this._columnDefinitions.length;
|
|
33
|
+
},
|
|
34
|
+
enumerable: false,
|
|
35
|
+
configurable: true
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(Grid.prototype, "rowCount", {
|
|
38
|
+
/**
|
|
39
|
+
* Gets the number of rows
|
|
40
|
+
*/
|
|
41
|
+
get: function () {
|
|
42
|
+
return this._rowDefinitions.length;
|
|
43
|
+
},
|
|
44
|
+
enumerable: false,
|
|
45
|
+
configurable: true
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(Grid.prototype, "children", {
|
|
48
|
+
/** Gets the list of children */
|
|
49
|
+
get: function () {
|
|
50
|
+
return this._childControls;
|
|
51
|
+
},
|
|
52
|
+
enumerable: false,
|
|
53
|
+
configurable: true
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(Grid.prototype, "cells", {
|
|
56
|
+
/** Gets the list of cells (e.g. the containers) */
|
|
57
|
+
get: function () {
|
|
58
|
+
return this._cells;
|
|
59
|
+
},
|
|
60
|
+
enumerable: false,
|
|
61
|
+
configurable: true
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Gets the definition of a specific row
|
|
65
|
+
* @param index defines the index of the row
|
|
66
|
+
* @returns the row definition
|
|
67
|
+
*/
|
|
68
|
+
Grid.prototype.getRowDefinition = function (index) {
|
|
69
|
+
if (index < 0 || index >= this._rowDefinitions.length) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
return this._rowDefinitions[index];
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Gets the definition of a specific column
|
|
76
|
+
* @param index defines the index of the column
|
|
77
|
+
* @returns the column definition
|
|
78
|
+
*/
|
|
79
|
+
Grid.prototype.getColumnDefinition = function (index) {
|
|
80
|
+
if (index < 0 || index >= this._columnDefinitions.length) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return this._columnDefinitions[index];
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Adds a new row to the grid
|
|
87
|
+
* @param height defines the height of the row (either in pixel or a value between 0 and 1)
|
|
88
|
+
* @param isPixel defines if the height is expressed in pixel (or in percentage)
|
|
89
|
+
* @returns the current grid
|
|
90
|
+
*/
|
|
91
|
+
Grid.prototype.addRowDefinition = function (height, isPixel) {
|
|
92
|
+
var _this = this;
|
|
93
|
+
if (isPixel === void 0) { isPixel = false; }
|
|
94
|
+
this._rowDefinitions.push(new ValueAndUnit(height, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE));
|
|
95
|
+
this._rowDefinitionObservers.push(this._rowDefinitions[this.rowCount - 1].onChangedObservable.add(function () { return _this._markAsDirty(); }));
|
|
96
|
+
this._markAsDirty();
|
|
97
|
+
return this;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Adds a new column to the grid
|
|
101
|
+
* @param width defines the width of the column (either in pixel or a value between 0 and 1)
|
|
102
|
+
* @param isPixel defines if the width is expressed in pixel (or in percentage)
|
|
103
|
+
* @returns the current grid
|
|
104
|
+
*/
|
|
105
|
+
Grid.prototype.addColumnDefinition = function (width, isPixel) {
|
|
106
|
+
var _this = this;
|
|
107
|
+
if (isPixel === void 0) { isPixel = false; }
|
|
108
|
+
this._columnDefinitions.push(new ValueAndUnit(width, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE));
|
|
109
|
+
this._columnDefinitionObservers.push(this._columnDefinitions[this.columnCount - 1].onChangedObservable.add(function () { return _this._markAsDirty(); }));
|
|
110
|
+
this._markAsDirty();
|
|
111
|
+
return this;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Update a row definition
|
|
115
|
+
* @param index defines the index of the row to update
|
|
116
|
+
* @param height defines the height of the row (either in pixel or a value between 0 and 1)
|
|
117
|
+
* @param isPixel defines if the weight is expressed in pixel (or in percentage)
|
|
118
|
+
* @returns the current grid
|
|
119
|
+
*/
|
|
120
|
+
Grid.prototype.setRowDefinition = function (index, height, isPixel) {
|
|
121
|
+
var _this = this;
|
|
122
|
+
if (isPixel === void 0) { isPixel = false; }
|
|
123
|
+
if (index < 0 || index >= this._rowDefinitions.length) {
|
|
124
|
+
return this;
|
|
125
|
+
}
|
|
126
|
+
var current = this._rowDefinitions[index];
|
|
127
|
+
if (current && current.isPixel === isPixel && current.value === height) {
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
|
|
131
|
+
this._rowDefinitions[index] = new ValueAndUnit(height, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE);
|
|
132
|
+
this._rowDefinitionObservers[index] = this._rowDefinitions[index].onChangedObservable.add(function () { return _this._markAsDirty(); });
|
|
133
|
+
this._markAsDirty();
|
|
134
|
+
return this;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Update a column definition
|
|
138
|
+
* @param index defines the index of the column to update
|
|
139
|
+
* @param width defines the width of the column (either in pixel or a value between 0 and 1)
|
|
140
|
+
* @param isPixel defines if the width is expressed in pixel (or in percentage)
|
|
141
|
+
* @returns the current grid
|
|
142
|
+
*/
|
|
143
|
+
Grid.prototype.setColumnDefinition = function (index, width, isPixel) {
|
|
144
|
+
var _this = this;
|
|
145
|
+
if (isPixel === void 0) { isPixel = false; }
|
|
146
|
+
if (index < 0 || index >= this._columnDefinitions.length) {
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
var current = this._columnDefinitions[index];
|
|
150
|
+
if (current && current.isPixel === isPixel && current.value === width) {
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
153
|
+
this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
|
|
154
|
+
this._columnDefinitions[index] = new ValueAndUnit(width, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE);
|
|
155
|
+
this._columnDefinitionObservers[index] = this._columnDefinitions[index].onChangedObservable.add(function () { return _this._markAsDirty(); });
|
|
156
|
+
this._markAsDirty();
|
|
157
|
+
return this;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Gets the list of children stored in a specific cell
|
|
161
|
+
* @param row defines the row to check
|
|
162
|
+
* @param column defines the column to check
|
|
163
|
+
* @returns the list of controls
|
|
164
|
+
*/
|
|
165
|
+
Grid.prototype.getChildrenAt = function (row, column) {
|
|
166
|
+
var cell = this._cells["".concat(row, ":").concat(column)];
|
|
167
|
+
if (!cell) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
return cell.children;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Gets a string representing the child cell info (row x column)
|
|
174
|
+
* @param child defines the control to get info from
|
|
175
|
+
* @returns a string containing the child cell info (row x column)
|
|
176
|
+
*/
|
|
177
|
+
Grid.prototype.getChildCellInfo = function (child) {
|
|
178
|
+
return child._tag;
|
|
179
|
+
};
|
|
180
|
+
Grid.prototype._removeCell = function (cell, key) {
|
|
181
|
+
if (!cell) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
_super.prototype.removeControl.call(this, cell);
|
|
185
|
+
for (var _i = 0, _a = cell.children; _i < _a.length; _i++) {
|
|
186
|
+
var control = _a[_i];
|
|
187
|
+
var childIndex = this._childControls.indexOf(control);
|
|
188
|
+
if (childIndex !== -1) {
|
|
189
|
+
this._childControls.splice(childIndex, 1);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
delete this._cells[key];
|
|
193
|
+
};
|
|
194
|
+
Grid.prototype._offsetCell = function (previousKey, key) {
|
|
195
|
+
if (!this._cells[key]) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
this._cells[previousKey] = this._cells[key];
|
|
199
|
+
for (var _i = 0, _a = this._cells[previousKey].children; _i < _a.length; _i++) {
|
|
200
|
+
var control = _a[_i];
|
|
201
|
+
control._tag = previousKey;
|
|
202
|
+
}
|
|
203
|
+
delete this._cells[key];
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Remove a column definition at specified index
|
|
207
|
+
* @param index defines the index of the column to remove
|
|
208
|
+
* @returns the current grid
|
|
209
|
+
*/
|
|
210
|
+
Grid.prototype.removeColumnDefinition = function (index) {
|
|
211
|
+
if (index < 0 || index >= this._columnDefinitions.length) {
|
|
212
|
+
return this;
|
|
213
|
+
}
|
|
214
|
+
for (var x = 0; x < this._rowDefinitions.length; x++) {
|
|
215
|
+
var key = "".concat(x, ":").concat(index);
|
|
216
|
+
var cell = this._cells[key];
|
|
217
|
+
this._removeCell(cell, key);
|
|
218
|
+
}
|
|
219
|
+
for (var x = 0; x < this._rowDefinitions.length; x++) {
|
|
220
|
+
for (var y = index + 1; y < this._columnDefinitions.length; y++) {
|
|
221
|
+
var previousKey = "".concat(x, ":").concat(y - 1);
|
|
222
|
+
var key = "".concat(x, ":").concat(y);
|
|
223
|
+
this._offsetCell(previousKey, key);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
|
|
227
|
+
this._columnDefinitions.splice(index, 1);
|
|
228
|
+
this._columnDefinitionObservers.splice(index, 1);
|
|
229
|
+
this._markAsDirty();
|
|
230
|
+
return this;
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Remove a row definition at specified index
|
|
234
|
+
* @param index defines the index of the row to remove
|
|
235
|
+
* @returns the current grid
|
|
236
|
+
*/
|
|
237
|
+
Grid.prototype.removeRowDefinition = function (index) {
|
|
238
|
+
if (index < 0 || index >= this._rowDefinitions.length) {
|
|
239
|
+
return this;
|
|
240
|
+
}
|
|
241
|
+
for (var y = 0; y < this._columnDefinitions.length; y++) {
|
|
242
|
+
var key = "".concat(index, ":").concat(y);
|
|
243
|
+
var cell = this._cells[key];
|
|
244
|
+
this._removeCell(cell, key);
|
|
245
|
+
}
|
|
246
|
+
for (var y = 0; y < this._columnDefinitions.length; y++) {
|
|
247
|
+
for (var x = index + 1; x < this._rowDefinitions.length; x++) {
|
|
248
|
+
var previousKey = "".concat(x - 1, ":").concat(y);
|
|
249
|
+
var key = "".concat(x, ":").concat(y);
|
|
250
|
+
this._offsetCell(previousKey, key);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
|
|
254
|
+
this._rowDefinitions.splice(index, 1);
|
|
255
|
+
this._rowDefinitionObservers.splice(index, 1);
|
|
256
|
+
this._markAsDirty();
|
|
257
|
+
return this;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Adds a new control to the current grid
|
|
261
|
+
* @param control defines the control to add
|
|
262
|
+
* @param row defines the row where to add the control (0 by default)
|
|
263
|
+
* @param column defines the column where to add the control (0 by default)
|
|
264
|
+
* @returns the current grid
|
|
265
|
+
*/
|
|
266
|
+
Grid.prototype.addControl = function (control, row, column) {
|
|
267
|
+
if (row === void 0) { row = 0; }
|
|
268
|
+
if (column === void 0) { column = 0; }
|
|
269
|
+
if (this._rowDefinitions.length === 0) {
|
|
270
|
+
// Add default row definition
|
|
271
|
+
this.addRowDefinition(1, false);
|
|
272
|
+
}
|
|
273
|
+
if (this._columnDefinitions.length === 0) {
|
|
274
|
+
// Add default column definition
|
|
275
|
+
this.addColumnDefinition(1, false);
|
|
276
|
+
}
|
|
277
|
+
if (this._childControls.indexOf(control) !== -1) {
|
|
278
|
+
Tools.Warn("Control (Name:".concat(control.name, ", UniqueId:").concat(control.uniqueId, ") is already associated with this grid. You must remove it before reattaching it"));
|
|
279
|
+
return this;
|
|
280
|
+
}
|
|
281
|
+
var x = Math.min(row, this._rowDefinitions.length - 1);
|
|
282
|
+
var y = Math.min(column, this._columnDefinitions.length - 1);
|
|
283
|
+
var key = "".concat(x, ":").concat(y);
|
|
284
|
+
var goodContainer = this._cells[key];
|
|
285
|
+
if (!goodContainer) {
|
|
286
|
+
goodContainer = new Container(key);
|
|
287
|
+
this._cells[key] = goodContainer;
|
|
288
|
+
goodContainer.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
289
|
+
goodContainer.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
290
|
+
_super.prototype.addControl.call(this, goodContainer);
|
|
291
|
+
}
|
|
292
|
+
goodContainer.addControl(control);
|
|
293
|
+
this._childControls.push(control);
|
|
294
|
+
control._tag = key;
|
|
295
|
+
control.parent = this;
|
|
296
|
+
this._markAsDirty();
|
|
297
|
+
return this;
|
|
298
|
+
};
|
|
299
|
+
/**
|
|
300
|
+
* Removes a control from the current container
|
|
301
|
+
* @param control defines the control to remove
|
|
302
|
+
* @returns the current container
|
|
303
|
+
*/
|
|
304
|
+
Grid.prototype.removeControl = function (control) {
|
|
305
|
+
var index = this._childControls.indexOf(control);
|
|
306
|
+
if (index !== -1) {
|
|
307
|
+
this._childControls.splice(index, 1);
|
|
308
|
+
}
|
|
309
|
+
var cell = this._cells[control._tag];
|
|
310
|
+
if (cell) {
|
|
311
|
+
cell.removeControl(control);
|
|
312
|
+
control._tag = null;
|
|
313
|
+
}
|
|
314
|
+
this._markAsDirty();
|
|
315
|
+
return this;
|
|
316
|
+
};
|
|
317
|
+
Grid.prototype._getTypeName = function () {
|
|
318
|
+
return "Grid";
|
|
319
|
+
};
|
|
320
|
+
Grid.prototype._getGridDefinitions = function (definitionCallback) {
|
|
321
|
+
var widths = [];
|
|
322
|
+
var heights = [];
|
|
323
|
+
var lefts = [];
|
|
324
|
+
var tops = [];
|
|
325
|
+
var availableWidth = this._currentMeasure.width;
|
|
326
|
+
var globalWidthPercentage = 0;
|
|
327
|
+
var availableHeight = this._currentMeasure.height;
|
|
328
|
+
var globalHeightPercentage = 0;
|
|
329
|
+
// Heights
|
|
330
|
+
var index = 0;
|
|
331
|
+
for (var _i = 0, _a = this._rowDefinitions; _i < _a.length; _i++) {
|
|
332
|
+
var rowDefinition = _a[_i];
|
|
333
|
+
if (rowDefinition.isPixel) {
|
|
334
|
+
var height = rowDefinition.getValue(this._host);
|
|
335
|
+
availableHeight -= height;
|
|
336
|
+
heights[index] = height;
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
globalHeightPercentage += rowDefinition.value;
|
|
340
|
+
}
|
|
341
|
+
index++;
|
|
342
|
+
}
|
|
343
|
+
var top = 0;
|
|
344
|
+
index = 0;
|
|
345
|
+
for (var _b = 0, _c = this._rowDefinitions; _b < _c.length; _b++) {
|
|
346
|
+
var rowDefinition = _c[_b];
|
|
347
|
+
tops.push(top);
|
|
348
|
+
if (!rowDefinition.isPixel) {
|
|
349
|
+
var height = (rowDefinition.value / globalHeightPercentage) * availableHeight;
|
|
350
|
+
top += height;
|
|
351
|
+
heights[index] = height;
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
top += rowDefinition.getValue(this._host);
|
|
355
|
+
}
|
|
356
|
+
index++;
|
|
357
|
+
}
|
|
358
|
+
// Widths
|
|
359
|
+
index = 0;
|
|
360
|
+
for (var _d = 0, _e = this._columnDefinitions; _d < _e.length; _d++) {
|
|
361
|
+
var columnDefinition = _e[_d];
|
|
362
|
+
if (columnDefinition.isPixel) {
|
|
363
|
+
var width = columnDefinition.getValue(this._host);
|
|
364
|
+
availableWidth -= width;
|
|
365
|
+
widths[index] = width;
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
globalWidthPercentage += columnDefinition.value;
|
|
369
|
+
}
|
|
370
|
+
index++;
|
|
371
|
+
}
|
|
372
|
+
var left = 0;
|
|
373
|
+
index = 0;
|
|
374
|
+
for (var _f = 0, _g = this._columnDefinitions; _f < _g.length; _f++) {
|
|
375
|
+
var columnDefinition = _g[_f];
|
|
376
|
+
lefts.push(left);
|
|
377
|
+
if (!columnDefinition.isPixel) {
|
|
378
|
+
var width = (columnDefinition.value / globalWidthPercentage) * availableWidth;
|
|
379
|
+
left += width;
|
|
380
|
+
widths[index] = width;
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
left += columnDefinition.getValue(this._host);
|
|
384
|
+
}
|
|
385
|
+
index++;
|
|
386
|
+
}
|
|
387
|
+
definitionCallback(lefts, tops, widths, heights);
|
|
388
|
+
};
|
|
389
|
+
Grid.prototype._additionalProcessing = function (parentMeasure, context) {
|
|
390
|
+
var _this = this;
|
|
391
|
+
this._getGridDefinitions(function (lefts, tops, widths, heights) {
|
|
392
|
+
// Setting child sizes
|
|
393
|
+
for (var key in _this._cells) {
|
|
394
|
+
if (!Object.prototype.hasOwnProperty.call(_this._cells, key)) {
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
397
|
+
var split = key.split(":");
|
|
398
|
+
var x = parseInt(split[0]);
|
|
399
|
+
var y = parseInt(split[1]);
|
|
400
|
+
var cell = _this._cells[key];
|
|
401
|
+
cell.left = lefts[y] + "px";
|
|
402
|
+
cell.top = tops[x] + "px";
|
|
403
|
+
cell.width = widths[y] + "px";
|
|
404
|
+
cell.height = heights[x] + "px";
|
|
405
|
+
cell._left.ignoreAdaptiveScaling = true;
|
|
406
|
+
cell._top.ignoreAdaptiveScaling = true;
|
|
407
|
+
cell._width.ignoreAdaptiveScaling = true;
|
|
408
|
+
cell._height.ignoreAdaptiveScaling = true;
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
_super.prototype._additionalProcessing.call(this, parentMeasure, context);
|
|
412
|
+
};
|
|
413
|
+
Grid.prototype._flagDescendantsAsMatrixDirty = function () {
|
|
414
|
+
for (var key in this._cells) {
|
|
415
|
+
if (!Object.prototype.hasOwnProperty.call(this._cells, key)) {
|
|
416
|
+
continue;
|
|
417
|
+
}
|
|
418
|
+
var child = this._cells[key];
|
|
419
|
+
child._markMatrixAsDirty();
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
Grid.prototype._renderHighlightSpecific = function (context) {
|
|
423
|
+
var _this = this;
|
|
424
|
+
_super.prototype._renderHighlightSpecific.call(this, context);
|
|
425
|
+
this._getGridDefinitions(function (lefts, tops, widths, heights) {
|
|
426
|
+
// Columns
|
|
427
|
+
for (var index = 0; index < lefts.length; index++) {
|
|
428
|
+
var left = _this._currentMeasure.left + lefts[index] + widths[index];
|
|
429
|
+
context.beginPath();
|
|
430
|
+
context.moveTo(left, _this._currentMeasure.top);
|
|
431
|
+
context.lineTo(left, _this._currentMeasure.top + _this._currentMeasure.height);
|
|
432
|
+
context.stroke();
|
|
433
|
+
}
|
|
434
|
+
// Rows
|
|
435
|
+
for (var index = 0; index < tops.length; index++) {
|
|
436
|
+
var top_1 = _this._currentMeasure.top + tops[index] + heights[index];
|
|
437
|
+
context.beginPath();
|
|
438
|
+
context.moveTo(_this._currentMeasure.left, top_1);
|
|
439
|
+
context.lineTo(_this._currentMeasure.left + _this._currentMeasure.width, top_1);
|
|
440
|
+
context.stroke();
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
context.restore();
|
|
444
|
+
};
|
|
445
|
+
/** Releases associated resources */
|
|
446
|
+
Grid.prototype.dispose = function () {
|
|
447
|
+
_super.prototype.dispose.call(this);
|
|
448
|
+
for (var _i = 0, _a = this._childControls; _i < _a.length; _i++) {
|
|
449
|
+
var control = _a[_i];
|
|
450
|
+
control.dispose();
|
|
451
|
+
}
|
|
452
|
+
for (var index = 0; index < this._rowDefinitions.length; index++) {
|
|
453
|
+
this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
|
|
454
|
+
}
|
|
455
|
+
for (var index = 0; index < this._columnDefinitions.length; index++) {
|
|
456
|
+
this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
|
|
457
|
+
}
|
|
458
|
+
this._rowDefinitionObservers = [];
|
|
459
|
+
this._rowDefinitions = [];
|
|
460
|
+
this._columnDefinitionObservers = [];
|
|
461
|
+
this._columnDefinitions = [];
|
|
462
|
+
this._cells = {};
|
|
463
|
+
this._childControls = [];
|
|
464
|
+
};
|
|
465
|
+
/**
|
|
466
|
+
* Serializes the current control
|
|
467
|
+
* @param serializationObject defined the JSON serialized object
|
|
468
|
+
*/
|
|
469
|
+
Grid.prototype.serialize = function (serializationObject) {
|
|
470
|
+
_super.prototype.serialize.call(this, serializationObject);
|
|
471
|
+
serializationObject.columnCount = this.columnCount;
|
|
472
|
+
serializationObject.rowCount = this.rowCount;
|
|
473
|
+
serializationObject.columns = [];
|
|
474
|
+
serializationObject.rows = [];
|
|
475
|
+
serializationObject.tags = [];
|
|
476
|
+
for (var i = 0; i < this.columnCount; ++i) {
|
|
477
|
+
var cd = this.getColumnDefinition(i);
|
|
478
|
+
var childSerializationObject = { value: cd === null || cd === void 0 ? void 0 : cd.getValue(this.host), unit: cd === null || cd === void 0 ? void 0 : cd.unit };
|
|
479
|
+
serializationObject.columns.push(childSerializationObject);
|
|
480
|
+
}
|
|
481
|
+
for (var i = 0; i < this.rowCount; ++i) {
|
|
482
|
+
var rd = this.getRowDefinition(i);
|
|
483
|
+
var childSerializationObject = { value: rd === null || rd === void 0 ? void 0 : rd.getValue(this.host), unit: rd === null || rd === void 0 ? void 0 : rd.unit };
|
|
484
|
+
serializationObject.rows.push(childSerializationObject);
|
|
485
|
+
}
|
|
486
|
+
this.children.forEach(function (child) {
|
|
487
|
+
serializationObject.tags.push(child._tag);
|
|
488
|
+
});
|
|
489
|
+
};
|
|
490
|
+
/**
|
|
491
|
+
* @param serializedObject
|
|
492
|
+
* @param host
|
|
493
|
+
* @hidden
|
|
494
|
+
*/
|
|
495
|
+
Grid.prototype._parseFromContent = function (serializedObject, host) {
|
|
496
|
+
_super.prototype._parseFromContent.call(this, serializedObject, host);
|
|
497
|
+
var children = [];
|
|
498
|
+
this.children.forEach(function (child) {
|
|
499
|
+
children.push(child);
|
|
500
|
+
});
|
|
501
|
+
this.removeRowDefinition(0);
|
|
502
|
+
this.removeColumnDefinition(0);
|
|
503
|
+
for (var i = 0; i < serializedObject.columnCount; ++i) {
|
|
504
|
+
var columnValue = serializedObject.columns[i].value;
|
|
505
|
+
var unit = serializedObject.columns[i].unit;
|
|
506
|
+
this.addColumnDefinition(columnValue, unit === 1 ? true : false);
|
|
507
|
+
}
|
|
508
|
+
for (var i = 0; i < serializedObject.rowCount; ++i) {
|
|
509
|
+
var rowValue = serializedObject.rows[i].value;
|
|
510
|
+
var unit = serializedObject.rows[i].unit;
|
|
511
|
+
this.addRowDefinition(rowValue, unit === 1 ? true : false);
|
|
512
|
+
}
|
|
513
|
+
for (var i = 0; i < children.length; ++i) {
|
|
514
|
+
var cellInfo = serializedObject.tags[i];
|
|
515
|
+
var rowNumber = parseInt(cellInfo.substring(0, cellInfo.search(":")));
|
|
516
|
+
if (isNaN(rowNumber)) {
|
|
517
|
+
rowNumber = 0;
|
|
518
|
+
}
|
|
519
|
+
var columnNumber = parseInt(cellInfo.substring(cellInfo.search(":") + 1));
|
|
520
|
+
if (isNaN(columnNumber)) {
|
|
521
|
+
columnNumber = 0;
|
|
522
|
+
}
|
|
523
|
+
this.addControl(children[i], rowNumber, columnNumber);
|
|
524
|
+
}
|
|
525
|
+
};
|
|
526
|
+
return Grid;
|
|
527
|
+
}(Container));
|
|
528
|
+
export { Grid };
|
|
529
|
+
RegisterClass("BABYLON.GUI.Grid", Grid);
|
|
526
530
|
//# sourceMappingURL=grid.js.map
|