@babylonjs/gui 5.0.0-rc.1 → 5.0.0-rc.12

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 (306) 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 -423
  5. package/2D/advancedDynamicTexture.js +1318 -1286
  6. package/2D/advancedDynamicTexture.js.map +1 -1
  7. package/2D/controls/button.d.ts +135 -97
  8. package/2D/controls/button.js +276 -238
  9. package/2D/controls/button.js.map +1 -1
  10. package/2D/controls/checkbox.d.ts +59 -51
  11. package/2D/controls/checkbox.js +188 -178
  12. package/2D/controls/checkbox.js.map +1 -1
  13. package/2D/controls/colorpicker.d.ts +103 -90
  14. package/2D/controls/colorpicker.js +1417 -1400
  15. package/2D/controls/colorpicker.js.map +1 -1
  16. package/2D/controls/container.d.ts +175 -130
  17. package/2D/controls/container.js +570 -525
  18. package/2D/controls/container.js.map +1 -1
  19. package/2D/controls/control.d.ts +866 -743
  20. package/2D/controls/control.js +2433 -2308
  21. package/2D/controls/control.js.map +1 -1
  22. package/2D/controls/displayGrid.d.ts +53 -55
  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 -52
  29. package/2D/controls/focusableButton.js +99 -92
  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 -135
  35. package/2D/controls/grid.js +529 -525
  36. package/2D/controls/grid.js.map +1 -1
  37. package/2D/controls/image.d.ts +204 -197
  38. package/2D/controls/image.js +887 -879
  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/index.js.map +1 -1
  43. package/2D/controls/inputPassword.d.ts +9 -8
  44. package/2D/controls/inputPassword.js +28 -25
  45. package/2D/controls/inputPassword.js.map +1 -1
  46. package/2D/controls/inputText.d.ts +201 -182
  47. package/2D/controls/inputText.js +1119 -1096
  48. package/2D/controls/inputText.js.map +1 -1
  49. package/2D/controls/line.d.ts +66 -66
  50. package/2D/controls/line.js +271 -271
  51. package/2D/controls/line.js.map +1 -1
  52. package/2D/controls/multiLine.d.ts +75 -77
  53. package/2D/controls/multiLine.js +262 -262
  54. package/2D/controls/multiLine.js.map +1 -1
  55. package/2D/controls/radioButton.d.ts +49 -49
  56. package/2D/controls/radioButton.js +205 -205
  57. package/2D/controls/radioButton.js.map +1 -1
  58. package/2D/controls/rectangle.d.ts +29 -29
  59. package/2D/controls/rectangle.js +150 -150
  60. package/2D/controls/rectangle.js.map +1 -1
  61. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
  62. package/2D/controls/scrollViewers/scrollViewer.js +677 -676
  63. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  64. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
  65. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
  66. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  67. package/2D/controls/selector.d.ts +263 -209
  68. package/2D/controls/selector.js +692 -629
  69. package/2D/controls/selector.js.map +1 -1
  70. package/2D/controls/sliders/baseSlider.d.ts +82 -78
  71. package/2D/controls/sliders/baseSlider.js +347 -343
  72. package/2D/controls/sliders/baseSlider.js.map +1 -1
  73. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
  74. package/2D/controls/sliders/imageBasedSlider.js +192 -188
  75. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  76. package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
  77. package/2D/controls/sliders/imageScrollBar.js +263 -256
  78. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  79. package/2D/controls/sliders/scrollBar.d.ts +38 -34
  80. package/2D/controls/sliders/scrollBar.js +143 -136
  81. package/2D/controls/sliders/scrollBar.js.map +1 -1
  82. package/2D/controls/sliders/slider.d.ts +35 -37
  83. package/2D/controls/sliders/slider.js +271 -271
  84. package/2D/controls/sliders/slider.js.map +1 -1
  85. package/2D/controls/stackPanel.d.ts +64 -56
  86. package/2D/controls/stackPanel.js +246 -236
  87. package/2D/controls/stackPanel.js.map +1 -1
  88. package/2D/controls/statics.d.ts +6 -6
  89. package/2D/controls/statics.js +49 -47
  90. package/2D/controls/statics.js.map +1 -1
  91. package/2D/controls/textBlock.d.ts +175 -172
  92. package/2D/controls/textBlock.js +603 -598
  93. package/2D/controls/textBlock.js.map +1 -1
  94. package/2D/controls/textWrapper.d.ts +13 -13
  95. package/2D/controls/textWrapper.js +101 -101
  96. package/2D/controls/textWrapper.js.map +1 -1
  97. package/2D/controls/toggleButton.d.ts +117 -83
  98. package/2D/controls/toggleButton.js +268 -234
  99. package/2D/controls/toggleButton.js.map +1 -1
  100. package/2D/controls/virtualKeyboard.d.ts +96 -96
  101. package/2D/controls/virtualKeyboard.js +256 -256
  102. package/2D/controls/virtualKeyboard.js.map +1 -1
  103. package/2D/index.d.ts +9 -9
  104. package/2D/index.js +10 -9
  105. package/2D/index.js.map +1 -1
  106. package/2D/math2D.d.ts +117 -117
  107. package/2D/math2D.js +221 -221
  108. package/2D/math2D.js.map +1 -1
  109. package/2D/measure.d.ts +77 -77
  110. package/2D/measure.js +139 -149
  111. package/2D/measure.js.map +1 -1
  112. package/2D/multiLinePoint.d.ts +47 -47
  113. package/2D/multiLinePoint.js +127 -127
  114. package/2D/multiLinePoint.js.map +1 -1
  115. package/2D/style.d.ts +46 -46
  116. package/2D/style.js +97 -97
  117. package/2D/style.js.map +1 -1
  118. package/2D/valueAndUnit.d.ts +89 -89
  119. package/2D/valueAndUnit.js +226 -222
  120. package/2D/valueAndUnit.js.map +1 -1
  121. package/2D/xmlLoader.d.ts +60 -60
  122. package/2D/xmlLoader.js +348 -348
  123. package/2D/xmlLoader.js.map +1 -1
  124. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  125. package/3D/behaviors/defaultBehavior.js +121 -121
  126. package/3D/behaviors/defaultBehavior.js.map +1 -1
  127. package/3D/controls/abstractButton3D.d.ts +15 -15
  128. package/3D/controls/abstractButton3D.js +25 -25
  129. package/3D/controls/abstractButton3D.js.map +1 -1
  130. package/3D/controls/button3D.d.ts +30 -30
  131. package/3D/controls/button3D.js +93 -93
  132. package/3D/controls/button3D.js.map +1 -1
  133. package/3D/controls/container3D.d.ts +72 -72
  134. package/3D/controls/container3D.js +139 -140
  135. package/3D/controls/container3D.js.map +1 -1
  136. package/3D/controls/contentDisplay3D.d.ts +30 -30
  137. package/3D/controls/contentDisplay3D.js +79 -78
  138. package/3D/controls/contentDisplay3D.js.map +1 -1
  139. package/3D/controls/control3D.d.ts +201 -165
  140. package/3D/controls/control3D.js +445 -408
  141. package/3D/controls/control3D.js.map +1 -1
  142. package/3D/controls/cylinderPanel.d.ts +17 -17
  143. package/3D/controls/cylinderPanel.js +66 -66
  144. package/3D/controls/cylinderPanel.js.map +1 -1
  145. package/3D/controls/handMenu.d.ts +28 -28
  146. package/3D/controls/handMenu.js +47 -47
  147. package/3D/controls/handMenu.js.map +1 -1
  148. package/3D/controls/holographicBackplate.d.ts +49 -48
  149. package/3D/controls/holographicBackplate.js +120 -120
  150. package/3D/controls/holographicBackplate.js.map +1 -1
  151. package/3D/controls/holographicButton.d.ts +84 -83
  152. package/3D/controls/holographicButton.js +339 -338
  153. package/3D/controls/holographicButton.js.map +1 -1
  154. package/3D/controls/holographicSlate.d.ts +131 -128
  155. package/3D/controls/holographicSlate.js +431 -428
  156. package/3D/controls/holographicSlate.js.map +1 -1
  157. package/3D/controls/index.d.ts +21 -21
  158. package/3D/controls/index.js +21 -21
  159. package/3D/controls/index.js.map +1 -1
  160. package/3D/controls/meshButton3D.d.ts +21 -21
  161. package/3D/controls/meshButton3D.js +62 -61
  162. package/3D/controls/meshButton3D.js.map +1 -1
  163. package/3D/controls/nearMenu.d.ts +44 -44
  164. package/3D/controls/nearMenu.js +114 -112
  165. package/3D/controls/nearMenu.js.map +1 -1
  166. package/3D/controls/planePanel.d.ts +9 -9
  167. package/3D/controls/planePanel.js +36 -36
  168. package/3D/controls/planePanel.js.map +1 -1
  169. package/3D/controls/scatterPanel.d.ts +18 -18
  170. package/3D/controls/scatterPanel.js +108 -108
  171. package/3D/controls/scatterPanel.js.map +1 -1
  172. package/3D/controls/slider3D.d.ts +81 -81
  173. package/3D/controls/slider3D.js +268 -267
  174. package/3D/controls/slider3D.js.map +1 -1
  175. package/3D/controls/spherePanel.d.ts +17 -17
  176. package/3D/controls/spherePanel.js +67 -67
  177. package/3D/controls/spherePanel.js.map +1 -1
  178. package/3D/controls/stackPanel3D.d.ts +22 -22
  179. package/3D/controls/stackPanel3D.js +107 -107
  180. package/3D/controls/stackPanel3D.js.map +1 -1
  181. package/3D/controls/touchButton3D.d.ts +80 -75
  182. package/3D/controls/touchButton3D.js +233 -227
  183. package/3D/controls/touchButton3D.js.map +1 -1
  184. package/3D/controls/touchHolographicButton.d.ts +110 -109
  185. package/3D/controls/touchHolographicButton.js +445 -445
  186. package/3D/controls/touchHolographicButton.js.map +1 -1
  187. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  188. package/3D/controls/touchHolographicMenu.js +149 -148
  189. package/3D/controls/touchHolographicMenu.js.map +1 -1
  190. package/3D/controls/touchMeshButton3D.d.ts +21 -22
  191. package/3D/controls/touchMeshButton3D.js +62 -62
  192. package/3D/controls/touchMeshButton3D.js.map +1 -1
  193. package/3D/controls/volumeBasedPanel.d.ts +53 -52
  194. package/3D/controls/volumeBasedPanel.js +174 -174
  195. package/3D/controls/volumeBasedPanel.js.map +1 -1
  196. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  197. package/3D/gizmos/gizmoHandle.js +209 -209
  198. package/3D/gizmos/gizmoHandle.js.map +1 -1
  199. package/3D/gizmos/index.d.ts +2 -2
  200. package/3D/gizmos/index.js +2 -2
  201. package/3D/gizmos/index.js.map +1 -1
  202. package/3D/gizmos/slateGizmo.d.ts +57 -57
  203. package/3D/gizmos/slateGizmo.js +369 -369
  204. package/3D/gizmos/slateGizmo.js.map +1 -1
  205. package/3D/gui3DManager.d.ts +94 -94
  206. package/3D/gui3DManager.js +257 -257
  207. package/3D/gui3DManager.js.map +1 -1
  208. package/3D/index.d.ts +5 -5
  209. package/3D/index.js +6 -5
  210. package/3D/index.js.map +1 -1
  211. package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
  212. package/3D/materials/fluent/fluentMaterial.js +292 -281
  213. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  214. package/3D/materials/fluent/index.d.ts +1 -1
  215. package/3D/materials/fluent/index.js +1 -1
  216. package/3D/materials/fluent/index.js.map +1 -1
  217. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  218. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
  219. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  220. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  221. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
  222. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  223. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
  224. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
  225. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  226. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  227. package/3D/materials/fluentBackplate/index.js +1 -1
  228. package/3D/materials/fluentBackplate/index.js.map +1 -1
  229. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  230. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
  231. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  232. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  233. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
  234. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  235. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
  236. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
  237. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  238. package/3D/materials/fluentButton/index.d.ts +1 -1
  239. package/3D/materials/fluentButton/index.js +1 -1
  240. package/3D/materials/fluentButton/index.js.map +1 -1
  241. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  242. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
  243. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  244. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  245. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
  246. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  247. package/3D/materials/fluentMaterial.d.ts +4 -4
  248. package/3D/materials/fluentMaterial.js +4 -4
  249. package/3D/materials/fluentMaterial.js.map +1 -1
  250. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  251. package/3D/materials/handle/handleMaterial.js +126 -126
  252. package/3D/materials/handle/handleMaterial.js.map +1 -1
  253. package/3D/materials/handle/index.d.ts +1 -1
  254. package/3D/materials/handle/index.js +1 -1
  255. package/3D/materials/handle/index.js.map +1 -1
  256. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  257. package/3D/materials/handle/shaders/handle.fragment.js +8 -6
  258. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  259. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  260. package/3D/materials/handle/shaders/handle.vertex.js +8 -6
  261. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  262. package/3D/materials/index.d.ts +5 -5
  263. package/3D/materials/index.js +6 -5
  264. package/3D/materials/index.js.map +1 -1
  265. package/3D/materials/mrdl/index.d.ts +3 -3
  266. package/3D/materials/mrdl/index.js +3 -3
  267. package/3D/materials/mrdl/index.js.map +1 -1
  268. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
  269. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
  270. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  271. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
  272. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
  273. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  274. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
  275. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
  276. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  277. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  278. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
  279. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  280. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  281. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
  282. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  283. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  284. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
  285. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  286. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  287. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
  288. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  289. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  290. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
  291. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  292. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  293. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
  294. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  295. package/3D/vector3WithInfo.d.ts +16 -16
  296. package/3D/vector3WithInfo.js +23 -23
  297. package/3D/vector3WithInfo.js.map +1 -1
  298. package/index.d.ts +2 -2
  299. package/index.js +3 -2
  300. package/index.js.map +1 -1
  301. package/legacy/legacy.d.ts +1 -1
  302. package/legacy/legacy.js +14 -13
  303. package/legacy/legacy.js.map +1 -1
  304. package/license.md +71 -0
  305. package/package.json +37 -325
  306. package/readme.md +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"scrollViewer.js","sourceRoot":"","sources":["../../../../../sourceES6/gui/src/2D/controls/scrollViewers/scrollViewer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Observer } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math\";\r\nimport { Rectangle } from \"../rectangle\";\r\nimport { Grid } from \"../grid\";\r\nimport { Image } from \"../image\";\r\nimport { Control } from \"../control\";\r\nimport { Container } from \"../container\";\r\nimport { Measure } from \"../../measure\";\r\nimport { AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\nimport { _ScrollViewerWindow } from \"./scrollViewerWindow\";\r\nimport { ScrollBar } from \"../sliders/scrollBar\";\r\nimport { ImageScrollBar } from \"../sliders/imageScrollBar\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a viewer window and sliders in a grid\r\n*/\r\nexport class ScrollViewer extends Rectangle {\r\n private _grid: Grid;\r\n private _horizontalBarSpace: Rectangle;\r\n private _verticalBarSpace: Rectangle;\r\n private _dragSpace: Rectangle;\r\n private _horizontalBar: ScrollBar | ImageScrollBar;\r\n private _verticalBar: ScrollBar | ImageScrollBar;\r\n private _barColor: string;\r\n private _barBackground: string;\r\n private _barImage: Image;\r\n private _horizontalBarImage: Image;\r\n private _verticalBarImage: Image;\r\n private _barBackgroundImage: Image;\r\n private _horizontalBarBackgroundImage: Image;\r\n private _verticalBarBackgroundImage: Image;\r\n private _barSize: number = 20;\r\n private _window: _ScrollViewerWindow;\r\n private _pointerIsOver: Boolean = false;\r\n private _wheelPrecision: number = 0.05;\r\n private _onWheelObserver: Nullable<Observer<Vector2>>;\r\n private _clientWidth: number;\r\n private _clientHeight: number;\r\n private _useImageBar: Boolean;\r\n private _thumbLength: number = 0.5;\r\n private _thumbHeight: number = 1;\r\n private _barImageHeight: number = 1;\r\n private _horizontalBarImageHeight: number = 1;\r\n private _verticalBarImageHeight: number = 1;\r\n private _oldWindowContentsWidth: number = 0;\r\n private _oldWindowContentsHeight: number = 0;\r\n\r\n /**\r\n * Gets the horizontal scrollbar\r\n */\r\n public get horizontalBar(): ScrollBar | ImageScrollBar {\r\n return this._horizontalBar;\r\n }\r\n\r\n /**\r\n * Gets the vertical scrollbar\r\n */\r\n public get verticalBar(): ScrollBar | ImageScrollBar {\r\n return this._verticalBar;\r\n }\r\n\r\n /**\r\n * Adds a new control to the current container\r\n * @param control defines the control to add\r\n * @returns the current container\r\n */\r\n public addControl(control: Nullable<Control>): Container {\r\n if (!control) {\r\n return this;\r\n }\r\n\r\n this._window.addControl(control);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes a control from the current container\r\n * @param control defines the control to remove\r\n * @returns the current container\r\n */\r\n public removeControl(control: Control): Container {\r\n this._window.removeControl(control);\r\n return this;\r\n }\r\n\r\n /** Gets the list of children */\r\n public get children(): Control[] {\r\n return this._window.children;\r\n }\r\n\r\n public _flagDescendantsAsMatrixDirty(): void {\r\n for (var child of this._children) {\r\n child._markMatrixAsDirty();\r\n }\r\n }\r\n\r\n /**\r\n * Freezes or unfreezes the controls in the window.\r\n * When controls are frozen, the scroll viewer can render a lot more quickly but updates to positions/sizes of controls\r\n * are not taken into account. If you want to change positions/sizes, unfreeze, perform the changes then freeze again\r\n */\r\n public get freezeControls(): boolean {\r\n return this._window.freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n this._window.freezeControls = value;\r\n }\r\n\r\n /** Gets the bucket width */\r\n public get bucketWidth(): number {\r\n return this._window.bucketWidth;\r\n }\r\n\r\n /** Gets the bucket height */\r\n public get bucketHeight(): number {\r\n return this._window.bucketHeight;\r\n }\r\n\r\n /**\r\n * Sets the bucket sizes.\r\n * When freezeControls is true, setting a non-zero bucket size will improve performances by updating only\r\n * controls that are visible. The bucket sizes is used to subdivide (internally) the window area to smaller areas into which\r\n * controls are dispatched. So, the size should be roughly equals to the mean size of all the controls of\r\n * the window. To disable the usage of buckets, sets either width or height (or both) to 0.\r\n * Please note that using this option will raise the memory usage (the higher the bucket sizes, the less memory\r\n * used), that's why it is not enabled by default.\r\n * @param width width of the bucket\r\n * @param height height of the bucket\r\n */\r\n public setBucketSizes(width: number, height: number): void {\r\n this._window.setBucketSizes(width, height);\r\n }\r\n\r\n private _forceHorizontalBar: boolean = false;\r\n private _forceVerticalBar: boolean = false;\r\n\r\n /**\r\n * Forces the horizontal scroll bar to be displayed\r\n */\r\n public get forceHorizontalBar(): boolean {\r\n return this._forceHorizontalBar;\r\n }\r\n\r\n public set forceHorizontalBar(value: boolean) {\r\n this._grid.setRowDefinition(1, value ? this._barSize : 0, true);\r\n this._horizontalBar.isVisible = value;\r\n this._forceHorizontalBar = value;\r\n }\r\n\r\n /**\r\n * Forces the vertical scroll bar to be displayed\r\n */\r\n public get forceVerticalBar(): boolean {\r\n return this._forceVerticalBar;\r\n }\r\n\r\n public set forceVerticalBar(value: boolean) {\r\n this._grid.setColumnDefinition(1, value ? this._barSize : 0, true);\r\n this._verticalBar.isVisible = value;\r\n this._forceVerticalBar = value;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewer\r\n * @param name of ScrollViewer\r\n */\r\n constructor(name?: string, isImageBased?: boolean) {\r\n super(name);\r\n\r\n this._useImageBar = isImageBased ? isImageBased : false;\r\n\r\n this.onDirtyObservable.add(() => {\r\n this._horizontalBarSpace.color = this.color;\r\n this._verticalBarSpace.color = this.color;\r\n this._dragSpace.color = this.color;\r\n });\r\n\r\n this.onPointerEnterObservable.add(() => {\r\n this._pointerIsOver = true;\r\n });\r\n\r\n this.onPointerOutObservable.add(() => {\r\n this._pointerIsOver = false;\r\n });\r\n\r\n this._grid = new Grid();\r\n if (this._useImageBar) {\r\n this._horizontalBar = new ImageScrollBar();\r\n this._verticalBar = new ImageScrollBar();\r\n }\r\n else {\r\n this._horizontalBar = new ScrollBar();\r\n this._verticalBar = new ScrollBar();\r\n }\r\n\r\n this._window = new _ScrollViewerWindow(\"scrollViewer_window\");\r\n this._window.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._window.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._grid.addColumnDefinition(1);\r\n this._grid.addColumnDefinition(0, true);\r\n this._grid.addRowDefinition(1);\r\n this._grid.addRowDefinition(0, true);\r\n\r\n super.addControl(this._grid);\r\n this._grid.addControl(this._window, 0, 0);\r\n\r\n this._verticalBarSpace = new Rectangle();\r\n this._verticalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._verticalBarSpace.thickness = 1;\r\n this._grid.addControl(this._verticalBarSpace, 0, 1);\r\n this._addBar(this._verticalBar, this._verticalBarSpace, true, Math.PI);\r\n\r\n this._horizontalBarSpace = new Rectangle();\r\n this._horizontalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._horizontalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._horizontalBarSpace.thickness = 1;\r\n this._grid.addControl(this._horizontalBarSpace, 1, 0);\r\n this._addBar(this._horizontalBar, this._horizontalBarSpace, false, 0);\r\n\r\n this._dragSpace = new Rectangle();\r\n this._dragSpace.thickness = 1;\r\n this._grid.addControl(this._dragSpace, 1, 1);\r\n\r\n // Colors\r\n if (!this._useImageBar) {\r\n this.barColor = \"grey\";\r\n this.barBackground = \"transparent\";\r\n }\r\n }\r\n\r\n /** Reset the scroll viewer window to initial size */\r\n public resetWindow() {\r\n this._window.width = \"100%\";\r\n this._window.height = \"100%\";\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewer\";\r\n }\r\n\r\n private _buildClientSizes() {\r\n let ratio = this.host.idealRatio;\r\n\r\n this._window.parentClientWidth = this._currentMeasure.width - (this._verticalBar.isVisible || this.forceVerticalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n this._window.parentClientHeight = this._currentMeasure.height - (this._horizontalBar.isVisible || this.forceHorizontalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n\r\n this._clientWidth = this._window.parentClientWidth;\r\n this._clientHeight = this._window.parentClientHeight;\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._buildClientSizes();\r\n }\r\n\r\n protected _postMeasure(): void {\r\n super._postMeasure();\r\n\r\n this._updateScroller();\r\n\r\n this._setWindowPosition(false);\r\n }\r\n\r\n /**\r\n * Gets or sets the mouse wheel precision\r\n * from 0 to 1 with a default value of 0.05\r\n * */\r\n public get wheelPrecision(): number {\r\n return this._wheelPrecision;\r\n }\r\n\r\n public set wheelPrecision(value: number) {\r\n if (this._wheelPrecision === value) {\r\n return;\r\n }\r\n\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n\r\n this._wheelPrecision = value;\r\n }\r\n\r\n /** Gets or sets the scroll bar container background color */\r\n public get scrollBackground(): string {\r\n return this._horizontalBarSpace.background;\r\n }\r\n\r\n public set scrollBackground(color: string) {\r\n if (this._horizontalBarSpace.background === color) {\r\n return;\r\n }\r\n this._horizontalBarSpace.background = color;\r\n this._verticalBarSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar color */\r\n public get barColor(): string {\r\n return this._barColor;\r\n }\r\n\r\n public set barColor(color: string) {\r\n if (this._barColor === color) {\r\n return;\r\n }\r\n\r\n this._barColor = color;\r\n this._horizontalBar.color = color;\r\n this._verticalBar.color = color;\r\n }\r\n\r\n /** Gets or sets the bar image */\r\n public get thumbImage(): Image {\r\n return this._barImage;\r\n }\r\n\r\n public set thumbImage(value: Image) {\r\n if (this._barImage === value) {\r\n return;\r\n }\r\n\r\n this._barImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbImage = value;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar image */\r\n public get horizontalThumbImage(): Image {\r\n return this._horizontalBarImage;\r\n }\r\n\r\n public set horizontalThumbImage(value: Image) {\r\n if (this._horizontalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._horizontalBarImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n hb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar image */\r\n public get verticalThumbImage(): Image {\r\n return this._verticalBarImage;\r\n }\r\n\r\n public set verticalThumbImage(value: Image) {\r\n if (this._verticalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._verticalBarImage = value;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the size of the bar */\r\n public get barSize(): number {\r\n return this._barSize;\r\n }\r\n\r\n public set barSize(value: number) {\r\n if (this._barSize === value) {\r\n return;\r\n }\r\n\r\n this._barSize = value;\r\n this._markAsDirty();\r\n\r\n if (this._horizontalBar.isVisible) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n }\r\n if (this._verticalBar.isVisible) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n }\r\n }\r\n\r\n /** Gets or sets the length of the thumb */\r\n public get thumbLength(): number {\r\n return this._thumbLength;\r\n }\r\n\r\n public set thumbLength(value: number) {\r\n if (this._thumbLength === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbLength = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbLength = value;\r\n vb.thumbLength = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the thumb */\r\n public get thumbHeight(): number {\r\n return this._thumbHeight;\r\n }\r\n\r\n public set thumbHeight(value: number) {\r\n if (this._thumbHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbHeight = value;\r\n vb.thumbHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the bar image */\r\n public get barImageHeight(): number {\r\n return this._barImageHeight;\r\n }\r\n\r\n public set barImageHeight(value: number) {\r\n if (this._barImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._barImageHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.barImageHeight = value;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the horizontal bar image */\r\n public get horizontalBarImageHeight(): number {\r\n return this._horizontalBarImageHeight;\r\n }\r\n\r\n public set horizontalBarImageHeight(value: number) {\r\n if (this._horizontalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._horizontalBarImageHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n hb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the vertical bar image */\r\n public get verticalBarImageHeight(): number {\r\n return this._verticalBarImageHeight;\r\n }\r\n\r\n public set verticalBarImageHeight(value: number) {\r\n if (this._verticalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._verticalBarImageHeight = value;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the bar background */\r\n public get barBackground(): string {\r\n return this._barBackground;\r\n }\r\n\r\n public set barBackground(color: string) {\r\n if (this._barBackground === color) {\r\n return;\r\n }\r\n\r\n this._barBackground = color;\r\n let hb = <ScrollBar>this._horizontalBar;\r\n let vb = <ScrollBar>this._verticalBar;\r\n hb.background = color;\r\n vb.background = color;\r\n this._dragSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar background image */\r\n public get barImage(): Image {\r\n return this._barBackgroundImage;\r\n }\r\n\r\n public set barImage(value: Image) {\r\n if (this._barBackgroundImage === value) {\r\n }\r\n\r\n this._barBackgroundImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n hb.backgroundImage = value;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar background image */\r\n public get horizontalBarImage(): Image {\r\n return this._horizontalBarBackgroundImage;\r\n }\r\n\r\n public set horizontalBarImage(value: Image) {\r\n if (this._horizontalBarBackgroundImage === value) {\r\n }\r\n\r\n this._horizontalBarBackgroundImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n hb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar background image */\r\n public get verticalBarImage(): Image {\r\n return this._verticalBarBackgroundImage;\r\n }\r\n\r\n public set verticalBarImage(value: Image) {\r\n if (this._verticalBarBackgroundImage === value) {\r\n }\r\n\r\n this._verticalBarBackgroundImage = value;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n private _setWindowPosition(force = true): void {\r\n let ratio = this.host.idealRatio;\r\n let windowContentsWidth = this._window._currentMeasure.width;\r\n let windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (!force && this._oldWindowContentsWidth === windowContentsWidth && this._oldWindowContentsHeight === windowContentsHeight) {\r\n return;\r\n }\r\n\r\n this._oldWindowContentsWidth = windowContentsWidth;\r\n this._oldWindowContentsHeight = windowContentsHeight;\r\n\r\n const _endLeft = this._clientWidth - windowContentsWidth;\r\n const _endTop = this._clientHeight - windowContentsHeight;\r\n\r\n const newLeft = (this._horizontalBar.value / ratio) * _endLeft + \"px\";\r\n const newTop = (this._verticalBar.value / ratio) * _endTop + \"px\";\r\n\r\n if (newLeft !== this._window.left) {\r\n this._window.left = newLeft;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n\r\n if (newTop !== this._window.top) {\r\n this._window.top = newTop;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n }\r\n\r\n /** @hidden */\r\n private _updateScroller(): void {\r\n let windowContentsWidth = this._window._currentMeasure.width;\r\n let windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (this._horizontalBar.isVisible && windowContentsWidth <= this._clientWidth && !this.forceHorizontalBar) {\r\n this._grid.setRowDefinition(1, 0, true);\r\n this._horizontalBar.isVisible = false;\r\n this._horizontalBar.value = 0;\r\n this._rebuildLayout = true;\r\n }\r\n else if (!this._horizontalBar.isVisible && (windowContentsWidth > this._clientWidth || this.forceHorizontalBar)) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n this._horizontalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n if (this._verticalBar.isVisible && windowContentsHeight <= this._clientHeight && !this.forceVerticalBar) {\r\n this._grid.setColumnDefinition(1, 0, true);\r\n this._verticalBar.isVisible = false;\r\n this._verticalBar.value = 0;\r\n this._rebuildLayout = true;\r\n }\r\n else if (!this._verticalBar.isVisible && (windowContentsHeight > this._clientHeight || this.forceVerticalBar)) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n this._verticalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n this._buildClientSizes();\r\n\r\n let ratio = this.host.idealRatio;\r\n\r\n this._horizontalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientWidth / ratio) + \"px\";\r\n this._verticalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientHeight / ratio) + \"px\";\r\n }\r\n\r\n public _link(host: AdvancedDynamicTexture): void {\r\n super._link(host);\r\n\r\n this._attachWheel();\r\n }\r\n\r\n /** @hidden */\r\n private _addBar(barControl: ScrollBar | ImageScrollBar, barContainer: Rectangle, isVertical: boolean, rotation: number) {\r\n barControl.paddingLeft = 0;\r\n barControl.width = \"100%\";\r\n barControl.height = \"100%\";\r\n barControl.barOffset = 0;\r\n barControl.value = 0;\r\n barControl.maximum = 1;\r\n barControl.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_CENTER;\r\n barControl.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;\r\n barControl.isVertical = isVertical;\r\n barControl.rotation = rotation;\r\n barControl.isVisible = false;\r\n\r\n barContainer.addControl(barControl);\r\n\r\n barControl.onValueChangedObservable.add((value) => {\r\n this._setWindowPosition();\r\n });\r\n }\r\n\r\n /** @hidden */\r\n private _attachWheel() {\r\n if (!this._host || this._onWheelObserver) {\r\n return;\r\n }\r\n\r\n this._onWheelObserver = this.onWheelObservable.add((pi) => {\r\n if (!this._pointerIsOver || this.isReadOnly) {\r\n return;\r\n }\r\n if (this._verticalBar.isVisible == true) {\r\n if (pi.y < 0 && this._verticalBar.value > 0) {\r\n this._verticalBar.value -= this._wheelPrecision;\r\n } else if (pi.y > 0 && this._verticalBar.value < this._verticalBar.maximum) {\r\n this._verticalBar.value += this._wheelPrecision;\r\n }\r\n }\r\n if (this._horizontalBar.isVisible == true) {\r\n if (pi.x < 0 && this._horizontalBar.value < this._horizontalBar.maximum) {\r\n this._horizontalBar.value += this._wheelPrecision;\r\n } else if (pi.x > 0 && this._horizontalBar.value > 0) {\r\n this._horizontalBar.value -= this._wheelPrecision;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n if (!this.isHighlighted) {\r\n return;\r\n }\r\n\r\n super._renderHighlightSpecific(context);\r\n\r\n this._grid._renderHighlightSpecific(context);\r\n\r\n context.restore();\r\n }\r\n\r\n /** Releases associated resources */\r\n public dispose() {\r\n this.onWheelObservable.remove(this._onWheelObserver);\r\n this._onWheelObserver = null;\r\n super.dispose();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.ScrollViewer\", ScrollViewer);"]}
