sketchup-api-stubs 0.7.2 → 0.7.7

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +3 -1
  3. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +15 -11
  4. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +5 -5
  5. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +5 -5
  6. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +1 -1
  7. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +5 -6
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +18 -18
  9. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +27 -10
  10. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +1 -1
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +1 -1
  12. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +1 -1
  13. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +2 -3
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +4 -4
  15. data/lib/sketchup-api-stubs/stubs/Layout.rb +1 -1
  16. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +5 -1
  17. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +1 -1
  18. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +7 -14
  19. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +1 -1
  20. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +61 -5
  21. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +1 -1
  22. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +7 -14
  23. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +1 -1
  24. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +1 -1
  25. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +189 -1
  26. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +1 -1
  27. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +9 -4
  28. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +2 -3
  29. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +1 -1
  30. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +1 -1
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +7 -14
  32. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +6 -2
  33. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +1 -1
  34. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +1 -1
  35. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +1 -1
  36. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +1 -1
  37. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +7 -14
  38. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +1 -1
  39. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +1 -1
  40. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +148 -5
  41. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1 -1
  42. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +1 -1
  43. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +1 -1
  44. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +1 -1
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +1 -1
  46. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +5 -1
  47. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +4 -4
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +1 -1
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +3 -3
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +6 -1
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +1 -1
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +32 -58
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +110 -209
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +1 -1
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +1 -1
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +24 -11
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +24 -9
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +58 -57
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +1 -1
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +1 -1
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +1 -1
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +16 -9
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +135 -39
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +6 -4
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +6 -4
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +1 -1
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +3 -9
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +5 -1
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +1 -1
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +10 -4
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +8 -14
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +1 -1
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +55 -26
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +6 -4
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +20 -15
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +6 -5
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +9 -8
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +232 -65
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +1 -1
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +98 -45
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +1 -1
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +48 -41
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +7 -7
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +60 -1
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +47 -7
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +11 -12
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +33 -21
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +6 -4
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +5 -2
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +115 -68
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +225 -29
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +118 -5
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +2 -2
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +1 -1
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +1 -1
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +2 -13
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +1 -1
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +8 -10
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +16 -9
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +6 -5
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +9 -11
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +126 -73
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +5 -4
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +2 -3
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +7 -7
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +4 -4
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +143 -40
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +22 -12
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +6 -5
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +37 -15
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +1 -1
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +1 -1
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +5 -4
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +1 -1
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +10 -5
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +20 -20
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +1 -1
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +5 -5
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +6 -4
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +1 -1
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +9 -3
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +1 -1
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +14 -22
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +1 -1
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +31 -25
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +2 -2
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +6 -4
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +32 -22
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +1 -1
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +73 -67
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +6 -4
  134. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +13 -6
  135. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +132 -10
  136. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +94 -54
  137. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +1 -1
  138. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +3 -3
  139. data/lib/sketchup-api-stubs/stubs/_top_level.rb +3 -1
  140. data/lib/sketchup-api-stubs/stubs/array.rb +1 -1
  141. data/lib/sketchup-api-stubs/stubs/geom.rb +4 -1
  142. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +1 -1
  143. data/lib/sketchup-api-stubs/stubs/length.rb +1 -1
  144. data/lib/sketchup-api-stubs/stubs/numeric.rb +1 -1
  145. data/lib/sketchup-api-stubs/stubs/sketchup.rb +66 -23
  146. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +1 -1
  147. data/lib/sketchup-api-stubs/stubs/string.rb +1 -1
  148. data/lib/sketchup-api-stubs/stubs/ui.rb +17 -12
  149. metadata +5 -3
