sketchup-api-stubs 0.7.4 → 0.7.8

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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +148 -145
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  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 +523 -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 +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -348
  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 +698 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  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 -371
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  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 -204
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  43. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  44. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  48. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  49. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  50. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -409
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +260 -257
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  140. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
  141. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  142. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  143. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -310
  144. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
  145. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
  146. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  147. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  148. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
  149. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  150. data/lib/sketchup-api-stubs.rb +1 -1
  151. metadata +15 -12
@@ -1,310 +1,389 @@
1
- # Copyright:: Copyright 2020 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 24x24 pixel images for best display
91
- # quality.
92
- #
93
- # Since SketchUp 2016 it is possible to provide vector images for the cursors.
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. based on the user state. For example, you might
154
- # want your command to be disabled unless the user has a current selection.
155
- #
156
- # @example
157
- # # Create a command object.
158
- # cmd = UI::Command.new("Tester") {
159
- # UI.messagebox("My Command")
160
- # }
161
- # cmd.menu_text = "My Command"
162
- # cmd.set_validation_proc {
163
- # if Sketchup.active_model.selection.length == 0
164
- # MF_GRAYED
165
- # else
166
- # MF_ENABLED
167
- # end
168
- # }
169
- # UI.menu("Draw").add_item(cmd)
170
- #
171
- # @return [UI::Command]
172
- #
173
- # @version SketchUp 6.0
174
- #
175
- # @yield []
176
- #
177
- # @yieldreturn [Integer] +MF_ENABLED+, +MF_DISABLED+, +MF_CHECKED+,
178
- # +MF_UNCHECKED+, or +MF_GRAYED+
179
- def set_validation_proc
180
- end
181
-
182
- # The small_icon method returns the icon file for the command's
183
- # small icon.
184
- #
185
- # @example
186
- # toolbar = UI::Toolbar.new "Test"
187
- # # This toolbar command displays Hello World on the screen when clicked.
188
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
189
- # cmd.small_icon = "ToolPencilSmall.png"
190
- # cmd.large_icon = "ToolPencilLarge.png"
191
- # toolbar = toolbar.add_item cmd
192
- # toolbar.show
193
- # puts cmd.small_icon
194
- #
195
- # @return [String] the path to the small_icon
196
- #
197
- # @version SketchUp 8.0 M1
198
- def small_icon
199
- end
200
-
201
- # The small_icon= method is used to identify the icon file for the command's
202
- # small icon. Small icons should be 16x16 pixel images for best display
203
- # quality.
204
- #
205
- # Since SketchUp 2016 it is possible to provide vector images for the cursors.
206
- # SVG format for Windows and PDF format for OS X. Since the vector images scale
207
- # for both small and large icon sizes, you may choose to use only one vector
208
- # image for both variants.
209
- #
210
- # @example
211
- # toolbar = UI::Toolbar.new "Test"
212
- # # This toolbar command displays Hello World on the screen when clicked.
213
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
214
- # cmd.small_icon = "ToolPencilSmall.png"
215
- # cmd.large_icon = "ToolPencilLarge.png"
216
- # toolbar = toolbar.add_item cmd
217
- # toolbar.show
218
- #
219
- # @param [String] path
220
- # A path to the small icon.
221
- #
222
- # @return [String]
223
- #
224
- # @version SketchUp 6.0
225
- def small_icon=(path)
226
- end
227
-
228
- # The status_bar_text method returns the status bar text for the
229
- # command.
230
- #
231
- # @example
232
- # toolbar = UI::Toolbar.new "Test"
233
- # # This toolbar tool simply displays Hello World on the screen
234
- # # when clicked
235
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
236
- # cmd.small_icon = "ToolPencilSmall.png"
237
- # cmd.large_icon = "ToolPencilLarge.png"
238
- # cmd.status_bar_text = $tStrings.GetString("Testing the toolbars class")
239
- # toolbar = toolbar.add_item cmd
240
- # toolbar.show
241
- # puts cmd.status_bar_text
242
- #
243
- # @return [String] the status bar text.
244
- #
245
- # @version SketchUp 8.0 M1
246
- def status_bar_text
247
- end
248
-
249
- # The status_bar_text= method is used to set the status bar text for the
250
- # command.
251
- #
252
- # @example
253
- # toolbar = UI::Toolbar.new "Test"
254
- # # This toolbar tool simply displays Hello World on the screen when clicked
255
- # cmd = UI::Command.new("Tester") { UI.messagebox("Hello World") }
256
- # cmd.small_icon = "ToolPencilSmall.png"
257
- # cmd.large_icon = "ToolPencilLarge.png"
258
- # cmd.status_bar_text = $tStrings.GetString("Testing the toolbars class")
259
- # toolbar = toolbar.add_item cmd
260
- # toolbar.show
261
- #
262
- # @param [String] text
263
- # The text that will appear on the status bar when the
264
- # cursor is over the command's menu item.
265
- #
266
- # @return [String]
267
- #
268
- # @version SketchUp 6.0
269
- def status_bar_text=(text)
270
- end
271
-
272
- # The tooltip method returns command item's tooltip text.
273
- #
274
- # @example
275
- # toolbar = UI::Toolbar.new "Test"
276
- # # This command displays Hello World on the screen when clicked
277
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
278
- # cmd.tooltip = "Hello World Tool"
279
- # toolbar = toolbar.add_item cmd
280
- # toolbar.show
281
- # puts cmd.tooltip
282
- #
283
- # @return [String] the tooltip text
284
- #
285
- # @version SketchUp 8.0 M1
286
- def tooltip
287
- end
288
-
289
- # The tooltip= method is used to define a command item's tooltip text. Tooltips
290
- # will appear when the command is attached to a tool bar and the user hovers
291
- # their cursor over the icon.
292
- #
293
- # @example
294
- # toolbar = UI::Toolbar.new "Test"
295
- # # This command displays Hello World on the screen when clicked
296
- # cmd = UI::Command.new("Test") { UI.messagebox("Hello World") }
297
- # cmd.tooltip = "Hello World Tool"
298
- # toolbar = toolbar.add_item cmd
299
- # toolbar.show
300
- #
301
- # @param [String] text
302
- # The text of the tooltip.
303
- #
304
- # @return [String]
305
- #
306
- # @version SketchUp 6.0
307
- def tooltip=(text)
308
- end
309
-
310
- end
1
+ # Copyright:: Copyright 2022 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