scriptup 2024.0.5 → 2024.0.6

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/ext/attribute_dictionaries.c +1 -1
  3. data/ext/color.c +3 -3
  4. data/ext/component_definition.c +2 -2
  5. data/ext/definition_list.c +1 -1
  6. data/ext/entity.c +4 -3
  7. data/ext/material.c +4 -7
  8. data/ext/utils.h +4 -4
  9. data/sketchup-sdk-win/binaries/layout/x64/LayOutAPI.dll +0 -0
  10. data/sketchup-sdk-win/binaries/layout/x64/LayOutAPI.lib +0 -0
  11. data/sketchup-sdk-win/binaries/layout/x64/LayOutControllers.dll +0 -0
  12. data/sketchup-sdk-win/binaries/layout/x64/LayOutModel.dll +0 -0
  13. data/sketchup-sdk-win/binaries/layout/x64/LayOutRTF.dll +0 -0
  14. data/sketchup-sdk-win/binaries/layout/x64/LayOutUtils.dll +0 -0
  15. data/sketchup-sdk-win/binaries/layout/x64/SketchUpCommonPreferences.dll +0 -0
  16. data/sketchup-sdk-win/binaries/layout/x64/SketchUpViewerAPI.dll +0 -0
  17. data/sketchup-sdk-win/binaries/layout/x64/SketchUpViewerAPI.lib +0 -0
  18. data/sketchup-sdk-win/binaries/layout/x64/pdflib.dll +0 -0
  19. data/sketchup-sdk-win/headers/LayOutAPI/application/application.h +117 -0
  20. data/sketchup-sdk-win/headers/LayOutAPI/common.h +22 -0
  21. data/sketchup-sdk-win/headers/LayOutAPI/geometry/geometry.h +78 -0
  22. data/sketchup-sdk-win/headers/LayOutAPI/initialize.h +36 -0
  23. data/sketchup-sdk-win/headers/LayOutAPI/layout.h +49 -0
  24. data/sketchup-sdk-win/headers/LayOutAPI/model/angulardimension.h +468 -0
  25. data/sketchup-sdk-win/headers/LayOutAPI/model/autotextdefinition.h +569 -0
  26. data/sketchup-sdk-win/headers/LayOutAPI/model/autotextdefinitionlist.h +79 -0
  27. data/sketchup-sdk-win/headers/LayOutAPI/model/connectionpoint.h +107 -0
  28. data/sketchup-sdk-win/headers/LayOutAPI/model/defs.h +42 -0
  29. data/sketchup-sdk-win/headers/LayOutAPI/model/dictionary.h +120 -0
  30. data/sketchup-sdk-win/headers/LayOutAPI/model/document.h +864 -0
  31. data/sketchup-sdk-win/headers/LayOutAPI/model/documentexportoptions.h +59 -0
  32. data/sketchup-sdk-win/headers/LayOutAPI/model/ellipse.h +78 -0
  33. data/sketchup-sdk-win/headers/LayOutAPI/model/entity.h +330 -0
  34. data/sketchup-sdk-win/headers/LayOutAPI/model/entityiterator.h +49 -0
  35. data/sketchup-sdk-win/headers/LayOutAPI/model/entitylist.h +114 -0
  36. data/sketchup-sdk-win/headers/LayOutAPI/model/formattedtext.h +397 -0
  37. data/sketchup-sdk-win/headers/LayOutAPI/model/grid.h +251 -0
  38. data/sketchup-sdk-win/headers/LayOutAPI/model/group.h +243 -0
  39. data/sketchup-sdk-win/headers/LayOutAPI/model/image.h +146 -0
  40. data/sketchup-sdk-win/headers/LayOutAPI/model/imagerep.h +109 -0
  41. data/sketchup-sdk-win/headers/LayOutAPI/model/label.h +332 -0
  42. data/sketchup-sdk-win/headers/LayOutAPI/model/layer.h +207 -0
  43. data/sketchup-sdk-win/headers/LayOutAPI/model/layerinstance.h +117 -0
  44. data/sketchup-sdk-win/headers/LayOutAPI/model/layerlist.h +69 -0
  45. data/sketchup-sdk-win/headers/LayOutAPI/model/lineardimension.h +456 -0
  46. data/sketchup-sdk-win/headers/LayOutAPI/model/page.h +261 -0
  47. data/sketchup-sdk-win/headers/LayOutAPI/model/pageinfo.h +372 -0
  48. data/sketchup-sdk-win/headers/LayOutAPI/model/pagelist.h +81 -0
  49. data/sketchup-sdk-win/headers/LayOutAPI/model/path.h +464 -0
  50. data/sketchup-sdk-win/headers/LayOutAPI/model/rectangle.h +240 -0
  51. data/sketchup-sdk-win/headers/LayOutAPI/model/referenceentity.h +120 -0
  52. data/sketchup-sdk-win/headers/LayOutAPI/model/sketchupmodel.h +624 -0
  53. data/sketchup-sdk-win/headers/LayOutAPI/model/skpfilereference.h +94 -0
  54. data/sketchup-sdk-win/headers/LayOutAPI/model/style.h +1080 -0
  55. data/sketchup-sdk-win/headers/LayOutAPI/model/table.h +470 -0
  56. data/sketchup-sdk-win/headers/LayOutAPI/model/typed_value.h +156 -0
  57. metadata +50 -2