@@ -0,0 +1,422 @@
1
+ # Copyright:: Copyright 2021 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # Allows layers to be organized in folders. Folders may have duplicate names.
5
+ #
6
+ # @api TagFolder
7
+ #
8
+ # @note As of SketchUp 2020 "Layers" were renamed to "Tags" in the UI.
9
+ # The API retains the use of "Layer" for compatibility and is synonymous with
10
+ # "Tag".
11
+ #
12
+ # @version SketchUp 2021.0
13
+ class Sketchup::LayerFolder < Sketchup::Entity
14
+
15
+ # Includes
16
+
17
+ include Comparable
18
+
19
+ # Instance Methods
20
+
21
+ # The {#<=>} method is used to compare two layer folders based on their names.
22
+ # You could use this for sorting if you're building a list of folder names.
23
+ #
24
+ # @api TagFolder
25
+ #
26
+ # @example
27
+ # model = Sketchup.active_model
28
+ # layers = model.layers
29
+ # folder1 = layers.add('Folder1')
30
+ # folder2 = layers.add('Folder2')
31
+ # comparison = folder1 <=> folder2 # Returns: -1
32
+ # comparison = folder1 <=> folder1 # Returns: 0
33
+ # comparison = folder2 <=> folder1 # Returns: 1
34
+ #
35
+ # @param [Object] other
36
+ #
37
+ # @return [Integer, nil] +-1+ if the receiver should appear before +other+.
38
+ # +1+ if the receiver should appear after +other+.
39
+ # +0+ if the receiver and +other+ are equal.
40
+ # +nil+ if +other+ is not comparable with the receiver.
41
+ #
42
+ # @version SketchUp 2021.0
43
+ def <=>(other)
44
+ end
45
+
46
+ # The {#==} method is used to determine if two layer folders are the same.
47
+ #
48
+ # @api TagFolder
49
+ #
50
+ # @example
51
+ # model = Sketchup.active_model
52
+ # layers = model.layers
53
+ # folder1 = layers.add('Folder1')
54
+ # folder2 = layers.add('Folder2')
55
+ # equal = folder1 == folder2
56
+ #
57
+ # @param [Object] other
58
+ #
59
+ # @return [Boolean]
60
+ #
61
+ # @version SketchUp 2021.0
62
+ def ==(other)
63
+ end
64
+
65
+ # The {#add_folder} method adds or moves a layer folder.
66
+ #
67
+ # @api TagFolder
68
+ #
69
+ # @example
70
+ # manager = Sketchup.active_model.layers
71
+ # folder1 = manager.add_folder('Doors')
72
+ # folder2 = folder1.add_folder('Outer Doors')
73
+ #
74
+ # @overload add_folder(name)
75
+ #
76
+ # Adds a new folder with the given name. Unlike layers, folders do not
77
+ # need to have a unique name.
78
+ # @param [String] name
79
+ #
80
+ # @overload add_folder(folder)
81
+ #
82
+ # Moves an existing {Sketchup::LayerFolder} to the receiver. This will
83
+ # include any children in the given folder.
84
+ # @param [Sketchup::LayerFolder] folder
85
+ # @see Sketchup::LayerFolder#folder= Information on how which notifications
86
+ # trigger when reparenting an existing folder.
87
+ #
88
+ # @return [Sketchup::LayerFolder]
89
+ #
90
+ # @see #count_layers
91
+ #
92
+ # @version SketchUp 2021.0
93
+ def add_folder(arg)
94
+ end
95
+
96
+ # The {#add_layer} method adds a layer to a folder.
97
+ #
98
+ # @api TagFolder
99
+ #
100
+ # @example
101
+ # manager = Sketchup.active_model.layers
102
+ # layer = manager.add_layer('Inner Doors')
103
+ # folder = manager.add_folder('Doors')
104
+ #
105
+ # folder.add_layer(layer)
106
+ #
107
+ # @param [Sketchup::Layer] layer
108
+ #
109
+ # @return [nil]
110
+ #
111
+ # @see Sketchup::Layer#folder=
112
+ # Information on how which notifications
113
+ # trigger when reparenting a layer.
114
+ #
115
+ # @version SketchUp 2021.0
116
+ def add_layer(layer)
117
+ end
118
+
119
+ # The {#count_folders} method retrieves the number of child folders in the
120
+ # folder.
121
+ #
122
+ # @api TagFolder
123
+ #
124
+ # @example
125
+ # layers = Sketchup.active_model.layers
126
+ # folder1 = layers.add_folder('Hello')
127
+ # folder2 = folder1.add_folder('World')
128
+ # number = folder1.folder_count # Returns: 1
129
+ #
130
+ # @return [Integer]
131
+ #
132
+ # @version SketchUp 2021.0
133
+ def count_folders
134
+ end
135
+
136
+ # The {#count_layers} method retrieves the number of layers in the folder.
137
+ #
138
+ # @api TagFolder
139
+ #
140
+ # @example
141
+ # layers = Sketchup.active_model.layers
142
+ # layer = layers.add_layer('World')
143
+ # folder = layers.add_folder('Hello')
144
+ # folder.add_layer(layer)
145
+ # number = folder.layer_count # Returns: 1
146
+ #
147
+ # @return [Integer]
148
+ #
149
+ # @see #size
150
+ #
151
+ # @see #length
152
+ #
153
+ # @version SketchUp 2021.0
154
+ def count_layers
155
+ end
156
+ alias_method :length, :count_layers
157
+ alias_method :size, :count_layers
158
+
159
+ # The {#each_folder} method is used to iterate through the folders that are
160
+ # direct children to the folder.
161
+ #
162
+ # @api TagFolder
163
+ #
164
+ # @example
165
+ # model = Sketchup.active_model
166
+ # layers = model.layers
167
+ # folder1 = layers.add_folder('Hello')
168
+ # folder1.add_folder('World')
169
+ # folder1.each_folder { | folder | puts folder.name }
170
+ #
171
+ # @version SketchUp 2021.0
172
+ #
173
+ # @yield [folder]
174
+ #
175
+ # @yieldparam [Sketchup::LayerFolder] folder
176
+ def each_folder
177
+ end
178
+
179
+ # The {#each_layer} method is used to iterate through the layers that are
180
+ # direct children to the folder.
181
+ #
182
+ # @api TagFolder
183
+ #
184
+ # @example
185
+ # model = Sketchup.active_model
186
+ # layers = model.layers
187
+ # layer = layers.add_layer('World')
188
+ # folder = layers.add_folder('Hello')
189
+ # folder.add_layer(layer)
190
+ # folder.each_layer { | layer | puts layer.name }
191
+ #
192
+ # @version SketchUp 2021.0
193
+ #
194
+ # @yield [layer]
195
+ #
196
+ # @yieldparam [Sketchup::Layer] layer
197
+ def each_layer
198
+ end
199
+ alias_method :each, :each_layer
200
+
201
+ # The {#folder} method is used to return the parent layer folder of a layer
202
+ # folder.
203
+ #
204
+ # @api TagFolder
205
+ #
206
+ # @example
207
+ # model = Sketchup.active_model
208
+ # layers = model.layers
209
+ # folder1 = layers.add('Folder1')
210
+ # parent_folder = folder1.folder # Returns: nil
211
+ #
212
+ # folder2 = folder1.add('Folder2')
213
+ # parent_folder = folder2.folder # Returns: folder1
214
+ #
215
+ # @return [Sketchup::LayerFolder, nil] +nil+ if the folder is a direct child to
216
+ # the layer manager.
217
+ #
218
+ # @version SketchUp 2021.0
219
+ def folder
220
+ end
221
+
222
+ # The {#folder=} method is used to set the parent layer folder of a layer
223
+ # folder.
224
+ #
225
+ # This will trigger +onLayerFolderRemoved+ followed by +onLayerFolderAdded+.
226
+ #
227
+ # @api TagFolder
228
+ #
229
+ # @example
230
+ # model = Sketchup.active_model
231
+ # layers = model.layers
232
+ # folder1 = layers.add('Folder1')
233
+ # folder2 = layers.add('Folder2')
234
+ #
235
+ # folder2.folder = folder1
236
+ #
237
+ # @param [Sketchup::LayerFolder, nil] parent
238
+ # +nil+ will make the the folder a
239
+ # direct child to the layer manager.
240
+ #
241
+ # @version SketchUp 2021.0
242
+ def folder=(parent)
243
+ end
244
+
245
+ # The {#folders} returns the direct child-folders of the folder.
246
+ #
247
+ # @api TagFolder
248
+ #
249
+ # @example
250
+ # manager = Sketchup.active_model.layers
251
+ # folder1 = manager.add_folder('Doors')
252
+ # folder2 = folder1.add_folder('Windows')
253
+ # folders = folder1.folders
254
+ #
255
+ # @return [Array<Sketchup::LayerFolder>]
256
+ #
257
+ # @version SketchUp 2021.0
258
+ def folders
259
+ end
260
+
261
+ # The {#layers} method retrieves the child layers of a folder.
262
+ #
263
+ # @api TagFolder
264
+ #
265
+ # @example
266
+ # manager = Sketchup.active_model.layers
267
+ # folder = manager.add_folder('Hello')
268
+ # folder.add_layer(manager.add_layer('World'))
269
+ # folder.add_layer(manager.add_layer('Universe'))
270
+ #
271
+ # layers = folder.layers
272
+ #
273
+ # @return [Array<Sketchup::Layer>]
274
+ #
275
+ # @version SketchUp 2021.0
276
+ def layers
277
+ end
278
+
279
+ # The {#name} method gets the name of the folder.
280
+ #
281
+ # @api TagFolder
282
+ #
283
+ # @example
284
+ # manager = Sketchup.active_model.layers
285
+ # folder = manager.add_folder('Doors')
286
+ # name = folder.name
287
+ #
288
+ # @return [String]
289
+ #
290
+ # @version SketchUp 2021.0
291
+ def name
292
+ end
293
+ alias_method :display_name, :name
294
+
295
+ # The {#name=} method sets the name of the folder.
296
+ #
297
+ # @api TagFolder
298
+ #
299
+ # @example
300
+ # manager = Sketchup.active_model.layers
301
+ # folder = manager.add_folder('Doors')
302
+ # folder.name = 'Windows'
303
+ #
304
+ # @param [String] name
305
+ #
306
+ # @raise [ArgumentError] if +name+ is empty.
307
+ #
308
+ # @version SketchUp 2021.0
309
+ def name=(name)
310
+ end
311
+
312
+ # The {#remove_folder} method removes the folder from the model. All children
313
+ # are preserved, but move up one level.
314
+ #
315
+ # @api TagFolder
316
+ #
317
+ # @example
318
+ # manager = Sketchup.active_model.layers
319
+ # folder1 = manager.add_folder('Doors')
320
+ # folder2 = manager.add_folder('Outer Doors')
321
+ # folder1.remove_folder(folder2)
322
+ #
323
+ # @param [Sketchup::LayerFolder] folder
324
+ #
325
+ # @raise [ArgumentError] if the +folder+ is not a direct child of the receiver.
326
+ #
327
+ # @return [nil]
328
+ #
329
+ # @version SketchUp 2021.0
330
+ def remove_folder(folder)
331
+ end
332
+
333
+ # The {#remove_layer} method removes a layer from a folder. The layer will be
334
+ # parent to the layer manager.
335
+ #
336
+ # @api TagFolder
337
+ #
338
+ # @example
339
+ # manager = Sketchup.active_model.layers
340
+ # layer = manager.add_layer('Inner Doors')
341
+ # folder = manager.add_folder('Doors')
342
+ # folder.add_layer(layer)
343
+ #
344
+ # folder.remove_layer(layer)
345
+ #
346
+ # @param [Sketchup::Layer] layer
347
+ #
348
+ # @return [nil]
349
+ #
350
+ # @version SketchUp 2021.0
351
+ def remove_layer(layer)
352
+ end
353
+
354
+ # The {#visible=} method is used to set if the layer folder is visible.
355
+ #
356
+ # @api TagFolder
357
+ #
358
+ # @example
359
+ # model = Sketchup.active_model
360
+ # layers = model.layers
361
+ # folder = layers.add('Hello')
362
+ # folder.visible = false
363
+ #
364
+ # @param [Boolean] visible
365
+ #
366
+ # @version SketchUp 2021.0
367
+ def visible=(visible)
368
+ end
369
+
370
+ # The {#visible?} method is used to determine if the layer folder is visible.
371
+ #
372
+ # @api TagFolder
373
+ #
374
+ # @example
375
+ # model = Sketchup.active_model
376
+ # layers = model.layers
377
+ # folder = layers.add('Hello')
378
+ # folder.visible? # Returns: true
379
+ #
380
+ # @return [Boolean]
381
+ #
382
+ # @version SketchUp 2021.0
383
+ def visible?
384
+ end
385
+
386
+ # The {#visible_on_new_pages=} method is used to set if the layer folder is by
387
+ # default visible on new pages.
388
+ #
389
+ # @api TagFolder
390
+ #
391
+ # @example
392
+ # model = Sketchup.active_model
393
+ # layers = model.layers
394
+ # folder = layers.add_folder('Hello')
395
+ # folder.visible_on_new_pages = false
396
+ # page = model.pages.add('My Page')
397
+ # model.pages.select_page = page # `folder` will now be hidden.
398
+ #
399
+ # @param [Boolean] visible
400
+ #
401
+ # @version SketchUp 2021.0
402
+ def visible_on_new_pages=(visible)
403
+ end
404
+
405
+ # The {#visible_on_new_pages?} method is used to determine if the layer folder
406
+ # is by default visible on new pages.
407
+ #
408
+ # @api TagFolder
409
+ #
410
+ # @example
411
+ # model = Sketchup.active_model
412
+ # layers = model.layers
413
+ # folder = layers.add_folder('Hello')
414
+ # folder.visible_on_new_pages? # Returns: true
415
+ #
416
+ # @return [Boolean]
417
+ #
418
+ # @version SketchUp 2021.0
419
+ def visible_on_new_pages?
420
+ end
421
+
422
+ end
@@ -1,4 +1,4 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
1
+ # Copyright:: Copyright 2021 Trimble Inc.
2
2
  # License:: The MIT License (MIT)
