20 #ifndef TULIPVIEWSETTINGS_H 21 #define TULIPVIEWSETTINGS_H 23 #include <tulip/tulipconf.h> 24 #include <tulip/Color.h> 25 #include <tulip/Size.h> 26 #include <tulip/Graph.h> 27 #include <tulip/Observable.h> 34 class TLP_SCOPE NodeShape {
46 CubeOutlinedTransparent=9,
65 class TLP_SCOPE EdgeShape {
77 class TLP_SCOPE EdgeExtremityShape {
81 enum EdgeExtremityShapes {
88 CubeOutlinedTransparent=9,
103 class TLP_SCOPE LabelPosition {
107 enum LabelPositions {
116 class TLP_SCOPE TulipViewSettings :
public Observable {
120 typedef std::map<LabelPosition::LabelPositions,std::string> labelmap;
123 static TulipViewSettings &instance();
125 static labelmap POSITION_LABEL_MAP;
128 void setDefaultColor(
ElementType elem,
const Color& color);
131 void setDefaultBorderColor(
ElementType elem,
const Color& color);
134 void setdefaultBorderWidth(
ElementType elem,
float borderWidth);
136 Color defaultLabelColor()
const;
137 void setDefaultLabelColor(
const Color& color);
139 Color defaultLabelBorderColor()
const;
140 void setDefaultLabelBorderColor(
const Color& color);
142 float defaultLabelBorderWidth()
const;
143 void setDefaultLabelBorderWidth(
float borderWidth);
145 int defaultLabelPosition()
const;
146 void setDefaultLabelPosition(
int position);
149 void setDefaultSize(
ElementType elem,
const Size& size);
154 int defaultEdgeExtremitySrcShape()
const;
155 void setDefaultEdgeExtremitySrcShape(
int shape);
157 int defaultEdgeExtremityTgtShape()
const;
158 void setDefaultEdgeExtremityTgtShape(
int shape);
160 Size defaultEdgeExtremitySrcSize()
const;
161 void setDefaultEdgeExtremitySrcSize(
const Size &size);
163 Size defaultEdgeExtremityTgtSize()
const;
164 void setDefaultEdgeExtremityTgtSize(
const Size &size);
166 std::string defaultFontFile()
const;
167 void setDefaultFontFile(
const std::string &fontFile);
169 int defaultFontSize()
const;
170 void setDefaultFontSize(
int fontSize);
176 static TulipViewSettings *_instance;
178 Color _defaultNodeColor;
179 Color _defaultEdgeColor;
180 Color _defaultNodeBorderColor;
181 Color _defaultEdgeBorderColor;
182 Color _defaultLabelColor;
183 Color _defaultLabelBorderColor;
185 float _defaultNodeBorderWidth;
186 float _defaultEdgeBorderWidth;
187 float _defaultLabelBorderWidth;
189 int _defaultLabelPosition;
191 Size _defaultNodeSize;
192 Size _defaultEdgeSize;
194 int _defaultNodeShape;
195 int _defaultEdgeShape;
196 int _defaultEdgeExtremitySrcShape;
197 int _defaultEdgeExtremityTgtShape;
199 Size _defaultEdgeExtremitySrcSize;
200 Size _defaultEdgeExtremityTgtSize;
202 std::string _defaultFontFile;
203 int _defaultFontSize;
206 class TLP_SCOPE ViewSettingsEvent :
public tlp::Event {
210 enum ViewSettingsEventType {
211 TLP_DEFAULT_COLOR_MODIFIED,
212 TLP_DEFAULT_SHAPE_MODIFIED,
213 TLP_DEFAULT_SIZE_MODIFIED,
214 TLP_DEFAULT_LABEL_COLOR_MODIFIED
217 ViewSettingsEvent(
ElementType elem,
const Color &color) :
218 Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
219 _type(TLP_DEFAULT_COLOR_MODIFIED), _elem(elem), _color(color) {}
221 ViewSettingsEvent(
ElementType elem,
const Size &size) :
222 Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
223 _type(TLP_DEFAULT_SIZE_MODIFIED), _elem(elem), _size(size) {}
226 Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
227 _type(TLP_DEFAULT_SHAPE_MODIFIED), _elem(elem), _shape(shape) {}
229 ViewSettingsEvent(
const Color &labelColor) :
230 Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
231 _type(TLP_DEFAULT_LABEL_COLOR_MODIFIED), _color(labelColor) {}
233 ViewSettingsEventType getType()
const {
241 Color getColor()
const {
245 Size getSize()
const {
249 int getShape()
const {
255 ViewSettingsEventType _type;
265 #endif // TULIPVIEWSETTINGS_H
Event is the base class for all events used in the Observation mechanism.