00001
00015 #ifndef INC_MI32_LABELFRAMEPARMS_H
00016 #define INC_MI32_LABELFRAMEPARMS_H
00017
00018 #ifndef INC_MI32_ELEMSTYL_H
00019 #include <mi32/elemstyl.h>
00020 #endif
00021
00022
00023 #ifndef GENERATING_DOXYGEN_OUTPUT
00024 class SERIALIZERITEM;
00025 #endif
00026
00027
00030 class LABELFRAMEPARMS {
00031 public:
00032 enum FRAMESHAPE {
00033 FRAMESHAPE_None = 0,
00034 FRAMESHAPE_Rectangle,
00035 FRAMESHAPE_RoundedRectangle,
00036 FRAMESHAPE_Ellipse,
00037 FRAMESHAPE_Circle
00038 };
00039
00041 LABELFRAMEPARMS (
00042 ) :
00043 m_FrameShape(FRAMESHAPE_None),
00044 m_Margin(0.0),
00045 m_bCartoonBalloonLeaders(false),
00046 m_TMargin(0.0),
00047 m_BMargin(0.0),
00048 m_LMargin(0.0),
00049 m_RMargin(0.0),
00050 m_Arrow(0)
00051 { }
00052
00054 LABELFRAMEPARMS (
00055 const LABELFRAMEPARMS& rhs
00056 ) { Copy(rhs); }
00057
00059 ~LABELFRAMEPARMS() {}
00060
00062 LABELFRAMEPARMS& operator= (
00063 const LABELFRAMEPARMS& rhs
00064 ) { if (this != &rhs) { Copy(rhs); } return (*this); }
00065
00066 static const SERIALIZERITEM* SerialGetItemDef ();
00067
00069 void Copy (
00070 const LABELFRAMEPARMS& rhs
00071 );
00072
00073 bool GetCartoonBalloonLeaders () const
00074 { return m_bCartoonBalloonLeaders; }
00075
00076 FRAMESHAPE GetFrameShape () const
00077 { return m_FrameShape; }
00078
00079 const POLYSTYLE& GetFrameStyle (
00080 ) const {
00081 return m_FrameStyle;
00082 }
00083
00084 const LINESTYLE& GetLeaderStyle (
00085 ) const {
00086 return m_LeaderStyle;
00087 }
00088
00089
00090 double GetMargin (
00091 ) const {
00092 return m_Margin;
00093 }
00094
00095 double GetTopMargin (
00096 ) const {
00097 return m_TMargin + m_Margin;
00098 }
00099
00100 double GetBottomMargin (
00101 ) const {
00102 return m_BMargin + m_Margin;
00103 }
00104
00105 double GetLeftMargin (
00106 ) const {
00107 return m_LMargin + m_Margin;
00108 }
00109
00110 double GetRightMargin (
00111 ) const {
00112 return m_RMargin + m_Margin;
00113 }
00114
00115 void SetCartoonBalloonLeaders (
00116 bool value
00117 ) {
00118 m_bCartoonBalloonLeaders = value;
00119 }
00120
00121 void SetFrameShape (
00122 FRAMESHAPE shape
00123 ) {
00124 m_FrameShape = shape;
00125 }
00126
00127 void SetFrameStyle (
00128 const POLYSTYLE& style
00129 ) {
00130 m_FrameStyle = style;
00131 }
00132
00133 void SetLeaderStyle (
00134 const LINESTYLE& style
00135 ) {
00136 m_LeaderStyle = style;
00137 }
00138
00139 void SetMargin (
00140 double margin
00141 ) {
00142 m_Margin = margin;
00143 }
00144
00145 void SetTopMargin (
00146 double margin
00147 ) {
00148 m_TMargin = margin;
00149 }
00150
00151 void SetBottomMargin (
00152 double margin
00153 ) {
00154 m_BMargin = margin;
00155 }
00156
00157 void SetLeftMargin (
00158 double margin
00159 ) {
00160 m_LMargin = margin;
00161 }
00162
00163 void SetRightMargin (
00164 double margin
00165 ) {
00166 m_RMargin = margin;
00167 }
00168
00169 bool UsesTransparency (
00170 ) const {
00171 if (m_FrameShape != FRAMESHAPE_None && m_FrameStyle.UsesTransparency()) return (true);
00172 return (m_LeaderStyle.UsesTransparency());
00173 }
00174
00175 private:
00176 #ifndef GENERATING_DOXYGEN_OUTPUT
00177 POLYSTYLE m_FrameStyle;
00178 LINESTYLE m_LeaderStyle;
00179 FRAMESHAPE m_FrameShape;
00180 double m_Margin;
00181 bool m_bCartoonBalloonLeaders;
00182 double m_TMargin;
00183 double m_BMargin;
00184 double m_LMargin;
00185 double m_RMargin;
00186 int m_Arrow;
00187
00188 friend class SML_LABELFRAMEPARMS;
00189 #endif // GENERATING_DOXYGEN_OUTPUT
00190 };
00191
00192 #endif // INC_MI32_LABELFRAMEPARMS_H