sketchup-api-stubs 0.6.1 → 0.7.4

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/lib/sketchup-api-stubs.rb +1 -1
  4. data/lib/sketchup-api-stubs/sketchup.rb +145 -145
  5. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +318 -318
  6. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  7. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  8. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -401
  10. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  11. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +492 -492
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
  13. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  14. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -523
  16. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
  17. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -569
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +174 -186
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +514 -455
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +143 -155
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -359
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -123
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -86
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +371 -371
  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 +220 -232
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -563
  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 +204 -216
  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/SketchUpModel.rb +694 -547
  43. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  44. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +140 -140
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +328 -328
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +577 -577
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +281 -281
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +562 -554
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +194 -194
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +329 -329
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +72 -72
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +102 -102
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +312 -312
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +38 -38
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +390 -390
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +508 -508
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1119 -1097
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +125 -125
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +544 -537
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +59 -59
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +750 -750
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +697 -697
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +409 -409
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +226 -226
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +190 -190
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +393 -393
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +82 -82
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +303 -303
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +285 -262
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +244 -231
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +136 -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 -123
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +416 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +311 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +141 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +95 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1638 -1483
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +356 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +132 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -282
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +770 -650
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +353 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +76 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +456 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -356
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +44 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +454 -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 +57 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +211 -211
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +225 -225
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +829 -829
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +154 -154
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +61 -61
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1301 -995
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +43 -43
  134. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +310 -310
  135. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +356 -356
  136. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +229 -229
  137. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  138. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  139. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -303
  140. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  141. data/lib/sketchup-api-stubs/stubs/geom.rb +348 -233
  142. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  143. data/lib/sketchup-api-stubs/stubs/length.rb +278 -262
  144. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  145. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1310 -1310
  146. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  147. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  148. data/lib/sketchup-api-stubs/stubs/ui.rb +667 -660
  149. metadata +2 -16
@@ -1,356 +1,356 @@
1
- # Copyright:: Copyright 2019 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
+ # @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