1
+ {"version":3,"file":"scrollViewer.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/scrollViewers/scrollViewer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport type { Vector2 } from \"core/Maths/math\";\r\nimport { Rectangle } from \"../rectangle\";\r\nimport { Grid } from \"../grid\";\r\nimport type { Image } from \"../image\";\r\nimport { Control } from \"../control\";\r\nimport type { Container } from \"../container\";\r\nimport type { Measure } from \"../../measure\";\r\nimport type { AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\nimport { _ScrollViewerWindow } from \"./scrollViewerWindow\";\r\nimport { ScrollBar } from \"../sliders/scrollBar\";\r\nimport { ImageScrollBar } from \"../sliders/imageScrollBar\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a viewer window and sliders in a grid\r\n */\r\nexport class ScrollViewer extends Rectangle {\r\n private _grid: Grid;\r\n private _horizontalBarSpace: Rectangle;\r\n private _verticalBarSpace: Rectangle;\r\n private _dragSpace: Rectangle;\r\n private _horizontalBar: ScrollBar | ImageScrollBar;\r\n private _verticalBar: ScrollBar | ImageScrollBar;\r\n private _barColor: string;\r\n private _barBackground: string;\r\n private _barImage: Image;\r\n private _horizontalBarImage: Image;\r\n private _verticalBarImage: Image;\r\n private _barBackgroundImage: Image;\r\n private _horizontalBarBackgroundImage: Image;\r\n private _verticalBarBackgroundImage: Image;\r\n private _barSize: number = 20;\r\n private _window: _ScrollViewerWindow;\r\n private _pointerIsOver: Boolean = false;\r\n private _wheelPrecision: number = 0.05;\r\n private _onWheelObserver: Nullable<Observer<Vector2>>;\r\n private _clientWidth: number;\r\n private _clientHeight: number;\r\n private _useImageBar: Boolean;\r\n private _thumbLength: number = 0.5;\r\n private _thumbHeight: number = 1;\r\n private _barImageHeight: number = 1;\r\n private _horizontalBarImageHeight: number = 1;\r\n private _verticalBarImageHeight: number = 1;\r\n private _oldWindowContentsWidth: number = 0;\r\n private _oldWindowContentsHeight: number = 0;\r\n\r\n /**\r\n * Gets the horizontal scrollbar\r\n */\r\n public get horizontalBar(): ScrollBar | ImageScrollBar {\r\n return this._horizontalBar;\r\n }\r\n\r\n /**\r\n * Gets the vertical scrollbar\r\n */\r\n public get verticalBar(): ScrollBar | ImageScrollBar {\r\n return this._verticalBar;\r\n }\r\n\r\n /**\r\n * Adds a new control to the current container\r\n * @param control defines the control to add\r\n * @returns the current container\r\n */\r\n public addControl(control: Nullable<Control>): Container {\r\n if (!control) {\r\n return this;\r\n }\r\n\r\n this._window.addControl(control);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes a control from the current container\r\n * @param control defines the control to remove\r\n * @returns the current container\r\n */\r\n public removeControl(control: Control): Container {\r\n this._window.removeControl(control);\r\n return this;\r\n }\r\n\r\n /** Gets the list of children */\r\n public get children(): Control[] {\r\n return this._window.children;\r\n }\r\n\r\n public _flagDescendantsAsMatrixDirty(): void {\r\n for (const child of this._children) {\r\n child._markMatrixAsDirty();\r\n }\r\n }\r\n\r\n /**\r\n * Freezes or unfreezes the controls in the window.\r\n * When controls are frozen, the scroll viewer can render a lot more quickly but updates to positions/sizes of controls\r\n * are not taken into account. If you want to change positions/sizes, unfreeze, perform the changes then freeze again\r\n */\r\n public get freezeControls(): boolean {\r\n return this._window.freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n this._window.freezeControls = value;\r\n }\r\n\r\n /** Gets the bucket width */\r\n public get bucketWidth(): number {\r\n return this._window.bucketWidth;\r\n }\r\n\r\n /** Gets the bucket height */\r\n public get bucketHeight(): number {\r\n return this._window.bucketHeight;\r\n }\r\n\r\n /**\r\n * Sets the bucket sizes.\r\n * When freezeControls is true, setting a non-zero bucket size will improve performances by updating only\r\n * controls that are visible. The bucket sizes is used to subdivide (internally) the window area to smaller areas into which\r\n * controls are dispatched. So, the size should be roughly equals to the mean size of all the controls of\r\n * the window. To disable the usage of buckets, sets either width or height (or both) to 0.\r\n * Please note that using this option will raise the memory usage (the higher the bucket sizes, the less memory\r\n * used), that's why it is not enabled by default.\r\n * @param width width of the bucket\r\n * @param height height of the bucket\r\n */\r\n public setBucketSizes(width: number, height: number): void {\r\n this._window.setBucketSizes(width, height);\r\n }\r\n\r\n private _forceHorizontalBar: boolean = false;\r\n private _forceVerticalBar: boolean = false;\r\n\r\n /**\r\n * Forces the horizontal scroll bar to be displayed\r\n */\r\n public get forceHorizontalBar(): boolean {\r\n return this._forceHorizontalBar;\r\n }\r\n\r\n public set forceHorizontalBar(value: boolean) {\r\n this._grid.setRowDefinition(1, value ? this._barSize : 0, true);\r\n this._horizontalBar.isVisible = value;\r\n this._forceHorizontalBar = value;\r\n }\r\n\r\n /**\r\n * Forces the vertical scroll bar to be displayed\r\n */\r\n public get forceVerticalBar(): boolean {\r\n return this._forceVerticalBar;\r\n }\r\n\r\n public set forceVerticalBar(value: boolean) {\r\n this._grid.setColumnDefinition(1, value ? this._barSize : 0, true);\r\n this._verticalBar.isVisible = value;\r\n this._forceVerticalBar = value;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewer\r\n * @param name of ScrollViewer\r\n * @param isImageBased\r\n */\r\n constructor(name?: string, isImageBased?: boolean) {\r\n super(name);\r\n\r\n this._useImageBar = isImageBased ? isImageBased : false;\r\n\r\n this.onDirtyObservable.add(() => {\r\n this._horizontalBarSpace.color = this.color;\r\n this._verticalBarSpace.color = this.color;\r\n this._dragSpace.color = this.color;\r\n });\r\n\r\n this.onPointerEnterObservable.add(() => {\r\n this._pointerIsOver = true;\r\n });\r\n\r\n this.onPointerOutObservable.add(() => {\r\n this._pointerIsOver = false;\r\n });\r\n\r\n this._grid = new Grid();\r\n if (this._useImageBar) {\r\n this._horizontalBar = new ImageScrollBar();\r\n this._verticalBar = new ImageScrollBar();\r\n } else {\r\n this._horizontalBar = new ScrollBar();\r\n this._verticalBar = new ScrollBar();\r\n }\r\n\r\n this._window = new _ScrollViewerWindow(\"scrollViewer_window\");\r\n this._window.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._window.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._grid.addColumnDefinition(1);\r\n this._grid.addColumnDefinition(0, true);\r\n this._grid.addRowDefinition(1);\r\n this._grid.addRowDefinition(0, true);\r\n\r\n super.addControl(this._grid);\r\n this._grid.addControl(this._window, 0, 0);\r\n\r\n this._verticalBarSpace = new Rectangle();\r\n this._verticalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._verticalBarSpace.thickness = 1;\r\n this._grid.addControl(this._verticalBarSpace, 0, 1);\r\n this._addBar(this._verticalBar, this._verticalBarSpace, true, Math.PI);\r\n\r\n this._horizontalBarSpace = new Rectangle();\r\n this._horizontalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._horizontalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._horizontalBarSpace.thickness = 1;\r\n this._grid.addControl(this._horizontalBarSpace, 1, 0);\r\n this._addBar(this._horizontalBar, this._horizontalBarSpace, false, 0);\r\n\r\n this._dragSpace = new Rectangle();\r\n this._dragSpace.thickness = 1;\r\n this._grid.addControl(this._dragSpace, 1, 1);\r\n\r\n // Colors\r\n if (!this._useImageBar) {\r\n this.barColor = \"grey\";\r\n this.barBackground = \"transparent\";\r\n }\r\n }\r\n\r\n /** Reset the scroll viewer window to initial size */\r\n public resetWindow() {\r\n this._window.width = \"100%\";\r\n this._window.height = \"100%\";\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewer\";\r\n }\r\n\r\n private _buildClientSizes() {\r\n const ratio = this.host.idealRatio;\r\n\r\n this._window.parentClientWidth = this._currentMeasure.width - (this._verticalBar.isVisible || this.forceVerticalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n this._window.parentClientHeight = this._currentMeasure.height - (this._horizontalBar.isVisible || this.forceHorizontalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n\r\n this._clientWidth = this._window.parentClientWidth;\r\n this._clientHeight = this._window.parentClientHeight;\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._buildClientSizes();\r\n }\r\n\r\n protected _postMeasure(): void {\r\n super._postMeasure();\r\n\r\n this._updateScroller();\r\n\r\n this._setWindowPosition(false);\r\n }\r\n\r\n /**\r\n * Gets or sets the mouse wheel precision\r\n * from 0 to 1 with a default value of 0.05\r\n * */\r\n public get wheelPrecision(): number {\r\n return this._wheelPrecision;\r\n }\r\n\r\n public set wheelPrecision(value: number) {\r\n if (this._wheelPrecision === value) {\r\n return;\r\n }\r\n\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n\r\n this._wheelPrecision = value;\r\n }\r\n\r\n /** Gets or sets the scroll bar container background color */\r\n public get scrollBackground(): string {\r\n return this._horizontalBarSpace.background;\r\n }\r\n\r\n public set scrollBackground(color: string) {\r\n if (this._horizontalBarSpace.background === color) {\r\n return;\r\n }\r\n this._horizontalBarSpace.background = color;\r\n this._verticalBarSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar color */\r\n public get barColor(): string {\r\n return this._barColor;\r\n }\r\n\r\n public set barColor(color: string) {\r\n if (this._barColor === color) {\r\n return;\r\n }\r\n\r\n this._barColor = color;\r\n this._horizontalBar.color = color;\r\n this._verticalBar.color = color;\r\n }\r\n\r\n /** Gets or sets the bar image */\r\n public get thumbImage(): Image {\r\n return this._barImage;\r\n }\r\n\r\n public set thumbImage(value: Image) {\r\n if (this._barImage === value) {\r\n return;\r\n }\r\n\r\n this._barImage = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbImage = value;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar image */\r\n public get horizontalThumbImage(): Image {\r\n return this._horizontalBarImage;\r\n }\r\n\r\n public set horizontalThumbImage(value: Image) {\r\n if (this._horizontalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._horizontalBarImage = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n hb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar image */\r\n public get verticalThumbImage(): Image {\r\n return this._verticalBarImage;\r\n }\r\n\r\n public set verticalThumbImage(value: Image) {\r\n if (this._verticalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._verticalBarImage = value;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the size of the bar */\r\n public get barSize(): number {\r\n return this._barSize;\r\n }\r\n\r\n public set barSize(value: number) {\r\n if (this._barSize === value) {\r\n return;\r\n }\r\n\r\n this._barSize = value;\r\n this._markAsDirty();\r\n\r\n if (this._horizontalBar.isVisible) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n }\r\n if (this._verticalBar.isVisible) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n }\r\n }\r\n\r\n /** Gets or sets the length of the thumb */\r\n public get thumbLength(): number {\r\n return this._thumbLength;\r\n }\r\n\r\n public set thumbLength(value: number) {\r\n if (this._thumbLength === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbLength = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbLength = value;\r\n vb.thumbLength = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the thumb */\r\n public get thumbHeight(): number {\r\n return this._thumbHeight;\r\n }\r\n\r\n public set thumbHeight(value: number) {\r\n if (this._thumbHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbHeight = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbHeight = value;\r\n vb.thumbHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the bar image */\r\n public get barImageHeight(): number {\r\n return this._barImageHeight;\r\n }\r\n\r\n public set barImageHeight(value: number) {\r\n if (this._barImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._barImageHeight = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n hb.barImageHeight = value;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the horizontal bar image */\r\n public get horizontalBarImageHeight(): number {\r\n return this._horizontalBarImageHeight;\r\n }\r\n\r\n public set horizontalBarImageHeight(value: number) {\r\n if (this._horizontalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._horizontalBarImageHeight = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n hb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the vertical bar image */\r\n public get verticalBarImageHeight(): number {\r\n return this._verticalBarImageHeight;\r\n }\r\n\r\n public set verticalBarImageHeight(value: number) {\r\n if (this._verticalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._verticalBarImageHeight = value;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the bar background */\r\n public get barBackground(): string {\r\n return this._barBackground;\r\n }\r\n\r\n public set barBackground(color: string) {\r\n if (this._barBackground === color) {\r\n return;\r\n }\r\n\r\n this._barBackground = color;\r\n const hb = <ScrollBar>this._horizontalBar;\r\n const vb = <ScrollBar>this._verticalBar;\r\n hb.background = color;\r\n vb.background = color;\r\n this._dragSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar background image */\r\n public get barImage(): Image {\r\n return this._barBackgroundImage;\r\n }\r\n\r\n public set barImage(value: Image) {\r\n this._barBackgroundImage = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n hb.backgroundImage = value;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar background image */\r\n public get horizontalBarImage(): Image {\r\n return this._horizontalBarBackgroundImage;\r\n }\r\n\r\n public set horizontalBarImage(value: Image) {\r\n this._horizontalBarBackgroundImage = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n hb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar background image */\r\n public get verticalBarImage(): Image {\r\n return this._verticalBarBackgroundImage;\r\n }\r\n\r\n public set verticalBarImage(value: Image) {\r\n this._verticalBarBackgroundImage = value;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n private _setWindowPosition(force = true): void {\r\n const ratio = this.host.idealRatio;\r\n const windowContentsWidth = this._window._currentMeasure.width;\r\n const windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (!force && this._oldWindowContentsWidth === windowContentsWidth && this._oldWindowContentsHeight === windowContentsHeight) {\r\n return;\r\n }\r\n\r\n this._oldWindowContentsWidth = windowContentsWidth;\r\n this._oldWindowContentsHeight = windowContentsHeight;\r\n\r\n const _endLeft = this._clientWidth - windowContentsWidth;\r\n const _endTop = this._clientHeight - windowContentsHeight;\r\n\r\n const newLeft = (this._horizontalBar.value / ratio) * _endLeft + \"px\";\r\n const newTop = (this._verticalBar.value / ratio) * _endTop + \"px\";\r\n\r\n if (newLeft !== this._window.left) {\r\n this._window.left = newLeft;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n\r\n if (newTop !== this._window.top) {\r\n this._window.top = newTop;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n }\r\n\r\n /** @hidden */\r\n private _updateScroller(): void {\r\n const windowContentsWidth = this._window._currentMeasure.width;\r\n const windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (this._horizontalBar.isVisible && windowContentsWidth <= this._clientWidth && !this.forceHorizontalBar) {\r\n this._grid.setRowDefinition(1, 0, true);\r\n this._horizontalBar.isVisible = false;\r\n this._horizontalBar.value = 0;\r\n this._rebuildLayout = true;\r\n } else if (!this._horizontalBar.isVisible && (windowContentsWidth > this._clientWidth || this.forceHorizontalBar)) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n this._horizontalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n if (this._verticalBar.isVisible && windowContentsHeight <= this._clientHeight && !this.forceVerticalBar) {\r\n this._grid.setColumnDefinition(1, 0, true);\r\n this._verticalBar.isVisible = false;\r\n this._verticalBar.value = 0;\r\n this._rebuildLayout = true;\r\n } else if (!this._verticalBar.isVisible && (windowContentsHeight > this._clientHeight || this.forceVerticalBar)) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n this._verticalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n this._buildClientSizes();\r\n\r\n const ratio = this.host.idealRatio;\r\n\r\n this._horizontalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientWidth / ratio) + \"px\";\r\n this._verticalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientHeight / ratio) + \"px\";\r\n }\r\n\r\n public _link(host: AdvancedDynamicTexture): void {\r\n super._link(host);\r\n\r\n this._attachWheel();\r\n }\r\n\r\n /**\r\n * @param barControl\r\n * @param barContainer\r\n * @param isVertical\r\n * @param rotation\r\n * @hidden\r\n */\r\n private _addBar(barControl: ScrollBar | ImageScrollBar, barContainer: Rectangle, isVertical: boolean, rotation: number) {\r\n barControl.paddingLeft = 0;\r\n barControl.width = \"100%\";\r\n barControl.height = \"100%\";\r\n barControl.barOffset = 0;\r\n barControl.value = 0;\r\n barControl.maximum = 1;\r\n barControl.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_CENTER;\r\n barControl.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;\r\n barControl.isVertical = isVertical;\r\n barControl.rotation = rotation;\r\n barControl.isVisible = false;\r\n\r\n barContainer.addControl(barControl);\r\n\r\n barControl.onValueChangedObservable.add(() => {\r\n this._setWindowPosition();\r\n });\r\n }\r\n\r\n /** @hidden */\r\n private _attachWheel() {\r\n if (!this._host || this._onWheelObserver) {\r\n return;\r\n }\r\n\r\n this._onWheelObserver = this.onWheelObservable.add((pi) => {\r\n if (!this._pointerIsOver || this.isReadOnly) {\r\n return;\r\n }\r\n if (this._verticalBar.isVisible == true) {\r\n if (pi.y < 0 && this._verticalBar.value > 0) {\r\n this._verticalBar.value -= this._wheelPrecision;\r\n } else if (pi.y > 0 && this._verticalBar.value < this._verticalBar.maximum) {\r\n this._verticalBar.value += this._wheelPrecision;\r\n }\r\n }\r\n if (this._horizontalBar.isVisible == true) {\r\n if (pi.x < 0 && this._horizontalBar.value < this._horizontalBar.maximum) {\r\n this._horizontalBar.value += this._wheelPrecision;\r\n } else if (pi.x > 0 && this._horizontalBar.value > 0) {\r\n this._horizontalBar.value -= this._wheelPrecision;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n if (!this.isHighlighted) {\r\n return;\r\n }\r\n\r\n super._renderHighlightSpecific(context);\r\n\r\n this._grid._renderHighlightSpecific(context);\r\n\r\n context.restore();\r\n }\r\n\r\n /** Releases associated resources */\r\n public dispose() {\r\n this.onWheelObservable.remove(this._onWheelObserver);\r\n this._onWheelObserver = null;\r\n super.dispose();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.ScrollViewer\", ScrollViewer);\r\n"]}
@@ -1,45 +1,57 @@
1
- import { Measure } from "../../measure";
2
- import { Container } from "../container";
3
- import { ICanvasRenderingContext } from '@babylonjs/core/Engines/ICanvas';
4
- /**
5
- * Class used to hold a the container for ScrollViewer
6
- * @hidden
7
- */
8
- export declare class _ScrollViewerWindow extends Container {
9
- parentClientWidth: number;
10
- parentClientHeight: number;
11
- private _freezeControls;
12
- private _parentMeasure;
13
- private _oldLeft;
14
- private _oldTop;
15
- get freezeControls(): boolean;
16
- set freezeControls(value: boolean);
17
- private _bucketWidth;
18
- private _bucketHeight;
19
- private _buckets;
20
- private _bucketLen;
21
- get bucketWidth(): number;
22
- get bucketHeight(): number;
23
- setBucketSizes(width: number, height: number): void;
24
- private _useBuckets;
25
- private _makeBuckets;
26
- private _dispatchInBuckets;
27
- private _updateMeasures;
28
- private _updateChildrenMeasures;
29
- private _restoreMeasures;
30
- /**
31
- * Creates a new ScrollViewerWindow
32
- * @param name of ScrollViewerWindow
33
- */
34
- constructor(name?: string);
35
- protected _getTypeName(): string;
36
- /** @hidden */
37
- protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
38
- /** @hidden */
39
- _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean;
40
- private _scrollChildren;
41
- private _scrollChildrenWithBuckets;
42
- /** @hidden */
43
- _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void;
44
- protected _postMeasure(): void;
45
- }
1
+ import { Measure } from "../../measure";
2
+ import { Container } from "../container";
3
+ import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
4
+ /**
5
+ * Class used to hold a the container for ScrollViewer
6
+ * @hidden
7
+ */
8
+ export declare class _ScrollViewerWindow extends Container {
9
+ parentClientWidth: number;
10
+ parentClientHeight: number;
11
+ private _freezeControls;
12
+ private _parentMeasure;
13
+ private _oldLeft;
14
+ private _oldTop;
15
+ get freezeControls(): boolean;
16
+ set freezeControls(value: boolean);
17
+ private _bucketWidth;
18
+ private _bucketHeight;
19
+ private _buckets;
20
+ private _bucketLen;
21
+ get bucketWidth(): number;
22
+ get bucketHeight(): number;
23
+ setBucketSizes(width: number, height: number): void;
24
+ private _useBuckets;
25
+ private _makeBuckets;
26
+ private _dispatchInBuckets;
27
+ private _updateMeasures;
28
+ private _updateChildrenMeasures;
29
+ private _restoreMeasures;
30
+ /**
31
+ * Creates a new ScrollViewerWindow
32
+ * @param name of ScrollViewerWindow
33
+ */
34
+ constructor(name?: string);
35
+ protected _getTypeName(): string;
36
+ /**
37
+ * @param parentMeasure
38
+ * @param context
39
+ * @hidden
40
+ */
41
+ protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
42
+ /**
43
+ * @param parentMeasure
44
+ * @param context
45
+ * @hidden
46
+ */
47
+ _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean;
48
+ private _scrollChildren;
49
+ private _scrollChildrenWithBuckets;
50
+ /**
51
+ * @param context
52
+ * @param invalidatedRectangle
53
+ * @hidden
54
+ */
55
+ _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void;
56
+ protected _postMeasure(): void;
57
+ }