sketchup-api-stubs 0.7.8 → 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -148
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -523
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -698
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -516
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -692
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/Length.rb +278 -278
  51. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -619
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -426
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1205
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -272
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -407
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -326
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -112
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1651
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -477
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -260
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -837
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1317
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1377 -1360
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -496
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +683 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +10 -7
@@ -1,496 +1,494 @@
1
- # Copyright:: Copyright 2022 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Ruby HtmlDialog class allows you to create and interact with HTML dialog
5
- # boxes from Ruby. This is the best way to generate complex, embedded UIs
6
- # inside SketchUp, but it does generally require HTML and JavaScript expertise.
7
- #
8
- # If your goal is to simple display a website to your users, consider using
9
- # {UI#openURL}, which will show them a web page in their default browser rather
10
- # than inside a dialog in SketchUp.
11
- #
12
- # The left, top, width, height etc. dimensions of the dialog are in logical
13
- # units. This means you provide the units as if they where on a monitor with
14
- # "normal" DPI. The units given will be multiplied by the same factor as
15
- # returned by {UI.scale_factor}.
16
- #
17
- # For usage examples, including how to migrate from the old WebDialog class,
18
- # see https://github.com/SketchUp/htmldialog-examples.
19
- # You may use the {https://sketchup.github.io/modus-for-sketchup-extensions Trimble Modus}
20
- # framework for a look and feel of your dialog that matches that of SketchUp's dialogs.
21
- #
22
- # HtmlDialog uses the following versions of CEF (Chromium Embedded Framework):
23
- #
24
- # [SketchUp 2021.1]
25
- # CEF 88
26
- # [SketchUp 2019.0]
27
- # CEF 64
28
- # [SketchUp 2018.0]
29
- # CEF 56
30
- # [SketchUp 2017.0]
31
- # CEF 52
32
- #
33
- # @version SketchUp 2017
34
- class UI::HtmlDialog
35
-
36
- # Constants
37
-
38
- CEF_VERSION = nil # Stub value.
39
-
40
- CHROME_VERSION = nil # Stub value.
41
-
42
- STYLE_DIALOG = nil # Stub value.
43
- STYLE_UTILITY = nil # Stub value.
44
- STYLE_WINDOW = nil # Stub value.
45
-
46
- # Instance Methods
47
-
48
- # The {#add_action_callback} method establishes a Ruby callback method that your
49
- # html dialog can call to perform some function.
50
- #
51
- # Use the +sketchup.callback_method_name+ to invoke the callback method from your
52
- # html dialog. Your JavaScript in the html dialog will invoke the callback with
53
- # the same number of arguments.
54
- #
55
- # The call is asynchronous. JavaScript call might return before Ruby callback
56
- # even called. Use +onCompleted+ callback to get notified for completion.
57
- #
58
- # Basic types such as booleans, numbers, strings, arrays and hashes are
59
- # automatically converted between Ruby and JavaScript.
60
- #
61
- # @example Ruby Code
62
- # dialog.add_action_callback("say") { |action_context, param1, param2|
63
- # puts "JavaScript said #{param1} and #{param2}"
64
- # }
65
- #
66
- # @example JavaScript
67
- # sketchup.say('Hello World', 42);
68
- #
69
- # @example JavaScript with callback
70
- # sketchup.say('Hello World', 42, {
71
- # onCompleted: function() {
72
- # console.log('Ruby side done.');
73
- # }
74
- # });
75
- #
76
- # @note When an HtmlDialog is closed, all callbacks to that instance are
77
- # cleared. Re-attach them if you need to open the dialog again.
78
- #
79
- # @param [String] callback_name
80
- # The name of the callback method to be
81
- # invoked from the html dialog.
82
- #
83
- # @return [Boolean] true if action added successfully, false
84
- # otherwise.
85
- #
86
- # @version SketchUp 2017
87
- #
88
- # @yield [action_context, ...]
89
- #
90
- # @yieldparam [Object] action_context
91
- # action_context Currently unused.
92
- #
93
- # @yieldparam [Object] ...
94
- # The parameters sent from JavaScript.
95
- def add_action_callback(callback_name)
96
- end
97
-
98
- # The {#bring_to_front} method is used to bring the window to the front,
99
- # putting it on top of other windows even if its minimized.
100
- #
101
- # @bug Prior to SketchUp 2021.1, on Mac, the focus the was not being set
102
- # on the {UI::HtmlDialog}.
103
- #
104
- # @example
105
- # dialog.bring_to_front
106
- #
107
- # @return [nil]
108
- #
109
- # @see Sketchup.focus
110
- #
111
- # @version SketchUp 2017
112
- def bring_to_front
113
- end
114
-
115
- # The {#center} method is used to center the HtmlDialog relative to the active
116
- # model window. If there is no active model window, this function doesn't do
117
- # anything.
118
- #
119
- # @example
120
- # dialog.center
121
- #
122
- # @return [true] This always return true, never false.
123
- #
124
- # @version SketchUp 2017
125
- def center
126
- end
127
-
128
- # The {#close} method is used to close a dialog box.
129
- #
130
- # @example
131
- # dialog.close
132
- #
133
- # @return [nil]
134
- #
135
- # @version SketchUp 2017
136
- def close
137
- end
138
-
139
- # The {#execute_script} method is used to execute a JavaScript string on the
140
- # html dialog asynchronously.
141
- #
142
- # @example
143
- # js_command = "document.getElementById('id').innerHTML = '<b>Hi!</b>'"
144
- # dialog.execute_script(js_command)
145
- #
146
- # @param [String] script
147
- # The JavaScript script to execute on the HtmlDialog.
148
- #
149
- # @return [nil]
150
- #
151
- # @version SketchUp 2017
152
- def execute_script(script)
153
- end
154
-
155
- # The {#get_content_size} method is used to get the content size of the HtmlDialog, in logical
156
- # pixels.
157
- #
158
- # @example
159
- # width, height = dialog.get_content_size
160
- #
161
- # @return [Array(Integer, Integer), nil] Content width and height of the HtmlDialog.
162
- # A nil value is returned if the HtmlDialog
163
- # is not visible.
164
- #
165
- # @version SketchUp 2021.1
166
- def get_content_size
167
- end
168
-
169
- # The {#get_position} method is used to get the position of the HtmlDialog
170
- # relative to the screen, in logical pixels.
171
- #
172
- # @example
173
- # left, top = dialog.get_position
174
- #
175
- # @return [Array(Integer, Integer), nil] Left and top position of the dialog.
176
- # A nil value is returned if the HtmlDialog
177
- # is not visible.
178
- #
179
- # @version SketchUp 2021.1
180
- def get_position
181
- end
182
-
183
- # The {#get_size} method is used to get the outer frame size of the HtmlDialog, in logical pixels.
184
- #
185
- # @example
186
- # width, height = dialog.get_size
187
- #
188
- # @return [Array(Integer, Integer), nil] Outer frame width and height of the HtmlDialog.
189
- # A nil value is returned if the HtmlDialog
190
- # is not visible.
191
- #
192
- # @version SketchUp 2021.1
193
- def get_size
194
- end
195
-
196
- # The new method is used to create a new HtmlDialog.
197
- #
198
- # In SketchUp 2021.1 +use_content_size+ was added.
199
- # When set to +true+, +width+, +height+, +min_width+,
200
- # +max width+, +min_height+, +max_height+ will represent the size of the
201
- # content area of the window. This excludes the titlebar and the window frame.
202
- # When +use_content_size+ is set to +false+ (the default value),
203
- # the size dimensions will represent the outer frame size.
204
- #
205
- # The +properties+ hash accepts an optional key +style+ where the value is
206
- # one of:
207
- #
208
- # [+UI::HtmlDialog::STYLE_DIALOG+] HtmlDialog stays at the top of SketchUp.
209
- #
210
- # [+UI::HtmlDialog::STYLE_WINDOW+] HtmlDialog can go behind SketchUp and
211
- # doesn't disappear when SketchUp looses
212
- # focus.
213
- #
214
- # [+UI::HtmlDialog::STYLE_UTILITY+] HtmlDialog is shown with small titlebar
215
- # and stays on top of SketchUp.
216
- #
217
- # @bug Prior to SketchUp 2019 the +:width+ and +:height+ provided is ignored
218
- # if a +:preference_key+ is also present. To work around this bug on older
219
- # versions use {#set_size} after you initialize the dialog.
220
- #
221
- # @bug SketchUp 2022.0 fixed a bug where position was set incorrectly when
222
- # +use_content_size+ was set to +true+.
223
- #
224
- # @bug SketchUp 2022.0 fixed a bug where +max_height+ and +max_width+ were swapped
225
- # when +use_content_size+ was set to +true+.
226
- #
227
- # @bug SketchUp 2022.0 fixed a bug where +use_content_size+ was not persisted (when
228
- # +preferences_key+ is set).
229
- #
230
- # @bug SketchUp 2022.0 fixed a bug on Mac where size and position of the
231
- # HtmlDialog were not persisted when SketchUp was closed without first
232
- # closing the HtmlDialog window.
233
- #
234
- # @example With options Hash
235
- # dialog = UI::HtmlDialog.new(
236
- # {
237
- # :dialog_title => "Dialog Example",
238
- # :preferences_key => "com.sample.plugin",
239
- # :scrollable => true,
240
- # :resizable => true,
241
- # :width => 600,
242
- # :height => 400,
243
- # :left => 100,
244
- # :top => 100,
245
- # :min_width => 50,
246
- # :min_height => 50,
247
- # :max_width =>1000,
248
- # :max_height => 1000,
249
- # :style => UI::HtmlDialog::STYLE_DIALOG
250
- # })
251
- # dialog.set_url("http://www.sketchup.com")
252
- # dialog.show
253
- #
254
- # @example With keyword style argument
255
- # dialog = UI::HtmlDialog.new(
256
- # dialog_title: "Dialog Example",
257
- # preferences_key: "my_name_my_extension_my_dialog",
258
- # scrollable: true,
259
- # resizable: true,
260
- # width: 600,
261
- # height: 400,
262
- # left: 100,
263
- # top: 100,
264
- # min_width: 50,
265
- # min_height: 50,
266
- # max_width: 1000,
267
- # max_height: 1000,
268
- # style: UI::HtmlDialog::STYLE_DIALOG
269
- # )
270
- # dialog.set_url("https://www.sketchup.com")
271
- # dialog.show
272
- #
273
- # @note Prefix +preference_key+ with something unique to your extension.
274
- #
275
- # @note If there is no reference kept to the HtmlDialog object, the window
276
- # will close once the garbage collection runs. This behavior can be confusing
277
- # in trivial test code but is usually not a concern in real life scenarios.
278
- # Typically a persistent reference, e.g. an instance variable, should be kept
279
- # to bring the dialog to front, rather than creating a duplicate, if the user
280
- # should request it a second time.
281
- #
282
- # @option properties [String] :dialog_title
283
- #
284
- # @option properties [String] :preferences_key
285
- #
286
- # @option properties [Boolean] :scrollable
287
- #
288
- # @option properties [Boolean] :resizable (true)
289
- #
290
- # @option properties [Boolean] :use_content_size (false)
291
- #
292
- # @option properties [Integer] :width (250)
293
- #
294
- # @option properties [Integer] :height (250)
295
- #
296
- # @option properties [Integer] :left (0)
297
- #
298
- # @option properties [Integer] :top (0)
299
- #
300
- # @option properties [Integer] :min_width (0)
301
- #
302
- # @option properties [Integer] :min_height (0)
303
- #
304
- # @option properties [Integer] :max_width (-1)
305
- #
306
- # @option properties [Integer] :max_height (-1)
307
- #
308
- # @option properties [Integer] :style (UI::HtmlDialog::STYLE_DIALOG)
309
- #
310
- # @param [Hash] properties
311
- # A hash containing the initial properties of
312
- # the newly created dialog.
313
- #
314
- # @return [HtmlDialog]
315
- #
316
- # @version SketchUp 2017
317
- def initialize(properties)
318
- end
319
-
320
- # The {#set_can_close} method is used to attach a block that is executed just
321
- # before closing, this block has to return a boolean, if the block returns
322
- # false the close will be canceled.
323
- #
324
- # @example
325
- # dialog.set_can_close { false }
326
- #
327
- # @return [Boolean]
328
- #
329
- # @version SketchUp 2017
330
- #
331
- # @yieldreturn [Boolean] Return a boolean to indicate if the dialogs should
332
- # close.
333
- def set_can_close
334
- end
335
-
336
- # The {#set_content_size} method is used to set the content size of the HtmlDialog, in logical
337
- # pixels.
338
- #
339
- # @example
340
- # dialog.set_content_size(600, 400)
341
- #
342
- # @param [Integer] width
343
- # Content width of the HtmlDialog.
344
- #
345
- # @param [Integer] height
346
- # Content height of the HtmlDialog.
347
- #
348
- # @return [nil]
349
- #
350
- # @version SketchUp 2021.1
351
- def set_content_size(width, height)
352
- end
353
-
354
- # The {#set_file} method is used to identify a local HTML file to display in the
355
- # HtmlDialog.
356
- #
357
- # @example
358
- # dialog.set_file("c:/mypage.html")
359
- #
360
- # @param [String] filename
361
- # The filename for the HtmlDialog file (HTML file)
362
- #
363
- # @return [nil]
364
- #
365
- # @version SketchUp 2017
366
- def set_file(filename)
367
- end
368
-
369
- # The {#set_html} method is used to load a HtmlDialog with a string of provided
370
- # HTML.
371
- #
372
- # @example
373
- # html = '<b>Hello world!</b>'
374
- # dialog.set_html(html)
375
- #
376
- # @param [String] html_string
377
- # A string of valid html to display in your
378
- # HtmlDialog.
379
- #
380
- # @return [nil]
381
- #
382
- # @version SketchUp 2017
383
- def set_html(html_string)
384
- end
385
-
386
- # The {#set_on_closed} method is used to attach a block that will be
387
- # executed when a dialog is already in the process of closing, do any last
388
- # minute operations within this block such as saving the current state.
389
- #
390
- # @example
391
- # dialog.set_on_closed { save_selection }
392
- #
393
- # @return [Boolean]
394
- #
395
- # @version SketchUp 2017
396
- def set_on_closed
397
- end
398
-
399
- # The {#set_position} method is used to set the position of the HtmlDialog
400
- # relative to the screen, in pixels.
401
- #
402
- # @bug Prior to SketchUp 2021.1, on Windows, calling this method incorrectly
403
- # set the focus on the {UI::HtmlDialog}.
404
- #
405
- # @example
406
- # dialog.set_position(100, 50)
407
- #
408
- # @param [Integer] left
409
- # The number of pixels from the left.
410
- #
411
- # @param [Integer] top
412
- # The number of pixels from the top of the screen.
413
- #
414
- # @return [true] This always return true, never false.
415
- #
416
- # @version SketchUp 2017
417
- def set_position(left, top)
418
- end
419
-
420
- # The {#set_size} method is used to set the outer frame size of the HtmlDialog, in pixels.
421
- #
422
- # @bug Prior to SketchUp 2021.1, on Windows, calling this method incorrectly
423
- # set the focus on the {UI::HtmlDialog}.
424
- #
425
- # @example
426
- # dialog.set_size(320, 240)
427
- #
428
- # @param [Integer] width
429
- # Outer frame width of the HtmlDialog.
430
- #
431
- # @param [Integer] height
432
- # Outer frame height of the HtmlDialog.
433
- #
434
- # @return [true] This always return true, never false.
435
- #
436
- # @version SketchUp 2017
437
- def set_size(width, height)
438
- end
439
-
440
- # The {#set_url} method is used to load a HtmlDialog with the content at a
441
- # specific URL. This method allows you to load web sites in a HtmlDialog.
442
- #
443
- # @example
444
- # dialog.set_url("https://www.sketchup.com")
445
- #
446
- # @param [String] url
447
- # The URL for a specific web site.
448
- #
449
- # @return [nil]
450
- #
451
- # @version SketchUp 2017
452
- def set_url(url)
453
- end
454
-
455
- # The {#show} method is used to display a non-modal dialog box.
456
- #
457
- # @example
458
- # dialog.show
459
- #
460
- # @return [nil]
461
- #
462
- # @version SketchUp 2017
463
- def show
464
- end
465
-
466
- # The {#show_modal} method is used to display a modal dialog box.
467
- #
468
- # @example
469
- # dialog.show_modal
470
- #
471
- # @return [nil]
472
- #
473
- # @version SketchUp 2017
474
- def show_modal
475
- end
476
-
477
- # The {#visible?} method is useful to tell if the dialog is shown and still
478
- # alive, if the dialog is minimized or not visible on the screen this will
479
- # still return +true+.
480
- #
481
- # @example
482
- # if dialog.visible?
483
- # dialog.bring_to_front
484
- # else
485
- # dialog = UI::HtmlDialog.new
486
- # dialog.set_url("https://www.sketchup.com")
487
- # dialog.show
488
- # end
489
- #
490
- # @return [Boolean] Returns true if the dialog is open.
491
- #
492
- # @version SketchUp 2017
493
- def visible?
494
- end
495
-
496
- end
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Ruby HtmlDialog class allows you to create and interact with HTML dialog
5
+ # boxes from Ruby. This is the best way to generate complex, embedded UIs
6
+ # inside SketchUp, but it does generally require HTML and JavaScript expertise.
7
+ #
8
+ # If your goal is to simple display a website to your users, consider using
9
+ # {UI#openURL}, which will show them a web page in their default browser rather
10
+ # than inside a dialog in SketchUp.
11
+ #
12
+ # The left, top, width, height etc. dimensions of the dialog are in logical
13
+ # units. This means you provide the units as if they where on a monitor with
14
+ # "normal" DPI. The units given will be multiplied by the same factor as
15
+ # returned by {UI.scale_factor}.
16
+ #
17
+ # For usage examples, including how to migrate from the old WebDialog class,
18
+ # see https://github.com/SketchUp/htmldialog-examples.
19
+ # You may use the {https://sketchup.github.io/modus-for-sketchup-extensions Trimble Modus}
20
+ # framework for a look and feel of your dialog that matches that of SketchUp's dialogs.
21
+ #
22
+ # HtmlDialog uses the following versions of CEF (Chromium Embedded Framework):
23
+ #
24
+ # [SketchUp 2021.1]
25
+ # CEF 88
26
+ # [SketchUp 2019.0]
27
+ # CEF 64
28
+ # [SketchUp 2018.0]
29
+ # CEF 56
30
+ # [SketchUp 2017.0]
31
+ # CEF 52
32
+ #
33
+ # @version SketchUp 2017
34
+ class UI::HtmlDialog
35
+
36
+ # Constants
37
+
38
+ CEF_VERSION = nil # Stub value.
39
+
40
+ CHROME_VERSION = nil # Stub value.
41
+
42
+ STYLE_DIALOG = nil # Stub value.
43
+ STYLE_UTILITY = nil # Stub value.
44
+ STYLE_WINDOW = nil # Stub value.
45
+
46
+ # Instance Methods
47
+
48
+ # The {#add_action_callback} method establishes a Ruby callback method that your
49
+ # html dialog can call to perform some function.
50
+ #
51
+ # Use the +sketchup.callback_method_name+ to invoke the callback method from your
52
+ # html dialog. Your JavaScript in the html dialog will invoke the callback with
53
+ # the same number of arguments.
54
+ #
55
+ # The call is asynchronous. JavaScript call might return before Ruby callback
56
+ # even called. Use +onCompleted+ callback to get notified for completion.
57
+ #
58
+ # Basic types such as booleans, numbers, strings, arrays and hashes are
59
+ # automatically converted between Ruby and JavaScript.
60
+ #
61
+ # @example Ruby Code
62
+ # dialog.add_action_callback("say") { |action_context, param1, param2|
63
+ # puts "JavaScript said #{param1} and #{param2}"
64
+ # }
65
+ #
66
+ # @example JavaScript
67
+ # sketchup.say('Hello World', 42);
68
+ #
69
+ # @example JavaScript with callback
70
+ # sketchup.say('Hello World', 42, {
71
+ # onCompleted: function() {
72
+ # console.log('Ruby side done.');
73
+ # }
74
+ # });
75
+ #
76
+ # @note When an HtmlDialog is closed, all callbacks to that instance are
77
+ # cleared. Re-attach them if you need to open the dialog again.
78
+ #
79
+ # @param [String] callback_name
80
+ # The name of the callback method to be invoked from the html dialog.
81
+ #
82
+ # @return [Boolean] +true+ if action added successfully, +false+ otherwise.
83
+ #
84
+ # @version SketchUp 2017
85
+ #
86
+ # @yield [action_context, *args]
87
+ #
88
+ # @yieldparam [Object] action_context
89
+ # Currently unused.
90
+ #
91
+ # @yieldparam [Array<Object>] args
92
+ # The parameters sent from JavaScript.
93
+ def add_action_callback(callback_name)
94
+ end
95
+
96
+ # The {#bring_to_front} method is used to bring the window to the front,
97
+ # putting it on top of other windows even if its minimized.
98
+ #
99
+ # @bug Prior to SketchUp 2021.1, on Mac, the focus the was not being set
100
+ # on the {UI::HtmlDialog}.
101
+ #
102
+ # @example
103
+ # dialog.bring_to_front
104
+ #
105
+ # @return [nil]
106
+ #
107
+ # @see Sketchup.focus
108
+ #
109
+ # @version SketchUp 2017
110
+ def bring_to_front
111
+ end
112
+
113
+ # The {#center} method is used to center the HtmlDialog relative to the active
114
+ # model window. If there is no active model window, this function doesn't do
115
+ # anything.
116
+ #
117
+ # @example
118
+ # dialog.center
119
+ #
120
+ # @return [true] This always return true, never false.
121
+ #
122
+ # @version SketchUp 2017
123
+ def center
124
+ end
125
+
126
+ # The {#close} method is used to close a dialog box.
127
+ #
128
+ # @example
129
+ # dialog.close
130
+ #
131
+ # @return [nil]
132
+ #
133
+ # @version SketchUp 2017
134
+ def close
135
+ end
136
+
137
+ # The {#execute_script} method is used to execute a JavaScript string on the
138
+ # html dialog asynchronously.
139
+ #
140
+ # @example
141
+ # js_command = "document.getElementById('id').innerHTML = '<b>Hi!</b>'"
142
+ # dialog.execute_script(js_command)
143
+ #
144
+ # @param [String] script
145
+ # The JavaScript script to execute on the HtmlDialog.
146
+ #
147
+ # @return [nil]
148
+ #
149
+ # @version SketchUp 2017
150
+ def execute_script(script)
151
+ end
152
+
153
+ # The {#get_content_size} method is used to get the content size of the HtmlDialog, in logical
154
+ # pixels.
155
+ #
156
+ # @example
157
+ # width, height = dialog.get_content_size
158
+ #
159
+ # @return [Array(Integer, Integer), nil] Content width and height of the HtmlDialog.
160
+ # A nil value is returned if the HtmlDialog
161
+ # is not visible.
162
+ #
163
+ # @version SketchUp 2021.1
164
+ def get_content_size
165
+ end
166
+
167
+ # The {#get_position} method is used to get the position of the HtmlDialog
168
+ # relative to the screen, in logical pixels.
169
+ #
170
+ # @example
171
+ # left, top = dialog.get_position
172
+ #
173
+ # @return [Array(Integer, Integer), nil] Left and top position of the dialog.
174
+ # A nil value is returned if the HtmlDialog
175
+ # is not visible.
176
+ #
177
+ # @version SketchUp 2021.1
178
+ def get_position
179
+ end
180
+
181
+ # The {#get_size} method is used to get the outer frame size of the HtmlDialog, in logical pixels.
182
+ #
183
+ # @example
184
+ # width, height = dialog.get_size
185
+ #
186
+ # @return [Array(Integer, Integer), nil] Outer frame width and height of the HtmlDialog.
187
+ # A nil value is returned if the HtmlDialog
188
+ # is not visible.
189
+ #
190
+ # @version SketchUp 2021.1
191
+ def get_size
192
+ end
193
+
194
+ # The new method is used to create a new HtmlDialog.
195
+ #
196
+ # In SketchUp 2021.1 +use_content_size+ was added.
197
+ # When set to +true+, +width+, +height+, +min_width+,
198
+ # +max width+, +min_height+, +max_height+ will represent the size of the
199
+ # content area of the window. This excludes the titlebar and the window frame.
200
+ # When +use_content_size+ is set to +false+ (the default value),
201
+ # the size dimensions will represent the outer frame size.
202
+ #
203
+ # The +properties+ hash accepts an optional key +style+ where the value is
204
+ # one of:
205
+ #
206
+ # [+UI::HtmlDialog::STYLE_DIALOG+] HtmlDialog stays at the top of SketchUp.
207
+ #
208
+ # [+UI::HtmlDialog::STYLE_WINDOW+] HtmlDialog can go behind SketchUp and
209
+ # doesn't disappear when SketchUp looses
210
+ # focus.
211
+ #
212
+ # [+UI::HtmlDialog::STYLE_UTILITY+] HtmlDialog is shown with small titlebar
213
+ # and stays on top of SketchUp.
214
+ #
215
+ # @bug Prior to SketchUp 2019 the +:width+ and +:height+ provided is ignored
216
+ # if a +:preference_key+ is also present. To work around this bug on older
217
+ # versions use {#set_size} after you initialize the dialog.
218
+ #
219
+ # @bug SketchUp 2022.0 fixed a bug where position was set incorrectly when
220
+ # +use_content_size+ was set to +true+.
221
+ #
222
+ # @bug SketchUp 2022.0 fixed a bug where +max_height+ and +max_width+ were swapped
223
+ # when +use_content_size+ was set to +true+.
224
+ #
225
+ # @bug SketchUp 2022.0 fixed a bug where +use_content_size+ was not persisted (when
226
+ # +preferences_key+ is set).
227
+ #
228
+ # @bug SketchUp 2022.0 fixed a bug on Mac where size and position of the
229
+ # HtmlDialog were not persisted when SketchUp was closed without first
230
+ # closing the HtmlDialog window.
231
+ #
232
+ # @example With options Hash
233
+ # dialog = UI::HtmlDialog.new(
234
+ # {
235
+ # :dialog_title => "Dialog Example",
236
+ # :preferences_key => "com.sample.plugin",
237
+ # :scrollable => true,
238
+ # :resizable => true,
239
+ # :width => 600,
240
+ # :height => 400,
241
+ # :left => 100,
242
+ # :top => 100,
243
+ # :min_width => 50,
244
+ # :min_height => 50,
245
+ # :max_width =>1000,
246
+ # :max_height => 1000,
247
+ # :style => UI::HtmlDialog::STYLE_DIALOG
248
+ # })
249
+ # dialog.set_url("http://www.sketchup.com")
250
+ # dialog.show
251
+ #
252
+ # @example With keyword style argument
253
+ # dialog = UI::HtmlDialog.new(
254
+ # dialog_title: "Dialog Example",
255
+ # preferences_key: "my_name_my_extension_my_dialog",
256
+ # scrollable: true,
257
+ # resizable: true,
258
+ # width: 600,
259
+ # height: 400,
260
+ # left: 100,
261
+ # top: 100,
262
+ # min_width: 50,
263
+ # min_height: 50,
264
+ # max_width: 1000,
265
+ # max_height: 1000,
266
+ # style: UI::HtmlDialog::STYLE_DIALOG
267
+ # )
268
+ # dialog.set_url("https://www.sketchup.com")
269
+ # dialog.show
270
+ #
271
+ # @note Prefix +preference_key+ with something unique to your extension.
272
+ #
273
+ # @note If there is no reference kept to the HtmlDialog object, the window
274
+ # will close once the garbage collection runs. This behavior can be confusing
275
+ # in trivial test code but is usually not a concern in real life scenarios.
276
+ # Typically a persistent reference, e.g. an instance variable, should be kept
277
+ # to bring the dialog to front, rather than creating a duplicate, if the user
278
+ # should request it a second time.
279
+ #
280
+ # @option properties [String] :dialog_title
281
+ #
282
+ # @option properties [String] :preferences_key
283
+ #
284
+ # @option properties [Boolean] :scrollable
285
+ #
286
+ # @option properties [Boolean] :resizable (true)
287
+ #
288
+ # @option properties [Boolean] :use_content_size (false)
289
+ #
290
+ # @option properties [Integer] :width (250)
291
+ #
292
+ # @option properties [Integer] :height (250)
293
+ #
294
+ # @option properties [Integer] :left (0)
295
+ #
296
+ # @option properties [Integer] :top (0)
297
+ #
298
+ # @option properties [Integer] :min_width (0)
299
+ #
300
+ # @option properties [Integer] :min_height (0)
301
+ #
302
+ # @option properties [Integer] :max_width (-1)
303
+ #
304
+ # @option properties [Integer] :max_height (-1)
305
+ #
306
+ # @option properties [Integer] :style (UI::HtmlDialog::STYLE_DIALOG)
307
+ #
308
+ # @param [Hash] properties
309
+ # A hash containing the initial properties of
310
+ # the newly created dialog.
311
+ #
312
+ # @return [UI::HtmlDialog]
313
+ #
314
+ # @version SketchUp 2017
315
+ def initialize(properties)
316
+ end
317
+
318
+ # The {#set_can_close} method is used to attach a block that is executed just
319
+ # before closing, this block has to return a boolean, if the block returns
320
+ # false the close will be canceled.
321
+ #
322
+ # @example
323
+ # dialog.set_can_close { false }
324
+ #
325
+ # @return [Boolean]
326
+ #
327
+ # @version SketchUp 2017
328
+ #
329
+ # @yieldreturn [Boolean] Return a boolean to indicate if the dialogs should
330
+ # close.
331
+ def set_can_close
332
+ end
333
+
334
+ # The {#set_content_size} method is used to set the content size of the HtmlDialog, in logical
335
+ # pixels.
336
+ #
337
+ # @example
338
+ # dialog.set_content_size(600, 400)
339
+ #
340
+ # @param [Integer] width
341
+ # Content width of the HtmlDialog.
342
+ #
343
+ # @param [Integer] height
344
+ # Content height of the HtmlDialog.
345
+ #
346
+ # @return [nil]
347
+ #
348
+ # @version SketchUp 2021.1
349
+ def set_content_size(width, height)
350
+ end
351
+
352
+ # The {#set_file} method is used to identify a local HTML file to display in the
353
+ # HtmlDialog.
354
+ #
355
+ # @example
356
+ # dialog.set_file("c:/mypage.html")
357
+ #
358
+ # @param [String] filename
359
+ # The filename for the HtmlDialog file (HTML file)
360
+ #
361
+ # @return [nil]
362
+ #
363
+ # @version SketchUp 2017
364
+ def set_file(filename)
365
+ end
366
+
367
+ # The {#set_html} method is used to load a HtmlDialog with a string of provided
368
+ # HTML.
369
+ #
370
+ # @example
371
+ # html = '<b>Hello world!</b>'
372
+ # dialog.set_html(html)
373
+ #
374
+ # @param [String] html_string
375
+ # A string of valid html to display in your
376
+ # HtmlDialog.
377
+ #
378
+ # @return [nil]
379
+ #
380
+ # @version SketchUp 2017
381
+ def set_html(html_string)
382
+ end
383
+
384
+ # The {#set_on_closed} method is used to attach a block that will be
385
+ # executed when a dialog is already in the process of closing, do any last
386
+ # minute operations within this block such as saving the current state.
387
+ #
388
+ # @example
389
+ # dialog.set_on_closed { save_selection }
390
+ #
391
+ # @return [Boolean]
392
+ #
393
+ # @version SketchUp 2017
394
+ def set_on_closed
395
+ end
396
+
397
+ # The {#set_position} method is used to set the position of the HtmlDialog
398
+ # relative to the screen, in pixels.
399
+ #
400
+ # @bug Prior to SketchUp 2021.1, on Windows, calling this method incorrectly
401
+ # set the focus on the {UI::HtmlDialog}.
402
+ #
403
+ # @example
404
+ # dialog.set_position(100, 50)
405
+ #
406
+ # @param [Integer] left
407
+ # The number of pixels from the left.
408
+ #
409
+ # @param [Integer] top
410
+ # The number of pixels from the top of the screen.
411
+ #
412
+ # @return [true] This always return true, never false.
413
+ #
414
+ # @version SketchUp 2017
415
+ def set_position(left, top)
416
+ end
417
+
418
+ # The {#set_size} method is used to set the outer frame size of the HtmlDialog, in pixels.
419
+ #
420
+ # @bug Prior to SketchUp 2021.1, on Windows, calling this method incorrectly
421
+ # set the focus on the {UI::HtmlDialog}.
422
+ #
423
+ # @example
424
+ # dialog.set_size(320, 240)
425
+ #
426
+ # @param [Integer] width
427
+ # Outer frame width of the HtmlDialog.
428
+ #
429
+ # @param [Integer] height
430
+ # Outer frame height of the HtmlDialog.
431
+ #
432
+ # @return [true] This always return true, never false.
433
+ #
434
+ # @version SketchUp 2017
435
+ def set_size(width, height)
436
+ end
437
+
438
+ # The {#set_url} method is used to load a HtmlDialog with the content at a
439
+ # specific URL. This method allows you to load web sites in a HtmlDialog.
440
+ #
441
+ # @example
442
+ # dialog.set_url("https://www.sketchup.com")
443
+ #
444
+ # @param [String] url
445
+ # The URL for a specific web site.
446
+ #
447
+ # @return [nil]
448
+ #
449
+ # @version SketchUp 2017
450
+ def set_url(url)
451
+ end
452
+
453
+ # The {#show} method is used to display a non-modal dialog box.
454
+ #
455
+ # @example
456
+ # dialog.show
457
+ #
458
+ # @return [nil]
459
+ #
460
+ # @version SketchUp 2017
461
+ def show
462
+ end
463
+
464
+ # The {#show_modal} method is used to display a modal dialog box.
465
+ #
466
+ # @example
467
+ # dialog.show_modal
468
+ #
469
+ # @return [nil]
470
+ #
471
+ # @version SketchUp 2017
472
+ def show_modal
473
+ end
474
+
475
+ # The {#visible?} method is useful to tell if the dialog is shown and still
476
+ # alive, if the dialog is minimized or not visible on the screen this will
477
+ # still return +true+.
478
+ #
479
+ # @example
480
+ # if dialog.visible?
481
+ # dialog.bring_to_front
482
+ # else
483
+ # dialog = UI::HtmlDialog.new
484
+ # dialog.set_url("https://www.sketchup.com")
485
+ # dialog.show
486
+ # end
487
+ #
488
+ # @return [Boolean] Returns true if the dialog is open.
489
+ #
490
+ # @version SketchUp 2017
491
+ def visible?
492
+ end
493
+
494
+ end