@babylonjs/gui 5.0.0-rc.7 → 5.0.1

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.
Files changed (277) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/adtInstrumentation.js.map +1 -1
  4. package/2D/advancedDynamicTexture.d.ts +449 -448
  5. package/2D/advancedDynamicTexture.js +1318 -1318
  6. package/2D/advancedDynamicTexture.js.map +1 -1
  7. package/2D/controls/button.d.ts +135 -135
  8. package/2D/controls/button.js +276 -276
  9. package/2D/controls/button.js.map +1 -1
  10. package/2D/controls/checkbox.d.ts +59 -59
  11. package/2D/controls/checkbox.js +188 -188
  12. package/2D/controls/checkbox.js.map +1 -1
  13. package/2D/controls/colorpicker.d.ts +103 -103
  14. package/2D/controls/colorpicker.js +1417 -1417
  15. package/2D/controls/colorpicker.js.map +1 -1
  16. package/2D/controls/container.d.ts +175 -175
  17. package/2D/controls/container.js +570 -570
  18. package/2D/controls/container.js.map +1 -1
  19. package/2D/controls/control.d.ts +866 -866
  20. package/2D/controls/control.js +2433 -2433
  21. package/2D/controls/control.js.map +1 -1
  22. package/2D/controls/displayGrid.d.ts +53 -53
  23. package/2D/controls/displayGrid.js +245 -245
  24. package/2D/controls/displayGrid.js.map +1 -1
  25. package/2D/controls/ellipse.d.ts +21 -21
  26. package/2D/controls/ellipse.js +85 -85
  27. package/2D/controls/ellipse.js.map +1 -1
  28. package/2D/controls/focusableButton.d.ts +59 -59
  29. package/2D/controls/focusableButton.js +99 -99
  30. package/2D/controls/focusableButton.js.map +1 -1
  31. package/2D/controls/focusableControl.d.ts +34 -34
  32. package/2D/controls/focusableControl.js +1 -1
  33. package/2D/controls/focusableControl.js.map +1 -1
  34. package/2D/controls/grid.d.ts +139 -139
  35. package/2D/controls/grid.js +529 -529
  36. package/2D/controls/grid.js.map +1 -1
  37. package/2D/controls/image.d.ts +204 -204
  38. package/2D/controls/image.js +887 -887
  39. package/2D/controls/image.js.map +1 -1
  40. package/2D/controls/index.d.ts +29 -29
  41. package/2D/controls/index.js +29 -29
  42. package/2D/controls/inputPassword.d.ts +9 -8
  43. package/2D/controls/inputPassword.js +28 -25
  44. package/2D/controls/inputPassword.js.map +1 -1
  45. package/2D/controls/inputText.d.ts +201 -201
  46. package/2D/controls/inputText.js +1119 -1119
  47. package/2D/controls/inputText.js.map +1 -1
  48. package/2D/controls/line.d.ts +66 -66
  49. package/2D/controls/line.js +271 -271
  50. package/2D/controls/line.js.map +1 -1
  51. package/2D/controls/multiLine.d.ts +75 -75
  52. package/2D/controls/multiLine.js +262 -262
  53. package/2D/controls/multiLine.js.map +1 -1
  54. package/2D/controls/radioButton.d.ts +49 -49
  55. package/2D/controls/radioButton.js +205 -205
  56. package/2D/controls/radioButton.js.map +1 -1
  57. package/2D/controls/rectangle.d.ts +29 -29
  58. package/2D/controls/rectangle.js +150 -150
  59. package/2D/controls/rectangle.js.map +1 -1
  60. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -182
  61. package/2D/controls/scrollViewers/scrollViewer.js +677 -677
  62. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  63. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -57
  64. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -278
  65. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  66. package/2D/controls/selector.d.ts +263 -263
  67. package/2D/controls/selector.js +692 -692
  68. package/2D/controls/sliders/baseSlider.d.ts +82 -82
  69. package/2D/controls/sliders/baseSlider.js +347 -347
  70. package/2D/controls/sliders/baseSlider.js.map +1 -1
  71. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -49
  72. package/2D/controls/sliders/imageBasedSlider.js +192 -192
  73. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  74. package/2D/controls/sliders/imageScrollBar.d.ts +65 -65
  75. package/2D/controls/sliders/imageScrollBar.js +263 -263
  76. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  77. package/2D/controls/sliders/scrollBar.d.ts +38 -38
  78. package/2D/controls/sliders/scrollBar.js +143 -143
  79. package/2D/controls/sliders/scrollBar.js.map +1 -1
  80. package/2D/controls/sliders/slider.d.ts +35 -35
  81. package/2D/controls/sliders/slider.js +271 -271
  82. package/2D/controls/sliders/slider.js.map +1 -1
  83. package/2D/controls/stackPanel.d.ts +64 -64
  84. package/2D/controls/stackPanel.js +246 -246
  85. package/2D/controls/stackPanel.js.map +1 -1
  86. package/2D/controls/statics.d.ts +6 -6
  87. package/2D/controls/statics.js +49 -49
  88. package/2D/controls/textBlock.d.ts +175 -175
  89. package/2D/controls/textBlock.js +603 -603
  90. package/2D/controls/textBlock.js.map +1 -1
  91. package/2D/controls/textWrapper.d.ts +13 -13
  92. package/2D/controls/textWrapper.js +101 -101
  93. package/2D/controls/toggleButton.d.ts +117 -117
  94. package/2D/controls/toggleButton.js +268 -268
  95. package/2D/controls/toggleButton.js.map +1 -1
  96. package/2D/controls/virtualKeyboard.d.ts +96 -96
  97. package/2D/controls/virtualKeyboard.js +256 -256
  98. package/2D/controls/virtualKeyboard.js.map +1 -1
  99. package/2D/index.d.ts +9 -9
  100. package/2D/index.js +10 -9
  101. package/2D/index.js.map +1 -1
  102. package/2D/math2D.d.ts +117 -117
  103. package/2D/math2D.js +221 -221
  104. package/2D/math2D.js.map +1 -1
  105. package/2D/measure.d.ts +77 -77
  106. package/2D/measure.js +139 -139
  107. package/2D/measure.js.map +1 -1
  108. package/2D/multiLinePoint.d.ts +47 -47
  109. package/2D/multiLinePoint.js +127 -127
  110. package/2D/multiLinePoint.js.map +1 -1
  111. package/2D/style.d.ts +46 -46
  112. package/2D/style.js +97 -97
  113. package/2D/style.js.map +1 -1
  114. package/2D/valueAndUnit.d.ts +89 -89
  115. package/2D/valueAndUnit.js +226 -226
  116. package/2D/valueAndUnit.js.map +1 -1
  117. package/2D/xmlLoader.d.ts +60 -60
  118. package/2D/xmlLoader.js +348 -348
  119. package/2D/xmlLoader.js.map +1 -1
  120. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  121. package/3D/behaviors/defaultBehavior.js +121 -121
  122. package/3D/behaviors/defaultBehavior.js.map +1 -1
  123. package/3D/controls/abstractButton3D.d.ts +15 -15
  124. package/3D/controls/abstractButton3D.js +25 -25
  125. package/3D/controls/abstractButton3D.js.map +1 -1
  126. package/3D/controls/button3D.d.ts +30 -30
  127. package/3D/controls/button3D.js +93 -93
  128. package/3D/controls/button3D.js.map +1 -1
  129. package/3D/controls/container3D.d.ts +72 -72
  130. package/3D/controls/container3D.js +139 -139
  131. package/3D/controls/container3D.js.map +1 -1
  132. package/3D/controls/contentDisplay3D.d.ts +30 -30
  133. package/3D/controls/contentDisplay3D.js +79 -79
  134. package/3D/controls/contentDisplay3D.js.map +1 -1
  135. package/3D/controls/control3D.d.ts +201 -201
  136. package/3D/controls/control3D.js +445 -445
  137. package/3D/controls/control3D.js.map +1 -1
  138. package/3D/controls/cylinderPanel.d.ts +17 -17
  139. package/3D/controls/cylinderPanel.js +66 -66
  140. package/3D/controls/cylinderPanel.js.map +1 -1
  141. package/3D/controls/handMenu.d.ts +28 -28
  142. package/3D/controls/handMenu.js +47 -47
  143. package/3D/controls/handMenu.js.map +1 -1
  144. package/3D/controls/holographicBackplate.d.ts +49 -49
  145. package/3D/controls/holographicBackplate.js +120 -120
  146. package/3D/controls/holographicBackplate.js.map +1 -1
  147. package/3D/controls/holographicButton.d.ts +84 -84
  148. package/3D/controls/holographicButton.js +339 -339
  149. package/3D/controls/holographicButton.js.map +1 -1
  150. package/3D/controls/holographicSlate.d.ts +131 -131
  151. package/3D/controls/holographicSlate.js +431 -431
  152. package/3D/controls/holographicSlate.js.map +1 -1
  153. package/3D/controls/index.d.ts +21 -21
  154. package/3D/controls/index.js +21 -21
  155. package/3D/controls/meshButton3D.d.ts +21 -21
  156. package/3D/controls/meshButton3D.js +62 -62
  157. package/3D/controls/meshButton3D.js.map +1 -1
  158. package/3D/controls/nearMenu.d.ts +44 -44
  159. package/3D/controls/nearMenu.js +114 -114
  160. package/3D/controls/nearMenu.js.map +1 -1
  161. package/3D/controls/planePanel.d.ts +9 -9
  162. package/3D/controls/planePanel.js +36 -36
  163. package/3D/controls/planePanel.js.map +1 -1
  164. package/3D/controls/scatterPanel.d.ts +18 -18
  165. package/3D/controls/scatterPanel.js +108 -108
  166. package/3D/controls/scatterPanel.js.map +1 -1
  167. package/3D/controls/slider3D.d.ts +81 -81
  168. package/3D/controls/slider3D.js +268 -268
  169. package/3D/controls/slider3D.js.map +1 -1
  170. package/3D/controls/spherePanel.d.ts +17 -17
  171. package/3D/controls/spherePanel.js +67 -67
  172. package/3D/controls/spherePanel.js.map +1 -1
  173. package/3D/controls/stackPanel3D.d.ts +22 -22
  174. package/3D/controls/stackPanel3D.js +107 -107
  175. package/3D/controls/touchButton3D.d.ts +80 -80
  176. package/3D/controls/touchButton3D.js +233 -233
  177. package/3D/controls/touchButton3D.js.map +1 -1
  178. package/3D/controls/touchHolographicButton.d.ts +110 -110
  179. package/3D/controls/touchHolographicButton.js +445 -445
  180. package/3D/controls/touchHolographicButton.js.map +1 -1
  181. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  182. package/3D/controls/touchHolographicMenu.js +149 -149
  183. package/3D/controls/touchHolographicMenu.js.map +1 -1
  184. package/3D/controls/touchMeshButton3D.d.ts +21 -21
  185. package/3D/controls/touchMeshButton3D.js +62 -62
  186. package/3D/controls/touchMeshButton3D.js.map +1 -1
  187. package/3D/controls/volumeBasedPanel.d.ts +53 -53
  188. package/3D/controls/volumeBasedPanel.js +174 -174
  189. package/3D/controls/volumeBasedPanel.js.map +1 -1
  190. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  191. package/3D/gizmos/gizmoHandle.js +209 -209
  192. package/3D/gizmos/gizmoHandle.js.map +1 -1
  193. package/3D/gizmos/index.d.ts +2 -2
  194. package/3D/gizmos/index.js +2 -2
  195. package/3D/gizmos/slateGizmo.d.ts +57 -57
  196. package/3D/gizmos/slateGizmo.js +369 -369
  197. package/3D/gizmos/slateGizmo.js.map +1 -1
  198. package/3D/gui3DManager.d.ts +94 -94
  199. package/3D/gui3DManager.js +257 -257
  200. package/3D/gui3DManager.js.map +1 -1
  201. package/3D/index.d.ts +5 -5
  202. package/3D/index.js +6 -5
  203. package/3D/index.js.map +1 -1
  204. package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
  205. package/3D/materials/fluent/fluentMaterial.js +292 -292
  206. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  207. package/3D/materials/fluent/index.d.ts +1 -1
  208. package/3D/materials/fluent/index.js +1 -1
  209. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  210. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -8
  211. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  212. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -8
  213. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
  214. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -469
  215. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  216. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  217. package/3D/materials/fluentBackplate/index.js +1 -1
  218. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  219. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -8
  220. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  221. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -8
  222. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
  223. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -539
  224. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  225. package/3D/materials/fluentButton/index.d.ts +1 -1
  226. package/3D/materials/fluentButton/index.js +1 -1
  227. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  228. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -8
  229. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  230. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -8
  231. package/3D/materials/fluentMaterial.d.ts +4 -4
  232. package/3D/materials/fluentMaterial.js +4 -4
  233. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  234. package/3D/materials/handle/handleMaterial.js +126 -126
  235. package/3D/materials/handle/handleMaterial.js.map +1 -1
  236. package/3D/materials/handle/index.d.ts +1 -1
  237. package/3D/materials/handle/index.js +1 -1
  238. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  239. package/3D/materials/handle/shaders/handle.fragment.js +8 -8
  240. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  241. package/3D/materials/handle/shaders/handle.vertex.js +8 -8
  242. package/3D/materials/index.d.ts +5 -5
  243. package/3D/materials/index.js +6 -5
  244. package/3D/materials/index.js.map +1 -1
  245. package/3D/materials/mrdl/index.d.ts +3 -3
  246. package/3D/materials/mrdl/index.js +3 -3
  247. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
  248. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -436
  249. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  250. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
  251. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -851
  252. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  253. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
  254. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -851
  255. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  256. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  257. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -8
  258. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  259. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -8
  260. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  261. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -8
  262. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  263. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -8
  264. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  265. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -8
  266. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  267. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -8
  268. package/3D/vector3WithInfo.d.ts +16 -16
  269. package/3D/vector3WithInfo.js +23 -23
  270. package/index.d.ts +2 -2
  271. package/index.js +3 -2
  272. package/index.js.map +1 -1
  273. package/legacy/legacy.d.ts +1 -1
  274. package/legacy/legacy.js +14 -13
  275. package/legacy/legacy.js.map +1 -1
  276. package/license.md +71 -0
  277. package/package.json +24 -5
