sketchup-api-stubs 0.7.9 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +569 -517
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +356 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +459 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/Length.rb +278 -278
  51. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -150
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -659
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -449
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -406
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1242 -1239
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -282
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -406
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -326
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -317
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1656 -1652
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -130
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -490
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -116
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -361
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +480 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +373 -361
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -458
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -255
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -834
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1329 -1311
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1394 -1377
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +387 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +505 -494
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -241
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +728 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +3 -3
@@ -1,389 +1,387 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Command class is the preferred class for adding tools to the menus and
5
- # Ruby toolbars. For example, you could add a menu item and pass it a code
6
- # block directly, or you could first create a Command.
7
- #
8
- # Using Commands gives you greater control over how the item works in the UI,
9
- # and it allows multiple spots in the UI to call the same code. For example,
10
- # You might want a toolbar button and a context-click menu item to both point
11
- # to the same command, and to control the tooltip and its "graying" from
12
- # a single spot in your code.
13
- #
14
- # @example
15
- # # You can add menu items as procedure blocks, as shown here, but
16
- # # you have no control over whether it is grayed out, for example.
17
- # UI.menu("Draw").add_item("My Procedure") {
18
- # UI.messagebox("My Procedure")
19
- # }
20
- #
21
- # # Better to create a command object.
22
- # cmd = UI::Command.new("Tester") {
23
- # UI.messagebox("My Command")
24
- # }
25
- # cmd.menu_text = "My Command"
26
- # cmd.set_validation_proc {
27
- # if Sketchup.active_model.selection.length == 0
28
- # MF_GRAYED
29
- # else
30
- # MF_ENABLED
31
- # end
32
- # }
33
- # UI.menu("Draw").add_item cmd
34
- #
35
- # @version SketchUp 6.0
36
- class UI::Command
37
-
38
- # Class Methods
39
-
40
- # The new method is used to create a new command.
41
- #
42
- # @example
43
- # UI.menu("Draw").add_separator
44
- #
45
- # # Adds a Test submenu to the Draw menu where the Tester menu item appears
46
- # testmenu = UI.menu("Draw").add_submenu("Test")
47
- #
48
- # # This menu item simply displays Hello World on the screen when clicked.
49
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
50
- # testmenu.add_item cmd
51
- #
52
- # @note Prior to SketchUp 2019 it was not possible to sub-class {UI::Command}
53
- # due to a bug in how SketchUp initialized the class.
54
- #
55
- # @param [String] menutext
56
- # The text that will appear for this command's menu item
57
- # if it appears on a menu.
58
- #
59
- # @return [UI::Command] the new Command object
60
- #
61
- # @version SketchUp 6.0
62
- #
63
- # @yield Code that executes the command when the menu item or
64
- # toolbar item is selected.
65
- def self.new(menutext)
66
- end
67
-
68
- # Instance Methods
69
-
70
- # The {#extension} method returns the command's associated extension.
71
- #
72
- # @example
73
- # extension = Sketchup.extensions['Sandbox Tools']
74
- # cmd = UI::Command.new("Tester") {}
75
- # cmd.extension = extension
76
- # p cmd.extension == extension
77
- #
78
- # @note This is an advanced feature that extension developers normally won't
79
- # have to deal with. It's purpose is to address scenarios when SketchUp
80
- # isn't able to automatically infer which extension the command belongs to.
81
- #
82
- # @return [SketchupExtension, nil]
83
- #
84
- # @version SketchUp 2022.0
85
- def extension
86
- end
87
-
88
- # The {#extension=} method explicitly sets the command's associated extension.
89
- #
90
- # @example
91
- # extension = Sketchup.extensions['Sandbox Tools']
92
- # cmd = UI::Command.new("Tester") {}
93
- # cmd.extension = extension
94
- #
95
- # @note This is an advanced feature that extension developers normally won't
96
- # have to deal with. It's purpose is to address scenarios when SketchUp
97
- # isn't able to automatically infer which extension the command belongs to.
98
- # These scenarios are for example an extension using a library to add its
99
- # commands or command manager extensions.
100
- #
101
- # @param [SketchupExtension, nil] extension
102
- #
103
- # @version SketchUp 2022.0
104
- def extension=(extension)
105
- end
106
-
107
- # The {#get_validation_proc} method returns the command's validation proc.
108
- #
109
- # @example
110
- # cmd = UI::Command.new("Tester") {}
111
- # cmd.set_validation_proc { MF_DISABLED }
112
- # proc = cmd.get_validation_proc
113
- #
114
- # @return [Proc, nil]
115
- #
116
- # @see #set_validation_proc
117
- #
118
- # @version SketchUp 2022.0
119
- def get_validation_proc
120
- end
121
-
122
- # The large_icon method returns the icon file for the command's
123
- # large icon.
124
- #
125
- # @example
126
- # toolbar = UI::Toolbar.new "Test"
127
- # # This command displays Hello World on the screen when clicked
128
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
129
- # cmd.small_icon = "ToolPencilSmall.png"
130
- # cmd.large_icon = "ToolPencilLarge.png"
131
- # toolbar = toolbar.add_item cmd
132
- # toolbar.show
133
- # puts cmd.large_icon
134
- #
135
- # @return [String] the path to the large icon.
136
- #
137
- # @version SketchUp 8.0 M1
138
- def large_icon
139
- end
140
-
141
- # The large_icon= method is used to identify the icon file for the command's
142
- # large icon. large icons should be 32x32 pixel images for best display
143
- # quality.
144
- #
145
- # Since SketchUp 2016 it is possible to provide vector images for the command.
146
- # SVG format for Windows and PDF format for OS X. Since the vector images scale
147
- # for both small and large icon sizes, you may choose to use only one vector
148
- # image for both variants.
149
- #
150
- # @example
151
- # toolbar = UI::Toolbar.new "Test"
152
- # # This command displays Hello World on the screen when clicked
153
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
154
- # cmd.small_icon = "ToolPencilSmall.png"
155
- # cmd.large_icon = "ToolPencilLarge.png"
156
- # toolbar = toolbar.add_item cmd
157
- # toolbar.show
158
- #
159
- # @param [String] path
160
- # The path to the large icon.
161
- #
162
- # @return [String]
163
- #
164
- # @version SketchUp 6.0
165
- def large_icon=(path)
166
- end
167
-
168
- # The menu_text method returns the menu item name for the command.
169
- #
170
- # @example
171
- # add_separator_to_menu("Draw")
172
- # # Adds a Test submenu to the Draw menu where the Tester menu item appears
173
- # testmenu = UI.menu("Draw").add_submenu("Test")
174
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
175
- # cmd.menu_text = "New String"
176
- # testmenu.add_item cmd
177
- # puts cmd.menu_text
178
- #
179
- # @return [String]
180
- #
181
- # @version SketchUp 8.0 M1
182
- def menu_text
183
- end
184
-
185
- # The menu_text= method is used to set the menu item name for the command.
186
- #
187
- # @example
188
- # add_separator_to_menu("Draw")
189
- # # Adds a Test submenu to the Draw menu where the Tester menu item appears
190
- # testmenu = UI.menu("Draw").add_submenu("Test")
191
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
192
- # cmd.menu_text = "New String"
193
- # testmenu.add_item cmd
194
- #
195
- # @param [String] menuitem
196
- # A string representing the menu item for the command.
197
- #
198
- # @return [String]
199
- #
200
- # @version SketchUp 6.0
201
- def menu_text=(menuitem)
202
- end
203
-
204
- # The {#proc} method returns the command's proc that is called when the command
205
- # is invoked.
206
- #
207
- # @example
208
- # cmd = UI::Command.new("Tester") {}
209
- # cmd.set_validation_proc { MF_DISABLED }
210
- # proc = cmd.proc
211
- # proc.call
212
- #
213
- # @return [Proc]
214
- #
215
- # @version SketchUp 2022.0
216
- def proc
217
- end
218
-
219
- # The {#set_validation_proc} method allows you to change whether the command
220
- # is enabled, checked, etc. For instance, the command toggling a dialog window
221
- # may be displayed as checked while the dialog is open.
222
- #
223
- # @bug On Mac the validation proc isn't called as often as it should. For
224
- # instance a selection change doesn't trigger it.
225
- #
226
- # @example
227
- # # Create a command object.
228
- # cmd = UI::Command.new("Tester") {
229
- # UI.messagebox("My Command")
230
- # }
231
- # cmd.menu_text = "My Command"
232
- # cmd.set_validation_proc {
233
- # if Sketchup.active_model.selection.length == 0
234
- # MF_GRAYED
235
- # else
236
- # MF_ENABLED
237
- # end
238
- # }
239
- # UI.menu("Draw").add_item(cmd)
240
- #
241
- # @note Avoid disabling an command as it often isn't obvious to the user why
242
- # it is disabled. Prefer keeping the command enabled but show an error
243
- # message if pressed when it cannot be used.
244
- #
245
- # @return [UI::Command]
246
- #
247
- # @see #get_validation_proc
248
- #
249
- # @version SketchUp 6.0
250
- #
251
- # @yield []
252
- #
253
- # @yieldreturn [Integer] +MF_ENABLED+, +MF_DISABLED+, +MF_CHECKED+,
254
- # +MF_UNCHECKED+, or +MF_GRAYED+
255
- def set_validation_proc
256
- end
257
-
258
- # The small_icon method returns the icon file for the command's
259
- # small icon.
260
- #
261
- # @example
262
- # toolbar = UI::Toolbar.new "Test"
263
- # # This toolbar command displays Hello World on the screen when clicked.
264
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
265
- # cmd.small_icon = "ToolPencilSmall.png"
266
- # cmd.large_icon = "ToolPencilLarge.png"
267
- # toolbar = toolbar.add_item cmd
268
- # toolbar.show
269
- # puts cmd.small_icon
270
- #
271
- # @return [String] the path to the small_icon
272
- #
273
- # @version SketchUp 8.0 M1
274
- def small_icon
275
- end
276
-
277
- # The small_icon= method is used to identify the icon file for the command's
278
- # small icon. Small icons should be 24x24 pixel images for best display
279
- # quality.
280
- #
281
- # Since SketchUp 2016 it is possible to provide vector images for the cursors.
282
- # SVG format for Windows and PDF format for OS X. Since the vector images scale
283
- # for both small and large icon sizes, you may choose to use only one vector
284
- # image for both variants.
285
- #
286
- # @example
287
- # toolbar = UI::Toolbar.new "Test"
288
- # # This toolbar command displays Hello World on the screen when clicked.
289
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
290
- # cmd.small_icon = "ToolPencilSmall.png"
291
- # cmd.large_icon = "ToolPencilLarge.png"
292
- # toolbar = toolbar.add_item cmd
293
- # toolbar.show
294
- #
295
- # @param [String] path
296
- # A path to the small icon.
297
- #
298
- # @return [String]
299
- #
300
- # @version SketchUp 6.0
301
- def small_icon=(path)
302
- end
303
-
304
- # The status_bar_text method returns the status bar text for the
305
- # command.
306
- #
307
- # @example
308
- # toolbar = UI::Toolbar.new("Test")
309
- # # This toolbar tool simply displays Hello World on the screen
310
- # # when clicked
311
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
312
- # cmd.small_icon = "ToolPencilSmall.png"
313
- # cmd.large_icon = "ToolPencilLarge.png"
314
- # cmd.status_bar_text = "Testing the toolbars class."
315
- # toolbar = toolbar.add_item cmd
316
- # toolbar.show
317
- # puts cmd.status_bar_text
318
- #
319
- # @return [String] the status bar text.
320
- #
321
- # @version SketchUp 8.0 M1
322
- def status_bar_text
323
- end
324
-
325
- # The status_bar_text= method is used to set the status bar text for the
326
- # command. This should be a description what the command does.
327
- #
328
- # @example
329
- # toolbar = UI::Toolbar.new("Test")
330
- # # This toolbar tool simply displays Hello World on the screen when clicked
331
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
332
- # cmd.small_icon = "ToolPencilSmall.png"
333
- # cmd.large_icon = "ToolPencilLarge.png"
334
- # cmd.status_bar_text = "Testing the toolbars class."
335
- # toolbar = toolbar.add_item cmd
336
- # toolbar.show
337
- #
338
- # @param [String] text
339
- # The text that will appear on the status bar when the
340
- # cursor is over the command's menu item.
341
- #
342
- # @return [String]
343
- #
344
- # @version SketchUp 6.0
345
- def status_bar_text=(text)
346
- end
347
-
348
- # The tooltip method returns command item's tooltip text.
349
- #
350
- # @example
351
- # toolbar = UI::Toolbar.new "Test"
352
- # # This command displays Hello World on the screen when clicked
353
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
354
- # cmd.tooltip = "Hello World Tool"
355
- # toolbar = toolbar.add_item cmd
356
- # toolbar.show
357
- # puts cmd.tooltip
358
- #
359
- # @return [String] the tooltip text
360
- #
361
- # @version SketchUp 8.0 M1
362
- def tooltip
363
- end
364
-
365
- # The {#tooltip=} method is used to define a command item's tooltip header. Tooltips
366
- # will appear when the command is attached to a tool bar and the user hovers
367
- # their cursor over the icon.
368
- #
369
- # @example
370
- # toolbar = UI::Toolbar.new "Test"
371
- # # This command displays Hello World on the screen when clicked
372
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
373
- # cmd.tooltip = "Hello World Tool"
374
- # toolbar = toolbar.add_item cmd
375
- # toolbar.show
376
- #
377
- # @note The tooltip text should repeat the commands' title text. For the command
378
- # description, use {#status_bar_text}.
379
- #
380
- # @param [String] text
381
- # The text of the tooltip.
382
- #
383
- # @return [String]
384
- #
385
- # @version SketchUp 6.0
386
- def tooltip=(text)
387
- end
388
-
389
- end
1
+ # Copyright:: Copyright 2024 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Command class is the preferred class for adding tools to the menus and
5
+ # Ruby toolbars. For example, you could add a menu item and pass it a code
6
+ # block directly, or you could first create a Command.
7
+ #
8
+ # Using Commands gives you greater control over how the item works in the UI,
9
+ # and it allows multiple spots in the UI to call the same code. For example,
10
+ # You might want a toolbar button and a context-click menu item to both point
11
+ # to the same command, and to control the tooltip and its "graying" from
12
+ # a single spot in your code.
13
+ #
14
+ # @example
15
+ # # You can add menu items as procedure blocks, as shown here, but
16
+ # # you have no control over whether it is grayed out, for example.
17
+ # UI.menu("Draw").add_item("My Procedure") {
18
+ # UI.messagebox("My Procedure")
19
+ # }
20
+ #
21
+ # # Better to create a command object.
22
+ # cmd = UI::Command.new("Tester") {
23
+ # UI.messagebox("My Command")
24
+ # }
25
+ # cmd.menu_text = "My Command"
26
+ # cmd.set_validation_proc {
27
+ # if Sketchup.active_model.selection.length == 0
28
+ # MF_GRAYED
29
+ # else
30
+ # MF_ENABLED
31
+ # end
32
+ # }
33
+ # UI.menu("Draw").add_item cmd
34
+ #
35
+ # @version SketchUp 6.0
36
+ class UI::Command
37
+
38
+ # Instance Methods
39
+
40
+ # The {#extension} method returns the command's associated extension.
41
+ #
42
+ # @example
43
+ # extension = Sketchup.extensions['Sandbox Tools']
44
+ # cmd = UI::Command.new("Tester") {}
45
+ # cmd.extension = extension
46
+ # p cmd.extension == extension
47
+ #
48
+ # @note This is an advanced feature that extension developers normally won't
49
+ # have to deal with. It's purpose is to address scenarios when SketchUp
50
+ # isn't able to automatically infer which extension the command belongs to.
51
+ #
52
+ # @return [SketchupExtension, nil]
53
+ #
54
+ # @version SketchUp 2022.0
55
+ def extension
56
+ end
57
+
58
+ # The {#extension=} method explicitly sets the command's associated extension.
59
+ #
60
+ # @example
61
+ # extension = Sketchup.extensions['Sandbox Tools']
62
+ # cmd = UI::Command.new("Tester") {}
63
+ # cmd.extension = extension
64
+ #
65
+ # @note This is an advanced feature that extension developers normally won't
66
+ # have to deal with. It's purpose is to address scenarios when SketchUp
67
+ # isn't able to automatically infer which extension the command belongs to.
68
+ # These scenarios are for example an extension using a library to add its
69
+ # commands or command manager extensions.
70
+ #
71
+ # @param [SketchupExtension, nil] extension
72
+ #
73
+ # @version SketchUp 2022.0
74
+ def extension=(extension)
75
+ end
76
+
77
+ # The {#get_validation_proc} method returns the command's validation proc.
78
+ #
79
+ # @example
80
+ # cmd = UI::Command.new("Tester") {}
81
+ # cmd.set_validation_proc { MF_DISABLED }
82
+ # proc = cmd.get_validation_proc
83
+ #
84
+ # @return [Proc, nil]
85
+ #
86
+ # @see #set_validation_proc
87
+ #
88
+ # @version SketchUp 2022.0
89
+ def get_validation_proc
90
+ end
91
+
92
+ # The new method is used to create a new command.
93
+ #
94
+ # @example
95
+ # UI.menu("Draw").add_separator
96
+ #
97
+ # # Adds a Test submenu to the Draw menu where the Tester menu item appears
98
+ # testmenu = UI.menu("Draw").add_submenu("Test")
99
+ #
100
+ # # This menu item simply displays Hello World on the screen when clicked.
101
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
102
+ # testmenu.add_item cmd
103
+ #
104
+ # @note Prior to SketchUp 2019 it was not possible to sub-class {UI::Command}
105
+ # due to a bug in how SketchUp initialized the class.
106
+ #
107
+ # @param [String] menutext
108
+ # The text that will appear for this command's menu item
109
+ # if it appears on a menu.
110
+ #
111
+ # @return [UI::Command] the new Command object
112
+ #
113
+ # @version SketchUp 6.0
114
+ #
115
+ # @yield Code that executes the command when the menu item or
116
+ # toolbar item is selected.
117
+ def initialize(menutext)
118
+ end
119
+
120
+ # The large_icon method returns the icon file for the command's
121
+ # large icon.
122
+ #
123
+ # @example
124
+ # toolbar = UI::Toolbar.new "Test"
125
+ # # This command displays Hello World on the screen when clicked
126
+ # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
127
+ # cmd.small_icon = "ToolPencilSmall.png"
128
+ # cmd.large_icon = "ToolPencilLarge.png"
129
+ # toolbar = toolbar.add_item cmd
130
+ # toolbar.show
131
+ # puts cmd.large_icon
132
+ #
133
+ # @return [String] the path to the large icon.
134
+ #
135
+ # @version SketchUp 8.0 M1
136
+ def large_icon
137
+ end
138
+
139
+ # The large_icon= method is used to identify the icon file for the command's
140
+ # large icon. large icons should be 32x32 pixel images for best display
141
+ # quality.
142
+ #
143
+ # Since SketchUp 2016 it is possible to provide vector images for the command.
144
+ # SVG format for Windows and PDF format for OS X. Since the vector images scale
145
+ # for both small and large icon sizes, you may choose to use only one vector
146
+ # image for both variants.
147
+ #
148
+ # @example
149
+ # toolbar = UI::Toolbar.new "Test"
150
+ # # This command displays Hello World on the screen when clicked
151
+ # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
152
+ # cmd.small_icon = "ToolPencilSmall.png"
153
+ # cmd.large_icon = "ToolPencilLarge.png"
154
+ # toolbar = toolbar.add_item cmd
155
+ # toolbar.show
156
+ #
157
+ # @param [String] path
158
+ # The path to the large icon.
159
+ #
160
+ # @return [String]
161
+ #
162
+ # @version SketchUp 6.0
163
+ def large_icon=(path)
164
+ end
165
+
166
+ # The menu_text method returns the menu item name for the command.
167
+ #
168
+ # @example
169
+ # add_separator_to_menu("Draw")
170
+ # # Adds a Test submenu to the Draw menu where the Tester menu item appears
171
+ # testmenu = UI.menu("Draw").add_submenu("Test")
172
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
173
+ # cmd.menu_text = "New String"
174
+ # testmenu.add_item cmd
175
+ # puts cmd.menu_text
176
+ #
177
+ # @return [String]
178
+ #
179
+ # @version SketchUp 8.0 M1
180
+ def menu_text
181
+ end
182
+
183
+ # The menu_text= method is used to set the menu item name for the command.
184
+ #
185
+ # @example
186
+ # add_separator_to_menu("Draw")
187
+ # # Adds a Test submenu to the Draw menu where the Tester menu item appears
188
+ # testmenu = UI.menu("Draw").add_submenu("Test")
189
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
190
+ # cmd.menu_text = "New String"
191
+ # testmenu.add_item cmd
192
+ #
193
+ # @param [String] menuitem
194
+ # A string representing the menu item for the command.
195
+ #
196
+ # @return [String]
197
+ #
198
+ # @version SketchUp 6.0
199
+ def menu_text=(menuitem)
200
+ end
201
+
202
+ # The {#proc} method returns the command's proc that is called when the command
203
+ # is invoked.
204
+ #
205
+ # @example
206
+ # cmd = UI::Command.new("Tester") {}
207
+ # cmd.set_validation_proc { MF_DISABLED }
208
+ # proc = cmd.proc
209
+ # proc.call
210
+ #
211
+ # @return [Proc]
212
+ #
213
+ # @version SketchUp 2022.0
214
+ def proc
215
+ end
216
+
217
+ # The {#set_validation_proc} method allows you to change whether the command
218
+ # is enabled, checked, etc. For instance, the command toggling a dialog window
219
+ # may be displayed as checked while the dialog is open.
220
+ #
221
+ # @bug On Mac the validation proc isn't called as often as it should. For
222
+ # instance a selection change doesn't trigger it.
223
+ #
224
+ # @example
225
+ # # Create a command object.
226
+ # cmd = UI::Command.new("Tester") {
227
+ # UI.messagebox("My Command")
228
+ # }
229
+ # cmd.menu_text = "My Command"
230
+ # cmd.set_validation_proc {
231
+ # if Sketchup.active_model.selection.length == 0
232
+ # MF_GRAYED
233
+ # else
234
+ # MF_ENABLED
235
+ # end
236
+ # }
237
+ # UI.menu("Draw").add_item(cmd)
238
+ #
239
+ # @note Avoid disabling an command as it often isn't obvious to the user why
240
+ # it is disabled. Prefer keeping the command enabled but show an error
241
+ # message if pressed when it cannot be used.
242
+ #
243
+ # @return [UI::Command]
244
+ #
245
+ # @see #get_validation_proc
246
+ #
247
+ # @version SketchUp 6.0
248
+ #
249
+ # @yield []
250
+ #
251
+ # @yieldreturn [Integer] +MF_ENABLED+, +MF_DISABLED+, +MF_CHECKED+,
252
+ # +MF_UNCHECKED+, or +MF_GRAYED+
253
+ def set_validation_proc
254
+ end
255
+
256
+ # The small_icon method returns the icon file for the command's
257
+ # small icon.
258
+ #
259
+ # @example
260
+ # toolbar = UI::Toolbar.new "Test"
261
+ # # This toolbar command displays Hello World on the screen when clicked.
262
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
263
+ # cmd.small_icon = "ToolPencilSmall.png"
264
+ # cmd.large_icon = "ToolPencilLarge.png"
265
+ # toolbar = toolbar.add_item cmd
266
+ # toolbar.show
267
+ # puts cmd.small_icon
268
+ #
269
+ # @return [String] the path to the small_icon
270
+ #
271
+ # @version SketchUp 8.0 M1
272
+ def small_icon
273
+ end
274
+
275
+ # The small_icon= method is used to identify the icon file for the command's
276
+ # small icon. Small icons should be 24x24 pixel images for best display
277
+ # quality.
278
+ #
279
+ # Since SketchUp 2016 it is possible to provide vector images for the cursors.
280
+ # SVG format for Windows and PDF format for OS X. Since the vector images scale
281
+ # for both small and large icon sizes, you may choose to use only one vector
282
+ # image for both variants.
283
+ #
284
+ # @example
285
+ # toolbar = UI::Toolbar.new "Test"
286
+ # # This toolbar command displays Hello World on the screen when clicked.
287
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
288
+ # cmd.small_icon = "ToolPencilSmall.png"
289
+ # cmd.large_icon = "ToolPencilLarge.png"
290
+ # toolbar = toolbar.add_item cmd
291
+ # toolbar.show
292
+ #
293
+ # @param [String] path
294
+ # A path to the small icon.
295
+ #
296
+ # @return [String]
297
+ #
298
+ # @version SketchUp 6.0
299
+ def small_icon=(path)
300
+ end
301
+
302
+ # The status_bar_text method returns the status bar text for the
303
+ # command.
304
+ #
305
+ # @example
306
+ # toolbar = UI::Toolbar.new("Test")
307
+ # # This toolbar tool simply displays Hello World on the screen
308
+ # # when clicked
309
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
310
+ # cmd.small_icon = "ToolPencilSmall.png"
311
+ # cmd.large_icon = "ToolPencilLarge.png"
312
+ # cmd.status_bar_text = "Testing the toolbars class."
313
+ # toolbar = toolbar.add_item cmd
314
+ # toolbar.show
315
+ # puts cmd.status_bar_text
316
+ #
317
+ # @return [String] the status bar text.
318
+ #
319
+ # @version SketchUp 8.0 M1
320
+ def status_bar_text
321
+ end
322
+
323
+ # The status_bar_text= method is used to set the status bar text for the
324
+ # command. This should be a description what the command does.
325
+ #
326
+ # @example
327
+ # toolbar = UI::Toolbar.new("Test")
328
+ # # This toolbar tool simply displays Hello World on the screen when clicked
329
+ # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
330
+ # cmd.small_icon = "ToolPencilSmall.png"
331
+ # cmd.large_icon = "ToolPencilLarge.png"
332
+ # cmd.status_bar_text = "Testing the toolbars class."
333
+ # toolbar = toolbar.add_item cmd
334
+ # toolbar.show
335
+ #
336
+ # @param [String] text
337
+ # The text that will appear on the status bar when the
338
+ # cursor is over the command's menu item.
339
+ #
340
+ # @return [String]
341
+ #
342
+ # @version SketchUp 6.0
343
+ def status_bar_text=(text)
344
+ end
345
+
346
+ # The tooltip method returns command item's tooltip text.
347
+ #
348
+ # @example
349
+ # toolbar = UI::Toolbar.new "Test"
350
+ # # This command displays Hello World on the screen when clicked
351
+ # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
352
+ # cmd.tooltip = "Hello World Tool"
353
+ # toolbar = toolbar.add_item cmd
354
+ # toolbar.show
355
+ # puts cmd.tooltip
356
+ #
357
+ # @return [String] the tooltip text
358
+ #
359
+ # @version SketchUp 8.0 M1
360
+ def tooltip
361
+ end
362
+
363
+ # The {#tooltip=} method is used to define a command item's tooltip header. Tooltips
364
+ # will appear when the command is attached to a tool bar and the user hovers
365
+ # their cursor over the icon.
366
+ #
367
+ # @example
368
+ # toolbar = UI::Toolbar.new "Test"
369
+ # # This command displays Hello World on the screen when clicked
370
+ # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
371
+ # cmd.tooltip = "Hello World Tool"
372
+ # toolbar = toolbar.add_item cmd
373
+ # toolbar.show
374
+ #
375
+ # @note The tooltip text should repeat the commands' title text. For the command
376
+ # description, use {#status_bar_text}.
377
+ #
378
+ # @param [String] text
379
+ # The text of the tooltip.
380
+ #
381
+ # @return [String]
382
+ #
383
+ # @version SketchUp 6.0
384
+ def tooltip=(text)
385
+ end
386
+
387
+ end