@@ -0,0 +1,1080 @@
1
+ // Copyright 2015 Trimble Navigation Ltd. All rights reserved.
2
+ // This file is intended for public distribution.
3
+
4
+ #ifndef LAYOUT_MODEL_STYLE_H_
5
+ #define LAYOUT_MODEL_STYLE_H_
6
+
7
+ #include <LayOutAPI/common.h>
8
+ #include <LayOutAPI/model/defs.h>
9
+
10
+ /**
11
+ @struct LOStyleRef
12
+ @brief References a collection of style attributes that determine the
13
+ visual appearance of entities. Style attributes are those attributes
14
+ which the user can manipulate in LayOut's inspector windows. For
15
+ example, shape style attributes that define stroke and fill, or text
16
+ style attributes that define the font for formatted text. The document
17
+ maintains a default style for various types of entities, and it is
18
+ possible to apply the style of one entity to another. \ref LOStyleRef
19
+ objects are transient and do not belong to a document.
20
+ */
21
+
22
+ /**
23
+ @enum LOStrokeJoinStyle
24
+ @brief Defines how to draw the connection between two segments of a path's
25
+ stroke.
26
+ */
27
+ typedef enum {
28
+ LOStrokeJoinStyle_Miter = 0, ///< The corner between two segments will be pointed.
29
+ LOStrokeJoinStyle_Round, ///< The corner between two segments will be rounded.
30
+ LOStrokeJoinStyle_Bevel, ///< The corner between two segments will be flat.
31
+ LONumStrokeJoinStyles
32
+ } LOStrokeJoinStyle;
33
+
34
+ /**
35
+ @enum LOStrokeCapStyle
36
+ @brief Defines how to draw the end-caps of a path's stroke.
37
+ */
38
+ typedef enum {
39
+ LOStrokeCapStyle_Flat = 0, ///< The end caps will be flat.
40
+ LOStrokeCapStyle_Round, ///< The end caps will be round.
41
+ LOStrokeCapStyle_Square, ///< The end caps will be square.
42
+ LONumStrokeCapStyles
43
+ } LOStrokeCapStyle;
44
+
45
+ /**
46
+ @enum LOStrokePattern
47
+ @brief Defines the stippling pattern of a path's stroke.
48
+ */
49
+ typedef enum {
50
+ LOStrokePattern_Solid = 0, ///< Solid pattern.
51
+ LOStrokePattern_Dash, ///< Dashed pattern.
52
+ LOStrokePattern_Dot, ///< Dotted pattern.
53
+ LOStrokePattern_DashDot, ///< Repeating dash-dot pattern.
54
+ LOStrokePattern_DashDotDot, ///< Repeating dash-dot-dot pattern.
55
+ LOStrokePattern_DashSpace, ///< Deprecated in 2020.2. Use LOStrokePattern_Dash instead.
56
+ LOStrokePattern_DashDotDotDot, ///< Repeating dash-dot-dot-dot pattern.
57
+ LOStrokePattern_DashDashDot, ///< Repeating dash-dash-dot pattern.
58
+ LOStrokePattern_DashDashDotDot, ///< Repeating dash-dash-dot-dot pattern.
59
+ LOStrokePattern_DashDashDotDotDot, ///< Repeating dash-dash-dot-dot-dot pattern.
60
+ LOStrokePattern_Center, ///< Repeating center line type pattern.
61
+ LOStrokePattern_Phantom, ///< Repeating phantom line type pattern.
62
+ LOStrokePattern_ShortDash, ///< Repeating short dash pattern.
63
+ LONumStrokePatterns
64
+ } LOStrokePattern;
65
+
66
+ /**
67
+ @enum LOTextUnderline
68
+ @brief Defines underline styles for formatted text.
69
+ */
70
+ typedef enum {
71
+ LOTextUnderline_None = 0, ///< No underline.
72
+ LOTextUnderline_Single, ///< Single underline.
73
+ LOTextUnderline_Double, ///< Double underline.
74
+ LONumTextUnderlines
75
+ } LOTextUnderline;
76
+
77
+ /**
78
+ @enum LOTextElevation
79
+ @brief Defines super/subscript options for formatted text.
80
+ */
81
+ typedef enum {
82
+ LOTextElevation_Normal = 0, ///< Normal text.
83
+ LOTextElevation_Superscript, ///< Superscript text.
84
+ LOTextElevation_Subscript, ///< Subscript text.
85
+ LONumTextElevations
86
+ } LOTextElevation;
87
+
88
+ /**
89
+ @enum LOTextAlignment
90
+ @brief Defines left/right/center text alignment for formatted text.
91
+ */
92
+ typedef enum {
93
+ LOTextAlignment_Left = 0, ///< Left-aligned text.
94
+ LOTextAlignment_Right, ///< Right-aligned text.
95
+ LOTextAlignment_Center, ///< Center-aligned text.
96
+ LONumTextAlignments
97
+ } LOTextAlignment;
98
+
99
+ /**
100
+ @enum LOTextAnchor
101
+ @brief Defines top/center/bottom text anchoring for formatted text.
102
+ */
103
+ typedef enum {
104
+ LOTextAnchor_Top = 0, ///< Top-anchored text.
105
+ LOTextAnchor_Center, ///< Center-anchored text.
106
+ LOTextAnchor_Bottom, ///< Bottom-anchored text.
107
+ LONumTextAnchors
108
+ } LOTextAnchor;
109
+
110
+ /**
111
+ @enum LODimensionRotationAlignment
112
+ @brief Represents how the dimension text is oriented on the page.
113
+ */
114
+ typedef enum {
115
+ LODimensionRotationAlignment_Horizontal = 0, ///< Align the text horizontally.
116
+ LODimensionRotationAlignment_Vertical, ///< Align the text vertically.
117
+ LODimensionRotationAlignment_Align, ///< Align the text parallel to the dimension line.
118
+ LODimensionRotationAlignment_Perpendicular, ///< Align the text perpendicular to the dimension
119
+ ///< line.
120
+ LONumDimensionRotationAlignments
121
+ } LODimensionRotationAlignment;
122
+
123
+ /**
124
+ @enum LODimensionVerticalAlignment
125
+ @brief Represents how the dimension text is positioned. The position is
126
+ relative to the dimension line. \ref LODimensionVerticalAlignment_Offset
127
+ indicates that the text box position is based on a custom offset.
128
+ */
129
+ typedef enum {
130
+ LODimensionVerticalAlignment_Above = 0, ///< Position the text above the dimension line.
131
+ LODimensionVerticalAlignment_Center, ///< Position the text on top of the dimension line.
132
+ LODimensionVerticalAlignment_Below, ///< Position the text under the dimension line.
133
+ LODimensionVerticalAlignment_Offset, ///< Position the text in an arbitrary location.
134
+ LONumDimensionVerticalAlignments
135
+ } LODimensionVerticalAlignment;
136
+
137
+ /**
138
+ @enum LODimensionUnits
139
+ @brief Defines the different units formats that are available for linear and
140
+ angular dimensions.
141
+ */
142
+ typedef enum {
143
+ // Linear dimension units
144
+ LODimensionUnits_FractionalInches = 0, ///< 60"
145
+ LODimensionUnits_ArchitecturalInches, ///< 6-1/2"
146
+ LODimensionUnits_EngineeringFeet, ///< 7.250'
147
+ LODimensionUnits_DecimalInches, ///< 6.5"
148
+ LODimensionUnits_DecimalFeet, ///< 0.54167'
149
+ LODimensionUnits_DecimalMillimeters, ///< 165.1 mm
150
+ LODimensionUnits_DecimalCentimeters, ///< 16.51 cm
151
+ LODimensionUnits_DecimalMeters, ///< 1.651 m
152
+ LODimensionUnits_DecimalPoints, ///< 468 pt
153
+
154
+ // Angular dimension units
155
+ LODimensionUnits_Degrees, ///< 21°
156
+ LODimensionUnits_Radians, ///< 0.36 r
157
+
158
+ LONumDimensionUnits
159
+ } LODimensionUnits;
160
+
161
+
162
+
163
+ /**
164
+ @enum LOArrowType
165
+ @brief Defines the arrowhead types available for a path entity.
166
+ */
167
+ typedef enum {
168
+ LOArrowType_None = 0, ///< No arrowhead.
169
+ LOArrowType_FilledTriangle, ///< Filled triangle arrowhead.
170
+ LOArrowType_OpenTriangle, ///< Non-filled triangle arrowhead.
171
+ LOArrowType_FilledSkinnyTriangle, ///< Filled skinny triangle arrowhead.
172
+ LOArrowType_OpenSkinnyTriangle, ///< Non-filled skinny triangle arrowhead.
173
+ LOArrowType_OpenArrow90, ///< 90 degree open-sided arrowhead.
174
+ LOArrowType_OpenArrow120, ///< 120 degree open-sided arrowhead.
175
+ LOArrowType_FilledCircle, ///< Filled circle arrowhead.
176
+ LOArrowType_OpenCircle, ///< Non-filled circle arrowhead.
177
+ LOArrowType_FilledSquare, ///< Filled square arrowhead.
178
+ LOArrowType_OpenSquare, ///< Non-filled square arrowhead.
179
+ LOArrowType_FilledDiamond, ///< Filled diamond arrowhead.
180
+ LOArrowType_OpenDiamond, ///< Non-filled diamond arrowhead.
181
+ LOArrowType_Star, ///< Star-shaped arrowhead.
182
+ LOArrowType_T, ///< T-shaped arrowhead.
183
+ LOArrowType_SlashRight, ///< Right slash arrowhead.
184
+ LOArrowType_SlashLeft, ///< Left slash arrowhead.
185
+ LOArrowType_Underrun, ///< Underrun arrowhead.
186
+ LOArrowType_Overrun, ///< Overrun arrowhead.
187
+ LONumArrowTypes
188
+ } LOArrowType;
189
+
190
+ /**
191
+ @enum LOSubEntityType
192
+ @brief Defines the types of sub entity that may have style attributes applied
193
+ directly to them.
194
+ */
195
+ typedef enum {
196
+ LOSubEntityType_LabelLeaderLine = 0, ///< A label's leader line object.
197
+ LOSubEntityType_LabelText, ///< A label's text object.
198
+ LOSubEntityType_DimensionStartExtensionLine, ///< A dimension's start extension line object.
199
+ LOSubEntityType_DimensionEndExtensionLine, ///< A dimension's end extension line object.
200
+ LOSubEntityType_DimensionDimensionLine, ///< A dimension's dimension line object.
201
+ LOSubEntityType_DimensionLeaderLine, ///< A dimension's leader line object.
202
+ LOSubEntityType_DimensionText, ///< A dimension's text object.
203
+ LONumSubEntityTypes
204
+ } LOSubEntityType;
205
+
206
+ #include "entity.h"
207
+ #include <SketchUpAPI/color.h>
208
+
209
+ #ifdef __cplusplus
210
+ extern "C" {
211
+ #endif // __cplusplus
212
+
213
+ /**
214
+ @brief Creates a new empty style object.
215
+ @param[out] style The style object.
216
+ @return
217
+ - \ref SU_ERROR_NONE on success
218
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if style is NULL
219
+ - \ref SU_ERROR_OVERWRITE_VALID if *style already refers to a valid object
220
+ */
221
+ LO_RESULT LOStyleCreate(LOStyleRef* style);
222
+
223
+ /**
224
+ @brief Releases a style object. *style will be set to invalid by this function.
225
+ @param[in] style The style object.
226
+ @return
227
+ - \ref SU_ERROR_NONE on success
228
+ - \ref SU_ERROR_NULL_POINTER_INPUT if style is NULL
229
+ - \ref SU_ERROR_INVALID_INPUT if *style does not refer to a valid object
230
+ */
231
+ LO_RESULT LOStyleRelease(LOStyleRef* style);
232
+
233
+ /**
234
+ @brief Copies the style attributes from one style object to another.
235
+ @param[in] src_style The source style object.
236
+ @param[out] dst_style The destination style object.
237
+ @return
238
+ - \ref SU_ERROR_NONE on success
239
+ - \ref SU_ERROR_INVALID_INPUT if src_style does not refer to a valid object
240
+ - \ref SU_ERROR_INVALID_OUTPUT if dst_style does not refer to a valid object
241
+ */
242
+ LO_RESULT LOStyleCopy(LOStyleRef src_style, LOStyleRef dst_style);
243
+
244
+ /**
245
+ @brief Gets whether or not a style has a stroke.
246
+ @param[in] style The style object.
247
+ @param[out] is_stroked Whether there is a stroke or not.
248
+ @return
249
+ - \ref SU_ERROR_NONE on success
250
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
251
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if is_stroked is NULL
252
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
253
+ attribute
254
+ */
255
+ LO_RESULT LOStyleGetStroked(LOStyleRef style, bool* is_stroked);
256
+
257
+ /**
258
+ @brief Sets whether or not a style has a stroke.
259
+ @param[in] style The style object.
260
+ @param[in] is_stroked Whether there should be a stroke or not.
261
+ @return
262
+ - \ref SU_ERROR_NONE on success
263
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
264
+ */
265
+ LO_RESULT LOStyleSetStroked(LOStyleRef style, bool is_stroked);
266
+
267
+ /**
268
+ @brief Gets the stroke width of a style.
269
+ @param[in] style The style object.
270
+ @param[out] stroke_width The stroke width.
271
+ @return
272
+ - \ref SU_ERROR_NONE on success
273
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
274
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if stroke_width is NULL
275
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
276
+ attribute
277
+ */
278
+ LO_RESULT LOStyleGetStrokeWidth(LOStyleRef style, double* stroke_width);
279
+
280
+ /**
281
+ @brief Sets the stroke width of a style.
282
+ @param[in] style The style object.
283
+ @param[in] stroke_width The stroke width.
284
+ @return
285
+ - \ref SU_ERROR_NONE on success
286
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
287
+ - \ref SU_ERROR_OUT_OF_RANGE if stroke_width is less than 0.0
288
+ */
289
+ LO_RESULT LOStyleSetStrokeWidth(LOStyleRef style, double stroke_width);
290
+
291
+ /**
292
+ @brief Gets the stroke color of a style.
293
+ @param[in] style The style object.
294
+ @param[out] stroke_color The stroke color.
295
+ @return
296
+ - \ref SU_ERROR_NONE on success
297
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
298
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if stroke_color is NULL
299
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
300
+ attribute
301
+ */
302
+ LO_RESULT LOStyleGetStrokeColor(LOStyleRef style, SUColor* stroke_color);
303
+
304
+ /**
305
+ @brief Sets the stroke color of a style.
306
+ @param[in] style The style object.
307
+ @param[in] stroke_color The stroke color.
308
+ @return
309
+ - \ref SU_ERROR_NONE on success
310
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
311
+ */
312
+ LO_RESULT LOStyleSetStrokeColor(LOStyleRef style, SUColor stroke_color);
313
+
314
+ /**
315
+ @brief Gets the stroke join style of a style.
316
+ @param[in] style The style object.
317
+ @param[out] join_type The join style.
318
+ @return
319
+ - \ref SU_ERROR_NONE on success
320
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
321
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if join_type is NULL
322
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
323
+ attribute
324
+ */
325
+ LO_RESULT LOStyleGetStrokeJoinStyle(LOStyleRef style, LOStrokeJoinStyle* join_type);
326
+
327
+ /**
328
+ @brief Sets the stroke join style of a style.
329
+ @param[in] style The style object.
330
+ @param[in] join_type The join style.
331
+ @return
332
+ - \ref SU_ERROR_NONE on success
333
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
334
+ - \ref SU_ERROR_OUT_OF_RANGE if join_type is invalid
335
+ */
336
+ LO_RESULT LOStyleSetStrokeJoinStyle(LOStyleRef style, LOStrokeJoinStyle join_type);
337
+
338
+ /**
339
+ @brief Gets the stroke cap style of a style.
340
+ @param[in] style The style object.
341
+ @param[out] cap_type The cap style.
342
+ @return
343
+ - \ref SU_ERROR_NONE on success
344
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
345
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if cap_type is NULL
346
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
347
+ attribute
348
+ */
349
+ LO_RESULT LOStyleGetStrokeCapStyle(LOStyleRef style, LOStrokeCapStyle* cap_type);
350
+
351
+ /**
352
+ @brief Sets the stroke cap style of a style.
353
+ @param[in] style The style object.
354
+ @param[in] cap_type The cap style.
355
+ @return
356
+ - \ref SU_ERROR_NONE on success
357
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
358
+ - \ref SU_ERROR_OUT_OF_RANGE if cap_type is invalid
359
+ */
360
+ LO_RESULT LOStyleSetStrokeCapStyle(LOStyleRef style, LOStrokeCapStyle cap_type);
361
+
362
+ /**
363
+ @brief Gets the stroke pattern of a style.
364
+ @param[in] style The style object.
365
+ @param[out] stroke_pattern The stroke pattern.
366
+ @return
367
+ - \ref SU_ERROR_NONE on success
368
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
369
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if stroke_pattern is NULL
370
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
371
+ attribute
372
+ */
373
+ LO_RESULT LOStyleGetStrokePattern(LOStyleRef style, LOStrokePattern* stroke_pattern);
374
+
375
+ /**
376
+ @brief Sets the stroke pattern of a style.
377
+ @param[in] style The style object.
378
+ @param[in] stroke_pattern The stroke pattern.
379
+ @return
380
+ - \ref SU_ERROR_NONE on success
381
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
382
+ - \ref SU_ERROR_OUT_OF_RANGE if stroke_pattern is invalid
383
+ */
384
+ LO_RESULT LOStyleSetStrokePattern(LOStyleRef style, LOStrokePattern stroke_pattern);
385
+
386
+ /**
387
+ @brief Gets the stroke pattern scale of a style.
388
+ @param[in] style The style object.
389
+ @param[out] pattern_scale The stroke pattern scale.
390
+ @return
391
+ - \ref SU_ERROR_NONE on success
392
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
393
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if pattern_scale is NULL
394
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
395
+ attribute
396
+ */
397
+ LO_RESULT LOStyleGetStrokePatternScale(LOStyleRef style, double* pattern_scale);
398
+
399
+ /**
400
+ @brief Sets the stroke pattern scale of a style.
401
+ @param[in] style The style object.
402
+ @param[in] pattern_scale The stroke pattern scale.
403
+ @return
404
+ - \ref SU_ERROR_NONE on success
405
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
406
+ - \ref SU_ERROR_OUT_OF_RANGE if pattern_scale is less than 0.001 or greater than
407
+ 9999.0
408
+ */
409
+ LO_RESULT LOStyleSetStrokePatternScale(LOStyleRef style, double pattern_scale);
410
+
411
+ /**
412
+ @brief Gets whether or not a style has a solid color fill.
413
+ @param[in] style The style object.
414
+ @param[out] solid_filled Whether there is a solid color fill or not.
415
+ @return
416
+ - \ref SU_ERROR_NONE on success
417
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
418
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if solid_filled is NULL
419
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
420
+ attribute
421
+ */
422
+ LO_RESULT LOStyleGetSolidFilled(LOStyleRef style, bool* solid_filled);
423
+
424
+ /**
425
+ @brief Sets whether or not a style has a solid color fill.
426
+ @param[in] style The style object.
427
+ @param[in] solid_filled Whether there should be a solid color fill or not.
428
+ @return
429
+ - \ref SU_ERROR_NONE on success
430
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
431
+ */
432
+ LO_RESULT LOStyleSetSolidFilled(LOStyleRef style, bool solid_filled);
433
+
434
+ /**
435
+ @brief Gets the solid fill color of a style.
436
+ @param[in] style The style object.
437
+ @param[out] fill_color The solid fill color.
438
+ @return
439
+ - \ref SU_ERROR_NONE on success
440
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
441
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if fill_color is NULL
442
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
443
+ attribute
444
+ */
445
+ LO_RESULT LOStyleGetSolidFillColor(LOStyleRef style, SUColor* fill_color);
446
+
447
+ /**
448
+ @brief Sets the solid fill color of a style.
449
+ @param[in] style The style object.
450
+ @param[in] fill_color The solid fill color.
451
+ @return
452
+ - \ref SU_ERROR_NONE on success
453
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
454
+ */
455
+ LO_RESULT LOStyleSetSolidFillColor(LOStyleRef style, SUColor fill_color);
456
+
457
+ /**
458
+ @brief Gets whether there is a pattern fill or not of a style.
459
+ @param[in] style The style object.
460
+ @param[out] pattern_filled Whether there is a pattern fill or not.
461
+ @return
462
+ - \ref SU_ERROR_NONE on success
463
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
464
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if pattern_filled is NULL
465
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
466
+ attribute
467
+ */
468
+ LO_RESULT LOStyleGetPatternFilled(LOStyleRef style, bool* pattern_filled);
469
+
470
+ /**
471
+ @brief Sets whether or not a style has a pattern fill.
472
+ @param[in] style The style object.
473
+ @param[in] pattern_filled Whether there should be a pattern fill or not.
474
+ @return
475
+ - \ref SU_ERROR_NONE on success
476
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
477
+ */
478
+ LO_RESULT LOStyleSetPatternFilled(LOStyleRef style, bool pattern_filled);
479
+
480
+ /**
481
+ @brief Gets the pattern fill image path of a style. This is the file path for
482
+ the pattern fill image file reference.
483
+ @param[in] style The style object.
484
+ @param[out] image_path The pattern fill image path.
485
+ @return
486
+ - \ref SU_ERROR_NONE on success
487
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
488
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if image_path is NULL
489
+ - \ref SU_ERROR_INVALID_OUTPUT if *image_path does not refer to a valid string
490
+ object
491
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
492
+ attribute
493
+ */
494
+ LO_RESULT LOStyleGetPatternFillImagePath(LOStyleRef style, SUStringRef* image_path);
495
+
496
+ /**
497
+ @brief Sets the pattern fill image path of a style. This is the file path for
498
+ the pattern fill image file reference.
499
+ @param[in] style The style object.
500
+ @param[in] image_path The pattern fill image path.
501
+ @return
502
+ - \ref SU_ERROR_NONE on success
503
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
504
+ - \ref SU_ERROR_NULL_POINTER_INPUT if image_path is NULL
505
+ - \ref SU_ERROR_SERIALIZATION if the image file could not be loaded
506
+ */
507
+ LO_RESULT LOStyleSetPatternFillImagePath(LOStyleRef style, const char* image_path);
508
+
509
+ /**
510
+ @brief Gets the rotation angle applied to the pattern fill of a style.
511
+ @param[in] style The style object.
512
+ @param[out] rotation The rotation angle applied to the pattern fill, in degrees.
513
+ @return
514
+ - \ref SU_ERROR_NONE on success
515
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
516
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if rotation is NULL
517
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
518
+ attribute
519
+ */
520
+ LO_RESULT LOStyleGetPatternFillRotation(LOStyleRef style, double* rotation);
521
+
522
+ /**
523
+ @brief Sets the rotation angle applied to the pattern fill of a style.
524
+ @param[in] style The style object.
525
+ @param[out] rotation The rotation angle to apply to the pattern fill, in degrees.
526
+ @return
527
+ - \ref SU_ERROR_NONE on success
528
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
529
+ attribute
530
+ */
531
+ LO_RESULT LOStyleSetPatternFillRotation(LOStyleRef style, double rotation);
532
+
533
+ /**
534
+ @brief Gets the scale applied to the pattern fill of a style.
535
+ @param[in] style The style object.
536
+ @param[out] scale The scale applied to the pattern fill.
537
+ @return
538
+ - \ref SU_ERROR_NONE on success
539
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
540
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if scale is NULL
541
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
542
+ attribute
543
+ */
544
+ LO_RESULT LOStyleGetPatternFillScale(LOStyleRef style, double* scale);
545
+
546
+ /**
547
+ @brief Sets the scale applied to the pattern fill of a style.
548
+ @param[in] style The style object.
549
+ @param[out] scale The scale to apply to the pattern fill.
550
+ @return
551
+ - \ref SU_ERROR_NONE on success
552
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
553
+ attribute
554
+ - \ref SU_ERROR_OUT_OF_RANGE if scale is less than 0.001 or greater than
555
+ 9999.0
556
+ */
557
+ LO_RESULT LOStyleSetPatternFillScale(LOStyleRef style, double scale);
558
+
559
+ /**
560
+ @brief Gets the origin for the pattern fill of a style.
561
+ @param[in] style The style object.
562
+ @param[out] origin The paper space origin for the pattern fill.
563
+ @return
564
+ - \ref SU_ERROR_NONE on success
565
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
566
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if origin is NULL
567
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
568
+ attribute
569
+ */
570
+ LO_RESULT LOStyleGetPatternFillOrigin(LOStyleRef style, LOPoint2D* origin);
571
+
572
+ /**
573
+ @brief Sets the origin for the pattern fill of a style.
574
+ @param[in] style The style object.
575
+ @param[out] origin The paper space origin for the pattern fill.
576
+ @return
577
+ - \ref SU_ERROR_NONE on success
578
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
579
+ - \ref SU_ERROR_NULL_POINTER_INPUT if origin is NULL
580
+ */
581
+ LO_RESULT LOStyleSetPatternFillOrigin(LOStyleRef style, const LOPoint2D* origin);
582
+
583
+ /**
584
+ @brief Gets the text font name of a style.
585
+ @param[in] style The style object.
586
+ @param[out] family The name of the font.
587
+ @return
588
+ - \ref SU_ERROR_NONE on success
589
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
590
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if family is NULL
591
+ - \ref SU_ERROR_INVALID_OUTPUT if family does not refer to a valid object
592
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
593
+ attribute
594
+ */
595
+ LO_RESULT LOStyleGetTextFontFamily(LOStyleRef style, SUStringRef* family);
596
+
597
+ /**
598
+ @brief Sets the text font name of a style.
599
+ @param[in] style The style object.
600
+ @param[in] family The name of the new font to use.
601
+ @return
602
+ - \ref SU_ERROR_NONE on success
603
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
604
+ - \ref SU_ERROR_NULL_POINTER_INPUT if family is NULL
605
+ */
606
+ LO_RESULT LOStyleSetTextFontFamily(LOStyleRef style, const char* family);
607
+
608
+ /**
609
+ @brief Gets whether or not text should be bold for a style.
610
+ @param[in] style The style object.
611
+ @param[out] is_bold Whether text will be bolded or not.
612
+ @return
613
+ - \ref SU_ERROR_NONE on success
614
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
615
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if is_bold is NULL
616
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
617
+ attribute
618
+ */
619
+ LO_RESULT LOStyleGetTextBold(LOStyleRef style, bool* is_bold);
620
+
621
+ /**
622
+ @brief Sets whether or not text should be bold for a style.
623
+ @param[in] style The style object.
624
+ @param[out] is_bold Whether text should be bolded or not.
625
+ @return
626
+ - \ref SU_ERROR_NONE on success
627
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
628
+ */
629
+ LO_RESULT LOStyleSetTextBold(LOStyleRef style, bool is_bold);
630
+
631
+ /**
632
+ @brief Gets whether or not text should be italicized for a style.
633
+ @param[in] style The style object.
634
+ @param[out] is_italic Whether text will be italic or not.
635
+ @return
636
+ - \ref SU_ERROR_NONE on success
637
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
638
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if is_italic is NULL
639
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
640
+ attribute
641
+ */
642
+ LO_RESULT LOStyleGetTextItalic(LOStyleRef style, bool* is_italic);
643
+
644
+ /**
645
+ @brief Sets whether or not text should be italicized for a style.
646
+ @param[in] style The style object.
647
+ @param[out] is_italic Whether text should be italic or not.
648
+ @return
649
+ - \ref SU_ERROR_NONE on success
650
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
651
+ */
652
+ LO_RESULT LOStyleSetTextItalic(LOStyleRef style, bool is_italic);
653
+
654
+ /**
655
+ @brief Gets the font size of a style.
656
+ @param[in] style The style object.
657
+ @param[out] size_in_points The font size in points.
658
+ @return
659
+ - \ref SU_ERROR_NONE on success
660
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
661
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if size_in_points is NULL
662
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
663
+ attribute
664
+ */
665
+ LO_RESULT LOStyleGetFontSize(LOStyleRef style, double* size_in_points);
666
+
667
+ /**
668
+ @brief Sets the font size of a style. On Windows only, this font size will be
669
+ truncated to an integer value.
670
+ @param[in] style The style object.
671
+ @param[in] size_in_points The font size in points.
672
+ @return
673
+ - \ref SU_ERROR_NONE on success
674
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
675
+ - \ref SU_ERROR_OUT_OF_RANGE if size_in_points is less than 1.0
676
+ */
677
+ LO_RESULT LOStyleSetFontSize(LOStyleRef style, double size_in_points);
678
+
679
+ /**
680
+ @brief Gets the text color of a style.
681
+ @param[in] style The style object.
682
+ @param[out] color The color of the text.
683
+ @return
684
+ - \ref SU_ERROR_NONE on success
685
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
686
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if color is NULL
687
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
688
+ attribute
689
+ */
690
+ LO_RESULT LOStyleGetTextColor(LOStyleRef style, SUColor* color);
691
+
692
+ /**
693
+ @brief Sets the text color of a style.
694
+ @param[in] style The style object.
695
+ @param[in] color The new text color to use.
696
+ @return
697
+ - \ref SU_ERROR_NONE on success
698
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
699
+ */
700
+ LO_RESULT LOStyleSetTextColor(LOStyleRef style, SUColor color);
701
+
702
+ /**
703
+ @brief Gets the text underline type of a style.
704
+ @param[in] style The style object.
705
+ @param[out] underline_type The type of underline for text.
706
+ @return
707
+ - \ref SU_ERROR_NONE on success
708
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
709
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if underline_type is NULL
710
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
711
+ attribute
712
+ */
713
+ LO_RESULT LOStyleGetTextUnderline(LOStyleRef style, LOTextUnderline* underline_type);
714
+
715
+ /**
716
+ @brief Sets the text underline type of a style.
717
+ @param[in] style The style object.
718
+ @param[out] underline_type The type of underline to use for text.
719
+ @return
720
+ - \ref SU_ERROR_NONE on success
721
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
722
+ - \ref SU_ERROR_OUT_OF_RANGE if underline_type is invalid
723
+ */
724
+ LO_RESULT LOStyleSetTextUnderline(LOStyleRef style, LOTextUnderline underline_type);
725
+
726
+ /**
727
+ @brief Gets the text elevation type (normal, superscript, or subscript) of a
728
+ style.
729
+ @param[in] style The style object.
730
+ @param[out] elevation_type The text elevation type.
731
+ @return
732
+ - \ref SU_ERROR_NONE on success
733
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
734
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if elevation_type is NULL
735
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
736
+ attribute
737
+ */
738
+ LO_RESULT LOStyleGetTextElevation(LOStyleRef style, LOTextElevation* elevation_type);
739
+
740
+ /**
741
+ @brief Sets the text elevation type of a style.
742
+ @param[in] style The style object.
743
+ @param[in] elevation_type The new text elevation type to use.
744
+ @return
745
+ - \ref SU_ERROR_NONE on success
746
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
747
+ - \ref SU_ERROR_OUT_OF_RANGE if elevation_type is invalid
748
+ */
749
+ LO_RESULT LOStyleSetTextElevation(LOStyleRef style, LOTextElevation elevation_type);
750
+
751
+ /**
752
+ @brief Gets the text alignment type of a style.
753
+ @param[in] style The style object.
754
+ @param[out] alignment_type The alignment type for text.
755
+ @return
756
+ - \ref SU_ERROR_NONE on success
757
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
758
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if alignment_type is NULL
759
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
760
+ attribute
761
+ */
762
+ LO_RESULT LOStyleGetTextAlignment(LOStyleRef style, LOTextAlignment* alignment_type);
763
+
764
+ /**
765
+ @brief Sets the text alignment type of a style.
766
+ @param[in] style The style object.
767
+ @param[in] alignment_type The new text alignment type to use.
768
+ @return
769
+ - \ref SU_ERROR_NONE on success
770
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
771
+ - \ref SU_ERROR_OUT_OF_RANGE if alignment_type is invalid
772
+ */
773
+ LO_RESULT LOStyleSetTextAlignment(LOStyleRef style, LOTextAlignment alignment_type);
774
+
775
+ /**
776
+ @brief Gets the text alignment type of a style.
777
+ @param[in] style The style object.
778
+ @param[out] anchor_type The anchor type for text.
779
+ @return
780
+ - \ref SU_ERROR_NONE on success
781
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
782
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if anchor_type is NULL
783
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
784
+ attribute
785
+ */
786
+ LO_RESULT LOStyleGetTextAnchor(LOStyleRef style, LOTextAnchor* anchor_type);
787
+
788
+ /**
789
+ @brief Sets the text alignment type of a style.
790
+ @param[in] style The style object.
791
+ @param[in] anchor_type The new text anchor type to use.
792
+ @return
793
+ - \ref SU_ERROR_NONE on success
794
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
795
+ - \ref SU_ERROR_OUT_OF_RANGE if anchor_type is invalid
796
+ */
797
+ LO_RESULT LOStyleSetTextAnchor(LOStyleRef style, LOTextAnchor anchor_type);
798
+
799
+ /**
800
+ @brief Gets the dimension rotation alignment type of a style.
801
+ @param[in] style The style object.
802
+ @param[out] alignment The alignment.
803
+ @return
804
+ - \ref SU_ERROR_NONE on success
805
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
806
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if alignment is NULL
807
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
808
+ attribute
809
+ */
810
+ LO_RESULT LOStyleGetDimensionRotationAlignment(
811
+ LOStyleRef style, LODimensionRotationAlignment* alignment);
812
+
813
+ /**
814
+ @brief Sets the dimension rotation alignment type of a style.
815
+ @param[in] style The style object.
816
+ @param[in] alignment The new alignment to use.
817
+ @return
818
+ - \ref SU_ERROR_NONE on success
819
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
820
+ - \ref SU_ERROR_OUT_OF_RANGE if alignment is not a valid value
821
+ */
822
+ LO_RESULT LOStyleSetDimensionRotationAlignment(
823
+ LOStyleRef style, LODimensionRotationAlignment alignment);
824
+
825
+ /**
826
+ @brief Gets the dimension vertical alignment setting of a style.
827
+ @param[in] style The style object.
828
+ @param[out] alignment The alignment.
829
+ @return
830
+ - \ref SU_ERROR_NONE on success
831
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
832
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if alignment is NULL
833
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
834
+ attribute
835
+ */
836
+ LO_RESULT LOStyleGetDimensionVerticalAlignment(
837
+ LOStyleRef style, LODimensionVerticalAlignment* alignment);
838
+
839
+ /**
840
+ @brief Sets the dimension vertical alignment setting of a style. You can not
841
+ set the alignment to \ref LODimensionVerticalAlignment_Offset because it
842
+ requires a relative vector for the position.
843
+ @param[in] style The style object.
844
+ @param[in] alignment The new alignment to use.
845
+ @return
846
+ - \ref SU_ERROR_NONE on success
847
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
848
+ - \ref SU_ERROR_OUT_OF_RANGE if alignment is not a valid value
849
+ */
850
+ LO_RESULT LOStyleSetDimensionVerticalAlignment(
851
+ LOStyleRef style, LODimensionVerticalAlignment alignment);
852
+
853
+ /**
854
+ @brief Gets the dimension units and precision of a style.
855
+ @param[in] style The style object.
856
+ @param[out] units The units setting.
857
+ @param[out] precision The units precision. This is expressed as a value in the
858
+ current units.
859
+ @return
860
+ - \ref SU_ERROR_NONE on success
861
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
862
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if units is NULL
863
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if precision is NULL
864
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
865
+ attribute
866
+ */
867
+ LO_RESULT LOStyleGetDimensionUnits(LOStyleRef style, LODimensionUnits* units, double* precision);
868
+
869
+ /**
870
+ @brief Sets the dimension units and precision of a style.
871
+ @param[in] style The style object.
872
+ @param[out] units The units setting for the document.
873
+ @param[out] precision The units precision. This is expressed as a value in the
874
+ specified units. LayOut only allows for a finite set of
875
+ precision values for each units setting, so it will set
876
+ the precision to the closest valid setting for the
877
+ specified units. See the "Dimension Inspector" for a
878
+ reference of the available precisions for each units
879
+ setting.
880
+ @return
881
+ - \ref SU_ERROR_NONE on success
882
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
883
+ - \ref SU_ERROR_OUT_OF_RANGE if units is invalid
884
+ */
885
+ LO_RESULT LOStyleSetDimensionUnits(LOStyleRef style, LODimensionUnits units, double precision);
886
+
887
+ /**
888
+ @brief Gets the dimension shall sppress unit display attribute of a style.
889
+ @param[in] style The style object.
890
+ @param[out] is_suppressed Is the dimension suppressing unit display.
891
+ @return
892
+ - \ref SU_ERROR_NONE on success
893
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
894
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if is_suppressed is NULL
895
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
896
+ attribute
897
+ */
898
+ LO_RESULT LOStyleGetSuppressDimensionUnits(LOStyleRef style, bool* is_suppressed);
899
+
900
+ /**
901
+ @brief Sets the dimension shall sppress unit display attribute of a style.
902
+ @param[in] style The style object.
903
+ @param[in] is_suppressed Is the dimension suppressing unit display.
904
+ @return
905
+ - \ref SU_ERROR_NONE on success
906
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
907
+ */
908
+ LO_RESULT LOStyleSetSuppressDimensionUnits(LOStyleRef style, bool is_suppressed);
909
+
910
+
911
+
912
+
913
+
914
+ /**
915
+ @brief Gets the maximum number of widths that may be returned by
916
+ LOStrokePatternGetWidths. Use this to determine the size of the array to
917
+ pass to LOStrokePatternGetWidths.
918
+ @param[out] num_widths The maximum number of widths.
919
+ @return
920
+ - \ref SU_ERROR_NONE on success
921
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if num_widths is NULL
922
+ */
923
+ LO_RESULT LOStrokePatternGetMaximumNumberOfWidths(size_t* num_widths);
924
+
925
+ /**
926
+ @brief Gets the widths of the alternating dashes and gaps for the given stroke
927
+ pattern. These widths are expressed in paper space inches, and may be
928
+ scaled (see \ref LOStyleGetStrokePatternScale). Use \ref
929
+ LOStrokePatternGetMaximumNumberOfWidths to determine an adequate length
930
+ for the widths array.
931
+ @param[in] stroke_pattern The stroke pattern.
932
+ @param[in] len The maximum number of widths to return.
933
+ @param[out] widths The widths for the stroke pattern.
934
+ @param[out] num_widths The number of widths returned.
935
+
936
+ @return
937
+ - \ref SU_ERROR_NONE on success
938
+ - \ref SU_ERROR_OUT_OF_RANGE if stroke_pattern is invalid
939
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if widths is NULL
940
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if num_widths is NULL
941
+ */
942
+ LO_RESULT LOStrokePatternGetWidths(
943
+ LOStrokePattern stroke_pattern, size_t len, double widths[], size_t* num_widths);
944
+
945
+ /**
946
+ @brief Gets the the start arrow type of a style.
947
+ @param[in] style The style object.
948
+ @param[out] type The arrow type.
949
+ @return
950
+ - \ref SU_ERROR_NONE on success
951
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
952
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if type is NULL
953
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
954
+ */
955
+ LO_RESULT LOStyleGetStartArrowType(LOStyleRef style, LOArrowType* type);
956
+
957
+ /**
958
+ @brief Sets the the start arrow type of a style.
959
+ @param[in] style The style object.
960
+ @param[in] type The arrow type.
961
+ @return
962
+ - \ref SU_ERROR_NONE on success
963
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
964
+ - \ref SU_ERROR_OUT_OF_RANGE if type is invalid
965
+ */
966
+ LO_RESULT LOStyleSetStartArrowType(LOStyleRef style, LOArrowType type);
967
+
968
+ /**
969
+ @brief Gets the the start arrow size of a style.
970
+ @param[in] style The style object.
971
+ @param[out] size The arrow size.
972
+ @return
973
+ - \ref SU_ERROR_NONE on success
974
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
975
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if size is NULL
976
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
977
+ */
978
+ LO_RESULT LOStyleGetStartArrowSize(LOStyleRef style, double* size);
979
+
980
+ /**
981
+ @brief Sets the the start arrow size of a style.
982
+ @param[in] style The style object.
983
+ @param[in] size The arrow size.
984
+ @return
985
+ - \ref SU_ERROR_NONE on success
986
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
987
+ - \ref SU_ERROR_OUT_OF_RANGE if size is less than 0.25
988
+ */
989
+ LO_RESULT LOStyleSetStartArrowSize(LOStyleRef style, double size);
990
+
991
+ /**
992
+ @brief Gets the end arrow type of a style.
993
+ @param[in] style The style object.
994
+ @param[out] type The arrow type.
995
+ @return
996
+ - \ref SU_ERROR_NONE on success
997
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
998
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if type is NULL
999
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
1000
+ */
1001
+ LO_RESULT LOStyleGetEndArrowType(LOStyleRef style, LOArrowType* type);
1002
+
1003
+ /**
1004
+ @brief Sets the end arrow type of a style.
1005
+ @param[in] style The style object.
1006
+ @param[in] type The arrow type.
1007
+ @return
1008
+ - \ref SU_ERROR_NONE on success
1009
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
1010
+ - \ref SU_ERROR_OUT_OF_RANGE if type is invalid
1011
+ */
1012
+ LO_RESULT LOStyleSetEndArrowType(LOStyleRef style, LOArrowType type);
1013
+
1014
+ /**
1015
+ @brief Gets the end arrow size of a style.
1016
+ @param[in] style The style object.
1017
+ @param[out] size The arrow size.
1018
+ @return
1019
+ - \ref SU_ERROR_NONE on success
1020
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
1021
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if size is NULL
1022
+ - \ref SU_ERROR_NO_DATA if style doesn't specify a value for this style
1023
+ */
1024
+ LO_RESULT LOStyleGetEndArrowSize(LOStyleRef style, double* size);
1025
+
1026
+ /**
1027
+ @brief Sets the end arrow size of a style.
1028
+ @param[in] style The style object.
1029
+ @param[in] size The arrow size.
1030
+ @return
1031
+ - \ref SU_ERROR_NONE on success
1032
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
1033
+ - \ref SU_ERROR_OUT_OF_RANGE if size is less than 0.25
1034
+ */
1035
+ LO_RESULT LOStyleSetEndArrowSize(LOStyleRef style, double size);
1036
+
1037
+ /**
1038
+ @brief Gets whether or not an arrow type is filled in.
1039
+ @param[in] type The arrow type.
1040
+ @param[out] filled Whether the arrow type is filled in or not.
1041
+ @return
1042
+ - \ref SU_ERROR_NONE on success
1043
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if filled is NULL
1044
+ - \ref SU_ERROR_OUT_OF_RANGE if type is invalid
1045
+ */
1046
+ LO_RESULT LOStyleIsArrowTypeFilled(LOArrowType type, bool* filled);
1047
+
1048
+ /**
1049
+ @brief Adds a style to apply to an entity's sub-entity. This would be used to
1050
+ set the arrow head type for extension lines of a dimension, for example.
1051
+ @param[in] style The style to contain the sub entity style.
1052
+ @param[in] type The type of sub entity the sub style is for.
1053
+ @param[in] sub_style The style to set as a sub entity style.
1054
+ @return
1055
+ - \ref SU_ERROR_NONE on success
1056
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
1057
+ - \ref SU_ERROR_INVALID_INPUT if sub_style does not refer to a valid object
1058
+ - \ref SU_ERROR_OUT_OF_RANGE if type is invalid
1059
+ */
1060
+ LO_RESULT LOStyleSetSubEntityStyle(LOStyleRef style, LOSubEntityType type, LOStyleRef sub_style);
1061
+
1062
+ /**
1063
+ @brief Gets the style settings for a sub entity from a style. This would be used
1064
+ to get the current style of a dimension's text, for example.
1065
+ @param[in] style The style containing the sub entity style.
1066
+ @param[in] type The type of sub entity the sub style is for.
1067
+ @param[in] sub_style The sub entity style.
1068
+ @return
1069
+ - \ref SU_ERROR_NONE on success
1070
+ - \ref SU_ERROR_INVALID_INPUT if style does not refer to a valid object
1071
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if sub_style is NULL
1072
+ - \ref SU_ERROR_INVALID_OUTPUT if sub_style does not refer to a valid object
1073
+ - \ref SU_ERROR_OUT_OF_RANGE if type is invalid
1074
+ */
1075
+ LO_RESULT LOStyleGetSubEntityStyle(LOStyleRef style, LOSubEntityType type, LOStyleRef* sub_style);
1076
+
1077
+ #ifdef __cplusplus
1078
+ } // end extern "C"
1079
+ #endif // __cplusplus
1080
+ #endif // LAYOUT_MODEL_STYLE_H_