3
3
 
4
4
  # The Layers collection allows you to see and manage all of the layers in a
@@ -8,6 +8,10 @@
8
8
  # model = Sketchup.active_model
9
9
  # layers = model.layers
10
10
  #
11
+ # @note As of SketchUp 2020 "Layers" were renamed to "Tags" in the UI.
12
+ # The API retains the use of "Layer" for compatibility and is synonymous with
13
+ # "Tag".
14
+ #
11
15
  # @version SketchUp 6.0
12
16
  class Sketchup::Layers < Sketchup::Entity
13
17
 
@@ -38,7 +42,7 @@ class Sketchup::Layers < Sketchup::Entity
38
42
  def [](index_or_name)
39
43
  end
40
44
 
41
- # The add method is used to add a new layer.
45
+ # The {#add} method is used to add a new layer.
42
46
  #
43
47
  # If you give the name of a Layer that is already defined, it will return the
44
48
  # existing Layer rather than adding a new one.
@@ -47,25 +51,56 @@ class Sketchup::Layers < Sketchup::Entity
47
51
  # layers = Sketchup.active_model.layers
48
52
  # layer = layers.add("Test Layer")
49
53
  #
50
- # @param layer_name
54
+ # @param [String] layer_name
51
55
  # The name of the added layer.
52
56
  #
