DimensionStyle.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------------------+
2 |
3 | Supplied under applicable software license agreement.
4 |
5 | Copyright (c) 2018 Bentley Systems, Incorporated. All rights reserved.
6 |
7 +---------------------------------------------------------------------------------------*/
8 #pragma once
9 
11 #include "ElementHandle.h"
12 #include "Tools/BitMask.h"
13 #include "DimensionStyleProps.r.h"
15 
16 DGNPLATFORM_TYPEDEFS (DimensionStyle)
17 DGNPLATFORM_TYPEDEFS (DimStylePropMask)
18 DGNPLATFORM_TYPEDEFS (DimStyleIterator)
19 
20 
21 #include "DgnPlatform/DgnTextStyle.h"
22 
23 #define DIMSTYLE_COMPAREOPTS_Default (0)
24 #define DIMSTYLE_COMPAREOPTS_IgnoreUnusedDiffs (0x0001 << 1)
25 
26 #define DIMSTYLE_COMPAREOPTS_UserInterface DIMSTYLE_COMPAREOPTS_IgnoreUnusedDiffs
27 
29 
30 struct DimensionHandler;
31 struct DimStyleEntryHandler;
32 struct DimStyleTableHandler;
37 
38 
39 /*=================================================================================**/
43 {
44  virtual void _OnDimStyleChange (DimensionStyleCP before, DimensionStyleCP after, StyleEventType type, StyleEventSource source) = 0;
45 };
46 
47 /*=================================================================================**/
51 {
52 };
53 
54 /*=================================================================================**/
67 {
68  friend class CDimensionStyle; // VBA use ToDgnDimStyle
69  friend struct DimStyleIterator;
70  friend struct DimensionHandler;
71  friend struct DimStyleEntryHandler;
72  friend struct DimStyleTableHandler;
73  friend struct NoteCellHeaderHandler;
74 private:
75  virtual void MakeClassAbstract() = 0;
76 public:
77 public:
78  typedef DimStylePropMaskPtr PropertyMaskPtr;
79 
81  DGNPLATFORM_EXPORT static DimensionStylePtr Create (WCharCP name, DgnFileR file);
82 
84  DGNPLATFORM_EXPORT static DimensionStylePtr GetByName (WCharCP name, DgnFileR file);
85 
87  DGNPLATFORM_EXPORT static DimensionStylePtr GetByID (ElementId elemID, DgnFileR file);
88 
90  DGNPLATFORM_EXPORT static DimensionStylePtr GetSettings (DgnFileR file);
91 
93  DGNPLATFORM_EXPORT static BentleyStatus ReplaceSettings (DimensionStyleR settings, DgnFileR file);
94 
96  DGNPLATFORM_EXPORT static bvector<DimensionStylePtr> BuildList (DgnFileR file);
97 
105 
115  DGNPLATFORM_EXPORT BentleyStatus Replace (WCharCP oldName = NULL, DgnFileP file = NULL);
116 
124  DGNPLATFORM_EXPORT static BentleyStatus Delete (WCharCP name, DgnFileR file);
125 
129  DGNPLATFORM_EXPORT bool HasDependants() const;
130 
135  DGNPLATFORM_EXPORT static BentleyStatus RemapDependents (WCharCP destStyle, WCharCP sourceStyle, DgnFileR file);
136 
138  DGNPLATFORM_EXPORT StatusInt GetUnitsProp (UnitDefinitionP master, UnitDefinitionP sub, DimStyleProp iProp) const;
139 
141  DGNPLATFORM_EXPORT StatusInt SetUnitsProp (UnitDefinitionCR master, UnitDefinitionCR sub, DimStyleProp iProp);
142 
144  DGNPLATFORM_EXPORT WStringCR GetName () const;
145 
147  DGNPLATFORM_EXPORT ElementId GetID () const;
148 
150  DGNPLATFORM_EXPORT DgnFileP GetFile () const;
151 
153  DGNPLATFORM_EXPORT UInt32 GetTextStyleId () const;
154 
156  DGNPLATFORM_EXPORT DimensionStylePtr Copy () const;
157 
159  DGNPLATFORM_EXPORT void CopyValues (DimensionStyleCR source);
160 
162  DGNPLATFORM_EXPORT BentleyStatus SetName (WCharCP newName);
163 
176  DGNPLATFORM_EXPORT DimStylePropMaskPtr Compare (DimensionStyleCR otherStyle, UInt32 compareOpts = DIMSTYLE_COMPAREOPTS_Default) const;
177 
179  DGNPLATFORM_EXPORT StatusInt ConvertToFile (DgnFileR file);
180 
185  DGNPLATFORM_EXPORT double GetUorScale (DgnModelR destModel) const;
186 
188  DGNPLATFORM_EXPORT StatusInt GetAccuracyProp (byte& valueOut, DimStyleProp iProp) const;
189 
191  DGNPLATFORM_EXPORT StatusInt GetBooleanProp (bool& valueOut, DimStyleProp iProp) const;
192 
194  DGNPLATFORM_EXPORT StatusInt GetCharProp (UShort& valueOut, DimStyleProp iProp) const;
195 
197  DGNPLATFORM_EXPORT StatusInt GetDoubleProp (double& valueOut, DimStyleProp iProp) const;
198 
200  DGNPLATFORM_EXPORT StatusInt GetDistanceProp (double& valueOut, DimStyleProp iProp, DgnModelP dgnModel) const;
201 
203  DGNPLATFORM_EXPORT StatusInt GetIntegerProp (int& valueOut, DimStyleProp iProp) const;
204 
206  DGNPLATFORM_EXPORT StatusInt GetLevelProp (LevelId& valueOut, DimStyleProp iProp) const;
207 
209  DGNPLATFORM_EXPORT StatusInt GetStringProp (WStringR valueOut, DimStyleProp iProp) const;
210 
212  DGNPLATFORM_EXPORT StatusInt GetFontProp (UInt32& valueOut, DimStyleProp iProp) const;
213 
215  DGNPLATFORM_EXPORT StatusInt GetColorProp (UInt32& valueOut, DimStyleProp iProp) const;
216 
218  DGNPLATFORM_EXPORT StatusInt GetWeightProp (UInt32& valueOut, DimStyleProp iProp) const;
219 
221  DGNPLATFORM_EXPORT StatusInt GetLineStyleProp (Int32& valueOut, DimStyleProp iProp) const;
222 
224  DGNPLATFORM_EXPORT StatusInt GetOneUnitProp (UnitDefinitionR valueOut, DimStyleProp iProp) const;
225 
227  DGNPLATFORM_EXPORT StatusInt GetTextStyleProp (DgnTextStylePtr& valueOut, DimStyleProp iProp) const;
228 
230  DGNPLATFORM_EXPORT StatusInt GetTemplateFlagProp (UShort& valueOut, DimensionType dimensionType, DimStyleProp iProp) const;
231 
233  DGNPLATFORM_EXPORT StatusInt SetAccuracyProp (byte valueIn, DimStyleProp iProp);
234 
236  DGNPLATFORM_EXPORT StatusInt SetBooleanProp (bool valueIn, DimStyleProp iProp);
237 
239  DGNPLATFORM_EXPORT StatusInt SetCharProp (UShort valueIn, DimStyleProp iProp);
240 
242  DGNPLATFORM_EXPORT StatusInt SetDoubleProp (double valueIn, DimStyleProp iProp);
243 
245  DGNPLATFORM_EXPORT StatusInt SetDistanceProp (double valueIn, DimStyleProp iProp, DgnModelP dgnModel);
246 
248  DGNPLATFORM_EXPORT StatusInt SetIntegerProp (int valueIn, DimStyleProp iProp);
249 
251  DGNPLATFORM_EXPORT StatusInt SetLevelProp (LevelId valueIn, DimStyleProp iProp);
252 
254  DGNPLATFORM_EXPORT StatusInt SetStringProp (WCharCP valueIn, DimStyleProp iProp);
255 
257  DGNPLATFORM_EXPORT StatusInt SetFontProp (UInt32 valueIn, DimStyleProp iProp);
258 
260  DGNPLATFORM_EXPORT StatusInt SetColorProp (UInt32 valueIn, DimStyleProp iProp);
261 
263  DGNPLATFORM_EXPORT StatusInt SetWeightProp (UInt32 valueIn, DimStyleProp iProp);
264 
266  DGNPLATFORM_EXPORT StatusInt SetLineStyleProp (Int32 valueIn, DimStyleProp iProp);
267 
269  DGNPLATFORM_EXPORT StatusInt SetOneUnitProp (UnitDefinitionCR valueIn, DimStyleProp iProp);
270 
272  DGNPLATFORM_EXPORT StatusInt SetTextStyleProp (DgnTextStyleCR valueIn, DimStyleProp iProp);
273 
275  DGNPLATFORM_EXPORT StatusInt SetTemplateFlagProp (UShort valueIn, DimensionType dimensionType, DimStyleProp iProp);
276 
282  MSCORE_EXPORT static DimensionStylePtr GetActive ();
283 
289  MSCORE_EXPORT static BentleyStatus SetActive (DimensionStyleR dimStyle);
290 
295  MSCORE_EXPORT static DimensionStylePtr GetByName (WCharCP name, StyleIteratorMode mode);
296 
302  MSCORE_EXPORT static bvector<DimensionStylePtr> BuildList (StyleIteratorMode mode);
303 
309  MSCORE_EXPORT static void AddListener (DimStyleEvents& handler);
310 
315  MSCORE_EXPORT static void DropListener (DimStyleEvents& handler);
316 
317 };
318 
319 struct DimStyleCollection;
320 /*=================================================================================**/
324 struct DimStyleIterator : std::iterator<std::forward_iterator_tag, DimensionStyleP const>
325 {
326 private:
327  friend struct DimStyleCollection;
328  DgnPlatform::ChildElemIter m_elemIter;
329  mutable DimensionStylePtr m_current;
330 
331  DimStyleIterator (DgnFileP file);
332 
333  bool ElemIterIsNamedStyle ();
334 
335 public:
337  DGNPLATFORM_EXPORT DimStyleIterator& operator ++();
339  DGNPLATFORM_EXPORT bool operator == (DimStyleIterator const &) const;
340  DGNPLATFORM_EXPORT bool operator != (DimStyleIterator const &) const;
341  DGNPLATFORM_EXPORT bool IsValid () const;
342 };
343 
344 /*=================================================================================**/
350 {
351 private:
352  RefCountedPtr<DgnFile> m_dgnFile;
353 
354 public:
355 
359 
362 
365 
368 };
369 
370 /*=================================================================================**/
379 {
380 private:
381  virtual void MakeClassAbstract() = 0;
382 public:
383 public:
385  DGNPLATFORM_EXPORT static DimStylePropMaskPtr CreatePropMask ();
386 
389 
391  DGNPLATFORM_EXPORT bool AnyBitSet () const;
392 
394  DGNPLATFORM_EXPORT void ClearAllBits ();
395 
397  DGNPLATFORM_EXPORT StatusInt SetPropertyBit (DimStyleProp dimStyleProp, bool bitValue);
398 
400  DGNPLATFORM_EXPORT StatusInt SetTemplateBit (DimStyleProp dimStyleProp, bool bitValue, DimensionType dimensionType);
401 
403  DGNPLATFORM_EXPORT bool GetPropertyBit (DimStyleProp dimStyleProp) const;
404 
406  DGNPLATFORM_EXPORT bool GetTemplateBit (DimStyleProp dimStyleProp, DimensionType dimensionType) const;
407 
408 }; // DimensionStylePropMask
409 
410 
412 
An Iterator for the children of an ElementHandle for query purposes.
Definition: ElementHandle.h:755
RefCountedPtr< DimStyleIterator > DimStyleIteratorPtr
Definition: DimensionStyle.h:36
An element was added to the file.
DimStyleIterator const_iterator
Definition: DimensionStyle.h:360
#define END_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:69
UInt32 LevelId
Definition: DgnPlatformBaseType.r.h:85
struct Bentley::WString const & WStringCR
Definition: Bentley.h:239
iterator begin()
Definition: stdcxx/bstdmap.h:178
iterator end()
Definition: stdcxx/bstdmap.h:186
StyleEventSource
Definition: DgnPlatform.h:1672
#define DGNPLATFORM_EXPORT
Definition: DgnPlatform/ExportMacros.h:58
A DgnFile is an in-memory representation of a physical file, regardless of its format.
Definition: DgnFile.h:308
wchar_t const * WCharCP
Definition: Bentley.h:224
#define DIMSTYLE_COMPAREOPTS_Default
Definition: DimensionStyle.h:23
A forward iterator to go through the list of styles in a file.
Definition: DimensionStyle.h:324
uint32_t UInt32
Definition: Bentley.r.h:128
#define NULL
Definition: Bentley.h:157
DimensionType
Definition: DgnPlatform.r.h:1069
struct DgnPlatform::DimensionStyle const * DimensionStyleCP
Definition: DimensionStyle.h:16
StyleEventType
Definition: DgnPlatform.h:1661
A DgnModel represents a DgnModel in memory.
Definition: DgnModel.h:236
#define CLRPUBLIC
Definition: DgnPlatform/ExportMacros.h:12
A collection dimension styles in a file.
Definition: DimensionStyle.h:349
BentleyStatus
Definition: Bentley.h:208
int32_t Int32
Definition: Bentley.r.h:119
struct DgnPlatform::DgnTextStyle const & DgnTextStyleCR
Definition: DgnPlatform.h:229
#define DGNPLATFORM_TYPEDEFS(_name_)
Definition: DgnPlatform.h:73
unsigned short UShort
Definition: Bentley.r.h:133
struct DgnPlatform::DimStylePropMask const & DimStylePropMaskCR
Definition: DimensionStyle.h:17
unsigned char byte
Definition: Bentley.r.h:144
StyleIteratorMode
Definition: DgnPlatform.h:1653
#define BEGIN_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:68
RefCountedPtr< DimStylePropMask > DimStylePropMaskPtr
Definition: DimensionStyle.h:35
DVec3d operator*(Transform const &transform, DVec3d const &vector)
operator overload for multiplication of a transform and a vector li>The vector appears on the left as...
The default type handler for Dimension elements (type: DIMENSION_ELM).
Definition: DimensionHandler.h:324
bool operator!=(const BentleyAllocator< _Ty > &, const BentleyAllocator< _Other > &)
Definition: BentleyAllocator.h:152
A Note Cell is-a a sub-type of cell.
Definition: NoteHandler.h:27
int StatusInt
Definition: Bentley.h:222
Concrete class that can be used to implement the reference-counting pattern.
Definition: RefCounted.h:109
UInt64 ElementId
Definition: DgnPlatformBaseType.r.h:83
The property mask contains a series of boolean flags, one for each DimStyleProp that can be stored in...
Definition: DimensionStyle.h:378
DimStylePropMaskPtr PropertyMaskPtr
Definition: DimensionStyle.h:78
DimStyleProp
DimStyleProp lists all the properties a dimension style.
Definition: DimensionStyleProps.r.h:690
const_iterator iterator
only const iteration is possible
Definition: DimensionStyle.h:361
struct DgnPlatform::DimensionStyle const & DimensionStyleCR
Definition: DimensionStyle.h:16
RefCountedPtr< DimensionStyle > DimensionStylePtr
Definition: DimensionStyle.h:33
Definition: DimensionStyle.h:50
Class to manipulate a dimensionstyle in a DgnFile.
Definition: DimensionStyle.h:66
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:51
bool operator==(const BentleyAllocator< _Ty > &, const BentleyAllocator< _Other > &)
Definition: BentleyAllocator.h:146

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.