Currently the tagging system is implemented only for the graph types that require only one data object per displayed item (e.g., Line, VBar, HBar, etc.).
The first step in data tagging system is to select a persistence model for the generated labels.
To select a persistence model, call SRGraphStyle::SetTagModel() for the style member of the graph object with one of the following symbols:
CX_TAG_MODEL_AUTOMATIC = CX_TAG_MODEL_LOCAL
CX_TAG_MODEL_PERSISTENT
CX_TAG_MODEL_BLOCKED
For example,
m_Graph.GetStyle()->SetTagModel(CX_TAG_MODEL_LOCAL); |
To draw a line from the data item to its displaced tag (blocked model only), call SRGraphStyle::SetLinkTags(TRUE). For example,
pD->GetStyle()->SetLinkTags(TRUE); |
For each data object to be tagged, styles can be applied to specify the appearance of the tag and its border.
To select the content of the tag, call SRGraphStyle::SetLabelStyle() with one of these symbols:
CX_LABEL_AUTOMATIC = CX_LABEL_NONE
CX_LABEL_VALUE
CX_LABEL_TEXT
CX_LABEL_TEXT_VALUE
For example,
SRGraphStyle* pDStyle = m_Graph.GetSafeData(n,g)->GetStyle(); pDStyle->SetLabelStyle(CX_LABEL_TEXT); |
To select the outline style of the tag, call SRGraphStyle::SetTagOutlineStyle() with one of these symbols:
CX_TAG_OUTLINE_NONE = CX_TAG_OUTLINE_AUTOMATIC
CX_TAG_OUTLINE_BOX
CX_TAG_OUTLINE_ELLIPSE
CX_TAG_OUTLINE_FLASH
CX_TAG_OUTLINE_POLYGON //(not yet implemented)
CX_TAG_OUTLINE_CUSTOM // (not yet implemented)
For example,
pDStyle->SetTagOutlineStyle(CX_TAG_OUTLINE_BOX); |
To set the position of the tag relative to the data item (and the collision avoidance vector for the blocked model), call SRGraphStyle::SetTagPosition() with one of these symbols:
CX_TAG_POSITION_LEFT
CX_TAG_POSITION_LEFTABOVE
CX_TAG_POSITION_ABOVE
CX_TAG_POSITION_RIGHTABOVE
CX_TAG_POSITION_RIGHT
CX_TAG_POSITION_RIGHTBELOW
CX_TAG_POSITION_BELOW
CX_TAG_POSITION_LEFTBELOW
CX_TAG_POSITION_CENTERED
For example,
pDStyle->SetTagPosition(CX_TAG_POSITION_ABOVE); |
To set the font size for the labels, call SRGraphStyle::SetTagFontSize() with one of these symbols:
CX_TAG_FONT_NORMAL
CX_TAG_FONT_SMALL // (8 points)
CX_TAG_FONT_LARGE // (10 points)
CX_TAG_FONT_CUSTOM // override GetCustomTagFontSize()
For example,
pDStyle->SetTagFontSize(CX_TAG_FONT_LARGE); |
To set the font and tag frame orientation, call SRGraphStyle::SetTagOrientation() with one of these symbols:
CX_TAG_ORIENTATION_ZERO
CX_TAG_ORIENTATION_45
CX_TAG_ORIENTATION_90
CX_TAG_ORIENTATION_135
CX_TAG_ORIENTATION_180
CX_TAG_ORIENTATION_225
CX_TAG_ORIENTATION_270
CX_TAG_ORIENTATION_315
For example,
pDStyle->SetTagOrientation(CX_TAG_ORIENTATION_ZER0); |
The use of these styles is illustrated in the code segment below, which labels the four curves (groups) by tagging the first data object in each group.
SRGraphDisplay* pD=new SRGraphDisplay; SRGraphStyle* pS=pD->GetStyle(); pD->SetMeasurement(SRGraphComponent::PERCENT); pD->SetRect(-1,15,-1,85 pS->SetGraphStyle(CX_GRAPH_LINE); pS->SetAxisStyle(CX_AXIS_AUTOMATIC); m_Graph.AddComponent((SRGraphComponent *)pD); // select a persistence model for tags m_Graph.GetStyle()->SetTagModel(CX_TAG_MODEL_LOCAL); // loop setting data values and annotations, 4 groups [not shown] // loop setting tag styles SRGraphStyle* pDStyle; for(int g=0; g<4; g++) { // label first data object in each group pDStyle = m_Graph.GetSafeData(0,g)->GetStyle(); // with the data object's annotation pDStyle->SetLabelStyle(CX_LABEL_TEXT); // use a rectangular frame pDStyle->SetTagOutlineStyle(CX_TAG_OUTLINE_BOX); // and a large font pDStyle->SetTagFontSize(CX_TAG_FONT_LARGE); pDStyle->SetTagColor(CXCLR_CYAN); // place the tag above the data item pDStyle->SetTagPosition(CX_TAG_POSITION_ABOVE); // make 'em horizontal pDStyle-> SetTagOrientation(CX_TAG_ORIENTATION_ZER0); } |
Copyright © Rogue Wave Software, Inc. All Rights Reserved.
The Rogue Wave name and logo, and Stingray, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.