53
- # @return layer - the new Layer object
57
+ # @return [Sketchup::Layer]
54
58
  #
55
59
  # @version SketchUp 6.0
56
60
  def add(layer_name)
57
61
  end
62
+ alias_method :add_layer, :add
58
63
 
59
- # The add_observer method is used to add an observer to the layers collection.
64
+ # The {#add_folder} method adds or moves a layer folder.
65
+ #
66
+ # @api TagFolder
67
+ #
68
+ # @example
69
+ # manager = Sketchup.active_model.layers
70
+ # folder = manager.add_folder('Doors')
71
+ #
72
+ # @overload add_folder(name)
73
+ #
74
+ # Adds a new folder with the given name. Unlike layers, folders do not
75
+ # need to have a unique name. But the name does have to be non-empty.
76
+ # @param [String] name
77
+ #
78
+ # @overload add_folder(folder)
79
+ #
80
+ # Moves an existing {Sketchup::LayerFolder} to the receiver. This will
81
+ # include any children in the given folder.
82
+ # @param [Sketchup::LayerFolder] folder
83
+ # @see Sketchup::LayerFolder#folder= Information on how which notifications
84
+ # trigger when reparenting an existing folder.
85
+ #
86
+ # @return [Sketchup::LayerFolder]
87
+ #
88
+ # @see #count_layers
89
+ #
90
+ # @version SketchUp 2021.0
91
+ def add_folder(arg)
92
+ end
93
+
94
+ # The {#add_observer} method is used to add an observer to the layers
95
+ # collection.
60
96
  #
