sketchup-api-stubs 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs.rb +1 -1
  3. data/lib/sketchup-api-stubs/sketchup.rb +147 -145
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  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 +498 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -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 +691 -691
  16. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  17. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
  18. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
  20. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  21. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
  22. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  23. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  25. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  26. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  27. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  28. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  29. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  30. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  31. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  33. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  34. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  36. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  37. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  38. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  39. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  40. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  41. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
  42. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  43. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  44. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  47. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  135. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
  136. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
  137. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
  138. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  139. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  140. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  141. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  142. data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
  143. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  144. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  145. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  146. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
  147. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  148. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  149. data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
  150. metadata +4 -2
@@ -1,356 +1,387 @@
1
- # Copyright:: Copyright 2020 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
- # @version SketchUp 2017
18
- class UI::HtmlDialog
19
-
20
- # Constants
21
-
22
- STYLE_DIALOG = nil # Stub value.
23
- STYLE_UTILITY = nil # Stub value.
24
- STYLE_WINDOW = nil # Stub value.
25
-
26
- # Instance Methods
27
-
28
- # The {#add_action_callback} method establishes a Ruby callback method that your
29
- # html dialog can call to perform some function.
30
- #
31
- # Use the +sketchup.callback_method_name+ to invoke the callback method from your
32
- # html dialog. Your JavaScript in the html dialog will invoke the callback with
33
- # the same number of arguments.
34
- #
35
- # The call is asynchronous. JavaScript call might return before Ruby callback
36
- # even called. Use +onCompleted+ callback to get notified for completion.
37
- #
38
- # Basic types such as booleans, numbers, strings, arrays and hashes are
39
- # automatically converted between Ruby and JavaScript.
40
- #
41
- # @example Ruby Code
42
- # dialog.add_action_callback("say") { |action_context, param1, param2|
43
- # puts "JavaScript said #{param1} and #{param2}"
44
- # }
45
- #
46
- # @example JavaScript
47
- # sketchup.say('Hello World', 42);
48
- #
49
- # @example JavaScript with callback
50
- # sketchup.say('Hello World', 42, {
51
- # onCompleted: function() {
52
- # console.log('Ruby side done.');
53
- # }
54
- # });
55
- #
56
- # @note When an HtmlDialog is closed, all callbacks to that instance are
57
- # cleared. Re-attach them if you need to open the dialog again.
58
- #
59
- # @param [String] callback_name
60
- # The name of the callback method to be
61
- # invoked from the html dialog.
62
- #
63
- # @return [Boolean] true if action added successfully, false
64
- # otherwise.
65
- #
66
- # @version SketchUp 2017
67
- #
68
- # @yield [action_context, ...]
69
- #
70
- # @yieldparam [Object] action_context
71
- # action_context Currently unused.
72
- #
73
- # @yieldparam [Object] ...
74
- # The parameters sent from JavaScript.
75
- def add_action_callback(callback_name)
76
- end
77
-
78
- # The {#bring_to_front} method is used to bring the window to the front,
79
- # putting it on top of other windows even if its minimized.
80
- #
81
- # @example
82
- # dialog.bring_to_front
83
- #
84
- # @return [nil]
85
- #
86
- # @version SketchUp 2017
87
- def bring_to_front
88
- end
89
-
90
- # The {#center} method is used to center the HtmlDialog relative to the active
91
- # model window. If there is no active model window, this function doesn't do
92
- # anything.
93
- #
94
- # @example
95
- # dialog.center
96
- #
97
- # @return [true]
98
- #
99
- # @version SketchUp 2017
100
- def center
101
- end
102
-
103
- # The {#close} method is used to close a dialog box.
104
- #
105
- # @example
106
- # dialog.close
107
- #
108
- # @return [nil]
109
- #
110
- # @version SketchUp 2017
111
- def close
112
- end
113
-
114
- # The {#execute_script} method is used to execute a JavaScript string on the
115
- # html dialog asynchronously.
116
- #
117
- # @example
118
- # js_command = "document.getElementById('id').innerHTML = '<b>Hi!</b>'"
119
- # dialog.execute_script(js_command)
120
- #
121
- # @param [String] script
122
- # The JavaScript script to execute on the HtmlDialog.
123
- #
124
- # @return [nil]
125
- #
126
- # @version SketchUp 2017
127
- def execute_script(script)
128
- end
129
-
130
- # The new method is used to create a new HtmlDialog.
131
- #
132
- # The +properties+ hash accepts an optional key +style+ where the value is
133
- # one of:
134
- #
135
- # [+UI::HtmlDialog::STYLE_DIALOG+] HtmlDialog stays at the top of SketchUp.
136
- #
137
- # [+UI::HtmlDialog::STYLE_WINDOW+] HtmlDialog can go behind SketchUp and
138
- # doesn't disappear when SketchUp looses
139
- # focus.
140
- #
141
- # [+UI::HtmlDialog::STYLE_UTILITY+] HtmlDialog is shown with small titlebar
142
- # and stays on top of SketchUp.
143
- #
144
- # @example
145
- # dialog = UI::HtmlDialog.new(
146
- # {
147
- # :dialog_title => "Dialog Example",
148
- # :preferences_key => "com.sample.plugin",
149
- # :scrollable => true,
150
- # :resizable => true,
151
- # :width => 600,
152
- # :height => 400,
153
- # :left => 100,
154
- # :top => 100,
155
- # :min_width => 50,
156
- # :min_height => 50,
157
- # :max_width =>1000,
158
- # :max_height => 1000,
159
- # :style => UI::HtmlDialog::STYLE_DIALOG
160
- # })
161
- # dialog.set_url("http://www.sketchup.com")
162
- # dialog.show
163
- #
164
- # @note Prior to SketchUp 2019 the +:width+ and +:height+ provided is ignored
165
- # if a +:preference_key+ is also present. To work around this bug on older
166
- # versions use {#set_size} after you initialize the dialog.
167
- #
168
- # @option properties [String] :dialog_title
169
- #
170
- # @option properties [String] :preferences_key
171
- #
172
- # @option properties [Boolean] :scrollable
173
- #
174
- # @option properties [Boolean] :resizable (true)
175
- #
176
- # @option properties [Integer] :width (250)
177
- #
178
- # @option properties [Integer] :height (250)
179
- #
180
- # @option properties [Integer] :left (0)
181
- #
182
- # @option properties [Integer] :top (0)
183
- #
184
- # @option properties [Integer] :min_width (0)
185
- #
186
- # @option properties [Integer] :min_height (0)
187
- #
188
- # @option properties [Integer] :max_width (-1)
189
- #
190
- # @option properties [Integer] :max_height (-1)
191
- #
192
- # @option properties [Integer] :style (UI::HtmlDialog::STYLE_DIALOG)
193
- #
194
- # @param [Hash] properties
195
- # A hash containing the initial properties of
196
- # the newly created dialog.
197
- #
198
- # @return [HtmlDialog]
199
- #
200
- # @version SketchUp 2017
201
- def initialize(properties)
202
- end
203
-
204
- # The {#set_can_close} method is used to attach a block that is executed just
205
- # before closing, this block has to return a boolean, if the block returns
206
- # false the close will be canceled.
207
- #
208
- # @example
209
- # dialog.set_can_close { false }
210
- #
211
- # @return [Boolean]
212
- #
213
- # @version SketchUp 2017
214
- #
215
- # @yieldreturn [Boolean] Return a boolean to indicate if the dialogs should
216
- # close.
217
- def set_can_close
218
- end
219
-
220
- # The {#set_file} method is used to identify a local HTML file to display in the
221
- # HtmlDialog.
222
- #
223
- # @example
224
- # dialog.set_file("c:/mypage.html")
225
- #
226
- # @param [String] filename
227
- # The filename for the HtmlDialog file (HTML file)
228
- #
229
- # @return [nil]
230
- #
231
- # @version SketchUp 2017
232
- def set_file(filename)
233
- end
234
-
235
- # The {#set_html} method is used to load a HtmlDialog with a string of provided
236
- # HTML.
237
- #
238
- # @example
239
- # html = '<b>Hello world!</b>'
240
- # dialog.set_html(html)
241
- #
242
- # @param [String] html_string
243
- # A string of valid html to display in your
244
- # HtmlDialog.
245
- #
246
- # @return [nil]
247
- #
248
- # @version SketchUp 2017
249
- def set_html(html_string)
250
- end
251
-
252
- # The {#set_on_closed} method is used to attach a block that will be
253
- # executed when a dialog is already in the process of closing, do any last
254
- # minute operations within this block such as saving the current state.
255
- #
256
- # @example
257
- # dialog.set_on_closed { save_selection }
258
- #
259
- # @return [Boolean]
260
- #
261
- # @version SketchUp 2017
262
- def set_on_closed
263
- end
264
-
265
- # The {#set_position} method is used to set the position of the HtmlDialog
266
- # relative to the screen, in pixels.
267
- #
268
- # @example
269
- # dialog.set_position(100, 50)
270
- #
271
- # @param [Integer] left
272
- # The number of pixels from the left.
273
- #
274
- # @param [Integer] top
275
- # The number of pixels from the top of the screen.
276
- #
277
- # @return [true]
278
- #
279
- # @version SketchUp 2017
280
- def set_position(left, top)
281
- end
282
-
283
- # The {#set_size} method is used to set the size of the HtmlDialog, in pixels.
284
- #
285
- # @example
286
- # dialog.set_size(320, 240)
287
- #
288
- # @param [Integer] width
289
- # Width of the HtmlDialog.
290
- #
291
- # @param [Integer] height
292
- # Height of the HtmlDialog.
293
- #
294
- # @return [true]
295
- #
296
- # @version SketchUp 2017
297
- def set_size(width, height)
298
- end
299
-
300
- # The {#set_url} method is used to load a HtmlDialog with the content at a
301
- # specific URL. This method allows you to load web sites in a HtmlDialog.
302
- #
303
- # @example
304
- # dialog.set_url("http://www.sketchup.com")
305
- #
306
- # @param [String] url
307
- # The URL for a specific web site.
308
- #
309
- # @return [nil]
310
- #
311
- # @version SketchUp 2017
312
- def set_url(url)
313
- end
314
-
315
- # The {#show} method is used to display a non-modal dialog box.
316
- #
317
- # @example
318
- # dialog.show
319
- #
320
- # @return [nil]
321
- #
322
- # @version SketchUp 2017
323
- def show
324
- end
325
-
326
- # The {#show_modal} method is used to display a modal dialog box.
327
- #
328
- # @example
329
- # dialog.show_modal
330
- #
331
- # @return [nil]
332
- #
333
- # @version SketchUp 2017
334
- def show_modal
335
- end
336
-
337
- # The {#visible?} method is useful to tell if the dialog is shown and still
338
- # alive, if the dialog is minimized or not visible on the screen this will
339
- # still return +true+.
340
- #
341
- # @example
342
- # if dialog.visible?
343
- # dialog.bring_to_front
344
- # else
345
- # dialog = UI::HtmlDialog.new
346
- # dialog.set_url("http://www.sketchup.com")
347
- # dialog.show
348
- # end
349
- #
350
- # @return [Boolean] Returns true if the dialog is open.
351
- #
352
- # @version SketchUp 2017
353
- def visible?
354
- end
355
-
356
- end
1
+ # Copyright:: Copyright 2020 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
+ #
20
+ # @version SketchUp 2017
21
+ class UI::HtmlDialog
22
+
23
+ # Constants
24
+
25
+ STYLE_DIALOG = nil # Stub value.
26
+ STYLE_UTILITY = nil # Stub value.
27
+ STYLE_WINDOW = nil # Stub value.
28
+
29
+ # Instance Methods
30
+
31
+ # The {#add_action_callback} method establishes a Ruby callback method that your
32
+ # html dialog can call to perform some function.
33
+ #
34
+ # Use the +sketchup.callback_method_name+ to invoke the callback method from your
35
+ # html dialog. Your JavaScript in the html dialog will invoke the callback with
36
+ # the same number of arguments.
37
+ #
38
+ # The call is asynchronous. JavaScript call might return before Ruby callback
39
+ # even called. Use +onCompleted+ callback to get notified for completion.
40
+ #
41
+ # Basic types such as booleans, numbers, strings, arrays and hashes are
42
+ # automatically converted between Ruby and JavaScript.
43
+ #
44
+ # @example Ruby Code
45
+ # dialog.add_action_callback("say") { |action_context, param1, param2|
46
+ # puts "JavaScript said #{param1} and #{param2}"
47
+ # }
48
+ #
49
+ # @example JavaScript
50
+ # sketchup.say('Hello World', 42);
51
+ #
52
+ # @example JavaScript with callback
53
+ # sketchup.say('Hello World', 42, {
54
+ # onCompleted: function() {
55
+ # console.log('Ruby side done.');
56
+ # }
57
+ # });
58
+ #
59
+ # @note When an HtmlDialog is closed, all callbacks to that instance are
60
+ # cleared. Re-attach them if you need to open the dialog again.
61
+ #
62
+ # @param [String] callback_name
63
+ # The name of the callback method to be
64
+ # invoked from the html dialog.
65
+ #
66
+ # @return [Boolean] true if action added successfully, false
67
+ # otherwise.
68
+ #
69
+ # @version SketchUp 2017
70
+ #
71
+ # @yield [action_context, ...]
72
+ #
73
+ # @yieldparam [Object] action_context
74
+ # action_context Currently unused.
75
+ #
76
+ # @yieldparam [Object] ...
77
+ # The parameters sent from JavaScript.
78
+ def add_action_callback(callback_name)
79
+ end
80
+
81
+ # The {#bring_to_front} method is used to bring the window to the front,
82
+ # putting it on top of other windows even if its minimized.
83
+ #
84
+ # @example
85
+ # dialog.bring_to_front
86
+ #
87
+ # @return [nil]
88
+ #
89
+ # @version SketchUp 2017
90
+ def bring_to_front
91
+ end
92
+
93
+ # The {#center} method is used to center the HtmlDialog relative to the active
94
+ # model window. If there is no active model window, this function doesn't do
95
+ # anything.
96
+ #
97
+ # @example
98
+ # dialog.center
99
+ #
100
+ # @return [true]
101
+ #
102
+ # @version SketchUp 2017
103
+ def center
104
+ end
105
+
106
+ # The {#close} method is used to close a dialog box.
107
+ #
108
+ # @example
109
+ # dialog.close
110
+ #
111
+ # @return [nil]
112
+ #
113
+ # @version SketchUp 2017
114
+ def close
115
+ end
116
+
117
+ # The {#execute_script} method is used to execute a JavaScript string on the
118
+ # html dialog asynchronously.
119
+ #
120
+ # @example
121
+ # js_command = "document.getElementById('id').innerHTML = '<b>Hi!</b>'"
122
+ # dialog.execute_script(js_command)
123
+ #
124
+ # @param [String] script
125
+ # The JavaScript script to execute on the HtmlDialog.
126
+ #
127
+ # @return [nil]
128
+ #
129
+ # @version SketchUp 2017
130
+ def execute_script(script)
131
+ end
132
+
133
+ # The new method is used to create a new HtmlDialog.
134
+ #
135
+ # The +properties+ hash accepts an optional key +style+ where the value is
136
+ # one of:
137
+ #
138
+ # [+UI::HtmlDialog::STYLE_DIALOG+] HtmlDialog stays at the top of SketchUp.
139
+ #
140
+ # [+UI::HtmlDialog::STYLE_WINDOW+] HtmlDialog can go behind SketchUp and
141
+ # doesn't disappear when SketchUp looses
142
+ # focus.
143
+ #
144
+ # [+UI::HtmlDialog::STYLE_UTILITY+] HtmlDialog is shown with small titlebar
145
+ # and stays on top of SketchUp.
146
+ #
147
+ # @example With options Hash
148
+ # dialog = UI::HtmlDialog.new(
149
+ # {
150
+ # :dialog_title => "Dialog Example",
151
+ # :preferences_key => "com.sample.plugin",
152
+ # :scrollable => true,
153
+ # :resizable => true,
154
+ # :width => 600,
155
+ # :height => 400,
156
+ # :left => 100,
157
+ # :top => 100,
158
+ # :min_width => 50,
159
+ # :min_height => 50,
160
+ # :max_width =>1000,
161
+ # :max_height => 1000,
162
+ # :style => UI::HtmlDialog::STYLE_DIALOG
163
+ # })
164
+ # dialog.set_url("http://www.sketchup.com")
165
+ # dialog.show
166
+ #
167
+ # @example With keyword style argument
168
+ # dialog = UI::HtmlDialog.new(
169
+ # dialog_title: "Dialog Example",
170
+ # preferences_key: "my_name_my_extension_my_dialog",
171
+ # scrollable: true,
172
+ # resizable: true,
173
+ # width: 600,
174
+ # height: 400,
175
+ # left: 100,
176
+ # top: 100,
177
+ # min_width: 50,
178
+ # min_height: 50,
179
+ # max_width: 1000,
180
+ # max_height: 1000,
181
+ # style: UI::HtmlDialog::STYLE_DIALOG
182
+ # )
183
+ # dialog.set_url("https://www.sketchup.com")
184
+ # dialog.show
185
+ #
186
+ # @note Prior to SketchUp 2019 the +:width+ and +:height+ provided is ignored
187
+ # if a +:preference_key+ is also present. To work around this bug on older
188
+ # versions use {#set_size} after you initialize the dialog.
189
+ #
190
+ # @note Prefix +preference_key+ with something unique to your extension.
191
+ #
192
+ # @note If there is no reference kept to the HtmlDialog object, the window
193
+ # will close once the garbage collection runs. This behavior can be confusing
194
+ # in trivial test code but is usually not a concern in real life scenarios.
195
+ # Typically a persistent reference, e.g. an instance variable, should be kept
196
+ # to bring the dialog to front, rather than creating a duplicate, if the user
197
+ # should request it a second time.
198
+ #
199
+ # @option properties [String] :dialog_title
200
+ #
201
+ # @option properties [String] :preferences_key
202
+ #
203
+ # @option properties [Boolean] :scrollable
204
+ #
205
+ # @option properties [Boolean] :resizable (true)
206
+ #
207
+ # @option properties [Integer] :width (250)
208
+ #
209
+ # @option properties [Integer] :height (250)
210
+ #
211
+ # @option properties [Integer] :left (0)
212
+ #
213
+ # @option properties [Integer] :top (0)
214
+ #
215
+ # @option properties [Integer] :min_width (0)
216
+ #
217
+ # @option properties [Integer] :min_height (0)
218
+ #
219
+ # @option properties [Integer] :max_width (-1)
220
+ #
221
+ # @option properties [Integer] :max_height (-1)
222
+ #
223
+ # @option properties [Integer] :style (UI::HtmlDialog::STYLE_DIALOG)
224
+ #
225
+ # @param [Hash] properties
226
+ # A hash containing the initial properties of
227
+ # the newly created dialog.
228
+ #
229
+ # @return [HtmlDialog]
230
+ #
231
+ # @version SketchUp 2017
232
+ def initialize(properties)
233
+ end
234
+
235
+ # The {#set_can_close} method is used to attach a block that is executed just
236
+ # before closing, this block has to return a boolean, if the block returns
237
+ # false the close will be canceled.
238
+ #
239
+ # @example
240
+ # dialog.set_can_close { false }
241
+ #
242
+ # @return [Boolean]
243
+ #
244
+ # @version SketchUp 2017
245
+ #
246
+ # @yieldreturn [Boolean] Return a boolean to indicate if the dialogs should
247
+ # close.
248
+ def set_can_close
249
+ end
250
+
251
+ # The {#set_file} method is used to identify a local HTML file to display in the
252
+ # HtmlDialog.
253
+ #
254
+ # @example
255
+ # dialog.set_file("c:/mypage.html")
256
+ #
257
+ # @param [String] filename
258
+ # The filename for the HtmlDialog file (HTML file)
259
+ #
260
+ # @return [nil]
261
+ #
262
+ # @version SketchUp 2017
263
+ def set_file(filename)
264
+ end
265
+
266
+ # The {#set_html} method is used to load a HtmlDialog with a string of provided
267
+ # HTML.
268
+ #
269
+ # @example
270
+ # html = '<b>Hello world!</b>'
271
+ # dialog.set_html(html)
272
+ #
273
+ # @param [String] html_string
274
+ # A string of valid html to display in your
275
+ # HtmlDialog.
276
+ #
277
+ # @return [nil]
278
+ #
279
+ # @version SketchUp 2017
280
+ def set_html(html_string)
281
+ end
282
+
283
+ # The {#set_on_closed} method is used to attach a block that will be
284
+ # executed when a dialog is already in the process of closing, do any last
285
+ # minute operations within this block such as saving the current state.
286
+ #
287
+ # @example
288
+ # dialog.set_on_closed { save_selection }
289
+ #
290
+ # @return [Boolean]
291
+ #
292
+ # @version SketchUp 2017
293
+ def set_on_closed
294
+ end
295
+
296
+ # The {#set_position} method is used to set the position of the HtmlDialog
297
+ # relative to the screen, in pixels.
298
+ #
299
+ # @example
300
+ # dialog.set_position(100, 50)
301
+ #
302
+ # @param [Integer] left
303
+ # The number of pixels from the left.
304
+ #
305
+ # @param [Integer] top
306
+ # The number of pixels from the top of the screen.
307
+ #
308
+ # @return [true]
309
+ #
310
+ # @version SketchUp 2017
311
+ def set_position(left, top)
312
+ end
313
+
314
+ # The {#set_size} method is used to set the size of the HtmlDialog, in pixels.
315
+ #
316
+ # @example
317
+ # dialog.set_size(320, 240)
318
+ #
319
+ # @param [Integer] width
320
+ # Width of the HtmlDialog.
321
+ #
322
+ # @param [Integer] height
323
+ # Height of the HtmlDialog.
324
+ #
325
+ # @return [true]
326
+ #
327
+ # @version SketchUp 2017
328
+ def set_size(width, height)
329
+ end
330
+
331
+ # The {#set_url} method is used to load a HtmlDialog with the content at a
332
+ # specific URL. This method allows you to load web sites in a HtmlDialog.
333
+ #
334
+ # @example
335
+ # dialog.set_url("https://www.sketchup.com")
336
+ #
337
+ # @param [String] url
338
+ # The URL for a specific web site.
339
+ #
340
+ # @return [nil]
341
+ #
342
+ # @version SketchUp 2017
343
+ def set_url(url)
344
+ end
345
+
346
+ # The {#show} method is used to display a non-modal dialog box.
347
+ #
348
+ # @example
349
+ # dialog.show
350
+ #
351
+ # @return [nil]
352
+ #
353
+ # @version SketchUp 2017
354
+ def show
355
+ end
356
+
357
+ # The {#show_modal} method is used to display a modal dialog box.
358
+ #
359
+ # @example
360
+ # dialog.show_modal
361
+ #
362
+ # @return [nil]
363
+ #
364
+ # @version SketchUp 2017
365
+ def show_modal
366
+ end
367
+
368
+ # The {#visible?} method is useful to tell if the dialog is shown and still
369
+ # alive, if the dialog is minimized or not visible on the screen this will
370
+ # still return +true+.
371
+ #
372
+ # @example
373
+ # if dialog.visible?
374
+ # dialog.bring_to_front
375
+ # else
376
+ # dialog = UI::HtmlDialog.new
377
+ # dialog.set_url("https://www.sketchup.com")
378
+ # dialog.show
379
+ # end
380
+ #
381
+ # @return [Boolean] Returns true if the dialog is open.
382
+ #
383
+ # @version SketchUp 2017
384
+ def visible?
385
+ end
386
+
387
+ end