sketchup-api-stubs 0.7.9 → 0.7.10

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 -151
  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 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -476
  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 -747
  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 +569 -517
  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 +356 -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 +459 -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 -82
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -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 +226 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -150
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  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 -121
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -659
  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 -449
  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 -406
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1242 -1239
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -282
  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 -406
  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 -114
  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 -317
  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 +1656 -1652
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -130
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -490
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -116
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -361
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +480 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +373 -361
  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 -458
  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 -255
  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 -834
  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 +1329 -1311
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1394 -1377
  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 +387 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +505 -494
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -241
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +728 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +3 -3
@@ -1,494 +1,505 @@
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
1
+ # Copyright:: Copyright 2024 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 2024.0]
25
+ # CEF 112
26
+ # [SketchUp 2021.1]
27
+ # CEF 88
28
+ # [SketchUp 2019.0]
29
+ # CEF 64
30
+ # [SketchUp 2018.0]
31
+ # CEF 56
32
+ # [SketchUp 2017.0]
33
+ # CEF 52
34
+ #
35
+ # @note The window size is not guaranteed to be pixel perfect in all SketchUp
36
+ # versions and operating systems. Prefer responsive designs that can take
37
+ # up some fluctuations in size.
38
+ #
39
+ # @version SketchUp 2017
40
+ class UI::HtmlDialog
41
+
42
+ # Constants
43
+
44
+ CEF_VERSION = nil # Stub value.
45
+
46
+ CHROME_VERSION = nil # Stub value.
47
+
48
+ STYLE_DIALOG = nil # Stub value.
49
+ STYLE_UTILITY = nil # Stub value.
50
+ STYLE_WINDOW = nil # Stub value.
51
+
52
+ # Instance Methods
53
+
54
+ # The {#add_action_callback} method establishes a Ruby callback method that your
55
+ # html dialog can call to perform some function.
56
+ #
57
+ # Use the +sketchup.callback_method_name+ to invoke the callback method from your
58
+ # html dialog. Your JavaScript in the html dialog will invoke the callback with
59
+ # the same number of arguments.
60
+ #
61
+ # The call is asynchronous. JavaScript call might return before Ruby callback
62
+ # even called. Use +onCompleted+ callback to get notified for completion.
63
+ #
64
+ # Basic types such as booleans, numbers, strings, arrays and hashes are
65
+ # automatically converted between Ruby and JavaScript.
66
+ #
67
+ # @example Ruby Code
68
+ # dialog.add_action_callback("say") { |action_context, param1, param2|
69
+ # puts "JavaScript said #{param1} and #{param2}"
70
+ # }
71
+ #
72
+ # @example JavaScript
73
+ # sketchup.say('Hello World', 42);
74
+ #
75
+ # @example JavaScript with callback
76
+ # sketchup.say('Hello World', 42, {
77
+ # onCompleted: function() {
78
+ # console.log('Ruby side done.');
79
+ # }
80
+ # });
81
+ #
82
+ # @note When an HtmlDialog is closed, all callbacks to that instance are
83
+ # cleared. Re-attach them if you need to open the dialog again.
84
+ #
85
+ # @param [String] callback_name
86
+ # The name of the callback method to be invoked from the html dialog.
87
+ #
88
+ # @return [Boolean] +true+ if action added successfully, +false+ otherwise.
89
+ #
90
+ # @version SketchUp 2017
91
+ #
92
+ # @yield [action_context, *args]
93
+ #
94
+ # @yieldparam [Object] action_context
95
+ # Currently unused.
96
+ #
97
+ # @yieldparam [Array<Object>] args
98
+ # The parameters sent from JavaScript.
99
+ def add_action_callback(callback_name)
100
+ end
101
+
102
+ # The {#bring_to_front} method is used to bring the window to the front,
103
+ # putting it on top of other windows even if its minimized.
104
+ #
105
+ # @bug Prior to SketchUp 2021.1, on Mac, the focus the was not being set
106
+ # on the {UI::HtmlDialog}.
107
+ #
108
+ # @example
109
+ # dialog.bring_to_front
110
+ #
111
+ # @return [nil]
112
+ #
113
+ # @see Sketchup.focus
114
+ #
115
+ # @version SketchUp 2017
116
+ def bring_to_front
117
+ end
118
+
119
+ # The {#center} method is used to center the HtmlDialog relative to the active
120
+ # model window. If there is no active model window, this function doesn't do
121
+ # anything.
122
+ #
123
+ # @example
124
+ # dialog.center
125
+ #
126
+ # @return [true] This always return true, never false.
127
+ #
128
+ # @version SketchUp 2017
129
+ def center
130
+ end
131
+
132
+ # The {#close} method is used to close a dialog box.
133
+ #
134
+ # @example
135
+ # dialog.close
136
+ #
137
+ # @return [nil]
138
+ #
139
+ # @version SketchUp 2017
140
+ def close
141
+ end
142
+
143
+ # The {#execute_script} method is used to execute a JavaScript string on the
144
+ # html dialog asynchronously.
145
+ #
146
+ # @example
147
+ # js_command = "document.getElementById('id').innerHTML = '<b>Hi!</b>'"
148
+ # dialog.execute_script(js_command)
149
+ #
150
+ # @param [String] script
151
+ # The JavaScript script to execute on the HtmlDialog.
152
+ #
153
+ # @return [nil]
154
+ #
155
+ # @version SketchUp 2017
156
+ def execute_script(script)
157
+ end
158
+
159
+ # The {#get_content_size} method is used to get the content size of the HtmlDialog, in logical
160
+ # pixels.
161
+ #
162
+ # @example
163
+ # width, height = dialog.get_content_size
164
+ #
165
+ # @return [Array(Integer, Integer), nil] Content width and height of the HtmlDialog.
166
+ # A nil value is returned if the HtmlDialog
167
+ # is not visible.
168
+ #
169
+ # @version SketchUp 2021.1
170
+ def get_content_size
171
+ end
172
+
173
+ # The {#get_position} method is used to get the position of the HtmlDialog
174
+ # relative to the screen, in logical pixels.
175
+ #
176
+ # @example
177
+ # left, top = dialog.get_position
178
+ #
179
+ # @return [Array(Integer, Integer), nil] Left and top position of the dialog.
180
+ # A nil value is returned if the HtmlDialog
181
+ # is not visible.
182
+ #
183
+ # @version SketchUp 2021.1
184
+ def get_position
185
+ end
186
+
187
+ # The {#get_size} method is used to get the outer frame size of the HtmlDialog, in logical pixels.
188
+ #
189
+ # @example
190
+ # width, height = dialog.get_size
191
+ #
192
+ # @return [Array(Integer, Integer), nil] Outer frame width and height of the HtmlDialog.
193
+ # A nil value is returned if the HtmlDialog
194
+ # is not visible.
195
+ #
196
+ # @version SketchUp 2021.1
197
+ def get_size
198
+ end
199
+
200
+ # The new method is used to create a new HtmlDialog.
201
+ #
202
+ # In SketchUp 2021.1 +use_content_size+ was added.
203
+ # When set to +true+, +width+, +height+, +min_width+,
204
+ # +max width+, +min_height+, +max_height+ will represent the size of the
205
+ # content area of the window. This excludes the titlebar and the window frame.
206
+ # When +use_content_size+ is set to +false+ (the default value),
207
+ # the size dimensions will represent the outer frame size.
208
+ #
209
+ # The +properties+ hash accepts an optional key +style+ where the value is
210
+ # one of:
211
+ #
212
+ # [+UI::HtmlDialog::STYLE_DIALOG+] HtmlDialog stays at the top of SketchUp.
213
+ #
214
+ # [+UI::HtmlDialog::STYLE_WINDOW+] HtmlDialog can go behind SketchUp and
215
+ # doesn't disappear when SketchUp looses
216
+ # focus.
217
+ #
218
+ # [+UI::HtmlDialog::STYLE_UTILITY+] HtmlDialog is shown with small titlebar
219
+ # and stays on top of SketchUp.
220
+ #
221
+ # @bug Prior to SketchUp 2019 the +:width+ and +:height+ provided is ignored
222
+ # if a +:preference_key+ is also present. To work around this bug on older
223
+ # versions use {#set_size} after you initialize the dialog.
224
+ #
225
+ # @bug SketchUp 2022.0 fixed a bug where position was set incorrectly when
226
+ # +use_content_size+ was set to +true+.
227
+ #
228
+ # @bug SketchUp 2022.0 fixed a bug where +max_height+ and +max_width+ were swapped
229
+ # when +use_content_size+ was set to +true+.
230
+ #
231
+ # @bug SketchUp 2022.0 fixed a bug where +use_content_size+ was not persisted (when
232
+ # +preferences_key+ is set).
233
+ #
234
+ # @bug SketchUp 2022.0 fixed a bug on Mac where size and position of the
235
+ # HtmlDialog were not persisted when SketchUp was closed without first
236
+ # closing the HtmlDialog window.
237
+ #
238
+ # @bug SketchUp 2023.0 introduced a bug where the position given in {#initialize}
239
+ # is set relative to the SketchUp main window. If you rely on the position to be
240
+ # absolute to the screen then you can use {#set_position} after creating the
241
+ # dialog.
242
+ #
243
+ # @example With options Hash
244
+ # dialog = UI::HtmlDialog.new(
245
+ # {
246
+ # :dialog_title => "Dialog Example",
247
+ # :preferences_key => "com.sample.plugin",
248
+ # :scrollable => true,
249
+ # :resizable => true,
250
+ # :width => 600,
251
+ # :height => 400,
252
+ # :left => 100,
253
+ # :top => 100,
254
+ # :min_width => 50,
255
+ # :min_height => 50,
256
+ # :max_width =>1000,
257
+ # :max_height => 1000,
258
+ # :style => UI::HtmlDialog::STYLE_DIALOG
259
+ # })
260
+ # dialog.set_url("http://www.sketchup.com")
261
+ # dialog.show
262
+ #
263
+ # @example With keyword style argument
264
+ # dialog = UI::HtmlDialog.new(
265
+ # dialog_title: "Dialog Example",
266
+ # preferences_key: "my_name_my_extension_my_dialog",
267
+ # scrollable: true,
268
+ # resizable: true,
269
+ # width: 600,
270
+ # height: 400,
271
+ # left: 100,
272
+ # top: 100,
273
+ # min_width: 50,
274
+ # min_height: 50,
275
+ # max_width: 1000,
276
+ # max_height: 1000,
277
+ # style: UI::HtmlDialog::STYLE_DIALOG
278
+ # )
279
+ # dialog.set_url("https://www.sketchup.com")
280
+ # dialog.show
281
+ #
282
+ # @note Prefix +preference_key+ with something unique to your extension.
283
+ #
284
+ # @note If there is no reference kept to the HtmlDialog object, the window
285
+ # will close once the garbage collection runs. This behavior can be confusing
286
+ # in trivial test code but is usually not a concern in real life scenarios.
287
+ # Typically a persistent reference, e.g. an instance variable, should be kept
288
+ # to bring the dialog to front, rather than creating a duplicate, if the user
289
+ # should request it a second time.
290
+ #
291
+ # @option properties [String] :dialog_title
292
+ #
293
+ # @option properties [String] :preferences_key
294
+ #
295
+ # @option properties [Boolean] :scrollable
296
+ #
297
+ # @option properties [Boolean] :resizable (true)
298
+ #
299
+ # @option properties [Boolean] :use_content_size (false)
300
+ #
301
+ # @option properties [Integer] :width (250)
302
+ #
303
+ # @option properties [Integer] :height (250)
304
+ #
305
+ # @option properties [Integer] :left (0)
306
+ #
307
+ # @option properties [Integer] :top (0)
308
+ #
309
+ # @option properties [Integer] :min_width (0)
310
+ #
311
+ # @option properties [Integer] :min_height (0)
312
+ #
313
+ # @option properties [Integer] :max_width (-1)
314
+ #
315
+ # @option properties [Integer] :max_height (-1)
316
+ #
317
+ # @option properties [Integer] :style (UI::HtmlDialog::STYLE_DIALOG)
318
+ #
319
+ # @param [Hash] properties
320
+ # A hash containing the initial properties of
321
+ # the newly created dialog.
322
+ #
323
+ # @return [UI::HtmlDialog]
324
+ #
325
+ # @version SketchUp 2017
326
+ def initialize(properties)
327
+ end
328
+
329
+ # The {#set_can_close} method is used to attach a block that is executed just
330
+ # before closing, this block has to return a boolean, if the block returns
331
+ # false the close will be canceled.
332
+ #
333
+ # @example
334
+ # dialog.set_can_close { false }
335
+ #
336
+ # @return [Boolean]
337
+ #
338
+ # @version SketchUp 2017
339
+ #
340
+ # @yieldreturn [Boolean] Return a boolean to indicate if the dialogs should
341
+ # close.
342
+ def set_can_close
343
+ end
344
+
345
+ # The {#set_content_size} method is used to set the content size of the HtmlDialog, in logical
346
+ # pixels.
347
+ #
348
+ # @example
349
+ # dialog.set_content_size(600, 400)
350
+ #
351
+ # @param [Integer] width
352
+ # Content width of the HtmlDialog.
353
+ #
354
+ # @param [Integer] height
355
+ # Content height of the HtmlDialog.
356
+ #
357
+ # @return [nil]
358
+ #
359
+ # @version SketchUp 2021.1
360
+ def set_content_size(width, height)
361
+ end
362
+
363
+ # The {#set_file} method is used to identify a local HTML file to display in the
364
+ # HtmlDialog.
365
+ #
366
+ # @example
367
+ # dialog.set_file("c:/mypage.html")
368
+ #
369
+ # @param [String] filename
370
+ # The filename for the HtmlDialog file (HTML file)
371
+ #
372
+ # @return [nil]
373
+ #
374
+ # @version SketchUp 2017
375
+ def set_file(filename)
376
+ end
377
+
378
+ # The {#set_html} method is used to load a HtmlDialog with a string of provided
379
+ # HTML.
380
+ #
381
+ # @example
382
+ # html = '<b>Hello world!</b>'
383
+ # dialog.set_html(html)
384
+ #
385
+ # @param [String] html_string
386
+ # A string of valid html to display in your
387
+ # HtmlDialog.
388
+ #
389
+ # @return [nil]
390
+ #
391
+ # @version SketchUp 2017
392
+ def set_html(html_string)
393
+ end
394
+
395
+ # The {#set_on_closed} method is used to attach a block that will be
396
+ # executed when a dialog is already in the process of closing, do any last
397
+ # minute operations within this block such as saving the current state.
398
+ #
399
+ # @example
400
+ # dialog.set_on_closed { save_selection }
401
+ #
402
+ # @return [Boolean]
403
+ #
404
+ # @version SketchUp 2017
405
+ def set_on_closed
406
+ end
407
+
408
+ # The {#set_position} method is used to set the position of the HtmlDialog
409
+ # relative to the screen, in pixels.
410
+ #
411
+ # @bug Prior to SketchUp 2021.1, on Windows, calling this method incorrectly
412
+ # set the focus on the {UI::HtmlDialog}.
413
+ #
414
+ # @example
415
+ # dialog.set_position(100, 50)
416
+ #
417
+ # @param [Integer] left
418
+ # The number of pixels from the left.
419
+ #
420
+ # @param [Integer] top
421
+ # The number of pixels from the top of the screen.
422
+ #
423
+ # @return [true] This always return true, never false.
424
+ #
425
+ # @version SketchUp 2017
426
+ def set_position(left, top)
427
+ end
428
+
429
+ # The {#set_size} method is used to set the outer frame size of the HtmlDialog, in pixels.
430
+ #
431
+ # @bug Prior to SketchUp 2021.1, on Windows, calling this method incorrectly
432
+ # set the focus on the {UI::HtmlDialog}.
433
+ #
434
+ # @example
435
+ # dialog.set_size(320, 240)
436
+ #
437
+ # @param [Integer] width
438
+ # Outer frame width of the HtmlDialog.
439
+ #
440
+ # @param [Integer] height
441
+ # Outer frame height of the HtmlDialog.
442
+ #
443
+ # @return [true] This always return true, never false.
444
+ #
445
+ # @version SketchUp 2017
446
+ def set_size(width, height)
447
+ end
448
+
449
+ # The {#set_url} method is used to load a HtmlDialog with the content at a
450
+ # specific URL. This method allows you to load web sites in a HtmlDialog.
451
+ #
452
+ # @example
453
+ # dialog.set_url("https://www.sketchup.com")
454
+ #
455
+ # @param [String] url
456
+ # The URL for a specific web site.
457
+ #
458
+ # @return [nil]
459
+ #
460
+ # @version SketchUp 2017
461
+ def set_url(url)
462
+ end
463
+
464
+ # The {#show} method is used to display a non-modal dialog box.
465
+ #
466
+ # @example
467
+ # dialog.show
468
+ #
469
+ # @return [nil]
470
+ #
471
+ # @version SketchUp 2017
472
+ def show
473
+ end
474
+
475
+ # The {#show_modal} method is used to display a modal dialog box.
476
+ #
477
+ # @example
478
+ # dialog.show_modal
479
+ #
480
+ # @return [nil]
481
+ #
482
+ # @version SketchUp 2017
483
+ def show_modal
484
+ end
485
+
486
+ # The {#visible?} method is useful to tell if the dialog is shown and still
487
+ # alive, if the dialog is minimized or not visible on the screen this will
488
+ # still return +true+.
489
+ #
490
+ # @example
491
+ # if dialog.visible?
492
+ # dialog.bring_to_front
493
+ # else
494
+ # dialog = UI::HtmlDialog.new
495
+ # dialog.set_url("https://www.sketchup.com")
496
+ # dialog.show
497
+ # end
498
+ #
499
+ # @return [Boolean] Returns true if the dialog is open.
500
+ #
501
+ # @version SketchUp 2017
502
+ def visible?
503
+ end
504
+
505
+ end