sketchup-api-stubs 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +5 -5
  2. data/.yardopts +9 -9
  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 -400
  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 -522
  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 -573
  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 -514
  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 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  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 +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 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +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 -694
  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 -562
  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 -1119
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +125 -125
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +544 -544
  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 -280
  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 -1601
  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 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +770 -770
  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 -364
  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 -1301
  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 -311
  140. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  141. data/lib/sketchup-api-stubs/stubs/geom.rb +348 -348
  142. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  143. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  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 -667
  149. metadata +3 -4
@@ -1,356 +1,356 @@
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
+ # @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