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,829 +1,837 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # Tool is the interface that you implement to create a SketchUp tool.
5
- # See https://github.com/SketchUp/sketchup-ruby-api-tutorials/tree/master/examples/02_custom_tool
6
- # for an example of how to create a custom tool in Ruby.
7
- #
8
- # To create a new tool in Ruby, you must define a new class that implements
9
- # the methods for the events that you want to respond to. You do not have
10
- # to implement methods for every possible event that a Tool can respond to.
11
- #
12
- # Once you have defined a tool class, you select that tool by creating an
13
- # instance of it and passing it to {Sketchup::Model#select_tool}. For
14
- # example:
15
- #
16
- # class MyTool
17
- # def activate
18
- # puts 'Your tool has been activated.'
19
- # end
20
- # end
21
- #
22
- # my_tool = MyTool.new
23
- # Sketchup.active_model.select_tool(my_tool)
24
- #
25
- # The following table contains several constants you can use when check for
26
- # certain key presses inside the keyboard handling callbacks:
27
- #
28
- # - +CONSTRAIN_MODIFIER_KEY+ = Shift Key
29
- # - +CONSTRAIN_MODIFIER_MASK+ = Shift Key
30
- # - +COPY_MODIFIER_KEY+ = Alt/Option on Mac, Ctrl on PC
31
- # - +COPY_MODIFIER_MASK+ = Alt/Option on Mac, Ctrl on PC
32
- # - +ALT_MODIFIER_KEY+ = Command on Mac, Alt on PC
33
- # - +ALT_MODIFIER_MASK+ = Command on Mac, Alt on PC
34
- #
35
- # @version SketchUp 6.0
36
- class Sketchup::Tool
37
-
38
- # Instance Methods
39
-
40
- # The #{activate} method is called by SketchUp when the tool is selected.
41
- # It is a good place to put most of your initialization, such as instance
42
- # variables to track the state of the tool.
43
- #
44
- # @example
45
- # def activate
46
- # puts 'Your tool has been activated.'
47
- # end
48
- #
49
- # @version SketchUp 6.0
50
- def activate
51
- end
52
-
53
- # The #{deactivate} method is called when the tool is deactivated because a
54
- # different tool was selected.
55
- #
56
- # @example
57
- # def deactivate(view)
58
- # puts "Your tool has been deactivated in view: #{view}"
59
- # end
60
- #
61
- # @param [Sketchup::View] view
62
- #
63
- # @version SketchUp 6.0
64
- def deactivate(view)
65
- end
66
-
67
- # The {#draw} method is called by SketchUp whenever the view is refreshed to
68
- # allow the tool to do its own drawing. If the tool has some temporary graphics
69
- # that it wants displayed while it is active, it should implement this method
70
- # and draw to the {Sketchup::View}.
71
- #
72
- # @example
73
- # def draw(view)
74
- # # Draw a square.
75
- # points = [
76
- # Geom::Point3d.new(0, 0, 0),
77
- # Geom::Point3d.new(9, 0, 0),
78
- # Geom::Point3d.new(9, 9, 0),
79
- # Geom::Point3d.new(0, 9, 0)
80
- # ]
81
- # # Fill
82
- # view.drawing_color = Sketchup::Color.new(255, 128, 128)
83
- # view.draw(GL_QUADS, points)
84
- # # Outline
85
- # view.line_stipple = '' # Solid line
86
- # view.drawing_color = Sketchup::Color.new(64, 0, 0)
87
- # view.draw(GL_LINE_LOOP, points)
88
- # end
89
- #
90
- # @note If you draw outside the model bounds you need to implement
91
- # {Tool#getExtents} which return a bounding box large enough to include the
92
- # points you draw. Otherwise your drawing will be clipped.
93
- #
94
- # @param [Sketchup::View] view
95
- # A View object where the method was invoked.
96
- #
97
- # @see getExtents
98
- #
99
- # @see Sketchup::View#draw
100
- #
101
- # @version SketchUp 6.0
102
- def draw(view)
103
- end
104
-
105
- # The #{enableVCB?} method is used to tell SketchUp whether to allow the user
106
- # to enter text into the VCB (value control box, aka the "measurements" panel).
107
- # If you do not implement this method, then the vcb is disabled by default.
108
- #
109
- # @example
110
- # # For this tool, allow vcb text entry while the tool is active.
111
- # def enableVCB?
112
- # return true
113
- # end
114
- #
115
- # @return [Boolean] Return +true+ if you want the VCB enabled
116
- #
117
- # @version SketchUp 6.0
118
- def enableVCB?
119
- end
120
-
121
- # In order to accurately draw things, SketchUp needs to know the extents of
122
- # what it is drawing. If the tool is doing its own drawing, it may need to
123
- # implement this method to tell SketchUp the extents of what it will be
124
- # drawing. If you don't implement this method, you may find that part of what
125
- # the tool is drawing gets clipped to the extents of the rest of the
126
- # model.
127
- #
128
- # This must return a {Geom::BoundingBox}. In a typical implementation, you
129
- # will create a new {Geom::BoundingBox}, add points to set the extents of the
130
- # drawing that the tool will do and then return it.
131
- #
132
- # @example
133
- # def getExtents
134
- # bb = Sketchup.active_model.bounds
135
- # return bb
136
- # end
137
- #
138
- # @return [Geom::BoundingBox]
139
- #
140
- # @version SketchUp 6.0
141
- def getExtents
142
- end
143
-
144
- # The #{getInstructorContentDirectory} method is used to tell SketchUp the
145
- # directory containing your Tool's instructor content. To use this, create
146
- # a custom instructor directory, put an index.html file inside of it, and then
147
- # return that path via this method. If the SketchUp user has the Instructor
148
- # window open when they activate your tool, they will see your html file.
149
- #
150
- # @example
151
- # def getInstructorContentDirectory
152
- # extension_path = Sketchup.extensions['MyExtension].extension_path
153
- # instructor_path = File.join(extension_path, 'MyExtension', 'instructor')
154
- # return instructor_path
155
- # end
156
- #
157
- # @note Prior to SketchUp 2014 this method would assume the path was relative
158
- # to the SketchUp resource folder. From 2014 and onwards you can specify the
159
- # absolute path to an HTML file or the absolute path to a directory
160
- # containing an index.html file.
161
- #
162
- # @return [String] the directory path where the Instructor content exists.
163
- #
164
- # @version SketchUp 6.0
165
- def getInstructorContentDirectory
166
- end
167
-
168
- # The #{getMenu} method is called by SketchUp to let the tool provide its own
169
- # context menu. Most tools will not want to implement this method and,
170
- # instead, use the normal context menu found on all entities.
171
- #
172
- # If you do implement this method, the argument is a Menu. You should use the
173
- # add_item method to build the context menu.
174
- #
175
- # Your tool will use a standard context menu by default if you do not
176
- # implement this method. Implement this method if you want a context-click to
177
- # display something other than this default context menu.
178
- #
179
- # In SketchUp 2015 the flags, x, y and view parameters were added. They are
180
- # needed if you need to pick the entities under the mouse position. The new
181
- # parameters are optional, but if you need to use one you must include them
182
- # all.
183
- #
184
- # @example
185
- # if Sketchup.version.to_i < 15
186
- # # Compatible with SketchUp 2014 and older:
187
- # def getMenu(menu)
188
- # menu.add_item('Say Hello') {
189
- # UI.messagebox('Hello')
190
- # }
191
- # end
192
- # else
193
- # # Only works with SketchUp 2015 and newer:
194
- # def getMenu(menu, flags, x, y, view)
195
- # ph = view.pick_helper(x, y)
196
- # entity = ph.best_picked
197
- # if entity
198
- # view.model.selection.clear
199
- # view.model.selection.add(entity)
200
- # menu.add_item("Erase #{entity.typename}") {
201
- # entity.erase!
202
- # }
203
- # end
204
- # end
205
- # end
206
- #
207
- # @param menu
208
- # A Menu object.
209
- #
210
- # @param [optional] flags
211
- # A bit mask that tells the state of the
212
- # modifier keys and other mouse buttons at the time.
213
- # Added in SU2015.
214
- #
215
- # @param [optional] x
216
- # The X coordinate on the screen where the
217
- # event occurred. Added in SU2015.
218
- #
219
- # @param [optional] y
220
- # The Y coordinate on the screen where the
221
- # event occurred. Added in SU2015.
222
- #
223
- # @param [optional] view
224
- # A View object where the method was invoked.
225
- # Added in SU2015.
226
- #
227
- # @return nil
228
- #
229
- # @version SketchUp 6.0
230
- def getMenu(menu, flags, x, y, view)
231
- end
232
-
233
- # The {#onCancel} method is called by SketchUp to cancel the current operation
234
- # of the tool. The typical response will be to reset the tool to its initial
235
- # state.
236
- #
237
- # The reason identifies the action that triggered the call. The reason can be
238
- # one of the following values:
239
- #
240
- # - +0+: the user canceled the current operation by hitting the escape key.
241
- # - +1+: the user re-selected the same tool from the toolbar or menu.
242
- # - +2+: the user did an undo while the tool was active.
243
- #
244
- # @example
245
- # def onCancel(reason, view)
246
- # puts "MyTool was canceled for reason ##{reason} in view: #{view}"
247
- # end
248
- #
249
- # @note When something is undone {#onCancel} is called before the undo is
250
- # actually executed. If you need to do something with the model after an undo
251
- # use {Sketchup::ModelObserver#onTransactionUndo}.
252
- #
253
- # @param [Integer] reason
254
- # A reason value (see comments).
255
- #
256
- # @param [Sketchup::View] view
257
- #
258
- # @version SketchUp 6.0
259
- def onCancel(reason, view)
260
- end
261
-
262
- # The #{onKeyDown} method is called by SketchUp when the user presses a key on
263
- # the keyboard. If you want to get input from the VCB, you should implement
264
- # onUserText rather than this method.
265
- #
266
- # This method is can be used for special keys such as the Shift key, Ctrl key,
267
- # and so on, or for just determining which key a user pressed. This method is
268
- # actually called for all keys that are pressed.
269
- #
270
- # There are several
271
- # "virtual keys" defined as constants you can use. Their use is cross
272
- # platform. They are:
273
- #
274
- # - +VK_ALT+
275
- # - +VK_COMMAND+
276
- # - +VK_CONTROL+
277
- # - +VK_DELETE+
278
- # - +VK_DOWN+
279
- # - +VK_END+
280
- # - +VK_HOME+
281
- # - +VK_INSERT+
282
- # - +VK_LEFT+
283
- # - +VK_MENU+
284
- # - +VK_NEXT+
285
- # - +VK_PRIOR+
286
- # - +VK_RIGHT+
287
- # - +VK_SHIFT+
288
- # - +VK_SPACE+
289
- # - +VK_UP+
290
- #
291
- # V6: There is a bug on Windows where the typematic effect does
292
- # not work. Typematic effects work fine on a Mac.
293
- #
294
- # @example
295
- # def onKeyDown(key, repeat, flags, view)
296
- # puts "onKeyDown: key = #{key}"
297
- # puts " repeat = #{repeat}"
298
- # puts " flags = #{flags}"
299
- # puts " view = #{view}"
300
- # end
301
- #
302
- # @param [Integer] key
303
- # The key that was pressed.
304
- #
305
- # @param [Integer] repeat
306
- # A value of 1 for a single press of a key. A value
307
- # of 2 if the user has pressed a key and is holding
308
- # it down.
309
- #
310
- # @param [Integer] flags
311
- # A bit mask that tells the state of the modifier
312
- # keys at the time of the event.
313
- #
314
- # @param [Sketchup::View] view
315
- #
316
- # @return [Boolean] Return +true+ to prevent SketchUp from processing the
317
- # event.
318
- #
319
- # @version SketchUp 6.0
320
- def onKeyDown(key, repeat, flags, view)
321
- end
322
-
323
- # The #{onKeyUp} method is called by SketchUp when the user releases a key on
324
- # the keyboard.
325
- #
326
- # @example
327
- # def onKeyUp(key, repeat, flags, view)
328
- # puts "onKeyUp: key = #{key}"
329
- # puts " repeat = #{repeat}"
330
- # puts " flags = #{flags}"
331
- # puts " view = #{view}"
332
- # end
333
- #
334
- # @param [Integer] key
335
- # The key that was pressed.
336
- #
337
- # @param [Integer] repeat
338
- # A value of 1 for a single press of a key. A value
339
- # of 2 if the user has pressed a key and is holding
340
- # it down.
341
- #
342
- # @param [Integer] flags
343
- # A bit mask that tells the state of the modifier
344
- # keys at the time of the event.
345
- #
346
- # @param [Sketchup::View] view
347
- #
348
- # @return [Boolean] Return +true+ to prevent SketchUp from processing the
349
- # event.
350
- #
351
- # @version SketchUp 6.0
352
- def onKeyUp(key, repeat, flags, view)
353
- end
354
-
355
- # The #{onLButtonDoubleClick} is called by SketchUp when the user double clicks
356
- # with the left mouse button.
357
- #
358
- # @example
359
- # def onLButtonDoubleClick(flags, x, y, view)
360
- # puts "onLButtonDoubleClick: flags = #{flags}"
361
- # puts " x = #{x}"
362
- # puts " y = #{y}"
363
- # puts " view = #{view}"
364
- # end
365
- #
366
- # @param [Integer] flags
367
- # A bit mask that tells the state of the modifier
368
- # keys and other mouse buttons at the time.
369
- #
370
- # @param [Integer] x
371
- # The X coordinate on the screen where the event occurred.
372
- #
373
- # @param [Integer] y
374
- # The Y coordinate on the screen where the event occurred.
375
- #
376
- # @param [Sketchup::View] view
377
- #
378
- # @version SketchUp 6.0
379
- def onLButtonDoubleClick(flags, x, y, view)
380
- end
381
-
382
- # The #{onLButtonDown} method is called by SketchUp when the left mouse button
383
- # is pressed. Most tools will implement this method.
384
- #
385
- # @example
386
- # def onLButtonDown(flags, x, y, view)
387
- # puts "onLButtonDown: flags = #{flags}"
388
- # puts " x = #{x}"
389
- # puts " y = #{y}"
390
- # puts " view = #{view}"
391
- # end
392
- #
393
- # @param [Integer] flags
394
- # A bit mask that tells the state of the modifier
395
- # keys and other mouse buttons at the time.
396
- #
397
- # @param [Integer] x
398
- # The X coordinate on the screen where the event occurred.
399
- #
400
- # @param [Integer] y
401
- # The Y coordinate on the screen where the event occurred.
402
- #
403
- # @param [Sketchup::View] view
404
- #
405
- # @version SketchUp 6.0
406
- def onLButtonDown(flags, x, y, view)
407
- end
408
-
409
- # The #{onLButtonUp} method is called by SketchUp when the left mouse button is
410
- # released.
411
- #
412
- # @example
413
- # def onLButtonUp(flags, x, y, view)
414
- # puts "onLButtonUp: flags = #{flags}"
415
- # puts " x = #{x}"
416
- # puts " y = #{y}"
417
- # puts " view = #{view}"
418
- # end
419
- #
420
- # @param [Integer] flags
421
- # A bit mask that tells the state of the modifier
422
- # keys and other mouse buttons at the time.
423
- #
424
- # @param [Integer] x
425
- # The X coordinate on the screen where the event occurred.
426
- #
427
- # @param [Integer] y
428
- # The Y coordinate on the screen where the event occurred.
429
- #
430
- # @param [Sketchup::View] view
431
- #
432
- # @version SketchUp 6.0
433
- def onLButtonUp(flags, x, y, view)
434
- end
435
-
436
- # The #{onMButtonDoubleClick} method is called by SketchUp when the middle
437
- # mouse button (on a three button mouse) is double-clicked.
438
- #
439
- # Only implement this method if you want SketchUp to react to a middle mouse
440
- # button being double-clicked.
441
- #
442
- # @example
443
- # def onMButtonDoubleClick(flags, x, y, view)
444
- # puts "onMButtonDoubleClick: flags = #{flags}"
445
- # puts " x = #{x}"
446
- # puts " y = #{y}"
447
- # puts " view = #{view}"
448
- # end
449
- #
450
- # @note Though this method has been documented in the Ruby API for many years,
451
- # it has never worked properly. We are leaving this documentation in place
452
- # for now in the hopes of fixing the implementation, but you won't have any
453
- # luck trying to use it in SU7 and earlier.
454
- #
455
- # @param [Integer] flags
456
- # A bit mask that tells the state of the modifier
457
- # keys and other mouse buttons at the time.
458
- #
459
- # @param [Integer] x
460
- # The X coordinate on the screen where the event occurred.
461
- #
462
- # @param [Integer] y
463
- # The Y coordinate on the screen where the event occurred.
464
- #
465
- # @param [Sketchup::View] view
466
- #
467
- # @version SketchUp 6.0
468
- def onMButtonDoubleClick(flags, x, y, view)
469
- end
470
-
471
- # The #{onMButtonDown} method is called by SketchUp when the middle mouse
472
- # button (on a three button mouse) is down.
473
- #
474
- # The Orbit tool is activated by default when the middle mouse button is down.
475
- # Implement this method if you want a middle mouse button to do something
476
- # other than invoke the Orbit tool.
477
- #
478
- # @example
479
- # def onMButtonDown(flags, x, y, view)
480
- # puts "onMButtonDown: flags = #{flags}"
481
- # puts " x = #{x}"
482
- # puts " y = #{y}"
483
- # puts " view = #{view}"
484
- # end
485
- #
486
- # @param [Integer] flags
487
- # A bit mask that tells the state of the modifier
488
- # keys and other mouse buttons at the time.
489
- #
490
- # @param [Integer] x
491
- # The X coordinate on the screen where the event occurred.
492
- #
493
- # @param [Integer] y
494
- # The Y coordinate on the screen where the event occurred.
495
- #
496
- # @param [Sketchup::View] view
497
- #
498
- # @version SketchUp 6.0
499
- def onMButtonDown(flags, x, y, view)
500
- end
501
-
502
- # The #{onMButtonUp} method is called by SketchUp when the middle mouse button
503
- # (on a three button mouse) is released.
504
- #
505
- # SketchUp returns to the previous tool from the Orbit tool when the middle
506
- # mouse button is released. Implement this method if you want a middle mouse
507
- # button to do something other than return to the previous tool when in the
508
- # Orbit tool.
509
- #
510
- # @example
511
- # def onMButtonUp(flags, x, y, view)
512
- # puts "onMButtonUp: flags = #{flags}"
513
- # puts " x = #{x}"
514
- # puts " y = #{y}"
515
- # puts " view = #{view}"
516
- # end
517
- #
518
- # @param [Integer] flags
519
- # A bit mask that tells the state of the modifier
520
- # keys and other mouse buttons at the time.
521
- #
522
- # @param [Integer] x
523
- # The X coordinate on the screen where the event occurred.
524
- #
525
- # @param [Integer] y
526
- # The Y coordinate on the screen where the event occurred.
527
- #
528
- # @param [Sketchup::View] view
529
- #
530
- # @version SketchUp 6.0
531
- def onMButtonUp(flags, x, y, view)
532
- end
533
-
534
- # The #{onMouseEnter} method is called by SketchUp when the mouse enters the
535
- # viewport.
536
- #
537
- # @example
538
- # def onMouseEnter(view)
539
- # puts "onMouseEnter: view = #{view}"
540
- # end
541
- #
542
- # @param [Sketchup::View] view
543
- #
544
- # @version SketchUp 6.0
545
- def onMouseEnter(view)
546
- end
547
-
548
- # The #{onMouseLeave} method is called by SketchUp when the mouse leaves the
549
- # viewport.
550
- #
551
- # @example
552
- # def onMouseLeave(view)
553
- # puts "onMouseLeave: view = #{view}"
554
- # end
555
- #
556
- # @param [Sketchup::View] view
557
- #
558
- # @version SketchUp 6.0
559
- def onMouseLeave(view)
560
- end
561
-
562
- # The #{onMouseMove} method is called by SketchUp whenever the mouse is moved.
563
- # You will often want to implement this method.
564
- #
565
- # Try to make this method as efficient as possible because this method is
566
- # called often.
567
- #
568
- # @example
569
- # def onMouseMove(flags, x, y, view)
570
- # puts "onMouseMove: flags = #{flags}"
571
- # puts " x = #{x}"
572
- # puts " y = #{y}"
573
- # puts " view = #{view}"
574
- # end
575
- #
576
- # @param [Integer] flags
577
- # A bit mask that tells the state of the modifier
578
- # keys and other mouse buttons at the time.
579
- #
580
- # @param [Integer] x
581
- # The X coordinate on the screen where the event occurred.
582
- #
583
- # @param [Integer] y
584
- # The Y coordinate on the screen where the event occurred.
585
- #
586
- # @param [Sketchup::View] view
587
- #
588
- # @version SketchUp 6.0
589
- def onMouseMove(flags, x, y, view)
590
- end
591
-
592
- # The #{onMouseWheel} method is called by SketchUp when the mouse scroll wheel
593
- # is used.
594
- #
595
- # @example
596
- # class ExampleTool
597
- #
598
- # def initialize
599
- # @property_value = 0
600
- # @rect = [
601
- # Geom::Point3d.new(100, 150, 0),
602
- # Geom::Point3d.new(300, 150, 0),
603
- # Geom::Point3d.new(300, 250, 0),
604
- # Geom::Point3d.new(100, 250, 0),
605
- # ]
606
- # end
607
- #
608
- # def onMouseMove(flags, x, y, view)
609
- # view.invalidate
610
- # end
611
- #
612
- # def onMouseWheel(flags, delta, x, y, view)
613
- # # If the cursor is not within the bounds of the rectangle, return false
614
- # # to let SketchUp do its default action (zoom).
615
- # point = Geom::Point3d.new(x, y)
616
- # return false unless Geom.point_in_polygon_2D(point, @rect, true)
617
- #
618
- # # If cursor is within the bounds of the rectangle, update the value
619
- # # and prevent the default zoom.
620
- # @property_value += delta
621
- # view.invalidate
622
- # true
623
- # end
624
- #
625
- # def draw(view)
626
- # view.line_width = 2
627
- # view.line_stipple = ''
628
- # view.drawing_color = 'red'
629
- # view.draw2d(GL_QUADS, @rect)
630
- #
631
- # point = Geom::Point3d.new(120, 170)
632
- # view.draw_text(point, "Value: #{@property_value}",
633
- # size: 20, bold: true, color: 'black')
634
- # end
635
- #
636
- # end
637
- #
638
- # Sketchup.active_model.select_tool(ExampleTool.new)
639
- #
640
- # @param [Integer] flags
641
- # A bit mask that tells the state of the modifier
642
- # keys and other mouse buttons at the time.
643
- #
644
- # @param [Integer] delta
645
- # Either +1+ or +-1+ depending on which direction the
646
- # mouse wheel scrolled.
647
- #
648
- # @param [Float] x
649
- # The X coordinate on the screen where the event occurred.
650
- #
651
- # @param [Float] y
652
- # The Y coordinate on the screen where the event occurred.
653
- #
654
- # @param [Sketchup::View] view
655
- #
656
- # @return [Boolean] Return +true+ to prevent SketchUp from performing default
657
- # zoom action.
658
- #
659
- # @version SketchUp 2019.2
660
- def onMouseWheel(flags, delta, x, y, view)
661
- end
662
-
663
- # The #{onRButtonDoubleClick} is called by SketchUp when the user double clicks
664
- # with the right mouse button.
665
- #
666
- # @example
667
- # def onRButtonDoubleClick(flags, x, y, view)
668
- # puts "onRButtonDoubleClick: flags = #{flags}"
669
- # puts " x = #{x}"
670
- # puts " y = #{y}"
671
- # puts " view = #{view}"
672
- # end
673
- #
674
- # @param [Integer] flags
675
- # A bit mask that tells the state of the modifier
676
- # keys and other mouse buttons at the time.
677
- #
678
- # @param [Integer] x
679
- # The X coordinate on the screen where the event occurred.
680
- #
681
- # @param [Integer] y
682
- # The Y coordinate on the screen where the event occurred.
683
- #
684
- # @param [Sketchup::View] view
685
- #
686
- # @version SketchUp 6.0
687
- def onRButtonDoubleClick(flags, x, y, view)
688
- end
689
-
690
- # The #{onRButtonDown} method is called by SketchUp when the user presses
691
- # the right mouse button. Implement this method, along with the tool.getMenu
692
- # method, when you want your tool to do something other than display the
693
- # default context menu when the right mouse button is clicked.
694
- #
695
- # @example
696
- # def onRButtonDown(flags, x, y, view)
697
- # puts "onRButtonDown: flags = #{flags}"
698
- # puts " x = #{x}"
699
- # puts " y = #{y}"
700
- # puts " view = #{view}"
701
- # end
702
- #
703
- # @param [Integer] flags
704
- # A bit mask that tells the state of the modifier
705
- # keys and other mouse buttons at the time.
706
- #
707
- # @param [Integer] x
708
- # The X coordinate on the screen where the event occurred.
709
- #
710
- # @param [Integer] y
711
- # The Y coordinate on the screen where the event occurred.
712
- #
713
- # @param [Sketchup::View] view
714
- #
715
- # @version SketchUp 6.0
716
- def onRButtonDown(flags, x, y, view)
717
- end
718
-
719
- # The #{onRButtonUp} method is called by SketchUp when the user releases the
720
- # right mouse button.
721
- #
722
- # @example
723
- # def onRButtonUp(flags, x, y, view)
724
- # puts "onRButtonUp: flags = #{flags}"
725
- # puts " x = #{x}"
726
- # puts " y = #{y}"
727
- # puts " view = #{view}"
728
- # end
729
- #
730
- # @param [Integer] flags
731
- # A bit mask that tells the state of the modifier
732
- # keys and other mouse buttons at the time.
733
- #
734
- # @param [Integer] x
735
- # The X coordinate on the screen where the event occurred.
736
- #
737
- # @param [Integer] y
738
- # The Y coordinate on the screen where the event occurred.
739
- #
740
- # @param [Sketchup::View] view
741
- #
742
- # @version SketchUp 6.0
743
- def onRButtonUp(flags, x, y, view)
744
- end
745
-
746
- # The {#onReturn} method is called by SketchUp when the user hit the Return key
747
- # to complete an operation in the tool. This method will rarely need to be
748
- # implemented.
749
- #
750
- # @example
751
- # def onReturn(view)
752
- # puts "onReturn(#{view})"
753
- # end
754
- #
755
- # @param [Sketchup::View] view
756
- #
757
- # @return [nil]
758
- #
759
- # @version SketchUp 6.0
760
- def onReturn(view)
761
- end
762
-
763
- # The #{onSetCursor} method is called by SketchUp when the tool wants to set
764
- # the cursor.
765
- #
766
- # @example
767
- # def onSetCursor
768
- # puts "onSetCursor: view = #{view}"
769
- # # You would set your cursor here. See UI.set_cursor method.
770
- # UI.set_cursor(@cursor_id) # UI.set_cursor return true
771
- # end
772
- #
773
- # @return [Boolean] Return +true+ to prevent SketchUp using the default cursor.
774
- #
775
- # @version SketchUp 6.0
776
- def onSetCursor
777
- end
778
-
779
- # The {#onUserText} method is called by SketchUp when the user has typed text
780
- # into the VCB and hit return.
781
- #
782
- # @example
783
- # def onUserText(text, view)
784
- # @distance = text.to_l
785
- # rescue ArgumentError
786
- # view.tooltop = 'Invalid length'
787
- # end
788
- #
789
- # @param [String] text
790
- # The text string that was typed into the VCB.
791
- #
792
- # @param [Sketchup::View] view
793
- # A view object where the method was invoked.
794
- #
795
- # @version SketchUp 6.0
796
- def onUserText(text, view)
797
- end
798
-
799
- # The #{resume} method is called by SketchUp when the tool becomes active again
800
- # after being suspended.
801
- #
802
- # @example
803
- # def resume(view)
804
- # puts "resume: view = #{view}"
805
- # end
806
- #
807
- # @param [Sketchup::View] view
808
- #
809
- # @version SketchUp 6.0
810
- def resume(view)
811
- end
812
-
813
- # The #{suspend} method is called by SketchUp when the tool temporarily becomes
814
- # inactive because another tool has been activated. This typically happens
815
- # when a viewing tool is activated, such as when orbit is active due to the
816
- # middle mouse button.
817
- #
818
- # @example
819
- # def suspend(view)
820
- # puts "suspend: view = #{view}"
821
- # end
822
- #
823
- # @param [Sketchup::View] view
824
- #
825
- # @version SketchUp 6.0
826
- def suspend(view)
827
- end
828
-
829
- end
1
+ # Copyright:: Copyright 2022 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # Tool is the interface that you implement to create a SketchUp tool.
5
+ # See
6
+ # {our code
7
+ # example}[https://github.com/SketchUp/sketchup-ruby-api-tutorials/tree/main/examples/02_custom_tool]
8
+ # for how to create a custom tool in Ruby.
9
+ #
10
+ # To create a new tool in Ruby, you must define a new class that implements
11
+ # the methods for the events that you want to respond to. You do not have
12
+ # to implement methods for every possible event that a Tool can respond to.
13
+ #
14
+ # Once you have defined a tool class, you select that tool by creating an
15
+ # instance of it and passing it to {Sketchup::Model#select_tool}. For
16
+ # example:
17
+ #
18
+ # class MyTool
19
+ # def activate
20
+ # puts 'Your tool has been activated.'
21
+ # end
22
+ # end
23
+ #
24
+ # my_tool = MyTool.new
25
+ # Sketchup.active_model.select_tool(my_tool)
26
+ #
27
+ # The following table contains several constants you can use when check for
28
+ # certain key presses inside the keyboard handling callbacks:
29
+ #
30
+ # - +CONSTRAIN_MODIFIER_KEY+ = Shift Key
31
+ # - +CONSTRAIN_MODIFIER_MASK+ = Shift Key
32
+ # - +COPY_MODIFIER_KEY+ = Alt/Option on Mac, Ctrl on PC
33
+ # - +COPY_MODIFIER_MASK+ = Alt/Option on Mac, Ctrl on PC
34
+ # - +ALT_MODIFIER_KEY+ = Command on Mac, Alt on PC
35
+ # - +ALT_MODIFIER_MASK+ = Command on Mac, Alt on PC
36
+ #
37
+ # @abstract Implement the methods described in this class to create a tool.
38
+ # You can not sub-class this class because it is not defined by the API.
39
+ #
40
+ # @version SketchUp 6.0
41
+ class Sketchup::Tool
42
+
43
+ # Instance Methods
44
+
45
+ # The {#activate} method is called by SketchUp when the tool is selected.
46
+ # It is a good place to put most of your initialization, such as instance
47
+ # variables to track the state of the tool.
48
+ #
49
+ # @example
50
+ # def activate
51
+ # puts 'Your tool has been activated.'
52
+ # end
53
+ #
54
+ # @version SketchUp 6.0
55
+ def activate
56
+ end
57
+
58
+ # The {#deactivate} method is called when the tool is deactivated because a
59
+ # different tool was selected.
60
+ #
61
+ # @example
62
+ # def deactivate(view)
63
+ # puts "Your tool has been deactivated in view: #{view}"
64
+ # end
65
+ #
66
+ # @param [Sketchup::View] view
67
+ #
68
+ # @version SketchUp 6.0
69
+ def deactivate(view)
70
+ end
71
+
72
+ # The {#draw} method is called by SketchUp whenever the view is refreshed to
73
+ # allow the tool to do its own drawing. If the tool has some temporary graphics
74
+ # that it wants displayed while it is active, it should implement this method
75
+ # and draw to the {Sketchup::View}.
76
+ #
77
+ # @example
78
+ # def draw(view)
79
+ # # Draw a square.
80
+ # points = [
81
+ # Geom::Point3d.new(0, 0, 0),
82
+ # Geom::Point3d.new(9, 0, 0),
83
+ # Geom::Point3d.new(9, 9, 0),
84
+ # Geom::Point3d.new(0, 9, 0)
85
+ # ]
86
+ # # Fill
87
+ # view.drawing_color = Sketchup::Color.new(255, 128, 128)
88
+ # view.draw(GL_QUADS, points)
89
+ # # Outline
90
+ # view.line_stipple = '' # Solid line
91
+ # view.drawing_color = Sketchup::Color.new(64, 0, 0)
92
+ # view.draw(GL_LINE_LOOP, points)
93
+ # end
94
+ #
95
+ # @note If you draw outside the model bounds you need to implement
96
+ # {Tool#getExtents} which return a bounding box large enough to include the
97
+ # points you draw. Otherwise your drawing will be clipped.
98
+ #
99
+ # @param [Sketchup::View] view
100
+ # A View object where the method was invoked.
101
+ #
102
+ # @see getExtents
103
+ #
104
+ # @see Sketchup::View#draw
105
+ #
106
+ # @version SketchUp 6.0
107
+ def draw(view)
108
+ end
109
+
110
+ # The {#enableVCB?} method is used to tell SketchUp whether to allow the user
111
+ # to enter text into the VCB (value control box, aka the "measurements" panel).
112
+ # If you do not implement this method, then the vcb is disabled by default.
113
+ #
114
+ # @example
115
+ # # For this tool, allow vcb text entry while the tool is active.
116
+ # def enableVCB?
117
+ # return true
118
+ # end
119
+ #
120
+ # @return [Boolean] Return +true+ if you want the VCB enabled
121
+ #
122
+ # @version SketchUp 6.0
123
+ def enableVCB?
124
+ end
125
+
126
+ # In order to accurately draw things, SketchUp needs to know the extents of
127
+ # what it is drawing. If the tool is doing its own drawing, it may need to
128
+ # implement this method to tell SketchUp the extents of what it will be
129
+ # drawing. If you don't implement this method, you may find that part of what
130
+ # the tool is drawing gets clipped to the extents of the rest of the
131
+ # model.
132
+ #
133
+ # This must return a {Geom::BoundingBox}. In a typical implementation, you
134
+ # will create a new {Geom::BoundingBox}, add points to set the extents of the
135
+ # drawing that the tool will do and then return it.
136
+ #
137
+ # @example
138
+ # def getExtents
139
+ # bb = Sketchup.active_model.bounds
140
+ # return bb
141
+ # end
142
+ #
143
+ # @return [Geom::BoundingBox]
144
+ #
145
+ # @version SketchUp 6.0
146
+ def getExtents
147
+ end
148
+
149
+ # The {#getInstructorContentDirectory} method is used to tell SketchUp the
150
+ # directory containing your Tool's instructor content. To use this, create
151
+ # a custom instructor directory, put an index.html file inside of it, and then
152
+ # return that path via this method. If the SketchUp user has the Instructor
153
+ # window open when they activate your tool, they will see your html file.
154
+ #
155
+ # @example
156
+ # def getInstructorContentDirectory
157
+ # extension_path = Sketchup.extensions['MyExtension].extension_path
158
+ # instructor_path = File.join(extension_path, 'MyExtension', 'instructor')
159
+ # return instructor_path
160
+ # end
161
+ #
162
+ # @note Prior to SketchUp 2014 this method would assume the path was relative
163
+ # to the SketchUp resource folder. From 2014 and onwards you can specify the
164
+ # absolute path to an HTML file or the absolute path to a directory
165
+ # containing an index.html file.
166
+ #
167
+ # @return [String] the directory path where the Instructor content exists.
168
+ #
169
+ # @version SketchUp 6.0
170
+ def getInstructorContentDirectory
171
+ end
172
+
173
+ # The {#getMenu} method is called by SketchUp to let the tool provide its own
174
+ # context menu. Most tools will not want to implement this method and,
175
+ # instead, use the normal context menu found on all entities.
176
+ #
177
+ # If you do implement this method, the argument is a Menu. You should use the
178
+ # add_item method to build the context menu.
179
+ #
180
+ # Your tool will use a standard context menu by default if you do not
181
+ # implement this method. Implement this method if you want a context-click to
182
+ # display something other than this default context menu.
183
+ #
184
+ # In SketchUp 2015 the flags, x, y and view parameters were added. They are
185
+ # needed if you need to pick the entities under the mouse position. The new
186
+ # parameters are optional, but if you need to use one you must include them
187
+ # all.
188
+ #
189
+ # @example
190
+ # if Sketchup.version.to_i < 15
191
+ # # Compatible with SketchUp 2014 and older:
192
+ # def getMenu(menu)
193
+ # menu.add_item('Say Hello') {
194
+ # UI.messagebox('Hello')
195
+ # }
196
+ # end
197
+ # else
198
+ # # Only works with SketchUp 2015 and newer:
199
+ # def getMenu(menu, flags, x, y, view)
200
+ # ph = view.pick_helper(x, y)
201
+ # entity = ph.best_picked
202
+ # if entity
203
+ # view.model.selection.clear
204
+ # view.model.selection.add(entity)
205
+ # menu.add_item("Erase #{entity.typename}") {
206
+ # entity.erase!
207
+ # }
208
+ # end
209
+ # end
210
+ # end
211
+ #
212
+ # @param menu
213
+ # A Menu object.
214
+ #
215
+ # @param [optional] flags
216
+ # A bit mask that tells the state of the
217
+ # modifier keys and other mouse buttons at the time.
218
+ # Added in SU2015.
219
+ #
220
+ # @param [optional] x
221
+ # The X coordinate on the screen where the
222
+ # event occurred. Added in SU2015.
223
+ #
224
+ # @param [optional] y
225
+ # The Y coordinate on the screen where the
226
+ # event occurred. Added in SU2015.
227
+ #
228
+ # @param [optional] view
229
+ # A View object where the method was invoked.
230
+ # Added in SU2015.
231
+ #
232
+ # @return nil
233
+ #
234
+ # @version SketchUp 6.0
235
+ def getMenu(menu, flags, x, y, view)
236
+ end
237
+
238
+ # The {#onCancel} method is called by SketchUp to cancel the current operation
239
+ # of the tool. The typical response will be to reset the tool to its initial
240
+ # state.
241
+ #
242
+ # The reason identifies the action that triggered the call. The reason can be
243
+ # one of the following values:
244
+ #
245
+ # - +0+: the user canceled the current operation by hitting the escape key.
246
+ # - +1+: the user re-selected the same tool from the toolbar or menu.
247
+ # - +2+: the user did an undo while the tool was active.
248
+ #
249
+ # @example
250
+ # def onCancel(reason, view)
251
+ # puts "MyTool was canceled for reason ##{reason} in view: #{view}"
252
+ # end
253
+ #
254
+ # @note When something is undone {#onCancel} is called before the undo is
255
+ # actually executed. If you need to do something with the model after an undo
256
+ # use {Sketchup::ModelObserver#onTransactionUndo}.
257
+ #
258
+ # @note When {#onKeyDown} is implemented and returns +true+, pressing Esc
259
+ # doesn't trigger {#onCancel}.
260
+ #
261
+ # @param [Integer] reason
262
+ # A reason value (see comments).
263
+ #
264
+ # @param [Sketchup::View] view
265
+ #
266
+ # @version SketchUp 6.0
267
+ def onCancel(reason, view)
268
+ end
269
+
270
+ # The {#onKeyDown} method is called by SketchUp when the user presses a key on
271
+ # the keyboard. If you want to get input from the VCB, you should implement
272
+ # onUserText rather than this method.
273
+ #
274
+ # This method is can be used for special keys such as the Shift key, Ctrl key,
275
+ # and so on, or for just determining which key a user pressed. This method is
276
+ # actually called for all keys that are pressed.
277
+ #
278
+ # There are several
279
+ # "virtual keys" defined as constants you can use. Their use is cross
280
+ # platform. They are:
281
+ #
282
+ # - +VK_ALT+
283
+ # - +VK_COMMAND+
284
+ # - +VK_CONTROL+
285
+ # - +VK_DELETE+
286
+ # - +VK_DOWN+
287
+ # - +VK_END+
288
+ # - +VK_HOME+
289
+ # - +VK_INSERT+
290
+ # - +VK_LEFT+
291
+ # - +VK_MENU+
292
+ # - +VK_NEXT+
293
+ # - +VK_PRIOR+
294
+ # - +VK_RIGHT+
295
+ # - +VK_SHIFT+
296
+ # - +VK_SPACE+
297
+ # - +VK_UP+
298
+ #
299
+ # V6: There is a bug on Windows where the typematic effect does
300
+ # not work. Typematic effects work fine on a Mac.
301
+ #
302
+ # @example
303
+ # def onKeyDown(key, repeat, flags, view)
304
+ # puts "onKeyDown: key = #{key}"
305
+ # puts " repeat = #{repeat}"
306
+ # puts " flags = #{flags}"
307
+ # puts " view = #{view}"
308
+ # end
309
+ #
310
+ # @param [Integer] key
311
+ # The key that was pressed.
312
+ #
313
+ # @param [Integer] repeat
314
+ # A value of 1 for a single press of a key. A value
315
+ # of 2 if the user has pressed a key and is holding
316
+ # it down.
317
+ #
318
+ # @param [Integer] flags
319
+ # A bit mask that tells the state of the modifier
320
+ # keys at the time of the event.
321
+ #
322
+ # @param [Sketchup::View] view
323
+ #
324
+ # @return [Boolean] Return +true+ to prevent SketchUp from processing the
325
+ # event.
326
+ #
327
+ # @version SketchUp 6.0
328
+ def onKeyDown(key, repeat, flags, view)
329
+ end
330
+
331
+ # The {#onKeyUp} method is called by SketchUp when the user releases a key on
332
+ # the keyboard.
333
+ #
334
+ # @example
335
+ # def onKeyUp(key, repeat, flags, view)
336
+ # puts "onKeyUp: key = #{key}"
337
+ # puts " repeat = #{repeat}"
338
+ # puts " flags = #{flags}"
339
+ # puts " view = #{view}"
340
+ # end
341
+ #
342
+ # @param [Integer] key
343
+ # The key that was pressed.
344
+ #
345
+ # @param [Integer] repeat
346
+ # A value of 1 for a single press of a key. A value
347
+ # of 2 if the user has pressed a key and is holding
348
+ # it down.
349
+ #
350
+ # @param [Integer] flags
351
+ # A bit mask that tells the state of the modifier
352
+ # keys at the time of the event.
353
+ #
354
+ # @param [Sketchup::View] view
355
+ #
356
+ # @return [Boolean] Return +true+ to prevent SketchUp from processing the
357
+ # event.
358
+ #
359
+ # @version SketchUp 6.0
360
+ def onKeyUp(key, repeat, flags, view)
361
+ end
362
+
363
+ # The {#onLButtonDoubleClick} is called by SketchUp when the user double clicks
364
+ # with the left mouse button.
365
+ #
366
+ # @example
367
+ # def onLButtonDoubleClick(flags, x, y, view)
368
+ # puts "onLButtonDoubleClick: flags = #{flags}"
369
+ # puts " x = #{x}"
370
+ # puts " y = #{y}"
371
+ # puts " view = #{view}"
372
+ # end
373
+ #
374
+ # @param [Integer] flags
375
+ # A bit mask that tells the state of the modifier
376
+ # keys and other mouse buttons at the time.
377
+ #
378
+ # @param [Integer] x
379
+ # The X coordinate on the screen where the event occurred.
380
+ #
381
+ # @param [Integer] y
382
+ # The Y coordinate on the screen where the event occurred.
383
+ #
384
+ # @param [Sketchup::View] view
385
+ #
386
+ # @version SketchUp 6.0
387
+ def onLButtonDoubleClick(flags, x, y, view)
388
+ end
389
+
390
+ # The {#onLButtonDown} method is called by SketchUp when the left mouse button
391
+ # is pressed. Most tools will implement this method.
392
+ #
393
+ # @example
394
+ # def onLButtonDown(flags, x, y, view)
395
+ # puts "onLButtonDown: flags = #{flags}"
396
+ # puts " x = #{x}"
397
+ # puts " y = #{y}"
398
+ # puts " view = #{view}"
399
+ # end
400
+ #
401
+ # @param [Integer] flags
402
+ # A bit mask that tells the state of the modifier
403
+ # keys and other mouse buttons at the time.
404
+ #
405
+ # @param [Integer] x
406
+ # The X coordinate on the screen where the event occurred.
407
+ #
408
+ # @param [Integer] y
409
+ # The Y coordinate on the screen where the event occurred.
410
+ #
411
+ # @param [Sketchup::View] view
412
+ #
413
+ # @version SketchUp 6.0
414
+ def onLButtonDown(flags, x, y, view)
415
+ end
416
+
417
+ # The {#onLButtonUp} method is called by SketchUp when the left mouse button is
418
+ # released.
419
+ #
420
+ # @example
421
+ # def onLButtonUp(flags, x, y, view)
422
+ # puts "onLButtonUp: flags = #{flags}"
423
+ # puts " x = #{x}"
424
+ # puts " y = #{y}"
425
+ # puts " view = #{view}"
426
+ # end
427
+ #
428
+ # @param [Integer] flags
429
+ # A bit mask that tells the state of the modifier
430
+ # keys and other mouse buttons at the time.
431
+ #
432
+ # @param [Integer] x
433
+ # The X coordinate on the screen where the event occurred.
434
+ #
435
+ # @param [Integer] y
436
+ # The Y coordinate on the screen where the event occurred.
437
+ #
438
+ # @param [Sketchup::View] view
439
+ #
440
+ # @version SketchUp 6.0
441
+ def onLButtonUp(flags, x, y, view)
442
+ end
443
+
444
+ # The {#onMButtonDoubleClick} method is called by SketchUp when the middle
445
+ # mouse button (on a three button mouse) is double-clicked.
446
+ #
447
+ # Only implement this method if you want SketchUp to react to a middle mouse
448
+ # button being double-clicked.
449
+ #
450
+ # @example
451
+ # def onMButtonDoubleClick(flags, x, y, view)
452
+ # puts "onMButtonDoubleClick: flags = #{flags}"
453
+ # puts " x = #{x}"
454
+ # puts " y = #{y}"
455
+ # puts " view = #{view}"
456
+ # end
457
+ #
458
+ # @note Though this method has been documented in the Ruby API for many years,
459
+ # it has never worked properly. We are leaving this documentation in place
460
+ # for now in the hopes of fixing the implementation, but you won't have any
461
+ # luck trying to use it in SU7 and earlier.
462
+ #
463
+ # @param [Integer] flags
464
+ # A bit mask that tells the state of the modifier
465
+ # keys and other mouse buttons at the time.
466
+ #
467
+ # @param [Integer] x
468
+ # The X coordinate on the screen where the event occurred.
469
+ #
470
+ # @param [Integer] y
471
+ # The Y coordinate on the screen where the event occurred.
472
+ #
473
+ # @param [Sketchup::View] view
474
+ #
475
+ # @version SketchUp 6.0
476
+ def onMButtonDoubleClick(flags, x, y, view)
477
+ end
478
+
479
+ # The {#onMButtonDown} method is called by SketchUp when the middle mouse
480
+ # button (on a three button mouse) is down.
481
+ #
482
+ # The Orbit tool is activated by default when the middle mouse button is down.
483
+ # Implement this method if you want a middle mouse button to do something
484
+ # other than invoke the Orbit tool.
485
+ #
486
+ # @example
487
+ # def onMButtonDown(flags, x, y, view)
488
+ # puts "onMButtonDown: flags = #{flags}"
489
+ # puts " x = #{x}"
490
+ # puts " y = #{y}"
491
+ # puts " view = #{view}"
492
+ # end
493
+ #
494
+ # @param [Integer] flags
495
+ # A bit mask that tells the state of the modifier
496
+ # keys and other mouse buttons at the time.
497
+ #
498
+ # @param [Integer] x
499
+ # The X coordinate on the screen where the event occurred.
500
+ #
501
+ # @param [Integer] y
502
+ # The Y coordinate on the screen where the event occurred.
503
+ #
504
+ # @param [Sketchup::View] view
505
+ #
506
+ # @version SketchUp 6.0
507
+ def onMButtonDown(flags, x, y, view)
508
+ end
509
+
510
+ # The {#onMButtonUp} method is called by SketchUp when the middle mouse button
511
+ # (on a three button mouse) is released.
512
+ #
513
+ # SketchUp returns to the previous tool from the Orbit tool when the middle
514
+ # mouse button is released. Implement this method if you want a middle mouse
515
+ # button to do something other than return to the previous tool when in the
516
+ # Orbit tool.
517
+ #
518
+ # @example
519
+ # def onMButtonUp(flags, x, y, view)
520
+ # puts "onMButtonUp: flags = #{flags}"
521
+ # puts " x = #{x}"
522
+ # puts " y = #{y}"
523
+ # puts " view = #{view}"
524
+ # end
525
+ #
526
+ # @param [Integer] flags
527
+ # A bit mask that tells the state of the modifier
528
+ # keys and other mouse buttons at the time.
529
+ #
530
+ # @param [Integer] x
531
+ # The X coordinate on the screen where the event occurred.
532
+ #
533
+ # @param [Integer] y
534
+ # The Y coordinate on the screen where the event occurred.
535
+ #
536
+ # @param [Sketchup::View] view
537
+ #
538
+ # @version SketchUp 6.0
539
+ def onMButtonUp(flags, x, y, view)
540
+ end
541
+
542
+ # The {#onMouseEnter} method is called by SketchUp when the mouse enters the
543
+ # viewport.
544
+ #
545
+ # @example
546
+ # def onMouseEnter(view)
547
+ # puts "onMouseEnter: view = #{view}"
548
+ # end
549
+ #
550
+ # @param [Sketchup::View] view
551
+ #
552
+ # @version SketchUp 6.0
553
+ def onMouseEnter(view)
554
+ end
555
+
556
+ # The {#onMouseLeave} method is called by SketchUp when the mouse leaves the
557
+ # viewport.
558
+ #
559
+ # @example
560
+ # def onMouseLeave(view)
561
+ # puts "onMouseLeave: view = #{view}"
562
+ # end
563
+ #
564
+ # @param [Sketchup::View] view
565
+ #
566
+ # @version SketchUp 6.0
567
+ def onMouseLeave(view)
568
+ end
569
+
570
+ # The {#onMouseMove} method is called by SketchUp whenever the mouse is moved.
571
+ # You will often want to implement this method.
572
+ #
573
+ # Try to make this method as efficient as possible because this method is
574
+ # called often.
575
+ #
576
+ # @example
577
+ # def onMouseMove(flags, x, y, view)
578
+ # puts "onMouseMove: flags = #{flags}"
579
+ # puts " x = #{x}"
580
+ # puts " y = #{y}"
581
+ # puts " view = #{view}"
582
+ # end
583
+ #
584
+ # @param [Integer] flags
585
+ # A bit mask that tells the state of the modifier
586
+ # keys and other mouse buttons at the time.
587
+ #
588
+ # @param [Integer] x
589
+ # The X coordinate on the screen where the event occurred.
590
+ #
591
+ # @param [Integer] y
592
+ # The Y coordinate on the screen where the event occurred.
593
+ #
594
+ # @param [Sketchup::View] view
595
+ #
596
+ # @version SketchUp 6.0
597
+ def onMouseMove(flags, x, y, view)
598
+ end
599
+
600
+ # The {#onMouseWheel} method is called by SketchUp when the mouse scroll wheel
601
+ # is used.
602
+ #
603
+ # @example
604
+ # class ExampleTool
605
+ #
606
+ # def initialize
607
+ # @property_value = 0
608
+ # @rect = [
609
+ # Geom::Point3d.new(100, 150, 0),
610
+ # Geom::Point3d.new(300, 150, 0),
611
+ # Geom::Point3d.new(300, 250, 0),
612
+ # Geom::Point3d.new(100, 250, 0),
613
+ # ]
614
+ # end
615
+ #
616
+ # def onMouseMove(flags, x, y, view)
617
+ # view.invalidate
618
+ # end
619
+ #
620
+ # def onMouseWheel(flags, delta, x, y, view)
621
+ # # If the cursor is not within the bounds of the rectangle, return false
622
+ # # to let SketchUp do its default action (zoom).
623
+ # point = Geom::Point3d.new(x, y)
624
+ # return false unless Geom.point_in_polygon_2D(point, @rect, true)
625
+ #
626
+ # # If cursor is within the bounds of the rectangle, update the value
627
+ # # and prevent the default zoom.
628
+ # @property_value += delta
629
+ # view.invalidate
630
+ # true
631
+ # end
632
+ #
633
+ # def draw(view)
634
+ # view.line_width = 2
635
+ # view.line_stipple = ''
636
+ # view.drawing_color = 'red'
637
+ # view.draw2d(GL_QUADS, @rect)
638
+ #
639
+ # point = Geom::Point3d.new(120, 170)
640
+ # view.draw_text(point, "Value: #{@property_value}",
641
+ # size: 20, bold: true, color: 'black')
642
+ # end
643
+ #
644
+ # end
645
+ #
646
+ # Sketchup.active_model.select_tool(ExampleTool.new)
647
+ #
648
+ # @param [Integer] flags
649
+ # A bit mask that tells the state of the modifier
650
+ # keys and other mouse buttons at the time.
651
+ #
652
+ # @param [Integer] delta
653
+ # Either +1+ or +-1+ depending on which direction the
654
+ # mouse wheel scrolled.
655
+ #
656
+ # @param [Float] x
657
+ # The X coordinate on the screen where the event occurred.
658
+ #
659
+ # @param [Float] y
660
+ # The Y coordinate on the screen where the event occurred.
661
+ #
662
+ # @param [Sketchup::View] view
663
+ #
664
+ # @return [Boolean] Return +true+ to prevent SketchUp from performing default
665
+ # zoom action.
666
+ #
667
+ # @version SketchUp 2019.2
668
+ def onMouseWheel(flags, delta, x, y, view)
669
+ end
670
+
671
+ # The {#onRButtonDoubleClick} is called by SketchUp when the user double clicks
672
+ # with the right mouse button.
673
+ #
674
+ # @example
675
+ # def onRButtonDoubleClick(flags, x, y, view)
676
+ # puts "onRButtonDoubleClick: flags = #{flags}"
677
+ # puts " x = #{x}"
678
+ # puts " y = #{y}"
679
+ # puts " view = #{view}"
680
+ # end
681
+ #
682
+ # @param [Integer] flags
683
+ # A bit mask that tells the state of the modifier
684
+ # keys and other mouse buttons at the time.
685
+ #
686
+ # @param [Integer] x
687
+ # The X coordinate on the screen where the event occurred.
688
+ #
689
+ # @param [Integer] y
690
+ # The Y coordinate on the screen where the event occurred.
691
+ #
692
+ # @param [Sketchup::View] view
693
+ #
694
+ # @version SketchUp 6.0
695
+ def onRButtonDoubleClick(flags, x, y, view)
696
+ end
697
+
698
+ # The {#onRButtonDown} method is called by SketchUp when the user presses
699
+ # the right mouse button. Implement this method, along with the tool.getMenu
700
+ # method, when you want your tool to do something other than display the
701
+ # default context menu when the right mouse button is clicked.
702
+ #
703
+ # @example
704
+ # def onRButtonDown(flags, x, y, view)
705
+ # puts "onRButtonDown: flags = #{flags}"
706
+ # puts " x = #{x}"
707
+ # puts " y = #{y}"
708
+ # puts " view = #{view}"
709
+ # end
710
+ #
711
+ # @param [Integer] flags
712
+ # A bit mask that tells the state of the modifier
713
+ # keys and other mouse buttons at the time.
714
+ #
715
+ # @param [Integer] x
716
+ # The X coordinate on the screen where the event occurred.
717
+ #
718
+ # @param [Integer] y
719
+ # The Y coordinate on the screen where the event occurred.
720
+ #
721
+ # @param [Sketchup::View] view
722
+ #
723
+ # @version SketchUp 6.0
724
+ def onRButtonDown(flags, x, y, view)
725
+ end
726
+
727
+ # The {#onRButtonUp} method is called by SketchUp when the user releases the
728
+ # right mouse button.
729
+ #
730
+ # @example
731
+ # def onRButtonUp(flags, x, y, view)
732
+ # puts "onRButtonUp: flags = #{flags}"
733
+ # puts " x = #{x}"
734
+ # puts " y = #{y}"
735
+ # puts " view = #{view}"
736
+ # end
737
+ #
738
+ # @param [Integer] flags
739
+ # A bit mask that tells the state of the modifier
740
+ # keys and other mouse buttons at the time.
741
+ #
742
+ # @param [Integer] x
743
+ # The X coordinate on the screen where the event occurred.
744
+ #
745
+ # @param [Integer] y
746
+ # The Y coordinate on the screen where the event occurred.
747
+ #
748
+ # @param [Sketchup::View] view
749
+ #
750
+ # @version SketchUp 6.0
751
+ def onRButtonUp(flags, x, y, view)
752
+ end
753
+
754
+ # The {#onReturn} method is called by SketchUp when the user hit the Return key
755
+ # to complete an operation in the tool. This method will rarely need to be
756
+ # implemented.
757
+ #
758
+ # @example
759
+ # def onReturn(view)
760
+ # puts "onReturn(#{view})"
761
+ # end
762
+ #
763
+ # @param [Sketchup::View] view
764
+ #
765
+ # @return [nil]
766
+ #
767
+ # @version SketchUp 6.0
768
+ def onReturn(view)
769
+ end
770
+
771
+ # The {#onSetCursor} method is called by SketchUp when the tool wants to set
772
+ # the cursor.
773
+ #
774
+ # @example
775
+ # def onSetCursor
776
+ # puts "onSetCursor: view = #{view}"
777
+ # # You would set your cursor here. See UI.set_cursor method.
778
+ # UI.set_cursor(@cursor_id) # UI.set_cursor return true
779
+ # end
780
+ #
781
+ # @return [Boolean] Return +true+ to prevent SketchUp using the default cursor.
782
+ #
783
+ # @version SketchUp 6.0
784
+ def onSetCursor
785
+ end
786
+
787
+ # The {#onUserText} method is called by SketchUp when the user has typed text
788
+ # into the VCB and hit return.
789
+ #
790
+ # @example
791
+ # def onUserText(text, view)
792
+ # @distance = text.to_l
793
+ # rescue ArgumentError
794
+ # view.tooltip = 'Invalid length'
795
+ # end
796
+ #
797
+ # @param [String] text
798
+ # The text string that was typed into the VCB.
799
+ #
800
+ # @param [Sketchup::View] view
801
+ # A view object where the method was invoked.
802
+ #
803
+ # @version SketchUp 6.0
804
+ def onUserText(text, view)
805
+ end
806
+
807
+ # The {#resume} method is called by SketchUp when the tool becomes active again
808
+ # after being suspended.
809
+ #
810
+ # @example
811
+ # def resume(view)
812
+ # puts "resume: view = #{view}"
813
+ # end
814
+ #
815
+ # @param [Sketchup::View] view
816
+ #
817
+ # @version SketchUp 6.0
818
+ def resume(view)
819
+ end
820
+
821
+ # The {#suspend} method is called by SketchUp when the tool temporarily becomes
822
+ # inactive because another tool has been activated. This typically happens
823
+ # when a viewing tool is activated, such as when orbit is active due to the
824
+ # middle mouse button.
825
+ #
826
+ # @example
827
+ # def suspend(view)
828
+ # puts "suspend: view = #{view}"
829
+ # end
830
+ #
831
+ # @param [Sketchup::View] view
832
+ #
833
+ # @version SketchUp 6.0
834
+ def suspend(view)
835
+ end
836
+
837
+ end