sketchup-api-stubs 0.7.7 → 0.7.9

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → 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 -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 +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  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 +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +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 +387 -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 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  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 → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → 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 -157
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  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 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  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 -425
  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 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  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 -405
  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 -327
  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 -112
  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 -318
  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 +1652 -1654
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  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 -459
  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 -257
  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 -835
  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 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -1,317 +1,389 @@
1
- # Copyright:: Copyright 2021 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 large_icon method returns the icon file for the command's
71
- # large icon.
72
- #
73
- # @example
74
- # toolbar = UI::Toolbar.new "Test"
75
- # # This command displays Hello World on the screen when clicked
76
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
77
- # cmd.small_icon = "ToolPencilSmall.png"
78
- # cmd.large_icon = "ToolPencilLarge.png"
79
- # toolbar = toolbar.add_item cmd
80
- # toolbar.show
81
- # puts cmd.large_icon
82
- #
83
- # @return [String] the path to the large icon.
84
- #
85
- # @version SketchUp 8.0 M1
86
- def large_icon
87
- end
88
-
89
- # The large_icon= method is used to identify the icon file for the command's
90
- # large icon. large icons should be 32x32 pixel images for best display
91
- # quality.
92
- #
93
- # Since SketchUp 2016 it is possible to provide vector images for the command.
94
- # SVG format for Windows and PDF format for OS X. Since the vector images scale
95
- # for both small and large icon sizes, you may choose to use only one vector
96
- # image for both variants.
97
- #
98
- # @example
99
- # toolbar = UI::Toolbar.new "Test"
100
- # # This command displays Hello World on the screen when clicked
101
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
102
- # cmd.small_icon = "ToolPencilSmall.png"
103
- # cmd.large_icon = "ToolPencilLarge.png"
104
- # toolbar = toolbar.add_item cmd
105
- # toolbar.show
106
- #
107
- # @param [String] path
108
- # The path to the large icon.
109
- #
110
- # @return [String]
111
- #
112
- # @version SketchUp 6.0
113
- def large_icon=(path)
114
- end
115
-
116
- # The menu_text method returns the menu item name for the command.
117
- #
118
- # @example
119
- # add_separator_to_menu("Draw")
120
- # # Adds a Test submenu to the Draw menu where the Tester menu item appears
121
- # testmenu = UI.menu("Draw").add_submenu("Test")
122
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
123
- # cmd.menu_text = "New String"
124
- # testmenu.add_item cmd
125
- # puts cmd.menu_text
126
- #
127
- # @return [String]
128
- #
129
- # @version SketchUp 8.0 M1
130
- def menu_text
131
- end
132
-
133
- # The menu_text= method is used to set the menu item name for the command.
134
- #
135
- # @example
136
- # add_separator_to_menu("Draw")
137
- # # Adds a Test submenu to the Draw menu where the Tester menu item appears
138
- # testmenu = UI.menu("Draw").add_submenu("Test")
139
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
140
- # cmd.menu_text = "New String"
141
- # testmenu.add_item cmd
142
- #
143
- # @param [String] menuitem
144
- # A string representing the menu item for the command.
145
- #
146
- # @return [String]
147
- #
148
- # @version SketchUp 6.0
149
- def menu_text=(menuitem)
150
- end
151
-
152
- # The {#set_validation_proc} method allows you to change whether the command
153
- # is enabled, checked, etc. For instance, the command toggling a dialog window
154
- # may be displayed as checked while the dialog is open.
155
- #
156
- # @bug On Mac the validation proc isn't called as often as it should. For
157
- # instance a selection change doesn't trigger it.
158
- #
159
- # @example
160
- # # Create a command object.
161
- # cmd = UI::Command.new("Tester") {
162
- # UI.messagebox("My Command")
163
- # }
164
- # cmd.menu_text = "My Command"
165
- # cmd.set_validation_proc {
166
- # if Sketchup.active_model.selection.length == 0
167
- # MF_GRAYED
168
- # else
169
- # MF_ENABLED
170
- # end
171
- # }
172
- # UI.menu("Draw").add_item(cmd)
173
- #
174
- # @note Avoid disabling an command as it often isn't obvious to the user why
175
- # it is disabled. Prefer keeping the command enabled but show an error
176
- # message if pressed when it cannot be used.
177
- #
178
- # @return [UI::Command]
179
- #
180
- # @version SketchUp 6.0
181
- #
182
- # @yield []
183
- #
184
- # @yieldreturn [Integer] +MF_ENABLED+, +MF_DISABLED+, +MF_CHECKED+,
185
- # +MF_UNCHECKED+, or +MF_GRAYED+
186
- def set_validation_proc
187
- end
188
-
189
- # The small_icon method returns the icon file for the command's
190
- # small icon.
191
- #
192
- # @example
193
- # toolbar = UI::Toolbar.new "Test"
194
- # # This toolbar command displays Hello World on the screen when clicked.
195
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
196
- # cmd.small_icon = "ToolPencilSmall.png"
197
- # cmd.large_icon = "ToolPencilLarge.png"
198
- # toolbar = toolbar.add_item cmd
199
- # toolbar.show
200
- # puts cmd.small_icon
201
- #
202
- # @return [String] the path to the small_icon
203
- #
204
- # @version SketchUp 8.0 M1
205
- def small_icon
206
- end
207
-
208
- # The small_icon= method is used to identify the icon file for the command's
209
- # small icon. Small icons should be 24x24 pixel images for best display
210
- # quality.
211
- #
212
- # Since SketchUp 2016 it is possible to provide vector images for the cursors.
213
- # SVG format for Windows and PDF format for OS X. Since the vector images scale
214
- # for both small and large icon sizes, you may choose to use only one vector
215
- # image for both variants.
216
- #
217
- # @example
218
- # toolbar = UI::Toolbar.new "Test"
219
- # # This toolbar command displays Hello World on the screen when clicked.
220
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
221
- # cmd.small_icon = "ToolPencilSmall.png"
222
- # cmd.large_icon = "ToolPencilLarge.png"
223
- # toolbar = toolbar.add_item cmd
224
- # toolbar.show
225
- #
226
- # @param [String] path
227
- # A path to the small icon.
228
- #
229
- # @return [String]
230
- #
231
- # @version SketchUp 6.0
232
- def small_icon=(path)
233
- end
234
-
235
- # The status_bar_text method returns the status bar text for the
236
- # command.
237
- #
238
- # @example
239
- # toolbar = UI::Toolbar.new "Test"
240
- # # This toolbar tool simply displays Hello World on the screen
241
- # # when clicked
242
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
243
- # cmd.small_icon = "ToolPencilSmall.png"
244
- # cmd.large_icon = "ToolPencilLarge.png"
245
- # cmd.status_bar_text = $tStrings.GetString("Testing the toolbars class")
246
- # toolbar = toolbar.add_item cmd
247
- # toolbar.show
248
- # puts cmd.status_bar_text
249
- #
250
- # @return [String] the status bar text.
251
- #
252
- # @version SketchUp 8.0 M1
253
- def status_bar_text
254
- end
255
-
256
- # The status_bar_text= method is used to set the status bar text for the
257
- # command.
258
- #
259
- # @example
260
- # toolbar = UI::Toolbar.new "Test"
261
- # # This toolbar tool simply 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
- # cmd.status_bar_text = $tStrings.GetString("Testing the toolbars class")
266
- # toolbar = toolbar.add_item cmd
267
- # toolbar.show
268
- #
269
- # @param [String] text
270
- # The text that will appear on the status bar when the
271
- # cursor is over the command's menu item.
272
- #
273
- # @return [String]
274
- #
275
- # @version SketchUp 6.0
276
- def status_bar_text=(text)
277
- end
278
-
279
- # The tooltip method returns command item's tooltip text.
280
- #
281
- # @example
282
- # toolbar = UI::Toolbar.new "Test"
283
- # # This command displays Hello World on the screen when clicked
284
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
285
- # cmd.tooltip = "Hello World Tool"
286
- # toolbar = toolbar.add_item cmd
287
- # toolbar.show
288
- # puts cmd.tooltip
289
- #
290
- # @return [String] the tooltip text
291
- #
292
- # @version SketchUp 8.0 M1
293
- def tooltip
294
- end
295
-
296
- # The tooltip= method is used to define a command item's tooltip text. Tooltips
297
- # will appear when the command is attached to a tool bar and the user hovers
298
- # their cursor over the icon.
299
- #
300
- # @example
301
- # toolbar = UI::Toolbar.new "Test"
302
- # # This command displays Hello World on the screen when clicked
303
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
304
- # cmd.tooltip = "Hello World Tool"
305
- # toolbar = toolbar.add_item cmd
306
- # toolbar.show
307
- #
308
- # @param [String] text
309
- # The text of the tooltip.
310
- #
311
- # @return [String]
312
- #
313
- # @version SketchUp 6.0
314
- def tooltip=(text)
315
- end
316
-
317
- end
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