NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
gl2d_texts_coll_interface.h
1 #ifndef SDK_GL2D_TEXT_COLL_INTERFACE_H_
11 #define SDK_GL2D_TEXT_COLL_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
16 #include <base/inc/sdk_component_base.h>
18 #include <visualizationlayer/inc/vis_const.h>
19 
20 #include "gl2d_text_interface.h"
22 
23 SDK_GL2D_BEGIN_NAMESPACE
24 
29 
32 
35 typedef GL2DTextID GL2DTextsCollEntryID;
36 static const GL2DTextsCollEntryID kGL2DUndefinedTextsCollEntryID =
37  kGL2DUndefinedTextID;
38 
41 enum GL2DTextsCollEntryPosPropertyIDs
42 {
43 };
44 
47 class IGL2DTextsCollEntryPos : public ISDKProperties
48 {
49 public:
51  virtual void SDK_CALLTYPE Dump() const throw() = 0;
52 
54  virtual IGL2DCanvasSP SDK_CALLTYPE GetCanvas() const throw() = 0;
55 
58  virtual SDKResult SDK_CALLTYPE Toggle(const bool& visible) throw() = 0;
60  virtual bool SDK_CALLTYPE IsVisible() const throw() = 0;
61 
64  virtual SDKResult SDK_CALLTYPE SetPosition(
65  const SDKPointF2D& position) throw() = 0;
67  virtual SDKPointF2D SDK_CALLTYPE GetPosition() const throw() = 0;
68 
71  virtual SDKResult SDK_CALLTYPE SetTransform(
72  const SDKMatrix3X2& position_transform) throw() = 0;
74  virtual SDKMatrix3X2 SDK_CALLTYPE GetTransform() const throw() = 0;
75 
78  virtual SDKResult SDK_CALLTYPE SetTextColor(
79  const SDKColorF& text_color) throw() = 0;
81  virtual SDKColorF SDK_CALLTYPE GetTextColor() const throw() = 0;
82 
86  virtual SDKResult SDK_CALLTYPE SetTextBorderColor(
87  const SDKColorF& border_color) throw() = 0;
89  virtual SDKColorF SDK_CALLTYPE GetTextBorderColor() const throw() = 0;
90 
91  SDK_IMPLEMENT_IID(IGL2DTextsCollEntryPos)
92  SDK_END_INTERFACE(IGL2DTextsCollEntryPos)
93 };
94 SDK_DECLARE_IID(IGL2DTextsCollEntryPos)
95 
96 enum GL2DTextsCollEntryPropertyIDs
99 {
100 };
101 
104 class IGL2DTextsCollEntry : public ISDKProperties
105 {
106 public:
108  virtual void SDK_CALLTYPE Dump() const throw() = 0;
109 
111  virtual IGL2DCanvasSP SDK_CALLTYPE GetCanvas() const throw() = 0;
112 
114  virtual GL2DTextsCollEntryID SDK_CALLTYPE GetID() const throw() = 0;
115 
117  virtual GL2DTextType SDK_CALLTYPE GetType() const throw() = 0;
118 
120  virtual IGL2DFontSP SDK_CALLTYPE GetFont() const throw() = 0;
122  inline GL2DFontID SDK_CALLTYPE GetFontID() const
123  {
124  const IGL2DFontSP font = GetFont();
125  return font ? font->GetID() : kGL2DUnknownFontID;
126  }
127 
129  virtual SDKResult SDK_CALLTYPE GetTextString(
130  SDKString& text_string) const throw() = 0;
132  virtual float SDK_CALLTYPE GetFontSize() const throw() = 0;
134  virtual GL2DTextReadingDirection SDK_CALLTYPE GetReadingDirection() const throw() = 0;
136  virtual GL2DTextPivotPoint SDK_CALLTYPE GetPivotPoint() const throw() = 0;
138  virtual SDKPointF2D SDK_CALLTYPE GetPivotPointOffset() const throw() = 0;
139 
142  virtual SDKUInt32 SDK_CALLTYPE GetTextCenterLine() const throw() = 0;
144  virtual SDKSize SDK_CALLTYPE GetTextSize() const throw() = 0;
145 
148  virtual SDKResult SDK_CALLTYPE SetDefaultPositionTransform(
149  const SDKMatrix3X2& def_pos_transform) throw() = 0;
151  virtual SDKMatrix3X2 SDK_CALLTYPE GetDefaultPositionTransform() const throw() = 0;
152 
155  virtual SDKResult SDK_CALLTYPE SetDefaultTextColor(
156  const SDKColorF& def_text_color) throw() = 0;
158  virtual SDKColorF SDK_CALLTYPE GetDefaultTextColor() const throw() = 0;
159 
162  virtual SDKResult SDK_CALLTYPE SetDefaultTextBorderColor(
163  const SDKColorF& def_text_border_color) throw() = 0;
165  virtual SDKColorF SDK_CALLTYPE GetDefaultTextBorderColor() const throw() = 0;
166 
169  virtual SDKResult SDK_CALLTYPE TogglePositions(const bool& visible) throw() = 0;
173  virtual SDKResult SDK_CALLTYPE ApplyPositionTransform(
174  const SDKMatrix3X2& pos_transform) throw() = 0;
177  virtual SDKResult SDK_CALLTYPE ApplyTextColor(
178  const SDKColorF& text_color) throw() = 0;
182  virtual SDKResult SDK_CALLTYPE ApplyTextBorderColor(
183  const SDKColorF& text_border_color) throw() = 0;
184 
188  virtual IGL2DTextsCollEntryPosSP SDK_CALLTYPE AddPosition(
189  const SDKPointF2D& position) throw() = 0;
192  virtual SDKResult SDK_CALLTYPE RemovePosition(
193  const SDKUInt32& index) throw() = 0;
194 
196  virtual SDKUInt32 SDK_CALLTYPE GetPositionsCount() const throw() = 0;
198  virtual IGL2DTextsCollEntryPosSP SDK_CALLTYPE GetPositionByIndex(
199  const SDKUInt32& index) const throw() = 0;
200 
201  SDK_IMPLEMENT_IID(IGL2DTextsCollEntry)
202  SDK_END_INTERFACE(IGL2DTextsCollEntry)
203 };
204 SDK_DECLARE_IID(IGL2DTextsCollEntry)
205 
208 enum GL2DTextsCollPropertyIDs
209 {
210 };
211 
214 class IGL2DTextsColl : public ISDKProperties
215 {
216 public:
218  virtual void SDK_CALLTYPE Dump() const throw() = 0;
219 
221  virtual IGL2DCanvasSP SDK_CALLTYPE GetParent() const throw() = 0;
222 
225  virtual SDKUInt32 SDK_CALLTYPE GetMemSize() const throw() = 0;
229  virtual SDKUInt32 SDK_CALLTYPE GetActiveTextPositionsCount() const throw() = 0;
230 
232  virtual SDKUInt32 SDK_CALLTYPE GetTextsCount() const throw() = 0;
234  virtual IGL2DTextsCollEntrySP SDK_CALLTYPE GetTextByIndex(
235  const SDKUInt32& index) const throw() = 0;
237  virtual IGL2DTextsCollEntrySP SDK_CALLTYPE GetTextByID(
238  const GL2DTextsCollEntryID& id) const throw() = 0;
239 
245  virtual SDKResult SDK_CALLTYPE StartEdit() throw() = 0;
247  virtual SDKResult SDK_CALLTYPE FinishEdit() throw() = 0;
249  virtual bool SDK_CALLTYPE IsEditing() const throw() = 0;
250 
260 protected:
261  virtual IGL2DTextsCollEntrySP SDK_CALLTYPE AddText(
262  const IGL2DTextSP& text, const SDKColorF& text_color,
263  const SDKColorF& border_color) throw() = 0;
264 public:
265 
268  inline IGL2DTextsCollEntrySP SDK_CALLTYPE AddGenericText(
269  const IGL2DTextSP& text)
270  {
271  const SDKColorF inv_clr = { -1.0f, -1.0f, -1.0f, -1.0f };
272  return AddText(text, inv_clr, inv_clr);
273  }
276  inline IGL2DTextsCollEntrySP SDK_CALLTYPE AddSimpleText(
277  const IGL2DTextSP& text, const SDKColorF& text_color)
278  {
279  const SDKColorF inv_border_clr = { -1.0f, -1.0f, -1.0f, -1.0f };
280  return AddText(text, text_color, inv_border_clr);
281  }
284  inline IGL2DTextsCollEntrySP SDK_CALLTYPE AddBorderedText(
285  const IGL2DTextSP& text, const SDKColorF& text_color,
286  const SDKColorF& border_color)
287  { return AddText(text, text_color, border_color); }
288 
291  virtual SDKResult SDK_CALLTYPE RemoveText(
292  const GL2DTextsCollEntryID& text_id) throw() = 0;
293 
295  virtual SDKResult SDK_CALLTYPE Toggle(
296  const IGL2DTextsVisStateSP& texts_visibility_state) throw() = 0;
297 
298  SDK_IMPLEMENT_IID(IGL2DTextsColl)
299  SDK_END_INTERFACE(IGL2DTextsColl)
300 };
301 SDK_DECLARE_IID(IGL2DTextsColl)
302 
305 {
306 public:
307  AutoStartFinishTextsCollEdit(const IGL2DTextsCollSP& texts_coll)
308  : m_texts_coll(texts_coll), m_started(false)
309  {
310  if (m_texts_coll)
311  m_started = SDK_SUCCEEDED(m_texts_coll->StartEdit());
312  }
313 
315  { if (m_started) m_texts_coll->FinishEdit(); }
316 
317  inline bool IsEditing() const
318  { return m_texts_coll ? m_texts_coll->IsEditing() : false; }
319 
320 private:
321  const IGL2DTextsCollSP m_texts_coll;
322  bool m_started;
323 };
324 
325 SDK_GL2D_END_NAMESPACE
326 
327 #endif // SDK_GL2D_TEXT_COLL_INTERFACE_H_
IGL2DTextsCollEntry::GetCanvas
virtual IGL2DCanvasSP SDK_CALLTYPE GetCanvas() const =0
Returns parent canvas object.
SDKColorF
A RGBA color.
Definition: color_base_types.h:15
IGL2DTextsCollEntry::GetFont
virtual IGL2DFontSP SDK_CALLTYPE GetFont() const =0
Returns appropriate Font object.
IGL2DTextsCollEntry::GetTextString
virtual SDKResult SDK_CALLTYPE GetTextString(SDKString &text_string) const =0
Returns text string.
IGL2DTextsCollEntry::ApplyPositionTransform
virtual SDKResult SDK_CALLTYPE ApplyPositionTransform(const SDKMatrix3X2 &pos_transform)=0
Applies given text position transformation matrix to all of text positions in given text entry IGL2DT...
IGL2DTextsCollEntryPos::Dump
virtual void SDK_CALLTYPE Dump() const =0
Dumps given object.
base_types.h
SDK base types.
IGL2DTextsCollEntryPos::Toggle
virtual SDKResult SDK_CALLTYPE Toggle(const bool &visible)=0
Toggles given text position on/off IGL2DTextsColl::StartEdit method should be called before calling t...
AutoStartFinishTextsCollEdit
Auto starts texts collection editing in ctor, finishes in dtor.
Definition: gl2d_texts_coll_interface.h:304
IGL2DTextsCollEntry::GetPivotPointOffset
virtual SDKPointF2D SDK_CALLTYPE GetPivotPointOffset() const =0
Returns pivot point offset.
IGL2DTextsColl
GL2D Texts Collection object.
Definition: gl2d_texts_coll_interface.h:214
gl2d_texts_visibility_state_interface.h
GL2D texts visibility state, describes visibility state of several texts.
IGL2DTextsCollEntryPos
Single text collection entry position (single text position)
Definition: gl2d_texts_coll_interface.h:47
SDK_SUCCEEDED
#define SDK_SUCCEEDED(res)
Checks no error result.
Definition: sdk_results_enum.h:67
properties_interface.h
Object generic properties interface.
IGL2DTextsCollEntry::GetID
virtual GL2DTextsCollEntryID SDK_CALLTYPE GetID() const =0
Returns texts collection entry ID.
IGL2DTextsCollEntry
Single text collection entry (single text)
Definition: gl2d_texts_coll_interface.h:104
IGL2DTextsCollEntryPos::IsVisible
virtual bool SDK_CALLTYPE IsVisible() const =0
Returns text position visibility state.
GL2DTextPivotPoint
GL2DTextPivotPoint
GL2D Text type.
Definition: gl2d_text_interface.h:60
IGL2DTextsCollEntry::ApplyTextColor
virtual SDKResult SDK_CALLTYPE ApplyTextColor(const SDKColorF &text_color)=0
Applies given text color to all of text positions in given text entry IGL2DTextsColl::StartEdit metho...
IGL2DTextsCollEntryPos::SetPosition
virtual SDKResult SDK_CALLTYPE SetPosition(const SDKPointF2D &position)=0
Sets new text position IGL2DTextsColl::StartEdit method should be called before calling this one.
IGL2DTextsCollEntry::ApplyTextBorderColor
virtual SDKResult SDK_CALLTYPE ApplyTextBorderColor(const SDKColorF &text_border_color)=0
Applies given text border color to all of text positions in given text entry IGL2DTextsColl::StartEdi...
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
IGL2DTextsCollEntry::GetType
virtual GL2DTextType SDK_CALLTYPE GetType() const =0
Returns text type.
IGL2DTextsCollEntry::GetDefaultTextBorderColor
virtual SDKColorF SDK_CALLTYPE GetDefaultTextBorderColor() const =0
Returns current default text border color.
IGL2DTextsCollEntry::GetPositionsCount
virtual SDKUInt32 SDK_CALLTYPE GetPositionsCount() const =0
Returns total number of text positions in text entry.
gl2d_text_interface.h
GL2D Text object.
IGL2DTextsCollEntry::GetDefaultPositionTransform
virtual SDKMatrix3X2 SDK_CALLTYPE GetDefaultPositionTransform() const =0
Returns current default text position transformation matrix.
IGL2DTextsCollEntryPos::GetPosition
virtual SDKPointF2D SDK_CALLTYPE GetPosition() const =0
Returns text position.
SDKPointF2D
Single 2D point.
Definition: geometry_base_types.h:33
IGL2DTextsCollEntry::AddPosition
virtual IGL2DTextsCollEntryPosSP SDK_CALLTYPE AddPosition(const SDKPointF2D &position)=0
Adds new position for given text entry position - Text position, position of appropriate text center ...
GL2DTextType
GL2DTextType
GL2D Text type.
Definition: gl2d_text_interface.h:43
IGL2DTextsCollEntry::GetDefaultTextColor
virtual SDKColorF SDK_CALLTYPE GetDefaultTextColor() const =0
Returns current default text color.
platform.h
Describes the platform constants.
IGL2DTextsCollEntryPos::SetTextBorderColor
virtual SDKResult SDK_CALLTYPE SetTextBorderColor(const SDKColorF &border_color)=0
Sets text border color IGL2DTextsColl::StartEdit method should be called before calling this one Only...
GL2DFontID
SDKUInt32 GL2DFontID
Font ID.
Definition: gl2d_font_interface.h:29
GL2DTextReadingDirection
GL2DTextReadingDirection
GL2D Text reading direction.
Definition: gl2d_text_interface.h:124
IGL2DTextsCollEntry::GetPivotPoint
virtual GL2DTextPivotPoint SDK_CALLTYPE GetPivotPoint() const =0
Returns pivot point type.
IGL2DTextsCollEntryPos::GetTransform
virtual SDKMatrix3X2 SDK_CALLTYPE GetTransform() const =0
Returns current text position transformation matrix.
IGL2DCanvas
GL2D Canvas to use to drawing NOTE! Create/Draw functionality was moved to appropriate GL2D Canvas Fu...
Definition: gl2d_canvas_interface.h:435
IGL2DTextsCollEntry::GetTextSize
virtual SDKSize SDK_CALLTYPE GetTextSize() const =0
Returns text (texture) size.
IGL2DTextsCollEntryPos::GetCanvas
virtual IGL2DCanvasSP SDK_CALLTYPE GetCanvas() const =0
Returns parent canvas object.
IGL2DTextsCollEntryPos::GetTextColor
virtual SDKColorF SDK_CALLTYPE GetTextColor() const =0
Returns current text color.
IGL2DTextsCollEntry::Dump
virtual void SDK_CALLTYPE Dump() const =0
Dumps given object.
IGL2DTextsCollEntry::SetDefaultPositionTransform
virtual SDKResult SDK_CALLTYPE SetDefaultPositionTransform(const SDKMatrix3X2 &def_pos_transform)=0
Sets default position transformation matrix Given matrix will be set for all of new text positions.
IGL2DTextsCollEntry::SetDefaultTextColor
virtual SDKResult SDK_CALLTYPE SetDefaultTextColor(const SDKColorF &def_text_color)=0
Sets default text color Given color will be set for all of new text positions.
IGL2DTextsCollEntry::TogglePositions
virtual SDKResult SDK_CALLTYPE TogglePositions(const bool &visible)=0
Toggles on/off all of text positions in given text entry IGL2DTextsColl::StartEdit method should be c...
IGL2DTextsCollEntry::SetDefaultTextBorderColor
virtual SDKResult SDK_CALLTYPE SetDefaultTextBorderColor(const SDKColorF &def_text_border_color)=0
Sets default text border color (only for bordered texts) Given color will be set for all of new text ...
IGL2DTextsCollEntry::RemovePosition
virtual SDKResult SDK_CALLTYPE RemovePosition(const SDKUInt32 &index)=0
Removes text position from text by it's index IGL2DTextsColl::StartEdit method should be called befor...
kGL2DUnknownFontID
static const GL2DFontID kGL2DUnknownFontID
Unknown Font ID.
Definition: gl2d_font_interface.h:33
IGL2DTextsCollEntryPos::GetTextBorderColor
virtual SDKColorF SDK_CALLTYPE GetTextBorderColor() const =0
Returns current text border color.
SDKSize
SizeUI.
Definition: geometry_base_types.h:1235
IGL2DTextsCollEntryPos::SetTransform
virtual SDKResult SDK_CALLTYPE SetTransform(const SDKMatrix3X2 &position_transform)=0
Sets text position transformation matrix IGL2DTextsColl::StartEdit method should be called before cal...
IGL2DTextsCollEntry::GetFontID
GL2DFontID SDK_CALLTYPE GetFontID() const
Returns appropriate Font ID.
Definition: gl2d_texts_coll_interface.h:122
IGL2DTextsCollEntry::GetFontSize
virtual float SDK_CALLTYPE GetFontSize() const =0
Returns font size.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
GL2DTextID
SDKUInt64 GL2DTextID
Generic GL2D text ID.
Definition: gl2d_texts_visibility_state_interface.h:28
IGL2DTextsCollEntryPos::SetTextColor
virtual SDKResult SDK_CALLTYPE SetTextColor(const SDKColorF &text_color)=0
Sets text color IGL2DTextsColl::StartEdit method should be called before calling this one.
IGL2DTextsCollEntry::GetPositionByIndex
virtual IGL2DTextsCollEntryPosSP SDK_CALLTYPE GetPositionByIndex(const SDKUInt32 &index) const =0
Returns text position by it's index.
IGL2DTextsCollEntry::GetReadingDirection
virtual GL2DTextReadingDirection SDK_CALLTYPE GetReadingDirection() const =0
Returns reading direction.
IGL2DTextsCollEntry::GetTextCenterLine
virtual SDKUInt32 SDK_CALLTYPE GetTextCenterLine() const =0
Returns text center line position in texture (starting from 0 - bottom of texture)