@qooxdoo/framework 7.0.0-beta.5 → 7.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -6
- package/Manifest.json +1 -1
- package/README.md +9 -3
- package/lib/compiler/compile-info.json +50 -48
- package/lib/compiler/index.js +6948 -4175
- package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
- package/lib/resource/qx/tool/loadsass.js +16 -13
- package/lib/resource/qx/tool/schema/compile-1-0-0.json +13 -13
- package/lib/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
- package/lib/resource/qx/tool/website/build/assets/buttons.js +391 -1
- package/lib/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
- package/lib/resource/qx/tool/website/build/assets/jquery.js +5452 -3
- package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
- package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
- package/lib/resource/qx/tool/website/build/scripts/serve.js +87 -66
- package/lib/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
- package/lib/resource/qx/tool/website/src/assets/buttons.js +391 -1
- package/lib/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
- package/lib/resource/qx/tool/website/src/assets/jquery.js +5452 -3
- package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
- package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
- package/lib/resource/qx/tool/website/src/scripts/serve.js +87 -66
- package/npm-shrinkwrap.json +7293 -0
- package/package.json +19 -4
- package/source/class/q.js +4 -2
- package/source/class/qx/Annotation.js +48 -57
- package/source/class/qx/Bootstrap.js +206 -207
- package/source/class/qx/Class.js +602 -504
- package/source/class/qx/Interface.js +169 -137
- package/source/class/qx/Mixin.js +156 -120
- package/source/class/qx/Part.js +48 -77
- package/source/class/qx/Promise.js +5891 -4655
- package/source/class/qx/Theme.js +200 -134
- package/source/class/qx/__init__.js +8 -8
- package/source/class/qx/application/AbstractGui.js +20 -32
- package/source/class/qx/application/Basic.js +9 -18
- package/source/class/qx/application/IApplication.js +6 -10
- package/source/class/qx/application/Inline.js +4 -7
- package/source/class/qx/application/Mobile.js +22 -45
- package/source/class/qx/application/Native.js +8 -19
- package/source/class/qx/application/Routing.js +88 -114
- package/source/class/qx/application/Standalone.js +4 -9
- package/source/class/qx/application/__init__.js +1 -1
- package/source/class/qx/bom/AnimationFrame.js +26 -25
- package/source/class/qx/bom/Blocker.js +92 -100
- package/source/class/qx/bom/Cookie.js +18 -22
- package/source/class/qx/bom/Document.js +24 -31
- package/source/class/qx/bom/Element.js +65 -51
- package/source/class/qx/bom/Event.js +68 -78
- package/source/class/qx/bom/FileReader.js +110 -115
- package/source/class/qx/bom/Font.js +82 -122
- package/source/class/qx/bom/FullScreen.js +32 -41
- package/source/class/qx/bom/GeoLocation.js +39 -44
- package/source/class/qx/bom/HashHistory.js +58 -64
- package/source/class/qx/bom/History.js +61 -89
- package/source/class/qx/bom/Html.js +75 -71
- package/source/class/qx/bom/IdleCallback.js +20 -23
- package/source/class/qx/bom/Iframe.js +37 -69
- package/source/class/qx/bom/IframeHistory.js +83 -88
- package/source/class/qx/bom/Input.js +50 -66
- package/source/class/qx/bom/Label.js +65 -86
- package/source/class/qx/bom/Lifecycle.js +7 -9
- package/source/class/qx/bom/MediaQuery.js +324 -307
- package/source/class/qx/bom/NativeHistory.js +51 -46
- package/source/class/qx/bom/Notification.js +41 -47
- package/source/class/qx/bom/PageVisibility.js +19 -25
- package/source/class/qx/bom/Range.js +20 -30
- package/source/class/qx/bom/Selection.js +163 -172
- package/source/class/qx/bom/Selector.js +2401 -2181
- package/source/class/qx/bom/Shortcut.js +103 -129
- package/source/class/qx/bom/Storage.js +9 -8
- package/source/class/qx/bom/String.js +285 -290
- package/source/class/qx/bom/Style.js +30 -31
- package/source/class/qx/bom/Stylesheet.js +36 -60
- package/source/class/qx/bom/Template.js +730 -657
- package/source/class/qx/bom/Viewport.js +40 -46
- package/source/class/qx/bom/Vml.js +43 -28
- package/source/class/qx/bom/WebWorker.js +61 -50
- package/source/class/qx/bom/Window.js +88 -105
- package/source/class/qx/bom/__init__.js +11 -11
- package/source/class/qx/bom/client/Browser.js +45 -47
- package/source/class/qx/bom/client/Css.js +85 -85
- package/source/class/qx/bom/client/CssAnimation.js +41 -49
- package/source/class/qx/bom/client/CssTransform.js +21 -29
- package/source/class/qx/bom/client/CssTransition.js +9 -12
- package/source/class/qx/bom/client/Device.js +45 -45
- package/source/class/qx/bom/client/EcmaScript.js +153 -96
- package/source/class/qx/bom/client/Engine.js +38 -35
- package/source/class/qx/bom/client/Event.js +75 -63
- package/source/class/qx/bom/client/Html.js +97 -97
- package/source/class/qx/bom/client/Idle.js +4 -6
- package/source/class/qx/bom/client/Locale.js +15 -15
- package/source/class/qx/bom/client/OperatingSystem.js +89 -106
- package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
- package/source/class/qx/bom/client/PhoneGap.js +6 -9
- package/source/class/qx/bom/client/Plugin.js +93 -97
- package/source/class/qx/bom/client/Runtime.js +14 -12
- package/source/class/qx/bom/client/Scroll.js +20 -16
- package/source/class/qx/bom/client/Stylesheet.js +44 -32
- package/source/class/qx/bom/client/Transport.js +38 -41
- package/source/class/qx/bom/client/Xml.js +39 -41
- package/source/class/qx/bom/client/__init__.js +4 -4
- package/source/class/qx/bom/element/Animation.js +15 -12
- package/source/class/qx/bom/element/AnimationCss.js +95 -64
- package/source/class/qx/bom/element/AnimationHandle.js +22 -29
- package/source/class/qx/bom/element/AnimationJs.js +94 -71
- package/source/class/qx/bom/element/Attribute.js +119 -134
- package/source/class/qx/bom/element/Background.js +35 -35
- package/source/class/qx/bom/element/BoxSizing.js +43 -44
- package/source/class/qx/bom/element/Class.js +50 -72
- package/source/class/qx/bom/element/Clip.js +36 -60
- package/source/class/qx/bom/element/Cursor.js +13 -20
- package/source/class/qx/bom/element/Dataset.js +33 -31
- package/source/class/qx/bom/element/Decoration.js +178 -168
- package/source/class/qx/bom/element/Dimension.js +78 -60
- package/source/class/qx/bom/element/Location.js +87 -94
- package/source/class/qx/bom/element/Opacity.js +42 -44
- package/source/class/qx/bom/element/Scroll.js +78 -88
- package/source/class/qx/bom/element/Style.js +61 -101
- package/source/class/qx/bom/element/Transform.js +38 -56
- package/source/class/qx/bom/element/__init__.js +4 -4
- package/source/class/qx/bom/media/Abstract.js +136 -143
- package/source/class/qx/bom/media/Audio.js +7 -12
- package/source/class/qx/bom/media/Video.js +15 -27
- package/source/class/qx/bom/request/IRequest.js +18 -21
- package/source/class/qx/bom/request/Jsonp.js +34 -39
- package/source/class/qx/bom/request/Script.js +94 -90
- package/source/class/qx/bom/request/SimpleXhr.js +111 -79
- package/source/class/qx/bom/request/Xhr.js +196 -143
- package/source/class/qx/bom/request/__init__.js +1 -1
- package/source/class/qx/bom/rest/Resource.js +269 -203
- package/source/class/qx/bom/storage/Memory.js +18 -29
- package/source/class/qx/bom/storage/UserData.js +28 -35
- package/source/class/qx/bom/storage/Web.js +19 -30
- package/source/class/qx/bom/webfonts/Manager.js +199 -130
- package/source/class/qx/bom/webfonts/Validator.js +84 -118
- package/source/class/qx/bom/webfonts/WebFont.js +24 -28
- package/source/class/qx/bom/webfonts/__init__.js +1 -1
- package/source/class/qx/core/Aspect.js +15 -22
- package/source/class/qx/core/Assert.js +391 -333
- package/source/class/qx/core/AssertionError.js +6 -15
- package/source/class/qx/core/BaseInit.js +25 -28
- package/source/class/qx/core/Environment.js +72 -86
- package/source/class/qx/core/GlobalError.js +12 -20
- package/source/class/qx/core/IDisposable.js +6 -9
- package/source/class/qx/core/Id.js +25 -15
- package/source/class/qx/core/Init.js +20 -20
- package/source/class/qx/core/MAssert.js +54 -97
- package/source/class/qx/core/MBindTo.js +10 -14
- package/source/class/qx/core/MEvent.js +76 -65
- package/source/class/qx/core/MLogging.js +9 -18
- package/source/class/qx/core/MObjectId.js +104 -65
- package/source/class/qx/core/MProperty.js +18 -34
- package/source/class/qx/core/Object.js +93 -122
- package/source/class/qx/core/ObjectRegistry.js +58 -81
- package/source/class/qx/core/Property.js +974 -780
- package/source/class/qx/core/ValidationError.js +3 -4
- package/source/class/qx/core/WindowError.js +13 -24
- package/source/class/qx/core/Wrapper.js +8 -9
- package/source/class/qx/data/Array.js +178 -191
- package/source/class/qx/data/Conversion.js +11 -18
- package/source/class/qx/data/IListData.js +11 -20
- package/source/class/qx/data/MBinding.js +31 -26
- package/source/class/qx/data/SingleValueBinding.js +491 -225
- package/source/class/qx/data/__init__.js +1 -1
- package/source/class/qx/data/controller/CheckedList.js +82 -54
- package/source/class/qx/data/controller/Form.js +81 -69
- package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
- package/source/class/qx/data/controller/ISelection.js +6 -10
- package/source/class/qx/data/controller/List.js +151 -167
- package/source/class/qx/data/controller/MSelection.js +53 -72
- package/source/class/qx/data/controller/Object.js +106 -77
- package/source/class/qx/data/controller/Tree.js +164 -142
- package/source/class/qx/data/controller/__init__.js +1 -1
- package/source/class/qx/data/controller/website/List.js +34 -43
- package/source/class/qx/data/controller/website/__init__.js +2 -2
- package/source/class/qx/data/marshal/IMarshaler.js +4 -7
- package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
- package/source/class/qx/data/marshal/Json.js +112 -85
- package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
- package/source/class/qx/data/marshal/__init__.js +1 -1
- package/source/class/qx/data/store/IStoreDelegate.js +6 -9
- package/source/class/qx/data/store/Json.js +71 -85
- package/source/class/qx/data/store/Jsonp.js +19 -25
- package/source/class/qx/data/store/Offline.js +21 -29
- package/source/class/qx/data/store/Rest.js +25 -23
- package/source/class/qx/data/store/__init__.js +1 -1
- package/source/class/qx/dev/Debug.js +105 -124
- package/source/class/qx/dev/FakeServer.js +68 -65
- package/source/class/qx/dev/ObjectSummary.js +33 -39
- package/source/class/qx/dev/Profile.js +62 -63
- package/source/class/qx/dev/StackTrace.js +64 -70
- package/source/class/qx/dev/Tokenizer.js +114 -126
- package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
- package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
- package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
- package/source/class/qx/dev/unit/MMeasure.js +46 -37
- package/source/class/qx/dev/unit/MMock.js +236 -240
- package/source/class/qx/dev/unit/MRequirements.js +53 -79
- package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
- package/source/class/qx/dev/unit/MTestLoader.js +52 -57
- package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
- package/source/class/qx/dev/unit/RequirementError.js +8 -17
- package/source/class/qx/dev/unit/Sinon.js +18826 -4613
- package/source/class/qx/dev/unit/TestCase.js +40 -51
- package/source/class/qx/dev/unit/TestClass.js +22 -23
- package/source/class/qx/dev/unit/TestFunction.js +28 -48
- package/source/class/qx/dev/unit/TestLoader.js +11 -14
- package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
- package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
- package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
- package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
- package/source/class/qx/dev/unit/TestResult.js +140 -118
- package/source/class/qx/dev/unit/TestSuite.js +46 -55
- package/source/class/qx/dom/Element.js +29 -74
- package/source/class/qx/dom/Hierarchy.js +60 -95
- package/source/class/qx/dom/Node.js +54 -81
- package/source/class/qx/dom/__init__.js +9 -9
- package/source/class/qx/event/AcceleratingTimer.js +28 -46
- package/source/class/qx/event/Emitter.js +54 -49
- package/source/class/qx/event/GlobalError.js +22 -38
- package/source/class/qx/event/IEventDispatcher.js +4 -9
- package/source/class/qx/event/IEventHandler.js +7 -13
- package/source/class/qx/event/Idle.js +32 -47
- package/source/class/qx/event/Manager.js +222 -237
- package/source/class/qx/event/Messaging.js +55 -48
- package/source/class/qx/event/Pool.js +5 -8
- package/source/class/qx/event/Registration.js +128 -118
- package/source/class/qx/event/Timer.js +50 -96
- package/source/class/qx/event/Utils.js +41 -28
- package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
- package/source/class/qx/event/dispatch/Direct.js +46 -51
- package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
- package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
- package/source/class/qx/event/handler/Appear.js +40 -77
- package/source/class/qx/event/handler/Application.js +100 -126
- package/source/class/qx/event/handler/Capture.js +15 -37
- package/source/class/qx/event/handler/DragDrop.js +342 -228
- package/source/class/qx/event/handler/Element.js +45 -72
- package/source/class/qx/event/handler/ElementResize.js +35 -70
- package/source/class/qx/event/handler/Focus.js +908 -637
- package/source/class/qx/event/handler/Gesture.js +144 -93
- package/source/class/qx/event/handler/GestureCore.js +214 -163
- package/source/class/qx/event/handler/Iframe.js +21 -35
- package/source/class/qx/event/handler/Input.js +332 -209
- package/source/class/qx/event/handler/Keyboard.js +325 -270
- package/source/class/qx/event/handler/Mouse.js +212 -173
- package/source/class/qx/event/handler/Object.js +13 -31
- package/source/class/qx/event/handler/Offline.js +52 -67
- package/source/class/qx/event/handler/Orientation.js +56 -62
- package/source/class/qx/event/handler/OrientationCore.js +33 -43
- package/source/class/qx/event/handler/Pointer.js +84 -72
- package/source/class/qx/event/handler/PointerCore.js +183 -105
- package/source/class/qx/event/handler/Touch.js +43 -59
- package/source/class/qx/event/handler/TouchCore.js +159 -120
- package/source/class/qx/event/handler/Transition.js +91 -100
- package/source/class/qx/event/handler/UserAction.js +18 -42
- package/source/class/qx/event/handler/Video.js +12 -12
- package/source/class/qx/event/handler/Window.js +53 -69
- package/source/class/qx/event/message/Bus.js +109 -128
- package/source/class/qx/event/message/Message.js +14 -29
- package/source/class/qx/event/type/Data.js +11 -22
- package/source/class/qx/event/type/Dom.js +37 -52
- package/source/class/qx/event/type/Drag.js +37 -56
- package/source/class/qx/event/type/Event.js +80 -104
- package/source/class/qx/event/type/Focus.js +5 -8
- package/source/class/qx/event/type/GeoPosition.js +32 -41
- package/source/class/qx/event/type/KeyInput.js +9 -19
- package/source/class/qx/event/type/KeySequence.js +10 -21
- package/source/class/qx/event/type/Mouse.js +69 -72
- package/source/class/qx/event/type/MouseWheel.js +5 -9
- package/source/class/qx/event/type/Native.js +16 -27
- package/source/class/qx/event/type/Orientation.js +18 -30
- package/source/class/qx/event/type/Pinch.js +21 -27
- package/source/class/qx/event/type/Pointer.js +38 -41
- package/source/class/qx/event/type/Rest.js +7 -10
- package/source/class/qx/event/type/Roll.js +49 -58
- package/source/class/qx/event/type/Rotate.js +21 -27
- package/source/class/qx/event/type/Swipe.js +75 -86
- package/source/class/qx/event/type/Tap.js +2 -4
- package/source/class/qx/event/type/Touch.js +262 -286
- package/source/class/qx/event/type/Track.js +23 -28
- package/source/class/qx/event/type/dom/Custom.js +24 -20
- package/source/class/qx/event/type/dom/Pointer.js +86 -60
- package/source/class/qx/event/util/Keyboard.js +94 -106
- package/source/class/qx/html/Blocker.js +17 -18
- package/source/class/qx/html/Canvas.js +13 -29
- package/source/class/qx/html/Element.js +372 -497
- package/source/class/qx/html/Factory.js +31 -26
- package/source/class/qx/html/Iframe.js +35 -69
- package/source/class/qx/html/Image.js +43 -55
- package/source/class/qx/html/Input.js +44 -57
- package/source/class/qx/html/Jsx.js +49 -41
- package/source/class/qx/html/JsxRef.js +3 -5
- package/source/class/qx/html/Label.js +20 -32
- package/source/class/qx/html/Node.js +362 -422
- package/source/class/qx/html/Root.js +7 -16
- package/source/class/qx/html/Text.js +34 -27
- package/source/class/qx/io/ImageLoader.js +66 -90
- package/source/class/qx/io/PartLoader.js +17 -30
- package/source/class/qx/io/__init__.js +5 -3
- package/source/class/qx/io/exception/Cancel.js +33 -0
- package/source/class/qx/io/exception/Exception.js +37 -0
- package/source/class/qx/io/exception/Protocol.js +25 -0
- package/source/class/qx/io/exception/Transport.js +38 -0
- package/source/class/qx/io/exception/__init__.js +4 -0
- package/source/class/qx/io/graphql/Client.js +122 -0
- package/source/class/qx/io/graphql/__init__.js +9 -0
- package/source/class/qx/io/graphql/protocol/Message.js +65 -0
- package/source/class/qx/io/graphql/protocol/Request.js +93 -0
- package/source/class/qx/io/graphql/protocol/Response.js +63 -0
- package/source/class/qx/io/graphql/protocol/__init__.js +6 -0
- package/source/class/qx/io/jsonrpc/Client.js +355 -0
- package/source/class/qx/io/jsonrpc/__init__.js +15 -0
- package/source/class/qx/io/jsonrpc/protocol/Batch.js +103 -0
- package/source/class/qx/io/jsonrpc/protocol/Error.js +65 -0
- package/source/class/qx/io/jsonrpc/protocol/Message.js +48 -0
- package/source/class/qx/io/jsonrpc/protocol/Notification.js +47 -0
- package/source/class/qx/io/jsonrpc/protocol/Parser.js +105 -0
- package/source/class/qx/io/jsonrpc/protocol/Request.js +94 -0
- package/source/class/qx/io/jsonrpc/protocol/Result.js +49 -0
- package/source/class/qx/io/jsonrpc/protocol/__init__.js +5 -0
- package/source/class/qx/io/part/ClosurePart.js +16 -35
- package/source/class/qx/io/part/Package.js +35 -63
- package/source/class/qx/io/part/Part.js +29 -53
- package/source/class/qx/io/part/__init__.js +4 -4
- package/source/class/qx/io/request/AbstractRequest.js +268 -201
- package/source/class/qx/io/request/Jsonp.js +16 -19
- package/source/class/qx/io/request/Xhr.js +38 -37
- package/source/class/qx/io/request/__init__.js +1 -1
- package/source/class/qx/io/request/authentication/Basic.js +7 -13
- package/source/class/qx/io/request/authentication/Bearer.js +46 -0
- package/source/class/qx/io/request/authentication/IAuthentication.js +3 -6
- package/source/class/qx/io/request/authentication/__init__.js +1 -1
- package/source/class/qx/io/rest/Resource.js +122 -90
- package/source/class/qx/io/transport/AbstractClient.js +121 -0
- package/source/class/qx/io/transport/AbstractTransport.js +40 -0
- package/source/class/qx/io/transport/Fetch.js +98 -0
- package/source/class/qx/io/transport/ITransport.js +42 -0
- package/source/class/qx/io/transport/PostMessage.js +54 -0
- package/source/class/qx/io/transport/Websocket.js +97 -0
- package/source/class/qx/io/transport/Xhr.js +138 -0
- package/source/class/qx/io/transport/__init__.js +18 -0
- package/source/class/qx/lang/Array.js +133 -170
- package/source/class/qx/lang/Function.js +101 -104
- package/source/class/qx/lang/Json.js +1041 -774
- package/source/class/qx/lang/Number.js +11 -16
- package/source/class/qx/lang/Object.js +129 -100
- package/source/class/qx/lang/String.js +86 -94
- package/source/class/qx/lang/Type.js +44 -65
- package/source/class/qx/lang/normalize/Array.js +39 -49
- package/source/class/qx/lang/normalize/Date.js +50 -32
- package/source/class/qx/lang/normalize/Error.js +4 -7
- package/source/class/qx/lang/normalize/Function.js +11 -19
- package/source/class/qx/lang/normalize/Number.js +3 -5
- package/source/class/qx/lang/normalize/Object.js +17 -18
- package/source/class/qx/lang/normalize/String.js +39 -40
- package/source/class/qx/locale/Date.js +175 -178
- package/source/class/qx/locale/Key.js +13 -11
- package/source/class/qx/locale/LocalizedString.js +18 -15
- package/source/class/qx/locale/MTranslation.js +22 -23
- package/source/class/qx/locale/Manager.js +62 -100
- package/source/class/qx/locale/Number.js +20 -12
- package/source/class/qx/locale/String.js +26 -15
- package/source/class/qx/log/Logger.js +128 -180
- package/source/class/qx/log/__init__.js +3 -3
- package/source/class/qx/log/appender/Console.js +100 -111
- package/source/class/qx/log/appender/Element.js +25 -39
- package/source/class/qx/log/appender/Formatter.js +117 -66
- package/source/class/qx/log/appender/Native.js +4 -10
- package/source/class/qx/log/appender/NodeConsole.js +20 -28
- package/source/class/qx/log/appender/PhoneGap.js +5 -13
- package/source/class/qx/log/appender/RhinoConsole.js +12 -23
- package/source/class/qx/log/appender/RhinoFile.js +19 -26
- package/source/class/qx/log/appender/RingBuffer.js +10 -19
- package/source/class/qx/log/appender/Util.js +11 -9
- package/source/class/qx/module/Animation.js +73 -63
- package/source/class/qx/module/Attribute.js +27 -46
- package/source/class/qx/module/Blocker.js +33 -41
- package/source/class/qx/module/Cookie.js +6 -10
- package/source/class/qx/module/Css.js +82 -97
- package/source/class/qx/module/Dataset.js +12 -24
- package/source/class/qx/module/Environment.js +4 -6
- package/source/class/qx/module/Event.js +124 -127
- package/source/class/qx/module/Io.js +5 -9
- package/source/class/qx/module/Manipulating.js +98 -117
- package/source/class/qx/module/MatchMedia.js +50 -24
- package/source/class/qx/module/Messaging.js +6 -10
- package/source/class/qx/module/Placeholder.js +54 -44
- package/source/class/qx/module/Placement.js +33 -33
- package/source/class/qx/module/Rest.js +3 -4
- package/source/class/qx/module/Storage.js +34 -48
- package/source/class/qx/module/Template.js +6 -9
- package/source/class/qx/module/TextSelection.js +13 -21
- package/source/class/qx/module/Transform.js +28 -45
- package/source/class/qx/module/Traversing.js +160 -154
- package/source/class/qx/module/__init__.js +1 -1
- package/source/class/qx/module/dev/FakeServer.js +19 -25
- package/source/class/qx/module/event/GestureHandler.js +25 -13
- package/source/class/qx/module/event/Keyboard.js +42 -31
- package/source/class/qx/module/event/Mouse.js +48 -46
- package/source/class/qx/module/event/Native.js +18 -30
- package/source/class/qx/module/event/Orientation.js +11 -18
- package/source/class/qx/module/event/OrientationHandler.js +19 -17
- package/source/class/qx/module/event/Pinch.js +13 -14
- package/source/class/qx/module/event/Pointer.js +22 -22
- package/source/class/qx/module/event/PointerHandler.js +14 -11
- package/source/class/qx/module/event/Rotate.js +13 -14
- package/source/class/qx/module/event/Swipe.js +18 -24
- package/source/class/qx/module/event/Tap.js +25 -25
- package/source/class/qx/module/event/Touch.js +4 -7
- package/source/class/qx/module/event/TouchHandler.js +16 -16
- package/source/class/qx/module/event/Track.js +13 -14
- package/source/class/qx/module/util/Array.js +30 -41
- package/source/class/qx/module/util/Function.js +1 -2
- package/source/class/qx/module/util/Object.js +8 -11
- package/source/class/qx/module/util/String.js +10 -18
- package/source/class/qx/module/util/Type.js +3 -4
- package/source/class/qx/test/Annotation.js +195 -89
- package/source/class/qx/test/Bootstrap.js +98 -124
- package/source/class/qx/test/Browser.js +8 -11
- package/source/class/qx/test/Class.js +164 -198
- package/source/class/qx/test/Dom.js +10 -28
- package/source/class/qx/test/EditDistance.js +16 -16
- package/source/class/qx/test/Interface.js +380 -383
- package/source/class/qx/test/MAppearance.js +10 -14
- package/source/class/qx/test/MDecoration.js +1 -3
- package/source/class/qx/test/Mixin.js +418 -173
- package/source/class/qx/test/Promise.js +422 -333
- package/source/class/qx/test/Theme.js +204 -179
- package/source/class/qx/test/Xml.js +155 -84
- package/source/class/qx/test/application/Routing.js +45 -44
- package/source/class/qx/test/bom/AnimationFrame.js +23 -21
- package/source/class/qx/test/bom/Attribute.js +66 -47
- package/source/class/qx/test/bom/Basic.js +52 -27
- package/source/class/qx/test/bom/Blocker.js +100 -70
- package/source/class/qx/test/bom/Class.js +19 -34
- package/source/class/qx/test/bom/Cookie.js +49 -28
- package/source/class/qx/test/bom/Dataset.js +12 -24
- package/source/class/qx/test/bom/Element.js +55 -47
- package/source/class/qx/test/bom/Event.js +68 -45
- package/source/class/qx/test/bom/FileReader.js +6 -12
- package/source/class/qx/test/bom/Font.js +256 -118
- package/source/class/qx/test/bom/GeoLocation.js +82 -64
- package/source/class/qx/test/bom/History.js +63 -84
- package/source/class/qx/test/bom/IdleCallback.js +51 -38
- package/source/class/qx/test/bom/Iframe.js +14 -18
- package/source/class/qx/test/bom/Label.js +74 -105
- package/source/class/qx/test/bom/Location.js +70 -99
- package/source/class/qx/test/bom/PageVisibility.js +13 -16
- package/source/class/qx/test/bom/Selector.js +16 -16
- package/source/class/qx/test/bom/String.js +19 -15
- package/source/class/qx/test/bom/Stylesheet.js +39 -48
- package/source/class/qx/test/bom/Template.js +49 -57
- package/source/class/qx/test/bom/Viewport.js +7 -11
- package/source/class/qx/test/bom/WebWorker.js +49 -37
- package/source/class/qx/test/bom/Window.js +6 -12
- package/source/class/qx/test/bom/client/Css.js +26 -19
- package/source/class/qx/test/bom/client/Device.js +29 -18
- package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
- package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
- package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
- package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
- package/source/class/qx/test/bom/element/Background.js +93 -46
- package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
- package/source/class/qx/test/bom/element/Class.js +33 -58
- package/source/class/qx/test/bom/element/Dimension.js +58 -37
- package/source/class/qx/test/bom/element/Style.js +87 -83
- package/source/class/qx/test/bom/element/Transform.js +209 -86
- package/source/class/qx/test/bom/media/Audio.js +18 -14
- package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
- package/source/class/qx/test/bom/media/Video.js +39 -28
- package/source/class/qx/test/bom/request/Jsonp.js +60 -57
- package/source/class/qx/test/bom/request/Script.js +150 -138
- package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
- package/source/class/qx/test/bom/request/Xhr.js +179 -132
- package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
- package/source/class/qx/test/bom/rest/Resource.js +345 -281
- package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
- package/source/class/qx/test/bom/storage/Local.js +3 -4
- package/source/class/qx/test/bom/storage/Session.js +3 -4
- package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
- package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
- package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
- package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
- package/source/class/qx/test/compiler/ClassFile.js +29 -11
- package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
- package/source/class/qx/test/core/Assert.js +151 -86
- package/source/class/qx/test/core/Environment.js +162 -123
- package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
- package/source/class/qx/test/core/InheritanceDummy.js +23 -33
- package/source/class/qx/test/core/MemoryManagement.js +13 -5
- package/source/class/qx/test/core/Object.js +106 -112
- package/source/class/qx/test/core/ObjectId.js +7 -6
- package/source/class/qx/test/core/Property.js +483 -387
- package/source/class/qx/test/core/PropertyHelper.js +49 -64
- package/source/class/qx/test/core/Target.js +9 -13
- package/source/class/qx/test/core/Validation.js +409 -136
- package/source/class/qx/test/data/DataArray.js +1059 -394
- package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
- package/source/class/qx/test/data/__init__.js +4 -4
- package/source/class/qx/test/data/controller/Form.js +141 -99
- package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
- package/source/class/qx/test/data/controller/List.js +644 -336
- package/source/class/qx/test/data/controller/ListReverse.js +64 -63
- package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
- package/source/class/qx/test/data/controller/Object.js +252 -94
- package/source/class/qx/test/data/controller/Tree.js +1219 -383
- package/source/class/qx/test/data/controller/__init__.js +4 -4
- package/source/class/qx/test/data/marshal/Json.js +832 -447
- package/source/class/qx/test/data/marshal/__init__.js +4 -4
- package/source/class/qx/test/data/singlevalue/Array.js +383 -144
- package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
- package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
- package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
- package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
- package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
- package/source/class/qx/test/data/store/Json.js +574 -313
- package/source/class/qx/test/data/store/Jsonp.js +103 -77
- package/source/class/qx/test/data/store/Offline.js +127 -110
- package/source/class/qx/test/data/store/Rest.js +58 -52
- package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
- package/source/class/qx/test/data/store/__init__.js +4 -4
- package/source/class/qx/test/dev/Debug.js +9 -13
- package/source/class/qx/test/dev/StackTrace.js +51 -42
- package/source/class/qx/test/dev/unit/Requirements.js +36 -49
- package/source/class/qx/test/dev/unit/Sinon.js +85 -73
- package/source/class/qx/test/dev/unit/TestCase.js +12 -17
- package/source/class/qx/test/dom/Element.js +17 -12
- package/source/class/qx/test/dom/Hierarchy.js +53 -38
- package/source/class/qx/test/dom/Node.js +97 -43
- package/source/class/qx/test/event/Bubbling.js +258 -88
- package/source/class/qx/test/event/Emitter.js +38 -39
- package/source/class/qx/test/event/GlobalError.js +59 -87
- package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
- package/source/class/qx/test/event/Messaging.js +66 -49
- package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
- package/source/class/qx/test/event/MockHandler.js +14 -33
- package/source/class/qx/test/event/Registration.js +38 -32
- package/source/class/qx/test/event/Timer.js +61 -39
- package/source/class/qx/test/event/Utils.js +164 -123
- package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
- package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
- package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
- package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
- package/source/class/qx/test/event/dispatch/__init__.js +4 -4
- package/source/class/qx/test/event/handler/Offline.js +7 -8
- package/source/class/qx/test/event/message/Bus.js +112 -72
- package/source/class/qx/test/event/message/__init__.js +4 -4
- package/source/class/qx/test/event/type/Dom.js +12 -11
- package/source/class/qx/test/event/type/Event.js +7 -16
- package/source/class/qx/test/event/type/Mouse.js +12 -11
- package/source/class/qx/test/event/type/Native.js +12 -11
- package/source/class/qx/test/event/type/__init__.js +4 -4
- package/source/class/qx/test/event/util/Keyboard.js +4 -3
- package/source/class/qx/test/html/Element.js +538 -239
- package/source/class/qx/test/html/Iframe.js +85 -73
- package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
- package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
- package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
- package/source/class/qx/test/io/ImageLoader.js +256 -160
- package/source/class/qx/test/io/MAssert.js +46 -0
- package/source/class/qx/test/io/MRemoteTest.js +9 -11
- package/source/class/qx/test/io/__init__.js +4 -4
- package/source/class/qx/test/io/graphql/Client.js +190 -0
- package/source/class/qx/test/io/graphql/ClientFetch.js +34 -0
- package/source/class/qx/test/io/graphql/Request.js +41 -0
- package/source/class/qx/test/io/jsonrpc/Client.js +333 -0
- package/source/class/qx/test/io/jsonrpc/Protocol.js +108 -0
- package/source/class/qx/test/io/request/Jsonp.js +23 -20
- package/source/class/qx/test/io/request/JsonpWithRemote.js +25 -22
- package/source/class/qx/test/io/request/MRequest.js +137 -114
- package/source/class/qx/test/io/request/Xhr.js +367 -209
- package/source/class/qx/test/io/request/XhrWithRemote.js +133 -100
- package/source/class/qx/test/io/rest/Resource.js +325 -270
- package/source/class/qx/test/io/rest/ResourceWithRemote.js +75 -58
- package/source/class/qx/test/io/transport/PostMessage.js +56 -0
- package/source/class/qx/test/io/transport/Websocket.js +64 -0
- package/source/class/qx/test/lang/Array.js +79 -105
- package/source/class/qx/test/lang/Function.js +64 -53
- package/source/class/qx/test/lang/Json.js +51 -79
- package/source/class/qx/test/lang/Number.js +4 -6
- package/source/class/qx/test/lang/Object.js +143 -133
- package/source/class/qx/test/lang/String.js +151 -95
- package/source/class/qx/test/lang/Type.js +34 -44
- package/source/class/qx/test/lang/Webkit.js +8 -13
- package/source/class/qx/test/lang/normalize/Array.js +121 -68
- package/source/class/qx/test/lang/normalize/Date.js +232 -49
- package/source/class/qx/test/lang/normalize/Error.js +5 -8
- package/source/class/qx/test/lang/normalize/Function.js +7 -13
- package/source/class/qx/test/lang/normalize/Object.js +22 -29
- package/source/class/qx/test/lang/normalize/String.js +19 -28
- package/source/class/qx/test/locale/Date.js +91 -43
- package/source/class/qx/test/locale/Locale.js +52 -32
- package/source/class/qx/test/locale/LocalizedString.js +12 -12
- package/source/class/qx/test/log/DeprecationMethodOverriding.js +52 -31
- package/source/class/qx/test/log/Filters.js +6 -3
- package/source/class/qx/test/log/Formatter.js +13 -7
- package/source/class/qx/test/log/Logger.js +19 -29
- package/source/class/qx/test/log/RingBuffer.js +14 -25
- package/source/class/qx/test/log/__init__.js +4 -4
- package/source/class/qx/test/log/fixture/ClassA.js +22 -22
- package/source/class/qx/test/log/fixture/ClassB1.js +7 -9
- package/source/class/qx/test/log/fixture/ClassB2.js +5 -7
- package/source/class/qx/test/log/fixture/ClassC1.js +5 -7
- package/source/class/qx/test/log/fixture/ClassC2.js +7 -9
- package/source/class/qx/test/mobile/LocaleSwitch.js +29 -36
- package/source/class/qx/test/mobile/MobileTestCase.js +39 -49
- package/source/class/qx/test/mobile/basic/Atom.js +129 -53
- package/source/class/qx/test/mobile/basic/Image.js +41 -31
- package/source/class/qx/test/mobile/basic/Label.js +6 -10
- package/source/class/qx/test/mobile/container/Carousel.js +41 -45
- package/source/class/qx/test/mobile/container/Composite.js +48 -65
- package/source/class/qx/test/mobile/container/Drawer.js +42 -29
- package/source/class/qx/test/mobile/container/Navigation.js +14 -20
- package/source/class/qx/test/mobile/container/Scroll.js +23 -19
- package/source/class/qx/test/mobile/core/Widget.js +150 -86
- package/source/class/qx/test/mobile/dialog/Menu.js +47 -26
- package/source/class/qx/test/mobile/dialog/Popup.js +30 -19
- package/source/class/qx/test/mobile/embed/Html.js +5 -8
- package/source/class/qx/test/mobile/form/Button.js +15 -13
- package/source/class/qx/test/mobile/form/CheckBox.js +21 -17
- package/source/class/qx/test/mobile/form/Form.js +37 -24
- package/source/class/qx/test/mobile/form/Group.js +5 -9
- package/source/class/qx/test/mobile/form/Label.js +11 -13
- package/source/class/qx/test/mobile/form/NumberField.js +49 -45
- package/source/class/qx/test/mobile/form/RadioButton.js +30 -19
- package/source/class/qx/test/mobile/form/SelectBox.js +39 -25
- package/source/class/qx/test/mobile/form/SingleRenderer.js +31 -27
- package/source/class/qx/test/mobile/form/Slider.js +55 -35
- package/source/class/qx/test/mobile/form/TextArea.js +34 -24
- package/source/class/qx/test/mobile/form/TextField.js +34 -24
- package/source/class/qx/test/mobile/form/ToggleButton.js +10 -14
- package/source/class/qx/test/mobile/layout/Card.js +21 -17
- package/source/class/qx/test/mobile/layout/HBox.js +25 -20
- package/source/class/qx/test/mobile/layout/VBox.js +25 -21
- package/source/class/qx/test/mobile/list/List.js +114 -83
- package/source/class/qx/test/mobile/navigationbar/NavigationBar.js +5 -9
- package/source/class/qx/test/mobile/page/Manager.js +7 -13
- package/source/class/qx/test/mobile/page/NavigationPage.js +7 -17
- package/source/class/qx/test/mobile/page/Page.js +101 -68
- package/source/class/qx/test/mobile/tabbar/TabBar.js +11 -21
- package/source/class/qx/test/mobile/toolbar/Toolbar.js +16 -16
- package/source/class/qx/test/performance/BaseCall.js +31 -36
- package/source/class/qx/test/performance/Event.js +60 -53
- package/source/class/qx/test/performance/Object.js +16 -22
- package/source/class/qx/test/performance/Property.js +20 -22
- package/source/class/qx/test/performance/data/Marshaling.js +25 -30
- package/source/class/qx/test/performance/decorator/AbstractDecorator.js +22 -34
- package/source/class/qx/test/performance/decorator/Background.js +4 -6
- package/source/class/qx/test/performance/decorator/BackgroundScale.js +6 -8
- package/source/class/qx/test/performance/decorator/Single.js +4 -6
- package/source/class/qx/test/performance/element/Element.js +50 -67
- package/source/class/qx/test/performance/widget/AbstractWidget.js +31 -44
- package/source/class/qx/test/performance/widget/Button.js +5 -7
- package/source/class/qx/test/performance/widget/Label.js +5 -7
- package/source/class/qx/test/performance/widget/RichLabel.js +6 -8
- package/source/class/qx/test/performance/widget/Widget.js +5 -7
- package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +7 -9
- package/source/class/qx/test/performance/widget/WidgetWithSingle.js +9 -11
- package/source/class/qx/test/renderer/Color.js +22 -49
- package/source/class/qx/test/testclasses/BaseClassBoth.js +11 -8
- package/source/class/qx/test/testclasses/BaseClassIncluded.js +5 -6
- package/source/class/qx/test/testclasses/BaseClassPatched.js +15 -8
- package/source/class/qx/test/testclasses/DerivedClassBoth.js +7 -7
- package/source/class/qx/test/testclasses/DerivedClassIncluded.js +7 -7
- package/source/class/qx/test/testclasses/DerivedClassPatched.js +7 -7
- package/source/class/qx/test/testclasses/MMixinOne.js +4 -4
- package/source/class/qx/test/testclasses/MMixinTwo.js +2 -2
- package/source/class/qx/test/testclasses/RootClass.js +8 -8
- package/source/class/qx/test/theme/__init__.js +4 -4
- package/source/class/qx/test/theme/manager/Color.js +52 -66
- package/source/class/qx/test/theme/manager/Decoration.js +177 -154
- package/source/class/qx/test/theme/manager/Font.js +68 -39
- package/source/class/qx/test/theme/manager/Icon.js +46 -43
- package/source/class/qx/test/theme/manager/Meta.js +121 -110
- package/source/class/qx/test/theme/manager/__init__.js +4 -4
- package/source/class/qx/test/theme/manager/mock/Appearance.js +17 -23
- package/source/class/qx/test/theme/manager/mock/Color.js +7 -9
- package/source/class/qx/test/theme/manager/mock/Decoration.js +7 -10
- package/source/class/qx/test/theme/manager/mock/Font.js +6 -10
- package/source/class/qx/test/theme/simple/Appearance.js +268 -210
- package/source/class/qx/test/tool/utils/Utils.js +10 -8
- package/source/class/qx/test/toolchain/PrivateOptimization.js +20 -13
- package/source/class/qx/test/toolchain/TestRunner.js +12 -12
- package/source/class/qx/test/toolchain/VariantOptimization.js +37 -26
- package/source/class/qx/test/toolchain/__init__.js +4 -4
- package/source/class/qx/test/type/Array.js +8 -12
- package/source/class/qx/test/type/BaseArray.js +58 -78
- package/source/class/qx/test/type/BaseString.js +27 -65
- package/source/class/qx/test/type/__init__.js +4 -4
- package/source/class/qx/test/ui/BackgroundColor.js +20 -21
- package/source/class/qx/test/ui/ChildrenHandling.js +136 -81
- package/source/class/qx/test/ui/Destroy.js +310 -248
- package/source/class/qx/test/ui/Focus.js +40 -87
- package/source/class/qx/test/ui/Insets.js +14 -18
- package/source/class/qx/test/ui/LayoutTestCase.js +99 -92
- package/source/class/qx/test/ui/LocaleSwitch.js +37 -41
- package/source/class/qx/test/ui/RadioItems.js +11 -22
- package/source/class/qx/test/ui/Widget.js +13 -17
- package/source/class/qx/test/ui/Window.js +26 -39
- package/source/class/qx/test/ui/basic/Atom.js +37 -25
- package/source/class/qx/test/ui/basic/Image.js +179 -138
- package/source/class/qx/test/ui/basic/Label.js +147 -65
- package/source/class/qx/test/ui/basic/__init__.js +4 -4
- package/source/class/qx/test/ui/command/Command.js +105 -69
- package/source/class/qx/test/ui/command/Group.js +24 -21
- package/source/class/qx/test/ui/command/GroupManager.js +7 -12
- package/source/class/qx/test/ui/container/Stack.js +26 -36
- package/source/class/qx/test/ui/core/AbstractScrollArea.js +84 -67
- package/source/class/qx/test/ui/core/Appearance.js +53 -54
- package/source/class/qx/test/ui/core/Blocker.js +80 -44
- package/source/class/qx/test/ui/core/DragDropScrolling.js +69 -55
- package/source/class/qx/test/ui/core/Placement.js +22 -34
- package/source/class/qx/test/ui/core/Queues.js +28 -39
- package/source/class/qx/test/ui/core/SizeHint.js +32 -76
- package/source/class/qx/test/ui/core/SizeHintX.js +8 -15
- package/source/class/qx/test/ui/core/SizeHintY.js +8 -15
- package/source/class/qx/test/ui/core/Spacer.js +11 -18
- package/source/class/qx/test/ui/core/Widget.js +117 -112
- package/source/class/qx/test/ui/core/__init__.js +4 -4
- package/source/class/qx/test/ui/decoration/LinearGradient.js +18 -14
- package/source/class/qx/test/ui/embed/Iframe.js +70 -66
- package/source/class/qx/test/ui/embed/__init__.js +4 -4
- package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
- package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
- package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
- package/source/class/qx/test/ui/form/Color.js +29 -19
- package/source/class/qx/test/ui/form/ComboBox.js +39 -25
- package/source/class/qx/test/ui/form/Date.js +34 -21
- package/source/class/qx/test/ui/form/DateField.js +16 -19
- package/source/class/qx/test/ui/form/Executable.js +98 -68
- package/source/class/qx/test/ui/form/Field.js +65 -54
- package/source/class/qx/test/ui/form/Form.js +211 -123
- package/source/class/qx/test/ui/form/FormManager.js +72 -100
- package/source/class/qx/test/ui/form/FormValidator.js +549 -399
- package/source/class/qx/test/ui/form/Label.js +87 -65
- package/source/class/qx/test/ui/form/List.js +19 -19
- package/source/class/qx/test/ui/form/MenuButton.js +26 -20
- package/source/class/qx/test/ui/form/ModelProperty.js +40 -36
- package/source/class/qx/test/ui/form/ModelSelection.js +39 -84
- package/source/class/qx/test/ui/form/NumberFormat.js +30 -19
- package/source/class/qx/test/ui/form/Placeholder.js +147 -87
- package/source/class/qx/test/ui/form/RadioButtonGroup.js +31 -26
- package/source/class/qx/test/ui/form/RadioGroup.js +58 -54
- package/source/class/qx/test/ui/form/Range.js +63 -28
- package/source/class/qx/test/ui/form/Renderer.js +39 -33
- package/source/class/qx/test/ui/form/Resetter.js +21 -35
- package/source/class/qx/test/ui/form/Slider.js +37 -21
- package/source/class/qx/test/ui/form/Spinner.js +9 -5
- package/source/class/qx/test/ui/form/SplitButton.js +7 -11
- package/source/class/qx/test/ui/form/StringFormat.js +60 -30
- package/source/class/qx/test/ui/form/TextArea.js +59 -41
- package/source/class/qx/test/ui/form/TextField.js +14 -16
- package/source/class/qx/test/ui/form/ToggleButton.js +20 -24
- package/source/class/qx/test/ui/form/VirtualSelectBox.js +66 -40
- package/source/class/qx/test/ui/form/__init__.js +4 -4
- package/source/class/qx/test/ui/form/virtual/VirtualComboBox.js +58 -60
- package/source/class/qx/test/ui/form/virtual/VirtualDropDownList.js +120 -110
- package/source/class/qx/test/ui/form/virtual/VirtualSelectBox.js +43 -27
- package/source/class/qx/test/ui/groupbox/CheckGroupBox.js +13 -18
- package/source/class/qx/test/ui/indicator/ProgressBar.js +73 -48
- package/source/class/qx/test/ui/layout/Box.js +23 -22
- package/source/class/qx/test/ui/layout/Flow.js +233 -153
- package/source/class/qx/test/ui/layout/Grid.js +88 -101
- package/source/class/qx/test/ui/layout/LayoutItem.js +57 -83
- package/source/class/qx/test/ui/layout/LayoutRoot.js +7 -11
- package/source/class/qx/test/ui/layout/Util.js +30 -31
- package/source/class/qx/test/ui/layout/__init__.js +4 -4
- package/source/class/qx/test/ui/list/AbstractListTest.js +13 -21
- package/source/class/qx/test/ui/list/Group.js +191 -114
- package/source/class/qx/test/ui/list/List.js +189 -132
- package/source/class/qx/test/ui/list/MAssert.js +14 -9
- package/source/class/qx/test/ui/list/ObjectGroup.js +131 -109
- package/source/class/qx/test/ui/list/core/MultiSelection.js +58 -44
- package/source/class/qx/test/ui/list/core/SingleSelection.js +43 -43
- package/source/class/qx/test/ui/list/fixture/GroupMock.js +6 -9
- package/source/class/qx/test/ui/list/fixture/ItemMock.js +9 -13
- package/source/class/qx/test/ui/root/Inline.js +22 -20
- package/source/class/qx/test/ui/selection/AbstractMultiSelectonTest.js +188 -105
- package/source/class/qx/test/ui/selection/AbstractSingleSelectonTest.js +173 -125
- package/source/class/qx/test/ui/selection/ListMultiSelection.js +19 -21
- package/source/class/qx/test/ui/selection/ListSingleSelection.js +19 -21
- package/source/class/qx/test/ui/selection/RadioGroup.js +41 -29
- package/source/class/qx/test/ui/selection/SelectBox.js +11 -17
- package/source/class/qx/test/ui/selection/Stack.js +22 -27
- package/source/class/qx/test/ui/selection/TabView.js +35 -26
- package/source/class/qx/test/ui/selection/TreeMultiSelection.js +14 -19
- package/source/class/qx/test/ui/selection/TreeSingleSelection.js +20 -24
- package/source/class/qx/test/ui/selection/__init__.js +4 -4
- package/source/class/qx/test/ui/table/Dispose.js +46 -46
- package/source/class/qx/test/ui/table/Table.js +74 -69
- package/source/class/qx/test/ui/table/__init__.js +4 -4
- package/source/class/qx/test/ui/table/celleditor/AbstractField.js +14 -28
- package/source/class/qx/test/ui/table/celleditor/ComboBox.js +11 -18
- package/source/class/qx/test/ui/table/celleditor/PasswordField.js +6 -10
- package/source/class/qx/test/ui/table/celleditor/SelectBox.js +16 -32
- package/source/class/qx/test/ui/table/celleditor/TextField.js +6 -9
- package/source/class/qx/test/ui/table/celleditor/__init__.js +4 -4
- package/source/class/qx/test/ui/table/columnmodel/Basic.js +130 -129
- package/source/class/qx/test/ui/table/model/Filtered.js +51 -36
- package/source/class/qx/test/ui/table/model/Simple.js +43 -45
- package/source/class/qx/test/ui/table/selection/Model.js +70 -22
- package/source/class/qx/test/ui/toolbar/OverflowHandling.js +145 -123
- package/source/class/qx/test/ui/toolbar/ToolBar.js +20 -30
- package/source/class/qx/test/ui/tree/Tree.js +63 -42
- package/source/class/qx/test/ui/tree/TreeFolder.js +44 -46
- package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +61 -96
- package/source/class/qx/test/ui/tree/virtual/MultiSelection.js +68 -39
- package/source/class/qx/test/ui/tree/virtual/OneSelection.js +82 -42
- package/source/class/qx/test/ui/tree/virtual/OpenCloseController.js +80 -101
- package/source/class/qx/test/ui/tree/virtual/SingleSelection.js +40 -32
- package/source/class/qx/test/ui/tree/virtual/Sorting.js +46 -47
- package/source/class/qx/test/ui/tree/virtual/Tree.js +267 -191
- package/source/class/qx/test/ui/tree/virtual/TreeItem.js +60 -63
- package/source/class/qx/test/ui/tree/virtual/UtilTest.js +65 -50
- package/source/class/qx/test/ui/tree/virtual/WidgetProvider.js +127 -132
- package/source/class/qx/test/ui/virtual/Axis.js +210 -193
- package/source/class/qx/test/ui/virtual/Pane.js +287 -190
- package/source/class/qx/test/ui/virtual/PaneUpdate.js +71 -77
- package/source/class/qx/test/ui/virtual/PointerEventMock.js +10 -13
- package/source/class/qx/test/ui/virtual/Scroller.js +29 -39
- package/source/class/qx/test/ui/virtual/__init__.js +4 -4
- package/source/class/qx/test/ui/virtual/cell/WidgetCell.js +39 -40
- package/source/class/qx/test/ui/virtual/layer/CellSpanManager.js +157 -127
- package/source/class/qx/test/ui/virtual/layer/Column.js +6 -10
- package/source/class/qx/test/ui/virtual/layer/GridLines.js +6 -10
- package/source/class/qx/test/ui/virtual/layer/GridLinesHorizontal.js +6 -9
- package/source/class/qx/test/ui/virtual/layer/GridLinesVertical.js +6 -9
- package/source/class/qx/test/ui/virtual/layer/HtmlCell.js +12 -19
- package/source/class/qx/test/ui/virtual/layer/HtmlCellSpan.js +13 -21
- package/source/class/qx/test/ui/virtual/layer/LayerMock.js +31 -43
- package/source/class/qx/test/ui/virtual/layer/LayerSimple.js +26 -26
- package/source/class/qx/test/ui/virtual/layer/LayerTestCase.js +52 -50
- package/source/class/qx/test/ui/virtual/layer/Row.js +6 -10
- package/source/class/qx/test/ui/virtual/layer/WidgetCell.js +45 -52
- package/source/class/qx/test/ui/virtual/layer/WidgetCellSpan.js +71 -48
- package/source/class/qx/test/ui/virtual/layer/__init__.js +4 -4
- package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +84 -68
- package/source/class/qx/test/ui/virtual/performance/DomCell.js +6 -9
- package/source/class/qx/test/ui/virtual/performance/DomPoolCell.js +6 -9
- package/source/class/qx/test/ui/virtual/performance/HtmlDivCell.js +7 -11
- package/source/class/qx/test/ui/virtual/performance/HtmlDivRelative.js +6 -9
- package/source/class/qx/test/ui/virtual/performance/HtmlTableCell.js +8 -13
- package/source/class/qx/test/ui/virtual/performance/HtmlTableCellNaive.js +8 -13
- package/source/class/qx/test/ui/virtual/performance/HtmlTableCssCell.js +8 -19
- package/source/class/qx/test/ui/virtual/performance/WidgetCell.js +10 -15
- package/source/class/qx/test/ui/virtual/performance/__init__.js +4 -4
- package/source/class/qx/test/ui/virtual/performance/layer/DomCell.js +24 -18
- package/source/class/qx/test/ui/virtual/performance/layer/DomPoolCell.js +28 -26
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlDivRelative.js +13 -17
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCell.js +29 -28
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCellNaive.js +22 -24
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCssCell.js +32 -47
- package/source/class/qx/test/ui/virtual/performance/layer/__init__.js +4 -4
- package/source/class/qx/test/ui/window/Desktop.js +21 -12
- package/source/class/qx/test/util/Base64.js +10 -13
- package/source/class/qx/test/util/ColorUtil.js +121 -54
- package/source/class/qx/test/util/DateFormat.js +569 -299
- package/source/class/qx/test/util/DateMock.js +16 -19
- package/source/class/qx/test/util/DeferredCall.js +12 -13
- package/source/class/qx/test/util/Delegate.js +28 -26
- package/source/class/qx/test/util/DisposeUtil.js +32 -14
- package/source/class/qx/test/util/DynamicScriptLoader.js +99 -64
- package/source/class/qx/test/util/Fsm.js +16 -18
- package/source/class/qx/test/util/Function.js +23 -19
- package/source/class/qx/test/util/LibraryManager.js +15 -22
- package/source/class/qx/test/util/NumberFormat.js +53 -64
- package/source/class/qx/test/util/PropertyUtil.js +35 -35
- package/source/class/qx/test/util/Request.js +26 -18
- package/source/class/qx/test/util/ResourceManager.js +50 -35
- package/source/class/qx/test/util/ResponseParser.js +45 -35
- package/source/class/qx/test/util/RingBuffer.js +15 -28
- package/source/class/qx/test/util/Serializer.js +210 -153
- package/source/class/qx/test/util/StringBuilder.js +7 -13
- package/source/class/qx/test/util/StringSplit.js +114 -69
- package/source/class/qx/test/util/Uri.js +74 -78
- package/source/class/qx/test/util/Validate.js +95 -64
- package/source/class/qx/test/util/placement/BestFitAxis.js +17 -26
- package/source/class/qx/test/util/placement/DirectAxis.js +8 -11
- package/source/class/qx/test/util/placement/KeepAlignAxis.js +17 -26
- package/source/class/qx/test/util/placement/Placement.js +607 -244
- package/source/class/qx/test/util/placement/__init__.js +4 -4
- package/source/class/qx/theme/Classic.js +9 -11
- package/source/class/qx/theme/Indigo.js +9 -11
- package/source/class/qx/theme/Modern.js +9 -11
- package/source/class/qx/theme/Simple.js +9 -11
- package/source/class/qx/theme/TangibleDark.js +1 -1
- package/source/class/qx/theme/TangibleLight.js +1 -1
- package/source/class/qx/theme/__init__.js +4 -4
- package/source/class/qx/theme/classic/Appearance.js +995 -1336
- package/source/class/qx/theme/classic/Color.js +83 -83
- package/source/class/qx/theme/classic/Decoration.js +318 -299
- package/source/class/qx/theme/classic/Font.js +38 -25
- package/source/class/qx/theme/icon/Oxygen.js +4 -5
- package/source/class/qx/theme/icon/Tango.js +4 -5
- package/source/class/qx/theme/indigo/Appearance.js +66 -85
- package/source/class/qx/theme/indigo/Color.js +65 -66
- package/source/class/qx/theme/indigo/Decoration.js +31 -45
- package/source/class/qx/theme/indigo/Font.js +20 -29
- package/source/class/qx/theme/manager/Appearance.js +58 -91
- package/source/class/qx/theme/manager/Color.js +20 -41
- package/source/class/qx/theme/manager/Decoration.js +72 -100
- package/source/class/qx/theme/manager/Font.js +51 -67
- package/source/class/qx/theme/manager/Icon.js +13 -27
- package/source/class/qx/theme/manager/Meta.js +27 -44
- package/source/class/qx/theme/modern/Appearance.js +1049 -1440
- package/source/class/qx/theme/modern/Color.js +155 -166
- package/source/class/qx/theme/modern/Decoration.js +471 -598
- package/source/class/qx/theme/modern/Font.js +59 -52
- package/source/class/qx/theme/simple/Appearance.js +936 -1207
- package/source/class/qx/theme/simple/Color.js +62 -62
- package/source/class/qx/theme/simple/Decoration.js +456 -678
- package/source/class/qx/theme/simple/Font.js +18 -25
- package/source/class/qx/theme/simple/Image.js +49 -52
- package/source/class/qx/theme/tangible/Appearance.js +1575 -1743
- package/source/class/qx/theme/tangible/ColorDark.js +5 -5
- package/source/class/qx/theme/tangible/ColorEngine.js +38 -35
- package/source/class/qx/theme/tangible/ColorLight.js +7 -7
- package/source/class/qx/theme/tangible/Decoration.js +1108 -1300
- package/source/class/qx/theme/tangible/Font.js +66 -70
- package/source/class/qx/theme/tangible/Image.js +44 -48
- package/source/class/qx/tool/cli/Application.js +5 -5
- package/source/class/qx/tool/cli/Cli.js +103 -52
- package/source/class/qx/tool/cli/ConfigDb.js +18 -15
- package/source/class/qx/tool/cli/LibraryApplication.js +1 -1
- package/source/class/qx/tool/cli/Watch.js +174 -102
- package/source/class/qx/tool/cli/api/AbstractApi.js +17 -18
- package/source/class/qx/tool/cli/api/CompilerApi.js +15 -8
- package/source/class/qx/tool/cli/api/LibraryApi.js +4 -6
- package/source/class/qx/tool/cli/api/Test.js +12 -9
- package/source/class/qx/tool/cli/commands/Add.js +12 -15
- package/source/class/qx/tool/cli/commands/Clean.js +10 -9
- package/source/class/qx/tool/cli/commands/Command.js +18 -13
- package/source/class/qx/tool/cli/commands/Compile.js +633 -267
- package/source/class/qx/tool/cli/commands/Config.js +75 -42
- package/source/class/qx/tool/cli/commands/Create.js +108 -59
- package/source/class/qx/tool/cli/commands/Deploy.js +138 -86
- package/source/class/qx/tool/cli/commands/Es6ify.js +118 -0
- package/source/class/qx/tool/cli/commands/Lint.js +75 -34
- package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
- package/source/class/qx/tool/cli/commands/Package.js +67 -45
- package/source/class/qx/tool/cli/commands/Pkg.js +21 -18
- package/source/class/qx/tool/cli/commands/Run.js +57 -37
- package/source/class/qx/tool/cli/commands/Serve.js +62 -37
- package/source/class/qx/tool/cli/commands/Test.js +40 -18
- package/source/class/qx/tool/cli/commands/add/Class.js +66 -28
- package/source/class/qx/tool/cli/commands/add/Script.js +54 -27
- package/source/class/qx/tool/cli/commands/package/Install.js +265 -103
- package/source/class/qx/tool/cli/commands/package/List.js +199 -75
- package/source/class/qx/tool/cli/commands/package/Migrate.js +7 -3
- package/source/class/qx/tool/cli/commands/package/Publish.js +220 -114
- package/source/class/qx/tool/cli/commands/package/Remove.js +40 -17
- package/source/class/qx/tool/cli/commands/package/Update.js +115 -48
- package/source/class/qx/tool/cli/commands/package/Upgrade.js +41 -20
- package/source/class/qx/tool/compiler/Analyser.js +427 -222
- package/source/class/qx/tool/compiler/ClassFile.js +831 -401
- package/source/class/qx/tool/compiler/Console.js +136 -87
- package/source/class/qx/tool/compiler/Es6ify.js +404 -0
- package/source/class/qx/tool/compiler/Preprocess.js +28 -25
- package/source/class/qx/tool/compiler/app/Application.js +149 -72
- package/source/class/qx/tool/compiler/app/Cldr.js +506 -106
- package/source/class/qx/tool/compiler/app/Library.js +62 -27
- package/source/class/qx/tool/compiler/app/Part.js +10 -12
- package/source/class/qx/tool/compiler/app/Translation.js +189 -162
- package/source/class/qx/tool/compiler/app/WebFont.js +215 -161
- package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +3 -3
- package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +8 -9
- package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +7 -6
- package/source/class/qx/tool/compiler/jsdoc/Parser.js +27 -18
- package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +3 -3
- package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +4 -4
- package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +5 -6
- package/source/class/qx/tool/compiler/makers/AppMaker.js +40 -19
- package/source/class/qx/tool/compiler/makers/Maker.js +29 -21
- package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +8 -8
- package/source/class/qx/tool/compiler/resources/Asset.js +123 -61
- package/source/class/qx/tool/compiler/resources/ImageLoader.js +18 -8
- package/source/class/qx/tool/compiler/resources/Manager.js +156 -93
- package/source/class/qx/tool/compiler/resources/MetaLoader.js +5 -3
- package/source/class/qx/tool/compiler/resources/ResourceConverter.js +8 -8
- package/source/class/qx/tool/compiler/resources/ResourceLoader.js +8 -9
- package/source/class/qx/tool/compiler/resources/ScssConverter.js +54 -18
- package/source/class/qx/tool/compiler/resources/ScssFile.js +157 -80
- package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +3 -3
- package/source/class/qx/tool/compiler/targets/BuildTarget.js +23 -13
- package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +29 -9
- package/source/class/qx/tool/compiler/targets/SourceTarget.js +2 -2
- package/source/class/qx/tool/compiler/targets/Target.js +292 -187
- package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +163 -103
- package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +48 -23
- package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +75 -62
- package/source/class/qx/tool/compiler/targets/meta/BootJs.js +49 -29
- package/source/class/qx/tool/compiler/targets/meta/Javascript.js +6 -7
- package/source/class/qx/tool/compiler/targets/meta/Package.js +54 -51
- package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +41 -21
- package/source/class/qx/tool/compiler/targets/meta/Part.js +9 -10
- package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +18 -5
- package/source/class/qx/tool/compiler/targets/meta/Uglify.js +54 -21
- package/source/class/qx/tool/config/Abstract.js +61 -25
- package/source/class/qx/tool/config/Compile.js +3 -2
- package/source/class/qx/tool/config/Lockfile.js +3 -2
- package/source/class/qx/tool/config/Manifest.js +3 -2
- package/source/class/qx/tool/config/Registry.js +4 -3
- package/source/class/qx/tool/config/Utils.js +88 -37
- package/source/class/qx/tool/migration/BaseMigration.js +67 -25
- package/source/class/qx/tool/migration/M6_0_0.js +96 -46
- package/source/class/qx/tool/migration/M7_0_0.js +12 -6
- package/source/class/qx/tool/migration/Runner.js +28 -14
- package/source/class/qx/tool/utils/IndexedArray.js +15 -18
- package/source/class/qx/tool/utils/Json.js +35 -14
- package/source/class/qx/tool/utils/LogManager.js +50 -26
- package/source/class/qx/tool/utils/Logger.js +11 -12
- package/source/class/qx/tool/utils/Promisify.js +45 -49
- package/source/class/qx/tool/utils/Utils.js +63 -48
- package/source/class/qx/tool/utils/Values.js +4 -7
- package/source/class/qx/tool/utils/Website.js +82 -29
- package/source/class/qx/tool/utils/files/FindFiles.js +37 -33
- package/source/class/qx/tool/utils/files/Utils.js +74 -54
- package/source/class/qx/tool/utils/json/Parser.js +163 -54
- package/source/class/qx/tool/utils/json/Stringify.js +87 -72
- package/source/class/qx/tool/utils/json/Tokenizer.js +64 -39
- package/source/class/qx/tool/utils/json/Writer.js +20 -21
- package/source/class/qx/type/Array.js +19 -41
- package/source/class/qx/type/BaseArray.js +136 -151
- package/source/class/qx/type/BaseError.js +17 -34
- package/source/class/qx/type/BaseString.js +104 -121
- package/source/class/qx/type/__init__.js +3 -3
- package/source/class/qx/ui/basic/Atom.js +75 -109
- package/source/class/qx/ui/basic/Image.js +283 -319
- package/source/class/qx/ui/basic/Label.js +161 -208
- package/source/class/qx/ui/command/Command.js +51 -86
- package/source/class/qx/ui/command/Group.js +43 -50
- package/source/class/qx/ui/command/GroupManager.js +50 -53
- package/source/class/qx/ui/container/Composite.js +15 -29
- package/source/class/qx/ui/container/Resizer.js +7 -11
- package/source/class/qx/ui/container/Scroll.js +10 -21
- package/source/class/qx/ui/container/SlideBar.js +76 -119
- package/source/class/qx/ui/container/Stack.js +27 -54
- package/source/class/qx/ui/control/ColorPopup.js +109 -130
- package/source/class/qx/ui/control/ColorSelector.js +334 -301
- package/source/class/qx/ui/control/DateChooser.js +143 -177
- package/source/class/qx/ui/core/Blocker.js +91 -127
- package/source/class/qx/ui/core/ColumnData.js +16 -34
- package/source/class/qx/ui/core/DragDropCursor.js +17 -30
- package/source/class/qx/ui/core/DragDropScrolling.js +8 -14
- package/source/class/qx/ui/core/EventHandler.js +108 -132
- package/source/class/qx/ui/core/FocusHandler.js +78 -127
- package/source/class/qx/ui/core/IMultiSelection.js +5 -9
- package/source/class/qx/ui/core/ISingleSelection.js +10 -16
- package/source/class/qx/ui/core/ISingleSelectionProvider.js +4 -6
- package/source/class/qx/ui/core/LayoutItem.js +190 -306
- package/source/class/qx/ui/core/MBlocker.js +22 -38
- package/source/class/qx/ui/core/MChildrenHandling.js +14 -29
- package/source/class/qx/ui/core/MContentPadding.js +50 -69
- package/source/class/qx/ui/core/MDragDropScrolling.js +82 -80
- package/source/class/qx/ui/core/MExecutable.js +27 -52
- package/source/class/qx/ui/core/MLayoutHandling.js +6 -14
- package/source/class/qx/ui/core/MMovable.js +64 -80
- package/source/class/qx/ui/core/MMultiSelectionHandling.js +68 -87
- package/source/class/qx/ui/core/MNativeOverflow.js +16 -26
- package/source/class/qx/ui/core/MPlacement.js +171 -170
- package/source/class/qx/ui/core/MRemoteChildrenHandling.js +14 -27
- package/source/class/qx/ui/core/MRemoteLayoutHandling.js +4 -7
- package/source/class/qx/ui/core/MResizable.js +142 -175
- package/source/class/qx/ui/core/MSingleSelectionHandling.js +40 -45
- package/source/class/qx/ui/core/SingleSelectionManager.js +41 -60
- package/source/class/qx/ui/core/Spacer.js +12 -22
- package/source/class/qx/ui/core/Widget.js +628 -983
- package/source/class/qx/ui/core/queue/Appearance.js +15 -24
- package/source/class/qx/ui/core/queue/Dispose.js +7 -16
- package/source/class/qx/ui/core/queue/Layout.js +44 -71
- package/source/class/qx/ui/core/queue/Manager.js +140 -133
- package/source/class/qx/ui/core/queue/Visibility.js +21 -39
- package/source/class/qx/ui/core/queue/Widget.js +15 -26
- package/source/class/qx/ui/core/scroll/AbstractScrollArea.js +124 -162
- package/source/class/qx/ui/core/scroll/IScrollBar.js +13 -24
- package/source/class/qx/ui/core/scroll/MRoll.js +14 -19
- package/source/class/qx/ui/core/scroll/MScrollBarFactory.js +3 -6
- package/source/class/qx/ui/core/scroll/MWheelHandling.js +10 -12
- package/source/class/qx/ui/core/scroll/NativeScrollBar.js +101 -125
- package/source/class/qx/ui/core/scroll/ScrollBar.js +86 -130
- package/source/class/qx/ui/core/scroll/ScrollPane.js +95 -134
- package/source/class/qx/ui/core/scroll/ScrollSlider.js +13 -19
- package/source/class/qx/ui/core/scroll/__init__.js +4 -4
- package/source/class/qx/ui/core/selection/Abstract.js +255 -456
- package/source/class/qx/ui/core/selection/ScrollArea.js +35 -73
- package/source/class/qx/ui/core/selection/Widget.js +57 -120
- package/source/class/qx/ui/decoration/Abstract.js +11 -20
- package/source/class/qx/ui/decoration/Decorator.js +56 -55
- package/source/class/qx/ui/decoration/IDecorator.js +5 -11
- package/source/class/qx/ui/decoration/MBackgroundColor.js +13 -20
- package/source/class/qx/ui/decoration/MBackgroundImage.js +82 -77
- package/source/class/qx/ui/decoration/MBorderImage.js +72 -94
- package/source/class/qx/ui/decoration/MBorderRadius.js +35 -38
- package/source/class/qx/ui/decoration/MBoxShadow.js +61 -55
- package/source/class/qx/ui/decoration/MDoubleBorder.js +157 -155
- package/source/class/qx/ui/decoration/MLinearBackgroundGradient.js +169 -89
- package/source/class/qx/ui/decoration/MSingleBorder.js +138 -124
- package/source/class/qx/ui/decoration/MTransition.js +46 -42
- package/source/class/qx/ui/decoration/__init__.js +2 -2
- package/source/class/qx/ui/embed/AbstractIframe.js +37 -55
- package/source/class/qx/ui/embed/Canvas.js +34 -66
- package/source/class/qx/ui/embed/Html.js +46 -70
- package/source/class/qx/ui/embed/Iframe.js +178 -158
- package/source/class/qx/ui/embed/ThemedIframe.js +91 -135
- package/source/class/qx/ui/form/AbstractField.js +262 -303
- package/source/class/qx/ui/form/AbstractSelectBox.js +65 -87
- package/source/class/qx/ui/form/Button.js +35 -73
- package/source/class/qx/ui/form/CheckBox.js +26 -48
- package/source/class/qx/ui/form/CheckedList.js +41 -25
- package/source/class/qx/ui/form/CheckedSelectBox.js +97 -62
- package/source/class/qx/ui/form/ComboBox.js +98 -121
- package/source/class/qx/ui/form/DateField.js +140 -181
- package/source/class/qx/ui/form/Form.js +50 -69
- package/source/class/qx/ui/form/HoverButton.js +37 -54
- package/source/class/qx/ui/form/IArrayForm.js +8 -16
- package/source/class/qx/ui/form/IBooleanForm.js +8 -16
- package/source/class/qx/ui/form/IColorForm.js +8 -16
- package/source/class/qx/ui/form/IDateForm.js +8 -16
- package/source/class/qx/ui/form/IExecutable.js +7 -14
- package/source/class/qx/ui/form/IField.js +7 -14
- package/source/class/qx/ui/form/IForm.js +17 -32
- package/source/class/qx/ui/form/IListItem.js +1 -4
- package/source/class/qx/ui/form/IModel.js +7 -15
- package/source/class/qx/ui/form/IModelForm.js +8 -16
- package/source/class/qx/ui/form/IModelSelection.js +4 -8
- package/source/class/qx/ui/form/INumberForm.js +8 -15
- package/source/class/qx/ui/form/IRadioItem.js +8 -17
- package/source/class/qx/ui/form/IRange.js +10 -20
- package/source/class/qx/ui/form/IStringForm.js +8 -16
- package/source/class/qx/ui/form/List.js +82 -122
- package/source/class/qx/ui/form/ListItem.js +21 -38
- package/source/class/qx/ui/form/MForm.js +35 -41
- package/source/class/qx/ui/form/MModelProperty.js +9 -14
- package/source/class/qx/ui/form/MModelSelection.js +30 -32
- package/source/class/qx/ui/form/MenuButton.js +50 -77
- package/source/class/qx/ui/form/PasswordField.js +4 -6
- package/source/class/qx/ui/form/RadioButton.js +36 -72
- package/source/class/qx/ui/form/RadioButtonGroup.js +67 -82
- package/source/class/qx/ui/form/RadioGroup.js +92 -127
- package/source/class/qx/ui/form/RepeatButton.js +57 -106
- package/source/class/qx/ui/form/Resetter.js +19 -29
- package/source/class/qx/ui/form/SelectBox.js +62 -105
- package/source/class/qx/ui/form/Slider.js +202 -269
- package/source/class/qx/ui/form/Spinner.js +173 -217
- package/source/class/qx/ui/form/SplitButton.js +73 -115
- package/source/class/qx/ui/form/Tag.js +7 -8
- package/source/class/qx/ui/form/TextArea.js +147 -153
- package/source/class/qx/ui/form/TextField.js +37 -46
- package/source/class/qx/ui/form/ToggleButton.js +54 -90
- package/source/class/qx/ui/form/VirtualComboBox.js +73 -113
- package/source/class/qx/ui/form/VirtualSelectBox.js +264 -274
- package/source/class/qx/ui/form/core/AbstractVirtualBox.js +117 -157
- package/source/class/qx/ui/form/core/VirtualDropDownList.js +101 -144
- package/source/class/qx/ui/form/renderer/AbstractRenderer.js +48 -55
- package/source/class/qx/ui/form/renderer/Double.js +25 -34
- package/source/class/qx/ui/form/renderer/IFormRenderer.js +4 -8
- package/source/class/qx/ui/form/renderer/Single.js +25 -35
- package/source/class/qx/ui/form/renderer/SinglePlaceholder.js +12 -11
- package/source/class/qx/ui/form/renderer/__init__.js +5 -5
- package/source/class/qx/ui/form/validation/AsyncValidator.js +13 -19
- package/source/class/qx/ui/form/validation/Manager.js +74 -108
- package/source/class/qx/ui/form/validation/__init__.js +6 -6
- package/source/class/qx/ui/groupbox/CheckGroupBox.js +30 -47
- package/source/class/qx/ui/groupbox/GroupBox.js +36 -75
- package/source/class/qx/ui/groupbox/RadioGroupBox.js +29 -59
- package/source/class/qx/ui/groupbox/__init__.js +3 -3
- package/source/class/qx/ui/indicator/ProgressBar.js +29 -46
- package/source/class/qx/ui/layout/Abstract.js +28 -53
- package/source/class/qx/ui/layout/Atom.js +95 -111
- package/source/class/qx/ui/layout/Basic.js +29 -30
- package/source/class/qx/ui/layout/Canvas.js +62 -99
- package/source/class/qx/ui/layout/Dock.js +266 -250
- package/source/class/qx/ui/layout/Flow.js +50 -76
- package/source/class/qx/ui/layout/Grid.js +268 -343
- package/source/class/qx/ui/layout/Grow.js +26 -32
- package/source/class/qx/ui/layout/HBox.js +137 -153
- package/source/class/qx/ui/layout/LineSizeIterator.js +19 -28
- package/source/class/qx/ui/layout/Util.js +91 -120
- package/source/class/qx/ui/layout/VBox.js +125 -147
- package/source/class/qx/ui/list/List.js +148 -262
- package/source/class/qx/ui/list/core/IListDelegate.js +13 -26
- package/source/class/qx/ui/list/core/MWidgetController.js +51 -78
- package/source/class/qx/ui/list/provider/IListProvider.js +15 -28
- package/source/class/qx/ui/list/provider/WidgetProvider.js +52 -84
- package/source/class/qx/ui/menu/AbstractButton.js +126 -131
- package/source/class/qx/ui/menu/Button.js +11 -25
- package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
- package/source/class/qx/ui/menu/CheckBox.js +21 -46
- package/source/class/qx/ui/menu/Layout.js +45 -51
- package/source/class/qx/ui/menu/Manager.js +131 -209
- package/source/class/qx/ui/menu/Menu.js +180 -265
- package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
- package/source/class/qx/ui/menu/RadioButton.js +29 -51
- package/source/class/qx/ui/menu/Separator.js +9 -16
- package/source/class/qx/ui/menubar/Button.js +23 -41
- package/source/class/qx/ui/menubar/MenuBar.js +9 -13
- package/source/class/qx/ui/mobile/__init__.js +5 -5
- package/source/class/qx/ui/mobile/basic/Atom.js +79 -101
- package/source/class/qx/ui/mobile/basic/Image.js +80 -86
- package/source/class/qx/ui/mobile/basic/Label.js +38 -54
- package/source/class/qx/ui/mobile/container/Carousel.js +281 -188
- package/source/class/qx/ui/mobile/container/Collapsible.js +57 -77
- package/source/class/qx/ui/mobile/container/Composite.js +9 -13
- package/source/class/qx/ui/mobile/container/Drawer.js +167 -164
- package/source/class/qx/ui/mobile/container/INavigation.js +6 -10
- package/source/class/qx/ui/mobile/container/IScrollDelegate.js +4 -6
- package/source/class/qx/ui/mobile/container/MIScroll.js +108 -100
- package/source/class/qx/ui/mobile/container/MNativeScroll.js +118 -102
- package/source/class/qx/ui/mobile/container/MScrollHandling.js +8 -7
- package/source/class/qx/ui/mobile/container/Navigation.js +46 -65
- package/source/class/qx/ui/mobile/container/Scroll.js +140 -151
- package/source/class/qx/ui/mobile/control/Picker.js +125 -112
- package/source/class/qx/ui/mobile/core/Blocker.js +62 -71
- package/source/class/qx/ui/mobile/core/DomUpdatedHandler.js +24 -60
- package/source/class/qx/ui/mobile/core/EventHandler.js +158 -138
- package/source/class/qx/ui/mobile/core/MChildrenHandling.js +14 -30
- package/source/class/qx/ui/mobile/core/MLayoutHandling.js +6 -14
- package/source/class/qx/ui/mobile/core/MResize.js +16 -30
- package/source/class/qx/ui/mobile/core/Root.js +90 -80
- package/source/class/qx/ui/mobile/core/Widget.js +351 -479
- package/source/class/qx/ui/mobile/dialog/BusyIndicator.js +31 -46
- package/source/class/qx/ui/mobile/dialog/Manager.js +127 -89
- package/source/class/qx/ui/mobile/dialog/Menu.js +111 -122
- package/source/class/qx/ui/mobile/dialog/Popup.js +202 -194
- package/source/class/qx/ui/mobile/embed/Canvas.js +12 -25
- package/source/class/qx/ui/mobile/embed/Html.js +13 -27
- package/source/class/qx/ui/mobile/form/Button.js +12 -18
- package/source/class/qx/ui/mobile/form/CheckBox.js +20 -35
- package/source/class/qx/ui/mobile/form/Form.js +31 -51
- package/source/class/qx/ui/mobile/form/Group.js +18 -30
- package/source/class/qx/ui/mobile/form/Input.js +30 -35
- package/source/class/qx/ui/mobile/form/Label.js +76 -79
- package/source/class/qx/ui/mobile/form/MState.js +20 -27
- package/source/class/qx/ui/mobile/form/MText.js +27 -47
- package/source/class/qx/ui/mobile/form/MValue.js +66 -94
- package/source/class/qx/ui/mobile/form/NumberField.js +30 -47
- package/source/class/qx/ui/mobile/form/PasswordField.js +8 -14
- package/source/class/qx/ui/mobile/form/RadioButton.js +25 -46
- package/source/class/qx/ui/mobile/form/RadioGroup.js +2 -4
- package/source/class/qx/ui/mobile/form/Row.js +14 -29
- package/source/class/qx/ui/mobile/form/SelectBox.js +77 -104
- package/source/class/qx/ui/mobile/form/Slider.js +116 -144
- package/source/class/qx/ui/mobile/form/TextArea.js +26 -39
- package/source/class/qx/ui/mobile/form/TextField.js +18 -28
- package/source/class/qx/ui/mobile/form/Title.js +11 -19
- package/source/class/qx/ui/mobile/form/ToggleButton.js +35 -58
- package/source/class/qx/ui/mobile/form/__init__.js +1 -1
- package/source/class/qx/ui/mobile/form/renderer/AbstractRenderer.js +24 -31
- package/source/class/qx/ui/mobile/form/renderer/Single.js +59 -85
- package/source/class/qx/ui/mobile/form/renderer/SinglePlaceholder.js +8 -16
- package/source/class/qx/ui/mobile/layout/Abstract.js +48 -85
- package/source/class/qx/ui/mobile/layout/AbstractBox.js +93 -125
- package/source/class/qx/ui/mobile/layout/Card.js +133 -116
- package/source/class/qx/ui/mobile/layout/CardAnimation.js +95 -72
- package/source/class/qx/ui/mobile/layout/HBox.js +9 -12
- package/source/class/qx/ui/mobile/layout/VBox.js +9 -12
- package/source/class/qx/ui/mobile/list/IListDelegate.js +5 -9
- package/source/class/qx/ui/mobile/list/List.js +172 -183
- package/source/class/qx/ui/mobile/list/provider/Provider.js +58 -65
- package/source/class/qx/ui/mobile/list/renderer/Abstract.js +54 -82
- package/source/class/qx/ui/mobile/list/renderer/Default.js +39 -55
- package/source/class/qx/ui/mobile/list/renderer/group/Abstract.js +20 -33
- package/source/class/qx/ui/mobile/list/renderer/group/Default.js +29 -45
- package/source/class/qx/ui/mobile/navigationbar/BackButton.js +11 -15
- package/source/class/qx/ui/mobile/navigationbar/Button.js +11 -15
- package/source/class/qx/ui/mobile/navigationbar/NavigationBar.js +23 -29
- package/source/class/qx/ui/mobile/navigationbar/Title.js +12 -20
- package/source/class/qx/ui/mobile/page/Manager.js +195 -169
- package/source/class/qx/ui/mobile/page/NavigationPage.js +132 -196
- package/source/class/qx/ui/mobile/page/Page.js +109 -148
- package/source/class/qx/ui/mobile/tabbar/TabBar.js +41 -62
- package/source/class/qx/ui/mobile/tabbar/TabButton.js +19 -28
- package/source/class/qx/ui/mobile/toolbar/Button.js +7 -11
- package/source/class/qx/ui/mobile/toolbar/Separator.js +11 -15
- package/source/class/qx/ui/mobile/toolbar/ToolBar.js +30 -39
- package/source/class/qx/ui/popup/Manager.js +41 -53
- package/source/class/qx/ui/popup/Popup.js +22 -47
- package/source/class/qx/ui/popup/__init__.js +32 -32
- package/source/class/qx/ui/progressive/Progressive.js +96 -137
- package/source/class/qx/ui/progressive/State.js +12 -19
- package/source/class/qx/ui/progressive/headfoot/Abstract.js +10 -15
- package/source/class/qx/ui/progressive/headfoot/Null.js +4 -7
- package/source/class/qx/ui/progressive/headfoot/Progress.js +67 -69
- package/source/class/qx/ui/progressive/headfoot/TableHeading.js +42 -54
- package/source/class/qx/ui/progressive/model/Abstract.js +8 -15
- package/source/class/qx/ui/progressive/model/Default.js +17 -29
- package/source/class/qx/ui/progressive/renderer/Abstract.js +6 -11
- package/source/class/qx/ui/progressive/renderer/FunctionCaller.js +4 -7
- package/source/class/qx/ui/progressive/renderer/table/Row.js +215 -242
- package/source/class/qx/ui/progressive/renderer/table/Widths.js +32 -47
- package/source/class/qx/ui/progressive/renderer/table/cell/Abstract.js +17 -24
- package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +68 -79
- package/source/class/qx/ui/progressive/renderer/table/cell/Conditional.js +146 -199
- package/source/class/qx/ui/progressive/renderer/table/cell/Default.js +14 -32
- package/source/class/qx/ui/progressive/renderer/table/cell/Html.js +2 -3
- package/source/class/qx/ui/progressive/renderer/table/cell/Icon.js +38 -53
- package/source/class/qx/ui/progressive/renderer/table/cell/Image.js +20 -42
- package/source/class/qx/ui/progressive/renderer/table/cell/String.js +6 -12
- package/source/class/qx/ui/progressive/structure/Abstract.js +14 -26
- package/source/class/qx/ui/progressive/structure/Default.js +20 -40
- package/source/class/qx/ui/root/Abstract.js +73 -90
- package/source/class/qx/ui/root/Application.js +57 -61
- package/source/class/qx/ui/root/Inline.js +78 -64
- package/source/class/qx/ui/root/Page.js +25 -46
- package/source/class/qx/ui/splitpane/Blocker.js +20 -30
- package/source/class/qx/ui/splitpane/HLayout.js +53 -49
- package/source/class/qx/ui/splitpane/Pane.js +112 -150
- package/source/class/qx/ui/splitpane/Slider.js +9 -15
- package/source/class/qx/ui/splitpane/Splitter.js +27 -46
- package/source/class/qx/ui/splitpane/VLayout.js +53 -49
- package/source/class/qx/ui/style/Stylesheet.js +12 -19
- package/source/class/qx/ui/table/ICellEditorFactory.js +4 -8
- package/source/class/qx/ui/table/ICellRenderer.js +3 -7
- package/source/class/qx/ui/table/IColumnMenuButton.js +6 -11
- package/source/class/qx/ui/table/IColumnMenuItem.js +5 -8
- package/source/class/qx/ui/table/IHeaderRenderer.js +4 -8
- package/source/class/qx/ui/table/IRowRenderer.js +6 -12
- package/source/class/qx/ui/table/ITableModel.js +23 -41
- package/source/class/qx/ui/table/MTableContextMenu.js +25 -28
- package/source/class/qx/ui/table/Table.js +556 -748
- package/source/class/qx/ui/table/celleditor/AbstractField.js +16 -26
- package/source/class/qx/ui/table/celleditor/CheckBox.js +15 -16
- package/source/class/qx/ui/table/celleditor/ComboBox.js +24 -34
- package/source/class/qx/ui/table/celleditor/Dynamic.js +25 -32
- package/source/class/qx/ui/table/celleditor/PasswordField.js +4 -8
- package/source/class/qx/ui/table/celleditor/SelectBox.js +29 -38
- package/source/class/qx/ui/table/celleditor/TextField.js +9 -14
- package/source/class/qx/ui/table/cellrenderer/Abstract.js +78 -73
- package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +65 -84
- package/source/class/qx/ui/table/cellrenderer/Boolean.js +36 -50
- package/source/class/qx/ui/table/cellrenderer/Conditional.js +74 -63
- package/source/class/qx/ui/table/cellrenderer/Date.js +12 -22
- package/source/class/qx/ui/table/cellrenderer/Debug.js +9 -9
- package/source/class/qx/ui/table/cellrenderer/Default.js +30 -52
- package/source/class/qx/ui/table/cellrenderer/Dynamic.js +13 -24
- package/source/class/qx/ui/table/cellrenderer/Html.js +6 -8
- package/source/class/qx/ui/table/cellrenderer/Image.js +13 -26
- package/source/class/qx/ui/table/cellrenderer/Number.js +13 -24
- package/source/class/qx/ui/table/cellrenderer/Password.js +8 -11
- package/source/class/qx/ui/table/cellrenderer/Replace.js +27 -42
- package/source/class/qx/ui/table/cellrenderer/String.js +5 -7
- package/source/class/qx/ui/table/columnmenu/Button.js +19 -29
- package/source/class/qx/ui/table/columnmenu/MenuItem.js +11 -19
- package/source/class/qx/ui/table/columnmenu/__init__.js +4 -4
- package/source/class/qx/ui/table/columnmenu/grid/__init__.js +4 -4
- package/source/class/qx/ui/table/columnmenu/simple/__init__.js +4 -4
- package/source/class/qx/ui/table/columnmodel/Basic.js +193 -215
- package/source/class/qx/ui/table/columnmodel/Resize.js +65 -111
- package/source/class/qx/ui/table/columnmodel/resizebehavior/Abstract.js +17 -24
- package/source/class/qx/ui/table/columnmodel/resizebehavior/Default.js +66 -117
- package/source/class/qx/ui/table/headerrenderer/Default.js +25 -46
- package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +36 -51
- package/source/class/qx/ui/table/headerrenderer/Icon.js +11 -27
- package/source/class/qx/ui/table/model/Abstract.js +52 -62
- package/source/class/qx/ui/table/model/Filtered.js +121 -153
- package/source/class/qx/ui/table/model/Remote.js +166 -271
- package/source/class/qx/ui/table/model/Simple.js +215 -250
- package/source/class/qx/ui/table/pane/CellEvent.js +25 -32
- package/source/class/qx/ui/table/pane/Clipper.js +8 -12
- package/source/class/qx/ui/table/pane/FocusIndicator.js +42 -48
- package/source/class/qx/ui/table/pane/Header.js +45 -86
- package/source/class/qx/ui/table/pane/Model.js +80 -97
- package/source/class/qx/ui/table/pane/Pane.js +129 -189
- package/source/class/qx/ui/table/pane/Scroller.js +542 -659
- package/source/class/qx/ui/table/rowrenderer/Default.js +75 -86
- package/source/class/qx/ui/table/selection/Manager.js +23 -57
- package/source/class/qx/ui/table/selection/Model.js +89 -179
- package/source/class/qx/ui/tabview/Page.js +48 -79
- package/source/class/qx/ui/tabview/TabButton.js +45 -72
- package/source/class/qx/ui/tabview/TabView.js +94 -141
- package/source/class/qx/ui/toolbar/Button.js +13 -18
- package/source/class/qx/ui/toolbar/CheckBox.js +13 -17
- package/source/class/qx/ui/toolbar/MenuButton.js +18 -34
- package/source/class/qx/ui/toolbar/Part.js +42 -64
- package/source/class/qx/ui/toolbar/PartContainer.js +19 -28
- package/source/class/qx/ui/toolbar/RadioButton.js +12 -19
- package/source/class/qx/ui/toolbar/Separator.js +15 -25
- package/source/class/qx/ui/toolbar/SplitButton.js +19 -28
- package/source/class/qx/ui/toolbar/ToolBar.js +182 -232
- package/source/class/qx/ui/tooltip/Manager.js +125 -123
- package/source/class/qx/ui/tooltip/ToolTip.js +49 -79
- package/source/class/qx/ui/tooltip/__init__.js +23 -23
- package/source/class/qx/ui/tree/Tree.js +95 -148
- package/source/class/qx/ui/tree/TreeFile.js +8 -15
- package/source/class/qx/ui/tree/TreeFolder.js +8 -15
- package/source/class/qx/ui/tree/VirtualTree.js +207 -333
- package/source/class/qx/ui/tree/VirtualTreeItem.js +30 -45
- package/source/class/qx/ui/tree/__init__.js +50 -50
- package/source/class/qx/ui/tree/core/AbstractItem.js +98 -152
- package/source/class/qx/ui/tree/core/AbstractTreeItem.js +83 -137
- package/source/class/qx/ui/tree/core/FolderOpenButton.js +15 -34
- package/source/class/qx/ui/tree/core/IVirtualTree.js +13 -33
- package/source/class/qx/ui/tree/core/IVirtualTreeDelegate.js +9 -16
- package/source/class/qx/ui/tree/core/MWidgetController.js +58 -69
- package/source/class/qx/ui/tree/core/OpenCloseController.js +29 -35
- package/source/class/qx/ui/tree/core/Util.js +12 -16
- package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +10 -23
- package/source/class/qx/ui/tree/provider/WidgetProvider.js +39 -67
- package/source/class/qx/ui/tree/selection/SelectionManager.js +27 -41
- package/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js +2 -3
- package/source/class/qx/ui/treevirtual/MFamily.js +26 -63
- package/source/class/qx/ui/treevirtual/MNode.js +43 -103
- package/source/class/qx/ui/treevirtual/MTreePrimitive.js +41 -52
- package/source/class/qx/ui/treevirtual/SelectionManager.js +44 -58
- package/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js +172 -229
- package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +256 -367
- package/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js +8 -18
- package/source/class/qx/ui/treevirtual/TreeVirtual.js +155 -250
- package/source/class/qx/ui/treevirtual/celleditor/NodeEditor.js +10 -16
- package/source/class/qx/ui/treevirtual/pane/Scroller.js +14 -11
- package/source/class/qx/ui/virtual/__init__.js +4 -4
- package/source/class/qx/ui/virtual/behavior/Prefetch.js +71 -86
- package/source/class/qx/ui/virtual/cell/Abstract.js +18 -27
- package/source/class/qx/ui/virtual/cell/AbstractImage.js +42 -51
- package/source/class/qx/ui/virtual/cell/AbstractWidget.js +25 -49
- package/source/class/qx/ui/virtual/cell/Boolean.js +31 -44
- package/source/class/qx/ui/virtual/cell/Cell.js +143 -183
- package/source/class/qx/ui/virtual/cell/CellStylesheet.js +31 -38
- package/source/class/qx/ui/virtual/cell/Date.js +15 -24
- package/source/class/qx/ui/virtual/cell/Html.js +9 -20
- package/source/class/qx/ui/virtual/cell/ICell.js +4 -6
- package/source/class/qx/ui/virtual/cell/IWidgetCell.js +7 -12
- package/source/class/qx/ui/virtual/cell/IWidgetCellDelegate.js +4 -6
- package/source/class/qx/ui/virtual/cell/Image.js +8 -14
- package/source/class/qx/ui/virtual/cell/Number.js +14 -23
- package/source/class/qx/ui/virtual/cell/String.js +11 -20
- package/source/class/qx/ui/virtual/cell/WidgetCell.js +13 -16
- package/source/class/qx/ui/virtual/cell/__init__.js +4 -4
- package/source/class/qx/ui/virtual/core/Axis.js +75 -103
- package/source/class/qx/ui/virtual/core/CellEvent.js +23 -31
- package/source/class/qx/ui/virtual/core/IHtmlCellProvider.js +4 -6
- package/source/class/qx/ui/virtual/core/ILayer.js +5 -15
- package/source/class/qx/ui/virtual/core/IWidgetCellProvider.js +5 -7
- package/source/class/qx/ui/virtual/core/Pane.js +199 -242
- package/source/class/qx/ui/virtual/core/Scroller.js +25 -43
- package/source/class/qx/ui/virtual/layer/Abstract.js +44 -83
- package/source/class/qx/ui/virtual/layer/AbstractBackground.js +47 -68
- package/source/class/qx/ui/virtual/layer/CellSpanManager.js +74 -96
- package/source/class/qx/ui/virtual/layer/Column.js +26 -36
- package/source/class/qx/ui/virtual/layer/GridLines.js +43 -70
- package/source/class/qx/ui/virtual/layer/HtmlCell.js +34 -32
- package/source/class/qx/ui/virtual/layer/HtmlCellSpan.js +54 -56
- package/source/class/qx/ui/virtual/layer/Row.js +28 -36
- package/source/class/qx/ui/virtual/layer/WidgetCell.js +87 -123
- package/source/class/qx/ui/virtual/layer/WidgetCellSpan.js +123 -124
- package/source/class/qx/ui/virtual/selection/Abstract.js +26 -54
- package/source/class/qx/ui/virtual/selection/CellLines.js +11 -21
- package/source/class/qx/ui/virtual/selection/CellRectangle.js +45 -73
- package/source/class/qx/ui/virtual/selection/Column.js +16 -35
- package/source/class/qx/ui/virtual/selection/ISelectionDelegate.js +5 -9
- package/source/class/qx/ui/virtual/selection/MModel.js +84 -122
- package/source/class/qx/ui/virtual/selection/Row.js +29 -61
- package/source/class/qx/ui/website/Accordion.js +39 -42
- package/source/class/qx/ui/website/Button.js +17 -25
- package/source/class/qx/ui/website/Calendar.js +243 -172
- package/source/class/qx/ui/website/Carousel.js +169 -155
- package/source/class/qx/ui/website/DatePicker.js +99 -85
- package/source/class/qx/ui/website/Rating.js +35 -53
- package/source/class/qx/ui/website/Slider.js +174 -153
- package/source/class/qx/ui/website/Table.js +482 -456
- package/source/class/qx/ui/website/Tabs.js +225 -180
- package/source/class/qx/ui/website/Widget.js +39 -52
- package/source/class/qx/ui/window/Desktop.js +14 -12
- package/source/class/qx/ui/window/IDesktop.js +8 -10
- package/source/class/qx/ui/window/IWindowManager.js +7 -9
- package/source/class/qx/ui/window/MDesktop.js +34 -62
- package/source/class/qx/ui/window/Manager.js +31 -57
- package/source/class/qx/ui/window/Window.js +250 -351
- package/source/class/qx/util/AliasManager.js +23 -42
- package/source/class/qx/util/Animation.js +248 -191
- package/source/class/qx/util/Base64.js +144 -89
- package/source/class/qx/util/ColorUtil.js +253 -287
- package/source/class/qx/util/DeferredCall.js +21 -30
- package/source/class/qx/util/DeferredCallManager.js +23 -44
- package/source/class/qx/util/Delegate.js +4 -10
- package/source/class/qx/util/DisposeUtil.js +76 -70
- package/source/class/qx/util/DynamicScriptLoader.js +83 -66
- package/source/class/qx/util/EditDistance.js +64 -58
- package/source/class/qx/util/ExtendedColor.js +157 -163
- package/source/class/qx/util/Function.js +8 -8
- package/source/class/qx/util/LibraryManager.js +11 -18
- package/source/class/qx/util/OOUtil.js +17 -36
- package/source/class/qx/util/ObjectPool.js +19 -45
- package/source/class/qx/util/Permutation.js +9 -16
- package/source/class/qx/util/PropertyUtil.js +58 -70
- package/source/class/qx/util/Request.js +27 -16
- package/source/class/qx/util/ResourceManager.js +103 -104
- package/source/class/qx/util/ResponseParser.js +14 -21
- package/source/class/qx/util/RingBuffer.js +46 -48
- package/source/class/qx/util/Serializer.js +103 -68
- package/source/class/qx/util/StringBuilder.js +11 -22
- package/source/class/qx/util/StringEscape.js +15 -29
- package/source/class/qx/util/StringSplit.js +18 -21
- package/source/class/qx/util/TimerManager.js +61 -70
- package/source/class/qx/util/Uri.js +42 -30
- package/source/class/qx/util/Uuid.js +50 -35
- package/source/class/qx/util/Validate.js +88 -73
- package/source/class/qx/util/ValueManager.js +17 -29
- package/source/class/qx/util/Wheel.js +22 -16
- package/source/class/qx/util/format/DateFormat.js +853 -763
- package/source/class/qx/util/format/IFormat.js +4 -8
- package/source/class/qx/util/format/NumberFormat.js +84 -91
- package/source/class/qx/util/fsm/FiniteStateMachine.js +323 -382
- package/source/class/qx/util/fsm/State.js +210 -249
- package/source/class/qx/util/fsm/Transition.js +138 -160
- package/source/class/qx/util/placement/AbstractAxis.js +12 -14
- package/source/class/qx/util/placement/BestFitAxis.js +5 -8
- package/source/class/qx/util/placement/DirectAxis.js +5 -7
- package/source/class/qx/util/placement/KeepAlignAxis.js +8 -14
- package/source/class/qx/util/placement/Placement.js +39 -56
- package/source/class/qx/util/placement/__init__.js +4 -4
- package/source/class/qx/xml/Document.js +21 -34
- package/source/class/qx/xml/Element.js +90 -73
- package/source/class/qx/xml/String.js +15 -21
- package/source/class/qxWeb.js +102 -69
- package/source/resource/qx/mobile/js/iscroll.js +1328 -982
- package/source/resource/qx/mobile/js/iscroll.min.js +1081 -1
- package/source/resource/qx/test/dynamicscriptloader/first.js +1 -1
- package/source/resource/qx/test/dynamicscriptloader/second.js +1 -1
- package/source/resource/qx/test/dynamicscriptloader/third.js +1 -1
- package/source/resource/qx/test/script.js +1 -1
- package/source/resource/qx/test/webworker.js +2 -2
- package/source/resource/qx/tool/loadsass.js +16 -13
- package/source/resource/qx/tool/schema/compile-1-0-0.json +13 -13
- package/source/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
- package/source/resource/qx/tool/website/build/assets/buttons.js +391 -1
- package/source/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
- package/source/resource/qx/tool/website/build/assets/jquery.js +5452 -3
- package/source/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
- package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
- package/source/resource/qx/tool/website/build/scripts/serve.js +87 -66
- package/source/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
- package/source/resource/qx/tool/website/src/assets/buttons.js +391 -1
- package/source/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
- package/source/resource/qx/tool/website/src/assets/jquery.js +5452 -3
- package/source/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
- package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
- package/source/resource/qx/tool/website/src/scripts/serve.js +87 -66
- package/source/translation/hr.po +297 -0
- package/lib/resource/qx/static/blank.gif +0 -0
- package/source/class/qx/io/remote/Exchange.js +0 -1063
- package/source/class/qx/io/remote/Request.js +0 -1021
- package/source/class/qx/io/remote/RequestQueue.js +0 -521
- package/source/class/qx/io/remote/Response.js +0 -137
- package/source/class/qx/io/remote/Rpc.js +0 -1075
- package/source/class/qx/io/remote/RpcError.js +0 -198
- package/source/class/qx/io/remote/__init__.js +0 -88
- package/source/class/qx/io/remote/transport/Abstract.js +0 -513
- package/source/class/qx/io/remote/transport/Iframe.js +0 -652
- package/source/class/qx/io/remote/transport/Script.js +0 -475
- package/source/class/qx/io/remote/transport/XmlHttp.js +0 -1019
- package/source/class/qx/io/remote/transport/__init__.js +0 -3
- package/source/class/qx/test/io/remote/AbstractRequest.js +0 -150
- package/source/class/qx/test/io/remote/RequestIframe.js +0 -105
- package/source/class/qx/test/io/remote/RequestXhr.js +0 -151
- package/source/class/qx/test/io/remote/Rpc.js +0 -205
- package/source/class/qx/test/io/remote/__init__.js +0 -4
- package/source/class/qx/test/io/remote/transport/Iframe.js +0 -67
- package/source/class/qx/test/io/remote/transport/XmlHttp.js +0 -133
- package/source/class/qx/test/io/remote/transport/__init__.js +0 -4
|
@@ -39,12 +39,10 @@
|
|
|
39
39
|
*
|
|
40
40
|
* @ignore(qx.ui.root.Inline)
|
|
41
41
|
*/
|
|
42
|
-
qx.Class.define("qx.ui.core.Widget",
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
implement: [ qx.core.IDisposable ],
|
|
47
|
-
|
|
42
|
+
qx.Class.define("qx.ui.core.Widget", {
|
|
43
|
+
extend: qx.ui.core.LayoutItem,
|
|
44
|
+
include: [qx.locale.MTranslation],
|
|
45
|
+
implement: [qx.core.IDisposable],
|
|
48
46
|
|
|
49
47
|
/*
|
|
50
48
|
*****************************************************************************
|
|
@@ -52,9 +50,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
52
50
|
*****************************************************************************
|
|
53
51
|
*/
|
|
54
52
|
|
|
55
|
-
construct
|
|
56
|
-
|
|
57
|
-
this.base(arguments);
|
|
53
|
+
construct() {
|
|
54
|
+
super();
|
|
58
55
|
|
|
59
56
|
// Create basic element
|
|
60
57
|
this.__contentElement = this.__createContentElement();
|
|
@@ -65,47 +62,42 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
65
62
|
this.initNativeContextMenu();
|
|
66
63
|
},
|
|
67
64
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
65
|
/*
|
|
72
66
|
*****************************************************************************
|
|
73
67
|
EVENTS
|
|
74
68
|
*****************************************************************************
|
|
75
69
|
*/
|
|
76
70
|
|
|
77
|
-
events
|
|
78
|
-
{
|
|
71
|
+
events: {
|
|
79
72
|
/**
|
|
80
73
|
* Fired after the widget appears on the screen.
|
|
81
74
|
*/
|
|
82
|
-
appear
|
|
75
|
+
appear: "qx.event.type.Event",
|
|
83
76
|
|
|
84
77
|
/**
|
|
85
78
|
* Fired after the widget disappears from the screen.
|
|
86
79
|
*/
|
|
87
|
-
disappear
|
|
80
|
+
disappear: "qx.event.type.Event",
|
|
88
81
|
|
|
89
82
|
/**
|
|
90
83
|
* Fired after the creation of a child control. The passed data is the
|
|
91
84
|
* newly created child widget.
|
|
92
85
|
*/
|
|
93
|
-
createChildControl
|
|
94
|
-
|
|
86
|
+
createChildControl: "qx.event.type.Data",
|
|
95
87
|
|
|
96
88
|
/**
|
|
97
89
|
* Fired on resize (after layout) of the widget.
|
|
98
90
|
* The data property of the event contains the widget's computed location
|
|
99
91
|
* and dimension as returned by {@link qx.ui.core.LayoutItem#getBounds}
|
|
100
92
|
*/
|
|
101
|
-
resize
|
|
93
|
+
resize: "qx.event.type.Data",
|
|
102
94
|
|
|
103
95
|
/**
|
|
104
96
|
* Fired on move (after layout) of the widget.
|
|
105
97
|
* The data property of the event contains the widget's computed location
|
|
106
98
|
* and dimension as returned by {@link qx.ui.core.LayoutItem#getBounds}
|
|
107
99
|
*/
|
|
108
|
-
move
|
|
100
|
+
move: "qx.event.type.Data",
|
|
109
101
|
|
|
110
102
|
/**
|
|
111
103
|
* Fired after the appearance has been applied. This happens before the
|
|
@@ -113,132 +105,130 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
113
105
|
* contains the state map. This can be used to react on state changes or to
|
|
114
106
|
* read properties set by the appearance.
|
|
115
107
|
*/
|
|
116
|
-
syncAppearance
|
|
117
|
-
|
|
118
|
-
|
|
108
|
+
syncAppearance: "qx.event.type.Data",
|
|
119
109
|
|
|
120
110
|
/** Fired if the mouse cursor moves over the widget.
|
|
121
111
|
* The data property of the event contains the widget's computed location
|
|
122
112
|
* and dimension as returned by {@link qx.ui.core.LayoutItem#getBounds}
|
|
123
113
|
*/
|
|
124
|
-
mousemove
|
|
114
|
+
mousemove: "qx.event.type.Mouse",
|
|
125
115
|
|
|
126
116
|
/**
|
|
127
117
|
* Fired if the mouse cursor enters the widget.
|
|
128
118
|
*
|
|
129
119
|
* Note: This event is also dispatched if the widget is disabled!
|
|
130
120
|
*/
|
|
131
|
-
mouseover
|
|
121
|
+
mouseover: "qx.event.type.Mouse",
|
|
132
122
|
|
|
133
123
|
/**
|
|
134
124
|
* Fired if the mouse cursor leaves widget.
|
|
135
125
|
*
|
|
136
126
|
* Note: This event is also dispatched if the widget is disabled!
|
|
137
127
|
*/
|
|
138
|
-
mouseout
|
|
128
|
+
mouseout: "qx.event.type.Mouse",
|
|
139
129
|
|
|
140
130
|
/** Mouse button is pressed on the widget. */
|
|
141
|
-
mousedown
|
|
131
|
+
mousedown: "qx.event.type.Mouse",
|
|
142
132
|
|
|
143
133
|
/** Mouse button is released on the widget. */
|
|
144
|
-
mouseup
|
|
134
|
+
mouseup: "qx.event.type.Mouse",
|
|
145
135
|
|
|
146
136
|
/** Widget is clicked using left or middle button.
|
|
147
137
|
{@link qx.event.type.Mouse#getButton} for more details.*/
|
|
148
|
-
click
|
|
138
|
+
click: "qx.event.type.Mouse",
|
|
149
139
|
|
|
150
140
|
/** Widget is clicked using a non primary button.
|
|
151
141
|
{@link qx.event.type.Mouse#getButton} for more details.*/
|
|
152
|
-
auxclick
|
|
142
|
+
auxclick: "qx.event.type.Mouse",
|
|
153
143
|
|
|
154
144
|
/** Widget is double clicked using left or middle button.
|
|
155
145
|
{@link qx.event.type.Mouse#getButton} for more details.*/
|
|
156
|
-
dblclick
|
|
146
|
+
dblclick: "qx.event.type.Mouse",
|
|
157
147
|
|
|
158
148
|
/** Widget is clicked using the right mouse button. */
|
|
159
|
-
contextmenu
|
|
149
|
+
contextmenu: "qx.event.type.Mouse",
|
|
160
150
|
|
|
161
151
|
/** Fired before the context menu is opened. */
|
|
162
|
-
beforeContextmenuOpen
|
|
152
|
+
beforeContextmenuOpen: "qx.event.type.Data",
|
|
163
153
|
|
|
164
154
|
/** Fired if the mouse wheel is used over the widget. */
|
|
165
|
-
mousewheel
|
|
155
|
+
mousewheel: "qx.event.type.MouseWheel",
|
|
166
156
|
|
|
167
157
|
/** Fired if a touch at the screen is started. */
|
|
168
|
-
touchstart
|
|
158
|
+
touchstart: "qx.event.type.Touch",
|
|
169
159
|
|
|
170
160
|
/** Fired if a touch at the screen has ended. */
|
|
171
|
-
touchend
|
|
161
|
+
touchend: "qx.event.type.Touch",
|
|
172
162
|
|
|
173
163
|
/** Fired during a touch at the screen. */
|
|
174
|
-
touchmove
|
|
164
|
+
touchmove: "qx.event.type.Touch",
|
|
175
165
|
|
|
176
166
|
/** Fired if a touch at the screen is canceled. */
|
|
177
|
-
touchcancel
|
|
167
|
+
touchcancel: "qx.event.type.Touch",
|
|
178
168
|
|
|
179
169
|
/** Fired when a pointer taps on the screen. */
|
|
180
|
-
tap
|
|
170
|
+
tap: "qx.event.type.Tap",
|
|
181
171
|
|
|
182
172
|
/** Fired when a pointer holds on the screen. */
|
|
183
|
-
longtap
|
|
173
|
+
longtap: "qx.event.type.Tap",
|
|
184
174
|
|
|
185
175
|
/** Fired when a pointer taps twice on the screen. */
|
|
186
|
-
dbltap
|
|
176
|
+
dbltap: "qx.event.type.Tap",
|
|
187
177
|
|
|
188
178
|
/** Fired when a pointer swipes over the screen. */
|
|
189
|
-
swipe
|
|
179
|
+
swipe: "qx.event.type.Touch",
|
|
190
180
|
|
|
191
181
|
/** Fired when two pointers performing a rotate gesture on the screen. */
|
|
192
|
-
rotate
|
|
182
|
+
rotate: "qx.event.type.Rotate",
|
|
193
183
|
|
|
194
184
|
/** Fired when two pointers performing a pinch in/out gesture on the screen. */
|
|
195
|
-
pinch
|
|
185
|
+
pinch: "qx.event.type.Pinch",
|
|
196
186
|
|
|
197
187
|
/** Fired when an active pointer moves on the screen (after pointerdown till pointerup). */
|
|
198
|
-
track
|
|
188
|
+
track: "qx.event.type.Track",
|
|
199
189
|
|
|
200
190
|
/** Fired when an active pointer moves on the screen or the mouse wheel is used. */
|
|
201
|
-
roll
|
|
191
|
+
roll: "qx.event.type.Roll",
|
|
202
192
|
|
|
203
193
|
/** Fired if a pointer (mouse/touch/pen) moves or changes any of it's values. */
|
|
204
|
-
pointermove
|
|
194
|
+
pointermove: "qx.event.type.Pointer",
|
|
205
195
|
|
|
206
196
|
/** Fired if a pointer (mouse/touch/pen) hovers the widget. */
|
|
207
|
-
pointerover
|
|
197
|
+
pointerover: "qx.event.type.Pointer",
|
|
208
198
|
|
|
209
199
|
/** Fired if a pointer (mouse/touch/pen) leaves this widget. */
|
|
210
|
-
pointerout
|
|
200
|
+
pointerout: "qx.event.type.Pointer",
|
|
211
201
|
|
|
212
202
|
/**
|
|
213
203
|
* Fired if a pointer (mouse/touch/pen) button is pressed or
|
|
214
204
|
* a finger touches the widget.
|
|
215
205
|
*/
|
|
216
|
-
pointerdown
|
|
206
|
+
pointerdown: "qx.event.type.Pointer",
|
|
217
207
|
|
|
218
208
|
/**
|
|
219
209
|
* Fired if all pointer (mouse/touch/pen) buttons are released or
|
|
220
210
|
* the finger is lifted from the widget.
|
|
221
211
|
*/
|
|
222
|
-
pointerup
|
|
212
|
+
pointerup: "qx.event.type.Pointer",
|
|
223
213
|
|
|
224
214
|
/** Fired if a pointer (mouse/touch/pen) action is canceled. */
|
|
225
|
-
pointercancel
|
|
215
|
+
pointercancel: "qx.event.type.Pointer",
|
|
226
216
|
|
|
227
217
|
/** This event if fired if a keyboard key is released. */
|
|
228
|
-
keyup
|
|
218
|
+
keyup: "qx.event.type.KeySequence",
|
|
229
219
|
|
|
230
220
|
/**
|
|
231
221
|
* This event if fired if a keyboard key is pressed down. This event is
|
|
232
222
|
* only fired once if the user keeps the key pressed for a while.
|
|
233
223
|
*/
|
|
234
|
-
keydown
|
|
224
|
+
keydown: "qx.event.type.KeySequence",
|
|
235
225
|
|
|
236
226
|
/**
|
|
237
227
|
* This event is fired any time a key is pressed. It will be repeated if
|
|
238
228
|
* the user keeps the key pressed. The pressed key can be determined using
|
|
239
229
|
* {@link qx.event.type.KeySequence#getKeyIdentifier}.
|
|
240
230
|
*/
|
|
241
|
-
keypress
|
|
231
|
+
keypress: "qx.event.type.KeySequence",
|
|
242
232
|
|
|
243
233
|
/**
|
|
244
234
|
* This event is fired if the pressed key or keys result in a printable
|
|
@@ -249,56 +239,50 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
249
239
|
* The unicode code of the pressed key can be read using
|
|
250
240
|
* {@link qx.event.type.KeyInput#getCharCode}.
|
|
251
241
|
*/
|
|
252
|
-
keyinput
|
|
253
|
-
|
|
254
|
-
|
|
242
|
+
keyinput: "qx.event.type.KeyInput",
|
|
255
243
|
|
|
256
244
|
/**
|
|
257
245
|
* The event is fired when the widget gets focused. Only widgets which are
|
|
258
246
|
* {@link #focusable} receive this event.
|
|
259
247
|
*/
|
|
260
|
-
focus
|
|
248
|
+
focus: "qx.event.type.Focus",
|
|
261
249
|
|
|
262
250
|
/**
|
|
263
251
|
* The event is fired when the widget gets blurred. Only widgets which are
|
|
264
252
|
* {@link #focusable} receive this event.
|
|
265
253
|
*/
|
|
266
|
-
blur
|
|
254
|
+
blur: "qx.event.type.Focus",
|
|
267
255
|
|
|
268
256
|
/**
|
|
269
257
|
* When the widget itself or any child of the widget receive the focus.
|
|
270
258
|
*/
|
|
271
|
-
focusin
|
|
259
|
+
focusin: "qx.event.type.Focus",
|
|
272
260
|
|
|
273
261
|
/**
|
|
274
262
|
* When the widget itself or any child of the widget lost the focus.
|
|
275
263
|
*/
|
|
276
|
-
focusout
|
|
264
|
+
focusout: "qx.event.type.Focus",
|
|
277
265
|
|
|
278
266
|
/**
|
|
279
267
|
* When the widget gets active (receives keyboard events etc.)
|
|
280
268
|
*/
|
|
281
|
-
activate
|
|
269
|
+
activate: "qx.event.type.Focus",
|
|
282
270
|
|
|
283
271
|
/**
|
|
284
272
|
* When the widget gets inactive
|
|
285
273
|
*/
|
|
286
|
-
deactivate
|
|
287
|
-
|
|
288
|
-
|
|
274
|
+
deactivate: "qx.event.type.Focus",
|
|
289
275
|
|
|
290
276
|
/**
|
|
291
277
|
* Fired if the widget becomes the capturing widget by a call to {@link #capture}.
|
|
292
278
|
*/
|
|
293
|
-
capture
|
|
279
|
+
capture: "qx.event.type.Event",
|
|
294
280
|
|
|
295
281
|
/**
|
|
296
282
|
* Fired if the widget looses the capturing mode by a call to
|
|
297
283
|
* {@link #releaseCapture} or a mouse click.
|
|
298
284
|
*/
|
|
299
|
-
losecapture
|
|
300
|
-
|
|
301
|
-
|
|
285
|
+
losecapture: "qx.event.type.Event",
|
|
302
286
|
|
|
303
287
|
/**
|
|
304
288
|
* Fired on the drop target when the drag&drop action is finished
|
|
@@ -308,7 +292,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
308
292
|
* Modeled after the WHATWG specification of Drag&Drop:
|
|
309
293
|
* http://www.whatwg.org/specs/web-apps/current-work/#dnd
|
|
310
294
|
*/
|
|
311
|
-
drop
|
|
295
|
+
drop: "qx.event.type.Drag",
|
|
312
296
|
|
|
313
297
|
/**
|
|
314
298
|
* Fired on a potential drop target when leaving it.
|
|
@@ -316,7 +300,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
316
300
|
* Modeled after the WHATWG specification of Drag&Drop:
|
|
317
301
|
* http://www.whatwg.org/specs/web-apps/current-work/#dnd
|
|
318
302
|
*/
|
|
319
|
-
dragleave
|
|
303
|
+
dragleave: "qx.event.type.Drag",
|
|
320
304
|
|
|
321
305
|
/**
|
|
322
306
|
* Fired on a potential drop target when reaching it via the pointer.
|
|
@@ -326,7 +310,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
326
310
|
* Modeled after the WHATWG specification of Drag&Drop:
|
|
327
311
|
* http://www.whatwg.org/specs/web-apps/current-work/#dnd
|
|
328
312
|
*/
|
|
329
|
-
dragover
|
|
313
|
+
dragover: "qx.event.type.Drag",
|
|
330
314
|
|
|
331
315
|
/**
|
|
332
316
|
* Fired during the drag. Contains the current pointer coordinates
|
|
@@ -336,7 +320,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
336
320
|
* Modeled after the WHATWG specification of Drag&Drop:
|
|
337
321
|
* http://www.whatwg.org/specs/web-apps/current-work/#dnd
|
|
338
322
|
*/
|
|
339
|
-
drag
|
|
323
|
+
drag: "qx.event.type.Drag",
|
|
340
324
|
|
|
341
325
|
/**
|
|
342
326
|
* Initiate the drag-and-drop operation. This event is cancelable
|
|
@@ -345,12 +329,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
345
329
|
* Modeled after the WHATWG specification of Drag&Drop:
|
|
346
330
|
* http://www.whatwg.org/specs/web-apps/current-work/#dnd
|
|
347
331
|
*/
|
|
348
|
-
dragstart
|
|
332
|
+
dragstart: "qx.event.type.Drag",
|
|
349
333
|
|
|
350
334
|
/**
|
|
351
335
|
* Fired on the source (drag) target every time a drag session was ended.
|
|
352
336
|
*/
|
|
353
|
-
dragend
|
|
337
|
+
dragend: "qx.event.type.Drag",
|
|
354
338
|
|
|
355
339
|
/**
|
|
356
340
|
* Fired when the drag configuration has been modified e.g. the user
|
|
@@ -359,7 +343,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
359
343
|
* droppable element, you can cancel the event and prevent a drop based on
|
|
360
344
|
* e.g. the current action.
|
|
361
345
|
*/
|
|
362
|
-
dragchange
|
|
346
|
+
dragchange: "qx.event.type.Drag",
|
|
363
347
|
|
|
364
348
|
/**
|
|
365
349
|
* Fired when the drop was successfully done and the target widget
|
|
@@ -367,21 +351,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
367
351
|
* respecting the selected action, to the event. This can be done using
|
|
368
352
|
* the event's {@link qx.event.type.Drag#addData} method.
|
|
369
353
|
*/
|
|
370
|
-
droprequest
|
|
354
|
+
droprequest: "qx.event.type.Drag"
|
|
371
355
|
},
|
|
372
356
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
357
|
/*
|
|
378
358
|
*****************************************************************************
|
|
379
359
|
PROPERTIES
|
|
380
360
|
*****************************************************************************
|
|
381
361
|
*/
|
|
382
362
|
|
|
383
|
-
properties
|
|
384
|
-
{
|
|
363
|
+
properties: {
|
|
385
364
|
/*
|
|
386
365
|
---------------------------------------------------------------------------
|
|
387
366
|
PADDING
|
|
@@ -389,45 +368,37 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
389
368
|
*/
|
|
390
369
|
|
|
391
370
|
/** Padding of the widget (top) */
|
|
392
|
-
paddingTop
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
themeable : true
|
|
371
|
+
paddingTop: {
|
|
372
|
+
check: "Integer",
|
|
373
|
+
init: 0,
|
|
374
|
+
apply: "_applyPadding",
|
|
375
|
+
themeable: true
|
|
398
376
|
},
|
|
399
377
|
|
|
400
|
-
|
|
401
378
|
/** Padding of the widget (right) */
|
|
402
|
-
paddingRight
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
themeable : true
|
|
379
|
+
paddingRight: {
|
|
380
|
+
check: "Integer",
|
|
381
|
+
init: 0,
|
|
382
|
+
apply: "_applyPadding",
|
|
383
|
+
themeable: true
|
|
408
384
|
},
|
|
409
385
|
|
|
410
|
-
|
|
411
386
|
/** Padding of the widget (bottom) */
|
|
412
|
-
paddingBottom
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
themeable : true
|
|
387
|
+
paddingBottom: {
|
|
388
|
+
check: "Integer",
|
|
389
|
+
init: 0,
|
|
390
|
+
apply: "_applyPadding",
|
|
391
|
+
themeable: true
|
|
418
392
|
},
|
|
419
393
|
|
|
420
|
-
|
|
421
394
|
/** Padding of the widget (left) */
|
|
422
|
-
paddingLeft
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
themeable : true
|
|
395
|
+
paddingLeft: {
|
|
396
|
+
check: "Integer",
|
|
397
|
+
init: 0,
|
|
398
|
+
apply: "_applyPadding",
|
|
399
|
+
themeable: true
|
|
428
400
|
},
|
|
429
401
|
|
|
430
|
-
|
|
431
402
|
/**
|
|
432
403
|
* The 'padding' property is a shorthand property for setting 'paddingTop',
|
|
433
404
|
* 'paddingRight', 'paddingBottom' and 'paddingLeft' at the same time.
|
|
@@ -436,18 +407,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
436
407
|
* If there is only one value, it applies to all sides, if there are two or three,
|
|
437
408
|
* the missing values are taken from the opposite side.
|
|
438
409
|
*/
|
|
439
|
-
padding
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
themeable : true
|
|
410
|
+
padding: {
|
|
411
|
+
group: ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"],
|
|
412
|
+
mode: "shorthand",
|
|
413
|
+
themeable: true
|
|
444
414
|
},
|
|
445
415
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
416
|
/*
|
|
452
417
|
---------------------------------------------------------------------------
|
|
453
418
|
STYLING PROPERTIES
|
|
@@ -458,17 +423,15 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
458
423
|
* The z-index property sets the stack order of an element. An element with
|
|
459
424
|
* greater stack order is always in front of another element with lower stack order.
|
|
460
425
|
*/
|
|
461
|
-
zIndex
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
themeable : true
|
|
426
|
+
zIndex: {
|
|
427
|
+
nullable: true,
|
|
428
|
+
init: 10,
|
|
429
|
+
apply: "_applyZIndex",
|
|
430
|
+
event: "changeZIndex",
|
|
431
|
+
check: "Integer",
|
|
432
|
+
themeable: true
|
|
469
433
|
},
|
|
470
434
|
|
|
471
|
-
|
|
472
435
|
/**
|
|
473
436
|
* The decorator property points to an object, which is responsible
|
|
474
437
|
* for drawing the widget's decoration, e.g. border, background or shadow.
|
|
@@ -476,60 +439,52 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
476
439
|
* This can be a decorator object or a string pointing to a decorator
|
|
477
440
|
* defined in the decoration theme.
|
|
478
441
|
*/
|
|
479
|
-
decorator
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
themeable : true
|
|
442
|
+
decorator: {
|
|
443
|
+
nullable: true,
|
|
444
|
+
init: null,
|
|
445
|
+
apply: "_applyDecorator",
|
|
446
|
+
event: "changeDecorator",
|
|
447
|
+
check: "Decorator",
|
|
448
|
+
themeable: true
|
|
487
449
|
},
|
|
488
450
|
|
|
489
|
-
|
|
490
451
|
/**
|
|
491
452
|
* The background color the rendered widget.
|
|
492
453
|
*/
|
|
493
|
-
backgroundColor
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
themeable : true
|
|
454
|
+
backgroundColor: {
|
|
455
|
+
nullable: true,
|
|
456
|
+
check: "Color",
|
|
457
|
+
apply: "_applyBackgroundColor",
|
|
458
|
+
event: "changeBackgroundColor",
|
|
459
|
+
themeable: true
|
|
500
460
|
},
|
|
501
461
|
|
|
502
|
-
|
|
503
462
|
/**
|
|
504
463
|
* The text color the rendered widget.
|
|
505
464
|
*/
|
|
506
|
-
textColor
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
inheritable : true
|
|
465
|
+
textColor: {
|
|
466
|
+
nullable: true,
|
|
467
|
+
check: "Color",
|
|
468
|
+
apply: "_applyTextColor",
|
|
469
|
+
event: "changeTextColor",
|
|
470
|
+
themeable: true,
|
|
471
|
+
inheritable: true
|
|
514
472
|
},
|
|
515
473
|
|
|
516
|
-
|
|
517
474
|
/**
|
|
518
475
|
* The widget's font. The value is either a font name defined in the font
|
|
519
476
|
* theme or an instance of {@link qx.bom.Font}.
|
|
520
477
|
*/
|
|
521
|
-
font
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
dereference : true
|
|
478
|
+
font: {
|
|
479
|
+
nullable: true,
|
|
480
|
+
apply: "_applyFont",
|
|
481
|
+
check: "Font",
|
|
482
|
+
event: "changeFont",
|
|
483
|
+
themeable: true,
|
|
484
|
+
inheritable: true,
|
|
485
|
+
dereference: true
|
|
530
486
|
},
|
|
531
487
|
|
|
532
|
-
|
|
533
488
|
/**
|
|
534
489
|
* Mapping to native style property opacity.
|
|
535
490
|
*
|
|
@@ -538,16 +493,14 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
538
493
|
* Any values outside the range 0.0 (fully transparent) to 1.0
|
|
539
494
|
* (fully opaque) will be clamped to this range.
|
|
540
495
|
*/
|
|
541
|
-
opacity
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
init : null
|
|
496
|
+
opacity: {
|
|
497
|
+
check: "Number",
|
|
498
|
+
apply: "_applyOpacity",
|
|
499
|
+
themeable: true,
|
|
500
|
+
nullable: true,
|
|
501
|
+
init: null
|
|
548
502
|
},
|
|
549
503
|
|
|
550
|
-
|
|
551
504
|
/**
|
|
552
505
|
* Mapping to native style property cursor.
|
|
553
506
|
*
|
|
@@ -574,17 +527,15 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
574
527
|
* <li>help </li>
|
|
575
528
|
* </ul>
|
|
576
529
|
*/
|
|
577
|
-
cursor
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
init : null
|
|
530
|
+
cursor: {
|
|
531
|
+
check: "String",
|
|
532
|
+
apply: "_applyCursor",
|
|
533
|
+
themeable: true,
|
|
534
|
+
inheritable: true,
|
|
535
|
+
nullable: true,
|
|
536
|
+
init: null
|
|
585
537
|
},
|
|
586
538
|
|
|
587
|
-
|
|
588
539
|
/**
|
|
589
540
|
* Sets the tooltip instance to use for this widget. If only the tooltip
|
|
590
541
|
* text and icon have to be set its better to use the {@link #toolTipText}
|
|
@@ -594,60 +545,52 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
594
545
|
* If this property is set the {@link #toolTipText} and {@link #toolTipIcon}
|
|
595
546
|
* properties are ignored.
|
|
596
547
|
*/
|
|
597
|
-
toolTip
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
nullable : true
|
|
548
|
+
toolTip: {
|
|
549
|
+
check: "qx.ui.tooltip.ToolTip",
|
|
550
|
+
nullable: true
|
|
601
551
|
},
|
|
602
552
|
|
|
603
|
-
|
|
604
553
|
/**
|
|
605
554
|
* The text of the widget's tooltip. This text can contain HTML markup.
|
|
606
555
|
* The text is displayed using a shared tooltip instance. If the tooltip
|
|
607
556
|
* must be customized beyond the text and an icon {@link #toolTipIcon}, the
|
|
608
557
|
* {@link #toolTip} property has to be used
|
|
609
558
|
*/
|
|
610
|
-
toolTipText
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
apply : "_applyToolTipText"
|
|
559
|
+
toolTipText: {
|
|
560
|
+
check: "String",
|
|
561
|
+
nullable: true,
|
|
562
|
+
event: "changeToolTipText",
|
|
563
|
+
apply: "_applyToolTipText"
|
|
616
564
|
},
|
|
617
565
|
|
|
618
|
-
|
|
619
566
|
/**
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
toolTipIcon
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
event : "changeToolTipText"
|
|
567
|
+
* The icon URI of the widget's tooltip. This icon is displayed using a shared
|
|
568
|
+
* tooltip instance. If the tooltip must be customized beyond the tooltip text
|
|
569
|
+
* {@link #toolTipText} and the icon, the {@link #toolTip} property has to be
|
|
570
|
+
* used.
|
|
571
|
+
*/
|
|
572
|
+
toolTipIcon: {
|
|
573
|
+
check: "String",
|
|
574
|
+
nullable: true,
|
|
575
|
+
event: "changeToolTipText"
|
|
630
576
|
},
|
|
631
577
|
|
|
632
578
|
/**
|
|
633
579
|
* Controls if a tooltip should shown or not.
|
|
634
580
|
*/
|
|
635
|
-
blockToolTip
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
init : false
|
|
581
|
+
blockToolTip: {
|
|
582
|
+
check: "Boolean",
|
|
583
|
+
init: false
|
|
639
584
|
},
|
|
640
585
|
|
|
641
586
|
/**
|
|
642
587
|
* Forces to show tooltip when widget is disabled.
|
|
643
588
|
*/
|
|
644
|
-
showToolTipWhenDisabled:
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
init : false
|
|
589
|
+
showToolTipWhenDisabled: {
|
|
590
|
+
check: "Boolean",
|
|
591
|
+
init: false
|
|
648
592
|
},
|
|
649
593
|
|
|
650
|
-
|
|
651
594
|
/*
|
|
652
595
|
---------------------------------------------------------------------------
|
|
653
596
|
MANAGEMENT PROPERTIES
|
|
@@ -664,31 +607,27 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
664
607
|
* widget was not a child of its parent.</li>
|
|
665
608
|
* </ul>
|
|
666
609
|
*/
|
|
667
|
-
visibility
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
event : "changeVisibility"
|
|
610
|
+
visibility: {
|
|
611
|
+
check: ["visible", "hidden", "excluded"],
|
|
612
|
+
init: "visible",
|
|
613
|
+
apply: "_applyVisibility",
|
|
614
|
+
event: "changeVisibility"
|
|
673
615
|
},
|
|
674
616
|
|
|
675
|
-
|
|
676
617
|
/**
|
|
677
618
|
* Whether the widget is enabled. Disabled widgets are usually grayed out
|
|
678
619
|
* and do not process user created events. While in the disabled state most
|
|
679
620
|
* user input events are blocked. Only the {@link #pointerover} and
|
|
680
621
|
* {@link #pointerout} events will be dispatched.
|
|
681
622
|
*/
|
|
682
|
-
enabled
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
event : "changeEnabled"
|
|
623
|
+
enabled: {
|
|
624
|
+
init: true,
|
|
625
|
+
check: "Boolean",
|
|
626
|
+
inheritable: true,
|
|
627
|
+
apply: "_applyEnabled",
|
|
628
|
+
event: "changeEnabled"
|
|
689
629
|
},
|
|
690
630
|
|
|
691
|
-
|
|
692
631
|
/**
|
|
693
632
|
* Whether the widget is anonymous.
|
|
694
633
|
*
|
|
@@ -698,14 +637,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
698
637
|
* especially true for widgets like checkboxes or buttons where the text
|
|
699
638
|
* or icon are handled synchronously for state changes to the outer widget.
|
|
700
639
|
*/
|
|
701
|
-
anonymous
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
apply : "_applyAnonymous"
|
|
640
|
+
anonymous: {
|
|
641
|
+
init: false,
|
|
642
|
+
check: "Boolean",
|
|
643
|
+
apply: "_applyAnonymous"
|
|
706
644
|
},
|
|
707
645
|
|
|
708
|
-
|
|
709
646
|
/**
|
|
710
647
|
* Defines the tab index of an widget. If widgets with tab indexes are part
|
|
711
648
|
* of the current focus root these elements are sorted in first priority. Afterwards
|
|
@@ -713,14 +650,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
713
650
|
*
|
|
714
651
|
* Please note: The value must be between 1 and 32000.
|
|
715
652
|
*/
|
|
716
|
-
tabIndex
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
apply : "_applyTabIndex"
|
|
653
|
+
tabIndex: {
|
|
654
|
+
check: "Integer",
|
|
655
|
+
nullable: true,
|
|
656
|
+
apply: "_applyTabIndex"
|
|
721
657
|
},
|
|
722
658
|
|
|
723
|
-
|
|
724
659
|
/**
|
|
725
660
|
* Whether the widget is focusable e.g. rendering a focus border and visualize
|
|
726
661
|
* as active element.
|
|
@@ -729,14 +664,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
729
664
|
* <code>isChecked</code> or other stuff to test whether the widget is
|
|
730
665
|
* reachable via the TAB key.
|
|
731
666
|
*/
|
|
732
|
-
focusable
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
apply : "_applyFocusable"
|
|
667
|
+
focusable: {
|
|
668
|
+
check: "Boolean",
|
|
669
|
+
init: false,
|
|
670
|
+
apply: "_applyFocusable"
|
|
737
671
|
},
|
|
738
672
|
|
|
739
|
-
|
|
740
673
|
/**
|
|
741
674
|
* If this property is enabled, the widget and all of its child widgets
|
|
742
675
|
* will never get focused. The focus keeps at the currently
|
|
@@ -746,14 +679,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
746
679
|
*
|
|
747
680
|
* This is mainly useful for widget authors. Please use with caution!
|
|
748
681
|
*/
|
|
749
|
-
keepFocus
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
apply : "_applyKeepFocus"
|
|
682
|
+
keepFocus: {
|
|
683
|
+
check: "Boolean",
|
|
684
|
+
init: false,
|
|
685
|
+
apply: "_applyKeepFocus"
|
|
754
686
|
},
|
|
755
687
|
|
|
756
|
-
|
|
757
688
|
/**
|
|
758
689
|
* If this property if enabled, the widget and all of its child widgets
|
|
759
690
|
* will never get activated. The activation keeps at the currently
|
|
@@ -761,32 +692,26 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
761
692
|
*
|
|
762
693
|
* This is mainly useful for widget authors. Please use with caution!
|
|
763
694
|
*/
|
|
764
|
-
keepActive
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
apply : "_applyKeepActive"
|
|
695
|
+
keepActive: {
|
|
696
|
+
check: "Boolean",
|
|
697
|
+
init: false,
|
|
698
|
+
apply: "_applyKeepActive"
|
|
769
699
|
},
|
|
770
700
|
|
|
771
|
-
|
|
772
701
|
/** Whether the widget acts as a source for drag&drop operations */
|
|
773
|
-
draggable
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
apply : "_applyDraggable"
|
|
702
|
+
draggable: {
|
|
703
|
+
check: "Boolean",
|
|
704
|
+
init: false,
|
|
705
|
+
apply: "_applyDraggable"
|
|
778
706
|
},
|
|
779
707
|
|
|
780
|
-
|
|
781
708
|
/** Whether the widget acts as a target for drag&drop operations */
|
|
782
|
-
droppable
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
apply : "_applyDroppable"
|
|
709
|
+
droppable: {
|
|
710
|
+
check: "Boolean",
|
|
711
|
+
init: false,
|
|
712
|
+
apply: "_applyDroppable"
|
|
787
713
|
},
|
|
788
714
|
|
|
789
|
-
|
|
790
715
|
/**
|
|
791
716
|
* Whether the widget contains content which may be selected by the user.
|
|
792
717
|
*
|
|
@@ -794,70 +719,61 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
794
719
|
* be used for text selection. But it is normally useful for
|
|
795
720
|
* forms fields, longer texts/documents, editors, etc.
|
|
796
721
|
*/
|
|
797
|
-
selectable
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
apply : "_applySelectable"
|
|
722
|
+
selectable: {
|
|
723
|
+
check: "Boolean",
|
|
724
|
+
init: false,
|
|
725
|
+
event: "changeSelectable",
|
|
726
|
+
apply: "_applySelectable"
|
|
803
727
|
},
|
|
804
728
|
|
|
805
|
-
|
|
806
729
|
/**
|
|
807
730
|
* Whether to show a context menu and which one
|
|
808
731
|
*/
|
|
809
|
-
contextMenu
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
event : "changeContextMenu"
|
|
732
|
+
contextMenu: {
|
|
733
|
+
check: "qx.ui.menu.Menu",
|
|
734
|
+
apply: "_applyContextMenu",
|
|
735
|
+
nullable: true,
|
|
736
|
+
event: "changeContextMenu"
|
|
815
737
|
},
|
|
816
738
|
|
|
817
|
-
|
|
818
739
|
/**
|
|
819
740
|
* Whether the native context menu should be enabled for this widget. To
|
|
820
741
|
* globally enable the native context menu set the {@link #nativeContextMenu}
|
|
821
742
|
* property of the root widget ({@link qx.ui.root.Abstract}) to
|
|
822
743
|
* <code>true</code>.
|
|
823
744
|
*/
|
|
824
|
-
nativeContextMenu
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
apply : "_applyNativeContextMenu"
|
|
745
|
+
nativeContextMenu: {
|
|
746
|
+
check: "Boolean",
|
|
747
|
+
init: false,
|
|
748
|
+
themeable: true,
|
|
749
|
+
event: "changeNativeContextMenu",
|
|
750
|
+
apply: "_applyNativeContextMenu"
|
|
831
751
|
},
|
|
832
752
|
|
|
833
|
-
|
|
834
753
|
/**
|
|
835
754
|
* The appearance ID. This ID is used to identify the appearance theme
|
|
836
755
|
* entry to use for this widget. This controls the styling of the element.
|
|
837
756
|
*/
|
|
838
|
-
appearance
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
event : "changeAppearance"
|
|
757
|
+
appearance: {
|
|
758
|
+
check: "String",
|
|
759
|
+
init: "widget",
|
|
760
|
+
apply: "_applyAppearance",
|
|
761
|
+
event: "changeAppearance"
|
|
844
762
|
}
|
|
845
763
|
},
|
|
846
764
|
|
|
847
|
-
|
|
848
765
|
/*
|
|
849
766
|
*****************************************************************************
|
|
850
767
|
STATICS
|
|
851
768
|
*****************************************************************************
|
|
852
769
|
*/
|
|
853
770
|
|
|
854
|
-
statics
|
|
855
|
-
{
|
|
771
|
+
statics: {
|
|
856
772
|
/** Whether the widget should print out hints and debug messages */
|
|
857
|
-
DEBUG
|
|
773
|
+
DEBUG: false,
|
|
858
774
|
|
|
859
775
|
/** Whether to throw an error on focus/blur if the widget is unfocusable */
|
|
860
|
-
UNFOCUSABLE_WIDGET_FOCUS_BLUR_ERROR
|
|
776
|
+
UNFOCUSABLE_WIDGET_FOCUS_BLUR_ERROR: true,
|
|
861
777
|
|
|
862
778
|
/**
|
|
863
779
|
* Returns the widget, which contains the given DOM element.
|
|
@@ -867,21 +783,23 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
867
783
|
* will not be returned.
|
|
868
784
|
* @return {qx.ui.core.Widget} The widget containing the element.
|
|
869
785
|
*/
|
|
870
|
-
getWidgetByElement
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
786
|
+
getWidgetByElement(element, considerAnonymousState) {
|
|
787
|
+
while (element) {
|
|
788
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
789
|
+
qx.core.Assert.assertTrue(
|
|
790
|
+
(!element.$$qxObjectHash && !element.$$qxObject) ||
|
|
791
|
+
(element.$$qxObject &&
|
|
792
|
+
element.$$qxObjectHash &&
|
|
793
|
+
element.$$qxObject.toHashCode() === element.$$qxObjectHash)
|
|
794
|
+
);
|
|
795
|
+
}
|
|
878
796
|
var widget = element.$$qxObject;
|
|
879
797
|
|
|
880
798
|
// check for anonymous widgets
|
|
881
799
|
if (widget) {
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
800
|
+
if (!considerAnonymousState || !widget.getAnonymous()) {
|
|
801
|
+
return widget;
|
|
802
|
+
}
|
|
885
803
|
}
|
|
886
804
|
|
|
887
805
|
// Fix for FF, which occasionally breaks (BUG#3525)
|
|
@@ -894,7 +812,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
894
812
|
return null;
|
|
895
813
|
},
|
|
896
814
|
|
|
897
|
-
|
|
898
815
|
/**
|
|
899
816
|
* Whether the "parent" widget contains the "child" widget.
|
|
900
817
|
*
|
|
@@ -902,10 +819,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
902
819
|
* @param child {qx.ui.core.Widget} The child widget
|
|
903
820
|
* @return {Boolean} Whether one of the "child"'s parents is "parent"
|
|
904
821
|
*/
|
|
905
|
-
contains
|
|
906
|
-
|
|
907
|
-
while (child)
|
|
908
|
-
{
|
|
822
|
+
contains(parent, child) {
|
|
823
|
+
while (child) {
|
|
909
824
|
child = child.getLayoutParent();
|
|
910
825
|
|
|
911
826
|
if (parent == child) {
|
|
@@ -917,26 +832,19 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
917
832
|
},
|
|
918
833
|
|
|
919
834
|
/** @type {Map} Contains all pooled separators for reuse */
|
|
920
|
-
__separatorPool
|
|
835
|
+
__separatorPool: new qx.util.ObjectPool()
|
|
921
836
|
},
|
|
922
837
|
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
838
|
/*
|
|
929
839
|
*****************************************************************************
|
|
930
840
|
MEMBERS
|
|
931
841
|
*****************************************************************************
|
|
932
842
|
*/
|
|
933
843
|
|
|
934
|
-
members
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
__toolTipTextListenerId : null,
|
|
939
|
-
|
|
844
|
+
members: {
|
|
845
|
+
__contentElement: null,
|
|
846
|
+
__initialAppearanceApplied: null,
|
|
847
|
+
__toolTipTextListenerId: null,
|
|
940
848
|
|
|
941
849
|
/*
|
|
942
850
|
---------------------------------------------------------------------------
|
|
@@ -947,15 +855,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
947
855
|
/**
|
|
948
856
|
* @type {qx.ui.layout.Abstract} The connected layout manager
|
|
949
857
|
*/
|
|
950
|
-
__layoutManager
|
|
951
|
-
|
|
858
|
+
__layoutManager: null,
|
|
952
859
|
|
|
953
860
|
// overridden
|
|
954
|
-
_getLayout
|
|
861
|
+
_getLayout() {
|
|
955
862
|
return this.__layoutManager;
|
|
956
863
|
},
|
|
957
864
|
|
|
958
|
-
|
|
959
865
|
/**
|
|
960
866
|
* Set a layout manager for the widget. A a layout manager can only be connected
|
|
961
867
|
* with one widget. Reset the connection with a previous widget first, if you
|
|
@@ -964,8 +870,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
964
870
|
* @param layout {qx.ui.layout.Abstract} The new layout or
|
|
965
871
|
* <code>null</code> to reset the layout.
|
|
966
872
|
*/
|
|
967
|
-
_setLayout
|
|
968
|
-
{
|
|
873
|
+
_setLayout(layout) {
|
|
969
874
|
if (qx.core.Environment.get("qx.debug")) {
|
|
970
875
|
if (layout) {
|
|
971
876
|
this.assertInstance(layout, qx.ui.layout.Abstract);
|
|
@@ -984,10 +889,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
984
889
|
qx.ui.core.queue.Layout.add(this);
|
|
985
890
|
},
|
|
986
891
|
|
|
987
|
-
|
|
988
892
|
// overridden
|
|
989
|
-
setLayoutParent
|
|
990
|
-
{
|
|
893
|
+
setLayoutParent(parent) {
|
|
991
894
|
if (this.$$parent === parent) {
|
|
992
895
|
return;
|
|
993
896
|
}
|
|
@@ -1011,15 +914,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1011
914
|
qx.ui.core.queue.Visibility.add(this);
|
|
1012
915
|
},
|
|
1013
916
|
|
|
1014
|
-
|
|
1015
917
|
/** @type {Boolean} Whether insets have changed and must be updated */
|
|
1016
|
-
_updateInsets
|
|
1017
|
-
|
|
918
|
+
_updateInsets: null,
|
|
1018
919
|
|
|
1019
920
|
// overridden
|
|
1020
|
-
renderLayout
|
|
1021
|
-
|
|
1022
|
-
var changes = this.base(arguments, left, top, width, height);
|
|
921
|
+
renderLayout(left, top, width, height) {
|
|
922
|
+
var changes = super.renderLayout(left, top, width, height);
|
|
1023
923
|
|
|
1024
924
|
// Directly return if superclass has detected that no
|
|
1025
925
|
// changes needs to be applied
|
|
@@ -1037,14 +937,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1037
937
|
|
|
1038
938
|
var contentStyles = {};
|
|
1039
939
|
// Move content to new position
|
|
1040
|
-
if (changes.position)
|
|
1041
|
-
{
|
|
940
|
+
if (changes.position) {
|
|
1042
941
|
contentStyles.left = left + pixel;
|
|
1043
942
|
contentStyles.top = top + pixel;
|
|
1044
943
|
}
|
|
1045
944
|
|
|
1046
|
-
if (inner || changes.margin)
|
|
1047
|
-
{
|
|
945
|
+
if (inner || changes.margin) {
|
|
1048
946
|
contentStyles.width = width + pixel;
|
|
1049
947
|
contentStyles.height = height + pixel;
|
|
1050
948
|
}
|
|
@@ -1053,17 +951,17 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1053
951
|
content.setStyles(contentStyles);
|
|
1054
952
|
}
|
|
1055
953
|
|
|
1056
|
-
if (inner || changes.local || changes.margin)
|
|
1057
|
-
{
|
|
954
|
+
if (inner || changes.local || changes.margin) {
|
|
1058
955
|
if (this.__layoutManager && this.hasLayoutChildren()) {
|
|
1059
956
|
var inset = this.getInsets();
|
|
1060
957
|
var innerWidth = width - inset.left - inset.right;
|
|
1061
958
|
var innerHeight = height - inset.top - inset.bottom;
|
|
1062
959
|
|
|
1063
960
|
var decorator = this.getDecorator();
|
|
1064
|
-
var decoratorPadding = {left: 0, right: 0, top: 0, bottom: 0};
|
|
961
|
+
var decoratorPadding = { left: 0, right: 0, top: 0, bottom: 0 };
|
|
1065
962
|
if (decorator) {
|
|
1066
|
-
decorator =
|
|
963
|
+
decorator =
|
|
964
|
+
qx.theme.manager.Decoration.getInstance().resolve(decorator);
|
|
1067
965
|
decoratorPadding = decorator.getPadding();
|
|
1068
966
|
}
|
|
1069
967
|
|
|
@@ -1071,14 +969,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1071
969
|
top: this.getPaddingTop() + decoratorPadding.top,
|
|
1072
970
|
right: this.getPaddingRight() + decoratorPadding.right,
|
|
1073
971
|
bottom: this.getPaddingBottom() + decoratorPadding.bottom,
|
|
1074
|
-
left
|
|
972
|
+
left: this.getPaddingLeft() + decoratorPadding.left
|
|
1075
973
|
};
|
|
1076
974
|
|
|
1077
975
|
this.__layoutManager.renderLayout(innerWidth, innerHeight, padding);
|
|
1078
976
|
} else if (this.hasLayoutChildren()) {
|
|
1079
|
-
throw new Error(
|
|
1080
|
-
|
|
1081
|
-
|
|
977
|
+
throw new Error(
|
|
978
|
+
"At least one child in control " +
|
|
979
|
+
this._findTopControl() +
|
|
980
|
+
" requires a layout, but no one was defined!"
|
|
981
|
+
);
|
|
1082
982
|
}
|
|
1083
983
|
}
|
|
1084
984
|
|
|
@@ -1097,26 +997,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1097
997
|
return changes;
|
|
1098
998
|
},
|
|
1099
999
|
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
1000
|
/*
|
|
1110
1001
|
---------------------------------------------------------------------------
|
|
1111
1002
|
SEPARATOR SUPPORT
|
|
1112
1003
|
---------------------------------------------------------------------------
|
|
1113
1004
|
*/
|
|
1114
1005
|
|
|
1115
|
-
__separators
|
|
1006
|
+
__separators: null,
|
|
1116
1007
|
|
|
1117
1008
|
// overridden
|
|
1118
|
-
clearSeparators
|
|
1119
|
-
{
|
|
1009
|
+
clearSeparators() {
|
|
1120
1010
|
var reg = this.__separators;
|
|
1121
1011
|
if (!reg) {
|
|
1122
1012
|
return;
|
|
@@ -1126,8 +1016,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1126
1016
|
var content = this.getContentElement();
|
|
1127
1017
|
var widget;
|
|
1128
1018
|
|
|
1129
|
-
for (var i=0, l=reg.length; i<l; i++)
|
|
1130
|
-
{
|
|
1019
|
+
for (var i = 0, l = reg.length; i < l; i++) {
|
|
1131
1020
|
widget = reg[i];
|
|
1132
1021
|
pool.poolObject(widget);
|
|
1133
1022
|
content.remove(widget.getContentElement());
|
|
@@ -1137,15 +1026,17 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1137
1026
|
reg.length = 0;
|
|
1138
1027
|
},
|
|
1139
1028
|
|
|
1140
|
-
|
|
1141
1029
|
// overridden
|
|
1142
|
-
renderSeparator
|
|
1143
|
-
{
|
|
1030
|
+
renderSeparator(separator, bounds) {
|
|
1144
1031
|
// Insert
|
|
1145
|
-
var widget = qx.ui.core.Widget.__separatorPool.getObject(
|
|
1032
|
+
var widget = qx.ui.core.Widget.__separatorPool.getObject(
|
|
1033
|
+
qx.ui.core.Widget
|
|
1034
|
+
);
|
|
1035
|
+
|
|
1146
1036
|
widget.set({
|
|
1147
1037
|
decorator: separator
|
|
1148
1038
|
});
|
|
1039
|
+
|
|
1149
1040
|
var elem = widget.getContentElement();
|
|
1150
1041
|
this.getContentElement().add(elem);
|
|
1151
1042
|
|
|
@@ -1160,10 +1051,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1160
1051
|
domEl.style.height = bounds.height + "px";
|
|
1161
1052
|
} else {
|
|
1162
1053
|
elem.setStyles({
|
|
1163
|
-
left
|
|
1164
|
-
top
|
|
1165
|
-
width
|
|
1166
|
-
height
|
|
1054
|
+
left: bounds.left + "px",
|
|
1055
|
+
top: bounds.top + "px",
|
|
1056
|
+
width: bounds.width + "px",
|
|
1057
|
+
height: bounds.height + "px"
|
|
1167
1058
|
});
|
|
1168
1059
|
}
|
|
1169
1060
|
|
|
@@ -1174,12 +1065,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1174
1065
|
this.__separators.push(widget);
|
|
1175
1066
|
},
|
|
1176
1067
|
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
1068
|
/*
|
|
1184
1069
|
---------------------------------------------------------------------------
|
|
1185
1070
|
SIZE HINTS
|
|
@@ -1187,8 +1072,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1187
1072
|
*/
|
|
1188
1073
|
|
|
1189
1074
|
// overridden
|
|
1190
|
-
_computeSizeHint
|
|
1191
|
-
{
|
|
1075
|
+
_computeSizeHint() {
|
|
1192
1076
|
// Start with the user defined values
|
|
1193
1077
|
var width = this.getWidth();
|
|
1194
1078
|
var minWidth = this.getMinWidth();
|
|
@@ -1198,13 +1082,18 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1198
1082
|
var minHeight = this.getMinHeight();
|
|
1199
1083
|
var maxHeight = this.getMaxHeight();
|
|
1200
1084
|
|
|
1201
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
1202
|
-
{
|
|
1085
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
1203
1086
|
if (minWidth !== null && maxWidth !== null) {
|
|
1204
|
-
this.assert(
|
|
1087
|
+
this.assert(
|
|
1088
|
+
minWidth <= maxWidth,
|
|
1089
|
+
"minWidth is larger than maxWidth!"
|
|
1090
|
+
);
|
|
1205
1091
|
}
|
|
1206
1092
|
if (minHeight !== null && maxHeight !== null) {
|
|
1207
|
-
this.assert(
|
|
1093
|
+
this.assert(
|
|
1094
|
+
minHeight <= maxHeight,
|
|
1095
|
+
"minHeight is larger than maxHeight!"
|
|
1096
|
+
);
|
|
1208
1097
|
}
|
|
1209
1098
|
}
|
|
1210
1099
|
|
|
@@ -1223,8 +1112,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1223
1112
|
height = contentHint.height + insetY;
|
|
1224
1113
|
}
|
|
1225
1114
|
|
|
1226
|
-
if (minWidth == null)
|
|
1227
|
-
{
|
|
1115
|
+
if (minWidth == null) {
|
|
1228
1116
|
minWidth = insetX;
|
|
1229
1117
|
|
|
1230
1118
|
if (contentHint.minWidth != null) {
|
|
@@ -1236,8 +1124,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1236
1124
|
}
|
|
1237
1125
|
}
|
|
1238
1126
|
|
|
1239
|
-
if (minHeight == null)
|
|
1240
|
-
{
|
|
1127
|
+
if (minHeight == null) {
|
|
1241
1128
|
minHeight = insetY;
|
|
1242
1129
|
|
|
1243
1130
|
if (contentHint.minHeight != null) {
|
|
@@ -1249,8 +1136,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1249
1136
|
}
|
|
1250
1137
|
}
|
|
1251
1138
|
|
|
1252
|
-
if (maxWidth == null)
|
|
1253
|
-
{
|
|
1139
|
+
if (maxWidth == null) {
|
|
1254
1140
|
if (contentHint.maxWidth == null) {
|
|
1255
1141
|
maxWidth = Infinity;
|
|
1256
1142
|
} else {
|
|
@@ -1262,8 +1148,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1262
1148
|
}
|
|
1263
1149
|
}
|
|
1264
1150
|
|
|
1265
|
-
if (maxHeight == null)
|
|
1266
|
-
{
|
|
1151
|
+
if (maxHeight == null) {
|
|
1267
1152
|
if (contentHint.maxHeight == null) {
|
|
1268
1153
|
maxHeight = Infinity;
|
|
1269
1154
|
} else {
|
|
@@ -1277,27 +1162,24 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1277
1162
|
|
|
1278
1163
|
// Build size hint and return
|
|
1279
1164
|
return {
|
|
1280
|
-
width
|
|
1281
|
-
minWidth
|
|
1282
|
-
maxWidth
|
|
1283
|
-
height
|
|
1284
|
-
minHeight
|
|
1285
|
-
maxHeight
|
|
1165
|
+
width: width,
|
|
1166
|
+
minWidth: minWidth,
|
|
1167
|
+
maxWidth: maxWidth,
|
|
1168
|
+
height: height,
|
|
1169
|
+
minHeight: minHeight,
|
|
1170
|
+
maxHeight: maxHeight
|
|
1286
1171
|
};
|
|
1287
1172
|
},
|
|
1288
1173
|
|
|
1289
|
-
|
|
1290
1174
|
// overridden
|
|
1291
|
-
invalidateLayoutCache
|
|
1292
|
-
|
|
1293
|
-
this.base(arguments);
|
|
1175
|
+
invalidateLayoutCache() {
|
|
1176
|
+
super.invalidateLayoutCache();
|
|
1294
1177
|
|
|
1295
1178
|
if (this.__layoutManager) {
|
|
1296
1179
|
this.__layoutManager.invalidateLayoutCache();
|
|
1297
1180
|
}
|
|
1298
1181
|
},
|
|
1299
1182
|
|
|
1300
|
-
|
|
1301
1183
|
/**
|
|
1302
1184
|
* Returns the recommended/natural dimensions of the widget's content.
|
|
1303
1185
|
*
|
|
@@ -1310,46 +1192,38 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1310
1192
|
*
|
|
1311
1193
|
* @return {Map}
|
|
1312
1194
|
*/
|
|
1313
|
-
_getContentHint
|
|
1314
|
-
{
|
|
1195
|
+
_getContentHint() {
|
|
1315
1196
|
var layout = this.__layoutManager;
|
|
1316
|
-
if (layout)
|
|
1317
|
-
|
|
1318
|
-
if (this.hasLayoutChildren())
|
|
1319
|
-
{
|
|
1197
|
+
if (layout) {
|
|
1198
|
+
if (this.hasLayoutChildren()) {
|
|
1320
1199
|
var hint = layout.getSizeHint();
|
|
1321
1200
|
|
|
1322
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
1323
|
-
|
|
1324
|
-
|
|
1201
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
1202
|
+
var msg =
|
|
1203
|
+
"The layout of the widget" +
|
|
1204
|
+
this.toString() +
|
|
1325
1205
|
" returned an invalid size hint!";
|
|
1326
1206
|
this.assertInteger(hint.width, "Wrong 'left' argument. " + msg);
|
|
1327
1207
|
this.assertInteger(hint.height, "Wrong 'top' argument. " + msg);
|
|
1328
1208
|
}
|
|
1329
1209
|
|
|
1330
1210
|
return hint;
|
|
1331
|
-
}
|
|
1332
|
-
else
|
|
1333
|
-
{
|
|
1211
|
+
} else {
|
|
1334
1212
|
return {
|
|
1335
|
-
width
|
|
1336
|
-
height
|
|
1213
|
+
width: 0,
|
|
1214
|
+
height: 0
|
|
1337
1215
|
};
|
|
1338
1216
|
}
|
|
1339
|
-
}
|
|
1340
|
-
else
|
|
1341
|
-
{
|
|
1217
|
+
} else {
|
|
1342
1218
|
return {
|
|
1343
|
-
width
|
|
1344
|
-
height
|
|
1219
|
+
width: 100,
|
|
1220
|
+
height: 50
|
|
1345
1221
|
};
|
|
1346
1222
|
}
|
|
1347
1223
|
},
|
|
1348
1224
|
|
|
1349
|
-
|
|
1350
1225
|
// overridden
|
|
1351
|
-
_getHeightForWidth
|
|
1352
|
-
{
|
|
1226
|
+
_getHeightForWidth(width) {
|
|
1353
1227
|
// Prepare insets
|
|
1354
1228
|
var insets = this.getInsets();
|
|
1355
1229
|
|
|
@@ -1360,7 +1234,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1360
1234
|
var contentWidth = width - insetX;
|
|
1361
1235
|
|
|
1362
1236
|
// Compute height
|
|
1363
|
-
var contentHeight =
|
|
1237
|
+
var contentHeight = 0;
|
|
1364
1238
|
var layout = this._getLayout();
|
|
1365
1239
|
if (layout && layout.hasHeightForWidth()) {
|
|
1366
1240
|
contentHeight = layout.getHeightForWidth(contentWidth);
|
|
@@ -1374,7 +1248,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1374
1248
|
return height;
|
|
1375
1249
|
},
|
|
1376
1250
|
|
|
1377
|
-
|
|
1378
1251
|
/**
|
|
1379
1252
|
* Returns the computed height for the given width.
|
|
1380
1253
|
*
|
|
@@ -1382,15 +1255,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1382
1255
|
* @param width {Integer} Incoming width (as limitation)
|
|
1383
1256
|
* @return {Integer} Computed height while respecting the given width.
|
|
1384
1257
|
*/
|
|
1385
|
-
_getContentHeightForWidth
|
|
1258
|
+
_getContentHeightForWidth(width) {
|
|
1386
1259
|
throw new Error("Abstract method call: _getContentHeightForWidth()!");
|
|
1387
1260
|
},
|
|
1388
1261
|
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
1262
|
/*
|
|
1395
1263
|
---------------------------------------------------------------------------
|
|
1396
1264
|
INSET CALCULATION SUPPORT
|
|
@@ -1403,30 +1271,34 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1403
1271
|
* @return {Map} Contains the keys <code>top</code>, <code>right</code>,
|
|
1404
1272
|
* <code>bottom</code> and <code>left</code>. All values are integers.
|
|
1405
1273
|
*/
|
|
1406
|
-
getInsets
|
|
1407
|
-
{
|
|
1274
|
+
getInsets() {
|
|
1408
1275
|
var top = this.getPaddingTop();
|
|
1409
1276
|
var right = this.getPaddingRight();
|
|
1410
1277
|
var bottom = this.getPaddingBottom();
|
|
1411
1278
|
var left = this.getPaddingLeft();
|
|
1412
1279
|
if (this.getDecorator()) {
|
|
1413
|
-
var decorator = qx.theme.manager.Decoration.getInstance().resolve(
|
|
1280
|
+
var decorator = qx.theme.manager.Decoration.getInstance().resolve(
|
|
1281
|
+
this.getDecorator()
|
|
1282
|
+
);
|
|
1283
|
+
|
|
1414
1284
|
var inset = decorator.getInsets();
|
|
1415
1285
|
|
|
1416
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
1417
|
-
{
|
|
1286
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
1418
1287
|
this.assertNumber(
|
|
1419
1288
|
inset.top,
|
|
1420
1289
|
"Invalid top decorator inset detected: " + inset.top
|
|
1421
1290
|
);
|
|
1291
|
+
|
|
1422
1292
|
this.assertNumber(
|
|
1423
1293
|
inset.right,
|
|
1424
1294
|
"Invalid right decorator inset detected: " + inset.right
|
|
1425
1295
|
);
|
|
1296
|
+
|
|
1426
1297
|
this.assertNumber(
|
|
1427
1298
|
inset.bottom,
|
|
1428
1299
|
"Invalid bottom decorator inset detected: " + inset.bottom
|
|
1429
1300
|
);
|
|
1301
|
+
|
|
1430
1302
|
this.assertNumber(
|
|
1431
1303
|
inset.left,
|
|
1432
1304
|
"Invalid left decorator inset detected: " + inset.left
|
|
@@ -1440,17 +1312,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1440
1312
|
}
|
|
1441
1313
|
|
|
1442
1314
|
return {
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1315
|
+
top: top,
|
|
1316
|
+
right: right,
|
|
1317
|
+
bottom: bottom,
|
|
1318
|
+
left: left
|
|
1447
1319
|
};
|
|
1448
1320
|
},
|
|
1449
1321
|
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
1322
|
/*
|
|
1455
1323
|
---------------------------------------------------------------------------
|
|
1456
1324
|
COMPUTED LAYOUT SUPPORT
|
|
@@ -1467,8 +1335,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1467
1335
|
* @return {Map} The widget inner dimension in pixel (if the layout is
|
|
1468
1336
|
* valid). Contains the keys <code>width</code> and <code>height</code>.
|
|
1469
1337
|
*/
|
|
1470
|
-
getInnerSize
|
|
1471
|
-
{
|
|
1338
|
+
getInnerSize() {
|
|
1472
1339
|
var computed = this.getBounds();
|
|
1473
1340
|
if (!computed) {
|
|
1474
1341
|
return null;
|
|
@@ -1477,15 +1344,11 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1477
1344
|
// Return map data
|
|
1478
1345
|
var insets = this.getInsets();
|
|
1479
1346
|
return {
|
|
1480
|
-
width
|
|
1481
|
-
height
|
|
1347
|
+
width: computed.width - insets.left - insets.right,
|
|
1348
|
+
height: computed.height - insets.top - insets.bottom
|
|
1482
1349
|
};
|
|
1483
1350
|
},
|
|
1484
1351
|
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
1352
|
/*
|
|
1490
1353
|
---------------------------------------------------------------------------
|
|
1491
1354
|
ANIMATION SUPPORT: USER API
|
|
@@ -1498,7 +1361,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1498
1361
|
* @return {qx.bom.element.AnimationHandle} The animation handle to react for
|
|
1499
1362
|
* the fade animation.
|
|
1500
1363
|
*/
|
|
1501
|
-
fadeOut
|
|
1364
|
+
fadeOut(duration) {
|
|
1502
1365
|
return this.getContentElement().fadeOut(duration);
|
|
1503
1366
|
},
|
|
1504
1367
|
|
|
@@ -1508,11 +1371,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1508
1371
|
* @return {qx.bom.element.AnimationHandle} The animation handle to react for
|
|
1509
1372
|
* the fade animation.
|
|
1510
1373
|
*/
|
|
1511
|
-
fadeIn
|
|
1374
|
+
fadeIn(duration) {
|
|
1512
1375
|
return this.getContentElement().fadeIn(duration);
|
|
1513
1376
|
},
|
|
1514
1377
|
|
|
1515
|
-
|
|
1516
1378
|
/*
|
|
1517
1379
|
---------------------------------------------------------------------------
|
|
1518
1380
|
VISIBILITY SUPPORT: USER API
|
|
@@ -1520,7 +1382,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1520
1382
|
*/
|
|
1521
1383
|
|
|
1522
1384
|
// property apply
|
|
1523
|
-
_applyAnonymous
|
|
1385
|
+
_applyAnonymous(value) {
|
|
1524
1386
|
if (value) {
|
|
1525
1387
|
this.getContentElement().setAttribute("qxanonymous", "true");
|
|
1526
1388
|
} else {
|
|
@@ -1528,34 +1390,30 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1528
1390
|
}
|
|
1529
1391
|
},
|
|
1530
1392
|
|
|
1531
|
-
|
|
1532
1393
|
/**
|
|
1533
1394
|
* Make this widget visible.
|
|
1534
1395
|
*
|
|
1535
1396
|
*/
|
|
1536
|
-
show
|
|
1397
|
+
show() {
|
|
1537
1398
|
this.setVisibility("visible");
|
|
1538
1399
|
},
|
|
1539
1400
|
|
|
1540
|
-
|
|
1541
1401
|
/**
|
|
1542
1402
|
* Hide this widget.
|
|
1543
1403
|
*
|
|
1544
1404
|
*/
|
|
1545
|
-
hide
|
|
1405
|
+
hide() {
|
|
1546
1406
|
this.setVisibility("hidden");
|
|
1547
1407
|
},
|
|
1548
1408
|
|
|
1549
|
-
|
|
1550
1409
|
/**
|
|
1551
1410
|
* Hide this widget and exclude it from the underlying layout.
|
|
1552
1411
|
*
|
|
1553
1412
|
*/
|
|
1554
|
-
exclude
|
|
1413
|
+
exclude() {
|
|
1555
1414
|
this.setVisibility("excluded");
|
|
1556
1415
|
},
|
|
1557
1416
|
|
|
1558
|
-
|
|
1559
1417
|
/**
|
|
1560
1418
|
* Whether the widget is locally visible.
|
|
1561
1419
|
*
|
|
@@ -1563,11 +1421,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1563
1421
|
*
|
|
1564
1422
|
* @return {Boolean} Returns <code>true</code> when the widget is visible
|
|
1565
1423
|
*/
|
|
1566
|
-
isVisible
|
|
1424
|
+
isVisible() {
|
|
1567
1425
|
return this.getVisibility() === "visible";
|
|
1568
1426
|
},
|
|
1569
1427
|
|
|
1570
|
-
|
|
1571
1428
|
/**
|
|
1572
1429
|
* Whether the widget is locally hidden.
|
|
1573
1430
|
*
|
|
@@ -1575,11 +1432,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1575
1432
|
*
|
|
1576
1433
|
* @return {Boolean} Returns <code>true</code> when the widget is hidden
|
|
1577
1434
|
*/
|
|
1578
|
-
isHidden
|
|
1435
|
+
isHidden() {
|
|
1579
1436
|
return this.getVisibility() !== "visible";
|
|
1580
1437
|
},
|
|
1581
1438
|
|
|
1582
|
-
|
|
1583
1439
|
/**
|
|
1584
1440
|
* Whether the widget is locally excluded.
|
|
1585
1441
|
*
|
|
@@ -1587,11 +1443,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1587
1443
|
*
|
|
1588
1444
|
* @return {Boolean} Returns <code>true</code> when the widget is excluded
|
|
1589
1445
|
*/
|
|
1590
|
-
isExcluded
|
|
1446
|
+
isExcluded() {
|
|
1591
1447
|
return this.getVisibility() === "excluded";
|
|
1592
1448
|
},
|
|
1593
1449
|
|
|
1594
|
-
|
|
1595
1450
|
/**
|
|
1596
1451
|
* Detects if the widget and all its parents are visible.
|
|
1597
1452
|
*
|
|
@@ -1600,8 +1455,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1600
1455
|
*
|
|
1601
1456
|
* @return {Boolean} true, if the widget is currently on the screen
|
|
1602
1457
|
*/
|
|
1603
|
-
isSeeable
|
|
1604
|
-
{
|
|
1458
|
+
isSeeable() {
|
|
1605
1459
|
// Flush the queues because to detect if the widget ins visible, the
|
|
1606
1460
|
// queues need to be flushed (see bug #5254)
|
|
1607
1461
|
qx.ui.core.queue.Manager.flush();
|
|
@@ -1615,41 +1469,34 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1615
1469
|
return false;
|
|
1616
1470
|
},
|
|
1617
1471
|
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
1472
|
/*
|
|
1622
1473
|
---------------------------------------------------------------------------
|
|
1623
1474
|
CREATION OF HTML ELEMENTS
|
|
1624
1475
|
---------------------------------------------------------------------------
|
|
1625
1476
|
*/
|
|
1626
1477
|
|
|
1627
|
-
|
|
1628
1478
|
/**
|
|
1629
1479
|
* Create the widget's content HTML element.
|
|
1630
1480
|
*
|
|
1631
1481
|
* @return {qx.html.Element} The content HTML element
|
|
1632
1482
|
*/
|
|
1633
|
-
__createContentElement
|
|
1634
|
-
{
|
|
1483
|
+
__createContentElement() {
|
|
1635
1484
|
var el = this._createContentElement();
|
|
1636
1485
|
el.connectObject(this);
|
|
1637
1486
|
|
|
1638
1487
|
// make sure to allow all pointer events
|
|
1639
|
-
el.setStyles({"touch-action": "none", "-ms-touch-action"
|
|
1488
|
+
el.setStyles({ "touch-action": "none", "-ms-touch-action": "none" });
|
|
1640
1489
|
|
|
1641
1490
|
if (qx.core.Environment.get("qx.debug")) {
|
|
1642
1491
|
el.setAttribute("qxClass", this.classname);
|
|
1643
1492
|
}
|
|
1644
1493
|
|
|
1645
1494
|
var styles = {
|
|
1646
|
-
|
|
1647
|
-
|
|
1495
|
+
zIndex: 10,
|
|
1496
|
+
boxSizing: "border-box"
|
|
1648
1497
|
};
|
|
1649
1498
|
|
|
1650
|
-
if (!qx.ui.root.Inline ||
|
|
1651
|
-
!(this instanceof qx.ui.root.Inline))
|
|
1652
|
-
{
|
|
1499
|
+
if (!qx.ui.root.Inline || !(this instanceof qx.ui.root.Inline)) {
|
|
1653
1500
|
styles.position = "absolute";
|
|
1654
1501
|
}
|
|
1655
1502
|
|
|
@@ -1658,7 +1505,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1658
1505
|
return el;
|
|
1659
1506
|
},
|
|
1660
1507
|
|
|
1661
|
-
|
|
1662
1508
|
/**
|
|
1663
1509
|
* Creates the content element. The style properties
|
|
1664
1510
|
* position and zIndex are modified from the Widget
|
|
@@ -1669,26 +1515,23 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1669
1515
|
*
|
|
1670
1516
|
* @return {qx.html.Element} The widget's content element
|
|
1671
1517
|
*/
|
|
1672
|
-
_createContentElement
|
|
1673
|
-
{
|
|
1518
|
+
_createContentElement() {
|
|
1674
1519
|
return new qx.html.Element("div", {
|
|
1675
1520
|
overflowX: "hidden",
|
|
1676
1521
|
overflowY: "hidden"
|
|
1677
1522
|
});
|
|
1678
1523
|
},
|
|
1679
1524
|
|
|
1680
|
-
|
|
1681
1525
|
/**
|
|
1682
1526
|
* Returns the element wrapper of the widget's content element.
|
|
1683
1527
|
* This method exposes widget internal and must be used with caution!
|
|
1684
1528
|
*
|
|
1685
1529
|
* @return {qx.html.Element} The widget's content element
|
|
1686
1530
|
*/
|
|
1687
|
-
getContentElement
|
|
1531
|
+
getContentElement() {
|
|
1688
1532
|
return this.__contentElement;
|
|
1689
1533
|
},
|
|
1690
1534
|
|
|
1691
|
-
|
|
1692
1535
|
/*
|
|
1693
1536
|
---------------------------------------------------------------------------
|
|
1694
1537
|
CHILDREN HANDLING
|
|
@@ -1696,8 +1539,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1696
1539
|
*/
|
|
1697
1540
|
|
|
1698
1541
|
/** @type {qx.ui.core.LayoutItem[]} List of all child widgets */
|
|
1699
|
-
__widgetChildren
|
|
1700
|
-
|
|
1542
|
+
__widgetChildren: null,
|
|
1701
1543
|
|
|
1702
1544
|
/**
|
|
1703
1545
|
* Returns all children, which are layout relevant. This excludes all widgets,
|
|
@@ -1706,19 +1548,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1706
1548
|
* @internal
|
|
1707
1549
|
* @return {qx.ui.core.Widget[]} All layout relevant children.
|
|
1708
1550
|
*/
|
|
1709
|
-
getLayoutChildren
|
|
1710
|
-
{
|
|
1551
|
+
getLayoutChildren() {
|
|
1711
1552
|
var children = this.__widgetChildren;
|
|
1712
1553
|
if (!children) {
|
|
1713
1554
|
return this.__emptyChildren;
|
|
1714
1555
|
}
|
|
1715
1556
|
|
|
1716
1557
|
var layoutChildren;
|
|
1717
|
-
for (var i=0, l=children.length; i<l; i++)
|
|
1718
|
-
{
|
|
1558
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
1719
1559
|
var child = children[i];
|
|
1720
|
-
if (child.hasUserBounds() || child.isExcluded())
|
|
1721
|
-
{
|
|
1560
|
+
if (child.hasUserBounds() || child.isExcluded()) {
|
|
1722
1561
|
if (layoutChildren == null) {
|
|
1723
1562
|
layoutChildren = children.concat();
|
|
1724
1563
|
}
|
|
@@ -1730,21 +1569,18 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1730
1569
|
return layoutChildren || children;
|
|
1731
1570
|
},
|
|
1732
1571
|
|
|
1733
|
-
|
|
1734
1572
|
/**
|
|
1735
1573
|
* Marks the layout of this widget as invalid and triggers a layout update.
|
|
1736
1574
|
* This is a shortcut for <code>qx.ui.core.queue.Layout.add(this);</code>.
|
|
1737
1575
|
*/
|
|
1738
|
-
scheduleLayoutUpdate
|
|
1576
|
+
scheduleLayoutUpdate() {
|
|
1739
1577
|
qx.ui.core.queue.Layout.add(this);
|
|
1740
1578
|
},
|
|
1741
1579
|
|
|
1742
|
-
|
|
1743
1580
|
/**
|
|
1744
1581
|
* Resets the cache for children which should be laid out.
|
|
1745
1582
|
*/
|
|
1746
|
-
invalidateLayoutChildren
|
|
1747
|
-
{
|
|
1583
|
+
invalidateLayoutChildren() {
|
|
1748
1584
|
var layout = this.__layoutManager;
|
|
1749
1585
|
if (layout) {
|
|
1750
1586
|
layout.invalidateChildrenCache();
|
|
@@ -1753,7 +1589,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1753
1589
|
qx.ui.core.queue.Layout.add(this);
|
|
1754
1590
|
},
|
|
1755
1591
|
|
|
1756
|
-
|
|
1757
1592
|
/**
|
|
1758
1593
|
* Returns whether the layout has children, which are layout relevant. This
|
|
1759
1594
|
* excludes all widgets, which have a {@link qx.ui.core.Widget#visibility}
|
|
@@ -1761,16 +1596,14 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1761
1596
|
*
|
|
1762
1597
|
* @return {Boolean} Whether the layout has layout relevant children
|
|
1763
1598
|
*/
|
|
1764
|
-
hasLayoutChildren
|
|
1765
|
-
{
|
|
1599
|
+
hasLayoutChildren() {
|
|
1766
1600
|
var children = this.__widgetChildren;
|
|
1767
1601
|
if (!children) {
|
|
1768
1602
|
return false;
|
|
1769
1603
|
}
|
|
1770
1604
|
|
|
1771
1605
|
var child;
|
|
1772
|
-
for (var i=0, l=children.length; i<l; i++)
|
|
1773
|
-
{
|
|
1606
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
1774
1607
|
child = children[i];
|
|
1775
1608
|
if (!child.hasUserBounds() && !child.isExcluded()) {
|
|
1776
1609
|
return true;
|
|
@@ -1780,7 +1613,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1780
1613
|
return false;
|
|
1781
1614
|
},
|
|
1782
1615
|
|
|
1783
|
-
|
|
1784
1616
|
/**
|
|
1785
1617
|
* Returns the widget which contains the children and
|
|
1786
1618
|
* is relevant for laying them out. This is from the user point of
|
|
@@ -1788,19 +1620,17 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1788
1620
|
*
|
|
1789
1621
|
* @return {qx.ui.core.Widget} Widget which contains the children.
|
|
1790
1622
|
*/
|
|
1791
|
-
getChildrenContainer
|
|
1623
|
+
getChildrenContainer() {
|
|
1792
1624
|
return this;
|
|
1793
1625
|
},
|
|
1794
1626
|
|
|
1795
|
-
|
|
1796
1627
|
/**
|
|
1797
1628
|
* @type {Array} Placeholder for children list in empty widgets.
|
|
1798
1629
|
* Mainly to keep instance number low.
|
|
1799
1630
|
*
|
|
1800
1631
|
* @lint ignoreReferenceField(__emptyChildren)
|
|
1801
1632
|
*/
|
|
1802
|
-
__emptyChildren
|
|
1803
|
-
|
|
1633
|
+
__emptyChildren: [],
|
|
1804
1634
|
|
|
1805
1635
|
/**
|
|
1806
1636
|
* Returns the children list
|
|
@@ -1808,11 +1638,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1808
1638
|
* @return {qx.ui.core.LayoutItem[]} The children array (Arrays are
|
|
1809
1639
|
* reference types, so please do not modify it in-place).
|
|
1810
1640
|
*/
|
|
1811
|
-
_getChildren
|
|
1641
|
+
_getChildren() {
|
|
1812
1642
|
return this.__widgetChildren || this.__emptyChildren;
|
|
1813
1643
|
},
|
|
1814
1644
|
|
|
1815
|
-
|
|
1816
1645
|
/**
|
|
1817
1646
|
* Returns the index position of the given widget if it is
|
|
1818
1647
|
* a child widget. Otherwise it returns <code>-1</code>.
|
|
@@ -1821,8 +1650,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1821
1650
|
* @return {Integer} The index position or <code>-1</code> when
|
|
1822
1651
|
* the given widget is no child of this layout.
|
|
1823
1652
|
*/
|
|
1824
|
-
_indexOf
|
|
1825
|
-
{
|
|
1653
|
+
_indexOf(child) {
|
|
1826
1654
|
var children = this.__widgetChildren;
|
|
1827
1655
|
if (!children) {
|
|
1828
1656
|
return -1;
|
|
@@ -1831,34 +1659,29 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1831
1659
|
return children.indexOf(child);
|
|
1832
1660
|
},
|
|
1833
1661
|
|
|
1834
|
-
|
|
1835
1662
|
/**
|
|
1836
1663
|
* Whether the widget contains children.
|
|
1837
1664
|
*
|
|
1838
1665
|
* @return {Boolean} Returns <code>true</code> when the widget has children.
|
|
1839
1666
|
*/
|
|
1840
|
-
_hasChildren
|
|
1841
|
-
{
|
|
1667
|
+
_hasChildren() {
|
|
1842
1668
|
var children = this.__widgetChildren;
|
|
1843
|
-
return children != null &&
|
|
1669
|
+
return children != null && !!children[0];
|
|
1844
1670
|
},
|
|
1845
1671
|
|
|
1846
|
-
|
|
1847
1672
|
/**
|
|
1848
1673
|
* Recursively adds all children to the given queue
|
|
1849
1674
|
*
|
|
1850
1675
|
* @param queue {Array} The queue to add widgets to
|
|
1851
1676
|
*/
|
|
1852
|
-
addChildrenToQueue
|
|
1853
|
-
{
|
|
1677
|
+
addChildrenToQueue(queue) {
|
|
1854
1678
|
var children = this.__widgetChildren;
|
|
1855
1679
|
if (!children) {
|
|
1856
1680
|
return;
|
|
1857
1681
|
}
|
|
1858
1682
|
|
|
1859
1683
|
var child;
|
|
1860
|
-
for (var i=0, l=children.length; i<l; i++)
|
|
1861
|
-
{
|
|
1684
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
1862
1685
|
child = children[i];
|
|
1863
1686
|
queue.push(child);
|
|
1864
1687
|
|
|
@@ -1866,7 +1689,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1866
1689
|
}
|
|
1867
1690
|
},
|
|
1868
1691
|
|
|
1869
|
-
|
|
1870
1692
|
/**
|
|
1871
1693
|
* Adds a new child widget.
|
|
1872
1694
|
*
|
|
@@ -1877,10 +1699,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1877
1699
|
* @param child {qx.ui.core.LayoutItem} the widget to add.
|
|
1878
1700
|
* @param options {Map?null} Optional layout data for widget.
|
|
1879
1701
|
*/
|
|
1880
|
-
_add
|
|
1881
|
-
{
|
|
1702
|
+
_add(child, options) {
|
|
1882
1703
|
if (qx.core.Environment.get("qx.debug")) {
|
|
1883
|
-
this.assertInstance(
|
|
1704
|
+
this.assertInstance(
|
|
1705
|
+
child,
|
|
1706
|
+
qx.ui.core.LayoutItem.constructor,
|
|
1707
|
+
"'Child' must be an instance of qx.ui.core.LayoutItem!"
|
|
1708
|
+
);
|
|
1884
1709
|
}
|
|
1885
1710
|
|
|
1886
1711
|
// When moving in the same widget, remove widget first
|
|
@@ -1891,13 +1716,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1891
1716
|
if (this.__widgetChildren) {
|
|
1892
1717
|
this.__widgetChildren.push(child);
|
|
1893
1718
|
} else {
|
|
1894
|
-
this.__widgetChildren = [
|
|
1719
|
+
this.__widgetChildren = [child];
|
|
1895
1720
|
}
|
|
1896
1721
|
|
|
1897
1722
|
this.__addHelper(child, options);
|
|
1898
1723
|
},
|
|
1899
1724
|
|
|
1900
|
-
|
|
1901
1725
|
/**
|
|
1902
1726
|
* Add a child widget at the specified index
|
|
1903
1727
|
*
|
|
@@ -1907,8 +1731,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1907
1731
|
* current list of children.
|
|
1908
1732
|
* @param options {Map?null} Optional layout data for widget.
|
|
1909
1733
|
*/
|
|
1910
|
-
_addAt
|
|
1911
|
-
{
|
|
1734
|
+
_addAt(child, index, options) {
|
|
1912
1735
|
if (!this.__widgetChildren) {
|
|
1913
1736
|
this.__widgetChildren = [];
|
|
1914
1737
|
}
|
|
@@ -1933,7 +1756,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1933
1756
|
this.__addHelper(child, options);
|
|
1934
1757
|
},
|
|
1935
1758
|
|
|
1936
|
-
|
|
1937
1759
|
/**
|
|
1938
1760
|
* Add a widget before another already inserted widget
|
|
1939
1761
|
*
|
|
@@ -1941,11 +1763,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1941
1763
|
* @param before {qx.ui.core.LayoutItem} widget before the new widget will be inserted.
|
|
1942
1764
|
* @param options {Map?null} Optional layout data for widget.
|
|
1943
1765
|
*/
|
|
1944
|
-
_addBefore
|
|
1945
|
-
{
|
|
1766
|
+
_addBefore(child, before, options) {
|
|
1946
1767
|
if (qx.core.Environment.get("qx.debug")) {
|
|
1947
|
-
this.assertInArray(
|
|
1948
|
-
|
|
1768
|
+
this.assertInArray(
|
|
1769
|
+
before,
|
|
1770
|
+
this._getChildren(),
|
|
1771
|
+
"The 'before' widget is not a child of this widget!"
|
|
1772
|
+
);
|
|
1949
1773
|
}
|
|
1950
1774
|
|
|
1951
1775
|
if (child == before) {
|
|
@@ -1966,7 +1790,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1966
1790
|
this.__addHelper(child, options);
|
|
1967
1791
|
},
|
|
1968
1792
|
|
|
1969
|
-
|
|
1970
1793
|
/**
|
|
1971
1794
|
* Add a widget after another already inserted widget
|
|
1972
1795
|
*
|
|
@@ -1975,11 +1798,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
1975
1798
|
* be inserted
|
|
1976
1799
|
* @param options {Map?null} Optional layout data for widget.
|
|
1977
1800
|
*/
|
|
1978
|
-
_addAfter
|
|
1979
|
-
{
|
|
1801
|
+
_addAfter(child, after, options) {
|
|
1980
1802
|
if (qx.core.Environment.get("qx.debug")) {
|
|
1981
|
-
this.assertInArray(
|
|
1982
|
-
|
|
1803
|
+
this.assertInArray(
|
|
1804
|
+
after,
|
|
1805
|
+
this._getChildren(),
|
|
1806
|
+
"The 'after' widget is not a child of this widget!"
|
|
1807
|
+
);
|
|
1983
1808
|
}
|
|
1984
1809
|
|
|
1985
1810
|
if (child == after) {
|
|
@@ -2000,14 +1825,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2000
1825
|
this.__addHelper(child, options);
|
|
2001
1826
|
},
|
|
2002
1827
|
|
|
2003
|
-
|
|
2004
1828
|
/**
|
|
2005
1829
|
* Remove the given child widget.
|
|
2006
1830
|
*
|
|
2007
1831
|
* @param child {qx.ui.core.LayoutItem} the widget to remove
|
|
2008
1832
|
*/
|
|
2009
|
-
_remove
|
|
2010
|
-
{
|
|
1833
|
+
_remove(child) {
|
|
2011
1834
|
if (!this.__widgetChildren) {
|
|
2012
1835
|
throw new Error("This widget has no children!");
|
|
2013
1836
|
}
|
|
@@ -2016,15 +1839,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2016
1839
|
this.__removeHelper(child);
|
|
2017
1840
|
},
|
|
2018
1841
|
|
|
2019
|
-
|
|
2020
1842
|
/**
|
|
2021
1843
|
* Remove the widget at the specified index.
|
|
2022
1844
|
*
|
|
2023
1845
|
* @param index {Integer} Index of the widget to remove.
|
|
2024
1846
|
* @return {qx.ui.core.LayoutItem} The removed item.
|
|
2025
1847
|
*/
|
|
2026
|
-
_removeAt
|
|
2027
|
-
{
|
|
1848
|
+
_removeAt(index) {
|
|
2028
1849
|
if (!this.__widgetChildren) {
|
|
2029
1850
|
throw new Error("This widget has no children!");
|
|
2030
1851
|
}
|
|
@@ -2037,14 +1858,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2037
1858
|
return child;
|
|
2038
1859
|
},
|
|
2039
1860
|
|
|
2040
|
-
|
|
2041
1861
|
/**
|
|
2042
1862
|
* Remove all children.
|
|
2043
1863
|
*
|
|
2044
1864
|
* @return {Array} An array containing the removed children.
|
|
2045
1865
|
*/
|
|
2046
|
-
_removeAll
|
|
2047
|
-
{
|
|
1866
|
+
_removeAll() {
|
|
2048
1867
|
if (!this.__widgetChildren) {
|
|
2049
1868
|
return [];
|
|
2050
1869
|
}
|
|
@@ -2054,7 +1873,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2054
1873
|
var children = this.__widgetChildren.concat();
|
|
2055
1874
|
this.__widgetChildren.length = 0;
|
|
2056
1875
|
|
|
2057
|
-
for (var i=children.length-1; i>=0; i--) {
|
|
1876
|
+
for (var i = children.length - 1; i >= 0; i--) {
|
|
2058
1877
|
this.__removeHelper(children[i]);
|
|
2059
1878
|
}
|
|
2060
1879
|
|
|
@@ -2063,9 +1882,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2063
1882
|
return children;
|
|
2064
1883
|
},
|
|
2065
1884
|
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
1885
|
/*
|
|
2070
1886
|
---------------------------------------------------------------------------
|
|
2071
1887
|
CHILDREN HANDLING - TEMPLATE METHODS
|
|
@@ -2079,8 +1895,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2079
1895
|
* @signature function(child)
|
|
2080
1896
|
* @param child {qx.ui.core.LayoutItem} The added child.
|
|
2081
1897
|
*/
|
|
2082
|
-
_afterAddChild
|
|
2083
|
-
|
|
1898
|
+
_afterAddChild: null,
|
|
2084
1899
|
|
|
2085
1900
|
/**
|
|
2086
1901
|
* This method gets called each time after a child widget was removed and
|
|
@@ -2089,10 +1904,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2089
1904
|
* @signature function(child)
|
|
2090
1905
|
* @param child {qx.ui.core.LayoutItem} The removed child.
|
|
2091
1906
|
*/
|
|
2092
|
-
_afterRemoveChild
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
1907
|
+
_afterRemoveChild: null,
|
|
2096
1908
|
|
|
2097
1909
|
/*
|
|
2098
1910
|
---------------------------------------------------------------------------
|
|
@@ -2107,12 +1919,19 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2107
1919
|
* @param child {qx.ui.core.LayoutItem} The child to add.
|
|
2108
1920
|
* @param options {Map|null} Optional layout data for the widget.
|
|
2109
1921
|
*/
|
|
2110
|
-
__addHelper
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
1922
|
+
__addHelper(child, options) {
|
|
1923
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
1924
|
+
this.assertInstance(
|
|
1925
|
+
child,
|
|
1926
|
+
qx.ui.core.LayoutItem,
|
|
1927
|
+
"Invalid widget to add: " + child
|
|
1928
|
+
);
|
|
1929
|
+
|
|
1930
|
+
this.assertNotIdentical(
|
|
1931
|
+
child,
|
|
1932
|
+
this,
|
|
1933
|
+
"Could not add widget to itself: " + child
|
|
1934
|
+
);
|
|
2116
1935
|
|
|
2117
1936
|
if (options != null) {
|
|
2118
1937
|
this.assertType(options, "object", "Invalid layout data: " + options);
|
|
@@ -2143,21 +1962,21 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2143
1962
|
}
|
|
2144
1963
|
},
|
|
2145
1964
|
|
|
2146
|
-
|
|
2147
1965
|
/**
|
|
2148
1966
|
* Convenience function to remove a child widget. It will remove it
|
|
2149
1967
|
* from the parent widget and schedule a layout update.
|
|
2150
1968
|
*
|
|
2151
1969
|
* @param child {qx.ui.core.LayoutItem} The child to remove.
|
|
2152
1970
|
*/
|
|
2153
|
-
__removeHelper
|
|
2154
|
-
{
|
|
1971
|
+
__removeHelper(child) {
|
|
2155
1972
|
if (qx.core.Environment.get("qx.debug")) {
|
|
2156
1973
|
this.assertNotUndefined(child);
|
|
2157
1974
|
}
|
|
2158
1975
|
|
|
2159
1976
|
if (child.getLayoutParent() !== this) {
|
|
2160
|
-
throw new Error(
|
|
1977
|
+
throw new Error(
|
|
1978
|
+
"Remove Error: " + child + " is not a child of this widget!"
|
|
1979
|
+
);
|
|
2161
1980
|
}
|
|
2162
1981
|
|
|
2163
1982
|
// Clear parent connection
|
|
@@ -2177,9 +1996,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2177
1996
|
}
|
|
2178
1997
|
},
|
|
2179
1998
|
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
1999
|
/*
|
|
2184
2000
|
---------------------------------------------------------------------------
|
|
2185
2001
|
EVENTS
|
|
@@ -2197,25 +2013,23 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2197
2013
|
* the container are captured. If false events originating in the container
|
|
2198
2014
|
* are not captured.
|
|
2199
2015
|
*/
|
|
2200
|
-
capture
|
|
2016
|
+
capture(capture) {
|
|
2201
2017
|
this.getContentElement().capture(capture);
|
|
2202
2018
|
},
|
|
2203
2019
|
|
|
2204
|
-
|
|
2205
2020
|
/**
|
|
2206
2021
|
* Disables pointer capture mode enabled by {@link #capture}.
|
|
2207
2022
|
*/
|
|
2208
|
-
releaseCapture
|
|
2023
|
+
releaseCapture() {
|
|
2209
2024
|
this.getContentElement().releaseCapture();
|
|
2210
2025
|
},
|
|
2211
2026
|
|
|
2212
|
-
|
|
2213
2027
|
/**
|
|
2214
2028
|
* Checks if pointer event capturing is enabled for this widget.
|
|
2215
2029
|
*
|
|
2216
2030
|
* @return {Boolean} <code>true</code> if capturing is active
|
|
2217
2031
|
*/
|
|
2218
|
-
isCapturing
|
|
2032
|
+
isCapturing() {
|
|
2219
2033
|
var el = this.getContentElement().getDomElement();
|
|
2220
2034
|
if (!el) {
|
|
2221
2035
|
return false;
|
|
@@ -2225,9 +2039,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2225
2039
|
return el == dispatcher.getCaptureElement();
|
|
2226
2040
|
},
|
|
2227
2041
|
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
2042
|
/*
|
|
2232
2043
|
---------------------------------------------------------------------------
|
|
2233
2044
|
PADDING SUPPORT
|
|
@@ -2235,22 +2046,20 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2235
2046
|
*/
|
|
2236
2047
|
|
|
2237
2048
|
// property apply
|
|
2238
|
-
_applyPadding
|
|
2239
|
-
{
|
|
2049
|
+
_applyPadding(value, old, name) {
|
|
2240
2050
|
this._updateInsets = true;
|
|
2241
2051
|
qx.ui.core.queue.Layout.add(this);
|
|
2242
2052
|
|
|
2243
2053
|
this.__updateContentPadding(name, value);
|
|
2244
2054
|
},
|
|
2245
2055
|
|
|
2246
|
-
|
|
2247
2056
|
/**
|
|
2248
2057
|
* Helper to updated the css padding of the content element considering the
|
|
2249
2058
|
* padding of the decorator.
|
|
2250
2059
|
* @param style {String} The name of the css padding property e.g. <code>paddingTop</code>
|
|
2251
2060
|
* @param value {Number} The value to set.
|
|
2252
2061
|
*/
|
|
2253
|
-
__updateContentPadding
|
|
2062
|
+
__updateContentPadding(style, value) {
|
|
2254
2063
|
var content = this.getContentElement();
|
|
2255
2064
|
var decorator = this.getDecorator();
|
|
2256
2065
|
decorator = qx.theme.manager.Decoration.getInstance().resolve(decorator);
|
|
@@ -2261,7 +2070,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2261
2070
|
content.setStyle(style, value + "px");
|
|
2262
2071
|
},
|
|
2263
2072
|
|
|
2264
|
-
|
|
2265
2073
|
/*
|
|
2266
2074
|
---------------------------------------------------------------------------
|
|
2267
2075
|
DECORATION SUPPORT
|
|
@@ -2269,8 +2077,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2269
2077
|
*/
|
|
2270
2078
|
|
|
2271
2079
|
// property apply
|
|
2272
|
-
_applyDecorator
|
|
2273
|
-
{
|
|
2080
|
+
_applyDecorator(value, old) {
|
|
2274
2081
|
var content = this.getContentElement();
|
|
2275
2082
|
|
|
2276
2083
|
if (old) {
|
|
@@ -2282,14 +2089,11 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2282
2089
|
value = qx.theme.manager.Decoration.getInstance().addCssClass(value);
|
|
2283
2090
|
content.addClass(value);
|
|
2284
2091
|
}
|
|
2285
|
-
if (value || old){
|
|
2092
|
+
if (value || old) {
|
|
2286
2093
|
qx.ui.core.queue.Layout.add(this);
|
|
2287
2094
|
}
|
|
2288
2095
|
},
|
|
2289
2096
|
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
2097
|
/*
|
|
2294
2098
|
---------------------------------------------------------------------------
|
|
2295
2099
|
OTHER PROPERTIES
|
|
@@ -2297,40 +2101,37 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2297
2101
|
*/
|
|
2298
2102
|
|
|
2299
2103
|
// property apply
|
|
2300
|
-
_applyToolTipText
|
|
2301
|
-
|
|
2302
|
-
if (qx.core.Environment.get("qx.dynlocale"))
|
|
2303
|
-
{
|
|
2104
|
+
_applyToolTipText(value, old) {
|
|
2105
|
+
if (qx.core.Environment.get("qx.dynlocale")) {
|
|
2304
2106
|
if (this.__toolTipTextListenerId) {
|
|
2305
2107
|
return;
|
|
2306
2108
|
}
|
|
2307
2109
|
var manager = qx.locale.Manager.getInstance();
|
|
2308
|
-
this.__toolTipTextListenerId = manager.addListener(
|
|
2309
|
-
|
|
2110
|
+
this.__toolTipTextListenerId = manager.addListener(
|
|
2111
|
+
"changeLocale",
|
|
2112
|
+
function () {
|
|
2310
2113
|
var toolTipText = this.getToolTipText();
|
|
2311
2114
|
if (toolTipText && toolTipText.translate) {
|
|
2312
2115
|
this.setToolTipText(toolTipText.translate());
|
|
2313
2116
|
}
|
|
2314
|
-
}
|
|
2315
|
-
|
|
2117
|
+
},
|
|
2118
|
+
this
|
|
2119
|
+
);
|
|
2316
2120
|
}
|
|
2317
2121
|
},
|
|
2318
2122
|
|
|
2319
2123
|
// property apply
|
|
2320
|
-
_applyTextColor
|
|
2124
|
+
_applyTextColor(value, old) {
|
|
2321
2125
|
// empty template
|
|
2322
2126
|
},
|
|
2323
2127
|
|
|
2324
|
-
|
|
2325
2128
|
// property apply
|
|
2326
|
-
_applyZIndex
|
|
2129
|
+
_applyZIndex(value, old) {
|
|
2327
2130
|
this.getContentElement().setStyle("zIndex", value == null ? 0 : value);
|
|
2328
2131
|
},
|
|
2329
2132
|
|
|
2330
|
-
|
|
2331
2133
|
// property apply
|
|
2332
|
-
_applyVisibility
|
|
2333
|
-
{
|
|
2134
|
+
_applyVisibility(value, old) {
|
|
2334
2135
|
var content = this.getContentElement();
|
|
2335
2136
|
|
|
2336
2137
|
if (value === "visible") {
|
|
@@ -2341,7 +2142,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2341
2142
|
|
|
2342
2143
|
// only force a layout update if visibility change from/to "exclude"
|
|
2343
2144
|
var parent = this.$$parent;
|
|
2344
|
-
if (
|
|
2145
|
+
if (
|
|
2146
|
+
parent &&
|
|
2147
|
+
(old == null ||
|
|
2148
|
+
value == null ||
|
|
2149
|
+
old === "excluded" ||
|
|
2150
|
+
value === "excluded")
|
|
2151
|
+
) {
|
|
2345
2152
|
parent.invalidateLayoutChildren();
|
|
2346
2153
|
}
|
|
2347
2154
|
|
|
@@ -2349,16 +2156,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2349
2156
|
qx.ui.core.queue.Visibility.add(this);
|
|
2350
2157
|
},
|
|
2351
2158
|
|
|
2352
|
-
|
|
2353
2159
|
// property apply
|
|
2354
|
-
_applyOpacity
|
|
2160
|
+
_applyOpacity(value, old) {
|
|
2355
2161
|
this.getContentElement().setStyle("opacity", value == 1 ? null : value);
|
|
2356
2162
|
},
|
|
2357
2163
|
|
|
2358
|
-
|
|
2359
2164
|
// property apply
|
|
2360
|
-
_applyCursor
|
|
2361
|
-
{
|
|
2165
|
+
_applyCursor(value, old) {
|
|
2362
2166
|
if (value == null && !this.isSelectable()) {
|
|
2363
2167
|
value = "default";
|
|
2364
2168
|
}
|
|
@@ -2366,13 +2170,14 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2366
2170
|
// In Opera the cursor must be set directly.
|
|
2367
2171
|
// http://bugzilla.qooxdoo.org/show_bug.cgi?id=1729
|
|
2368
2172
|
this.getContentElement().setStyle(
|
|
2369
|
-
"cursor",
|
|
2173
|
+
"cursor",
|
|
2174
|
+
value,
|
|
2175
|
+
qx.core.Environment.get("engine.name") == "opera"
|
|
2370
2176
|
);
|
|
2371
2177
|
},
|
|
2372
2178
|
|
|
2373
|
-
|
|
2374
2179
|
// property apply
|
|
2375
|
-
_applyBackgroundColor
|
|
2180
|
+
_applyBackgroundColor(value, old) {
|
|
2376
2181
|
var color = this.getBackgroundColor();
|
|
2377
2182
|
var content = this.getContentElement();
|
|
2378
2183
|
|
|
@@ -2380,13 +2185,11 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2380
2185
|
content.setStyle("backgroundColor", resolved);
|
|
2381
2186
|
},
|
|
2382
2187
|
|
|
2383
|
-
|
|
2384
2188
|
// property apply
|
|
2385
|
-
_applyFont
|
|
2189
|
+
_applyFont(value, old) {
|
|
2386
2190
|
// empty template
|
|
2387
2191
|
},
|
|
2388
2192
|
|
|
2389
|
-
|
|
2390
2193
|
/*
|
|
2391
2194
|
---------------------------------------------------------------------------
|
|
2392
2195
|
DYNAMIC THEME SWITCH SUPPORT
|
|
@@ -2394,12 +2197,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2394
2197
|
*/
|
|
2395
2198
|
|
|
2396
2199
|
// overridden
|
|
2397
|
-
_onChangeTheme
|
|
2200
|
+
_onChangeTheme() {
|
|
2398
2201
|
if (this.isDisposed()) {
|
|
2399
2202
|
return;
|
|
2400
2203
|
}
|
|
2401
2204
|
|
|
2402
|
-
|
|
2205
|
+
super._onChangeTheme();
|
|
2403
2206
|
|
|
2404
2207
|
// update the appearance
|
|
2405
2208
|
this.updateAppearance();
|
|
@@ -2428,8 +2231,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2428
2231
|
}
|
|
2429
2232
|
},
|
|
2430
2233
|
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
2234
|
/*
|
|
2434
2235
|
---------------------------------------------------------------------------
|
|
2435
2236
|
STATE HANDLING
|
|
@@ -2437,16 +2238,13 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2437
2238
|
*/
|
|
2438
2239
|
|
|
2439
2240
|
/** @type {Map} The current widget states */
|
|
2440
|
-
__states
|
|
2441
|
-
|
|
2241
|
+
__states: null,
|
|
2442
2242
|
|
|
2443
2243
|
/** @type {Boolean} Whether the widget has state changes which are not yet queued */
|
|
2444
|
-
$$stateChanges
|
|
2445
|
-
|
|
2244
|
+
$$stateChanges: null,
|
|
2446
2245
|
|
|
2447
2246
|
/** @type {Map} Can be overridden to forward states to the child controls. */
|
|
2448
|
-
_forwardStates
|
|
2449
|
-
|
|
2247
|
+
_forwardStates: null,
|
|
2450
2248
|
|
|
2451
2249
|
/**
|
|
2452
2250
|
* Returns whether a state is set.
|
|
@@ -2454,20 +2252,17 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2454
2252
|
* @param state {String} the state to check.
|
|
2455
2253
|
* @return {Boolean} whether the state is set.
|
|
2456
2254
|
*/
|
|
2457
|
-
hasState
|
|
2458
|
-
{
|
|
2255
|
+
hasState(state) {
|
|
2459
2256
|
var states = this.__states;
|
|
2460
2257
|
return !!states && !!states[state];
|
|
2461
2258
|
},
|
|
2462
2259
|
|
|
2463
|
-
|
|
2464
2260
|
/**
|
|
2465
2261
|
* Sets a state.
|
|
2466
2262
|
*
|
|
2467
2263
|
* @param state {String} The state to add
|
|
2468
2264
|
*/
|
|
2469
|
-
addState
|
|
2470
|
-
{
|
|
2265
|
+
addState(state) {
|
|
2471
2266
|
// Dynamically create state map
|
|
2472
2267
|
var states = this.__states;
|
|
2473
2268
|
if (!states) {
|
|
@@ -2494,11 +2289,9 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2494
2289
|
var forward = this._forwardStates;
|
|
2495
2290
|
var controls = this.__childControls;
|
|
2496
2291
|
|
|
2497
|
-
if (forward && forward[state] && controls)
|
|
2498
|
-
{
|
|
2292
|
+
if (forward && forward[state] && controls) {
|
|
2499
2293
|
var control;
|
|
2500
|
-
for (var id in controls)
|
|
2501
|
-
{
|
|
2294
|
+
for (var id in controls) {
|
|
2502
2295
|
control = controls[id];
|
|
2503
2296
|
if (control instanceof qx.ui.core.Widget) {
|
|
2504
2297
|
controls[id].addState(state);
|
|
@@ -2507,14 +2300,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2507
2300
|
}
|
|
2508
2301
|
},
|
|
2509
2302
|
|
|
2510
|
-
|
|
2511
2303
|
/**
|
|
2512
2304
|
* Clears a state.
|
|
2513
2305
|
*
|
|
2514
2306
|
* @param state {String} the state to clear.
|
|
2515
2307
|
*/
|
|
2516
|
-
removeState
|
|
2517
|
-
{
|
|
2308
|
+
removeState(state) {
|
|
2518
2309
|
// Check for existing state
|
|
2519
2310
|
var states = this.__states;
|
|
2520
2311
|
if (!states || !states[state]) {
|
|
@@ -2537,10 +2328,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2537
2328
|
var forward = this._forwardStates;
|
|
2538
2329
|
var controls = this.__childControls;
|
|
2539
2330
|
|
|
2540
|
-
if (forward && forward[state] && controls)
|
|
2541
|
-
|
|
2542
|
-
for (var id in controls)
|
|
2543
|
-
{
|
|
2331
|
+
if (forward && forward[state] && controls) {
|
|
2332
|
+
for (var id in controls) {
|
|
2544
2333
|
var control = controls[id];
|
|
2545
2334
|
if (control instanceof qx.ui.core.Widget) {
|
|
2546
2335
|
control.removeState(state);
|
|
@@ -2549,7 +2338,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2549
2338
|
}
|
|
2550
2339
|
},
|
|
2551
2340
|
|
|
2552
|
-
|
|
2553
2341
|
/**
|
|
2554
2342
|
* Replaces the first state with the second one.
|
|
2555
2343
|
*
|
|
@@ -2558,8 +2346,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2558
2346
|
* @param old {String} Previous state
|
|
2559
2347
|
* @param value {String} New state
|
|
2560
2348
|
*/
|
|
2561
|
-
replaceState
|
|
2562
|
-
{
|
|
2349
|
+
replaceState(old, value) {
|
|
2563
2350
|
var states = this.__states;
|
|
2564
2351
|
if (!states) {
|
|
2565
2352
|
states = this.__states = {};
|
|
@@ -2583,10 +2370,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2583
2370
|
var forward = this._forwardStates;
|
|
2584
2371
|
var controls = this.__childControls;
|
|
2585
2372
|
|
|
2586
|
-
if (forward && forward[value] && controls)
|
|
2587
|
-
|
|
2588
|
-
for (var id in controls)
|
|
2589
|
-
{
|
|
2373
|
+
if (forward && forward[value] && controls) {
|
|
2374
|
+
for (var id in controls) {
|
|
2590
2375
|
var control = controls[id];
|
|
2591
2376
|
if (control instanceof qx.ui.core.Widget) {
|
|
2592
2377
|
control.replaceState(old, value);
|
|
@@ -2595,10 +2380,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2595
2380
|
}
|
|
2596
2381
|
},
|
|
2597
2382
|
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
2383
|
/*
|
|
2603
2384
|
---------------------------------------------------------------------------
|
|
2604
2385
|
APPEARANCE SUPPORT
|
|
@@ -2606,20 +2387,17 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2606
2387
|
*/
|
|
2607
2388
|
|
|
2608
2389
|
/** @type {String} The currently compiled selector to lookup the matching appearance */
|
|
2609
|
-
__appearanceSelector
|
|
2610
|
-
|
|
2390
|
+
__appearanceSelector: null,
|
|
2611
2391
|
|
|
2612
2392
|
/** @type {Boolean} Whether the selectors needs to be recomputed before updating appearance */
|
|
2613
|
-
__updateSelector
|
|
2614
|
-
|
|
2393
|
+
__updateSelector: null,
|
|
2615
2394
|
|
|
2616
2395
|
/**
|
|
2617
2396
|
* Renders the appearance using the current widget states.
|
|
2618
2397
|
*
|
|
2619
2398
|
* Used exclusively by {qx.ui.core.queue.Appearance}.
|
|
2620
2399
|
*/
|
|
2621
|
-
syncAppearance
|
|
2622
|
-
{
|
|
2400
|
+
syncAppearance() {
|
|
2623
2401
|
var states = this.__states;
|
|
2624
2402
|
var selector = this.__appearanceSelector;
|
|
2625
2403
|
var manager = qx.theme.manager.Appearance.getInstance();
|
|
@@ -2629,16 +2407,19 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2629
2407
|
var unstyler = qx.core.Property.$$method.resetThemed;
|
|
2630
2408
|
|
|
2631
2409
|
// Check for requested selector update
|
|
2632
|
-
if (this.__updateSelector)
|
|
2633
|
-
{
|
|
2410
|
+
if (this.__updateSelector) {
|
|
2634
2411
|
// Clear flag
|
|
2635
2412
|
delete this.__updateSelector;
|
|
2636
2413
|
|
|
2637
2414
|
// Check if the selector was created previously
|
|
2638
|
-
if (selector)
|
|
2639
|
-
{
|
|
2415
|
+
if (selector) {
|
|
2640
2416
|
// Query old selector
|
|
2641
|
-
var oldData = manager.styleFrom(
|
|
2417
|
+
var oldData = manager.styleFrom(
|
|
2418
|
+
selector,
|
|
2419
|
+
states,
|
|
2420
|
+
null,
|
|
2421
|
+
this.getAppearance()
|
|
2422
|
+
);
|
|
2642
2423
|
|
|
2643
2424
|
// Clear current selector (to force recompute)
|
|
2644
2425
|
selector = null;
|
|
@@ -2646,29 +2427,34 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2646
2427
|
}
|
|
2647
2428
|
|
|
2648
2429
|
// Build selector
|
|
2649
|
-
if (!selector)
|
|
2650
|
-
{
|
|
2430
|
+
if (!selector) {
|
|
2651
2431
|
var obj = this;
|
|
2652
2432
|
var id = [];
|
|
2653
2433
|
|
|
2654
2434
|
do {
|
|
2655
|
-
id.push(obj.$$subcontrol||obj.getAppearance());
|
|
2656
|
-
} while (obj = obj.$$subparent);
|
|
2435
|
+
id.push(obj.$$subcontrol || obj.getAppearance());
|
|
2436
|
+
} while ((obj = obj.$$subparent));
|
|
2657
2437
|
|
|
2658
2438
|
// Combine parent control IDs, add top level appearance, filter result
|
|
2659
2439
|
// to not include positioning information anymore (e.g. #3)
|
|
2660
|
-
selector = id
|
|
2440
|
+
selector = id
|
|
2441
|
+
.reverse()
|
|
2442
|
+
.join("/")
|
|
2443
|
+
.replace(/#[0-9]+/g, "");
|
|
2661
2444
|
this.__appearanceSelector = selector;
|
|
2662
2445
|
}
|
|
2663
2446
|
|
|
2664
2447
|
// Query current selector
|
|
2665
|
-
var newData = manager.styleFrom(
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2448
|
+
var newData = manager.styleFrom(
|
|
2449
|
+
selector,
|
|
2450
|
+
states,
|
|
2451
|
+
null,
|
|
2452
|
+
this.getAppearance()
|
|
2453
|
+
);
|
|
2454
|
+
|
|
2455
|
+
if (newData) {
|
|
2456
|
+
if (oldData) {
|
|
2457
|
+
for (var prop in oldData) {
|
|
2672
2458
|
if (newData[prop] === undefined) {
|
|
2673
2459
|
this[unstyler[prop]]();
|
|
2674
2460
|
}
|
|
@@ -2676,25 +2462,27 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2676
2462
|
}
|
|
2677
2463
|
|
|
2678
2464
|
// Check property availability of new data
|
|
2679
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
2680
|
-
|
|
2681
|
-
for (var prop in newData)
|
|
2682
|
-
{
|
|
2465
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
2466
|
+
for (var prop in newData) {
|
|
2683
2467
|
if (!this[styler[prop]]) {
|
|
2684
|
-
throw new Error(
|
|
2685
|
-
|
|
2686
|
-
|
|
2468
|
+
throw new Error(
|
|
2469
|
+
this.classname +
|
|
2470
|
+
' has no themeable property "' +
|
|
2471
|
+
prop +
|
|
2472
|
+
'" while styling ' +
|
|
2473
|
+
selector
|
|
2474
|
+
);
|
|
2687
2475
|
}
|
|
2688
2476
|
}
|
|
2689
2477
|
}
|
|
2690
2478
|
|
|
2691
2479
|
// Apply new data
|
|
2692
2480
|
for (var prop in newData) {
|
|
2693
|
-
newData[prop] === undefined
|
|
2481
|
+
newData[prop] === undefined
|
|
2482
|
+
? this[unstyler[prop]]()
|
|
2483
|
+
: this[styler[prop]](newData[prop]);
|
|
2694
2484
|
}
|
|
2695
|
-
}
|
|
2696
|
-
else if (oldData)
|
|
2697
|
-
{
|
|
2485
|
+
} else if (oldData) {
|
|
2698
2486
|
// Clear old data
|
|
2699
2487
|
for (var prop in oldData) {
|
|
2700
2488
|
this[unstyler[prop]]();
|
|
@@ -2704,25 +2492,21 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2704
2492
|
this.fireDataEvent("syncAppearance", this.__states);
|
|
2705
2493
|
},
|
|
2706
2494
|
|
|
2707
|
-
|
|
2708
2495
|
// property apply
|
|
2709
|
-
_applyAppearance
|
|
2496
|
+
_applyAppearance(value, old) {
|
|
2710
2497
|
this.updateAppearance();
|
|
2711
2498
|
},
|
|
2712
2499
|
|
|
2713
|
-
|
|
2714
2500
|
/**
|
|
2715
2501
|
* Helper method called from the visibility queue to detect outstanding changes
|
|
2716
2502
|
* to the appearance.
|
|
2717
2503
|
*
|
|
2718
2504
|
* @internal
|
|
2719
2505
|
*/
|
|
2720
|
-
checkAppearanceNeeds
|
|
2721
|
-
{
|
|
2506
|
+
checkAppearanceNeeds() {
|
|
2722
2507
|
// CASE 1: Widget has never got an appearance already because it was never
|
|
2723
2508
|
// visible before. Normally add it to the queue is the easiest way to update it.
|
|
2724
|
-
if (!this.__initialAppearanceApplied)
|
|
2725
|
-
{
|
|
2509
|
+
if (!this.__initialAppearanceApplied) {
|
|
2726
2510
|
qx.ui.core.queue.Appearance.add(this);
|
|
2727
2511
|
this.__initialAppearanceApplied = true;
|
|
2728
2512
|
}
|
|
@@ -2732,20 +2516,17 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2732
2516
|
// In this case the widget is already queued in the appearance. This is basically
|
|
2733
2517
|
// what all addState/removeState do, but the queue itself may not have been registered
|
|
2734
2518
|
// to be flushed
|
|
2735
|
-
else if (this.$$stateChanges)
|
|
2736
|
-
{
|
|
2519
|
+
else if (this.$$stateChanges) {
|
|
2737
2520
|
qx.ui.core.queue.Appearance.add(this);
|
|
2738
2521
|
delete this.$$stateChanges;
|
|
2739
2522
|
}
|
|
2740
2523
|
},
|
|
2741
2524
|
|
|
2742
|
-
|
|
2743
2525
|
/**
|
|
2744
2526
|
* Refreshes the appearance of this widget and all
|
|
2745
2527
|
* registered child controls.
|
|
2746
2528
|
*/
|
|
2747
|
-
updateAppearance
|
|
2748
|
-
{
|
|
2529
|
+
updateAppearance() {
|
|
2749
2530
|
// Clear selector
|
|
2750
2531
|
this.__updateSelector = true;
|
|
2751
2532
|
|
|
@@ -2754,11 +2535,9 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2754
2535
|
|
|
2755
2536
|
// Update child controls
|
|
2756
2537
|
var controls = this.__childControls;
|
|
2757
|
-
if (controls)
|
|
2758
|
-
{
|
|
2538
|
+
if (controls) {
|
|
2759
2539
|
var obj;
|
|
2760
|
-
for (var id in controls)
|
|
2761
|
-
{
|
|
2540
|
+
for (var id in controls) {
|
|
2762
2541
|
obj = controls[id];
|
|
2763
2542
|
|
|
2764
2543
|
if (obj instanceof qx.ui.core.Widget) {
|
|
@@ -2768,10 +2547,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2768
2547
|
}
|
|
2769
2548
|
},
|
|
2770
2549
|
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
2550
|
/*
|
|
2776
2551
|
---------------------------------------------------------------------------
|
|
2777
2552
|
WIDGET QUEUE
|
|
@@ -2784,14 +2559,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2784
2559
|
*
|
|
2785
2560
|
* @param jobs {Map} A map of jobs.
|
|
2786
2561
|
*/
|
|
2787
|
-
syncWidget
|
|
2562
|
+
syncWidget(jobs) {
|
|
2788
2563
|
// empty implementation
|
|
2789
2564
|
},
|
|
2790
2565
|
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
2566
|
/*
|
|
2796
2567
|
---------------------------------------------------------------------------
|
|
2797
2568
|
EVENT SUPPORT
|
|
@@ -2805,12 +2576,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2805
2576
|
* @return {qx.ui.core.Widget} A working event target of this widget.
|
|
2806
2577
|
* May be <code>null</code> as well.
|
|
2807
2578
|
*/
|
|
2808
|
-
getEventTarget
|
|
2809
|
-
{
|
|
2579
|
+
getEventTarget() {
|
|
2810
2580
|
var target = this;
|
|
2811
2581
|
|
|
2812
|
-
while (target.getAnonymous())
|
|
2813
|
-
{
|
|
2582
|
+
while (target.getAnonymous()) {
|
|
2814
2583
|
target = target.getLayoutParent();
|
|
2815
2584
|
if (!target) {
|
|
2816
2585
|
return null;
|
|
@@ -2820,7 +2589,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2820
2589
|
return target;
|
|
2821
2590
|
},
|
|
2822
2591
|
|
|
2823
|
-
|
|
2824
2592
|
/**
|
|
2825
2593
|
* Returns the next focus target in the parent chain. May
|
|
2826
2594
|
* also return the widget itself if it is not anonymous and focusable.
|
|
@@ -2828,16 +2596,14 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2828
2596
|
* @return {qx.ui.core.Widget} A working focus target of this widget.
|
|
2829
2597
|
* May be <code>null</code> as well.
|
|
2830
2598
|
*/
|
|
2831
|
-
getFocusTarget
|
|
2832
|
-
{
|
|
2599
|
+
getFocusTarget() {
|
|
2833
2600
|
var target = this;
|
|
2834
2601
|
|
|
2835
2602
|
if (!target.getEnabled()) {
|
|
2836
2603
|
return null;
|
|
2837
2604
|
}
|
|
2838
2605
|
|
|
2839
|
-
while (target.getAnonymous() || !target.getFocusable())
|
|
2840
|
-
{
|
|
2606
|
+
while (target.getAnonymous() || !target.getFocusable()) {
|
|
2841
2607
|
target = target.getLayoutParent();
|
|
2842
2608
|
if (!target || !target.getEnabled()) {
|
|
2843
2609
|
return null;
|
|
@@ -2847,17 +2613,15 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2847
2613
|
return target;
|
|
2848
2614
|
},
|
|
2849
2615
|
|
|
2850
|
-
|
|
2851
2616
|
/**
|
|
2852
2617
|
* Returns the element which should be focused.
|
|
2853
2618
|
*
|
|
2854
2619
|
* @return {qx.html.Element} The html element to focus.
|
|
2855
2620
|
*/
|
|
2856
|
-
getFocusElement
|
|
2621
|
+
getFocusElement() {
|
|
2857
2622
|
return this.getContentElement();
|
|
2858
2623
|
},
|
|
2859
2624
|
|
|
2860
|
-
|
|
2861
2625
|
/**
|
|
2862
2626
|
* Whether the widget is reachable by pressing the TAB key.
|
|
2863
2627
|
*
|
|
@@ -2867,19 +2631,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2867
2631
|
*
|
|
2868
2632
|
* @return {Boolean} Whether the element is tabable.
|
|
2869
2633
|
*/
|
|
2870
|
-
isTabable
|
|
2871
|
-
return
|
|
2634
|
+
isTabable() {
|
|
2635
|
+
return !!this.getContentElement().getDomElement() && this.isFocusable();
|
|
2872
2636
|
},
|
|
2873
2637
|
|
|
2874
|
-
|
|
2875
2638
|
// property apply
|
|
2876
|
-
_applyFocusable
|
|
2877
|
-
{
|
|
2639
|
+
_applyFocusable(value, old) {
|
|
2878
2640
|
var target = this.getFocusElement();
|
|
2879
2641
|
|
|
2880
2642
|
// Apply native tabIndex attribute
|
|
2881
|
-
if (value)
|
|
2882
|
-
{
|
|
2643
|
+
if (value) {
|
|
2883
2644
|
var tabIndex = this.getTabIndex();
|
|
2884
2645
|
if (tabIndex == null) {
|
|
2885
2646
|
tabIndex = 1;
|
|
@@ -2889,9 +2650,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2889
2650
|
|
|
2890
2651
|
// Omit native dotted outline border
|
|
2891
2652
|
target.setStyle("outline", "none");
|
|
2892
|
-
}
|
|
2893
|
-
else
|
|
2894
|
-
{
|
|
2653
|
+
} else {
|
|
2895
2654
|
if (target.isNativelyFocusable()) {
|
|
2896
2655
|
target.setAttribute("tabIndex", -1);
|
|
2897
2656
|
} else if (old) {
|
|
@@ -2900,26 +2659,20 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2900
2659
|
}
|
|
2901
2660
|
},
|
|
2902
2661
|
|
|
2903
|
-
|
|
2904
2662
|
// property apply
|
|
2905
|
-
_applyKeepFocus
|
|
2906
|
-
{
|
|
2663
|
+
_applyKeepFocus(value) {
|
|
2907
2664
|
var target = this.getFocusElement();
|
|
2908
2665
|
target.setAttribute("qxKeepFocus", value ? "on" : null);
|
|
2909
2666
|
},
|
|
2910
2667
|
|
|
2911
|
-
|
|
2912
2668
|
// property apply
|
|
2913
|
-
_applyKeepActive
|
|
2914
|
-
{
|
|
2669
|
+
_applyKeepActive(value) {
|
|
2915
2670
|
var target = this.getContentElement();
|
|
2916
2671
|
target.setAttribute("qxKeepActive", value ? "on" : null);
|
|
2917
2672
|
},
|
|
2918
2673
|
|
|
2919
|
-
|
|
2920
2674
|
// property apply
|
|
2921
|
-
_applyTabIndex
|
|
2922
|
-
{
|
|
2675
|
+
_applyTabIndex(value) {
|
|
2923
2676
|
if (value == null) {
|
|
2924
2677
|
value = 1;
|
|
2925
2678
|
} else if (value < 1 || value > 32000) {
|
|
@@ -2931,10 +2684,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2931
2684
|
}
|
|
2932
2685
|
},
|
|
2933
2686
|
|
|
2934
|
-
|
|
2935
2687
|
// property apply
|
|
2936
|
-
_applySelectable
|
|
2937
|
-
{
|
|
2688
|
+
_applySelectable(value, old) {
|
|
2938
2689
|
// Re-apply cursor if not in "initSelectable"
|
|
2939
2690
|
if (old !== null) {
|
|
2940
2691
|
this._applyCursor(this.getCursor());
|
|
@@ -2944,12 +2695,9 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2944
2695
|
this.getContentElement().setSelectable(value);
|
|
2945
2696
|
},
|
|
2946
2697
|
|
|
2947
|
-
|
|
2948
2698
|
// property apply
|
|
2949
|
-
_applyEnabled
|
|
2950
|
-
|
|
2951
|
-
if (value===false)
|
|
2952
|
-
{
|
|
2699
|
+
_applyEnabled(value, old) {
|
|
2700
|
+
if (value === false) {
|
|
2953
2701
|
this.addState("disabled");
|
|
2954
2702
|
|
|
2955
2703
|
// hovered not configured in widget, but as this is a
|
|
@@ -2958,8 +2706,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2958
2706
|
this.removeState("hovered");
|
|
2959
2707
|
|
|
2960
2708
|
// Blur when focused
|
|
2961
|
-
if (this.isFocusable())
|
|
2962
|
-
{
|
|
2709
|
+
if (this.isFocusable()) {
|
|
2963
2710
|
// Remove focused state
|
|
2964
2711
|
this.removeState("focused");
|
|
2965
2712
|
|
|
@@ -2976,9 +2723,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2976
2723
|
if (this.isDroppable()) {
|
|
2977
2724
|
this._applyDroppable(false, true);
|
|
2978
2725
|
}
|
|
2979
|
-
}
|
|
2980
|
-
else
|
|
2981
|
-
{
|
|
2726
|
+
} else {
|
|
2982
2727
|
this.removeState("disabled");
|
|
2983
2728
|
|
|
2984
2729
|
// Re-add tabIndex
|
|
@@ -2998,9 +2743,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
2998
2743
|
}
|
|
2999
2744
|
},
|
|
3000
2745
|
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
2746
|
/*
|
|
3005
2747
|
---------------------------------------------------------------------------
|
|
3006
2748
|
CONTEXT MENU
|
|
@@ -3008,52 +2750,52 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3008
2750
|
*/
|
|
3009
2751
|
|
|
3010
2752
|
// property apply
|
|
3011
|
-
_applyNativeContextMenu
|
|
2753
|
+
_applyNativeContextMenu(value, old, name) {
|
|
3012
2754
|
// empty body to allow overriding
|
|
3013
2755
|
},
|
|
3014
2756
|
|
|
3015
|
-
|
|
3016
2757
|
// property apply
|
|
3017
|
-
_applyContextMenu
|
|
3018
|
-
|
|
3019
|
-
if (old)
|
|
3020
|
-
{
|
|
2758
|
+
_applyContextMenu(value, old) {
|
|
2759
|
+
if (old) {
|
|
3021
2760
|
old.removeState("contextmenu");
|
|
3022
2761
|
|
|
3023
2762
|
if (old.getOpener() == this) {
|
|
3024
2763
|
old.resetOpener();
|
|
3025
2764
|
}
|
|
3026
2765
|
|
|
3027
|
-
if (!value)
|
|
3028
|
-
{
|
|
2766
|
+
if (!value) {
|
|
3029
2767
|
this.removeListener("contextmenu", this._onContextMenuOpen);
|
|
3030
2768
|
this.removeListener("longtap", this._onContextMenuOpen);
|
|
3031
|
-
old.removeListener(
|
|
2769
|
+
old.removeListener(
|
|
2770
|
+
"changeVisibility",
|
|
2771
|
+
this._onBeforeContextMenuOpen,
|
|
2772
|
+
this
|
|
2773
|
+
);
|
|
3032
2774
|
}
|
|
3033
2775
|
}
|
|
3034
2776
|
|
|
3035
|
-
if (value)
|
|
3036
|
-
{
|
|
2777
|
+
if (value) {
|
|
3037
2778
|
value.setOpener(this);
|
|
3038
2779
|
value.addState("contextmenu");
|
|
3039
2780
|
|
|
3040
|
-
if (!old)
|
|
3041
|
-
{
|
|
2781
|
+
if (!old) {
|
|
3042
2782
|
this.addListener("contextmenu", this._onContextMenuOpen);
|
|
3043
2783
|
this.addListener("longtap", this._onContextMenuOpen);
|
|
3044
|
-
value.addListener(
|
|
2784
|
+
value.addListener(
|
|
2785
|
+
"changeVisibility",
|
|
2786
|
+
this._onBeforeContextMenuOpen,
|
|
2787
|
+
this
|
|
2788
|
+
);
|
|
3045
2789
|
}
|
|
3046
2790
|
}
|
|
3047
2791
|
},
|
|
3048
2792
|
|
|
3049
|
-
|
|
3050
2793
|
/**
|
|
3051
2794
|
* Event listener for <code>contextmenu</code> event
|
|
3052
2795
|
*
|
|
3053
2796
|
* @param e {qx.event.type.Pointer} The event object
|
|
3054
2797
|
*/
|
|
3055
|
-
_onContextMenuOpen
|
|
3056
|
-
{
|
|
2798
|
+
_onContextMenuOpen(e) {
|
|
3057
2799
|
// only allow long tap context menu on touch interactions
|
|
3058
2800
|
if (e.getType() == "longtap") {
|
|
3059
2801
|
if (e.getPointerType() !== "touch") {
|
|
@@ -3067,22 +2809,20 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3067
2809
|
e.stop();
|
|
3068
2810
|
},
|
|
3069
2811
|
|
|
3070
|
-
|
|
3071
2812
|
/**
|
|
3072
2813
|
* Event listener for <code>beforeContextmenuOpen</code> event
|
|
3073
2814
|
*
|
|
3074
2815
|
* @param e {qx.event.type.Data} The data event
|
|
3075
2816
|
*/
|
|
3076
|
-
_onBeforeContextMenuOpen
|
|
3077
|
-
|
|
3078
|
-
|
|
2817
|
+
_onBeforeContextMenuOpen(e) {
|
|
2818
|
+
if (
|
|
2819
|
+
e.getData() == "visible" &&
|
|
2820
|
+
this.hasListener("beforeContextmenuOpen")
|
|
2821
|
+
) {
|
|
3079
2822
|
this.fireDataEvent("beforeContextmenuOpen", e);
|
|
3080
2823
|
}
|
|
3081
2824
|
},
|
|
3082
2825
|
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
2826
|
/*
|
|
3087
2827
|
---------------------------------------------------------------------------
|
|
3088
2828
|
USEFUL COMMON EVENT LISTENERS
|
|
@@ -3095,14 +2835,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3095
2835
|
*
|
|
3096
2836
|
* @param e {qx.event.type.Event} Any bubbling event
|
|
3097
2837
|
*/
|
|
3098
|
-
_onStopEvent
|
|
2838
|
+
_onStopEvent(e) {
|
|
3099
2839
|
e.stopPropagation();
|
|
3100
2840
|
},
|
|
3101
2841
|
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
2842
|
/*
|
|
3107
2843
|
---------------------------------------------------------------------------
|
|
3108
2844
|
DRAG & DROP SUPPORT
|
|
@@ -3115,13 +2851,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3115
2851
|
* and return your custom instance.
|
|
3116
2852
|
* @return {qx.ui.core.DragDropCursor} A drag drop cursor implementation.
|
|
3117
2853
|
*/
|
|
3118
|
-
_getDragDropCursor
|
|
2854
|
+
_getDragDropCursor() {
|
|
3119
2855
|
return qx.ui.core.DragDropCursor.getInstance();
|
|
3120
2856
|
},
|
|
3121
2857
|
|
|
3122
2858
|
// property apply
|
|
3123
|
-
_applyDraggable
|
|
3124
|
-
{
|
|
2859
|
+
_applyDraggable(value, old) {
|
|
3125
2860
|
if (!this.isEnabled() && value === true) {
|
|
3126
2861
|
value = false;
|
|
3127
2862
|
}
|
|
@@ -3130,15 +2865,12 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3130
2865
|
this._getDragDropCursor();
|
|
3131
2866
|
|
|
3132
2867
|
// Process listeners
|
|
3133
|
-
if (value)
|
|
3134
|
-
{
|
|
2868
|
+
if (value) {
|
|
3135
2869
|
this.addListener("dragstart", this._onDragStart);
|
|
3136
2870
|
this.addListener("drag", this._onDrag);
|
|
3137
2871
|
this.addListener("dragend", this._onDragEnd);
|
|
3138
2872
|
this.addListener("dragchange", this._onDragChange);
|
|
3139
|
-
}
|
|
3140
|
-
else
|
|
3141
|
-
{
|
|
2873
|
+
} else {
|
|
3142
2874
|
this.removeListener("dragstart", this._onDragStart);
|
|
3143
2875
|
this.removeListener("drag", this._onDrag);
|
|
3144
2876
|
this.removeListener("dragend", this._onDragEnd);
|
|
@@ -3149,10 +2881,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3149
2881
|
this.getContentElement().setAttribute("qxDraggable", value ? "on" : null);
|
|
3150
2882
|
},
|
|
3151
2883
|
|
|
3152
|
-
|
|
3153
2884
|
// property apply
|
|
3154
|
-
_applyDroppable
|
|
3155
|
-
{
|
|
2885
|
+
_applyDroppable(value, old) {
|
|
3156
2886
|
if (!this.isEnabled() && value === true) {
|
|
3157
2887
|
value = false;
|
|
3158
2888
|
}
|
|
@@ -3161,58 +2891,46 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3161
2891
|
this.getContentElement().setAttribute("qxDroppable", value ? "on" : null);
|
|
3162
2892
|
},
|
|
3163
2893
|
|
|
3164
|
-
|
|
3165
2894
|
/**
|
|
3166
2895
|
* Event listener for own <code>dragstart</code> event.
|
|
3167
2896
|
*
|
|
3168
2897
|
* @param e {qx.event.type.Drag} Drag event
|
|
3169
2898
|
*/
|
|
3170
|
-
_onDragStart
|
|
3171
|
-
{
|
|
2899
|
+
_onDragStart(e) {
|
|
3172
2900
|
this._getDragDropCursor().placeToPointer(e);
|
|
3173
2901
|
this.getApplicationRoot().setGlobalCursor("default");
|
|
3174
2902
|
},
|
|
3175
2903
|
|
|
3176
|
-
|
|
3177
2904
|
/**
|
|
3178
2905
|
* Event listener for own <code>drag</code> event.
|
|
3179
2906
|
*
|
|
3180
2907
|
* @param e {qx.event.type.Drag} Drag event
|
|
3181
2908
|
*/
|
|
3182
|
-
_onDrag
|
|
2909
|
+
_onDrag(e) {
|
|
3183
2910
|
this._getDragDropCursor().placeToPointer(e);
|
|
3184
2911
|
},
|
|
3185
2912
|
|
|
3186
|
-
|
|
3187
2913
|
/**
|
|
3188
2914
|
* Event listener for own <code>dragend</code> event.
|
|
3189
2915
|
*
|
|
3190
2916
|
* @param e {qx.event.type.Drag} Drag event
|
|
3191
2917
|
*/
|
|
3192
|
-
_onDragEnd
|
|
3193
|
-
{
|
|
2918
|
+
_onDragEnd(e) {
|
|
3194
2919
|
this._getDragDropCursor().moveTo(-1000, -1000);
|
|
3195
2920
|
this.getApplicationRoot().resetGlobalCursor();
|
|
3196
2921
|
},
|
|
3197
2922
|
|
|
3198
|
-
|
|
3199
2923
|
/**
|
|
3200
2924
|
* Event listener for own <code>dragchange</code> event.
|
|
3201
2925
|
*
|
|
3202
2926
|
* @param e {qx.event.type.Drag} Drag event
|
|
3203
2927
|
*/
|
|
3204
|
-
_onDragChange
|
|
3205
|
-
{
|
|
2928
|
+
_onDragChange(e) {
|
|
3206
2929
|
var cursor = this._getDragDropCursor();
|
|
3207
2930
|
var action = e.getCurrentAction();
|
|
3208
2931
|
action ? cursor.setAction(action) : cursor.resetAction();
|
|
3209
2932
|
},
|
|
3210
2933
|
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
2934
|
/*
|
|
3217
2935
|
---------------------------------------------------------------------------
|
|
3218
2936
|
VISUALIZE FOCUS STATES
|
|
@@ -3227,11 +2945,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3227
2945
|
*
|
|
3228
2946
|
* @internal
|
|
3229
2947
|
*/
|
|
3230
|
-
visualizeFocus
|
|
2948
|
+
visualizeFocus() {
|
|
3231
2949
|
this.addState("focused");
|
|
3232
2950
|
},
|
|
3233
2951
|
|
|
3234
|
-
|
|
3235
2952
|
/**
|
|
3236
2953
|
* Event handler which is executed when the widget lost the focus.
|
|
3237
2954
|
*
|
|
@@ -3240,15 +2957,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3240
2957
|
*
|
|
3241
2958
|
* @internal
|
|
3242
2959
|
*/
|
|
3243
|
-
visualizeBlur
|
|
2960
|
+
visualizeBlur() {
|
|
3244
2961
|
this.removeState("focused");
|
|
3245
2962
|
},
|
|
3246
2963
|
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
2964
|
/*
|
|
3253
2965
|
---------------------------------------------------------------------------
|
|
3254
2966
|
SCROLL CHILD INTO VIEW
|
|
@@ -3270,8 +2982,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3270
2982
|
* @param direct {Boolean?true} Whether the execution should be made
|
|
3271
2983
|
* directly when possible
|
|
3272
2984
|
*/
|
|
3273
|
-
scrollChildIntoView
|
|
3274
|
-
{
|
|
2985
|
+
scrollChildIntoView(child, alignX, alignY, direct) {
|
|
3275
2986
|
// Scroll directly on default
|
|
3276
2987
|
direct = typeof direct == "undefined" ? true : direct;
|
|
3277
2988
|
|
|
@@ -3299,7 +3010,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3299
3010
|
|
|
3300
3011
|
// Siblings
|
|
3301
3012
|
if (direct) {
|
|
3302
|
-
parent.getChildren().forEach(function(sibling) {
|
|
3013
|
+
parent.getChildren().forEach(function (sibling) {
|
|
3303
3014
|
direct = direct && !Layout.isScheduled(sibling);
|
|
3304
3015
|
});
|
|
3305
3016
|
}
|
|
@@ -3310,7 +3021,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3310
3021
|
this.scrollChildIntoViewY(child, alignY, direct);
|
|
3311
3022
|
},
|
|
3312
3023
|
|
|
3313
|
-
|
|
3314
3024
|
/**
|
|
3315
3025
|
* The method scrolls the given item into view (x-axis only).
|
|
3316
3026
|
*
|
|
@@ -3322,11 +3032,14 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3322
3032
|
* @param direct {Boolean?true} Whether the execution should be made
|
|
3323
3033
|
* directly when possible
|
|
3324
3034
|
*/
|
|
3325
|
-
scrollChildIntoViewX
|
|
3326
|
-
this.getContentElement().scrollChildIntoViewX(
|
|
3035
|
+
scrollChildIntoViewX(child, align, direct) {
|
|
3036
|
+
this.getContentElement().scrollChildIntoViewX(
|
|
3037
|
+
child.getContentElement(),
|
|
3038
|
+
align,
|
|
3039
|
+
direct
|
|
3040
|
+
);
|
|
3327
3041
|
},
|
|
3328
3042
|
|
|
3329
|
-
|
|
3330
3043
|
/**
|
|
3331
3044
|
* The method scrolls the given item into view (y-axis only).
|
|
3332
3045
|
*
|
|
@@ -3338,14 +3051,14 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3338
3051
|
* @param direct {Boolean?true} Whether the execution should be made
|
|
3339
3052
|
* directly when possible
|
|
3340
3053
|
*/
|
|
3341
|
-
scrollChildIntoViewY
|
|
3342
|
-
this.getContentElement().scrollChildIntoViewY(
|
|
3054
|
+
scrollChildIntoViewY(child, align, direct) {
|
|
3055
|
+
this.getContentElement().scrollChildIntoViewY(
|
|
3056
|
+
child.getContentElement(),
|
|
3057
|
+
align,
|
|
3058
|
+
direct
|
|
3059
|
+
);
|
|
3343
3060
|
},
|
|
3344
3061
|
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
3062
|
/*
|
|
3350
3063
|
---------------------------------------------------------------------------
|
|
3351
3064
|
FOCUS SYSTEM USER ACCESS
|
|
@@ -3356,8 +3069,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3356
3069
|
* Focus this widget.
|
|
3357
3070
|
*
|
|
3358
3071
|
*/
|
|
3359
|
-
focus
|
|
3360
|
-
{
|
|
3072
|
+
focus() {
|
|
3361
3073
|
if (this.isFocusable()) {
|
|
3362
3074
|
this.getFocusElement().focus();
|
|
3363
3075
|
} else if (qx.ui.core.Widget.UNFOCUSABLE_WIDGET_FOCUS_BLUR_ERROR) {
|
|
@@ -3365,13 +3077,11 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3365
3077
|
}
|
|
3366
3078
|
},
|
|
3367
3079
|
|
|
3368
|
-
|
|
3369
3080
|
/**
|
|
3370
3081
|
* Remove focus from this widget.
|
|
3371
3082
|
*
|
|
3372
3083
|
*/
|
|
3373
|
-
blur
|
|
3374
|
-
{
|
|
3084
|
+
blur() {
|
|
3375
3085
|
if (this.isFocusable()) {
|
|
3376
3086
|
this.getFocusElement().blur();
|
|
3377
3087
|
} else if (qx.ui.core.Widget.UNFOCUSABLE_WIDGET_FOCUS_BLUR_ERROR) {
|
|
@@ -3379,25 +3089,22 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3379
3089
|
}
|
|
3380
3090
|
},
|
|
3381
3091
|
|
|
3382
|
-
|
|
3383
3092
|
/**
|
|
3384
3093
|
* Activate this widget e.g. for keyboard events.
|
|
3385
3094
|
*
|
|
3386
3095
|
*/
|
|
3387
|
-
activate
|
|
3096
|
+
activate() {
|
|
3388
3097
|
this.getContentElement().activate();
|
|
3389
3098
|
},
|
|
3390
3099
|
|
|
3391
|
-
|
|
3392
3100
|
/**
|
|
3393
3101
|
* Deactivate this widget e.g. for keyboard events.
|
|
3394
3102
|
*
|
|
3395
3103
|
*/
|
|
3396
|
-
deactivate
|
|
3104
|
+
deactivate() {
|
|
3397
3105
|
this.getContentElement().deactivate();
|
|
3398
3106
|
},
|
|
3399
3107
|
|
|
3400
|
-
|
|
3401
3108
|
/**
|
|
3402
3109
|
* Focus this widget when using the keyboard. This is
|
|
3403
3110
|
* mainly thought for the advanced qooxdoo keyboard handling
|
|
@@ -3405,14 +3112,10 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3405
3112
|
*
|
|
3406
3113
|
* @internal
|
|
3407
3114
|
*/
|
|
3408
|
-
tabFocus
|
|
3115
|
+
tabFocus() {
|
|
3409
3116
|
this.getFocusElement().focus();
|
|
3410
3117
|
},
|
|
3411
3118
|
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
3119
|
/*
|
|
3417
3120
|
---------------------------------------------------------------------------
|
|
3418
3121
|
CHILD CONTROL SUPPORT
|
|
@@ -3425,8 +3128,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3425
3128
|
* @param id {String} ID of the child control
|
|
3426
3129
|
* @return {Boolean} <code>true</code> when the child control is registered.
|
|
3427
3130
|
*/
|
|
3428
|
-
hasChildControl
|
|
3429
|
-
{
|
|
3131
|
+
hasChildControl(id) {
|
|
3430
3132
|
if (!this.__childControls) {
|
|
3431
3133
|
return false;
|
|
3432
3134
|
}
|
|
@@ -3434,21 +3136,18 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3434
3136
|
return !!this.__childControls[id];
|
|
3435
3137
|
},
|
|
3436
3138
|
|
|
3437
|
-
|
|
3438
3139
|
/** @type {Map} Map of instantiated child controls */
|
|
3439
|
-
__childControls
|
|
3440
|
-
|
|
3140
|
+
__childControls: null,
|
|
3441
3141
|
|
|
3442
3142
|
/**
|
|
3443
3143
|
* Returns a map of all already created child controls
|
|
3444
3144
|
*
|
|
3445
3145
|
* @return {Map} mapping of child control id to the child widget.
|
|
3446
3146
|
*/
|
|
3447
|
-
_getCreatedChildControls
|
|
3147
|
+
_getCreatedChildControls() {
|
|
3448
3148
|
return this.__childControls;
|
|
3449
3149
|
},
|
|
3450
3150
|
|
|
3451
|
-
|
|
3452
3151
|
/**
|
|
3453
3152
|
* Returns the child control from the given ID. Returns
|
|
3454
3153
|
* <code>null</code> when the child control is unknown.
|
|
@@ -3467,10 +3166,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3467
3166
|
* should not be created dynamically if not yet available.
|
|
3468
3167
|
* @return {qx.ui.core.Widget} Child control
|
|
3469
3168
|
*/
|
|
3470
|
-
getChildControl
|
|
3471
|
-
|
|
3472
|
-
if (!this.__childControls)
|
|
3473
|
-
{
|
|
3169
|
+
getChildControl(id, notcreate) {
|
|
3170
|
+
if (!this.__childControls) {
|
|
3474
3171
|
if (notcreate) {
|
|
3475
3172
|
return null;
|
|
3476
3173
|
}
|
|
@@ -3490,43 +3187,37 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3490
3187
|
return this._createChildControl(id);
|
|
3491
3188
|
},
|
|
3492
3189
|
|
|
3493
|
-
|
|
3494
3190
|
/**
|
|
3495
3191
|
* Shows the given child control by ID
|
|
3496
3192
|
*
|
|
3497
3193
|
* @param id {String} ID of the child control
|
|
3498
3194
|
* @return {qx.ui.core.Widget} the child control
|
|
3499
3195
|
*/
|
|
3500
|
-
_showChildControl
|
|
3501
|
-
{
|
|
3196
|
+
_showChildControl(id) {
|
|
3502
3197
|
var control = this.getChildControl(id);
|
|
3503
3198
|
control.show();
|
|
3504
3199
|
return control;
|
|
3505
3200
|
},
|
|
3506
3201
|
|
|
3507
|
-
|
|
3508
3202
|
/**
|
|
3509
3203
|
* Excludes the given child control by ID
|
|
3510
3204
|
*
|
|
3511
3205
|
* @param id {String} ID of the child control
|
|
3512
3206
|
*/
|
|
3513
|
-
_excludeChildControl
|
|
3514
|
-
{
|
|
3207
|
+
_excludeChildControl(id) {
|
|
3515
3208
|
var control = this.getChildControl(id, true);
|
|
3516
3209
|
if (control) {
|
|
3517
3210
|
control.exclude();
|
|
3518
3211
|
}
|
|
3519
3212
|
},
|
|
3520
3213
|
|
|
3521
|
-
|
|
3522
3214
|
/**
|
|
3523
3215
|
* Whether the given child control is visible.
|
|
3524
3216
|
*
|
|
3525
3217
|
* @param id {String} ID of the child control
|
|
3526
3218
|
* @return {Boolean} <code>true</code> when the child control is visible.
|
|
3527
3219
|
*/
|
|
3528
|
-
_isChildControlVisible
|
|
3529
|
-
{
|
|
3220
|
+
_isChildControlVisible(id) {
|
|
3530
3221
|
var control = this.getChildControl(id, true);
|
|
3531
3222
|
if (control) {
|
|
3532
3223
|
return control.isVisible();
|
|
@@ -3535,7 +3226,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3535
3226
|
return false;
|
|
3536
3227
|
},
|
|
3537
3228
|
|
|
3538
|
-
|
|
3539
3229
|
/**
|
|
3540
3230
|
* Release the child control by ID and decouple the
|
|
3541
3231
|
* child from the parent. This method does not dispose the child control.
|
|
@@ -3543,8 +3233,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3543
3233
|
* @param id {String} ID of the child control
|
|
3544
3234
|
* @return {qx.ui.core.Widget} The released control
|
|
3545
3235
|
*/
|
|
3546
|
-
_releaseChildControl
|
|
3547
|
-
{
|
|
3236
|
+
_releaseChildControl(id) {
|
|
3548
3237
|
var control = this.getChildControl(id, false);
|
|
3549
3238
|
if (!control) {
|
|
3550
3239
|
throw new Error("Unsupported control: " + id);
|
|
@@ -3571,7 +3260,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3571
3260
|
return control;
|
|
3572
3261
|
},
|
|
3573
3262
|
|
|
3574
|
-
|
|
3575
3263
|
/**
|
|
3576
3264
|
* Force the creation of the given child control by ID.
|
|
3577
3265
|
*
|
|
@@ -3582,8 +3270,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3582
3270
|
* @return {qx.ui.core.Widget} The created control
|
|
3583
3271
|
* @throws {Error} when the control was created before
|
|
3584
3272
|
*/
|
|
3585
|
-
_createChildControl
|
|
3586
|
-
{
|
|
3273
|
+
_createChildControl(id) {
|
|
3587
3274
|
if (!this.__childControls) {
|
|
3588
3275
|
this.__childControls = {};
|
|
3589
3276
|
} else if (this.__childControls[id]) {
|
|
@@ -3596,12 +3283,18 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3596
3283
|
var control = this._createChildControlImpl(id);
|
|
3597
3284
|
} else {
|
|
3598
3285
|
var control = this._createChildControlImpl(
|
|
3599
|
-
id.substring(0, pos),
|
|
3286
|
+
id.substring(0, pos),
|
|
3287
|
+
id.substring(pos + 1, id.length)
|
|
3600
3288
|
);
|
|
3601
3289
|
}
|
|
3602
|
-
} catch(exc) {
|
|
3603
|
-
exc.message =
|
|
3604
|
-
|
|
3290
|
+
} catch (exc) {
|
|
3291
|
+
exc.message =
|
|
3292
|
+
"Exception while creating child control '" +
|
|
3293
|
+
id +
|
|
3294
|
+
"' of widget " +
|
|
3295
|
+
this.toString() +
|
|
3296
|
+
": " +
|
|
3297
|
+
exc.message;
|
|
3605
3298
|
throw exc;
|
|
3606
3299
|
}
|
|
3607
3300
|
|
|
@@ -3617,10 +3310,8 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3617
3310
|
var states = this.__states;
|
|
3618
3311
|
var forward = this._forwardStates;
|
|
3619
3312
|
|
|
3620
|
-
if (states && forward && control instanceof qx.ui.core.Widget)
|
|
3621
|
-
|
|
3622
|
-
for (var state in states)
|
|
3623
|
-
{
|
|
3313
|
+
if (states && forward && control instanceof qx.ui.core.Widget) {
|
|
3314
|
+
for (var state in states) {
|
|
3624
3315
|
if (forward[state]) {
|
|
3625
3316
|
control.addState(state);
|
|
3626
3317
|
}
|
|
@@ -3638,10 +3329,9 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3638
3329
|
this.fireDataEvent("createChildControl", control);
|
|
3639
3330
|
|
|
3640
3331
|
// Register control and return
|
|
3641
|
-
return this.__childControls[id] = control;
|
|
3332
|
+
return (this.__childControls[id] = control);
|
|
3642
3333
|
},
|
|
3643
3334
|
|
|
3644
|
-
|
|
3645
3335
|
/**
|
|
3646
3336
|
* Internal method to create child controls. This method
|
|
3647
3337
|
* should be overwritten by classes which extends this one
|
|
@@ -3653,18 +3343,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3653
3343
|
* all text following the # will be the hash argument.
|
|
3654
3344
|
* @return {qx.ui.core.Widget} The created control or <code>null</code>
|
|
3655
3345
|
*/
|
|
3656
|
-
_createChildControlImpl
|
|
3346
|
+
_createChildControlImpl(id, hash) {
|
|
3657
3347
|
return null;
|
|
3658
3348
|
},
|
|
3659
3349
|
|
|
3660
|
-
|
|
3661
3350
|
/**
|
|
3662
3351
|
* Dispose all registered controls. This is automatically
|
|
3663
3352
|
* executed by the widget.
|
|
3664
3353
|
*
|
|
3665
3354
|
*/
|
|
3666
|
-
_disposeChildControls
|
|
3667
|
-
{
|
|
3355
|
+
_disposeChildControls() {
|
|
3668
3356
|
var controls = this.__childControls;
|
|
3669
3357
|
if (!controls) {
|
|
3670
3358
|
return;
|
|
@@ -3672,8 +3360,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3672
3360
|
|
|
3673
3361
|
var Widget = qx.ui.core.Widget;
|
|
3674
3362
|
|
|
3675
|
-
for (var id in controls)
|
|
3676
|
-
{
|
|
3363
|
+
for (var id in controls) {
|
|
3677
3364
|
var control = controls[id];
|
|
3678
3365
|
if (!Widget.contains(this, control)) {
|
|
3679
3366
|
control.destroy();
|
|
@@ -3685,18 +3372,15 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3685
3372
|
delete this.__childControls;
|
|
3686
3373
|
},
|
|
3687
3374
|
|
|
3688
|
-
|
|
3689
3375
|
/**
|
|
3690
3376
|
* Finds and returns the top level control. This is the first
|
|
3691
3377
|
* widget which is not a child control of any other widget.
|
|
3692
3378
|
*
|
|
3693
3379
|
* @return {qx.ui.core.Widget} The top control
|
|
3694
3380
|
*/
|
|
3695
|
-
_findTopControl
|
|
3696
|
-
{
|
|
3381
|
+
_findTopControl() {
|
|
3697
3382
|
var obj = this;
|
|
3698
|
-
while (obj)
|
|
3699
|
-
{
|
|
3383
|
+
while (obj) {
|
|
3700
3384
|
if (!obj.$$subparent) {
|
|
3701
3385
|
return obj;
|
|
3702
3386
|
}
|
|
@@ -3707,7 +3391,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3707
3391
|
return null;
|
|
3708
3392
|
},
|
|
3709
3393
|
|
|
3710
|
-
|
|
3711
3394
|
/**
|
|
3712
3395
|
* Return the ID (name) if this instance was a created as a child control of another widget.
|
|
3713
3396
|
*
|
|
@@ -3715,20 +3398,16 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3715
3398
|
*
|
|
3716
3399
|
* @return {String|null} ID of the current widget or null if it was not created as a subcontrol
|
|
3717
3400
|
*/
|
|
3718
|
-
getSubcontrolId
|
|
3719
|
-
{
|
|
3401
|
+
getSubcontrolId() {
|
|
3720
3402
|
return this.$$subcontrol || null;
|
|
3721
3403
|
},
|
|
3722
3404
|
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
3405
|
/*
|
|
3726
3406
|
---------------------------------------------------------------------------
|
|
3727
3407
|
LOWER LEVEL ACCESS
|
|
3728
3408
|
---------------------------------------------------------------------------
|
|
3729
3409
|
*/
|
|
3730
3410
|
|
|
3731
|
-
|
|
3732
3411
|
/**
|
|
3733
3412
|
* Computes the location of the content element in context of the document
|
|
3734
3413
|
* dimensions.
|
|
@@ -3751,13 +3430,11 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3751
3430
|
* <code>right</code> and <code>bottom</code> which contains the distance
|
|
3752
3431
|
* of the element relative to the document.
|
|
3753
3432
|
*/
|
|
3754
|
-
getContentLocation
|
|
3755
|
-
{
|
|
3433
|
+
getContentLocation(mode) {
|
|
3756
3434
|
var domEl = this.getContentElement().getDomElement();
|
|
3757
3435
|
return domEl ? qx.bom.element.Location.get(domEl, mode) : null;
|
|
3758
3436
|
},
|
|
3759
3437
|
|
|
3760
|
-
|
|
3761
3438
|
/**
|
|
3762
3439
|
* Directly modifies the relative left position in relation
|
|
3763
3440
|
* to the parent element.
|
|
@@ -3768,8 +3445,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3768
3445
|
*
|
|
3769
3446
|
* @param value {Integer} Left position
|
|
3770
3447
|
*/
|
|
3771
|
-
setDomLeft
|
|
3772
|
-
{
|
|
3448
|
+
setDomLeft(value) {
|
|
3773
3449
|
var domEl = this.getContentElement().getDomElement();
|
|
3774
3450
|
if (domEl) {
|
|
3775
3451
|
domEl.style.left = value + "px";
|
|
@@ -3778,7 +3454,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3778
3454
|
}
|
|
3779
3455
|
},
|
|
3780
3456
|
|
|
3781
|
-
|
|
3782
3457
|
/**
|
|
3783
3458
|
* Directly modifies the relative top position in relation
|
|
3784
3459
|
* to the parent element.
|
|
@@ -3789,8 +3464,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3789
3464
|
*
|
|
3790
3465
|
* @param value {Integer} Top position
|
|
3791
3466
|
*/
|
|
3792
|
-
setDomTop
|
|
3793
|
-
{
|
|
3467
|
+
setDomTop(value) {
|
|
3794
3468
|
var domEl = this.getContentElement().getDomElement();
|
|
3795
3469
|
if (domEl) {
|
|
3796
3470
|
domEl.style.top = value + "px";
|
|
@@ -3799,7 +3473,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3799
3473
|
}
|
|
3800
3474
|
},
|
|
3801
3475
|
|
|
3802
|
-
|
|
3803
3476
|
/**
|
|
3804
3477
|
* Directly modifies the relative left and top position in relation
|
|
3805
3478
|
* to the parent element.
|
|
@@ -3811,34 +3484,28 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3811
3484
|
* @param left {Integer} Left position
|
|
3812
3485
|
* @param top {Integer} Top position
|
|
3813
3486
|
*/
|
|
3814
|
-
setDomPosition
|
|
3815
|
-
{
|
|
3487
|
+
setDomPosition(left, top) {
|
|
3816
3488
|
var domEl = this.getContentElement().getDomElement();
|
|
3817
|
-
if (domEl)
|
|
3818
|
-
{
|
|
3489
|
+
if (domEl) {
|
|
3819
3490
|
domEl.style.left = left + "px";
|
|
3820
3491
|
domEl.style.top = top + "px";
|
|
3821
|
-
}
|
|
3822
|
-
else
|
|
3823
|
-
{
|
|
3492
|
+
} else {
|
|
3824
3493
|
throw new Error("DOM element is not yet created!");
|
|
3825
3494
|
}
|
|
3826
3495
|
},
|
|
3827
3496
|
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
3497
|
/*
|
|
3831
3498
|
---------------------------------------------------------------------------
|
|
3832
3499
|
ARIA attrs support
|
|
3833
3500
|
---------------------------------------------------------------------------
|
|
3834
3501
|
*/
|
|
3835
|
-
|
|
3502
|
+
|
|
3836
3503
|
/**
|
|
3837
3504
|
* Sets the string which labels this widget. This will be read out by screenreaders. Needed if there is no
|
|
3838
3505
|
* readable text/label in this widget which would automatically act as aria-label.
|
|
3839
3506
|
* @param label {String} Labelling Text
|
|
3840
3507
|
*/
|
|
3841
|
-
setAriaLabel
|
|
3508
|
+
setAriaLabel(label) {
|
|
3842
3509
|
this.getContentElement().setAttribute("aria-label", label);
|
|
3843
3510
|
},
|
|
3844
3511
|
|
|
@@ -3849,7 +3516,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3849
3516
|
* widgets can be added.
|
|
3850
3517
|
* @param labelWidgets {qx.ui.core.Widget[]} Indefinite Number of labelling Widgets
|
|
3851
3518
|
*/
|
|
3852
|
-
addAriaLabelledBy
|
|
3519
|
+
addAriaLabelledBy(...labelWidgets) {
|
|
3853
3520
|
this.__addAriaXBy(labelWidgets, "aria-labelledby");
|
|
3854
3521
|
},
|
|
3855
3522
|
|
|
@@ -3858,7 +3525,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3858
3525
|
* information. Multiple Widgets possible.
|
|
3859
3526
|
* @param describingWidgets {qx.ui.core.Widget[]} Indefinite Number of describing Widgets
|
|
3860
3527
|
*/
|
|
3861
|
-
addAriaDescribedBy
|
|
3528
|
+
addAriaDescribedBy(...describingWidgets) {
|
|
3862
3529
|
this.__addAriaXBy(describingWidgets, "aria-describedby");
|
|
3863
3530
|
},
|
|
3864
3531
|
|
|
@@ -3867,14 +3534,18 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3867
3534
|
* @param widgets {qx.ui.core.Widget[]} Indefinite Number of widgets
|
|
3868
3535
|
* @param ariaAttr {String} aria-labelledby | aria-describedby
|
|
3869
3536
|
*/
|
|
3870
|
-
__addAriaXBy
|
|
3537
|
+
__addAriaXBy(widgets, ariaAttr) {
|
|
3871
3538
|
if (!["aria-labelledby", "aria-describedby"].includes(ariaAttr)) {
|
|
3872
3539
|
throw new Error("Only aria-labelledby or aria-describedby allowed!");
|
|
3873
3540
|
}
|
|
3874
3541
|
let idArr = [];
|
|
3875
3542
|
for (const widget of widgets) {
|
|
3876
3543
|
if (!(widget instanceof qx.ui.core.Widget)) {
|
|
3877
|
-
throw new Error(
|
|
3544
|
+
throw new Error(
|
|
3545
|
+
"Given widget " +
|
|
3546
|
+
widget +
|
|
3547
|
+
" is not an instance of qx.ui.core.Widget!"
|
|
3548
|
+
);
|
|
3878
3549
|
}
|
|
3879
3550
|
const contentEl = widget.getContentElement();
|
|
3880
3551
|
let widgetId = contentEl.getAttribute("id");
|
|
@@ -3896,8 +3567,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3896
3567
|
contentEl.setAttribute(ariaAttr, res);
|
|
3897
3568
|
},
|
|
3898
3569
|
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
3570
|
/*
|
|
3902
3571
|
---------------------------------------------------------------------------
|
|
3903
3572
|
ENHANCED DISPOSE SUPPORT
|
|
@@ -3911,8 +3580,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3911
3580
|
* real dispose happens after the next queue flush.
|
|
3912
3581
|
*
|
|
3913
3582
|
*/
|
|
3914
|
-
destroy
|
|
3915
|
-
{
|
|
3583
|
+
destroy() {
|
|
3916
3584
|
if (this.$$disposed) {
|
|
3917
3585
|
return;
|
|
3918
3586
|
}
|
|
@@ -3930,10 +3598,6 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3930
3598
|
qx.ui.core.queue.Dispose.add(this);
|
|
3931
3599
|
},
|
|
3932
3600
|
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
3601
|
/*
|
|
3938
3602
|
---------------------------------------------------------------------------
|
|
3939
3603
|
CLONE SUPPORT
|
|
@@ -3941,43 +3605,32 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3941
3605
|
*/
|
|
3942
3606
|
|
|
3943
3607
|
// overridden
|
|
3944
|
-
clone
|
|
3945
|
-
|
|
3946
|
-
var clone = this.base(arguments);
|
|
3608
|
+
clone() {
|
|
3609
|
+
var clone = super.clone();
|
|
3947
3610
|
|
|
3948
|
-
if (this.getChildren)
|
|
3949
|
-
{
|
|
3611
|
+
if (this.getChildren) {
|
|
3950
3612
|
var children = this.getChildren();
|
|
3951
|
-
for (var i=0, l=children.length; i<l; i++) {
|
|
3613
|
+
for (var i = 0, l = children.length; i < l; i++) {
|
|
3952
3614
|
clone.add(children[i].clone());
|
|
3953
3615
|
}
|
|
3954
3616
|
}
|
|
3955
3617
|
|
|
3956
3618
|
return clone;
|
|
3957
3619
|
}
|
|
3958
|
-
|
|
3959
3620
|
},
|
|
3960
3621
|
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
3622
|
/*
|
|
3966
3623
|
*****************************************************************************
|
|
3967
3624
|
DESTRUCTOR
|
|
3968
3625
|
*****************************************************************************
|
|
3969
3626
|
*/
|
|
3970
3627
|
|
|
3971
|
-
destruct
|
|
3972
|
-
{
|
|
3628
|
+
destruct() {
|
|
3973
3629
|
// Some dispose stuff is not needed in global shutdown, otherwise
|
|
3974
3630
|
// it just slows down things a bit, so do not do them.
|
|
3975
|
-
if (!qx.core.ObjectRegistry.inShutDown)
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
{
|
|
3979
|
-
if (this.__toolTipTextListenerId)
|
|
3980
|
-
{
|
|
3631
|
+
if (!qx.core.ObjectRegistry.inShutDown) {
|
|
3632
|
+
if (qx.core.Environment.get("qx.dynlocale")) {
|
|
3633
|
+
if (this.__toolTipTextListenerId) {
|
|
3981
3634
|
qx.locale.Manager.getInstance().removeListenerById(
|
|
3982
3635
|
this.__toolTipTextListenerId
|
|
3983
3636
|
);
|
|
@@ -3987,7 +3640,7 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
3987
3640
|
// Remove widget pointer from DOM
|
|
3988
3641
|
var contentEl = this.getContentElement();
|
|
3989
3642
|
if (contentEl) {
|
|
3990
|
-
|
|
3643
|
+
contentEl.disconnectWidget(this);
|
|
3991
3644
|
}
|
|
3992
3645
|
|
|
3993
3646
|
// Clean up all child controls
|
|
@@ -4005,28 +3658,20 @@ qx.Class.define("qx.ui.core.Widget",
|
|
|
4005
3658
|
}
|
|
4006
3659
|
|
|
4007
3660
|
// pool decorators if not in global shutdown
|
|
4008
|
-
if (!qx.core.ObjectRegistry.inShutDown)
|
|
4009
|
-
{
|
|
3661
|
+
if (!qx.core.ObjectRegistry.inShutDown) {
|
|
4010
3662
|
this.clearSeparators();
|
|
4011
3663
|
this.__separators = null;
|
|
4012
|
-
}
|
|
4013
|
-
else
|
|
4014
|
-
{
|
|
3664
|
+
} else {
|
|
4015
3665
|
this._disposeArray("__separators");
|
|
4016
3666
|
}
|
|
4017
3667
|
|
|
4018
3668
|
// Clear children array
|
|
4019
3669
|
this._disposeArray("__widgetChildren");
|
|
4020
3670
|
|
|
4021
|
-
|
|
4022
3671
|
// Cleanup map of appearance states
|
|
4023
3672
|
this.__states = this.__childControls = null;
|
|
4024
3673
|
|
|
4025
|
-
|
|
4026
3674
|
// Dispose layout manager and HTML elements
|
|
4027
|
-
this._disposeObjects(
|
|
4028
|
-
"__layoutManager",
|
|
4029
|
-
"__contentElement"
|
|
4030
|
-
);
|
|
3675
|
+
this._disposeObjects("__layoutManager", "__contentElement");
|
|
4031
3676
|
}
|
|
4032
3677
|
});
|