61
97
  # @example
62
98
  # layers = Sketchup.active_model.layers
63
99
  # status = layers.add_observer observer
64
100
  #
65
- # @param observer
66
- # An observer.
101
+ # @param [Sketchup::LayersObserver] observer
67
102
  #
68
- # @return success - true if successful, false if unsuccessful.
103
+ # @return [Boolean] true if successful, false if unsuccessful.
69
104
  #
70
105
  # @version SketchUp 6.0
71
106
  def add_observer(observer)
@@ -105,20 +140,135 @@ class Sketchup::Layers < Sketchup::Entity
105
140
  def count
106
141
  end
107
142
 
108
- # The each method is used to iterate through all of the layers.
143
+ # The {#count_folders} method counts the number of folders which are direct
144
+ # children of the layer manager.
145
+ #
146
+ # @api TagFolder
147
+ #
148
+ # @example
149
+ # manager = Sketchup.active_model.layers
150
+ # folder = manager.add_folder('Doors')
151
+ # num_folders = manager.count_folders
152
+ #
153
+ # @return [Integer]
154
+ #
155
+ # @version SketchUp 2021.0
156
+ def count_folders
157
+ end
158
+
159
+ # The {#count_layers} method retrieves the number of layers not in a folder.
160
+ #
161
+ # @api TagFolder
162
+ #
163
+ # @example
164
+ # layers = Sketchup.active_model.layers
165
+ # number = layers.count_layers
166
+ #
167
+ # @return [Integer]
168
+ #
169
+ # @see #size
170
+ #
171
+ # @see #length
172
+ #
173
+ # @version SketchUp 2021.0
174
+ def count_layers
175
+ end
176
+
177
+ # The {#each} method is used to iterate through all of the layers in the model.
178
+ # This include layers that are nested inside folders.
109
179
  #
