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>
34class TLP_SCOPE NodeShape {
39 BottomShadowedSphere = 21,
45 CubeOutlinedTransparent = 9,
51 LeftBottomShadowedSphere = 22,
53 RightBottomShadowedSphere = 23,
66class TLP_SCOPE EdgeShape {
69 enum EdgeShapes { Polyline = 0, BezierCurve = 4, CatmullRomCurve = 8, CubicBSplineCurve = 16 };
72class TLP_SCOPE EdgeExtremityShape {
75 enum EdgeExtremityShapes {
82 CubeOutlinedTransparent = 9,
97class TLP_SCOPE LabelPosition {
100 enum LabelPositions { Center = 0, Top, Bottom, Left, Right };
104class TLP_SCOPE TulipViewSettings :
public Observable {
107 typedef std::map<LabelPosition::LabelPositions, std::string> labelmap;
109 static TulipViewSettings &instance();
111 static labelmap POSITION_LABEL_MAP;
113 static Color defaultColor(ElementType elem);
114 static void setDefaultColor(ElementType elem,
const Color &color);
116 static Color defaultBorderColor(ElementType elem);
117 static void setDefaultBorderColor(ElementType elem,
const Color &color);
119 static float defaultBorderWidth(ElementType elem);
120 static void setdefaultBorderWidth(ElementType elem,
float borderWidth);
122 static Color defaultLabelColor();
123 static void setDefaultLabelColor(
const Color &color);
125 static Color defaultLabelBorderColor();
126 static void setDefaultLabelBorderColor(
const Color &color);
128 static float defaultLabelBorderWidth();
129 static void setDefaultLabelBorderWidth(
float borderWidth);
131 static int defaultLabelPosition();
132 static void setDefaultLabelPosition(
int position);
134 static Size defaultSize(ElementType elem);
135 static void setDefaultSize(ElementType elem,
const Size &size);
137 static int defaultShape(ElementType elem);
138 static void setDefaultShape(ElementType elem,
int shape);
140 static int defaultEdgeExtremitySrcShape();
141 static void setDefaultEdgeExtremitySrcShape(
int shape);
143 static int defaultEdgeExtremityTgtShape();
144 static void setDefaultEdgeExtremityTgtShape(
int shape);
146 static Size defaultEdgeExtremitySrcSize();
147 static void setDefaultEdgeExtremitySrcSize(
const Size &size);
149 static Size defaultEdgeExtremityTgtSize();
150 static void setDefaultEdgeExtremityTgtSize(
const Size &size);
152 static std::string defaultFontFile();
153 static void setDefaultFontFile(
const std::string &fontFile);
155 static int defaultFontSize();
156 static void setDefaultFontSize(
int fontSize);
159class TLP_SCOPE ViewSettingsEvent :
public tlp::Event {
162 enum ViewSettingsEventType {
163 TLP_DEFAULT_COLOR_MODIFIED,
164 TLP_DEFAULT_SHAPE_MODIFIED,
165 TLP_DEFAULT_SIZE_MODIFIED,
166 TLP_DEFAULT_LABEL_COLOR_MODIFIED
169 ViewSettingsEvent(ElementType elem,
const Color &color)
170 : Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
171 _type(TLP_DEFAULT_COLOR_MODIFIED), _elem(elem), _color(color) {}
173 ViewSettingsEvent(ElementType elem,
const Size &size)
174 : Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
175 _type(TLP_DEFAULT_SIZE_MODIFIED), _elem(elem), _size(size) {}
177 ViewSettingsEvent(ElementType elem,
int shape)
178 : Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
179 _type(TLP_DEFAULT_SHAPE_MODIFIED), _elem(elem), _shape(shape) {}
181 ViewSettingsEvent(
const Color &labelColor)
182 : Event(TulipViewSettings::instance(), Event::TLP_MODIFICATION),
183 _type(TLP_DEFAULT_LABEL_COLOR_MODIFIED), _color(labelColor) {}
185 ViewSettingsEventType getType()
const {
193 Color getColor()
const {
197 Size getSize()
const {
201 int getShape()
const {
206 ViewSettingsEventType _type;
Event is the base class for all events used in the Observation mechanism.