sketchup-api-stubs 0.7.9 → 0.7.11

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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,132 +1,132 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Tools class contains methods to manipulate a collection of SketchUp
5
- # tools. You access this collection by calling the Model.tools method.
6
- #
7
- # @example
8
- # tools = Sketchup.active_model.tools
9
- #
10
- # @version SketchUp 6.0
11
- class Sketchup::Tools
12
-
13
- # Instance Methods
14
-
15
- # The {#active_tool} method is used to obtain the active Ruby tool.
16
- #
17
- # @example
18
- # tools = Sketchup.active_model.tools
19
- # tool = tools.active_tool
20
- #
21
- # @return [Object, nil] Returns the active Ruby tool, or `nil` otherwise.
22
- #
23
- # @version SketchUp 2019
24
- def active_tool
25
- end
26
-
27
- # The active_tool_id method is used to retrieve the active tool's id.
28
- #
29
- # @example
30
- # tools = Sketchup.active_model.tools
31
- # id = tools.active_tool_id
32
- #
33
- # @return id - the active tool's id.
34
- #
35
- # @version SketchUp 6.0
36
- def active_tool_id
37
- end
38
-
39
- # The active_tool_name method is used to retrieve the active tool's name.
40
- #
41
- # @example
42
- # tools = Sketchup.active_model.tools
43
- # if tools.active_tool_id.equal? 0
44
- # puts "Tools collection is empty"
45
- # else
46
- # name = tools.active_tool_name
47
- # end
48
- #
49
- # @return name = the active tool's name.
50
- #
51
- # @version SketchUp 6.0
52
- def active_tool_name
53
- end
54
-
55
- # The add_observer method is used to add an observer to the current object.
56
- #
57
- # @example
58
- # tools = Sketchup.active_model.tools
59
- # observer = Sketchup::ToolsObserver.new
60
- # status = tools.add_observer observer
61
- #
62
- # @param observer
63
- # An observer.
64
- #
65
- # @return status - true if successful, false if unsuccessful.
66
- #
67
- # @version SketchUp 6.0
68
- def add_observer(observer)
69
- end
70
-
71
- # The model method is used to get the model associated with this tools object.
72
- #
73
- # @example
74
- # tools = Sketchup.active_model.tools
75
- # model = tools.model
76
- #
77
- # @return model - the Model object associated with this tools
78
- # collection.
79
- #
80
- # @version SketchUp 6.0
81
- def model
82
- end
83
-
84
- # The pop_tool method is used to pop the last pushed tool on the tool stack.
85
- #
86
- # @example
87
- # tools = Sketchup.active_model.tools
88
- # tool = tools.pop_tool
89
- #
90
- # @return the last pushed Tool object, if it is a Ruby tool. If a
91
- # native tool is active, selects the default native tool
92
- # and returns nil.
93
- #
94
- # @version SketchUp 6.0
95
- def pop_tool
96
- end
97
-
98
- # The push_tool method is used to push (aka activate) a user-defined tool.
99
- # See the Tool interface for details on creating your own SketchUp tool.
100
- #
101
- # @example
102
- # tools = Sketchup.active_model.tools
103
- # status = tools.push_tool tool
104
- #
105
- # @param tool
106
- # A user.
107
- #
108
- # @return status - true if successful, false if unsuccessful.
109
- #
110
- # @version SketchUp 6.0
111
- def push_tool(tool)
112
- end
113
-
114
- # The remove_observer method is used to remove an observer from the current
115
- # object.
116
- #
117
- # @example
118
- # tools = Sketchup.active_model.tools
119
- # observer = Sketchup::ToolsObserver.new
120
- # tools.add_observer observer
121
- # status = tools.remove_observer observer
122
- #
123
- # @param observer
124
- # An observer.
125
- #
126
- # @return true if successful, false if unsuccessful.
127
- #
128
- # @version SketchUp 6.0
129
- def remove_observer(observer)
130
- end
131
-
132
- end
1
+ # Copyright:: Copyright 2026 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Tools class contains methods to manipulate a collection of SketchUp
5
+ # tools. You access this collection by calling the Model.tools method.
6
+ #
7
+ # @example
8
+ # tools = Sketchup.active_model.tools
9
+ #
10
+ # @version SketchUp 6.0
11
+ class Sketchup::Tools
12
+
13
+ # Instance Methods
14
+
15
+ # The {#active_tool} method is used to obtain the active Ruby tool.
16
+ #
17
+ # @example
18
+ # tools = Sketchup.active_model.tools
19
+ # tool = tools.active_tool
20
+ #
21
+ # @return [Object, nil] Returns the active Ruby tool, or `nil` otherwise.
22
+ #
23
+ # @version SketchUp 2019
24
+ def active_tool
25
+ end
26
+
27
+ # The active_tool_id method is used to retrieve the active tool's id.
28
+ #
29
+ # @example
30
+ # tools = Sketchup.active_model.tools
31
+ # id = tools.active_tool_id
32
+ #
33
+ # @return id - the active tool's id.
34
+ #
35
+ # @version SketchUp 6.0
36
+ def active_tool_id
37
+ end
38
+
39
+ # The active_tool_name method is used to retrieve the active tool's name.
40
+ #
41
+ # @example
42
+ # tools = Sketchup.active_model.tools
43
+ # if tools.active_tool_id.equal? 0
44
+ # puts "Tools collection is empty"
45
+ # else
46
+ # name = tools.active_tool_name
47
+ # end
48
+ #
49
+ # @return name = the active tool's name.
50
+ #
51
+ # @version SketchUp 6.0
52
+ def active_tool_name
53
+ end
54
+
55
+ # The add_observer method is used to add an observer to the current object.
56
+ #
57
+ # @example
58
+ # tools = Sketchup.active_model.tools
59
+ # observer = Sketchup::ToolsObserver.new
60
+ # status = tools.add_observer observer
61
+ #
62
+ # @param observer
63
+ # An observer.
64
+ #
65
+ # @return status - true if successful, false if unsuccessful.
66
+ #
67
+ # @version SketchUp 6.0
68
+ def add_observer(observer)
69
+ end
70
+
71
+ # The model method is used to get the model associated with this tools object.
72
+ #
73
+ # @example
74
+ # tools = Sketchup.active_model.tools
75
+ # model = tools.model
76
+ #
77
+ # @return model - the Model object associated with this tools
78
+ # collection.
79
+ #
80
+ # @version SketchUp 6.0
81
+ def model
82
+ end
83
+
84
+ # The pop_tool method is used to pop the last pushed tool on the tool stack.
85
+ #
86
+ # @example
87
+ # tools = Sketchup.active_model.tools
88
+ # tool = tools.pop_tool
89
+ #
90
+ # @return the last pushed Tool object, if it is a Ruby tool. If a
91
+ # native tool is active, selects the default native tool
92
+ # and returns nil.
93
+ #
94
+ # @version SketchUp 6.0
95
+ def pop_tool
96
+ end
97
+
98
+ # The push_tool method is used to push (aka activate) a user-defined tool.
99
+ # See the Tool interface for details on creating your own SketchUp tool.
100
+ #
101
+ # @example
102
+ # tools = Sketchup.active_model.tools
103
+ # status = tools.push_tool tool
104
+ #
105
+ # @param tool
106
+ # A user.
107
+ #
108
+ # @return status - true if successful, false if unsuccessful.
109
+ #
110
+ # @version SketchUp 6.0
111
+ def push_tool(tool)
112
+ end
113
+
114
+ # The remove_observer method is used to remove an observer from the current
115
+ # object.
116
+ #
117
+ # @example
118
+ # tools = Sketchup.active_model.tools
119
+ # observer = Sketchup::ToolsObserver.new
120
+ # tools.add_observer observer
121
+ # status = tools.remove_observer observer
122
+ #
123
+ # @param observer
124
+ # An observer.
125
+ #
126
+ # @return true if successful, false if unsuccessful.
127
+ #
128
+ # @version SketchUp 6.0
129
+ def remove_observer(observer)
130
+ end
131
+
132
+ end
@@ -1,156 +1,156 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # This observer interface is implemented to react to tool events.
5
- #
6
- # Some of the code below mentions +tool_names+ and +tool_ids+. Here is a list
7
- # of the common tool IDs and names:
8
- #
9
- # - +21013+ = 3DTextTool
10
- # - +21065+ = ArcTool
11
- # - +10523+ = CameraDollyTool
12
- # - +10508+ = CameraOrbitTool
13
- # - +10525+ = CameraPanTool
14
- # - +21169+ = PositionCameraTool
15
- # - +10520+ = CameraWalkTool
16
- # - +10509+ = CameraZoomTool
17
- # - +10526+ = CameraZoomWindowTool
18
- # - +21096+ = CircleTool
19
- # - +21013+ = ComponentTool
20
- # - +21126+ = ComponentCSTool
21
- # - +21410+ = DimensionTool
22
- # - +21019+ = EraseTool
23
- # - +21031+ = FreehandTool
24
- # - +21525+ = ExtrudeTool
25
- # - +21126+ = SketchCSTool
26
- # - +21048+ = MoveTool
27
- # - +21024+ = MeasureTool
28
- # - +21100+ = OffsetTool
29
- # - +21074+ = PaintTool
30
- # - +21013+ = PasteTool
31
- # - +21095+ = PolyTool
32
- # - +21515+ = PositionTextureTool
33
- # - +21041+ = PushPullTool
34
- # - +21057+ = ProtractorTool
35
- # - +21094+ = RectangleTool
36
- # - +21129+ = RotateTool
37
- # - +21236+ = ScaleTool
38
- # - +21022+ = SelectionTool
39
- # - +21337+ = SectionPlaneTool
40
- # - +21020+ = SketchTool
41
- # - +21405+ = TextTool
42
- #
43
- # @abstract To implement this observer, create a Ruby class of this type,
44
- # override the desired methods, and add an instance of the observer to the
45
- # {Sketchup::Tools} object.
46
- #
47
- # @example
48
- # # This is an example of an observer that watches tool interactions.
49
- # class MyToolsObserver < Sketchup::ToolsObserver
50
- # def onActiveToolChanged(tools, tool_name, tool_id)
51
- # puts "onActiveToolChanged: #{tool_name}"
52
- # end
53
- # end
54
- #
55
- # # Attach the observer.
56
- # Sketchup.active_model.tools.add_observer(MyToolsObserver.new)
57
- #
58
- # @version SketchUp 6.0
59
- class Sketchup::ToolsObserver
60
-
61
- # Instance Methods
62
-
63
- # Once you subclass {Sketchup::ToolsObserver} with your unique class, you can
64
- # override the {#onActiveToolChanged} method to receive tool change
65
- # notifications.
66
- #
67
- # @example
68
- # def onActiveToolChanged(tools, tool_name, tool_id)
69
- # tool_name = fix_mac_tool_name(tool_name)
70
- # puts "onActiveToolChanged: #{tool_name}"
71
- # end
72
- #
73
- # # Returns the "correct" tool name to account for mac API differences.
74
- # #
75
- # # Args:
76
- # # tool_name The tool name to fix
77
- # #
78
- # # Returns
79
- # # string corrected tool name
80
- # def fix_mac_tool_name(tool_name)
81
- # if tool_name == "eTool"
82
- # tool_name = "ScaleTool"
83
- # elsif tool_name == "ool"
84
- # tool_name = "MoveTool"
85
- # elsif tool_name == "onentCSTool"
86
- # tool_name = "ComponentCSTool"
87
- # elsif tool_name == "PullTool"
88
- # tool_name = "PushPullTool"
89
- # end
90
- # return tool_name
91
- # end
92
- #
93
- # @note In SketchUp 6 and SketchUp 7.0, tool names on the Mac have some of
94
- # their first characters truncated. For instance, on Windows, a tool is
95
- # +"CameraOrbit"+. On the Mac, is comes across as +"raOrbit"+. Therefore,
96
- # use the +tool_id+ to keep track of which tool you need to watch for, or use
97
- # logic that corrects for the error. There is an example method of one way to
98
- # do this shown below. (This example is not a comprehensive list of the tool
99
- # names.)
100
- #
101
- # @param [Sketchup::Tools] tools
102
- # A Tools object.
103
- #
104
- # @param [String] tool_name
105
- # The name of the tool.
106
- #
107
- # @param [Integer] tool_id
108
- # The ID of the tool. This is a predefined number
109
- # unique to a given tool. For example, the Materials Browser is tool_id
110
- # 21074.
111
- #
112
- # @return [nil]
113
- #
114
- # @version SketchUp 6.0
115
- def onActiveToolChanged(tools, tool_name, tool_id)
116
- end
117
-
118
- # The {#onToolStateChanged} method is called each time the user performs an
119
- # action with a tool. The actual state that is returned is an internal number
120
- # that varies tool to tool. If you want to watch existing tools for every
121
- # interaction, you will need to experiment with the tool state to determine
122
- # which states you care about. There is little consistency tool to tool.
123
- #
124
- # @example
125
- # def onToolStateChanged(tools, tool_name, tool_id, tool_state)
126
- # puts "onToolStateChanged: #{tool_name}:#{tool_state}"
127
- # end
128
- #
129
- # @note In SketchUp 6 and SketchUp 7, tool names on the Mac have their first
130
- # few characters truncated. For instance, on Windows, a tool is
131
- # +"CameraOrbit".+ On the Mac, is comes across as +"raOrbit"+. Therefore,
132
- # use the tool_id to keep track of which tool you need to watch for, or use
133
- # logic that corrects for the error. This bug was fixed in SketchUp 8.0.
134
- #
135
- # @param [Sketchup::Tools] tools
136
- # A Tools object.
137
- #
138
- # @param [String] tool_name
139
- # The name of the tool.
140
- #
141
- # @param [Integer] tool_id
142
- # The ID of the tool. This is a predefined number
143
- # unique to a given tool. For example, the Materials Browser is tool_id
144
- # 21074.
145
- #
146
- # @param [Integer] tool_state
147
- # A number identifying the state the tool just
148
- # entered.
149
- #
150
- # @return [nil]
151
- #
152
- # @version SketchUp 6.0
153
- def onToolStateChanged(tools, tool_name, tool_id, tool_state)
154
- end
155
-
156
- end
1
+ # Copyright:: Copyright 2026 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # This observer interface is implemented to react to tool events.
5
+ #
6
+ # Some of the code below mentions +tool_names+ and +tool_ids+. Here is a list
7
+ # of the common tool IDs and names:
8
+ #
9
+ # - +21013+ = 3DTextTool
10
+ # - +21065+ = ArcTool
11
+ # - +10523+ = CameraDollyTool
12
+ # - +10508+ = CameraOrbitTool
13
+ # - +10525+ = CameraPanTool
14
+ # - +21169+ = PositionCameraTool
15
+ # - +10520+ = CameraWalkTool
16
+ # - +10509+ = CameraZoomTool
17
+ # - +10526+ = CameraZoomWindowTool
18
+ # - +21096+ = CircleTool
19
+ # - +21013+ = ComponentTool
20
+ # - +21126+ = ComponentCSTool
21
+ # - +21410+ = DimensionTool
22
+ # - +21019+ = EraseTool
23
+ # - +21031+ = FreehandTool
24
+ # - +21525+ = ExtrudeTool
25
+ # - +21126+ = SketchCSTool
26
+ # - +21048+ = MoveTool
27
+ # - +21024+ = MeasureTool
28
+ # - +21100+ = OffsetTool
29
+ # - +21074+ = PaintTool
30
+ # - +21013+ = PasteTool
31
+ # - +21095+ = PolyTool
32
+ # - +21515+ = PositionTextureTool
33
+ # - +21041+ = PushPullTool
34
+ # - +21057+ = ProtractorTool
35
+ # - +21094+ = RectangleTool
36
+ # - +21129+ = RotateTool
37
+ # - +21236+ = ScaleTool
38
+ # - +21022+ = SelectionTool
39
+ # - +21337+ = SectionPlaneTool
40
+ # - +21020+ = SketchTool
41
+ # - +21405+ = TextTool
42
+ #
43
+ # @abstract To implement this observer, create a Ruby class of this type,
44
+ # override the desired methods, and add an instance of the observer to the
45
+ # {Sketchup::Tools} object.
46
+ #
47
+ # @example
48
+ # # This is an example of an observer that watches tool interactions.
49
+ # class MyToolsObserver < Sketchup::ToolsObserver
50
+ # def onActiveToolChanged(tools, tool_name, tool_id)
51
+ # puts "onActiveToolChanged: #{tool_name}"
52
+ # end
53
+ # end
54
+ #
55
+ # # Attach the observer.
56
+ # Sketchup.active_model.tools.add_observer(MyToolsObserver.new)
57
+ #
58
+ # @version SketchUp 6.0
59
+ class Sketchup::ToolsObserver
60
+
61
+ # Instance Methods
62
+
63
+ # Once you subclass {Sketchup::ToolsObserver} with your unique class, you can
64
+ # override the {#onActiveToolChanged} method to receive tool change
65
+ # notifications.
66
+ #
67
+ # @example
68
+ # def onActiveToolChanged(tools, tool_name, tool_id)
69
+ # tool_name = fix_mac_tool_name(tool_name)
70
+ # puts "onActiveToolChanged: #{tool_name}"
71
+ # end
72
+ #
73
+ # # Returns the "correct" tool name to account for mac API differences.
74
+ # #
75
+ # # Args:
76
+ # # tool_name The tool name to fix
77
+ # #
78
+ # # Returns
79
+ # # string corrected tool name
80
+ # def fix_mac_tool_name(tool_name)
81
+ # if tool_name == "eTool"
82
+ # tool_name = "ScaleTool"
83
+ # elsif tool_name == "ool"
84
+ # tool_name = "MoveTool"
85
+ # elsif tool_name == "onentCSTool"
86
+ # tool_name = "ComponentCSTool"
87
+ # elsif tool_name == "PullTool"
88
+ # tool_name = "PushPullTool"
89
+ # end
90
+ # return tool_name
91
+ # end
92
+ #
93
+ # @note In SketchUp 6 and SketchUp 7.0, tool names on the Mac have some of
94
+ # their first characters truncated. For instance, on Windows, a tool is
95
+ # +"CameraOrbit"+. On the Mac, is comes across as +"raOrbit"+. Therefore,
96
+ # use the +tool_id+ to keep track of which tool you need to watch for, or use
97
+ # logic that corrects for the error. There is an example method of one way to
98
+ # do this shown below. (This example is not a comprehensive list of the tool
99
+ # names.)
100
+ #
101
+ # @param [Sketchup::Tools] tools
102
+ # A Tools object.
103
+ #
104
+ # @param [String] tool_name
105
+ # The name of the tool.
106
+ #
107
+ # @param [Integer] tool_id
108
+ # The ID of the tool. This is a predefined number
109
+ # unique to a given tool. For example, the Materials Browser is tool_id
110
+ # 21074.
111
+ #
112
+ # @return [nil]
113
+ #
114
+ # @version SketchUp 6.0
115
+ def onActiveToolChanged(tools, tool_name, tool_id)
116
+ end
117
+
118
+ # The {#onToolStateChanged} method is called each time the user performs an
119
+ # action with a tool. The actual state that is returned is an internal number
120
+ # that varies tool to tool. If you want to watch existing tools for every
121
+ # interaction, you will need to experiment with the tool state to determine
122
+ # which states you care about. There is little consistency tool to tool.
123
+ #
124
+ # @example
125
+ # def onToolStateChanged(tools, tool_name, tool_id, tool_state)
126
+ # puts "onToolStateChanged: #{tool_name}:#{tool_state}"
127
+ # end
128
+ #
129
+ # @note In SketchUp 6 and SketchUp 7, tool names on the Mac have their first
130
+ # few characters truncated. For instance, on Windows, a tool is
131
+ # +"CameraOrbit".+ On the Mac, is comes across as +"raOrbit"+. Therefore,
132
+ # use the tool_id to keep track of which tool you need to watch for, or use
133
+ # logic that corrects for the error. This bug was fixed in SketchUp 8.0.
134
+ #
135
+ # @param [Sketchup::Tools] tools
136
+ # A Tools object.
137
+ #
138
+ # @param [String] tool_name
139
+ # The name of the tool.
140
+ #
141
+ # @param [Integer] tool_id
142
+ # The ID of the tool. This is a predefined number
143
+ # unique to a given tool. For example, the Materials Browser is tool_id
144
+ # 21074.
145
+ #
146
+ # @param [Integer] tool_state
147
+ # A number identifying the state the tool just
148
+ # entered.
149
+ #
150
+ # @return [nil]
151
+ #
152
+ # @version SketchUp 6.0
153
+ def onToolStateChanged(tools, tool_name, tool_id, tool_state)
154
+ end
155
+
156
+ end