110
180
  # @example
111
181
  # model = Sketchup.active_model
112
182
  # layers = model.layers
113
- # layers.add("test layer")
183
+ # layers.add("Test layer")
114
184
  # layers.each { | layer | puts layer.name }
115
185
  #
186
+ # @note Don't remove content from this collection while iterating over it with
187
+ # {#each}. This would change the size of the collection and cause elements to
188
+ # be skipped as the indices change. Instead copy the current collection to an
189
+ # array using +to_a+ and then use +each+ on the array, when removing content.
190
+ #
116
191
  # @version SketchUp 6.0
117
192
  #
118
- # @yield [layer] - a variable that will hold each Layer object as they are found.
193
+ # @yield [layer]
194
+ #
195
+ # @yieldparam [Sketchup::Layer] layer
119
196
  def each
120
197
  end
121
198
 
199
+ # The {#each_folder} method is used to iterate through the folders that are
200
+ # direct children to the layer manager.
201
+ #
202
+ # @api TagFolder
203
+ #
204
+ # @example
205
+ # manager = Sketchup.active_model.layers
206
+ # folder = manager.add_folder('Doors')
207
+ # folder = manager.add_folder('Windows')
208
+ # manager.each_folder { |folder|
209
+ # puts folder.name
210
+ # }
211
+ #
212
+ # @version SketchUp 2021.0
213
+ #
214
+ # @yield [folder]
215
+ #
216
+ # @yieldparam [Sketchup::LayerFolder] folder
217
+ def each_folder
218
+ end
219
+
220
+ # The {#each_layer} method is used to iterate through the layers that are not
221
+ # inside a layer folder.
222
+ #
223
+ # @api TagFolder
224
+ #
225
+ # @example
226
+ # model = Sketchup.active_model
227
+ # layers = model.layers
228
+ # layers.add('Test layer')
229
+ # layers.each_layer { | layer | puts layer.name }
230
+ #
231
+ # @version SketchUp 2021.0
232
+ #
233
+ # @yield [layer]
234
+ #
235
+ # @yieldparam [Sketchup::Layer] layer
236
+ def each_layer
237
+ end
238
+
239
+ # The {#folders} method returns the folders of the layer manager.
240
+ #
241
+ # @api TagFolder
242
+ #
243
+ # @example
244
+ # manager = Sketchup.active_model.layers
245
+ # manager.add_folder('Doors')
246
+ # manager.add_folder('Windows')
247
+ # folders = manager.folders
248
+ #
249
+ # @note This does not return all the folders in the model, only those that are
250
+ # direct children of the layer manager.
251
+ #
252
+ # @return [Array<Sketchup::LayerFolder>]
253
+ #
254
+ # @version SketchUp 2021.0
255
+ def folders
256
+ end
257
+
258
+ # The {#layers} method retrieves the layers not in a folder.
259
+ #
260
+ # @api TagFolder
261
+ #
262
+ # @example
263
+ # manager = Sketchup.active_model.layers
264
+ # layers = manager.layers
265
+ #
266
+ # @return [Array<Sketchup::Layer>]
267
+ #
268
+ # @version SketchUp 2021.0
269
+ def layers
270
+ end
271
+
122
272
  # The {#length} method retrieves the number of layers.
