@babylonjs/gui 9.13.0 → 9.15.0
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/FrameGraph/pure.d.ts +2 -0
- package/2D/FrameGraph/pure.js +3 -0
- package/2D/FrameGraph/pure.js.map +1 -0
- package/2D/FrameGraph/renderGraphGUIBlock.d.ts +3 -41
- package/2D/FrameGraph/renderGraphGUIBlock.js +5 -64
- package/2D/FrameGraph/renderGraphGUIBlock.js.map +1 -1
- package/2D/FrameGraph/renderGraphGUIBlock.pure.d.ts +48 -0
- package/2D/FrameGraph/renderGraphGUIBlock.pure.js +78 -0
- package/2D/FrameGraph/renderGraphGUIBlock.pure.js.map +1 -0
- package/2D/advancedDynamicTexture.d.ts +2 -2
- package/2D/advancedDynamicTexture.js +2 -2
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +3 -107
- package/2D/controls/button.js +5 -243
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/button.pure.d.ts +114 -0
- package/2D/controls/button.pure.js +257 -0
- package/2D/controls/button.pure.js.map +1 -0
- package/2D/controls/checkbox.d.ts +3 -51
- package/2D/controls/checkbox.js +5 -161
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/checkbox.pure.d.ts +58 -0
- package/2D/controls/checkbox.pure.js +175 -0
- package/2D/controls/checkbox.pure.js.map +1 -0
- package/2D/controls/colorpicker.d.ts +5 -101
- package/2D/controls/colorpicker.js +7 -1394
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/colorpicker.pure.d.ts +106 -0
- package/2D/controls/colorpicker.pure.js +1406 -0
- package/2D/controls/colorpicker.pure.js.map +1 -0
- package/2D/controls/container.d.ts +3 -177
- package/2D/controls/container.js +5 -615
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/container.pure.d.ts +184 -0
- package/2D/controls/container.pure.js +629 -0
- package/2D/controls/container.pure.js.map +1 -0
- package/2D/controls/control.d.ts +3 -944
- package/2D/controls/control.js +5 -2457
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/control.pure.d.ts +951 -0
- package/2D/controls/control.pure.js +2471 -0
- package/2D/controls/control.pure.js.map +1 -0
- package/2D/controls/displayGrid.d.ts +5 -53
- package/2D/controls/displayGrid.js +7 -201
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/displayGrid.pure.d.ts +58 -0
- package/2D/controls/displayGrid.pure.js +213 -0
- package/2D/controls/displayGrid.pure.js.map +1 -0
- package/2D/controls/ellipse.d.ts +5 -25
- package/2D/controls/ellipse.js +7 -92
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/ellipse.pure.d.ts +30 -0
- package/2D/controls/ellipse.pure.js +104 -0
- package/2D/controls/ellipse.pure.js.map +1 -0
- package/2D/controls/focusableButton.d.ts +3 -15
- package/2D/controls/focusableButton.js +5 -22
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/focusableButton.pure.d.ts +22 -0
- package/2D/controls/focusableButton.pure.js +36 -0
- package/2D/controls/focusableButton.pure.js.map +1 -0
- package/2D/controls/gradient/LinearGradient.d.ts +3 -43
- package/2D/controls/gradient/LinearGradient.js +5 -70
- package/2D/controls/gradient/LinearGradient.js.map +1 -1
- package/2D/controls/gradient/LinearGradient.pure.d.ts +50 -0
- package/2D/controls/gradient/LinearGradient.pure.js +84 -0
- package/2D/controls/gradient/LinearGradient.pure.js.map +1 -0
- package/2D/controls/gradient/RadialGradient.d.ts +3 -51
- package/2D/controls/gradient/RadialGradient.js +5 -86
- package/2D/controls/gradient/RadialGradient.js.map +1 -1
- package/2D/controls/gradient/RadialGradient.pure.d.ts +58 -0
- package/2D/controls/gradient/RadialGradient.pure.js +100 -0
- package/2D/controls/gradient/RadialGradient.pure.js.map +1 -0
- package/2D/controls/gradient/pure.d.ts +3 -0
- package/2D/controls/gradient/pure.js +4 -0
- package/2D/controls/gradient/pure.js.map +1 -0
- package/2D/controls/grid.d.ts +3 -149
- package/2D/controls/grid.js +5 -525
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/grid.pure.d.ts +156 -0
- package/2D/controls/grid.pure.js +539 -0
- package/2D/controls/grid.pure.js.map +1 -0
- package/2D/controls/image.d.ts +3 -226
- package/2D/controls/image.js +5 -913
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/image.pure.d.ts +233 -0
- package/2D/controls/image.pure.js +927 -0
- package/2D/controls/image.pure.js.map +1 -0
- package/2D/controls/inputPassword.d.ts +3 -7
- package/2D/controls/inputPassword.js +5 -19
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputPassword.pure.d.ts +14 -0
- package/2D/controls/inputPassword.pure.js +33 -0
- package/2D/controls/inputPassword.pure.js.map +1 -0
- package/2D/controls/inputText.d.ts +3 -202
- package/2D/controls/inputText.js +5 -1050
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/inputText.pure.d.ts +209 -0
- package/2D/controls/inputText.pure.js +1064 -0
- package/2D/controls/inputText.pure.js.map +1 -0
- package/2D/controls/inputTextArea.d.ts +3 -140
- package/2D/controls/inputTextArea.js +5 -1023
- package/2D/controls/inputTextArea.js.map +1 -1
- package/2D/controls/inputTextArea.pure.d.ts +147 -0
- package/2D/controls/inputTextArea.pure.js +1037 -0
- package/2D/controls/inputTextArea.pure.js.map +1 -0
- package/2D/controls/line.d.ts +5 -74
- package/2D/controls/line.js +7 -234
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/line.pure.d.ts +79 -0
- package/2D/controls/line.pure.js +246 -0
- package/2D/controls/line.pure.js.map +1 -0
- package/2D/controls/multiLine.d.ts +3 -73
- package/2D/controls/multiLine.js +5 -234
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/multiLine.pure.d.ts +80 -0
- package/2D/controls/multiLine.pure.js +248 -0
- package/2D/controls/multiLine.pure.js.map +1 -0
- package/2D/controls/pure.d.ts +38 -0
- package/2D/controls/pure.js +39 -0
- package/2D/controls/pure.js.map +1 -0
- package/2D/controls/radioButton.d.ts +3 -47
- package/2D/controls/radioButton.js +5 -182
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/radioButton.pure.d.ts +54 -0
- package/2D/controls/radioButton.pure.js +196 -0
- package/2D/controls/radioButton.pure.js.map +1 -0
- package/2D/controls/rectangle.d.ts +5 -43
- package/2D/controls/rectangle.js +7 -205
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/rectangle.pure.d.ts +48 -0
- package/2D/controls/rectangle.pure.js +217 -0
- package/2D/controls/rectangle.pure.js.map +1 -0
- package/2D/controls/scrollViewers/pure.d.ts +2 -0
- package/2D/controls/scrollViewers/pure.js +3 -0
- package/2D/controls/scrollViewers/pure.js.map +1 -0
- package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -176
- package/2D/controls/scrollViewers/scrollViewer.js +5 -584
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.pure.d.ts +183 -0
- package/2D/controls/scrollViewers/scrollViewer.pure.js +598 -0
- package/2D/controls/scrollViewers/scrollViewer.pure.js.map +1 -0
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.js +2 -2
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +2 -2
- package/2D/controls/selector.js +8 -8
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +1 -1
- package/2D/controls/sliders/baseSlider.js +1 -1
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +3 -45
- package/2D/controls/sliders/imageBasedSlider.js +5 -165
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.pure.d.ts +52 -0
- package/2D/controls/sliders/imageBasedSlider.pure.js +179 -0
- package/2D/controls/sliders/imageBasedSlider.pure.js.map +1 -0
- package/2D/controls/sliders/pure.d.ts +4 -0
- package/2D/controls/sliders/pure.js +5 -0
- package/2D/controls/sliders/pure.js.map +1 -0
- package/2D/controls/sliders/scrollBar.d.ts +3 -48
- package/2D/controls/sliders/scrollBar.js +5 -170
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.pure.d.ts +55 -0
- package/2D/controls/sliders/scrollBar.pure.js +184 -0
- package/2D/controls/sliders/scrollBar.pure.js.map +1 -0
- package/2D/controls/sliders/slider.d.ts +3 -44
- package/2D/controls/sliders/slider.js +5 -278
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/sliders/slider.pure.d.ts +51 -0
- package/2D/controls/sliders/slider.pure.js +292 -0
- package/2D/controls/sliders/slider.pure.js.map +1 -0
- package/2D/controls/stackPanel.d.ts +3 -62
- package/2D/controls/stackPanel.js +5 -243
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/stackPanel.pure.d.ts +69 -0
- package/2D/controls/stackPanel.pure.js +257 -0
- package/2D/controls/stackPanel.pure.js.map +1 -0
- package/2D/controls/statics.d.ts +3 -4
- package/2D/controls/statics.js +5 -47
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/statics.pure.d.ts +11 -0
- package/2D/controls/statics.pure.js +61 -0
- package/2D/controls/statics.pure.js.map +1 -0
- package/2D/controls/textBlock.d.ts +3 -217
- package/2D/controls/textBlock.js +5 -676
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textBlock.pure.d.ts +224 -0
- package/2D/controls/textBlock.pure.js +690 -0
- package/2D/controls/textBlock.pure.js.map +1 -0
- package/2D/controls/toggleButton.d.ts +3 -91
- package/2D/controls/toggleButton.js +5 -226
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/toggleButton.pure.d.ts +98 -0
- package/2D/controls/toggleButton.pure.js +240 -0
- package/2D/controls/toggleButton.pure.js.map +1 -0
- package/2D/controls/virtualKeyboard.d.ts +3 -100
- package/2D/controls/virtualKeyboard.js +5 -272
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/controls/virtualKeyboard.pure.d.ts +107 -0
- package/2D/controls/virtualKeyboard.pure.js +286 -0
- package/2D/controls/virtualKeyboard.pure.js.map +1 -0
- package/2D/math2D.d.ts +1 -1
- package/2D/math2D.js +1 -1
- package/2D/math2D.js.map +1 -1
- package/2D/measure.js +1 -1
- package/2D/measure.js.map +1 -1
- package/2D/pure.d.ts +13 -0
- package/2D/pure.js +15 -0
- package/2D/pure.js.map +1 -0
- package/3D/controls/MRTK3/touchHolographicButton.d.ts +4 -4
- package/3D/controls/MRTK3/touchHolographicButton.js +10 -10
- package/3D/controls/MRTK3/touchHolographicButton.js.map +1 -1
- package/3D/controls/holographicBackplate.d.ts +1 -1
- package/3D/controls/holographicBackplate.js +1 -1
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +1 -1
- package/3D/controls/holographicButton.js +4 -4
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.js +4 -4
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/pure.d.ts +23 -0
- package/3D/controls/pure.js +24 -0
- package/3D/controls/pure.js.map +1 -0
- package/3D/controls/slider3D.d.ts +3 -3
- package/3D/controls/slider3D.js +3 -3
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +2 -2
- package/3D/controls/touchHolographicButton.js +5 -5
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.js +1 -1
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +1 -1
- package/3D/gizmos/gizmoHandle.js +1 -1
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/pure.d.ts +3 -0
- package/3D/gizmos/pure.js +4 -0
- package/3D/gizmos/pure.js.map +1 -0
- package/3D/materials/fluent/fluentMaterial.d.ts +5 -100
- package/3D/materials/fluent/fluentMaterial.js +7 -305
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.pure.d.ts +105 -0
- package/3D/materials/fluent/fluentMaterial.pure.js +320 -0
- package/3D/materials/fluent/fluentMaterial.pure.js.map +1 -0
- package/3D/materials/fluent/pure.d.ts +2 -0
- package/3D/materials/fluent/pure.js +3 -0
- package/3D/materials/fluent/pure.js.map +1 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +5 -164
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +7 -488
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.d.ts +169 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js +503 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js.map +1 -0
- package/3D/materials/fluentBackplate/pure.d.ts +2 -0
- package/3D/materials/fluentBackplate/pure.js +3 -0
- package/3D/materials/fluentBackplate/pure.js.map +1 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +5 -200
- package/3D/materials/fluentButton/fluentButtonMaterial.js +7 -563
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.d.ts +205 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.js +578 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.pure.js.map +1 -0
- package/3D/materials/fluentButton/pure.d.ts +2 -0
- package/3D/materials/fluentButton/pure.js +3 -0
- package/3D/materials/fluentButton/pure.js.map +1 -0
- package/3D/materials/fluentMaterial.d.ts +1 -1
- package/3D/materials/fluentMaterial.js +1 -1
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +5 -66
- package/3D/materials/handle/handleMaterial.js +5 -118
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.pure.d.ts +66 -0
- package/3D/materials/handle/handleMaterial.pure.js +121 -0
- package/3D/materials/handle/handleMaterial.pure.js.map +1 -0
- package/3D/materials/handle/pure.d.ts +2 -0
- package/3D/materials/handle/pure.js +3 -0
- package/3D/materials/handle/pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.d.ts +5 -85
- package/3D/materials/mrdl/mrdlBackglowMaterial.js +7 -299
- package/3D/materials/mrdl/mrdlBackglowMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.d.ts +90 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js +314 -0
- package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +5 -145
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +7 -433
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.d.ts +157 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js +455 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.d.ts +5 -183
- package/3D/materials/mrdl/mrdlFrontplateMaterial.js +7 -532
- package/3D/materials/mrdl/mrdlFrontplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.d.ts +188 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js +547 -0
- package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.d.ts +5 -54
- package/3D/materials/mrdl/mrdlInnerquadMaterial.js +7 -227
- package/3D/materials/mrdl/mrdlInnerquadMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.d.ts +59 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js +242 -0
- package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +5 -334
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +7 -855
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.d.ts +346 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js +877 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +5 -334
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +7 -855
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.d.ts +346 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js +877 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js.map +1 -0
- package/3D/materials/mrdl/pure.d.ts +7 -0
- package/3D/materials/mrdl/pure.js +8 -0
- package/3D/materials/mrdl/pure.js.map +1 -0
- package/3D/materials/pure.d.ts +6 -0
- package/3D/materials/pure.js +8 -0
- package/3D/materials/pure.js.map +1 -0
- package/3D/pure.d.ts +6 -0
- package/3D/pure.js +8 -0
- package/3D/pure.js.map +1 -0
- package/package.json +50 -3
- package/pure.d.ts +3 -0
- package/pure.js +5 -0
- package/pure.js.map +1 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { Container } from "./container.pure.js";
|
|
3
|
+
import { Control } from "./control.pure.js";
|
|
4
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
5
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
6
|
+
import { Logger } from "@babylonjs/core/Misc/logger.js";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to create a 2D stack panel container
|
|
9
|
+
*/
|
|
10
|
+
export class StackPanel extends Container {
|
|
11
|
+
/** Gets or sets a boolean indicating if the stack panel is vertical or horizontal*/
|
|
12
|
+
get isVertical() {
|
|
13
|
+
return this._isVertical;
|
|
14
|
+
}
|
|
15
|
+
set isVertical(value) {
|
|
16
|
+
if (this._isVertical === value) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this._isVertical = value;
|
|
20
|
+
this._markAsDirty();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Gets or sets the spacing (in pixels) between each child.
|
|
24
|
+
*/
|
|
25
|
+
get spacing() {
|
|
26
|
+
return this._spacing;
|
|
27
|
+
}
|
|
28
|
+
set spacing(value) {
|
|
29
|
+
if (this._spacing === value) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this._spacing = value;
|
|
33
|
+
this._markAsDirty();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Gets or sets panel width.
|
|
37
|
+
* This value should not be set when in horizontal mode as it will be computed automatically
|
|
38
|
+
*/
|
|
39
|
+
set width(value) {
|
|
40
|
+
if (!this._doNotTrackManualChanges) {
|
|
41
|
+
this._manualWidth = true;
|
|
42
|
+
}
|
|
43
|
+
if (this._width.toString(this._host) === value) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (this._width.fromString(value)) {
|
|
47
|
+
this._markAsDirty();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
get width() {
|
|
51
|
+
return this._width.toString(this._host);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Gets or sets panel height.
|
|
55
|
+
* This value should not be set when in vertical mode as it will be computed automatically
|
|
56
|
+
*/
|
|
57
|
+
set height(value) {
|
|
58
|
+
if (!this._doNotTrackManualChanges) {
|
|
59
|
+
this._manualHeight = true;
|
|
60
|
+
}
|
|
61
|
+
if (this._height.toString(this._host) === value) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (this._height.fromString(value)) {
|
|
65
|
+
this._markAsDirty();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
get height() {
|
|
69
|
+
return this._height.toString(this._host);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Creates a new StackPanel
|
|
73
|
+
* @param name defines control name
|
|
74
|
+
*/
|
|
75
|
+
constructor(name) {
|
|
76
|
+
super(name);
|
|
77
|
+
this.name = name;
|
|
78
|
+
this._isVertical = true;
|
|
79
|
+
this._manualWidth = false;
|
|
80
|
+
this._manualHeight = false;
|
|
81
|
+
this._doNotTrackManualChanges = false;
|
|
82
|
+
this._spacing = 0;
|
|
83
|
+
/**
|
|
84
|
+
* Gets or sets a boolean indicating that layout warnings should be ignored
|
|
85
|
+
*/
|
|
86
|
+
this.ignoreLayoutWarnings = false;
|
|
87
|
+
}
|
|
88
|
+
_getTypeName() {
|
|
89
|
+
return "StackPanel";
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
_preMeasure(parentMeasure, context) {
|
|
95
|
+
for (const child of this._children) {
|
|
96
|
+
if (this._isVertical) {
|
|
97
|
+
child.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
child.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
super._preMeasure(parentMeasure, context);
|
|
104
|
+
}
|
|
105
|
+
_additionalProcessing(parentMeasure, context) {
|
|
106
|
+
super._additionalProcessing(parentMeasure, context);
|
|
107
|
+
this._measureForChildren.copyFrom(parentMeasure);
|
|
108
|
+
this._measureForChildren.left = this._currentMeasure.left;
|
|
109
|
+
this._measureForChildren.top = this._currentMeasure.top;
|
|
110
|
+
if (!this.isVertical || this._manualWidth) {
|
|
111
|
+
this._measureForChildren.width = this._currentMeasure.width;
|
|
112
|
+
}
|
|
113
|
+
if (this.isVertical || this._manualHeight) {
|
|
114
|
+
this._measureForChildren.height = this._currentMeasure.height;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
_postMeasure() {
|
|
118
|
+
let stackWidth = 0;
|
|
119
|
+
let stackHeight = 0;
|
|
120
|
+
const childrenCount = this._children.length;
|
|
121
|
+
// Calculate scaled spacing using idealRatio (same pattern as shadowOffset)
|
|
122
|
+
const scaledSpacing = this._spacing * this._host.idealRatio;
|
|
123
|
+
for (let index = 0; index < childrenCount; index++) {
|
|
124
|
+
const child = this._children[index];
|
|
125
|
+
if (!child.isVisible || child.notRenderable) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (this._isVertical) {
|
|
129
|
+
const top = stackHeight + "px";
|
|
130
|
+
if (child.top !== top) {
|
|
131
|
+
child.top = top;
|
|
132
|
+
this._rebuildLayout = true;
|
|
133
|
+
child._top.ignoreAdaptiveScaling = true;
|
|
134
|
+
}
|
|
135
|
+
if (!this.ignoreLayoutWarnings && !child.isDimensionFullyDefined("height")) {
|
|
136
|
+
Logger.Warn(`Control (Name:${child.name}, UniqueId:${child.uniqueId}) is using height in percentage mode inside a vertical StackPanel`, 1);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
stackHeight += child._currentMeasure.height + child._paddingTopInPixels + child._paddingBottomInPixels + (index < childrenCount - 1 ? scaledSpacing : 0);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const left = stackWidth + "px";
|
|
144
|
+
if (child.left !== left) {
|
|
145
|
+
child.left = left;
|
|
146
|
+
this._rebuildLayout = true;
|
|
147
|
+
child._left.ignoreAdaptiveScaling = true;
|
|
148
|
+
}
|
|
149
|
+
if (!this.ignoreLayoutWarnings && !child.isDimensionFullyDefined("width")) {
|
|
150
|
+
Logger.Warn(`Control (Name:${child.name}, UniqueId:${child.uniqueId}) is using width in percentage mode inside a horizontal StackPanel`, 1);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
stackWidth += child._currentMeasure.width + child._paddingLeftInPixels + child._paddingRightInPixels + (index < childrenCount - 1 ? scaledSpacing : 0);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
stackWidth += this._paddingLeftInPixels + this._paddingRightInPixels;
|
|
158
|
+
stackHeight += this._paddingTopInPixels + this._paddingBottomInPixels;
|
|
159
|
+
this._doNotTrackManualChanges = true;
|
|
160
|
+
// Let stack panel width or height default to stackHeight and stackWidth if dimensions are not specified.
|
|
161
|
+
// User can now define their own height and width for stack panel.
|
|
162
|
+
let panelWidthChanged = false;
|
|
163
|
+
let panelHeightChanged = false;
|
|
164
|
+
if ((!this._manualHeight || this.adaptHeightToChildren) && this._isVertical) {
|
|
165
|
+
// do not specify height if strictly defined by user
|
|
166
|
+
const previousHeight = this.height;
|
|
167
|
+
this.height = stackHeight + "px";
|
|
168
|
+
panelHeightChanged = previousHeight !== this.height || !this._height.ignoreAdaptiveScaling;
|
|
169
|
+
}
|
|
170
|
+
if ((!this._manualWidth || this.adaptWidthToChildren) && !this._isVertical) {
|
|
171
|
+
// do not specify width if strictly defined by user
|
|
172
|
+
const previousWidth = this.width;
|
|
173
|
+
this.width = stackWidth + "px";
|
|
174
|
+
panelWidthChanged = previousWidth !== this.width || !this._width.ignoreAdaptiveScaling;
|
|
175
|
+
}
|
|
176
|
+
if (panelHeightChanged) {
|
|
177
|
+
this._height.ignoreAdaptiveScaling = true;
|
|
178
|
+
}
|
|
179
|
+
if (panelWidthChanged) {
|
|
180
|
+
this._width.ignoreAdaptiveScaling = true;
|
|
181
|
+
}
|
|
182
|
+
this._doNotTrackManualChanges = false;
|
|
183
|
+
if (panelWidthChanged || panelHeightChanged) {
|
|
184
|
+
this._rebuildLayout = true;
|
|
185
|
+
}
|
|
186
|
+
super._postMeasure();
|
|
187
|
+
}
|
|
188
|
+
_getManualDim(dim) {
|
|
189
|
+
if (dim === "width") {
|
|
190
|
+
return this._manualWidth;
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
return this._manualHeight;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
isDimensionFullyDefined(dim) {
|
|
197
|
+
if (dim === "height" ? this.isVertical : !this.isVertical && !this._getManualDim(dim)) {
|
|
198
|
+
for (const child of this._children) {
|
|
199
|
+
if (!child.isDimensionFullyDefined(dim)) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
return this.getDimension(dim).isPixel || this._getAdaptDimTo(dim);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Serializes the current control
|
|
209
|
+
* @param serializationObject defined the JSON serialized object
|
|
210
|
+
* @param force force serialization even if isSerializable === false
|
|
211
|
+
* @param allowCanvas defines if the control is allowed to use a Canvas2D object to serialize
|
|
212
|
+
*/
|
|
213
|
+
serialize(serializationObject, force, allowCanvas) {
|
|
214
|
+
super.serialize(serializationObject, force, allowCanvas);
|
|
215
|
+
if (!this.isSerializable && !force) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
serializationObject.manualWidth = this._manualWidth;
|
|
219
|
+
serializationObject.manualHeight = this._manualHeight;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
_parseFromContent(serializedObject, host) {
|
|
225
|
+
this._manualWidth = serializedObject.manualWidth;
|
|
226
|
+
this._manualHeight = serializedObject.manualHeight;
|
|
227
|
+
super._parseFromContent(serializedObject, host);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
__decorate([
|
|
231
|
+
serialize()
|
|
232
|
+
], StackPanel.prototype, "ignoreLayoutWarnings", void 0);
|
|
233
|
+
__decorate([
|
|
234
|
+
serialize()
|
|
235
|
+
], StackPanel.prototype, "isVertical", null);
|
|
236
|
+
__decorate([
|
|
237
|
+
serialize()
|
|
238
|
+
], StackPanel.prototype, "spacing", null);
|
|
239
|
+
__decorate([
|
|
240
|
+
serialize()
|
|
241
|
+
], StackPanel.prototype, "width", null);
|
|
242
|
+
__decorate([
|
|
243
|
+
serialize()
|
|
244
|
+
], StackPanel.prototype, "height", null);
|
|
245
|
+
let _Registered = false;
|
|
246
|
+
/**
|
|
247
|
+
* Registers the StackPanel class with the type store for serialization support.
|
|
248
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
249
|
+
*/
|
|
250
|
+
export function RegisterStackPanel() {
|
|
251
|
+
if (_Registered) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
_Registered = true;
|
|
255
|
+
RegisterClass("BABYLON.GUI.StackPanel", StackPanel);
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=stackPanel.pure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stackPanel.pure.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/stackPanel.pure.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAarC,oFAAoF;IAEpF,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAW,UAAU,CAAC,KAAc;QAChC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IAEH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,OAAO,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IAEH,IAAoB,KAAK,CAAC,KAAsB;QAC5C,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC7C,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAoB,KAAK;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IAEH,IAAoB,MAAM,CAAC,KAAsB;QAC7C,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAoB,MAAM;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAA4B,IAAa;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QADY,SAAI,GAAJ,IAAI,CAAS;QA9FjC,gBAAW,GAAG,IAAI,CAAC;QACnB,iBAAY,GAAG,KAAK,CAAC;QACrB,kBAAa,GAAG,KAAK,CAAC;QACtB,6BAAwB,GAAG,KAAK,CAAC;QACjC,aAAQ,GAAG,CAAC,CAAC;QAErB;;WAEG;QAEI,yBAAoB,GAAG,KAAK,CAAC;IAsFpC,CAAC;IAEkB,YAAY;QAC3B,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACgB,WAAW,CAAC,aAAsB,EAAE,OAAgC;QACnF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;YAClE,CAAC;QACL,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEkB,qBAAqB,CAAC,aAAsB,EAAE,OAAgC;QAC7F,KAAK,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAClE,CAAC;IACL,CAAC;IAEkB,YAAY;QAC3B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAE5C,2EAA2E;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAE5D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC1C,SAAS;YACb,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC;gBAC/B,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;oBACpB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;oBAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAC5C,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzE,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,QAAQ,mEAAmE,EAAE,CAAC,CAAC,CAAC;gBAC/I,CAAC;qBAAM,CAAC;oBACJ,WAAW,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,sBAAsB,GAAG,CAAC,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7J,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;gBAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,KAAK,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAC7C,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxE,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,QAAQ,oEAAoE,EAAE,CAAC,CAAC,CAAC;gBAChJ,CAAC;qBAAM,CAAC;oBACJ,UAAU,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,qBAAqB,GAAG,CAAC,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3J,CAAC;YACL,CAAC;QACL,CAAC;QAED,UAAU,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACrE,WAAW,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAEtE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QAErC,yGAAyG;QACzG,kEAAkE;QAElE,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1E,oDAAoD;YACpD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;YACjC,kBAAkB,GAAG,cAAc,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACzE,mDAAmD;YACnD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC;YAC/B,iBAAiB,GAAG,aAAa,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;QAC3F,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAC9C,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QAEtC,IAAI,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,YAAY,EAAE,CAAC;IACzB,CAAC;IAEO,aAAa,CAAC,GAAuB;QACzC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;IACL,CAAC;IAEe,uBAAuB,CAAC,GAAuB;QAC3D,IAAI,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACpF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACa,SAAS,CAAC,mBAAwB,EAAE,KAAc,EAAE,WAAoB;QACpF,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO;QACX,CAAC;QACD,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACpD,mBAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1D,CAAC;IAED;;OAEG;IACa,iBAAiB,CAAC,gBAAqB,EAAE,IAA4B;QACjF,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAEnD,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CACJ;AA7PU;IADN,SAAS,EAAE;wDACwB;AAIpC;IADC,SAAS,EAAE;4CAGX;AAeD;IADC,SAAS,EAAE;yCAGX;AAgBD;IADC,SAAS,EAAE;uCAaX;AAWD;IADC,SAAS,EAAE;wCAaX;AAqLL,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAC9B,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,aAAa,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC","sourcesContent":["import { Container } from \"./container.pure\";\r\nimport { type Measure } from \"../measure\";\r\nimport { Control } from \"./control.pure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { type AdvancedDynamicTexture } from \"../advancedDynamicTexture\";\r\nimport { type ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\n/**\r\n * Class used to create a 2D stack panel container\r\n */\r\nexport class StackPanel extends Container {\r\n private _isVertical = true;\r\n private _manualWidth = false;\r\n private _manualHeight = false;\r\n private _doNotTrackManualChanges = false;\r\n private _spacing = 0;\r\n\r\n /**\r\n * Gets or sets a boolean indicating that layout warnings should be ignored\r\n */\r\n @serialize()\r\n public ignoreLayoutWarnings = false;\r\n\r\n /** Gets or sets a boolean indicating if the stack panel is vertical or horizontal*/\r\n @serialize()\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the spacing (in pixels) between each child.\r\n */\r\n @serialize()\r\n public get spacing(): number {\r\n return this._spacing;\r\n }\r\n\r\n public set spacing(value: number) {\r\n if (this._spacing === value) {\r\n return;\r\n }\r\n\r\n this._spacing = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets panel width.\r\n * This value should not be set when in horizontal mode as it will be computed automatically\r\n */\r\n @serialize()\r\n public override set width(value: string | number) {\r\n if (!this._doNotTrackManualChanges) {\r\n this._manualWidth = true;\r\n }\r\n\r\n if (this._width.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._width.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n public override get width(): string | number {\r\n return this._width.toString(this._host);\r\n }\r\n\r\n /**\r\n * Gets or sets panel height.\r\n * This value should not be set when in vertical mode as it will be computed automatically\r\n */\r\n @serialize()\r\n public override set height(value: string | number) {\r\n if (!this._doNotTrackManualChanges) {\r\n this._manualHeight = true;\r\n }\r\n\r\n if (this._height.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._height.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n public override get height(): string | number {\r\n return this._height.toString(this._host);\r\n }\r\n\r\n /**\r\n * Creates a new StackPanel\r\n * @param name defines control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"StackPanel\";\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n protected override _preMeasure(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n for (const child of this._children) {\r\n if (this._isVertical) {\r\n child.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n } else {\r\n child.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n }\r\n }\r\n\r\n super._preMeasure(parentMeasure, context);\r\n }\r\n\r\n protected override _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.copyFrom(parentMeasure);\r\n\r\n this._measureForChildren.left = this._currentMeasure.left;\r\n this._measureForChildren.top = this._currentMeasure.top;\r\n\r\n if (!this.isVertical || this._manualWidth) {\r\n this._measureForChildren.width = this._currentMeasure.width;\r\n }\r\n\r\n if (this.isVertical || this._manualHeight) {\r\n this._measureForChildren.height = this._currentMeasure.height;\r\n }\r\n }\r\n\r\n protected override _postMeasure(): void {\r\n let stackWidth = 0;\r\n let stackHeight = 0;\r\n const childrenCount = this._children.length;\r\n\r\n // Calculate scaled spacing using idealRatio (same pattern as shadowOffset)\r\n const scaledSpacing = this._spacing * this._host.idealRatio;\r\n\r\n for (let index = 0; index < childrenCount; index++) {\r\n const child = this._children[index];\r\n if (!child.isVisible || child.notRenderable) {\r\n continue;\r\n }\r\n\r\n if (this._isVertical) {\r\n const top = stackHeight + \"px\";\r\n if (child.top !== top) {\r\n child.top = top;\r\n this._rebuildLayout = true;\r\n child._top.ignoreAdaptiveScaling = true;\r\n }\r\n\r\n if (!this.ignoreLayoutWarnings && !child.isDimensionFullyDefined(\"height\")) {\r\n Logger.Warn(`Control (Name:${child.name}, UniqueId:${child.uniqueId}) is using height in percentage mode inside a vertical StackPanel`, 1);\r\n } else {\r\n stackHeight += child._currentMeasure.height + child._paddingTopInPixels + child._paddingBottomInPixels + (index < childrenCount - 1 ? scaledSpacing : 0);\r\n }\r\n } else {\r\n const left = stackWidth + \"px\";\r\n if (child.left !== left) {\r\n child.left = left;\r\n this._rebuildLayout = true;\r\n child._left.ignoreAdaptiveScaling = true;\r\n }\r\n\r\n if (!this.ignoreLayoutWarnings && !child.isDimensionFullyDefined(\"width\")) {\r\n Logger.Warn(`Control (Name:${child.name}, UniqueId:${child.uniqueId}) is using width in percentage mode inside a horizontal StackPanel`, 1);\r\n } else {\r\n stackWidth += child._currentMeasure.width + child._paddingLeftInPixels + child._paddingRightInPixels + (index < childrenCount - 1 ? scaledSpacing : 0);\r\n }\r\n }\r\n }\r\n\r\n stackWidth += this._paddingLeftInPixels + this._paddingRightInPixels;\r\n stackHeight += this._paddingTopInPixels + this._paddingBottomInPixels;\r\n\r\n this._doNotTrackManualChanges = true;\r\n\r\n // Let stack panel width or height default to stackHeight and stackWidth if dimensions are not specified.\r\n // User can now define their own height and width for stack panel.\r\n\r\n let panelWidthChanged = false;\r\n let panelHeightChanged = false;\r\n\r\n if ((!this._manualHeight || this.adaptHeightToChildren) && this._isVertical) {\r\n // do not specify height if strictly defined by user\r\n const previousHeight = this.height;\r\n this.height = stackHeight + \"px\";\r\n panelHeightChanged = previousHeight !== this.height || !this._height.ignoreAdaptiveScaling;\r\n }\r\n if ((!this._manualWidth || this.adaptWidthToChildren) && !this._isVertical) {\r\n // do not specify width if strictly defined by user\r\n const previousWidth = this.width;\r\n this.width = stackWidth + \"px\";\r\n panelWidthChanged = previousWidth !== this.width || !this._width.ignoreAdaptiveScaling;\r\n }\r\n\r\n if (panelHeightChanged) {\r\n this._height.ignoreAdaptiveScaling = true;\r\n }\r\n\r\n if (panelWidthChanged) {\r\n this._width.ignoreAdaptiveScaling = true;\r\n }\r\n\r\n this._doNotTrackManualChanges = false;\r\n\r\n if (panelWidthChanged || panelHeightChanged) {\r\n this._rebuildLayout = true;\r\n }\r\n\r\n super._postMeasure();\r\n }\r\n\r\n private _getManualDim(dim: \"width\" | \"height\") {\r\n if (dim === \"width\") {\r\n return this._manualWidth;\r\n } else {\r\n return this._manualHeight;\r\n }\r\n }\r\n\r\n public override isDimensionFullyDefined(dim: \"width\" | \"height\"): boolean {\r\n if (dim === \"height\" ? this.isVertical : !this.isVertical && !this._getManualDim(dim)) {\r\n for (const child of this._children) {\r\n if (!child.isDimensionFullyDefined(dim)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n return this.getDimension(dim).isPixel || this._getAdaptDimTo(dim);\r\n }\r\n\r\n /**\r\n * Serializes the current control\r\n * @param serializationObject defined the JSON serialized object\r\n * @param force force serialization even if isSerializable === false\r\n * @param allowCanvas defines if the control is allowed to use a Canvas2D object to serialize\r\n */\r\n public override serialize(serializationObject: any, force: boolean, allowCanvas: boolean) {\r\n super.serialize(serializationObject, force, allowCanvas);\r\n if (!this.isSerializable && !force) {\r\n return;\r\n }\r\n serializationObject.manualWidth = this._manualWidth;\r\n serializationObject.manualHeight = this._manualHeight;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _parseFromContent(serializedObject: any, host: AdvancedDynamicTexture) {\r\n this._manualWidth = serializedObject.manualWidth;\r\n this._manualHeight = serializedObject.manualHeight;\r\n\r\n super._parseFromContent(serializedObject, host);\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the StackPanel class with the type store for serialization support.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterStackPanel(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.GUI.StackPanel\", StackPanel);\r\n}\r\n"]}
|
package/2D/controls/statics.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./statics.pure" for tree-shakeable, side-effect-free usage.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
export { Name as name };
|
|
5
|
+
export * from "./statics.pure.js";
|
package/2D/controls/statics.js
CHANGED
|
@@ -1,50 +1,8 @@
|
|
|
1
|
-
import { Control } from "./control.js";
|
|
2
|
-
import { StackPanel } from "./stackPanel.js";
|
|
3
|
-
import { TextBlock } from "./textBlock.js";
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Re-exports the pure implementation and applies the runtime registration side effect.
|
|
3
|
+
* Import "./statics.pure" for tree-shakeable, side-effect-free usage.
|
|
7
4
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* Creates a stack panel that can be used to render headers
|
|
12
|
-
* @param control defines the control to associate with the header
|
|
13
|
-
* @param text defines the text of the header
|
|
14
|
-
* @param size defines the size of the header
|
|
15
|
-
* @param options defines options used to configure the header
|
|
16
|
-
* @param options.isHorizontal
|
|
17
|
-
* @param options.controlFirst
|
|
18
|
-
* @returns a new StackPanel
|
|
19
|
-
*/
|
|
20
|
-
Control.AddHeader = function (control, text, size, options) {
|
|
21
|
-
const panel = new StackPanel("panel");
|
|
22
|
-
const isHorizontal = options ? options.isHorizontal : true;
|
|
23
|
-
const controlFirst = options ? options.controlFirst : true;
|
|
24
|
-
panel.isVertical = !isHorizontal;
|
|
25
|
-
const header = new TextBlock("header");
|
|
26
|
-
header.text = text;
|
|
27
|
-
header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
28
|
-
if (isHorizontal) {
|
|
29
|
-
header.width = size;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
header.height = size;
|
|
33
|
-
}
|
|
34
|
-
if (controlFirst) {
|
|
35
|
-
panel.addControl(control);
|
|
36
|
-
panel.addControl(header);
|
|
37
|
-
header.paddingLeft = "5px";
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
panel.addControl(header);
|
|
41
|
-
panel.addControl(control);
|
|
42
|
-
header.paddingRight = "5px";
|
|
43
|
-
}
|
|
44
|
-
header.shadowBlur = control.shadowBlur;
|
|
45
|
-
header.shadowColor = control.shadowColor;
|
|
46
|
-
header.shadowOffsetX = control.shadowOffsetX;
|
|
47
|
-
header.shadowOffsetY = control.shadowOffsetY;
|
|
48
|
-
return panel;
|
|
49
|
-
};
|
|
5
|
+
export * from "./statics.pure.js";
|
|
6
|
+
import { RegisterGUIStatics } from "./statics.pure.js";
|
|
7
|
+
RegisterGUIStatics();
|
|
50
8
|
//# sourceMappingURL=statics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statics.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/statics.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"statics.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/statics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,kBAAkB,EAAE,CAAC","sourcesContent":["/**\n * Re-exports the pure implementation and applies the runtime registration side effect.\n * Import \"./statics.pure\" for tree-shakeable, side-effect-free usage.\n */\nexport * from \"./statics.pure\";\n\nimport { RegisterGUIStatics } from \"./statics.pure\";\nRegisterGUIStatics();\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forcing an export so that this code will execute
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
declare const Name = "Statics";
|
|
6
|
+
export { Name as name };
|
|
7
|
+
/**
|
|
8
|
+
* Registers GUI static helpers such as {@link Control.AddHeader}.
|
|
9
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
10
|
+
*/
|
|
11
|
+
export declare function RegisterGUIStatics(): void;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Control } from "./control.pure.js";
|
|
2
|
+
import { StackPanel } from "./stackPanel.pure.js";
|
|
3
|
+
import { TextBlock } from "./textBlock.pure.js";
|
|
4
|
+
/**
|
|
5
|
+
* Forcing an export so that this code will execute
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
const Name = "Statics";
|
|
9
|
+
export { Name as name };
|
|
10
|
+
let _Registered = false;
|
|
11
|
+
/**
|
|
12
|
+
* Registers GUI static helpers such as {@link Control.AddHeader}.
|
|
13
|
+
* Safe to call multiple times; only the first call has an effect.
|
|
14
|
+
*/
|
|
15
|
+
export function RegisterGUIStatics() {
|
|
16
|
+
if (_Registered) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
_Registered = true;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a stack panel that can be used to render headers
|
|
22
|
+
* @param control defines the control to associate with the header
|
|
23
|
+
* @param text defines the text of the header
|
|
24
|
+
* @param size defines the size of the header
|
|
25
|
+
* @param options defines options used to configure the header
|
|
26
|
+
* @param options.isHorizontal
|
|
27
|
+
* @param options.controlFirst
|
|
28
|
+
* @returns a new StackPanel
|
|
29
|
+
*/
|
|
30
|
+
Control.AddHeader = function (control, text, size, options) {
|
|
31
|
+
const panel = new StackPanel("panel");
|
|
32
|
+
const isHorizontal = options ? options.isHorizontal : true;
|
|
33
|
+
const controlFirst = options ? options.controlFirst : true;
|
|
34
|
+
panel.isVertical = !isHorizontal;
|
|
35
|
+
const header = new TextBlock("header");
|
|
36
|
+
header.text = text;
|
|
37
|
+
header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
38
|
+
if (isHorizontal) {
|
|
39
|
+
header.width = size;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
header.height = size;
|
|
43
|
+
}
|
|
44
|
+
if (controlFirst) {
|
|
45
|
+
panel.addControl(control);
|
|
46
|
+
panel.addControl(header);
|
|
47
|
+
header.paddingLeft = "5px";
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
panel.addControl(header);
|
|
51
|
+
panel.addControl(control);
|
|
52
|
+
header.paddingRight = "5px";
|
|
53
|
+
}
|
|
54
|
+
header.shadowBlur = control.shadowBlur;
|
|
55
|
+
header.shadowColor = control.shadowColor;
|
|
56
|
+
header.shadowOffsetX = control.shadowOffsetX;
|
|
57
|
+
header.shadowOffsetY = control.shadowOffsetY;
|
|
58
|
+
return panel;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=statics.pure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statics.pure.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/statics.pure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,MAAM,IAAI,GAAG,SAAS,CAAC;AAEvB,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AAExB,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAC9B,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS,GAAG,UAAU,OAAgB,EAAE,IAAY,EAAE,IAAqB,EAAE,OAAyD;QAC1I,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3D,KAAK,CAAC,UAAU,GAAG,CAAC,YAAY,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACnE,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACf,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACvC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACzC,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC7C,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE7C,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import { Control } from \"./control.pure\";\r\nimport { StackPanel } from \"./stackPanel.pure\";\r\nimport { TextBlock } from \"./textBlock.pure\";\r\n\r\n/**\r\n * Forcing an export so that this code will execute\r\n * @internal\r\n */\r\nconst Name = \"Statics\";\r\n\r\nexport { Name as name };\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers GUI static helpers such as {@link Control.AddHeader}.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGUIStatics(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n /**\r\n * Creates a stack panel that can be used to render headers\r\n * @param control defines the control to associate with the header\r\n * @param text defines the text of the header\r\n * @param size defines the size of the header\r\n * @param options defines options used to configure the header\r\n * @param options.isHorizontal\r\n * @param options.controlFirst\r\n * @returns a new StackPanel\r\n */\r\n Control.AddHeader = function (control: Control, text: string, size: string | number, options: { isHorizontal: boolean; controlFirst: boolean }): StackPanel {\r\n const panel = new StackPanel(\"panel\");\r\n const isHorizontal = options ? options.isHorizontal : true;\r\n const controlFirst = options ? options.controlFirst : true;\r\n\r\n panel.isVertical = !isHorizontal;\r\n\r\n const header = new TextBlock(\"header\");\r\n header.text = text;\r\n header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n if (isHorizontal) {\r\n header.width = size;\r\n } else {\r\n header.height = size;\r\n }\r\n\r\n if (controlFirst) {\r\n panel.addControl(control);\r\n panel.addControl(header);\r\n header.paddingLeft = \"5px\";\r\n } else {\r\n panel.addControl(header);\r\n panel.addControl(control);\r\n header.paddingRight = \"5px\";\r\n }\r\n\r\n header.shadowBlur = control.shadowBlur;\r\n header.shadowColor = control.shadowColor;\r\n header.shadowOffsetX = control.shadowOffsetX;\r\n header.shadowOffsetY = control.shadowOffsetY;\r\n\r\n return panel;\r\n };\r\n}\r\n"]}
|