@babylonjs/gui 5.21.0 → 5.23.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/adtInstrumentation.js +70 -90
- package/2D/adtInstrumentation.js.map +1 -1
- package/2D/advancedDynamicTexture.d.ts +12 -0
- package/2D/advancedDynamicTexture.js +569 -622
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.js +76 -90
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.js +86 -106
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.js +395 -415
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.js +187 -230
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.js +1067 -1353
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.js +152 -196
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.js +32 -40
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.js +30 -35
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/grid.js +172 -212
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.js +489 -592
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/inputPassword.js +9 -16
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.js +380 -467
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/inputTextArea.js +234 -273
- package/2D/controls/inputTextArea.js.map +1 -1
- package/2D/controls/line.js +147 -198
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.js +87 -113
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.js +106 -127
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.js +60 -72
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.js +439 -543
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.js +99 -118
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.js +241 -329
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.js +182 -230
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.js +86 -109
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.js +148 -178
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.js +64 -80
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.js +91 -115
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.js +114 -135
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.js +5 -5
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.js +322 -384
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.js +27 -41
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.js +105 -121
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.js +101 -123
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/math2D.js +62 -70
- package/2D/math2D.js.map +1 -1
- package/2D/measure.js +30 -32
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.js +71 -89
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.js +55 -73
- package/2D/style.js.map +1 -1
- package/2D/valueAndUnit.js +71 -104
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.js +70 -84
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.js +40 -59
- package/3D/behaviors/defaultBehavior.js.map +1 -1
- package/3D/controls/abstractButton3D.js +8 -12
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.js +30 -35
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.js +57 -71
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.js +47 -60
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.js +123 -158
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.js +28 -38
- package/3D/controls/cylinderPanel.js.map +1 -1
- package/3D/controls/handMenu.js +20 -29
- package/3D/controls/handMenu.js.map +1 -1
- package/3D/controls/holographicBackplate.js +52 -72
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.js +160 -200
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.js +176 -206
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/meshButton3D.js +24 -30
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.js +57 -71
- package/3D/controls/nearMenu.js.map +1 -1
- package/3D/controls/planePanel.js +6 -13
- package/3D/controls/planePanel.js.map +1 -1
- package/3D/controls/scatterPanel.js +43 -54
- package/3D/controls/scatterPanel.js.map +1 -1
- package/3D/controls/slider3D.js +168 -222
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/spherePanel.js +29 -39
- package/3D/controls/spherePanel.js.map +1 -1
- package/3D/controls/stackPanel3D.js +36 -49
- package/3D/controls/stackPanel3D.js.map +1 -1
- package/3D/controls/touchButton3D.js +126 -154
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.js +223 -272
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.js +55 -66
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.js +24 -30
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.js +85 -107
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.js +68 -103
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/slateGizmo.js +165 -182
- package/3D/gizmos/slateGizmo.js.map +1 -1
- package/3D/gui3DManager.js +76 -101
- package/3D/gui3DManager.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.js +110 -119
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.js +20 -3
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.js +11 -3
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +168 -177
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +9 -3
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +15 -3
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.js +205 -213
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +6 -3
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +6 -3
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/handle/handleMaterial.js +56 -69
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.js +3 -3
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.js +3 -3
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +158 -166
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +322 -330
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +322 -330
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +9 -3
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +6 -3
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +24 -3
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +12 -3
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +24 -3
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +12 -3
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/3D/vector3WithInfo.js +6 -12
- package/3D/vector3WithInfo.js.map +1 -1
- package/legacy/legacy.js +1 -1
- package/legacy/legacy.js.map +1 -1
- package/package.json +3 -6
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
1
|
import { Button } from "./button.js";
|
|
3
2
|
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
4
3
|
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
@@ -6,26 +5,24 @@ import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
|
6
5
|
* Class used to create a focusable button that can easily handle keyboard events
|
|
7
6
|
* @since 5.0.0
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
_this.name = name;
|
|
8
|
+
export class FocusableButton extends Button {
|
|
9
|
+
constructor(name) {
|
|
10
|
+
super(name);
|
|
11
|
+
this.name = name;
|
|
14
12
|
/** Highlight color when button is focused */
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
this.focusedColor = null;
|
|
14
|
+
this._isFocused = false;
|
|
15
|
+
this._unfocusedColor = null;
|
|
18
16
|
/** Observable raised when the control gets the focus */
|
|
19
|
-
|
|
17
|
+
this.onFocusObservable = new Observable();
|
|
20
18
|
/** Observable raised when the control loses the focus */
|
|
21
|
-
|
|
19
|
+
this.onBlurObservable = new Observable();
|
|
22
20
|
/** Observable raised when a key event was processed */
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return _this;
|
|
21
|
+
this.onKeyboardEventProcessedObservable = new Observable();
|
|
22
|
+
this._unfocusedColor = this.color;
|
|
26
23
|
}
|
|
27
24
|
/** @hidden */
|
|
28
|
-
|
|
25
|
+
onBlur() {
|
|
29
26
|
if (this._isFocused) {
|
|
30
27
|
this._isFocused = false;
|
|
31
28
|
if (this.focusedColor && this._unfocusedColor != null) {
|
|
@@ -34,9 +31,9 @@ var FocusableButton = /** @class */ (function (_super) {
|
|
|
34
31
|
}
|
|
35
32
|
this.onBlurObservable.notifyObservers(this);
|
|
36
33
|
}
|
|
37
|
-
}
|
|
34
|
+
}
|
|
38
35
|
/** @hidden */
|
|
39
|
-
|
|
36
|
+
onFocus() {
|
|
40
37
|
this._isFocused = true;
|
|
41
38
|
if (this.focusedColor) {
|
|
42
39
|
// Save the unfocused color
|
|
@@ -44,33 +41,33 @@ var FocusableButton = /** @class */ (function (_super) {
|
|
|
44
41
|
this.color = this.focusedColor;
|
|
45
42
|
}
|
|
46
43
|
this.onFocusObservable.notifyObservers(this);
|
|
47
|
-
}
|
|
44
|
+
}
|
|
48
45
|
/**
|
|
49
46
|
* Function called to get the list of controls that should not steal the focus from this control
|
|
50
47
|
* @returns an array of controls
|
|
51
48
|
*/
|
|
52
|
-
|
|
49
|
+
keepsFocusWith() {
|
|
53
50
|
return null;
|
|
54
|
-
}
|
|
51
|
+
}
|
|
55
52
|
/**
|
|
56
53
|
* Function to focus a button programmatically
|
|
57
54
|
*/
|
|
58
|
-
|
|
55
|
+
focus() {
|
|
59
56
|
this._host.moveFocusToControl(this);
|
|
60
|
-
}
|
|
57
|
+
}
|
|
61
58
|
/**
|
|
62
59
|
* Function to unfocus a button programmatically
|
|
63
60
|
*/
|
|
64
|
-
|
|
61
|
+
blur() {
|
|
65
62
|
this._host.focusedControl = null;
|
|
66
|
-
}
|
|
63
|
+
}
|
|
67
64
|
/**
|
|
68
65
|
* Handles the keyboard event
|
|
69
66
|
* @param evt Defines the KeyboardEvent
|
|
70
67
|
*/
|
|
71
|
-
|
|
68
|
+
processKeyboard(evt) {
|
|
72
69
|
this.onKeyboardEventProcessedObservable.notifyObservers(evt, -1, this);
|
|
73
|
-
}
|
|
70
|
+
}
|
|
74
71
|
/**
|
|
75
72
|
* @param target
|
|
76
73
|
* @param coordinates
|
|
@@ -79,22 +76,20 @@ var FocusableButton = /** @class */ (function (_super) {
|
|
|
79
76
|
* @param pi
|
|
80
77
|
* @hidden
|
|
81
78
|
*/
|
|
82
|
-
|
|
79
|
+
_onPointerDown(target, coordinates, pointerId, buttonIndex, pi) {
|
|
83
80
|
if (!this.isReadOnly) {
|
|
84
81
|
// Clicking on button should focus
|
|
85
82
|
this.focus();
|
|
86
83
|
}
|
|
87
|
-
return
|
|
88
|
-
}
|
|
84
|
+
return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);
|
|
85
|
+
}
|
|
89
86
|
/** @hidden */
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
displose() {
|
|
88
|
+
super.dispose();
|
|
92
89
|
this.onBlurObservable.clear();
|
|
93
90
|
this.onFocusObservable.clear();
|
|
94
91
|
this.onKeyboardEventProcessedObservable.clear();
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
}(Button));
|
|
98
|
-
export { FocusableButton };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
99
94
|
RegisterClass("BABYLON.GUI.FocusableButton", FocusableButton);
|
|
100
95
|
//# sourceMappingURL=focusableButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focusableButton.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/focusableButton.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"focusableButton.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/focusableButton.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,0CAA4B;AAGpD,OAAO,EAAE,UAAU,EAAE,2CAA6B;AAGlD;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM;IAavC,YAAmB,IAAa;QAC5B,KAAK,CAAC,IAAI,CAAC,CAAC;QADG,SAAI,GAAJ,IAAI,CAAS;QAZhC,6CAA6C;QACtC,iBAAY,GAAqB,IAAI,CAAC;QACrC,eAAU,GAAG,KAAK,CAAC;QACnB,oBAAe,GAAqB,IAAI,CAAC;QAEjD,wDAAwD;QACjD,sBAAiB,GAAG,IAAI,UAAU,EAAU,CAAC;QACpD,yDAAyD;QAClD,qBAAgB,GAAG,IAAI,UAAU,EAAU,CAAC;QACnD,uDAAuD;QAChD,uCAAkC,GAAG,IAAI,UAAU,EAAkB,CAAC;QAKzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,cAAc;IACP,MAAM;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;gBACnD,0CAA0C;gBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;aACrC;YACD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,cAAc;IACP,OAAO;QACV,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,2BAA2B;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;SAClC;QACD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACI,cAAc;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,IAAI;QACP,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,GAAmB;QACtC,IAAI,CAAC,kCAAkC,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CAAC,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAmB;QACpH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,kCAAkC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;QAED,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,cAAc;IACP,QAAQ;QACX,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;CACJ;AACD,aAAa,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport type { Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Button } from \"./button\";\r\nimport type { Control } from \"./control\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport type { IFocusableControl } from \"./focusableControl\";\r\nimport { Observable } from \"core/Misc/observable\";\r\nimport type { IKeyboardEvent } from \"core/Events/deviceInputEvents\";\r\n\r\n/**\r\n * Class used to create a focusable button that can easily handle keyboard events\r\n * @since 5.0.0\r\n */\r\nexport class FocusableButton extends Button implements IFocusableControl {\r\n /** Highlight color when button is focused */\r\n public focusedColor: Nullable<string> = null;\r\n private _isFocused = false;\r\n private _unfocusedColor: Nullable<string> = null;\r\n\r\n /** Observable raised when the control gets the focus */\r\n public onFocusObservable = new Observable<Button>();\r\n /** Observable raised when the control loses the focus */\r\n public onBlurObservable = new Observable<Button>();\r\n /** Observable raised when a key event was processed */\r\n public onKeyboardEventProcessedObservable = new Observable<IKeyboardEvent>();\r\n\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._unfocusedColor = this.color;\r\n }\r\n\r\n /** @hidden */\r\n public onBlur(): void {\r\n if (this._isFocused) {\r\n this._isFocused = false;\r\n if (this.focusedColor && this._unfocusedColor != null) {\r\n // Set color back to saved unfocused color\r\n this.color = this._unfocusedColor;\r\n }\r\n this.onBlurObservable.notifyObservers(this);\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public onFocus(): void {\r\n this._isFocused = true;\r\n\r\n if (this.focusedColor) {\r\n // Save the unfocused color\r\n this._unfocusedColor = this.color;\r\n this.color = this.focusedColor;\r\n }\r\n this.onFocusObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Function called to get the list of controls that should not steal the focus from this control\r\n * @returns an array of controls\r\n */\r\n public keepsFocusWith(): Nullable<Control[]> {\r\n return null;\r\n }\r\n\r\n /**\r\n * Function to focus a button programmatically\r\n */\r\n public focus() {\r\n this._host.moveFocusToControl(this);\r\n }\r\n\r\n /**\r\n * Function to unfocus a button programmatically\r\n */\r\n public blur() {\r\n this._host.focusedControl = null;\r\n }\r\n\r\n /**\r\n * Handles the keyboard event\r\n * @param evt Defines the KeyboardEvent\r\n */\r\n public processKeyboard(evt: IKeyboardEvent): void {\r\n this.onKeyboardEventProcessedObservable.notifyObservers(evt, -1, this);\r\n }\r\n\r\n /**\r\n * @param target\r\n * @param coordinates\r\n * @param pointerId\r\n * @param buttonIndex\r\n * @param pi\r\n * @hidden\r\n */\r\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!this.isReadOnly) {\r\n // Clicking on button should focus\r\n this.focus();\r\n }\r\n\r\n return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);\r\n }\r\n\r\n /** @hidden */\r\n public displose() {\r\n super.dispose();\r\n\r\n this.onBlurObservable.clear();\r\n this.onFocusObservable.clear();\r\n this.onKeyboardEventProcessedObservable.clear();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.FocusableButton\", FocusableButton);\r\n"]}
|