123
273
  #
124
274
  # @example
@@ -133,17 +283,39 @@ class Sketchup::Layers < Sketchup::Entity
133
283
  def length
134
284
  end
135
285
 
136
- # The purged_unused method is used to remove unused layers.
286
+ # The {#purge_unused} method is used to remove unused layers.
137
287
  #
138
288
  # @example
139
289
  # layers = Sketchup.active_model.layers
140
- # status = layers.purge_unused
290
+ # num_layers_removed = layers.purge_unused
291
+ #
292
+ # @return [Integer] Number of unused layers removed
141
293
  #
142
- # @return success - true if successful, false if unsuccessful.
294
+ # @see #purge_unused_folders
143
295
  #
144
296
  # @version SketchUp 6.0
145
297
  def purge_unused
146
298
  end
299
+ alias_method :purge_unused_layers, :purge_unused
300
+
301
+ # The {#purge_unused_folders} method is used to remove all layer folder with
302
+ # no children.
303
+ #
304
+ # @api TagFolder
305
+ #
306
+ # @example
307
+ # manager = Sketchup.active_model.layers
308
+ # folder = manager.add_folder('Doors')
309
+ # folder = manager.add_folder('Windows')
310
+ # manager.purge_unused_folders
311
+ #
312
+ # @version SketchUp 2021.0
313
+ #
314
+ # @yield [folder]
315
+ #
316
+ # @yieldparam [Sketchup::LayerFolder] folder
317
+ def purge_unused_folders
318
+ end
147
319
 
