sketchup-api-stubs 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/SketchUp/Geom/BoundingBox.rb +17 -20
- data/SketchUp/Geom/Bounds2d.rb +172 -0
- data/SketchUp/Geom/LatLong.rb +31 -16
- data/SketchUp/Geom/OrientedBounds2d.rb +102 -0
- data/SketchUp/Geom/Point2d.rb +365 -0
- data/SketchUp/Geom/Point3d.rb +121 -110
- data/SketchUp/Geom/PolygonMesh.rb +30 -21
- data/SketchUp/Geom/Transformation.rb +8 -4
- data/SketchUp/Geom/Transformation2d.rb +125 -0
- data/SketchUp/Geom/UTM.rb +43 -37
- data/SketchUp/Geom/Vector2d.rb +497 -0
- data/SketchUp/Geom/Vector3d.rb +143 -131
- data/SketchUp/Layout.rb +25 -0
- data/SketchUp/Layout/AngularDimension.rb +569 -0
- data/SketchUp/Layout/AutoTextDefinition.rb +417 -0
- data/SketchUp/Layout/AutoTextDefinitions.rb +186 -0
- data/SketchUp/Layout/ConnectionPoint.rb +70 -0
- data/SketchUp/Layout/Document.rb +458 -0
- data/SketchUp/Layout/Ellipse.rb +29 -0
- data/SketchUp/Layout/Entities.rb +155 -0
- data/SketchUp/Layout/Entity.rb +363 -0
- data/SketchUp/Layout/FormattedText.rb +349 -0
- data/SketchUp/Layout/Grid.rb +131 -0
- data/SketchUp/Layout/Group.rb +261 -0
- data/SketchUp/Layout/Image.rb +86 -0
- data/SketchUp/Layout/Label.rb +371 -0
- data/SketchUp/Layout/Layer.rb +222 -0
- data/SketchUp/Layout/LayerInstance.rb +128 -0
- data/SketchUp/Layout/Layers.rb +232 -0
- data/SketchUp/Layout/LinearDimension.rb +563 -0
- data/SketchUp/Layout/LockedEntityError.rb +10 -0
- data/SketchUp/Layout/LockedLayerError.rb +11 -0
- data/SketchUp/Layout/Page.rb +187 -0
- data/SketchUp/Layout/PageInfo.rb +393 -0
- data/SketchUp/Layout/Pages.rb +216 -0
- data/SketchUp/Layout/Path.rb +326 -0
- data/SketchUp/Layout/Rectangle.rb +174 -0
- data/SketchUp/Layout/SketchUpModel.rb +522 -0
- data/SketchUp/Layout/Style.rb +1520 -0
- data/SketchUp/Layout/Table.rb +290 -0
- data/SketchUp/Layout/TableCell.rb +149 -0
- data/SketchUp/Layout/TableColumn.rb +139 -0
- data/SketchUp/Layout/TableRow.rb +135 -0
- data/SketchUp/Sketchup/Animation.rb +7 -4
- data/SketchUp/Sketchup/ArcCurve.rb +10 -10
- data/SketchUp/Sketchup/AttributeDictionaries.rb +13 -4
- data/SketchUp/Sketchup/AttributeDictionary.rb +12 -12
- data/SketchUp/Sketchup/Color.rb +68 -78
- data/SketchUp/Sketchup/ComponentDefinition.rb +60 -60
- data/SketchUp/Sketchup/ComponentInstance.rb +57 -55
- data/SketchUp/Sketchup/DefinitionList.rb +34 -17
- data/SketchUp/Sketchup/Drawingelement.rb +19 -21
- data/SketchUp/Sketchup/Edge.rb +22 -24
- data/SketchUp/Sketchup/Entities.rb +173 -162
- data/SketchUp/Sketchup/Entity.rb +71 -55
- data/SketchUp/Sketchup/Face.rb +45 -44
- data/SketchUp/Sketchup/Group.rb +47 -49
- data/SketchUp/Sketchup/Image.rb +16 -0
- data/SketchUp/Sketchup/ImageRep.rb +226 -0
- data/SketchUp/Sketchup/InstancePath.rb +13 -13
- data/SketchUp/Sketchup/Layer.rb +15 -17
- data/SketchUp/Sketchup/Material.rb +40 -30
- data/SketchUp/Sketchup/Materials.rb +40 -22
- data/SketchUp/Sketchup/Menu.rb +5 -5
- data/SketchUp/Sketchup/Model.rb +230 -228
- data/SketchUp/Sketchup/Page.rb +32 -0
- data/SketchUp/Sketchup/Pages.rb +3 -4
- data/SketchUp/Sketchup/RenderingOptions.rb +21 -16
- data/SketchUp/Sketchup/SectionPlane.rb +64 -0
- data/SketchUp/Sketchup/Selection.rb +20 -28
- data/SketchUp/Sketchup/ShadowInfo.rb +14 -14
- data/SketchUp/Sketchup/Text.rb +24 -26
- data/SketchUp/Sketchup/Texture.rb +28 -12
- data/SketchUp/Sketchup/Vertex.rb +14 -11
- data/SketchUp/Sketchup/View.rb +126 -116
- data/SketchUp/UI/Command.rb +17 -17
- data/SketchUp/UI/HtmlDialog.rb +8 -5
- data/SketchUp/UI/Notification.rb +1 -1
- data/SketchUp/UI/Toolbar.rb +13 -14
- data/SketchUp/UI/WebDialog.rb +55 -59
- data/SketchUp/_top_level.rb +139 -27
- data/SketchUp/{Array.rb → array.rb} +167 -30
- data/SketchUp/{Geom.rb → geom.rb} +9 -7
- data/SketchUp/{LanguageHandler.rb → languagehandler.rb} +15 -15
- data/SketchUp/{Length.rb → length.rb} +15 -15
- data/SketchUp/{Numeric.rb → numeric.rb} +19 -19
- data/SketchUp/sketchup.rb +167 -156
- data/SketchUp/{SketchupExtension.rb → sketchupextension.rb} +27 -27
- data/SketchUp/{String.rb → string.rb} +1 -1
- data/SketchUp/ui.rb +113 -87
- metadata +46 -9
@@ -0,0 +1,290 @@
|
|
1
|
+
# Copyright:: Copyright 2017 Trimble Inc.
|
2
|
+
# License:: The MIT License (MIT)
|
3
|
+
|
4
|
+
# A {Layout::Table} is a series of rows and columns that holds data.
|
5
|
+
#
|
6
|
+
# @example
|
7
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
8
|
+
# rows = 4
|
9
|
+
# columns = 4
|
10
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
11
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
12
|
+
# doc.add_entity(table, doc.layers.first, doc.pages.first)
|
13
|
+
# anchor_type = Layout::FormattedText::ANCHOR_TYPE_TOP_LEFT
|
14
|
+
# start_point = Geom::Point2d.new(1, 1)
|
15
|
+
# text = Layout::FormattedText.new("Hello LayOut", start_point, anchor_type)
|
16
|
+
# table[1, 1].data = text
|
17
|
+
#
|
18
|
+
# @version LayOut 2018
|
19
|
+
class Layout::Table < Layout::Entity
|
20
|
+
|
21
|
+
# Includes
|
22
|
+
|
23
|
+
include Enumerable
|
24
|
+
|
25
|
+
# Instance Methods
|
26
|
+
|
27
|
+
# The {#[]} method returns the {Layout::TableCell} at the specified row and
|
28
|
+
# column.
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
32
|
+
# rows = 4
|
33
|
+
# columns = 4
|
34
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
35
|
+
# cell = table[1, 2]
|
36
|
+
#
|
37
|
+
# @param [Integer] row_index
|
38
|
+
#
|
39
|
+
# @param [Integer] column_index
|
40
|
+
#
|
41
|
+
# @raise [IndexError] if row_index or column_index are not a valid indices
|
42
|
+
# for the {Layout::Table}
|
43
|
+
#
|
44
|
+
# @return [Layout::TableCell]
|
45
|
+
#
|
46
|
+
# @version LayOut 2018
|
47
|
+
def [](row_index, column_index)
|
48
|
+
end
|
49
|
+
|
50
|
+
# The {#dimensions} method returns the number of rows and columns in a
|
51
|
+
# {Layout::Table}.
|
52
|
+
#
|
53
|
+
# @example
|
54
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
55
|
+
# rows = 4
|
56
|
+
# columns = 4
|
57
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
58
|
+
# r, c = table.dimensions
|
59
|
+
#
|
60
|
+
# @return [Array(Integer, Integer)] The first value is the number of rows; the
|
61
|
+
# second, the number of columns.
|
62
|
+
#
|
63
|
+
# @version LayOut 2018
|
64
|
+
def dimensions
|
65
|
+
end
|
66
|
+
|
67
|
+
# The {#each} method iterates in column major order through all of the cells
|
68
|
+
# in the {Layout::Table}.
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
72
|
+
# rows = 4
|
73
|
+
# columns = 4
|
74
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
75
|
+
# table.each { |cell|
|
76
|
+
# puts cell.data.plain_text
|
77
|
+
# }
|
78
|
+
#
|
79
|
+
# @version LayOut 2018
|
80
|
+
#
|
81
|
+
# @yieldparam [Layout::TableCell] cell
|
82
|
+
def each
|
83
|
+
end
|
84
|
+
|
85
|
+
# The {#entities} method creates and returns the {Layout::Entities} that
|
86
|
+
# represent the {Layout::Table} in its exploded form.
|
87
|
+
#
|
88
|
+
# @example
|
89
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
90
|
+
# rows = 4
|
91
|
+
# columns = 4
|
92
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
93
|
+
# entities = table.entities
|
94
|
+
#
|
95
|
+
# @return [Layout::Entities]
|
96
|
+
#
|
97
|
+
# @version LayOut 2018
|
98
|
+
def entities
|
99
|
+
end
|
100
|
+
|
101
|
+
# The {#get_column} method returns the {Layout::TableColumn} at the specified
|
102
|
+
# index.
|
103
|
+
#
|
104
|
+
# @example
|
105
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
106
|
+
# rows = 4
|
107
|
+
# columns = 4
|
108
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
109
|
+
# table_column = table.get_column(2)
|
110
|
+
#
|
111
|
+
# @param [Integer] index
|
112
|
+
#
|
113
|
+
# @raise [IndexError] if index is not a valid index for the {Layout::Table}
|
114
|
+
#
|
115
|
+
# @return [Layout::TableColumn]
|
116
|
+
#
|
117
|
+
# @version LayOut 2018
|
118
|
+
def get_column(index)
|
119
|
+
end
|
120
|
+
|
121
|
+
# The {#get_row} method returns the {Layout::TableRow} at the specified index.
|
122
|
+
#
|
123
|
+
# @example
|
124
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
125
|
+
# rows = 4
|
126
|
+
# columns = 4
|
127
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
128
|
+
# table_row = table.get_row(2)
|
129
|
+
#
|
130
|
+
# @param [Integer] index
|
131
|
+
#
|
132
|
+
# @raise [IndexError] if index is not a valid index for the {Layout::Table}
|
133
|
+
#
|
134
|
+
# @return [Layout::TableRow]
|
135
|
+
#
|
136
|
+
# @version LayOut 2018
|
137
|
+
def get_row(index)
|
138
|
+
end
|
139
|
+
|
140
|
+
# The {#initialize} method creates a {Layout::Table} with a specified size, and
|
141
|
+
# a specified number of rows and columns.
|
142
|
+
#
|
143
|
+
# @example
|
144
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
145
|
+
# rows = 4
|
146
|
+
# columns = 4
|
147
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
148
|
+
#
|
149
|
+
# @param [Geom::Bounds2d] bounds
|
150
|
+
#
|
151
|
+
# @param [Integer] rows
|
152
|
+
#
|
153
|
+
# @param [Integer] columns
|
154
|
+
#
|
155
|
+
# @raise [ArgumentError] if bounds is zero size
|
156
|
+
#
|
157
|
+
# @raise [ArgumentError] if rows is less than 1
|
158
|
+
#
|
159
|
+
# @raise [ArgumentError] if columns is less than 1
|
160
|
+
#
|
161
|
+
# @return [Layout::Table]
|
162
|
+
#
|
163
|
+
# @version LayOut 2018
|
164
|
+
def initialize(bounds, rows, columns)
|
165
|
+
end
|
166
|
+
|
167
|
+
# The {#insert_column} method inserts a new column at the specified index.
|
168
|
+
#
|
169
|
+
# @example
|
170
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
171
|
+
# rows = 4
|
172
|
+
# columns = 4
|
173
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
174
|
+
# table.insert_column(2)
|
175
|
+
#
|
176
|
+
# @param [Integer] index
|
177
|
+
#
|
178
|
+
# @raise [IndexError] if index is not a valid index for the {Layout::Table}
|
179
|
+
#
|
180
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
181
|
+
#
|
182
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
183
|
+
# {Layout::Layer}
|
184
|
+
#
|
185
|
+
# @version LayOut 2018
|
186
|
+
def insert_column(index)
|
187
|
+
end
|
188
|
+
|
189
|
+
# The {#insert_row} method inserts a new row at the specified index.
|
190
|
+
#
|
191
|
+
# @example
|
192
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
193
|
+
# rows = 4
|
194
|
+
# columns = 4
|
195
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
196
|
+
# table.insert_row(2)
|
197
|
+
#
|
198
|
+
# @param [Integer] index
|
199
|
+
#
|
200
|
+
# @raise [IndexError] if index is not a valid index for the {Layout::Table}
|
201
|
+
#
|
202
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
203
|
+
#
|
204
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
205
|
+
# {Layout::Layer}
|
206
|
+
#
|
207
|
+
# @version LayOut 2018
|
208
|
+
def insert_row(index)
|
209
|
+
end
|
210
|
+
|
211
|
+
# The {#merge} method merges a range of cells within a {Layout::Table}. Only
|
212
|
+
# cells which are not already merged can be merged.
|
213
|
+
#
|
214
|
+
# @example
|
215
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
216
|
+
# rows = 4
|
217
|
+
# columns = 4
|
218
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
219
|
+
# table.merge(1, 1, 2, 2)
|
220
|
+
#
|
221
|
+
# @param [Integer] start_row
|
222
|
+
#
|
223
|
+
# @param [Integer] start_column
|
224
|
+
#
|
225
|
+
# @param [Integer] end_row
|
226
|
+
#
|
227
|
+
# @param [Integer] end_column
|
228
|
+
#
|
229
|
+
# @raise [ArgumentError] if the specified range of cells contains a merged cell
|
230
|
+
#
|
231
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
232
|
+
# {Layout::Layer}
|
233
|
+
#
|
234
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
235
|
+
#
|
236
|
+
# @raise [ArgumentError] if the specified range of cells only spans a single
|
237
|
+
# cell
|
238
|
+
#
|
239
|
+
# @raise [IndexError] if the passed in indices are not a valid for the
|
240
|
+
# {Layout::Table}
|
241
|
+
#
|
242
|
+
# @version LayOut 2018
|
243
|
+
def merge(start_row, start_column, end_row, end_column)
|
244
|
+
end
|
245
|
+
|
246
|
+
# The {#remove_column} method removes the column at the specified index.
|
247
|
+
#
|
248
|
+
# @example
|
249
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
250
|
+
# rows = 4
|
251
|
+
# columns = 4
|
252
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
253
|
+
# table.remove_column(2)
|
254
|
+
#
|
255
|
+
# @param [Integer] index
|
256
|
+
#
|
257
|
+
# @raise [IndexError] if index is not a valid index for the {Layout::Table}
|
258
|
+
#
|
259
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
260
|
+
#
|
261
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
262
|
+
# {Layout::Layer}
|
263
|
+
#
|
264
|
+
# @version LayOut 2018
|
265
|
+
def remove_column(index)
|
266
|
+
end
|
267
|
+
|
268
|
+
# The {#remove_row} method removes the row at the specified index.
|
269
|
+
#
|
270
|
+
# @example
|
271
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
272
|
+
# rows = 4
|
273
|
+
# columns = 4
|
274
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
275
|
+
# table.remove_row(2)
|
276
|
+
#
|
277
|
+
# @param [Integer] index
|
278
|
+
#
|
279
|
+
# @raise [IndexError] if index is not a valid index for the {Layout::Table}
|
280
|
+
#
|
281
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
282
|
+
#
|
283
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
284
|
+
# {Layout::Layer}
|
285
|
+
#
|
286
|
+
# @version LayOut 2018
|
287
|
+
def remove_row(index)
|
288
|
+
end
|
289
|
+
|
290
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# Copyright:: Copyright 2017 Trimble Inc.
|
2
|
+
# License:: The MIT License (MIT)
|
3
|
+
|
4
|
+
# A {Layout::TableCell} is a single cell from a table that contains data.
|
5
|
+
#
|
6
|
+
# @example
|
7
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
8
|
+
# rows = 4
|
9
|
+
# columns = 4
|
10
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
11
|
+
# table.each { |cell|
|
12
|
+
# puts cell.data.plain_text
|
13
|
+
# }
|
14
|
+
#
|
15
|
+
# @version LayOut 2018
|
16
|
+
class Layout::TableCell
|
17
|
+
|
18
|
+
# Constants
|
19
|
+
|
20
|
+
ROTATION_0 = nil # Stub value.
|
21
|
+
ROTATION_180 = nil # Stub value.
|
22
|
+
ROTATION_270 = nil # Stub value.
|
23
|
+
ROTATION_90 = nil # Stub value.
|
24
|
+
|
25
|
+
# Instance Methods
|
26
|
+
|
27
|
+
# The {#data} method creates a copy of the {Layout::FormattedText} for the
|
28
|
+
# {Layout::TableCell}.
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
32
|
+
# rows = 4
|
33
|
+
# columns = 4
|
34
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
35
|
+
# cell_entity = table[1, 2].data
|
36
|
+
#
|
37
|
+
# @raise [ArgumentError] if the cell {Layout::Entity} is not a
|
38
|
+
# {Layout::FormattedText}
|
39
|
+
#
|
40
|
+
# @version LayOut 2018
|
41
|
+
def data
|
42
|
+
end
|
43
|
+
|
44
|
+
# The {#data=} method sets the {Layout::Entity} of a {Layout::TableCell}.
|
45
|
+
# The text content and fill {Layout::Style} settings will be kept. The bounds
|
46
|
+
# and other {Layout::Style} settings are controlled by the {Layout::Table}. If
|
47
|
+
# the specified row and column is within a merged cell, then the merged cell
|
48
|
+
# itself will be affected.
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
52
|
+
# rows = 4
|
53
|
+
# columns = 4
|
54
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
55
|
+
# anchor = Geom::Point2d.new(1, 1)
|
56
|
+
# text_anchor_type = Layout::FormattedText::ANCHOR_TYPE_TOP_LEFT
|
57
|
+
# text = Layout::FormattedText.new("Test", anchor, text_anchor_type)
|
58
|
+
# table[1, 2].data = text
|
59
|
+
#
|
60
|
+
# @note At the moment, this only works for {Layout::Entity}s that are
|
61
|
+
# {Layout::FormattedText}s. However, future versions of LayOut may support
|
62
|
+
# other types of {Layout::Entity}s for {Layout::TableCell}s, so this method
|
63
|
+
# cannot be assumed to always fail with inputs of other {Layout::Entity}
|
64
|
+
# types.
|
65
|
+
#
|
66
|
+
# @param [Layout::Entity] entity
|
67
|
+
#
|
68
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
69
|
+
#
|
70
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
71
|
+
# {Layout::Layer}
|
72
|
+
#
|
73
|
+
# @version LayOut 2018
|
74
|
+
def data=(entity)
|
75
|
+
end
|
76
|
+
|
77
|
+
# The {#rotation} method returns the rotation of a {Layout::TableCell}.
|
78
|
+
#
|
79
|
+
# The rotation type can be one of the following values:
|
80
|
+
# [+Layout::TableCell::ROTATION_0+]
|
81
|
+
# [+Layout::TableCell::ROTATION_90+]
|
82
|
+
# [+Layout::TableCell::ROTATION_180+]
|
83
|
+
# [+Layout::TableCell::ROTATION_270+]
|
84
|
+
#
|
85
|
+
# @example
|
86
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
87
|
+
# rows = 4
|
88
|
+
# columns = 4
|
89
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
90
|
+
# rotation = table[1, 1].rotation
|
91
|
+
#
|
92
|
+
# @raise [ArgumentError] if the cell is invalid due to residing within a
|
93
|
+
# merged cell
|
94
|
+
#
|
95
|
+
# @return [Integer]
|
96
|
+
#
|
97
|
+
# @version LayOut 2018
|
98
|
+
def rotation
|
99
|
+
end
|
100
|
+
|
101
|
+
# The {#rotation=} method sets the rotation of a {Layout::TableCell}.
|
102
|
+
#
|
103
|
+
# The rotation type can be one of the following values:
|
104
|
+
# [+Layout::TableCell::ROTATION_0+]
|
105
|
+
# [+Layout::TableCell::ROTATION_90+]
|
106
|
+
# [+Layout::TableCell::ROTATION_180+]
|
107
|
+
# [+Layout::TableCell::ROTATION_270+]
|
108
|
+
#
|
109
|
+
# @example
|
110
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
111
|
+
# rows = 4
|
112
|
+
# columns = 4
|
113
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
114
|
+
# table[1, 1].rotation = Layout::TableCell::ROTATION_180
|
115
|
+
#
|
116
|
+
# @param [Integer] cell_rotation
|
117
|
+
#
|
118
|
+
# @raise [ArgumentError] if the cell is invalid due to residing within a
|
119
|
+
# merged cell
|
120
|
+
#
|
121
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
122
|
+
#
|
123
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
124
|
+
# {Layout::Layer}
|
125
|
+
#
|
126
|
+
# @version LayOut 2018
|
127
|
+
def rotation=(cell_rotation)
|
128
|
+
end
|
129
|
+
|
130
|
+
# The {#span} method returns the row and column span of a {Layout::TableCell}.
|
131
|
+
# If the values returned are both 1, then it is a normal, non-merged cell. If
|
132
|
+
# either of the values are greater than 1, then it is a merged cell. If the
|
133
|
+
# values are both 0, then it is an unused cell that resides within the inner
|
134
|
+
# portion of another merged cell.
|
135
|
+
#
|
136
|
+
# @example
|
137
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
138
|
+
# rows = 4
|
139
|
+
# columns = 4
|
140
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
141
|
+
# row_span, column_span = table[1, 1].span
|
142
|
+
#
|
143
|
+
# @return [Array(Integer, Integer)] Row span and column span.
|
144
|
+
#
|
145
|
+
# @version LayOut 2018
|
146
|
+
def span
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# Copyright:: Copyright 2017 Trimble Inc.
|
2
|
+
# License:: The MIT License (MIT)
|
3
|
+
|
4
|
+
# A {Layout::TableColumn} is a single column from a table.
|
5
|
+
#
|
6
|
+
# @example
|
7
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
8
|
+
# rows = 4
|
9
|
+
# columns = 4
|
10
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
11
|
+
# columns.times { |index|
|
12
|
+
# column = table.column(index)
|
13
|
+
# }
|
14
|
+
#
|
15
|
+
# @version LayOut 2018
|
16
|
+
class Layout::TableColumn
|
17
|
+
|
18
|
+
# Instance Methods
|
19
|
+
|
20
|
+
# The {#left_edge_style} method returns the {Layout::Style} of a
|
21
|
+
# {Layout::TableColumn}'s left edge. If this is the first column of the table,
|
22
|
+
# this method will return the style of the table border.
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
26
|
+
# rows = 4
|
27
|
+
# columns = 4
|
28
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
29
|
+
# style = table.get_column(1).edge_style
|
30
|
+
#
|
31
|
+
# @return [Layout::Style]
|
32
|
+
#
|
33
|
+
# @version LayOut 2018
|
34
|
+
def left_edge_style
|
35
|
+
end
|
36
|
+
|
37
|
+
# The {#left_edge_style=} method sets the {Layout::Style} of a
|
38
|
+
# {Layout::TableColumn}'s left edge. If this is the first column of the table,
|
39
|
+
# this method will set the style for the table border.
|
40
|
+
#
|
41
|
+
# @example
|
42
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
43
|
+
# rows = 4
|
44
|
+
# columns = 4
|
45
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
46
|
+
# style = Layout::Style.new
|
47
|
+
# style.stroke_width = 2.0
|
48
|
+
# table.get_column(1).edge_style = style
|
49
|
+
#
|
50
|
+
# @param [Layout::Style] style
|
51
|
+
#
|
52
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
53
|
+
#
|
54
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
55
|
+
# {Layout::Layer}
|
56
|
+
#
|
57
|
+
# @version LayOut 2018
|
58
|
+
def left_edge_style=(style)
|
59
|
+
end
|
60
|
+
|
61
|
+
# The {#right_edge_style} method returns the {Layout::Style} of a
|
62
|
+
# {Layout::TableColumn}'s right edge. If this is the last column of the table,
|
63
|
+
# this method will return the style of the table border.
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
67
|
+
# rows = 4
|
68
|
+
# columns = 4
|
69
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
70
|
+
# style = table.get_column(1).edge_style
|
71
|
+
#
|
72
|
+
# @return [Layout::Style]
|
73
|
+
#
|
74
|
+
# @version LayOut 2018
|
75
|
+
def right_edge_style
|
76
|
+
end
|
77
|
+
|
78
|
+
# The {#right_edge_style=} method sets the {Layout::Style} of a
|
79
|
+
# {Layout::TableColumn}'s right edge. If this is the last column of the table,
|
80
|
+
# this method will set the style for the table border.
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
84
|
+
# rows = 4
|
85
|
+
# columns = 4
|
86
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
87
|
+
# style = Layout::Style.new
|
88
|
+
# style.stroke_width = 2.0
|
89
|
+
# table.get_column(1).edge_style = style
|
90
|
+
#
|
91
|
+
# @param [Layout::Style] style
|
92
|
+
#
|
93
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
94
|
+
#
|
95
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
96
|
+
# {Layout::Layer}
|
97
|
+
#
|
98
|
+
# @version LayOut 2018
|
99
|
+
def right_edge_style=(style)
|
100
|
+
end
|
101
|
+
|
102
|
+
# The {#width} method returns the width of the {Layout::TableColumn}.
|
103
|
+
#
|
104
|
+
# @example
|
105
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
106
|
+
# rows = 4
|
107
|
+
# columns = 4
|
108
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
109
|
+
# width = table.get_column(1).width
|
110
|
+
#
|
111
|
+
# @return [Float]
|
112
|
+
#
|
113
|
+
# @version LayOut 2018
|
114
|
+
def width
|
115
|
+
end
|
116
|
+
|
117
|
+
# The {#width=} method sets the width of the {Layout::TableColumn}.
|
118
|
+
#
|
119
|
+
# @example
|
120
|
+
# bounds = Geom::Bounds2d.new(1, 1, 4, 4)
|
121
|
+
# rows = 4
|
122
|
+
# columns = 4
|
123
|
+
# table = Layout::Table.new(bounds, rows, columns)
|
124
|
+
# table.get_column(1).width = 6.0
|
125
|
+
#
|
126
|
+
# @param [Float] width
|
127
|
+
#
|
128
|
+
# @raise [ArgumentError] if width is not a valid width
|
129
|
+
#
|
130
|
+
# @raise [LockedEntityError] if the {Layout::Table} is locked
|
131
|
+
#
|
132
|
+
# @raise [LockedLayerError] if the {Layout::Table} is on a locked
|
133
|
+
# {Layout::Layer}
|
134
|
+
#
|
135
|
+
# @version LayOut 2018
|
136
|
+
def width=(width)
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|