@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
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2
|
-
import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
3
|
-
import { Control } from "./control";
|
|
4
|
-
import { StackPanel } from "./stackPanel";
|
|
5
|
-
import { PointerInfoBase } from
|
|
6
|
-
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
|
|
7
|
-
/**
|
|
8
|
-
* Class used to create radio button controls
|
|
9
|
-
*/
|
|
10
|
-
export declare class RadioButton extends Control {
|
|
11
|
-
name?: string | undefined;
|
|
12
|
-
private _isChecked;
|
|
13
|
-
private _background;
|
|
14
|
-
private _checkSizeRatio;
|
|
15
|
-
private _thickness;
|
|
16
|
-
/** Gets or sets border thickness */
|
|
17
|
-
get thickness(): number;
|
|
18
|
-
set thickness(value: number);
|
|
19
|
-
/** Gets or sets group name */
|
|
20
|
-
group: string;
|
|
21
|
-
/** Observable raised when isChecked is changed */
|
|
22
|
-
onIsCheckedChangedObservable: Observable<boolean>;
|
|
23
|
-
/** Gets or sets a value indicating the ratio between overall size and check size */
|
|
24
|
-
get checkSizeRatio(): number;
|
|
25
|
-
set checkSizeRatio(value: number);
|
|
26
|
-
/** Gets or sets background color */
|
|
27
|
-
get background(): string;
|
|
28
|
-
set background(value: string);
|
|
29
|
-
/** Gets or sets a boolean indicating if the checkbox is checked or not */
|
|
30
|
-
get isChecked(): boolean;
|
|
31
|
-
set isChecked(value: boolean);
|
|
32
|
-
/**
|
|
33
|
-
* Creates a new RadioButton
|
|
34
|
-
* @param name defines the control name
|
|
35
|
-
*/
|
|
36
|
-
constructor(name?: string | undefined);
|
|
37
|
-
protected _getTypeName(): string;
|
|
38
|
-
_draw(context: ICanvasRenderingContext): void;
|
|
39
|
-
_onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Utility function to easily create a radio button with a header
|
|
42
|
-
* @param title defines the label to use for the header
|
|
43
|
-
* @param group defines the group to use for the radio button
|
|
44
|
-
* @param isChecked defines the initial state of the radio button
|
|
45
|
-
* @param onValueChanged defines the callback to call when value changes
|
|
46
|
-
* @returns a StackPanel containing the radio button and a textBlock
|
|
47
|
-
*/
|
|
48
|
-
static AddRadioButtonWithHeader(title: string, group: string, isChecked: boolean, onValueChanged: (button: RadioButton, value: boolean) => void): StackPanel;
|
|
49
|
-
}
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
import type { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
+
import { Control } from "./control";
|
|
4
|
+
import { StackPanel } from "./stackPanel";
|
|
5
|
+
import type { PointerInfoBase } from "@babylonjs/core/Events/pointerEvents.js";
|
|
6
|
+
import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
7
|
+
/**
|
|
8
|
+
* Class used to create radio button controls
|
|
9
|
+
*/
|
|
10
|
+
export declare class RadioButton extends Control {
|
|
11
|
+
name?: string | undefined;
|
|
12
|
+
private _isChecked;
|
|
13
|
+
private _background;
|
|
14
|
+
private _checkSizeRatio;
|
|
15
|
+
private _thickness;
|
|
16
|
+
/** Gets or sets border thickness */
|
|
17
|
+
get thickness(): number;
|
|
18
|
+
set thickness(value: number);
|
|
19
|
+
/** Gets or sets group name */
|
|
20
|
+
group: string;
|
|
21
|
+
/** Observable raised when isChecked is changed */
|
|
22
|
+
onIsCheckedChangedObservable: Observable<boolean>;
|
|
23
|
+
/** Gets or sets a value indicating the ratio between overall size and check size */
|
|
24
|
+
get checkSizeRatio(): number;
|
|
25
|
+
set checkSizeRatio(value: number);
|
|
26
|
+
/** Gets or sets background color */
|
|
27
|
+
get background(): string;
|
|
28
|
+
set background(value: string);
|
|
29
|
+
/** Gets or sets a boolean indicating if the checkbox is checked or not */
|
|
30
|
+
get isChecked(): boolean;
|
|
31
|
+
set isChecked(value: boolean);
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new RadioButton
|
|
34
|
+
* @param name defines the control name
|
|
35
|
+
*/
|
|
36
|
+
constructor(name?: string | undefined);
|
|
37
|
+
protected _getTypeName(): string;
|
|
38
|
+
_draw(context: ICanvasRenderingContext): void;
|
|
39
|
+
_onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Utility function to easily create a radio button with a header
|
|
42
|
+
* @param title defines the label to use for the header
|
|
43
|
+
* @param group defines the group to use for the radio button
|
|
44
|
+
* @param isChecked defines the initial state of the radio button
|
|
45
|
+
* @param onValueChanged defines the callback to call when value changes
|
|
46
|
+
* @returns a StackPanel containing the radio button and a textBlock
|
|
47
|
+
*/
|
|
48
|
+
static AddRadioButtonWithHeader(title: string, group: string, isChecked: boolean, onValueChanged: (button: RadioButton, value: boolean) => void): StackPanel;
|
|
49
|
+
}
|
|
@@ -1,206 +1,206 @@
|
|
|
1
|
-
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
3
|
-
import { Control } from "./control
|
|
4
|
-
import { StackPanel } from "./stackPanel
|
|
5
|
-
import { TextBlock } from "./textBlock
|
|
6
|
-
import { RegisterClass } from
|
|
7
|
-
import { serialize } from
|
|
8
|
-
/**
|
|
9
|
-
* Class used to create radio button controls
|
|
10
|
-
*/
|
|
11
|
-
var RadioButton = /** @class */ (function (_super) {
|
|
12
|
-
__extends(RadioButton, _super);
|
|
13
|
-
/**
|
|
14
|
-
* Creates a new RadioButton
|
|
15
|
-
* @param name defines the control name
|
|
16
|
-
*/
|
|
17
|
-
function RadioButton(name) {
|
|
18
|
-
var _this = _super.call(this, name) || this;
|
|
19
|
-
_this.name = name;
|
|
20
|
-
_this._isChecked = false;
|
|
21
|
-
_this._background = "black";
|
|
22
|
-
_this._checkSizeRatio = 0.8;
|
|
23
|
-
_this._thickness = 1;
|
|
24
|
-
/** Gets or sets group name */
|
|
25
|
-
_this.group = "";
|
|
26
|
-
/** Observable raised when isChecked is changed */
|
|
27
|
-
_this.onIsCheckedChangedObservable = new Observable();
|
|
28
|
-
_this.isPointerBlocker = true;
|
|
29
|
-
return _this;
|
|
30
|
-
}
|
|
31
|
-
Object.defineProperty(RadioButton.prototype, "thickness", {
|
|
32
|
-
/** Gets or sets border thickness */
|
|
33
|
-
get: function () {
|
|
34
|
-
return this._thickness;
|
|
35
|
-
},
|
|
36
|
-
set: function (value) {
|
|
37
|
-
if (this._thickness === value) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
this._thickness = value;
|
|
41
|
-
this._markAsDirty();
|
|
42
|
-
},
|
|
43
|
-
enumerable: false,
|
|
44
|
-
configurable: true
|
|
45
|
-
});
|
|
46
|
-
Object.defineProperty(RadioButton.prototype, "checkSizeRatio", {
|
|
47
|
-
/** Gets or sets a value indicating the ratio between overall size and check size */
|
|
48
|
-
get: function () {
|
|
49
|
-
return this._checkSizeRatio;
|
|
50
|
-
},
|
|
51
|
-
set: function (value) {
|
|
52
|
-
value = Math.max(Math.min(1, value), 0);
|
|
53
|
-
if (this._checkSizeRatio === value) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this._checkSizeRatio = value;
|
|
57
|
-
this._markAsDirty();
|
|
58
|
-
},
|
|
59
|
-
enumerable: false,
|
|
60
|
-
configurable: true
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(RadioButton.prototype, "background", {
|
|
63
|
-
/** Gets or sets background color */
|
|
64
|
-
get: function () {
|
|
65
|
-
return this._background;
|
|
66
|
-
},
|
|
67
|
-
set: function (value) {
|
|
68
|
-
if (this._background === value) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
this._background = value;
|
|
72
|
-
this._markAsDirty();
|
|
73
|
-
},
|
|
74
|
-
enumerable: false,
|
|
75
|
-
configurable: true
|
|
76
|
-
});
|
|
77
|
-
Object.defineProperty(RadioButton.prototype, "isChecked", {
|
|
78
|
-
/** Gets or sets a boolean indicating if the checkbox is checked or not */
|
|
79
|
-
get: function () {
|
|
80
|
-
return this._isChecked;
|
|
81
|
-
},
|
|
82
|
-
set: function (value) {
|
|
83
|
-
var _this = this;
|
|
84
|
-
if (this._isChecked === value) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
this._isChecked = value;
|
|
88
|
-
this._markAsDirty();
|
|
89
|
-
this.onIsCheckedChangedObservable.notifyObservers(value);
|
|
90
|
-
if (this._isChecked && this._host) {
|
|
91
|
-
// Update all controls from same group
|
|
92
|
-
this._host.executeOnAllControls(function (control) {
|
|
93
|
-
if (control === _this) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
if (control.group === undefined) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
var childRadio = control;
|
|
100
|
-
if (childRadio.group === _this.group) {
|
|
101
|
-
childRadio.isChecked = false;
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
enumerable: false,
|
|
107
|
-
configurable: true
|
|
108
|
-
});
|
|
109
|
-
RadioButton.prototype._getTypeName = function () {
|
|
110
|
-
return "RadioButton";
|
|
111
|
-
};
|
|
112
|
-
RadioButton.prototype._draw = function (context) {
|
|
113
|
-
context.save();
|
|
114
|
-
this._applyStates(context);
|
|
115
|
-
var actualWidth = this._currentMeasure.width - this._thickness;
|
|
116
|
-
var actualHeight = this._currentMeasure.height - this._thickness;
|
|
117
|
-
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
118
|
-
context.shadowColor = this.shadowColor;
|
|
119
|
-
context.shadowBlur = this.shadowBlur;
|
|
120
|
-
context.shadowOffsetX = this.shadowOffsetX;
|
|
121
|
-
context.shadowOffsetY = this.shadowOffsetY;
|
|
122
|
-
}
|
|
123
|
-
// Outer
|
|
124
|
-
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);
|
|
125
|
-
context.fillStyle = this._isEnabled ? this._background : this._disabledColor;
|
|
126
|
-
context.fill();
|
|
127
|
-
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
128
|
-
context.shadowBlur = 0;
|
|
129
|
-
context.shadowOffsetX = 0;
|
|
130
|
-
context.shadowOffsetY = 0;
|
|
131
|
-
}
|
|
132
|
-
context.strokeStyle = this.color;
|
|
133
|
-
context.lineWidth = this._thickness;
|
|
134
|
-
context.stroke();
|
|
135
|
-
// Inner
|
|
136
|
-
if (this._isChecked) {
|
|
137
|
-
context.fillStyle = this._isEnabled ? this.color : this._disabledColor;
|
|
138
|
-
var offsetWidth = actualWidth * this._checkSizeRatio;
|
|
139
|
-
var offseHeight = actualHeight * this._checkSizeRatio;
|
|
140
|
-
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, offsetWidth / 2 - this._thickness / 2, offseHeight / 2 - this._thickness / 2, context);
|
|
141
|
-
context.fill();
|
|
142
|
-
}
|
|
143
|
-
context.restore();
|
|
144
|
-
};
|
|
145
|
-
// Events
|
|
146
|
-
RadioButton.prototype._onPointerDown = function (target, coordinates, pointerId, buttonIndex, pi) {
|
|
147
|
-
if (!_super.prototype._onPointerDown.call(this, target, coordinates, pointerId, buttonIndex, pi)) {
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
if (this.isReadOnly) {
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
if (!this.isChecked) {
|
|
154
|
-
this.isChecked = true;
|
|
155
|
-
}
|
|
156
|
-
return true;
|
|
157
|
-
};
|
|
158
|
-
/**
|
|
159
|
-
* Utility function to easily create a radio button with a header
|
|
160
|
-
* @param title defines the label to use for the header
|
|
161
|
-
* @param group defines the group to use for the radio button
|
|
162
|
-
* @param isChecked defines the initial state of the radio button
|
|
163
|
-
* @param onValueChanged defines the callback to call when value changes
|
|
164
|
-
* @returns a StackPanel containing the radio button and a textBlock
|
|
165
|
-
*/
|
|
166
|
-
RadioButton.AddRadioButtonWithHeader = function (title, group, isChecked, onValueChanged) {
|
|
167
|
-
var panel = new StackPanel();
|
|
168
|
-
panel.isVertical = false;
|
|
169
|
-
panel.height = "30px";
|
|
170
|
-
var radio = new RadioButton();
|
|
171
|
-
radio.width = "20px";
|
|
172
|
-
radio.height = "20px";
|
|
173
|
-
radio.isChecked = isChecked;
|
|
174
|
-
radio.color = "green";
|
|
175
|
-
radio.group = group;
|
|
176
|
-
radio.onIsCheckedChangedObservable.add(function (value) { return onValueChanged(radio, value); });
|
|
177
|
-
panel.addControl(radio);
|
|
178
|
-
var header = new TextBlock();
|
|
179
|
-
header.text = title;
|
|
180
|
-
header.width = "180px";
|
|
181
|
-
header.paddingLeft = "5px";
|
|
182
|
-
header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
183
|
-
header.color = "white";
|
|
184
|
-
panel.addControl(header);
|
|
185
|
-
return panel;
|
|
186
|
-
};
|
|
187
|
-
__decorate([
|
|
188
|
-
serialize()
|
|
189
|
-
], RadioButton.prototype, "thickness", null);
|
|
190
|
-
__decorate([
|
|
191
|
-
serialize()
|
|
192
|
-
], RadioButton.prototype, "group", void 0);
|
|
193
|
-
__decorate([
|
|
194
|
-
serialize()
|
|
195
|
-
], RadioButton.prototype, "checkSizeRatio", null);
|
|
196
|
-
__decorate([
|
|
197
|
-
serialize()
|
|
198
|
-
], RadioButton.prototype, "background", null);
|
|
199
|
-
__decorate([
|
|
200
|
-
serialize()
|
|
201
|
-
], RadioButton.prototype, "isChecked", null);
|
|
202
|
-
return RadioButton;
|
|
203
|
-
}(Control));
|
|
204
|
-
export { RadioButton };
|
|
205
|
-
RegisterClass("BABYLON.GUI.RadioButton", RadioButton);
|
|
1
|
+
import { __decorate, __extends } from "tslib";
|
|
2
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
3
|
+
import { Control } from "./control";
|
|
4
|
+
import { StackPanel } from "./stackPanel";
|
|
5
|
+
import { TextBlock } from "./textBlock";
|
|
6
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
7
|
+
import { serialize } from "@babylonjs/core/Misc/decorators.js";
|
|
8
|
+
/**
|
|
9
|
+
* Class used to create radio button controls
|
|
10
|
+
*/
|
|
11
|
+
var RadioButton = /** @class */ (function (_super) {
|
|
12
|
+
__extends(RadioButton, _super);
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new RadioButton
|
|
15
|
+
* @param name defines the control name
|
|
16
|
+
*/
|
|
17
|
+
function RadioButton(name) {
|
|
18
|
+
var _this = _super.call(this, name) || this;
|
|
19
|
+
_this.name = name;
|
|
20
|
+
_this._isChecked = false;
|
|
21
|
+
_this._background = "black";
|
|
22
|
+
_this._checkSizeRatio = 0.8;
|
|
23
|
+
_this._thickness = 1;
|
|
24
|
+
/** Gets or sets group name */
|
|
25
|
+
_this.group = "";
|
|
26
|
+
/** Observable raised when isChecked is changed */
|
|
27
|
+
_this.onIsCheckedChangedObservable = new Observable();
|
|
28
|
+
_this.isPointerBlocker = true;
|
|
29
|
+
return _this;
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(RadioButton.prototype, "thickness", {
|
|
32
|
+
/** Gets or sets border thickness */
|
|
33
|
+
get: function () {
|
|
34
|
+
return this._thickness;
|
|
35
|
+
},
|
|
36
|
+
set: function (value) {
|
|
37
|
+
if (this._thickness === value) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
this._thickness = value;
|
|
41
|
+
this._markAsDirty();
|
|
42
|
+
},
|
|
43
|
+
enumerable: false,
|
|
44
|
+
configurable: true
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(RadioButton.prototype, "checkSizeRatio", {
|
|
47
|
+
/** Gets or sets a value indicating the ratio between overall size and check size */
|
|
48
|
+
get: function () {
|
|
49
|
+
return this._checkSizeRatio;
|
|
50
|
+
},
|
|
51
|
+
set: function (value) {
|
|
52
|
+
value = Math.max(Math.min(1, value), 0);
|
|
53
|
+
if (this._checkSizeRatio === value) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this._checkSizeRatio = value;
|
|
57
|
+
this._markAsDirty();
|
|
58
|
+
},
|
|
59
|
+
enumerable: false,
|
|
60
|
+
configurable: true
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(RadioButton.prototype, "background", {
|
|
63
|
+
/** Gets or sets background color */
|
|
64
|
+
get: function () {
|
|
65
|
+
return this._background;
|
|
66
|
+
},
|
|
67
|
+
set: function (value) {
|
|
68
|
+
if (this._background === value) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this._background = value;
|
|
72
|
+
this._markAsDirty();
|
|
73
|
+
},
|
|
74
|
+
enumerable: false,
|
|
75
|
+
configurable: true
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(RadioButton.prototype, "isChecked", {
|
|
78
|
+
/** Gets or sets a boolean indicating if the checkbox is checked or not */
|
|
79
|
+
get: function () {
|
|
80
|
+
return this._isChecked;
|
|
81
|
+
},
|
|
82
|
+
set: function (value) {
|
|
83
|
+
var _this = this;
|
|
84
|
+
if (this._isChecked === value) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this._isChecked = value;
|
|
88
|
+
this._markAsDirty();
|
|
89
|
+
this.onIsCheckedChangedObservable.notifyObservers(value);
|
|
90
|
+
if (this._isChecked && this._host) {
|
|
91
|
+
// Update all controls from same group
|
|
92
|
+
this._host.executeOnAllControls(function (control) {
|
|
93
|
+
if (control === _this) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (control.group === undefined) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
var childRadio = control;
|
|
100
|
+
if (childRadio.group === _this.group) {
|
|
101
|
+
childRadio.isChecked = false;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
enumerable: false,
|
|
107
|
+
configurable: true
|
|
108
|
+
});
|
|
109
|
+
RadioButton.prototype._getTypeName = function () {
|
|
110
|
+
return "RadioButton";
|
|
111
|
+
};
|
|
112
|
+
RadioButton.prototype._draw = function (context) {
|
|
113
|
+
context.save();
|
|
114
|
+
this._applyStates(context);
|
|
115
|
+
var actualWidth = this._currentMeasure.width - this._thickness;
|
|
116
|
+
var actualHeight = this._currentMeasure.height - this._thickness;
|
|
117
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
118
|
+
context.shadowColor = this.shadowColor;
|
|
119
|
+
context.shadowBlur = this.shadowBlur;
|
|
120
|
+
context.shadowOffsetX = this.shadowOffsetX;
|
|
121
|
+
context.shadowOffsetY = this.shadowOffsetY;
|
|
122
|
+
}
|
|
123
|
+
// Outer
|
|
124
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);
|
|
125
|
+
context.fillStyle = this._isEnabled ? this._background : this._disabledColor;
|
|
126
|
+
context.fill();
|
|
127
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
128
|
+
context.shadowBlur = 0;
|
|
129
|
+
context.shadowOffsetX = 0;
|
|
130
|
+
context.shadowOffsetY = 0;
|
|
131
|
+
}
|
|
132
|
+
context.strokeStyle = this.color;
|
|
133
|
+
context.lineWidth = this._thickness;
|
|
134
|
+
context.stroke();
|
|
135
|
+
// Inner
|
|
136
|
+
if (this._isChecked) {
|
|
137
|
+
context.fillStyle = this._isEnabled ? this.color : this._disabledColor;
|
|
138
|
+
var offsetWidth = actualWidth * this._checkSizeRatio;
|
|
139
|
+
var offseHeight = actualHeight * this._checkSizeRatio;
|
|
140
|
+
Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, offsetWidth / 2 - this._thickness / 2, offseHeight / 2 - this._thickness / 2, context);
|
|
141
|
+
context.fill();
|
|
142
|
+
}
|
|
143
|
+
context.restore();
|
|
144
|
+
};
|
|
145
|
+
// Events
|
|
146
|
+
RadioButton.prototype._onPointerDown = function (target, coordinates, pointerId, buttonIndex, pi) {
|
|
147
|
+
if (!_super.prototype._onPointerDown.call(this, target, coordinates, pointerId, buttonIndex, pi)) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
if (this.isReadOnly) {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
if (!this.isChecked) {
|
|
154
|
+
this.isChecked = true;
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Utility function to easily create a radio button with a header
|
|
160
|
+
* @param title defines the label to use for the header
|
|
161
|
+
* @param group defines the group to use for the radio button
|
|
162
|
+
* @param isChecked defines the initial state of the radio button
|
|
163
|
+
* @param onValueChanged defines the callback to call when value changes
|
|
164
|
+
* @returns a StackPanel containing the radio button and a textBlock
|
|
165
|
+
*/
|
|
166
|
+
RadioButton.AddRadioButtonWithHeader = function (title, group, isChecked, onValueChanged) {
|
|
167
|
+
var panel = new StackPanel();
|
|
168
|
+
panel.isVertical = false;
|
|
169
|
+
panel.height = "30px";
|
|
170
|
+
var radio = new RadioButton();
|
|
171
|
+
radio.width = "20px";
|
|
172
|
+
radio.height = "20px";
|
|
173
|
+
radio.isChecked = isChecked;
|
|
174
|
+
radio.color = "green";
|
|
175
|
+
radio.group = group;
|
|
176
|
+
radio.onIsCheckedChangedObservable.add(function (value) { return onValueChanged(radio, value); });
|
|
177
|
+
panel.addControl(radio);
|
|
178
|
+
var header = new TextBlock();
|
|
179
|
+
header.text = title;
|
|
180
|
+
header.width = "180px";
|
|
181
|
+
header.paddingLeft = "5px";
|
|
182
|
+
header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
183
|
+
header.color = "white";
|
|
184
|
+
panel.addControl(header);
|
|
185
|
+
return panel;
|
|
186
|
+
};
|
|
187
|
+
__decorate([
|
|
188
|
+
serialize()
|
|
189
|
+
], RadioButton.prototype, "thickness", null);
|
|
190
|
+
__decorate([
|
|
191
|
+
serialize()
|
|
192
|
+
], RadioButton.prototype, "group", void 0);
|
|
193
|
+
__decorate([
|
|
194
|
+
serialize()
|
|
195
|
+
], RadioButton.prototype, "checkSizeRatio", null);
|
|
196
|
+
__decorate([
|
|
197
|
+
serialize()
|
|
198
|
+
], RadioButton.prototype, "background", null);
|
|
199
|
+
__decorate([
|
|
200
|
+
serialize()
|
|
201
|
+
], RadioButton.prototype, "isChecked", null);
|
|
202
|
+
return RadioButton;
|
|
203
|
+
}(Control));
|
|
204
|
+
export { RadioButton };
|
|
205
|
+
RegisterClass("BABYLON.GUI.RadioButton", RadioButton);
|
|
206
206
|
//# sourceMappingURL=radioButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radioButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/radioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to create radio button controls\r\n */\r\nexport class RadioButton extends Control {\r\n private _isChecked = false;\r\n private _background = \"black\";\r\n private _checkSizeRatio = 0.8;\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets group name */\r\n @serialize()\r\n public group = \"\";\r\n\r\n /** Observable raised when isChecked is changed */\r\n public onIsCheckedChangedObservable = new Observable<boolean>();\r\n\r\n /** Gets or sets a value indicating the ratio between overall size and check size */\r\n @serialize()\r\n public get checkSizeRatio(): number {\r\n return this._checkSizeRatio;\r\n }\r\n\r\n public set checkSizeRatio(value: number) {\r\n value = Math.max(Math.min(1, value), 0);\r\n\r\n if (this._checkSizeRatio === value) {\r\n return;\r\n }\r\n\r\n this._checkSizeRatio = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the checkbox is checked or not */\r\n @serialize()\r\n public get isChecked(): boolean {\r\n return this._isChecked;\r\n }\r\n\r\n public set isChecked(value: boolean) {\r\n if (this._isChecked === value) {\r\n return;\r\n }\r\n\r\n this._isChecked = value;\r\n this._markAsDirty();\r\n\r\n this.onIsCheckedChangedObservable.notifyObservers(value);\r\n\r\n if (this._isChecked && this._host) {\r\n // Update all controls from same group\r\n this._host.executeOnAllControls((control) => {\r\n if (control === this) {\r\n return;\r\n }\r\n\r\n if ((<any>control).group === undefined) {\r\n return;\r\n }\r\n var childRadio = (<RadioButton>control);\r\n if (childRadio.group === this.group) {\r\n childRadio.isChecked = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new RadioButton\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"RadioButton\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n let actualWidth = this._currentMeasure.width - this._thickness;\r\n let actualHeight = this._currentMeasure.height - this._thickness;\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n // Outer\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);\r\n\r\n context.fillStyle = this._isEnabled ? this._background : this._disabledColor;\r\n context.fill();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n\r\n // Inner\r\n if (this._isChecked) {\r\n context.fillStyle = this._isEnabled ? this.color : this._disabledColor;\r\n let offsetWidth = actualWidth * this._checkSizeRatio;\r\n let offseHeight = actualHeight * this._checkSizeRatio;\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n offsetWidth / 2 - this._thickness / 2, offseHeight / 2 - this._thickness / 2, context);\r\n\r\n context.fill();\r\n }\r\n context.restore();\r\n }\r\n\r\n // Events\r\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\r\n return false;\r\n }\r\n\r\n if (this.isReadOnly) {\r\n return true;\r\n }\r\n\r\n if (!this.isChecked) {\r\n this.isChecked = true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Utility function to easily create a radio button with a header\r\n * @param title defines the label to use for the header\r\n * @param group defines the group to use for the radio button\r\n * @param isChecked defines the initial state of the radio button\r\n * @param onValueChanged defines the callback to call when value changes\r\n * @returns a StackPanel containing the radio button and a textBlock\r\n */\r\n public static AddRadioButtonWithHeader(title: string, group: string, isChecked: boolean, onValueChanged: (button: RadioButton, value: boolean) => void): StackPanel {\r\n var panel = new StackPanel();\r\n panel.isVertical = false;\r\n panel.height = \"30px\";\r\n\r\n var radio = new RadioButton();\r\n radio.width = \"20px\";\r\n radio.height = \"20px\";\r\n radio.isChecked = isChecked;\r\n radio.color = \"green\";\r\n radio.group = group;\r\n radio.onIsCheckedChangedObservable.add((value) => onValueChanged(radio, value));\r\n panel.addControl(radio);\r\n\r\n var header = new TextBlock();\r\n header.text = title;\r\n header.width = \"180px\";\r\n header.paddingLeft = \"5px\";\r\n header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n header.color = \"white\";\r\n panel.addControl(header);\r\n\r\n return panel;\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.RadioButton\", RadioButton);"]}
|
|
1
|
+
{"version":3,"file":"radioButton.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/radioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to create radio button controls\r\n */\r\nexport class RadioButton extends Control {\r\n private _isChecked = false;\r\n private _background = \"black\";\r\n private _checkSizeRatio = 0.8;\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets group name */\r\n @serialize()\r\n public group = \"\";\r\n\r\n /** Observable raised when isChecked is changed */\r\n public onIsCheckedChangedObservable = new Observable<boolean>();\r\n\r\n /** Gets or sets a value indicating the ratio between overall size and check size */\r\n @serialize()\r\n public get checkSizeRatio(): number {\r\n return this._checkSizeRatio;\r\n }\r\n\r\n public set checkSizeRatio(value: number) {\r\n value = Math.max(Math.min(1, value), 0);\r\n\r\n if (this._checkSizeRatio === value) {\r\n return;\r\n }\r\n\r\n this._checkSizeRatio = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the checkbox is checked or not */\r\n @serialize()\r\n public get isChecked(): boolean {\r\n return this._isChecked;\r\n }\r\n\r\n public set isChecked(value: boolean) {\r\n if (this._isChecked === value) {\r\n return;\r\n }\r\n\r\n this._isChecked = value;\r\n this._markAsDirty();\r\n\r\n this.onIsCheckedChangedObservable.notifyObservers(value);\r\n\r\n if (this._isChecked && this._host) {\r\n // Update all controls from same group\r\n this._host.executeOnAllControls((control) => {\r\n if (control === this) {\r\n return;\r\n }\r\n\r\n if ((<any>control).group === undefined) {\r\n return;\r\n }\r\n const childRadio = <RadioButton>control;\r\n if (childRadio.group === this.group) {\r\n childRadio.isChecked = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new RadioButton\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"RadioButton\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n const actualWidth = this._currentMeasure.width - this._thickness;\r\n const actualHeight = this._currentMeasure.height - this._thickness;\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n // Outer\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2,\r\n this._currentMeasure.height / 2 - this._thickness / 2,\r\n context\r\n );\r\n\r\n context.fillStyle = this._isEnabled ? this._background : this._disabledColor;\r\n context.fill();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n\r\n // Inner\r\n if (this._isChecked) {\r\n context.fillStyle = this._isEnabled ? this.color : this._disabledColor;\r\n const offsetWidth = actualWidth * this._checkSizeRatio;\r\n const offseHeight = actualHeight * this._checkSizeRatio;\r\n\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n offsetWidth / 2 - this._thickness / 2,\r\n offseHeight / 2 - this._thickness / 2,\r\n context\r\n );\r\n\r\n context.fill();\r\n }\r\n context.restore();\r\n }\r\n\r\n // Events\r\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\r\n return false;\r\n }\r\n\r\n if (this.isReadOnly) {\r\n return true;\r\n }\r\n\r\n if (!this.isChecked) {\r\n this.isChecked = true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Utility function to easily create a radio button with a header\r\n * @param title defines the label to use for the header\r\n * @param group defines the group to use for the radio button\r\n * @param isChecked defines the initial state of the radio button\r\n * @param onValueChanged defines the callback to call when value changes\r\n * @returns a StackPanel containing the radio button and a textBlock\r\n */\r\n public static AddRadioButtonWithHeader(title: string, group: string, isChecked: boolean, onValueChanged: (button: RadioButton, value: boolean) => void): StackPanel {\r\n const panel = new StackPanel();\r\n panel.isVertical = false;\r\n panel.height = \"30px\";\r\n\r\n const radio = new RadioButton();\r\n radio.width = \"20px\";\r\n radio.height = \"20px\";\r\n radio.isChecked = isChecked;\r\n radio.color = \"green\";\r\n radio.group = group;\r\n radio.onIsCheckedChangedObservable.add((value) => onValueChanged(radio, value));\r\n panel.addControl(radio);\r\n\r\n const header = new TextBlock();\r\n header.text = title;\r\n header.width = \"180px\";\r\n header.paddingLeft = \"5px\";\r\n header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n header.color = \"white\";\r\n panel.addControl(header);\r\n\r\n return panel;\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.RadioButton\", RadioButton);\r\n"]}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { Container } from "./container";
|
|
2
|
-
import { Measure } from "../measure";
|
|
3
|
-
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
|
|
4
|
-
/** Class used to create rectangle container */
|
|
5
|
-
export declare class Rectangle extends Container {
|
|
6
|
-
name?: string | undefined;
|
|
7
|
-
private _thickness;
|
|
8
|
-
private _cornerRadius;
|
|
9
|
-
/** Gets or sets border thickness */
|
|
10
|
-
get thickness(): number;
|
|
11
|
-
set thickness(value: number);
|
|
12
|
-
/** Gets or sets the corner radius angle */
|
|
13
|
-
get cornerRadius(): number;
|
|
14
|
-
set cornerRadius(value: number);
|
|
15
|
-
/**
|
|
16
|
-
* Creates a new Rectangle
|
|
17
|
-
* @param name defines the control name
|
|
18
|
-
*/
|
|
19
|
-
constructor(name?: string | undefined);
|
|
20
|
-
protected _getTypeName(): string;
|
|
21
|
-
/** @hidden */
|
|
22
|
-
protected _computeAdditionnalOffsetX(): 1 | 0;
|
|
23
|
-
/** @hidden */
|
|
24
|
-
protected _computeAdditionnalOffsetY(): 1 | 0;
|
|
25
|
-
protected _localDraw(context: ICanvasRenderingContext): void;
|
|
26
|
-
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
27
|
-
private _drawRoundedRect;
|
|
28
|
-
protected _clipForChildren(context: ICanvasRenderingContext): void;
|
|
29
|
-
}
|
|
1
|
+
import { Container } from "./container";
|
|
2
|
+
import type { Measure } from "../measure";
|
|
3
|
+
import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
4
|
+
/** Class used to create rectangle container */
|
|
5
|
+
export declare class Rectangle extends Container {
|
|
6
|
+
name?: string | undefined;
|
|
7
|
+
private _thickness;
|
|
8
|
+
private _cornerRadius;
|
|
9
|
+
/** Gets or sets border thickness */
|
|
10
|
+
get thickness(): number;
|
|
11
|
+
set thickness(value: number);
|
|
12
|
+
/** Gets or sets the corner radius angle */
|
|
13
|
+
get cornerRadius(): number;
|
|
14
|
+
set cornerRadius(value: number);
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new Rectangle
|
|
17
|
+
* @param name defines the control name
|
|
18
|
+
*/
|
|
19
|
+
constructor(name?: string | undefined);
|
|
20
|
+
protected _getTypeName(): string;
|
|
21
|
+
/** @hidden */
|
|
22
|
+
protected _computeAdditionnalOffsetX(): 1 | 0;
|
|
23
|
+
/** @hidden */
|
|
24
|
+
protected _computeAdditionnalOffsetY(): 1 | 0;
|
|
25
|
+
protected _localDraw(context: ICanvasRenderingContext): void;
|
|
26
|
+
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
27
|
+
private _drawRoundedRect;
|
|
28
|
+
protected _clipForChildren(context: ICanvasRenderingContext): void;
|
|
29
|
+
}
|