sketchup-api-stubs 0.7.4 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sketchup-api-stubs.rb +1 -1
- data/lib/sketchup-api-stubs/sketchup.rb +147 -145
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
- data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
- data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
- data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
- data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
- data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +498 -492
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
- data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
- data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
- data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
- data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
- data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
- data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
- data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
- data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
- data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
- data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
- data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
- data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
- data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
- data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
- data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
- data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
- data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
- data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
- data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
- data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
- data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
- data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
- data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
- data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
- data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
- data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
- data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
- data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
- data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
- data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
- data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
- data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
- data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
- data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
- data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
- data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
- data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
- data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
- data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
- data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
- data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
- data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
- data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
- data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
- data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
- data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
- data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
- data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
- data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
- data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
- data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
- data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
- data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
- data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
- data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
- metadata +4 -2
@@ -1,43 +1,45 @@
|
|
1
|
-
# Copyright:: Copyright 2020 Trimble Inc.
|
2
|
-
# License:: The MIT License (MIT)
|
3
|
-
|
4
|
-
# This observer interface is implemented to react to view events.
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
#
|
25
|
-
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
# @
|
38
|
-
#
|
39
|
-
# @
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
1
|
+
# Copyright:: Copyright 2020 Trimble Inc.
|
2
|
+
# License:: The MIT License (MIT)
|
3
|
+
|
4
|
+
# This observer interface is implemented to react to view events.
|
5
|
+
#
|
6
|
+
# @abstract To implement this observer, create a Ruby class of this type,
|
7
|
+
# override the desired methods, and add an instance of the observer to the
|
8
|
+
# view object.
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# # This is an example of an observer that watches tool interactions.
|
12
|
+
# class MyViewObserver < Sketchup::ViewObserver
|
13
|
+
# def onViewChanged(view)
|
14
|
+
# puts "onViewChanged: #{view}"
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# # Attach the observer.
|
19
|
+
# Sketchup.active_model.active_view.add_observer(MyViewObserver.new)
|
20
|
+
#
|
21
|
+
# @version SketchUp 6.0
|
22
|
+
class Sketchup::ViewObserver
|
23
|
+
|
24
|
+
# Instance Methods
|
25
|
+
|
26
|
+
# The {#onViewChanged} method is called whenever the view is altered, such as
|
27
|
+
# when the user uses the Pan, Orbit, or Zoom tools are used.
|
28
|
+
#
|
29
|
+
# @bug Prior to SketchUp 2019.2 this event did not trigger when the viewport
|
30
|
+
# size changed.
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# def onViewChanged(view)
|
34
|
+
# puts "onViewChanged: #{view}"
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# @param [Sketchup::View] view
|
38
|
+
#
|
39
|
+
# @return [nil]
|
40
|
+
#
|
41
|
+
# @version SketchUp 6.0
|
42
|
+
def onViewChanged(view)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -1,310 +1,317 @@
|
|
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
|
91
|
-
# quality.
|
92
|
-
#
|
93
|
-
# Since SketchUp 2016 it is possible to provide vector images for the
|
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.
|
154
|
-
#
|
155
|
-
#
|
156
|
-
# @
|
157
|
-
#
|
158
|
-
#
|
159
|
-
#
|
160
|
-
#
|
161
|
-
# cmd
|
162
|
-
#
|
163
|
-
#
|
164
|
-
#
|
165
|
-
#
|
166
|
-
#
|
167
|
-
#
|
168
|
-
#
|
169
|
-
#
|
170
|
-
#
|
171
|
-
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#
|
178
|
-
#
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
#
|
183
|
-
#
|
184
|
-
#
|
185
|
-
#
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
#
|
190
|
-
#
|
191
|
-
#
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
#
|
197
|
-
#
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
#
|
202
|
-
#
|
203
|
-
#
|
204
|
-
#
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
#
|
209
|
-
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
#
|
213
|
-
#
|
214
|
-
#
|
215
|
-
#
|
216
|
-
#
|
217
|
-
#
|
218
|
-
#
|
219
|
-
#
|
220
|
-
#
|
221
|
-
#
|
222
|
-
#
|
223
|
-
#
|
224
|
-
#
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
#
|
229
|
-
#
|
230
|
-
#
|
231
|
-
# @
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
#
|
236
|
-
#
|
237
|
-
#
|
238
|
-
#
|
239
|
-
# toolbar =
|
240
|
-
# toolbar
|
241
|
-
#
|
242
|
-
#
|
243
|
-
#
|
244
|
-
#
|
245
|
-
#
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
#
|
250
|
-
#
|
251
|
-
#
|
252
|
-
# @
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
#
|
257
|
-
#
|
258
|
-
#
|
259
|
-
#
|
260
|
-
# toolbar.
|
261
|
-
#
|
262
|
-
#
|
263
|
-
#
|
264
|
-
#
|
265
|
-
#
|
266
|
-
#
|
267
|
-
#
|
268
|
-
#
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
#
|
273
|
-
#
|
274
|
-
#
|
275
|
-
#
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
#
|
280
|
-
#
|
281
|
-
#
|
282
|
-
#
|
283
|
-
#
|
284
|
-
#
|
285
|
-
#
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
#
|
290
|
-
#
|
291
|
-
#
|
292
|
-
#
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
#
|
297
|
-
#
|
298
|
-
#
|
299
|
-
#
|
300
|
-
#
|
301
|
-
#
|
302
|
-
#
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
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 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
|