148
320
  # Remove the given layer from the model, optionally removing the geometry.
149
321
  #
@@ -164,31 +336,50 @@ class Sketchup::Layers < Sketchup::Entity
164
336
  # edge.layer = Sketchup.active_model.layers.add("MyLayer")
165
337
  # Sketchup.active_model.layers.remove("MyLayer", true)
166
338
  #
167
- # @param layer
168
- # Integer index, String name or Layer
339
+ # @param [Sketchup::Layer, Integer, String] layer
169
340
  #
170
- # @param remove_geometry
171
- # Boolean - If true, geometry in the removed layer will
341
+ # @param [Boolean] remove_geometry
342
+ # If true, geometry in the removed layer will
172
343
  # be removed as well. If false (which is the default),
173
344
  # this geometry will be placed on Layer 0.
174
345
  #
175
- # @return boolean - true if successful, false if unsuccessful.
346
+ # @return [Boolean] true if successful, false if unsuccessful.
176
347
  #
177
348
  # @version SketchUp 2015
178
349
  def remove(layer, remove_geometry = false)
179
350
  end
351
+ alias_method :remove_layer, :remove
180
352
 
181
- # The remove_observer method is used to remove an observer from the current
353
+ # The {#remove_folder} method removes the folder from the model. All children are
354
+ # preserved, but moved up one level.
355
+ #
356
+ # @api TagFolder
357
+ #
358
+ # @example
359
+ # manager = Sketchup.active_model.layers
360
+ # folder = manager.add_folder('Doors')
361
+ # manager.remove_folder(folder)
362
+ #
363
+ # @param [Sketchup::LayerFolder] folder
364
+ #
365
+ # @raise [ArgumentError] if the +folder+ is not a direct child of the receiver.
366
+ #
367
+ # @return [nil]
368
+ #
369
+ # @version SketchUp 2021.0
370
+ def remove_folder(folder)
371
+ end
372
+
373
+ # The {#remove_observer} method is used to remove an observer from the current
182
374
  # object.
183
375
  #
184
376
  # @example
185
377
  # layers = Sketchup.active_model.layers
186
378
  # status = layers.remove_observer observer
187
379
  #
188
- # @param observer
189
- # An observer.
380
+ # @param [Sketchup::LayersObserver] observer
190
381
  #
191
- # @return success - true if successful, false if unsuccessful.
382
+ # @return [Boolean] true if successful, false if unsuccessful.
192
383
  #
193
384
  # @version SketchUp 6.0
194
385
  def remove_observer(observer)
@@ -208,7 +399,7 @@ class Sketchup::Layers < Sketchup::Entity
208
399
  def size
209
400
  end
210
401
 
211
- # The unique_name method can be used to get a string that will be a unique
402
+ # The {#unique_name} method can be used to get a string that will be a unique
212
403
  # layer name inside this collection.
213
404
  #
214
405
  # @example
@@ -217,15 +408,20 @@ class Sketchup::Layers < Sketchup::Entity
217
408
  # # Will return "Joe" since there are probably no other layers named that.
218
409
  # # Or might return something like "Joe #2" if there is already a layer
219
410
  # # named Joe.
220
- # good_name = layers.unique_name "Joe"
411
+ # good_name = layers.unique_name("Joe")
412
+ #
413
+ # @overload unique_name
414
+ #
415
+ # @return [String] Will default to using "Layer" (SketchUp2019 and older)
416
+ # or "Tag" as basename for a unique name.
221
417
  #
222
- # @param [optional] base_name
223
- # The base name to build the unique name from.
418
+ # @overload unique_name(base_name)
224
419
  #
225
- # @return name - the unique name
420
+ # @param [String] base_name The base name to build the unique name from.
421
+ # @return [String]
226
422
  #
227
423
  # @version SketchUp 6.0
228
- def unique_name(base_name)
424
+ def unique_name(*args)
229
425
  end
230
426
 
231
427
  end