@@ -1 +1 @@
1
- {"version":3,"file":"scrollViewerWindow.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/scrollViewers/scrollViewerWindow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Measure } from \"../../measure\";\r\nimport { Container } from \"../container\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { Control } from \"../control\";\r\nimport { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a the container for ScrollViewer\r\n * @hidden\r\n */\r\nexport class _ScrollViewerWindow extends Container {\r\n public parentClientWidth: number;\r\n public parentClientHeight: number;\r\n\r\n private _freezeControls = false;\r\n private _parentMeasure: Measure;\r\n private _oldLeft: number | null;\r\n private _oldTop: number | null;\r\n\r\n public get freezeControls(): boolean {\r\n return this._freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n if (this._freezeControls === value) {\r\n return;\r\n }\r\n\r\n if (!value) {\r\n this._restoreMeasures();\r\n }\r\n\r\n // trigger a full normal layout calculation to be sure all children have their measures up to date\r\n this._freezeControls = false;\r\n\r\n const textureSize = this.host.getSize();\r\n const renderWidth = textureSize.width;\r\n const renderHeight = textureSize.height;\r\n\r\n const context = this.host.getContext();\r\n\r\n const measure = new Measure(0, 0, renderWidth, renderHeight);\r\n\r\n this.host._numLayoutCalls = 0;\r\n\r\n this.host._rootContainer._layout(measure, context);\r\n\r\n // in freeze mode, prepare children measures accordingly\r\n if (value) {\r\n this._updateMeasures();\r\n if (this._useBuckets()) {\r\n this._makeBuckets();\r\n }\r\n }\r\n\r\n this._freezeControls = value;\r\n\r\n this.host.markAsDirty(); // redraw with the (new) current settings\r\n }\r\n\r\n private _bucketWidth: number = 0;\r\n private _bucketHeight: number = 0;\r\n private _buckets: { [key: number]: Array<Control> } = {};\r\n private _bucketLen: number;\r\n\r\n public get bucketWidth(): number {\r\n return this._bucketWidth;\r\n }\r\n\r\n public get bucketHeight(): number {\r\n return this._bucketHeight;\r\n }\r\n\r\n public setBucketSizes(width: number, height: number): void {\r\n this._bucketWidth = width;\r\n this._bucketHeight = height;\r\n\r\n if (this._useBuckets()) {\r\n if (this._freezeControls) {\r\n this._makeBuckets();\r\n }\r\n } else {\r\n this._buckets = {};\r\n }\r\n }\r\n\r\n private _useBuckets(): boolean {\r\n return this._bucketWidth > 0 && this._bucketHeight > 0;\r\n }\r\n\r\n private _makeBuckets(): void {\r\n this._buckets = {};\r\n this._bucketLen = Math.ceil(this.widthInPixels / this._bucketWidth);\r\n this._dispatchInBuckets(this._children);\r\n this._oldLeft = null;\r\n this._oldTop = null;\r\n }\r\n\r\n private _dispatchInBuckets(children: Control[]): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n const bStartX = Math.max(0, Math.floor((child._customData._origLeft - this._customData.origLeft) / this._bucketWidth)),\r\n bEndX = Math.floor((child._customData._origLeft - this._customData.origLeft + child._currentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((child._customData._origTop - this._customData.origTop + child._currentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor((child._customData._origTop - this._customData.origTop) / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x;\r\n let lstc = this._buckets[bucket];\r\n\r\n if (!lstc) {\r\n lstc = [];\r\n this._buckets[bucket] = lstc;\r\n }\r\n\r\n lstc.push(child);\r\n }\r\n bStartY++;\r\n }\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._dispatchInBuckets(child._children);\r\n }\r\n }\r\n }\r\n\r\n // reset left and top measures for the window and all its children\r\n private _updateMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left -= left;\r\n this._measureForChildren.top -= top;\r\n this._currentMeasure.left -= left;\r\n this._currentMeasure.top -= top;\r\n\r\n this._customData.origLeftForChildren = this._measureForChildren.left;\r\n this._customData.origTopForChildren = this._measureForChildren.top;\r\n this._customData.origLeft = this._currentMeasure.left;\r\n this._customData.origTop = this._currentMeasure.top;\r\n\r\n this._updateChildrenMeasures(this._children, left, top);\r\n }\r\n\r\n private _updateChildrenMeasures(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left -= left;\r\n child._currentMeasure.top -= top;\r\n\r\n child._customData._origLeft = child._currentMeasure.left; // save the original left and top values for each child\r\n child._customData._origTop = child._currentMeasure.top;\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._updateChildrenMeasures(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _restoreMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left = this._customData.origLeftForChildren + left;\r\n this._measureForChildren.top = this._customData.origTopForChildren + top;\r\n this._currentMeasure.left = this._customData.origLeft + left;\r\n this._currentMeasure.top = this._customData.origTop + top;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewerWindow\r\n * @param name of ScrollViewerWindow\r\n */\r\n constructor(name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewerWindow\";\r\n }\r\n\r\n /**\r\n * @param parentMeasure\r\n * @param context\r\n * @hidden\r\n */\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._parentMeasure = parentMeasure;\r\n\r\n this._measureForChildren.left = this._currentMeasure.left;\r\n this._measureForChildren.top = this._currentMeasure.top;\r\n\r\n this._measureForChildren.width = parentMeasure.width;\r\n this._measureForChildren.height = parentMeasure.height;\r\n }\r\n\r\n /**\r\n * @param parentMeasure\r\n * @param context\r\n * @hidden\r\n */\r\n public _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean {\r\n if (this._freezeControls) {\r\n this.invalidateRect(); // will trigger a redraw of the window\r\n return false;\r\n }\r\n\r\n return super._layout(parentMeasure, context);\r\n }\r\n\r\n private _scrollChildren(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left = child._customData._origLeft + left;\r\n child._currentMeasure.top = child._customData._origTop + top;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._scrollChildren(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _scrollChildrenWithBuckets(left: number, top: number, scrollLeft: number, scrollTop: number): void {\r\n const bStartX = Math.max(0, Math.floor(-left / this._bucketWidth)),\r\n bEndX = Math.floor((-left + this._parentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((-top + this._parentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor(-top / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x,\r\n lstc = this._buckets[bucket];\r\n\r\n if (lstc) {\r\n for (let i = 0; i < lstc.length; ++i) {\r\n const child = lstc[i];\r\n child._currentMeasure.left = child._customData._origLeft + scrollLeft;\r\n child._currentMeasure.top = child._customData._origTop + scrollTop;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n }\r\n }\r\n }\r\n bStartY++;\r\n }\r\n }\r\n\r\n /**\r\n * @param context\r\n * @param invalidatedRectangle\r\n * @hidden\r\n */\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void {\r\n if (!this._freezeControls) {\r\n super._draw(context, invalidatedRectangle);\r\n return;\r\n }\r\n\r\n this._localDraw(context);\r\n\r\n if (this.clipChildren) {\r\n this._clipForChildren(context);\r\n }\r\n\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n if (this._useBuckets()) {\r\n if (this._oldLeft !== null && this._oldTop !== null) {\r\n this._scrollChildrenWithBuckets(this._oldLeft, this._oldTop, left, top);\r\n this._scrollChildrenWithBuckets(left, top, left, top);\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n\r\n this._oldLeft = left;\r\n this._oldTop = top;\r\n\r\n for (const child of this._children) {\r\n if (!child._intersectsRect(this._parentMeasure)) {\r\n continue;\r\n }\r\n child._render(context, this._parentMeasure);\r\n }\r\n }\r\n\r\n protected _postMeasure(): void {\r\n if (this._freezeControls) {\r\n super._postMeasure();\r\n return;\r\n }\r\n\r\n let maxWidth = this.parentClientWidth;\r\n let maxHeight = this.parentClientHeight;\r\n for (const child of this.children) {\r\n if (!child.isVisible || child.notRenderable) {\r\n continue;\r\n }\r\n\r\n if (child.horizontalAlignment === Control.HORIZONTAL_ALIGNMENT_CENTER) {\r\n child._offsetLeft(this._currentMeasure.left - child._currentMeasure.left);\r\n }\r\n\r\n if (child.verticalAlignment === Control.VERTICAL_ALIGNMENT_CENTER) {\r\n child._offsetTop(this._currentMeasure.top - child._currentMeasure.top);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child._currentMeasure.left - this._currentMeasure.left + child._currentMeasure.width + child.paddingRightInPixels);\r\n maxHeight = Math.max(maxHeight, child._currentMeasure.top - this._currentMeasure.top + child._currentMeasure.height + child.paddingBottomInPixels);\r\n }\r\n\r\n if (this._currentMeasure.width !== maxWidth) {\r\n this._width.updateInPlace(maxWidth, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.width = maxWidth;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n if (this._currentMeasure.height !== maxHeight) {\r\n this._height.updateInPlace(maxHeight, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.height = maxHeight;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n super._postMeasure();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"scrollViewerWindow.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/scrollViewers/scrollViewerWindow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Measure } from \"../../measure\";\r\nimport { Container } from \"../container\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { Control } from \"../control\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a the container for ScrollViewer\r\n * @hidden\r\n */\r\nexport class _ScrollViewerWindow extends Container {\r\n public parentClientWidth: number;\r\n public parentClientHeight: number;\r\n\r\n private _freezeControls = false;\r\n private _parentMeasure: Measure;\r\n private _oldLeft: number | null;\r\n private _oldTop: number | null;\r\n\r\n public get freezeControls(): boolean {\r\n return this._freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n if (this._freezeControls === value) {\r\n return;\r\n }\r\n\r\n if (!value) {\r\n this._restoreMeasures();\r\n }\r\n\r\n // trigger a full normal layout calculation to be sure all children have their measures up to date\r\n this._freezeControls = false;\r\n\r\n const textureSize = this.host.getSize();\r\n const renderWidth = textureSize.width;\r\n const renderHeight = textureSize.height;\r\n\r\n const context = this.host.getContext();\r\n\r\n const measure = new Measure(0, 0, renderWidth, renderHeight);\r\n\r\n this.host._numLayoutCalls = 0;\r\n\r\n this.host._rootContainer._layout(measure, context);\r\n\r\n // in freeze mode, prepare children measures accordingly\r\n if (value) {\r\n this._updateMeasures();\r\n if (this._useBuckets()) {\r\n this._makeBuckets();\r\n }\r\n }\r\n\r\n this._freezeControls = value;\r\n\r\n this.host.markAsDirty(); // redraw with the (new) current settings\r\n }\r\n\r\n private _bucketWidth: number = 0;\r\n private _bucketHeight: number = 0;\r\n private _buckets: { [key: number]: Array<Control> } = {};\r\n private _bucketLen: number;\r\n\r\n public get bucketWidth(): number {\r\n return this._bucketWidth;\r\n }\r\n\r\n public get bucketHeight(): number {\r\n return this._bucketHeight;\r\n }\r\n\r\n public setBucketSizes(width: number, height: number): void {\r\n this._bucketWidth = width;\r\n this._bucketHeight = height;\r\n\r\n if (this._useBuckets()) {\r\n if (this._freezeControls) {\r\n this._makeBuckets();\r\n }\r\n } else {\r\n this._buckets = {};\r\n }\r\n }\r\n\r\n private _useBuckets(): boolean {\r\n return this._bucketWidth > 0 && this._bucketHeight > 0;\r\n }\r\n\r\n private _makeBuckets(): void {\r\n this._buckets = {};\r\n this._bucketLen = Math.ceil(this.widthInPixels / this._bucketWidth);\r\n this._dispatchInBuckets(this._children);\r\n this._oldLeft = null;\r\n this._oldTop = null;\r\n }\r\n\r\n private _dispatchInBuckets(children: Control[]): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n const bStartX = Math.max(0, Math.floor((child._customData._origLeft - this._customData.origLeft) / this._bucketWidth)),\r\n bEndX = Math.floor((child._customData._origLeft - this._customData.origLeft + child._currentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((child._customData._origTop - this._customData.origTop + child._currentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor((child._customData._origTop - this._customData.origTop) / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x;\r\n let lstc = this._buckets[bucket];\r\n\r\n if (!lstc) {\r\n lstc = [];\r\n this._buckets[bucket] = lstc;\r\n }\r\n\r\n lstc.push(child);\r\n }\r\n bStartY++;\r\n }\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._dispatchInBuckets(child._children);\r\n }\r\n }\r\n }\r\n\r\n // reset left and top measures for the window and all its children\r\n private _updateMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left -= left;\r\n this._measureForChildren.top -= top;\r\n this._currentMeasure.left -= left;\r\n this._currentMeasure.top -= top;\r\n\r\n this._customData.origLeftForChildren = this._measureForChildren.left;\r\n this._customData.origTopForChildren = this._measureForChildren.top;\r\n this._customData.origLeft = this._currentMeasure.left;\r\n this._customData.origTop = this._currentMeasure.top;\r\n\r\n this._updateChildrenMeasures(this._children, left, top);\r\n }\r\n\r\n private _updateChildrenMeasures(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left -= left;\r\n child._currentMeasure.top -= top;\r\n\r\n child._customData._origLeft = child._currentMeasure.left; // save the original left and top values for each child\r\n child._customData._origTop = child._currentMeasure.top;\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._updateChildrenMeasures(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _restoreMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left = this._customData.origLeftForChildren + left;\r\n this._measureForChildren.top = this._customData.origTopForChildren + top;\r\n this._currentMeasure.left = this._customData.origLeft + left;\r\n this._currentMeasure.top = this._customData.origTop + top;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewerWindow\r\n * @param name of ScrollViewerWindow\r\n */\r\n constructor(name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewerWindow\";\r\n }\r\n\r\n /**\r\n * @param parentMeasure\r\n * @param context\r\n * @hidden\r\n */\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._parentMeasure = parentMeasure;\r\n\r\n this._measureForChildren.left = this._currentMeasure.left;\r\n this._measureForChildren.top = this._currentMeasure.top;\r\n\r\n this._measureForChildren.width = parentMeasure.width;\r\n this._measureForChildren.height = parentMeasure.height;\r\n }\r\n\r\n /**\r\n * @param parentMeasure\r\n * @param context\r\n * @hidden\r\n */\r\n public _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean {\r\n if (this._freezeControls) {\r\n this.invalidateRect(); // will trigger a redraw of the window\r\n return false;\r\n }\r\n\r\n return super._layout(parentMeasure, context);\r\n }\r\n\r\n private _scrollChildren(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left = child._customData._origLeft + left;\r\n child._currentMeasure.top = child._customData._origTop + top;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._scrollChildren(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _scrollChildrenWithBuckets(left: number, top: number, scrollLeft: number, scrollTop: number): void {\r\n const bStartX = Math.max(0, Math.floor(-left / this._bucketWidth)),\r\n bEndX = Math.floor((-left + this._parentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((-top + this._parentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor(-top / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x,\r\n lstc = this._buckets[bucket];\r\n\r\n if (lstc) {\r\n for (let i = 0; i < lstc.length; ++i) {\r\n const child = lstc[i];\r\n child._currentMeasure.left = child._customData._origLeft + scrollLeft;\r\n child._currentMeasure.top = child._customData._origTop + scrollTop;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n }\r\n }\r\n }\r\n bStartY++;\r\n }\r\n }\r\n\r\n /**\r\n * @param context\r\n * @param invalidatedRectangle\r\n * @hidden\r\n */\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void {\r\n if (!this._freezeControls) {\r\n super._draw(context, invalidatedRectangle);\r\n return;\r\n }\r\n\r\n this._localDraw(context);\r\n\r\n if (this.clipChildren) {\r\n this._clipForChildren(context);\r\n }\r\n\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n if (this._useBuckets()) {\r\n if (this._oldLeft !== null && this._oldTop !== null) {\r\n this._scrollChildrenWithBuckets(this._oldLeft, this._oldTop, left, top);\r\n this._scrollChildrenWithBuckets(left, top, left, top);\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n\r\n this._oldLeft = left;\r\n this._oldTop = top;\r\n\r\n for (const child of this._children) {\r\n if (!child._intersectsRect(this._parentMeasure)) {\r\n continue;\r\n }\r\n child._render(context, this._parentMeasure);\r\n }\r\n }\r\n\r\n protected _postMeasure(): void {\r\n if (this._freezeControls) {\r\n super._postMeasure();\r\n return;\r\n }\r\n\r\n let maxWidth = this.parentClientWidth;\r\n let maxHeight = this.parentClientHeight;\r\n for (const child of this.children) {\r\n if (!child.isVisible || child.notRenderable) {\r\n continue;\r\n }\r\n\r\n if (child.horizontalAlignment === Control.HORIZONTAL_ALIGNMENT_CENTER) {\r\n child._offsetLeft(this._currentMeasure.left - child._currentMeasure.left);\r\n }\r\n\r\n if (child.verticalAlignment === Control.VERTICAL_ALIGNMENT_CENTER) {\r\n child._offsetTop(this._currentMeasure.top - child._currentMeasure.top);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child._currentMeasure.left - this._currentMeasure.left + child._currentMeasure.width + child.paddingRightInPixels);\r\n maxHeight = Math.max(maxHeight, child._currentMeasure.top - this._currentMeasure.top + child._currentMeasure.height + child.paddingBottomInPixels);\r\n }\r\n\r\n if (this._currentMeasure.width !== maxWidth) {\r\n this._width.updateInPlace(maxWidth, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.width = maxWidth;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n if (this._currentMeasure.height !== maxHeight) {\r\n this._height.updateInPlace(maxHeight, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.height = maxHeight;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n super._postMeasure();\r\n }\r\n}\r\n"]}
@@ -1,263 +1,263 @@
1
- import { Rectangle } from "./rectangle";
2
- import { StackPanel } from "./stackPanel";
3
- /** Class used to create a RadioGroup
4
- * which contains groups of radio buttons
5
- */
6
- export declare class SelectorGroup {
7
- /** name of SelectorGroup */
8
- name: string;
9
- private _groupPanel;
10
- private _selectors;
11
- private _groupHeader;
12
- /**
13
- * Creates a new SelectorGroup
14
- * @param name of group, used as a group heading
15
- */
16
- constructor(
17
- /** name of SelectorGroup */
18
- name: string);
19
- /** Gets the groupPanel of the SelectorGroup */
20
- get groupPanel(): StackPanel;
21
- /** Gets the selectors array */
22
- get selectors(): StackPanel[];
23
- /** Gets and sets the group header */
24
- get header(): string;
25
- set header(label: string);
26
- /**
27
- * @param text
28
- * @hidden
29
- */
30
- private _addGroupHeader;
31
- /**
32
- * @param selectorNb
33
- * @hidden
34
- */
35
- _getSelector(selectorNb: number): StackPanel | undefined;
36
- /** Removes the selector at the given position
37
- * @param selectorNb the position of the selector within the group
38
- */
39
- removeSelector(selectorNb: number): void;
40
- }
41
- /** Class used to create a CheckboxGroup
42
- * which contains groups of checkbox buttons
43
- */
44
- export declare class CheckboxGroup extends SelectorGroup {
45
- /** Adds a checkbox as a control
46
- * @param text is the label for the selector
47
- * @param func is the function called when the Selector is checked
48
- * @param checked is true when Selector is checked
49
- */
50
- addCheckbox(text: string, func?: (s: boolean) => void, checked?: boolean): void;
51
- /**
52
- * @param selectorNb
53
- * @param label
54
- * @hidden
55
- */
56
- _setSelectorLabel(selectorNb: number, label: string): void;
57
- /**
58
- * @param selectorNb
59
- * @param color
60
- * @hidden
61
- */
62
- _setSelectorLabelColor(selectorNb: number, color: string): void;
63
- /**
64
- * @param selectorNb
65
- * @param color
66
- * @hidden
67
- */
68
- _setSelectorButtonColor(selectorNb: number, color: string): void;
69
- /**
70
- * @param selectorNb
71
- * @param color
72
- * @hidden
73
- */
74
- _setSelectorButtonBackground(selectorNb: number, color: string): void;
75
- }
76
- /** Class used to create a RadioGroup
77
- * which contains groups of radio buttons
78
- */
79
- export declare class RadioGroup extends SelectorGroup {
80
- private _selectNb;
81
- /** Adds a radio button as a control
82
- * @param label is the label for the selector
83
- * @param func is the function called when the Selector is checked
84
- * @param checked is true when Selector is checked
85
- */
86
- addRadio(label: string, func?: (n: number) => void, checked?: boolean): void;
87
- /**
88
- * @param selectorNb
89
- * @param label
90
- * @hidden
91
- */
92
- _setSelectorLabel(selectorNb: number, label: string): void;
93
- /**
94
- * @param selectorNb
95
- * @param color
96
- * @hidden
97
- */
98
- _setSelectorLabelColor(selectorNb: number, color: string): void;
99
- /**
100
- * @param selectorNb
101
- * @param color
102
- * @hidden
103
- */
104
- _setSelectorButtonColor(selectorNb: number, color: string): void;
105
- /**
106
- * @param selectorNb
107
- * @param color
108
- * @hidden
109
- */
110
- _setSelectorButtonBackground(selectorNb: number, color: string): void;
111
- }
112
- /** Class used to create a SliderGroup
113
- * which contains groups of slider buttons
114
- */
115
- export declare class SliderGroup extends SelectorGroup {
116
- /**
117
- * Adds a slider to the SelectorGroup
118
- * @param label is the label for the SliderBar
119
- * @param func is the function called when the Slider moves
120
- * @param unit is a string describing the units used, eg degrees or metres
121
- * @param min is the minimum value for the Slider
122
- * @param max is the maximum value for the Slider
123
- * @param value is the start value for the Slider between min and max
124
- * @param onValueChange is the function used to format the value displayed, eg radians to degrees
125
- */
126
- addSlider(label: string, func?: (v: number) => void, unit?: string, min?: number, max?: number, value?: number, onValueChange?: (v: number) => number): void;
127
- /**
128
- * @param selectorNb
129
- * @param label
130
- * @hidden
131
- */
132
- _setSelectorLabel(selectorNb: number, label: string): void;
133
- /**
134
- * @param selectorNb
135
- * @param color
136
- * @hidden
137
- */
138
- _setSelectorLabelColor(selectorNb: number, color: string): void;
139
- /**
140
- * @param selectorNb
141
- * @param color
142
- * @hidden
143
- */
144
- _setSelectorButtonColor(selectorNb: number, color: string): void;
145
- /**
146
- * @param selectorNb
147
- * @param color
148
- * @hidden
149
- */
150
- _setSelectorButtonBackground(selectorNb: number, color: string): void;
151
- }
152
- /** Class used to hold the controls for the checkboxes, radio buttons and sliders
153
- * @see https://doc.babylonjs.com/how_to/selector
154
- */
155
- export declare class SelectionPanel extends Rectangle {
156
- /** name of SelectionPanel */
157
- name: string;
158
- /** an array of SelectionGroups */
159
- groups: SelectorGroup[];
160
- private _panel;
161
- private _buttonColor;
162
- private _buttonBackground;
163
- private _headerColor;
164
- private _barColor;
165
- private _barHeight;
166
- private _spacerHeight;
167
- private _labelColor;
168
- private _groups;
169
- private _bars;
170
- /**
171
- * Creates a new SelectionPanel
172
- * @param name of SelectionPanel
173
- * @param groups is an array of SelectionGroups
174
- */
175
- constructor(
176
- /** name of SelectionPanel */
177
- name: string,
178
- /** an array of SelectionGroups */
179
- groups?: SelectorGroup[]);
180
- protected _getTypeName(): string;
181
- /** Gets the (stack) panel of the SelectionPanel */
182
- get panel(): StackPanel;
183
- /** Gets or sets the headerColor */
184
- get headerColor(): string;
185
- set headerColor(color: string);
186
- private _setHeaderColor;
187
- /** Gets or sets the button color */
188
- get buttonColor(): string;
189
- set buttonColor(color: string);
190
- private _setbuttonColor;
191
- /** Gets or sets the label color */
192
- get labelColor(): string;
193
- set labelColor(color: string);
194
- private _setLabelColor;
195
- /** Gets or sets the button background */
196
- get buttonBackground(): string;
197
- set buttonBackground(color: string);
198
- private _setButtonBackground;
199
- /** Gets or sets the color of separator bar */
200
- get barColor(): string;
201
- set barColor(color: string);
202
- private _setBarColor;
203
- /** Gets or sets the height of separator bar */
204
- get barHeight(): string;
205
- set barHeight(value: string);
206
- private _setBarHeight;
207
- /** Gets or sets the height of spacers*/
208
- get spacerHeight(): string;
209
- set spacerHeight(value: string);
210
- private _setSpacerHeight;
211
- /** Adds a bar between groups */
212
- private _addSpacer;
213
- /** Add a group to the selection panel
214
- * @param group is the selector group to add
215
- */
216
- addGroup(group: SelectorGroup): void;
217
- /** Remove the group from the given position
218
- * @param groupNb is the position of the group in the list
219
- */
220
- removeGroup(groupNb: number): void;
221
- /** Change a group header label
222
- * @param label is the new group header label
223
- * @param groupNb is the number of the group to relabel
224
- * */
225
- setHeaderName(label: string, groupNb: number): void;
226
- /** Change selector label to the one given
227
- * @param label is the new selector label
228
- * @param groupNb is the number of the groupcontaining the selector
229
- * @param selectorNb is the number of the selector within a group to relabel
230
- * */
231
- relabel(label: string, groupNb: number, selectorNb: number): void;
232
- /** For a given group position remove the selector at the given position
233
- * @param groupNb is the number of the group to remove the selector from
234
- * @param selectorNb is the number of the selector within the group
235
- */
236
- removeFromGroupSelector(groupNb: number, selectorNb: number): void;
237
- /** For a given group position of correct type add a checkbox button
238
- * @param groupNb is the number of the group to remove the selector from
239
- * @param label is the label for the selector
240
- * @param func is the function called when the Selector is checked
241
- * @param checked is true when Selector is checked
242
- */
243
- addToGroupCheckbox(groupNb: number, label: string, func?: () => void, checked?: boolean): void;
244
- /** For a given group position of correct type add a radio button
245
- * @param groupNb is the number of the group to remove the selector from
246
- * @param label is the label for the selector
247
- * @param func is the function called when the Selector is checked
248
- * @param checked is true when Selector is checked
249
- */
250
- addToGroupRadio(groupNb: number, label: string, func?: () => void, checked?: boolean): void;
251
- /**
252
- * For a given slider group add a slider
253
- * @param groupNb is the number of the group to add the slider to
254
- * @param label is the label for the Slider
255
- * @param func is the function called when the Slider moves
256
- * @param unit is a string describing the units used, eg degrees or metres
257
- * @param min is the minimum value for the Slider
258
- * @param max is the maximum value for the Slider
259
- * @param value is the start value for the Slider between min and max
260
- * @param onVal is the function used to format the value displayed, eg radians to degrees
261
- */
262
- addToGroupSlider(groupNb: number, label: string, func?: () => void, unit?: string, min?: number, max?: number, value?: number, onVal?: (v: number) => number): void;
263
- }
1
+ import { Rectangle } from "./rectangle";
2
+ import { StackPanel } from "./stackPanel";
3
+ /** Class used to create a RadioGroup
4
+ * which contains groups of radio buttons
5
+ */
6
+ export declare class SelectorGroup {
7
+ /** name of SelectorGroup */
8
+ name: string;
9
+ private _groupPanel;
10
+ private _selectors;
11
+ private _groupHeader;
12
+ /**
13
+ * Creates a new SelectorGroup
14
+ * @param name of group, used as a group heading
15
+ */
16
+ constructor(
17
+ /** name of SelectorGroup */
18
+ name: string);
19
+ /** Gets the groupPanel of the SelectorGroup */
20
+ get groupPanel(): StackPanel;
21
+ /** Gets the selectors array */
22
+ get selectors(): StackPanel[];
23
+ /** Gets and sets the group header */
24
+ get header(): string;
25
+ set header(label: string);
26
+ /**
27
+ * @param text
28
+ * @hidden
29
+ */
30
+ private _addGroupHeader;
31
+ /**
32
+ * @param selectorNb
33
+ * @hidden
34
+ */
35
+ _getSelector(selectorNb: number): StackPanel | undefined;
36
+ /** Removes the selector at the given position
37
+ * @param selectorNb the position of the selector within the group
38
+ */
39
+ removeSelector(selectorNb: number): void;
40
+ }
41
+ /** Class used to create a CheckboxGroup
42
+ * which contains groups of checkbox buttons
43
+ */
44
+ export declare class CheckboxGroup extends SelectorGroup {
45
+ /** Adds a checkbox as a control
46
+ * @param text is the label for the selector
47
+ * @param func is the function called when the Selector is checked
48
+ * @param checked is true when Selector is checked
49
+ */
50
+ addCheckbox(text: string, func?: (s: boolean) => void, checked?: boolean): void;
51
+ /**
52
+ * @param selectorNb
53
+ * @param label
54
+ * @hidden
55
+ */
56
+ _setSelectorLabel(selectorNb: number, label: string): void;
57
+ /**
58
+ * @param selectorNb
59
+ * @param color
60
+ * @hidden
61
+ */
62
+ _setSelectorLabelColor(selectorNb: number, color: string): void;
63
+ /**
64
+ * @param selectorNb
65
+ * @param color
66
+ * @hidden
67
+ */
68
+ _setSelectorButtonColor(selectorNb: number, color: string): void;
69
+ /**
70
+ * @param selectorNb
71
+ * @param color
72
+ * @hidden
73
+ */
74
+ _setSelectorButtonBackground(selectorNb: number, color: string): void;
75
+ }
76
+ /** Class used to create a RadioGroup
77
+ * which contains groups of radio buttons
78
+ */
79
+ export declare class RadioGroup extends SelectorGroup {
80
+ private _selectNb;
81
+ /** Adds a radio button as a control
82
+ * @param label is the label for the selector
83
+ * @param func is the function called when the Selector is checked
84
+ * @param checked is true when Selector is checked
85
+ */
86
+ addRadio(label: string, func?: (n: number) => void, checked?: boolean): void;
87
+ /**
88
+ * @param selectorNb
89
+ * @param label
90
+ * @hidden
91
+ */
92
+ _setSelectorLabel(selectorNb: number, label: string): void;
93
+ /**
94
+ * @param selectorNb
95
+ * @param color
96
+ * @hidden
97
+ */
98
+ _setSelectorLabelColor(selectorNb: number, color: string): void;
99
+ /**
100
+ * @param selectorNb
101
+ * @param color
102
+ * @hidden
103
+ */
104
+ _setSelectorButtonColor(selectorNb: number, color: string): void;
105
+ /**
106
+ * @param selectorNb
107
+ * @param color
108
+ * @hidden
109
+ */
110
+ _setSelectorButtonBackground(selectorNb: number, color: string): void;
111
+ }
112
+ /** Class used to create a SliderGroup
113
+ * which contains groups of slider buttons
114
+ */
115
+ export declare class SliderGroup extends SelectorGroup {
116
+ /**
117
+ * Adds a slider to the SelectorGroup
118
+ * @param label is the label for the SliderBar
119
+ * @param func is the function called when the Slider moves
120
+ * @param unit is a string describing the units used, eg degrees or metres
121
+ * @param min is the minimum value for the Slider
122
+ * @param max is the maximum value for the Slider
123
+ * @param value is the start value for the Slider between min and max
124
+ * @param onValueChange is the function used to format the value displayed, eg radians to degrees
125
+ */
126
+ addSlider(label: string, func?: (v: number) => void, unit?: string, min?: number, max?: number, value?: number, onValueChange?: (v: number) => number): void;
127
+ /**
128
+ * @param selectorNb
129
+ * @param label
130
+ * @hidden
131
+ */
132
+ _setSelectorLabel(selectorNb: number, label: string): void;
133
+ /**
134
+ * @param selectorNb
135
+ * @param color
136
+ * @hidden
137
+ */
138
+ _setSelectorLabelColor(selectorNb: number, color: string): void;
139
+ /**
140
+ * @param selectorNb
141
+ * @param color
142
+ * @hidden
143
+ */
144
+ _setSelectorButtonColor(selectorNb: number, color: string): void;
145
+ /**
146
+ * @param selectorNb
147
+ * @param color
148
+ * @hidden
149
+ */
150
+ _setSelectorButtonBackground(selectorNb: number, color: string): void;
151
+ }
152
+ /** Class used to hold the controls for the checkboxes, radio buttons and sliders
153
+ * @see https://doc.babylonjs.com/how_to/selector
154
+ */
155
+ export declare class SelectionPanel extends Rectangle {
156
+ /** name of SelectionPanel */
157
+ name: string;
158
+ /** an array of SelectionGroups */
159
+ groups: SelectorGroup[];
160
+ private _panel;
161
+ private _buttonColor;
162
+ private _buttonBackground;
163
+ private _headerColor;
164
+ private _barColor;
165
+ private _barHeight;
166
+ private _spacerHeight;
167
+ private _labelColor;
168
+ private _groups;
169
+ private _bars;
170
+ /**
171
+ * Creates a new SelectionPanel
172
+ * @param name of SelectionPanel
173
+ * @param groups is an array of SelectionGroups
174
+ */
175
+ constructor(
176
+ /** name of SelectionPanel */
177
+ name: string,
178
+ /** an array of SelectionGroups */
179
+ groups?: SelectorGroup[]);
180
+ protected _getTypeName(): string;
181
+ /** Gets the (stack) panel of the SelectionPanel */
182
+ get panel(): StackPanel;
183
+ /** Gets or sets the headerColor */
184
+ get headerColor(): string;
185
+ set headerColor(color: string);
186
+ private _setHeaderColor;
187
+ /** Gets or sets the button color */
188
+ get buttonColor(): string;
189
+ set buttonColor(color: string);
190
+ private _setbuttonColor;
191
+ /** Gets or sets the label color */
192
+ get labelColor(): string;
193
+ set labelColor(color: string);
194
+ private _setLabelColor;
195
+ /** Gets or sets the button background */
196
+ get buttonBackground(): string;
197
+ set buttonBackground(color: string);
198
+ private _setButtonBackground;
199
+ /** Gets or sets the color of separator bar */
200
+ get barColor(): string;
201
+ set barColor(color: string);
202
+ private _setBarColor;
203
+ /** Gets or sets the height of separator bar */
204
+ get barHeight(): string;
205
+ set barHeight(value: string);
206
+ private _setBarHeight;
207
+ /** Gets or sets the height of spacers*/
208
+ get spacerHeight(): string;
209
+ set spacerHeight(value: string);
210
+ private _setSpacerHeight;
211
+ /** Adds a bar between groups */
212
+ private _addSpacer;
213
+ /** Add a group to the selection panel
214
+ * @param group is the selector group to add
215
+ */
216
+ addGroup(group: SelectorGroup): void;
217
+ /** Remove the group from the given position
218
+ * @param groupNb is the position of the group in the list
219
+ */
220
+ removeGroup(groupNb: number): void;
221
+ /** Change a group header label
222
+ * @param label is the new group header label
223
+ * @param groupNb is the number of the group to relabel
224
+ * */
225
+ setHeaderName(label: string, groupNb: number): void;
226
+ /** Change selector label to the one given
227
+ * @param label is the new selector label
228
+ * @param groupNb is the number of the groupcontaining the selector
229
+ * @param selectorNb is the number of the selector within a group to relabel
230
+ * */
231
+ relabel(label: string, groupNb: number, selectorNb: number): void;
232
+ /** For a given group position remove the selector at the given position
233
+ * @param groupNb is the number of the group to remove the selector from
234
+ * @param selectorNb is the number of the selector within the group
235
+ */
236
+ removeFromGroupSelector(groupNb: number, selectorNb: number): void;
237
+ /** For a given group position of correct type add a checkbox button
238
+ * @param groupNb is the number of the group to remove the selector from
239
+ * @param label is the label for the selector
240
+ * @param func is the function called when the Selector is checked
241
+ * @param checked is true when Selector is checked
242
+ */
243
+ addToGroupCheckbox(groupNb: number, label: string, func?: () => void, checked?: boolean): void;
244
+ /** For a given group position of correct type add a radio button
245
+ * @param groupNb is the number of the group to remove the selector from
246
+ * @param label is the label for the selector
247
+ * @param func is the function called when the Selector is checked
248
+ * @param checked is true when Selector is checked
249
+ */
250
+ addToGroupRadio(groupNb: number, label: string, func?: () => void, checked?: boolean): void;
251
+ /**
252
+ * For a given slider group add a slider
253
+ * @param groupNb is the number of the group to add the slider to
254
+ * @param label is the label for the Slider
255
+ * @param func is the function called when the Slider moves
256
+ * @param unit is a string describing the units used, eg degrees or metres
257
+ * @param min is the minimum value for the Slider
258
+ * @param max is the maximum value for the Slider
259
+ * @param value is the start value for the Slider between min and max
260
+ * @param onVal is the function used to format the value displayed, eg radians to degrees
261
+ */
262
+ addToGroupSlider(groupNb: number, label: string, func?: () => void, unit?: string, min?: number, max?: number, value?: number, onVal?: (v: number) => number): void;
263
+ }