sketchup-api-stubs 0.7.9 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,361 +1,388 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Pages class contains methods for manipulating a collection of Pages
5
- # (Named "scenes" in the UI.) in a model.
6
- #
7
- # You get a handle to this collection by calling Model.pages.
8
- #
9
- # @example
10
- # model = Sketchup.active_model
11
- # pages = model.pages
12
- #
13
- # @version SketchUp 6.0
14
- class Sketchup::Pages < Sketchup::Entity
15
-
16
- # Includes
17
-
18
- include Enumerable
19
-
20
- # Constants
21
-
22
- ImageEmbedded = nil # Stub value.
23
- ImageEmbeddedAndLinked = nil # Stub value.
24
- ImageLinked = nil # Stub value.
25
-
26
- UnitsNormalizedX = nil # Stub value.
27
- UnitsNormalizedY = nil # Stub value.
28
- UnitsPixels = nil # Stub value.
29
-
30
- # Class Methods
31
-
32
- # The {.add_frame_change_observer} method is used to add a new frame change
33
- # observer that is called with each frame of an animation, meaning the
34
- # end user has clicked on a Scene tab (aka Page) inside SketchUp and
35
- # the camera is animating to that scene.
36
- #
37
- # The method returns an integer id that can be stored and later used to remove
38
- # the observer with the {Sketchup::Pages.remove_frame_change_observer} method.
39
- #
40
- # @example
41
- # class MyFrameChangeObserver
42
- # def frameChange(from_page, to_page, percent_done)
43
- # puts "From page #{from_page.name} to #{to_page.name} (#{percent_done * 100}%)"
44
- # end
45
- # end
46
- # id = Sketchup::Pages.add_frame_change_observer(MyFrameChangeObserver.new)
47
- #
48
- # @param [#frameChange] object
49
- # An object that implements the
50
- # {Sketchup::FrameChangeObserver#frameChange} method.
51
- #
52
- # @return [Integer] A unique id of the observer
53
- #
54
- # @see Sketchup::FrameChangeObserver#frameChange
55
- #
56
- # @version SketchUp 6.0
57
- def self.add_frame_change_observer(object)
58
- end
59
-
60
- # The {.remove_frame_change_observer} method is used to remove a frame change
61
- # observer
62
- #
63
- # @example
64
- # Sketchup::Pages.remove_frame_change_observer(id)
65
- #
66
- # @param [Integer] observer_id
67
- # The unique id returned by {.add_frame_change_observer}
68
- #
69
- # @return [Boolean]
70
- #
71
- # @version SketchUp 6.0
72
- def self.remove_frame_change_observer(observer_id)
73
- end
74
-
75
- # Instance Methods
76
-
77
- # The [] method retrieves a page by either name or index.
78
- #
79
- # @example
80
- # model = Sketchup.active_model
81
- # pages = model.pages
82
- # status = pages.add "Page 1"
83
- # status = pages.add "Page 2"
84
- # page = pages["Page 2"]
85
- # if (page)
86
- # UI.messagebox page
87
- # else
88
- # UI.messagebox "Failure"
89
- # end
90
- #
91
- # @param index_or_name
92
- # The index or the string name of the specific page.
93
- #
94
- # @return page - a Page object if successful
95
- #
96
- # @version SketchUp 6.0
97
- def [](index_or_name)
98
- end
99
-
100
- # The {#add} method is used to add a new Page object to the collection.
101
- #
102
- # If no name is given, then a new name is generated using the default name for
103
- # new Pages. If a name is given, then a new Page with that name is
104
- # added.
105
- #
106
- # If the flags parameter is given, it controls which properties are saved with
107
- # the Page. See the {Page#update} method for a description of the flags that
108
- # can be set.
109
- #
110
- # If index is given, it specifies the position in the page list that the new
111
- # page is added. Otherwise the new page is added to the end.
112
- #
113
- # @example
114
- # model = Sketchup.active_model
115
- # pages = model.pages
116
- # status = pages.add "Page 1"
117
- # status = pages.add "Page 2"
118
- # if (status)
119
- # UI.messagebox status
120
- # else
121
- # UI.messagebox "Failure"
122
- # end
123
- #
124
- # @param [String] name
125
- # The name of the specific page.
126
- #
127
- # @param [Integer] flags
128
- # Bit flags in integer form.
129
- #
130
- # @param [Integer] index
131
- # Index of where to inset.
132
- #
133
- # @return [Sketchup::Page]
134
- #
135
- # @version SketchUp 6.0
136
- def add(name = nil, flags = PAGE_USE_ALL, index = self.size)
137
- end
138
-
139
- # The {#add_matchphoto_page} method is used to add a photomatch page to the
140
- # model. This is an advanced feature that was added to support internal
141
- # SketchUp work, so it is unlikely to be useful to you.
142
- #
143
- # @example
144
- # pages = Sketchup.active_model.pages
145
- # page = pages.add_matchphoto_page("/path/to/image.png")
146
- #
147
- # @param [String] image_filename
148
- # The image file to use as the background.
149
- #
150
- # @param [Sketchup::Camera] camera
151
- #
152
- # @param [String] page_name
153
- #
154
- # @return [Sketchup::Page]
155
- #
156
- # @version SketchUp 7.0
157
- def add_matchphoto_page(image_filename, camera = nil, page_name = nil)
158
- end
159
-
160
- # The add_observer method is used to add an observer to the Pages object.
161
- # See the PagesObserver interface for more details.
162
- #
163
- # @example
164
- # pages = Sketchup.active_model.pages
165
- # status = pages.add_observer observer
166
- #
167
- # @param observer
168
- # An observer.
169
- #
170
- # @return true if successful, false if unsuccessful.
171
- #
172
- # @version SketchUp 6.0
173
- def add_observer(observer)
174
- end
175
-
176
- #
177
- # @example
178
- # pages = Sketchup.active_model.pages
179
- # pages.add('Page 1')
180
- # pages.add('Page 2')
181
- # number = pages.count
182
- #
183
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
184
- # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
185
- # for {#length}.
186
- #
187
- # @return [Integer]
188
- #
189
- # @see #length
190
- #
191
- # @version SketchUp 6.0
192
- def count
193
- end
194
-
195
- # The {#each} method is used to iterate through pages in the model.
196
- #
197
- # @example
198
- # model = Sketchup.active_model
199
- # pages = model.pages
200
- # pages.add("Page 1")
201
- # pages.add("Page 2")
202
- # pages.each { |page| puts page.name }
203
- #
204
- # @return [nil]
205
- #
206
- # @version SketchUp 6.0
207
- #
208
- # @yieldparam [Sketchup::Page] page
209
- def each
210
- end
211
-
212
- # The {#erase} method is used to remove a page from the collection.
213
- #
214
- # @example
215
- # page = Sketchup.active_model.pages.add('Hello World')
216
- # Sketchup.active_model.pages.erase(page)
217
- #
218
- # @param [Sketchup::Page] page
219
- #
220
- # @return [Boolean]
221
- #
222
- # @version SketchUp 6.0
223
- def erase(page)
224
- end
225
-
226
- # The {#length} method is an alias for {#size}.
227
- #
228
- # @example
229
- # pages = Sketchup.active_model.pages
230
- # pages.add('Page 1')
231
- # pages.add('Page 2')
232
- # number = pages.length
233
- #
234
- # @return [Integer]
235
- #
236
- # @see #size
237
- #
238
- # @version SketchUp 2014
239
- def length
240
- end
241
-
242
- # The parent method is used to determine the model for the Pages collection.
243
- #
244
- # @example
245
- # model = Sketchup.active_model
246
- # pages = model.pages
247
- # status = pages.add "Page 1"
248
- # status = pages.add "Page 2"
249
- # model = pages.parent
250
- #
251
- # @return model - the model that contains the pages if successful
252
- #
253
- # @version SketchUp 6.0
254
- def parent
255
- end
256
-
257
- # The remove_observer method is used to remove an observer from the current
258
- # object. See the PagesObserver interface for more details.
259
- #
260
- # @example
261
- # pages = Sketchup.active_model.pages
262
- # status = pages.remove_observer observer
263
- #
264
- # @param observer
265
- # An observer.
266
- #
267
- # @return true if successful, false if unsuccessful.
268
- #
269
- # @version SketchUp 6.0
270
- def remove_observer(observer)
271
- end
272
-
273
- # The selected_page method is used to retrieve the currently selected page.
274
- #
275
- # @example
276
- # model = Sketchup.active_model
277
- # pages = model.pages
278
- # status = pages.add "Page 1"
279
- # status = pages.add "Page 2"
280
- # page = pages.selected_page
281
- #
282
- # @return page - the currently selected Page object if successful
283
- #
284
- # @version SketchUp 6.0
285
- def selected_page
286
- end
287
-
288
- # The selected_page method is used to set the currently selected page. Once
289
- # you set this, SketchUp will animate to that page as if the user had clicked
290
- # on its scene tab.
291
- #
292
- # @example
293
- # model = Sketchup.active_model
294
- # pages = model.pages
295
- # status = pages.add "Page 1"
296
- # status = pages.add "Page 2"
297
- # pages.selected_page = model.pages[1]
298
- #
299
- # @param [Sketchup::Page] page
300
- #
301
- # @return status - true if successful
302
- #
303
- # @version SketchUp 6.0
304
- def selected_page=(page)
305
- end
306
-
307
- # The {#show_frame_at} method is used to show a frame in animation (of the
308
- # slide show) at a given time in seconds.
309
- #
310
- # @example
311
- # model = Sketchup.active_model
312
- # pages = model.pages
313
- # pages.add("Page 1")
314
- # pages.add("Page 2")
315
- # page, ratio = pages.show_frame_at(1.8)
316
- #
317
- # @note In versions prior to SketchUp 2019 this method will crash if called
318
- # when there are no pages in the model.
319
- #
320
- # @param [Float] seconds
321
- # The time in seconds.
322
- #
323
- # @return [Array(Sketchup::Page, Float), nil] Upon success it returns the
324
- # page that is displayed and a parameter between +0.0+ and +1.0+ that is
325
- # tells how far along the transition to next page you are at.
326
- #
327
- # @version SketchUp 6.0
328
- def show_frame_at(seconds)
329
- end
330
-
331
- # The {#size} method is used to retrieve the number of pages.
332
- #
333
- # @example
334
- # pages = Sketchup.active_model.pages
335
- # pages.add('Page 1')
336
- # pages.add('Page 2')
337
- # number = pages.size
338
- #
339
- # @return [Integer]
340
- #
341
- # @see #length
342
- #
343
- # @version SketchUp 6.0
344
- def size
345
- end
346
-
347
- # The slideshow_time method is used to get the amount of time that a slideshow
348
- # of all of the pages will take. This takes into account the transition time
349
- # for each Page and the amount of time that each Page is displayed.
350
- #
351
- # @example
352
- # pages = Sketchup.active_model.pages
353
- # time = pages.slideshow_time
354
- #
355
- # @return status - true if successful
356
- #
357
- # @version SketchUp 6.0
358
- def slideshow_time
359
- end
360
-
361
- end
1
+ # Copyright:: Copyright 2026 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Pages class contains methods for manipulating a collection of Pages
5
+ # (Named "scenes" in the UI.) in a model.
6
+ #
7
+ # You get a handle to this collection by calling Model.pages.
8
+ #
9
+ # @example
10
+ # model = Sketchup.active_model
11
+ # pages = model.pages
12
+ #
13
+ # @version SketchUp 6.0
14
+ class Sketchup::Pages < Sketchup::Entity
15
+
16
+ # Includes
17
+
18
+ include Enumerable
19
+
20
+ # Class Methods
21
+
22
+ # The {.add_frame_change_observer} method is used to add a new frame change
23
+ # observer that is called with each frame of an animation, meaning the
24
+ # end user has clicked on a Scene tab (aka Page) inside SketchUp and
25
+ # the camera is animating to that scene.
26
+ #
27
+ # The method returns an integer id that can be stored and later used to remove
28
+ # the observer with the {Sketchup::Pages.remove_frame_change_observer} method.
29
+ #
30
+ # @example
31
+ # class MyFrameChangeObserver
32
+ # def frameChange(from_page, to_page, percent_done)
33
+ # puts "From page #{from_page.name} to #{to_page.name} (#{percent_done * 100}%)"
34
+ # end
35
+ # end
36
+ # id = Sketchup::Pages.add_frame_change_observer(MyFrameChangeObserver.new)
37
+ #
38
+ # @param [#frameChange] object
39
+ # An object that implements the
40
+ # {Sketchup::FrameChangeObserver#frameChange} method.
41
+ #
42
+ # @return [Integer] A unique id of the observer
43
+ #
44
+ # @see Sketchup::FrameChangeObserver#frameChange
45
+ #
46
+ # @version SketchUp 6.0
47
+ def self.add_frame_change_observer(object)
48
+ end
49
+
50
+ # The {.remove_frame_change_observer} method is used to remove a frame change
51
+ # observer
52
+ #
53
+ # @example
54
+ # Sketchup::Pages.remove_frame_change_observer(id)
55
+ #
56
+ # @param [Integer] observer_id
57
+ # The unique id returned by {.add_frame_change_observer}
58
+ #
59
+ # @return [Boolean]
60
+ #
61
+ # @version SketchUp 6.0
62
+ def self.remove_frame_change_observer(observer_id)
63
+ end
64
+
65
+ # Instance Methods
66
+
67
+ # The [] method retrieves a page by either name or index.
68
+ #
69
+ # @example
70
+ # model = Sketchup.active_model
71
+ # pages = model.pages
72
+ # status = pages.add "Page 1"
73
+ # status = pages.add "Page 2"
74
+ # page = pages["Page 2"]
75
+ #
76
+ # @param index_or_name
77
+ # The index or the string name of the specific page.
78
+ #
79
+ # @return page - a Page object if successful
80
+ #
81
+ # @version SketchUp 6.0
82
+ def [](index_or_name)
83
+ end
84
+
85
+ # The {#add} method is used to add a new Page object to the collection.
86
+ #
87
+ # If no name is given, then a new name is generated using the default name for
88
+ # new Pages. If a name is given, then a new Page with that name is
89
+ # added.
90
+ #
91
+ # If the name is already used by another page, a unique name is created.
92
+ #
93
+ # If the flags parameter is given, it controls which properties are saved with
94
+ # the Page. See the {Page#update} method for a description of the flags that
95
+ # can be set.
96
+ #
97
+ # If index is given, it specifies the position in the page list that the new
98
+ # page is added. Otherwise the new page is added to the end.
99
+ #
100
+ # @bug Prior to SketchUp 2026.0 this method didn't make the name unique.
101
+ #
102
+ # @example
103
+ # model = Sketchup.active_model
104
+ # pages = model.pages
105
+ # status = pages.add "Page 1"
106
+ # status = pages.add "Page 2"
107
+ #
108
+ # @param [String] name
109
+ # The name of the specific page.
110
+ #
111
+ # @param [Integer] flags
112
+ # Bit flags in integer form.
113
+ #
114
+ # @param [Integer] index
115
+ # Index of where to inset.
116
+ #
117
+ # @return [Sketchup::Page]
118
+ #
119
+ # @version SketchUp 6.0
120
+ def add(name = nil, flags = PAGE_USE_ALL, index = self.size)
121
+ end
122
+
123
+ # The {#add_matchphoto_page} method is used to add a photomatch page to the
124
+ # model. This is an advanced feature that was added to support internal
125
+ # SketchUp work, so it is unlikely to be useful to you.
126
+ #
127
+ # @example
128
+ # pages = Sketchup.active_model.pages
129
+ # page = pages.add_matchphoto_page("/path/to/image.png")
130
+ #
131
+ # @param [String] image_filename
132
+ # The image file to use as the background.
133
+ #
134
+ # @param [Sketchup::Camera] camera
135
+ #
136
+ # @param [String] page_name
137
+ #
138
+ # @return [Sketchup::Page]
139
+ #
140
+ # @version SketchUp 7.0
141
+ def add_matchphoto_page(image_filename, camera = nil, page_name = nil)
142
+ end
143
+
144
+ # The add_observer method is used to add an observer to the Pages object.
145
+ # See the PagesObserver interface for more details.
146
+ #
147
+ # @example
148
+ # pages = Sketchup.active_model.pages
149
+ # status = pages.add_observer observer
150
+ #
151
+ # @param observer
152
+ # An observer.
153
+ #
154
+ # @return true if successful, false if unsuccessful.
155
+ #
156
+ # @version SketchUp 6.0
157
+ def add_observer(observer)
158
+ end
159
+
160
+ #
161
+ # @example
162
+ # pages = Sketchup.active_model.pages
163
+ # pages.add('Page 1')
164
+ # pages.add('Page 2')
165
+ # number = pages.count
166
+ #
167
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
168
+ # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
169
+ # for {#length}.
170
+ #
171
+ # @return [Integer]
172
+ #
173
+ # @see #length
174
+ #
175
+ # @version SketchUp 6.0
176
+ def count
177
+ end
178
+
179
+ # The {#each} method is used to iterate through pages in the model.
180
+ #
181
+ # @example
182
+ # model = Sketchup.active_model
183
+ # pages = model.pages
184
+ # pages.add("Page 1")
185
+ # pages.add("Page 2")
186
+ # pages.each { |page| puts page.name }
187
+ #
188
+ # @return [nil]
189
+ #
190
+ # @version SketchUp 6.0
191
+ #
192
+ # @yieldparam [Sketchup::Page] page
193
+ def each
194
+ end
195
+
196
+ # The {#erase} method is used to remove a page from the collection.
197
+ #
198
+ # @example
199
+ # page = Sketchup.active_model.pages.add('Hello World')
200
+ # Sketchup.active_model.pages.erase(page)
201
+ #
202
+ # @param [Sketchup::Page] page
203
+ #
204
+ # @return [Boolean]
205
+ #
206
+ # @version SketchUp 6.0
207
+ def erase(page)
208
+ end
209
+
210
+ # The {#length} method is an alias for {#size}.
211
+ #
212
+ # @example
213
+ # pages = Sketchup.active_model.pages
214
+ # pages.add('Page 1')
215
+ # pages.add('Page 2')
216
+ # number = pages.length
217
+ #
218
+ # @return [Integer]
219
+ #
220
+ # @see #size
221
+ #
222
+ # @version SketchUp 2014
223
+ def length
224
+ end
225
+
226
+ # The parent method is used to determine the model for the Pages collection.
227
+ #
228
+ # @example
229
+ # model = Sketchup.active_model
230
+ # pages = model.pages
231
+ # status = pages.add "Page 1"
232
+ # status = pages.add "Page 2"
233
+ # model = pages.parent
234
+ #
235
+ # @return model - the model that contains the pages if successful
236
+ #
237
+ # @version SketchUp 6.0
238
+ def parent
239
+ end
240
+
241
+ # The remove_observer method is used to remove an observer from the current
242
+ # object. See the PagesObserver interface for more details.
243
+ #
244
+ # @example
245
+ # pages = Sketchup.active_model.pages
246
+ # status = pages.remove_observer observer
247
+ #
248
+ # @param observer
249
+ # An observer.
250
+ #
251
+ # @return true if successful, false if unsuccessful.
252
+ #
253
+ # @version SketchUp 6.0
254
+ def remove_observer(observer)
255
+ end
256
+
257
+ # The {#reorder} method is used to reorder an existing {Sketchup::Page} object inside collection.
258
+ #
259
+ # +new_index+ specifies the new position of the page. It should be a value
260
+ # between +0+ and the max index of the {Sketchup::Pages} collection.
261
+ # Negative indices can be used to specify an index from the end of the list.
262
+ #
263
+ # @example
264
+ # model = Sketchup.active_model
265
+ # pages = model.pages
266
+ # pages.reorder(model.pages[0], 2)
267
+ #
268
+ # @param [Sketchup::Page] page
269
+ # The page to be reordered.
270
+ #
271
+ # @param [Integer] new_index
272
+ # Index of where to replace the page.
273
+ #
274
+ # @raise [IndexError] if the given +new_index+ is out of range.
275
+ #
276
+ # @return nil
277
+ #
278
+ # @version SketchUp 2025.0
279
+ def reorder(page, new_index)
280
+ end
281
+
282
+ # The selected_page method is used to retrieve the currently selected page.
283
+ #
284
+ # @example
285
+ # model = Sketchup.active_model
286
+ # pages = model.pages
287
+ # status = pages.add "Page 1"
288
+ # status = pages.add "Page 2"
289
+ # page = pages.selected_page
290
+ #
291
+ # @return page - the currently selected Page object if successful
292
+ #
293
+ # @version SketchUp 6.0
294
+ def selected_page
295
+ end
296
+
297
+ # The selected_page method is used to set the currently selected page. Once
298
+ # you set this, SketchUp will animate to that page as if the user had clicked
299
+ # on its scene tab.
300
+ #
301
+ # @example
302
+ # model = Sketchup.active_model
303
+ # pages = model.pages
304
+ # status = pages.add "Page 1"
305
+ # status = pages.add "Page 2"
306
+ # pages.selected_page = model.pages[1]
307
+ #
308
+ # @param [Sketchup::Page] page
309
+ #
310
+ # @return status - true if successful
311
+ #
312
+ # @version SketchUp 6.0
313
+ def selected_page=(page)
314
+ end
315
+
316
+ # The {#show_frame_at} method is used to show a frame in animation (of the
317
+ # slide show) at a given time in seconds.
318
+ #
319
+ # @example
320
+ # model = Sketchup.active_model
321
+ # pages = model.pages
322
+ # pages.add("Page 1")
323
+ # pages.add("Page 2")
324
+ # page, ratio = pages.show_frame_at(1.8)
325
+ #
326
+ # @note In versions prior to SketchUp 2019 this method will crash if called
327
+ # when there are no pages in the model.
328
+ #
329
+ # @param [Float] seconds
330
+ # The time in seconds.
331
+ #
332
+ # @return [Array(Sketchup::Page, Float), nil] Upon success it returns the
333
+ # page that is displayed and a parameter between +0.0+ and +1.0+ that is
334
+ # tells how far along the transition to next page you are at.
335
+ #
336
+ # @version SketchUp 6.0
337
+ def show_frame_at(seconds)
338
+ end
339
+
340
+ # The {#size} method is used to retrieve the number of pages.
341
+ #
342
+ # @example
343
+ # pages = Sketchup.active_model.pages
344
+ # pages.add('Page 1')
345
+ # pages.add('Page 2')
346
+ # number = pages.size
347
+ #
348
+ # @return [Integer]
349
+ #
350
+ # @see #length
351
+ #
352
+ # @version SketchUp 6.0
353
+ def size
354
+ end
355
+
356
+ # The slideshow_time method is used to get the amount of time that a slideshow
357
+ # of all of the pages will take. This takes into account the transition time
358
+ # for each Page and the amount of time that each Page is displayed.
359
+ #
360
+ # @example
361
+ # pages = Sketchup.active_model.pages
362
+ # time = pages.slideshow_time
363
+ #
364
+ # @return status - true if successful
365
+ #
366
+ # @version SketchUp 6.0
367
+ def slideshow_time
368
+ end
369
+
370
+ # The {#unique_name} method is used to generate a unique name for the page based on a base_name
371
+ # string. For example, a base name of "Joe" might return "Joe 2" if "Joe" already exists.
372
+ #
373
+ # @example
374
+ # model = Sketchup.active_model
375
+ # pages = model.pages
376
+ # page = pages.add('Joe')
377
+ # page.unique_name('Joe')
378
+ #
379
+ # @param [String] base_name
380
+ # The base name to use for the unique name.
381
+ #
382
+ # @return [String] The unique name.
383
+ #
384
+ # @version SketchUp 2026.0
385
+ def unique_name(base_name)
386
+ end
387
+
388
+ end