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,24 +1,24 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The String class contains a method used to parse a string as a length value.
5
- # All string arguments in Ruby API expect utf-8 strings.
6
- #
7
- # @version SketchUp 6.0
8
- class String
9
-
10
- # Instance Methods
11
-
12
- # The to_l method is used to convert a string to a length. The returned length
13
- # is expressed in the Model units.
14
- #
15
- # @example
16
- # length = "5'".to_l
17
- #
18
- # @return [Length] the length value
19
- #
20
- # @version SketchUp 6.0
21
- def to_l
22
- end
23
-
24
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The String class contains a method used to parse a string as a length value.
5
+ # All string arguments in Ruby API expect utf-8 strings.
6
+ #
7
+ # @version SketchUp 6.0
8
+ class String
9
+
10
+ # Instance Methods
11
+
12
+ # The to_l method is used to convert a string to a length. The returned length
13
+ # is expressed in the Model units.
14
+ #
15
+ # @example
16
+ # length = "5'".to_l
17
+ #
18
+ # @return [Length] the length value
19
+ #
20
+ # @version SketchUp 6.0
21
+ def to_l
22
+ end
23
+
24
+ end
@@ -1,667 +1,668 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The UI module contains a number of methods for creating simple UI elements
5
- # from a SketchUp Ruby script.
6
- #
7
- # @version SketchUp 6.0
8
- module UI
9
-
10
- # Class Methods
11
-
12
- # The add_context_menu_handler method is used to register a block of code with
13
- # SketchUp that will be called when a context menu is to be displayed. The
14
- # context menu handler can then display the context menu with the items that
15
- # you have added.
16
- #
17
- # Be careful with what you do in a context menu handler. If you perform an
18
- # operation takes take a long time, such as traversing the model or selection
19
- # in a large model it will delay the menu.
20
- #
21
- # See the contextmenu.rb script in the Plugins/examples directory for an
22
- # example.
23
- #
24
- # @example
25
- # # Right click on anything to see a Hello World item.
26
- # UI.add_context_menu_handler do |context_menu|
27
- # context_menu.add_item("Hello World") {
28
- # UI.messagebox("Hello world")
29
- # }
30
- # end
31
- #
32
- # @return [Integer] the number of context handlers that are
33
- # registered
34
- #
35
- # @version SketchUp 6.0
36
- #
37
- # @yield [menu] A block of code that takes a menu as its only as its
38
- # only argument.
39
- def self.add_context_menu_handler
40
- end
41
-
42
- # The beep method plays a system beep sound.
43
- #
44
- # The beep method does not accept any arguments nor return any values.
45
- #
46
- # @example
47
- # UI.beep
48
- #
49
- # @return [nil]
50
- #
51
- # @version SketchUp 6.0
52
- def self.beep
53
- end
54
-
55
- # The create_cursor method is used to create a cursor from an image file at
56
- # the specified location. This must be called from within a custom
57
- # Tool. See the Tool class for a complete example.
58
- #
59
- # Since SketchUp 2016 it is possible to provide vector images for the cursors.
60
- # SVG format for Windows and PDF format for OS X.
61
- #
62
- # @example
63
- # cursor_id = nil
64
- # cursor_path = Sketchup.find_support_file("Pointer.png", "Plugins/")
65
- # if cursor_path
66
- # cursor_id = UI.create_cursor(cursor_path, 0, 0)
67
- # end
68
- #
69
- # def onSetCursor
70
- # UI.set_cursor(cursor_id)
71
- # end
72
- #
73
- # @param [String] filename
74
- # Filename for an image.
75
- #
76
- # @param [Integer] hot_x
77
- # An x coordinate that is the "hotpoint" for the cursor
78
- # computed from the left edge of your cursor image.
79
- #
80
- # @param [Integer] hot_y
81
- # A y coordinate that is the "hotpoint" for the cursor
82
- # computed from the top edge of the of your cursor image.
83
- # For example, a value of (hot_x, hot_y) = (5,10) would
84
- # identify the hotpoint of the cursor at 5 pixels from
85
- # the left edge of your cursor image and 10 pixels from
86
- # the top edge of your cursor image.
87
- #
88
- # @return [Integer] ID associated with the cursor
89
- #
90
- # @version SketchUp 6.0
91
- def self.create_cursor(filename, hot_x, hot_y)
92
- end
93
-
94
- # Creates a dialog box for inputting user information. The dialog box contains
95
- # input fields with static text prompts, optional default values, optional
96
- # drop down selections, and optional title.
97
- #
98
- # You can also use this method to display drop down lists of options, by
99
- # passing an optional param.
100
- #
101
- # @example
102
- # # With three params, it shows all text boxes:
103
- # prompts = ["What is your Name?", "What is your Age?", "Gender"]
104
- # defaults = ["Enter name", "", "Male"]
105
- # input = UI.inputbox(prompts, defaults, "Tell me about yourself.")
106
- #
107
- # # With four params, it shows a drop down box for prompts that have
108
- # # pipe-delimited lists of options. In this case, the Gender prompt
109
- # # is a drop down instead of a text box.
110
- # prompts = ["What is your Name?", "What is your Age?", "Gender"]
111
- # defaults = ["Enter name", "", "Male"]
112
- # list = ["", "", "Male|Female"]
113
- # input = UI.inputbox(prompts, defaults, list, "Tell me about yourself.")
114
- #
115
- # @overload inputbox(prompts, defaults, title)
116
- #
117
- # @param [Array<String>] prompts
118
- # An array of prompt names appearing in the input box
119
- # adjacent to input fields.
120
- # @param [Array<String>] defaults
121
- # An array of default values for the input
122
- # fields.
123
- # @param [String] title
124
- # The title for the input box.
125
- #
126
- # @overload inputbox(prompts, defaults, list, title)
127
- #
128
- # @param [Array<String>] prompts
129
- # An array of prompt names appearing in the input box
130
- # adjacent to input fields.
131
- # @param [Array<String>] defaults
132
- # An array of default values for the input
133
- # fields.
134
- # @param [String, Array<String>] list
135
- # An array containing pipe-separated strings of options.
136
- # @param [String] title
137
- # The title for the input box.
138
- #
139
- # @return [Array<String>, false] An array of returned values if the user did
140
- # not cancel the dialog. If the user canceled the
141
- # dialog, false is returned. The returned values in the
142
- # array will be in the same order as the input fields.
143
- #
144
- # @version SketchUp 6.0
145
- def self.inputbox(*args)
146
- end
147
-
148
- # The inspector_names method is used to returns the names of all the
149
- # inspectors. Inspectors are another name for the various floating dialog
150
- # windows that you can activate from withing SketchUp, such as the Materials
151
- # window.
152
- #
153
- # @example
154
- # inspectors = UI.inspector_names
155
- #
156
- # @return [Array<String>] an array of strings containing the names
157
- # of inspectors.
158
- #
159
- # @version SketchUp 6.0
160
- def self.inspector_names
161
- end
162
-
163
- # The {.menu} method retrieves a SketchUp's menu object with a given name. This
164
- # is the first step toward adding your own custom items to the bottom
165
- # of SketchUp's menus.
166
- #
167
- # Valid menu names are: "File", "Edit", "View", "Camera", "Draw", "Tools",
168
- # "Window", "Extensions" and "Help".
169
- #
170
- # @example
171
- # tool_menu = UI.menu("Tools")
172
- # tool_menu.add_item("Cheese Tool") {
173
- # UI.messagebox("Cheese activated.")
174
- # }
175
- #
176
- # @note The "Extensions" menu was named "Plugins" prior to SketchUp 2015.
177
- # For backward compatibility "Plugins" still works.
178
- #
179
- # @note In versions prior to SketchUp 2018 this would crash if you passed an
180
- # empty string.
181
- #
182
- # @param menu_name
183
- # The name of an existing top level menu.
184
- #
185
- # @return [Sketchup::Menu]
186
- #
187
- # @version SketchUp 6.0
188
- def self.menu(menu_name = "Plugins")
189
- end
190
-
191
- # Creates a dialog box containing static text with a series of buttons for
192
- # the user to choose from.
193
- #
194
- # Valid message box types are:
195
- # - +MB_OK+ - Contains an OK button.
196
- # - +MB_OKCANCEL+ - Contains OK and Cancel buttons.
197
- # - +MB_ABORTRETRYIGNORE+ - Contains Abort, Retry, and Ignore buttons.
198
- # - +MB_YESNOCANCEL+ - Contains Yes, No, and Cancel buttons.
199
- # - +MB_YESNO+ - Contains Yes and No buttons.
200
- # - +MB_RETRYCANCEL+ - Contains Retry and Cancel buttons.
201
- # - +MB_MULTILINE+ - Contains and OK button.
202
- #
203
- # Return values can be any of following:
204
- # - +IDOK+
205
- # - +IDCANCEL+
206
- # - +IDABORT+
207
- # - +IDRETRY+
208
- # - +IDIGNORE+
209
- # - +IDYES+
210
- # - +IDNO+
211
- #
212
- # In an +MB_MULTILINE+ message box, the message is displayed as a multi-line
213
- # message with scrollbars (as needed). +MB_MULTILNE+ also allows a third string
214
- # argument that will be used as the title for the messagebox.
215
- #
216
- # @example
217
- # result = UI.messagebox('Do you like cheese?', MB_YESNO)
218
- # if result == IDYES
219
- # UI.messagebox('SketchUp likes cheese too!')
220
- # end
221
- #
222
- # @param [String] message
223
- # The message that you want to display.
224
- #
225
- # @param [Integer] type
226
- # The message box type, which will be a constant from
227
- # the list in the method comments.
228
- #
229
- # @return [Integer] A number corresponding to what the user selected.
230
- #
231
- # @version SketchUp 6.0
232
- def self.messagebox(message, type = MB_OK)
233
- end
234
-
235
- # The model_info_pages method is used to returns the names of all the
236
- # available model info pages. These include UI windows such as Components,
237
- # Credits, and Units.
238
- #
239
- # @example
240
- # mypages = UI.model_info_pages
241
- #
242
- # @return [Array<String>] an array of strings containing the names of
243
- # model info pages.
244
- #
245
- # @version SketchUp 6.0
246
- def self.model_info_pages
247
- end
248
-
249
- # The {.openURL} method is used to open the default browser to a URL.
250
- #
251
- # @bug Before SketchUp 2019.3 the mac version would URL encode the given URL.
252
- # This could inadvertently mangle some URLs, if for example if they had
253
- # URL fragments (# character).
254
- # The Windows version would not. As of SketchUp 2019.3 both platforms do
255
- # not perform URL encoding and the API user is expected to provide a valid
256
- # URL.
257
- #
258
- # @example
259
- # status = UI.openURL("http://www.sketchup.com")
260
- #
261
- # @param [String] url
262
- #
263
- # @return [Boolean]
264
- #
265
- # @version SketchUp 6.0
266
- def self.openURL(url)
267
- end
268
-
269
- # The openpanel method is used to display the Open dialog box. The path that
270
- # is returned can then be used inside code to open a text or image file.
271
- # See the standard Ruby class File for examples of reading and writing from
272
- # disk.
273
- #
274
- # Bug Fixed in SketchUp 2014: Wildcards were not working properly from SU7 to
275
- # SU2013. Wildcard filters did not populate the file type dropdown. The filter
276
- # string would be shown in the file name field with '*' characters converted to
277
- # '_' characters. Note, the format of a wildcard filter string has been changed.
278
- # See the description of the filename parameter below for details.
279
- #
280
- # @example
281
- # chosen_image = UI.openpanel("Open SKP File", "c:/", "model.skp")
282
- # chosen_image = UI.openpanel("Open Image File", "c:/", "Image Files|*.jpg;*.png;||")
283
- # chosen_image = UI.openpanel("Open CAD File", "c:/", "DXF|*.dxf|DWG|*.dwg||")
284
- #
285
- # @param [String] title
286
- # The title to apply to the open dialog box.
287
- #
288
- # @param [String] directory
289
- # The default directory for the open panel.
290
- #
291
- # @param [String] filename
292
- # The default filename for the open panel. On Windows, you
293
- # can alternatively pass a wildcard filter using this
294
- # format: UIname|wildcard||. Additional filter dropdown
295
- # list items can be added by adding additional pairs of
296
- # filter name and filter like this:
297
- # UIname1|wildcard1|UIname2|wildcard2||.
298
- # Also multiple wildcard filters can be combined into a
299
- # single line using a semicolon-separated list in the
300
- # filter field: ui_name|wildcard1;wildcard2||.
301
- #
302
- # @return [String] the full path and name of the file selected, or
303
- # nil if the dialog was canceled.
304
- #
305
- # @version SketchUp 6.0
306
- def self.openpanel(title, directory, filename)
307
- end
308
-
309
- # The play_sound method is used to play a sound file. Valid sound files include
310
- # .wav and .mp3 files on the Mac and .wav files on the PC.
311
- #
312
- # @example
313
- # UI.play_sound "Plugins/mediadiscussion.wav"
314
- #
315
- # @param [String] filename
316
- # the relative path to the filename from the SketchUp
317
- # install directory, or an absolute path to the file. (See
318
- # Sketchup.find_support_file for a way to search for a
319
- # specific file.)
320
- #
321
- # @return [nil]
322
- #
323
- # @version SketchUp 6.0
324
- def self.play_sound(filename)
325
- end
326
-
327
- # The preferences_pages method is used to returns the names of all the
328
- # preferences pages. These include windows like Extensions.
329
- #
330
- # @example
331
- # prefs = UI.preferences_pages
332
- #
333
- # @return [Array<String>] an array of strings containing the names
334
- # of preference pages.
335
- #
336
- # @version SketchUp 6.0
337
- def self.preferences_pages
338
- end
339
-
340
- # Tells SketchUp to refresh all inspectors such as the Component Browser and
341
- # the Outliner. This is useful when you need to manually force a refresh after
342
- # you've made a change to the document via Ruby. Generally, SketchUp will keep
343
- # these in sync for you, but occasionally it does not, such as when
344
- # model.start_operation has disabled UI updates.
345
- #
346
- # @example
347
- # UI.refresh_inspectors
348
- #
349
- # @return [nil]
350
- #
351
- # @version SketchUp 7.0
352
- def self.refresh_inspectors
353
- end
354
-
355
- # Tells SketchUp to refresh all floating toolbars. This is useful when you need
356
- # to manually force a refresh after you've made a change to the document via
357
- # Ruby. Generally, SketchUp will keep these in sync for you, but occasionally
358
- # it does not, such as when {Sketchup::Model#start_operation} has disabled UI
359
- # updates.
360
- # This only affects macOS, on Windows the toolbars are always refreshing.
361
- #
362
- # @example
363
- # UI.refresh_toolbars
364
- #
365
- # @return [nil]
366
- #
367
- # @version SketchUp 2018
368
- def self.refresh_toolbars
369
- end
370
-
371
- # The savepanel method is used to display the Save dialog box. The path that
372
- # is returned can then be used inside code to save out a text or image file.
373
- # See the standard Ruby class File for examples of reading and writing from
374
- # disk.
375
- #
376
- # Bug Fixed in SketchUp 2014: Wildcards were not working properly from SU7 to
377
- # SU2013. Semicolon-separated lists of wildcards did not populate the file type
378
- # dropdown. The filter string would be shown in the file name field with '*'
379
- # characters converted to '_' characters.
380
- #
381
- # @example
382
- # path_to_save_to = UI.savepanel("Save Image File", "c:\\", "Shapes.jpg")
383
- #
384
- # @param [String] title
385
- # The title to apply to the save dialog box.
386
- #
387
- # @param [String] directory
388
- # The default directory for the save panel.
389
- #
390
- # @param [String] filename
391
- # The default filename for the save panel. On Windows, you
392
- # can alternatively pass a mask, like "*.txt", to have all
393
- # the .txt files display. If you want multiple file types
394
- # to display, you can supply multiple masks for the
395
- # filename and separate them with a semicolon, like this:
396
- # "*.txt;*.doc".
397
- #
398
- # @return [String] the full path and name of the file
399
- # selected or nil if the dialog was canceled.
400
- #
401
- # @version SketchUp 6.0
402
- def self.savepanel(title, directory, filename)
403
- end
404
-
405
- # Returns the scaling factor SketchUp uses on high DPI monitors. Useful for
406
- # things like {Sketchup::View#draw2d}.
407
- #
408
- # @example
409
- # # Scale a set of points representing 2d screen points to account for high
410
- # # DPI monitors.
411
- # points2d = [
412
- # Geom::Point3d.new(0, 0, 0),
413
- # Geom::Point3d.new(8, 0, 0),
414
- # Geom::Point3d.new(8, 4, 0),
415
- # Geom::Point3d.new(0, 4, 0)
416
- # ]
417
- # tr = Geom::Transformation.scaling(UI.scale_factor)
418
- # points2d.each { |point| point.transform!(tr)
419
- #
420
- # @note SU2017M0 will automatically scale up line width and text size, but will
421
- # not scale up the points provided to {Sketchup::View#draw2d}.
422
- #
423
- # @return [Float]
424
- #
425
- # @version SketchUp 2017
426
- def self.scale_factor
427
- end
428
-
429
- # The {.select_directory} method is used to display the OS dialog for selecting
430
- # one or several directories from the file system.
431
- #
432
- # @example
433
- # # Default title and folder:
434
- # chosen_folder = UI.select_directory
435
- #
436
- # # Custom dialog title:
437
- # chosen_folder = UI.select_directory(title: "Select Image Directory")
438
- #
439
- # # Force a start folder:
440
- # chosen_folder = UI.select_directory(directory: "C:/images")
441
- #
442
- # # Allow multiple items to the selected:
443
- # chosen_folder = UI.select_directory(select_multiple: true)
444
- #
445
- # # Custom dialog title and force a start folder:
446
- # chosen_folder = UI.select_directory(
447
- # title: "Select Image Directory",
448
- # directory: "C:/images"
449
- # )
450
- #
451
- # @option options [String] :title (nil) The title for the dialog.
452
- #
453
- # @option options [String] :directory (nil) Force the starting directory for the dialog. If not specified the last
454
- # chosen directory will be used.
455
- #
456
- # @option options [Boolean] :select_multiple (false) Set to true to allow multiple items to be selected.
457
- #
458
- # @param [Hash] options
459
- # The dialog can be customized by providing a hash or named arguments of
460
- # options.
461
- #
462
- # @return [String, Array<String>, nil] A string with the full path of the
463
- # directory selected when
464
- # :select_multiple option is set to
465
- # false otherwise an array of strings
466
- # or nil if the user cancelled.
467
- #
468
- # @version SketchUp 2015
469
- def self.select_directory(options = {})
470
- end
471
-
472
- # The #{set_cursor} method is used to change the cursor to a new cursor with a
473
- # given cursor id. See UI.create_cursor and the Tool class for details
474
- # on creating your own tools with arbitrary cursors.
475
- #
476
- # If you call this while a standard SketchUp tool is active, you will not
477
- # see your custom cursor, as these tools are constantly setting their
478
- # own cursors to indicate SketchUp's state.
479
- #
480
- # @example
481
- # def onSetCursor
482
- # UI.set_cursor(cursor_id)
483
- # end
484
- #
485
- # @param [Integer] cursor_id
486
- # The id of the cursor you want to display.
487
- #
488
- # @return [Boolean]
489
- #
490
- # @version SketchUp 6.0
491
- def self.set_cursor(cursor_id)
492
- end
493
-
494
- # The set_toolbar_visible method is used to set whether a given toolbar is
495
- # visible. Note that the toolbars and their names are different on the
496
- # Mac vs. PC, so be careful and be sure to test when using this method in a
497
- # cross-platform script.
498
- #
499
- # @example
500
- # status = UI.set_toolbar_visible("Camera", true)
501
- #
502
- # @param [String] name
503
- # The name of a Ruby toolbar.
504
- #
505
- # @param [Boolean] visible
506
- # True to make the toolbar visible, false to hide it.
507
- #
508
- # @return [Boolean] true if successful, false if not.
509
- #
510
- # @version SketchUp 6.0
511
- def self.set_toolbar_visible(name, visible)
512
- end
513
-
514
- # The +show_extension_manager+ method is used to display the Extension Manager
515
- # dialog.
516
- #
517
- # @example
518
- # UI.show_extension_manager
519
- #
520
- # @return [nil]
521
- #
522
- # @version SketchUp 2017
523
- def self.show_extension_manager
524
- end
525
-
526
- # The show_inspector method is used to display the inspector with the given
527
- # name. You can get the list of valid inspectors with UI.inspector_names.
528
- #
529
- # @example
530
- # status = UI.show_inspector("Components")
531
- #
532
- # @param [String] name
533
- # The name of inspector that you want to display.
534
- #
535
- # @return [Boolean] true if successful, false if unsuccessful
536
- #
537
- # @version SketchUp 6.0
538
- def self.show_inspector(name)
539
- end
540
-
541
- # The {.show_model_info} method is used to display the model info dialog for a
542
- # specific page. You can get the list of valid dialogs with
543
- # {UI.model_info_pages}.
544
- #
545
- # [SketchUp 2014] <code>"Classifications"</code> page was added.
546
- # [SketchUp 2017] <code>"Extensions"</code> page was removed.
547
- #
548
- # @example
549
- # UI.show_model_info('Credits')
550
- #
551
- # @param [String] page_name
552
- # The name of the model info dialog you want to display.
553
- #
554
- # @return [Boolean]
555
- #
556
- # @version SketchUp 6.0
557
- def self.show_model_info(page_name)
558
- end
559
-
560
- # The show_preferences method is used to display a SketchUp preferences dialog.
561
- # You can get the list of valid dialogs with UI.preferences_pages.
562
- #
563
- # Note that under OSX this method doesn't currently work.
564
- #
565
- # @example
566
- # status = UI.show_preferences('GraphicsCard')
567
- #
568
- # @param [String] page_name
569
- # The name of the preferences dialog you want to display.
570
- #
571
- # @return [Boolean] true
572
- #
573
- # @version SketchUp 6.0
574
- def self.show_preferences(page_name)
575
- end
576
-
577
- # The start_timer method is used to start a timer. This is an effective method
578
- # to create a repeating snippet of code for arbitrary animation.
579
- #
580
- # See this blog post for an detailed example of custom animation using timers:
581
- # http://sketchupapi.blogspot.com/2008/10/animate-yo-cheese.html
582
- #
583
- # Note that there is a bug that if you open a modal window in a non-repeating
584
- # timer the timer will repeat until the window is closed.
585
- #
586
- # @example
587
- # # Beep once after 10 seconds.
588
- # id = UI.start_timer(10, false) { UI.beep }
589
- #
590
- # @param [Numeric] seconds
591
- # The time in seconds before your code should be called.
592
- #
593
- # @param [Boolean] repeat
594
- # true if you want the timer to repeat, false
595
- # (or omit) if you do not want it to repeat.
596
- #
597
- # @return [Integer] a timer ID
598
- #
599
- # @version SketchUp 6.0
600
- #
601
- # @yield [procedure] The procedure you want to execute after seconds has
602
- # expired.
603
- def self.start_timer(seconds, repeat = false)
604
- end
605
-
606
- # The stop_timer method is used to stop a timer based on its id.
607
- #
608
- # @example
609
- # # Stop timer before it triggers.
610
- # id = UI.start_timer(10) { UI.beep }
611
- # UI.stop_timer(id)
612
- #
613
- # @param [Integer] id
614
- # The timer id for the timer that you want to stop.
615
- #
616
- # @return [nil]
617
- #
618
- # @version SketchUp 6.0
619
- def self.stop_timer(id)
620
- end
621
-
622
- # The toolbar method is used to get a Ruby toolbar by name. If the toolbar
623
- # doesn't exist a new one will be created.
624
- #
625
- # @example
626
- # toolbar = UI.toolbar('Test')
627
- #
628
- # @param [String] name
629
- # The name of the Ruby toolbar.
630
- #
631
- # @return [UI::Toolbar] a Toolbar object
632
- #
633
- # @version SketchUp 6.0
634
- def self.toolbar(name)
635
- end
636
-
637
- # The toolbar_names method is used to return the name of all the available
638
- # native toolbars (this differs between PC and Mac). These toolbar names
639
- # do not include Ruby toolbars.
640
- #
641
- # @example
642
- # names = UI.toolbar_names
643
- #
644
- # @return [Array<String>] Array of strings representing toolbar names.
645
- #
646
- # @version SketchUp 6.0
647
- def self.toolbar_names
648
- end
649
-
650
- # The toolbar_visible? method is used to determine whether a given toolbar is
651
- # visible. Note that the toolbars and their names are different on the
652
- # Mac vs. PC, so be careful and be sure to test when using this method in a
653
- # cross-platform script.
654
- #
655
- # @example
656
- # status = UI.toolbar_visible?("Camera")
657
- #
658
- # @param [String] name
659
- # The name of a native toolbar.
660
- #
661
- # @return [Boolean]
662
- #
663
- # @version SketchUp 6.0
664
- def self.toolbar_visible?(name)
665
- end
666
-
667
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The UI module contains a number of methods for creating simple UI elements
5
+ # from a SketchUp Ruby script.
6
+ #
7
+ # @version SketchUp 6.0
8
+ module UI
9
+
10
+ # Class Methods
11
+
12
+ # The add_context_menu_handler method is used to register a block of code with
13
+ # SketchUp that will be called when a context menu is to be displayed. The
14
+ # context menu handler can then display the context menu with the items that
15
+ # you have added.
16
+ #
17
+ # Be careful with what you do in a context menu handler. If you perform an
18
+ # operation takes take a long time, such as traversing the model or selection
19
+ # in a large model it will delay the menu.
20
+ #
21
+ # See the contextmenu.rb script in the Plugins/examples directory for an
22
+ # example.
23
+ #
24
+ # @example
25
+ # # Right click on anything to see a Hello World item.
26
+ # UI.add_context_menu_handler do |context_menu|
27
+ # context_menu.add_item("Hello World") {
28
+ # UI.messagebox("Hello world")
29
+ # }
30
+ # end
31
+ #
32
+ # @return [Integer] the number of context handlers that are
33
+ # registered
34
+ #
35
+ # @version SketchUp 6.0
36
+ #
37
+ # @yield [menu] A block of code that takes a menu as its only as its
38
+ # only argument.
39
+ def self.add_context_menu_handler
40
+ end
41
+
42
+ # The beep method plays a system beep sound.
43
+ #
44
+ # The beep method does not accept any arguments nor return any values.
45
+ #
46
+ # @example
47
+ # UI.beep
48
+ #
49
+ # @return [nil]
50
+ #
51
+ # @version SketchUp 6.0
52
+ def self.beep
53
+ end
54
+
55
+ # The create_cursor method is used to create a cursor from an image file at
56
+ # the specified location. This must be called from within a custom
57
+ # Tool. See the Tool class for a complete example.
58
+ #
59
+ # Since SketchUp 2016 it is possible to provide vector images for the cursors.
60
+ # SVG format for Windows and PDF format for OS X.
61
+ #
62
+ # @example
63
+ # cursor_id = nil
64
+ # cursor_path = Sketchup.find_support_file("Pointer.png", "Plugins/")
65
+ # if cursor_path
66
+ # cursor_id = UI.create_cursor(cursor_path, 0, 0)
67
+ # end
68
+ #
69
+ # def onSetCursor
70
+ # UI.set_cursor(cursor_id)
71
+ # end
72
+ #
73
+ # @param [String] path
74
+ # File path to an image.
75
+ #
76
+ # @param [Integer] hot_x
77
+ # An x coordinate that is the "hotpoint" for the cursor
78
+ # computed from the left edge of your cursor image.
79
+ #
80
+ # @param [Integer] hot_y
81
+ # A y coordinate that is the "hotpoint" for the cursor
82
+ # computed from the top edge of the of your cursor image.
83
+ # For example, a value of (hot_x, hot_y) = (5,10) would
84
+ # identify the hotpoint of the cursor at 5 pixels from
85
+ # the left edge of your cursor image and 10 pixels from
86
+ # the top edge of your cursor image.
87
+ #
88
+ # @return [Integer] ID associated with the cursor
89
+ #
90
+ # @version SketchUp 6.0
91
+ def self.create_cursor(path, hot_x, hot_y)
92
+ end
93
+
94
+ # Creates a dialog box for inputting user information. The dialog box contains
95
+ # input fields with static text prompts, optional default values, optional
96
+ # drop down selections, and optional title.
97
+ #
98
+ # You can also use this method to display drop down lists of options, by
99
+ # passing an optional param.
100
+ #
101
+ # @example
102
+ # # With three params, it shows all text boxes:
103
+ # prompts = ["What is your Name?", "What is your Age?", "Gender"]
104
+ # defaults = ["Enter name", "", "Male"]
105
+ # input = UI.inputbox(prompts, defaults, "Tell me about yourself.")
106
+ #
107
+ # # With four params, it shows a drop down box for prompts that have
108
+ # # pipe-delimited lists of options. In this case, the Gender prompt
109
+ # # is a drop down instead of a text box.
110
+ # prompts = ["What is your Name?", "What is your Age?", "Gender"]
111
+ # defaults = ["Enter name", "", "Male"]
112
+ # list = ["", "", "Male|Female"]
113
+ # input = UI.inputbox(prompts, defaults, list, "Tell me about yourself.")
114
+ #
115
+ # @overload inputbox(prompts, defaults, title)
116
+ #
117
+ # @param [Array<String>] prompts
118
+ # An array of prompt names appearing in the input box
119
+ # adjacent to input fields.
120
+ # @param [Array<String>] defaults
121
+ # An array of default values for the input
122
+ # fields.
123
+ # @param [String] title
124
+ # The title for the input box.
125
+ #
126
+ # @overload inputbox(prompts, defaults, list, title)
127
+ #
128
+ # @param [Array<String>] prompts
129
+ # An array of prompt names appearing in the input box
130
+ # adjacent to input fields.
131
+ # @param [Array<String>] defaults
132
+ # An array of default values for the input
133
+ # fields.
134
+ # @param [String, Array<String>] list
135
+ # An array containing pipe-separated strings of options.
136
+ # @param [String] title
137
+ # The title for the input box.
138
+ #
139
+ # @return [Array<String>, false] An array of returned values if the user did
140
+ # not cancel the dialog. If the user canceled the
141
+ # dialog, false is returned. The returned values in the
142
+ # array will be in the same order as the input fields.
143
+ #
144
+ # @version SketchUp 6.0
145
+ def self.inputbox(*args)
146
+ end
147
+
148
+ # The inspector_names method is used to returns the names of all the
149
+ # inspectors. Inspectors are another name for the various floating dialog
150
+ # windows that you can activate from withing SketchUp, such as the Materials
151
+ # window.
152
+ #
153
+ # @example
154
+ # inspectors = UI.inspector_names
155
+ #
156
+ # @return [Array<String>] an array of strings containing the names
157
+ # of inspectors.
158
+ #
159
+ # @version SketchUp 6.0
160
+ def self.inspector_names
161
+ end
162
+
163
+ # The {.menu} method retrieves a SketchUp's menu object with a given name. This
164
+ # is the first step toward adding your own custom items to the bottom
165
+ # of SketchUp's menus.
166
+ #
167
+ # Valid menu names are: "File", "Edit", "View", "Camera", "Draw", "Tools",
168
+ # "Window", "Extensions" and "Help".
169
+ #
170
+ # @example
171
+ # tool_menu = UI.menu("Tools")
172
+ # tool_menu.add_item("Cheese Tool") {
173
+ # UI.messagebox("Cheese activated.")
174
+ # }
175
+ #
176
+ # @note The "Extensions" menu was named "Plugins" prior to SketchUp 2015.
177
+ # For backward compatibility "Plugins" still works.
178
+ #
179
+ # @note In versions prior to SketchUp 2018 this would crash if you passed an
180
+ # empty string.
181
+ #
182
+ # @param menu_name
183
+ # The name of an existing top level menu.
184
+ #
185
+ # @return [Sketchup::Menu]
186
+ #
187
+ # @version SketchUp 6.0
188
+ def self.menu(menu_name = "Plugins")
189
+ end
190
+
191
+ # Creates a dialog box containing static text with a series of buttons for
192
+ # the user to choose from.
193
+ #
194
+ # Valid message box types are:
195
+ # - +MB_OK+ - Contains an OK button.
196
+ # - +MB_OKCANCEL+ - Contains OK and Cancel buttons.
197
+ # - +MB_ABORTRETRYIGNORE+ - Contains Abort, Retry, and Ignore buttons.
198
+ # - +MB_YESNOCANCEL+ - Contains Yes, No, and Cancel buttons.
199
+ # - +MB_YESNO+ - Contains Yes and No buttons.
200
+ # - +MB_RETRYCANCEL+ - Contains Retry and Cancel buttons.
201
+ # - +MB_MULTILINE+ - Contains and OK button.
202
+ #
203
+ # Return values can be any of following:
204
+ # - +IDOK+
205
+ # - +IDCANCEL+
206
+ # - +IDABORT+
207
+ # - +IDRETRY+
208
+ # - +IDIGNORE+
209
+ # - +IDYES+
210
+ # - +IDNO+
211
+ #
212
+ # In an +MB_MULTILINE+ message box, the message is displayed as a multi-line
213
+ # message with scrollbars (as needed). +MB_MULTILNE+ also allows a third string
214
+ # argument that will be used as the title for the messagebox.
215
+ #
216
+ # @example
217
+ # result = UI.messagebox('Do you like cheese?', MB_YESNO)
218
+ # if result == IDYES
219
+ # UI.messagebox('SketchUp likes cheese too!')
220
+ # end
221
+ #
222
+ # @param [String] message
223
+ # The message that you want to display.
224
+ #
225
+ # @param [Integer] type
226
+ # The message box type, which will be a constant from
227
+ # the list in the method comments.
228
+ #
229
+ # @return [Integer] A number corresponding to what the user selected.
230
+ #
231
+ # @version SketchUp 6.0
232
+ def self.messagebox(message, type = MB_OK)
233
+ end
234
+
235
+ # The model_info_pages method is used to returns the names of all the
236
+ # available model info pages. These include UI windows such as Components,
237
+ # Credits, and Units.
238
+ #
239
+ # @example
240
+ # mypages = UI.model_info_pages
241
+ #
242
+ # @return [Array<String>] an array of strings containing the names of
243
+ # model info pages.
244
+ #
245
+ # @version SketchUp 6.0
246
+ def self.model_info_pages
247
+ end
248
+
249
+ # The {.openURL} method is used to open the default browser to a URL.
250
+ #
251
+ # @bug Before SketchUp 2019.3 the mac version would URL encode the given URL.
252
+ # This could inadvertently mangle some URLs, if for example if they had
253
+ # URL fragments (# character).
254
+ # The Windows version would not. As of SketchUp 2019.3 both platforms do
255
+ # not perform URL encoding and the API user is expected to provide a valid
256
+ # URL.
257
+ #
258
+ # @example
259
+ # status = UI.openURL("http://www.sketchup.com")
260
+ #
261
+ # @param [String] url
262
+ #
263
+ # @return [Boolean]
264
+ #
265
+ # @version SketchUp 6.0
266
+ def self.openURL(url)
267
+ end
268
+
269
+ # The openpanel method is used to display the Open dialog box. The path that
270
+ # is returned can then be used inside code to open a text or image file.
271
+ # See the standard Ruby class File for examples of reading and writing from
272
+ # disk.
273
+ #
274
+ # Bug Fixed in SketchUp 2014: Wildcards were not working properly from SU7 to
275
+ # SU2013. Wildcard filters did not populate the file type dropdown. The filter
276
+ # string would be shown in the file name field with '*' characters converted to
277
+ # '_' characters. Note, the format of a wildcard filter string has been changed.
278
+ # See the description of the filename parameter below for details.
279
+ #
280
+ # @example
281
+ # chosen_image = UI.openpanel("Open SKP File", "c:/", "model.skp")
282
+ # chosen_image = UI.openpanel("Open Image File", "c:/", "Image Files|*.jpg;*.png;||")
283
+ # chosen_image = UI.openpanel("Open CAD File", "c:/", "DXF|*.dxf|DWG|*.dwg||")
284
+ #
285
+ # @param [String] title
286
+ # The title to apply to the open dialog box.
287
+ #
288
+ # @param [String] directory
289
+ # The default directory for the open panel.
290
+ #
291
+ # @param [String] filename
292
+ # The default filename for the open panel. On Windows, you
293
+ # can alternatively pass a wildcard filter using this
294
+ # format: UIname|wildcard||. Additional filter dropdown
295
+ # list items can be added by adding additional pairs of
296
+ # filter name and filter like this:
297
+ # UIname1|wildcard1|UIname2|wildcard2||.
298
+ # Also multiple wildcard filters can be combined into a
299
+ # single line using a semicolon-separated list in the
300
+ # filter field: ui_name|wildcard1;wildcard2||.
301
+ #
302
+ # @return [String] the full path and name of the file selected, or
303
+ # nil if the dialog was canceled.
304
+ #
305
+ # @version SketchUp 6.0
306
+ def self.openpanel(title, directory, filename)
307
+ end
308
+
309
+ # The play_sound method is used to play a sound file. Valid sound files include
310
+ # .wav and .mp3 files on the Mac and .wav files on the PC.
311
+ #
312
+ # @example
313
+ # UI.play_sound "Plugins/mediadiscussion.wav"
314
+ #
315
+ # @param [String] filename
316
+ # the relative path to the filename from the SketchUp
317
+ # install directory, or an absolute path to the file. (See
318
+ # Sketchup.find_support_file for a way to search for a
319
+ # specific file.)
320
+ #
321
+ # @return [nil]
322
+ #
323
+ # @version SketchUp 6.0
324
+ def self.play_sound(filename)
325
+ end
326
+
327
+ # The preferences_pages method is used to returns the names of all the
328
+ # preferences pages. These include windows like Templates.
329
+ #
330
+ # [SketchUp 2017] <code>"Extensions"</code> page was removed.
331
+ #
332
+ # @example
333
+ # prefs = UI.preferences_pages
334
+ #
335
+ # @return [Array<String>] an array of strings containing the names
336
+ # of preference pages.
337
+ #
338
+ # @version SketchUp 6.0
339
+ def self.preferences_pages
340
+ end
341
+
342
+ # Tells SketchUp to refresh all inspectors such as the Component Browser and
343
+ # the Outliner. This is useful when you need to manually force a refresh after
344
+ # you've made a change to the document via Ruby. Generally, SketchUp will keep
345
+ # these in sync for you, but occasionally it does not, such as when
346
+ # model.start_operation has disabled UI updates.
347
+ #
348
+ # @example
349
+ # UI.refresh_inspectors
350
+ #
351
+ # @return [nil]
352
+ #
353
+ # @version SketchUp 7.0
354
+ def self.refresh_inspectors
355
+ end
356
+
357
+ # Tells SketchUp to refresh all floating toolbars. This is useful when you need
358
+ # to manually force a refresh after you've made a change to the document via
359
+ # Ruby. Generally, SketchUp will keep these in sync for you, but occasionally
360
+ # it does not, such as when {Sketchup::Model#start_operation} has disabled UI
361
+ # updates.
362
+ # This only affects macOS, on Windows the toolbars are always refreshing.
363
+ #
364
+ # @example
365
+ # UI.refresh_toolbars
366
+ #
367
+ # @return [nil]
368
+ #
369
+ # @version SketchUp 2018
370
+ def self.refresh_toolbars
371
+ end
372
+
373
+ # The savepanel method is used to display the Save dialog box. The path that
374
+ # is returned can then be used inside code to save out a text or image file.
375
+ # See the standard Ruby class File for examples of reading and writing from
376
+ # disk.
377
+ #
378
+ # Bug Fixed in SketchUp 2014: Wildcards were not working properly from SU7 to
379
+ # SU2013. Semicolon-separated lists of wildcards did not populate the file type
380
+ # dropdown. The filter string would be shown in the file name field with '*'
381
+ # characters converted to '_' characters.
382
+ #
383
+ # @example
384
+ # path_to_save_to = UI.savepanel("Save Image File", "c:\\", "Shapes.jpg")
385
+ #
386
+ # @param [String] title
387
+ # The title to apply to the save dialog box.
388
+ #
389
+ # @param [String] directory
390
+ # The default directory for the save panel.
391
+ #
392
+ # @param [String] filename
393
+ # The default filename for the save panel. On Windows, you
394
+ # can alternatively pass a mask, like "*.txt", to have all
395
+ # the .txt files display. If you want multiple file types
396
+ # to display, you can supply multiple masks for the
397
+ # filename and separate them with a semicolon, like this:
398
+ # "*.txt;*.doc".
399
+ #
400
+ # @return [String] the full path and name of the file
401
+ # selected or nil if the dialog was canceled.
402
+ #
403
+ # @version SketchUp 6.0
404
+ def self.savepanel(title, directory, filename)
405
+ end
406
+
407
+ # Returns the scaling factor SketchUp uses on high DPI monitors. Useful for
408
+ # things like {Sketchup::View#draw2d}.
409
+ #
410
+ # @example
411
+ # # Scale a set of points representing 2d screen points to account for high
412
+ # # DPI monitors.
413
+ # points2d = [
414
+ # Geom::Point3d.new(0, 0, 0),
415
+ # Geom::Point3d.new(8, 0, 0),
416
+ # Geom::Point3d.new(8, 4, 0),
417
+ # Geom::Point3d.new(0, 4, 0)
418
+ # ]
419
+ # tr = Geom::Transformation.scaling(UI.scale_factor)
420
+ # points2d.each { |point| point.transform!(tr)
421
+ #
422
+ # @note SU2017M0 will automatically scale up line width and text size, but will
423
+ # not scale up the points provided to {Sketchup::View#draw2d}.
424
+ #
425
+ # @return [Float]
426
+ #
427
+ # @version SketchUp 2017
428
+ def self.scale_factor
429
+ end
430
+
431
+ # The {.select_directory} method is used to display the OS dialog for selecting
432
+ # one or several directories from the file system.
433
+ #
434
+ # @example
435
+ # # Default title and folder:
436
+ # chosen_folder = UI.select_directory
437
+ #
438
+ # # Custom dialog title:
439
+ # chosen_folder = UI.select_directory(title: "Select Image Directory")
440
+ #
441
+ # # Force a start folder:
442
+ # chosen_folder = UI.select_directory(directory: "C:/images")
443
+ #
444
+ # # Allow multiple items to the selected:
445
+ # chosen_folder = UI.select_directory(select_multiple: true)
446
+ #
447
+ # # Custom dialog title and force a start folder:
448
+ # chosen_folder = UI.select_directory(
449
+ # title: "Select Image Directory",
450
+ # directory: "C:/images"
451
+ # )
452
+ #
453
+ # @option options [String] :title (nil) The title for the dialog.
454
+ #
455
+ # @option options [String] :directory (nil) Force the starting directory for the dialog. If not specified the last
456
+ # chosen directory will be used.
457
+ #
458
+ # @option options [Boolean] :select_multiple (false) Set to true to allow multiple items to be selected.
459
+ #
460
+ # @param [Hash] options
461
+ # The dialog can be customized by providing a hash or named arguments of
462
+ # options.
463
+ #
464
+ # @return [String, Array<String>, nil] A string with the full path of the
465
+ # directory selected when
466
+ # :select_multiple option is set to
467
+ # false otherwise an array of strings
468
+ # or nil if the user cancelled.
469
+ #
470
+ # @version SketchUp 2015
471
+ def self.select_directory(options = {})
472
+ end
473
+
474
+ # The {.set_cursor} method is used to change the cursor to a new cursor with a
475
+ # given cursor id. See UI.create_cursor and the Tool class for details
476
+ # on creating your own tools with arbitrary cursors.
477
+ #
478
+ # If you call this while a standard SketchUp tool is active, you will not
479
+ # see your custom cursor, as these tools are constantly setting their
480
+ # own cursors to indicate SketchUp's state.
481
+ #
482
+ # @example
483
+ # def onSetCursor
484
+ # UI.set_cursor(cursor_id)
485
+ # end
486
+ #
487
+ # @param [Integer] cursor_id
488
+ # The id of the cursor you want to display.
489
+ #
490
+ # @return [Boolean]
491
+ #
492
+ # @version SketchUp 6.0
493
+ def self.set_cursor(cursor_id)
494
+ end
495
+
496
+ # The set_toolbar_visible method is used to set whether a given toolbar is
497
+ # visible. Note that the toolbars and their names are different on the
498
+ # Mac vs. PC, so be careful and be sure to test when using this method in a
499
+ # cross-platform script.
500
+ #
501
+ # @example
502
+ # status = UI.set_toolbar_visible("Camera", true)
503
+ #
504
+ # @param [String] name
505
+ # The name of a Ruby toolbar.
506
+ #
507
+ # @param [Boolean] visible
508
+ # True to make the toolbar visible, false to hide it.
509
+ #
510
+ # @return [Boolean] true if successful, false if not.
511
+ #
512
+ # @version SketchUp 6.0
513
+ def self.set_toolbar_visible(name, visible)
514
+ end
515
+
516
+ # The +show_extension_manager+ method is used to display the Extension Manager
517
+ # dialog.
518
+ #
519
+ # @example
520
+ # UI.show_extension_manager
521
+ #
522
+ # @return [nil]
523
+ #
524
+ # @version SketchUp 2017
525
+ def self.show_extension_manager
526
+ end
527
+
528
+ # The show_inspector method is used to display the inspector with the given
529
+ # name. You can get the list of valid inspectors with UI.inspector_names.
530
+ #
531
+ # @example
532
+ # status = UI.show_inspector("Components")
533
+ #
534
+ # @param [String] name
535
+ # The name of inspector that you want to display.
536
+ #
537
+ # @return [Boolean] true if successful, false if unsuccessful
538
+ #
539
+ # @version SketchUp 6.0
540
+ def self.show_inspector(name)
541
+ end
542
+
543
+ # The {.show_model_info} method is used to display the model info dialog for a
544
+ # specific page. You can get the list of valid dialogs with
545
+ # {UI.model_info_pages}.
546
+ #
547
+ # [SketchUp 2014] <code>"Classifications"</code> page was added.
548
+ #
549
+ # @example
550
+ # UI.show_model_info('Credits')
551
+ #
552
+ # @param [String] page_name
553
+ # The name of the model info dialog you want to display.
554
+ #
555
+ # @return [Boolean]
556
+ #
557
+ # @version SketchUp 6.0
558
+ def self.show_model_info(page_name)
559
+ end
560
+
561
+ # The show_preferences method is used to display a SketchUp preferences dialog.
562
+ # You can get the list of valid dialogs with {UI.preferences_pages}.
563
+ #
564
+ # @bug Under OSX this method doesn't currently work.
565
+ #
566
+ # @example
567
+ # status = UI.show_preferences('GraphicsCard')
568
+ #
569
+ # @param [String] page_name
570
+ # The name of the preferences dialog you want to display.
571
+ #
572
+ # @return [Boolean] true
573
+ #
574
+ # @version SketchUp 6.0
575
+ def self.show_preferences(page_name)
576
+ end
577
+
578
+ # The start_timer method is used to start a timer. This is an effective method
579
+ # to create a repeating snippet of code for arbitrary animation.
580
+ #
581
+ # See this blog post for an detailed example of custom animation using timers:
582
+ # http://sketchupapi.blogspot.com/2008/10/animate-yo-cheese.html
583
+ #
584
+ # Note that there is a bug that if you open a modal window in a non-repeating
585
+ # timer the timer will repeat until the window is closed.
586
+ #
587
+ # @example
588
+ # # Beep once after 10 seconds.
589
+ # id = UI.start_timer(10, false) { UI.beep }
590
+ #
591
+ # @param [Numeric] seconds
592
+ # The time in seconds before your code should be called.
593
+ #
594
+ # @param [Boolean] repeat
595
+ # true if you want the timer to repeat, false
596
+ # (or omit) if you do not want it to repeat.
597
+ #
598
+ # @return [Integer] a timer ID
599
+ #
600
+ # @version SketchUp 6.0
601
+ #
602
+ # @yield [procedure] The procedure you want to execute after seconds has
603
+ # expired.
604
+ def self.start_timer(seconds, repeat = false)
605
+ end
606
+
607
+ # The stop_timer method is used to stop a timer based on its id.
608
+ #
609
+ # @example
610
+ # # Stop timer before it triggers.
611
+ # id = UI.start_timer(10) { UI.beep }
612
+ # UI.stop_timer(id)
613
+ #
614
+ # @param [Integer] id
615
+ # The timer id for the timer that you want to stop.
616
+ #
617
+ # @return [nil]
618
+ #
619
+ # @version SketchUp 6.0
620
+ def self.stop_timer(id)
621
+ end
622
+
623
+ # The toolbar method is used to get a Ruby toolbar by name. If the toolbar
624
+ # doesn't exist a new one will be created.
625
+ #
626
+ # @example
627
+ # toolbar = UI.toolbar('Test')
628
+ #
629
+ # @param [String] name
630
+ # The name of the Ruby toolbar.
631
+ #
632
+ # @return [UI::Toolbar] a Toolbar object
633
+ #
634
+ # @version SketchUp 6.0
635
+ def self.toolbar(name)
636
+ end
637
+
638
+ # The toolbar_names method is used to return the name of all the available
639
+ # native toolbars (this differs between PC and Mac). These toolbar names
640
+ # do not include Ruby toolbars.
641
+ #
642
+ # @example
643
+ # names = UI.toolbar_names
644
+ #
645
+ # @return [Array<String>] Array of strings representing toolbar names.
646
+ #
647
+ # @version SketchUp 6.0
648
+ def self.toolbar_names
649
+ end
650
+
651
+ # The toolbar_visible? method is used to determine whether a given toolbar is
652
+ # visible. Note that the toolbars and their names are different on the
653
+ # Mac vs. PC, so be careful and be sure to test when using this method in a
654
+ # cross-platform script.
655
+ #
656
+ # @example
657
+ # status = UI.toolbar_visible?("Camera")
658
+ #
659
+ # @param [String] name
660
+ # The name of a native toolbar.
661
+ #
662
+ # @return [Boolean]
663
+ #
664
+ # @version SketchUp 6.0
665
+ def self.toolbar_visible?(name)
666
+ end
667
+
668
+ end