00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GCCV_BRACKETS_H
00026 #define GCCV_BRACKETS_H
00027
00028 #include "item.h"
00029 #include <string>
00030
00031 namespace gccv {
00032
00033 typedef struct _BracketsMetrics BracketsMetrics;
00034
00038 typedef enum
00039 {
00042 BracketsTypeNormal,
00045 BracketsTypeSquare,
00048 BracketsTypeCurly
00049 } BracketsTypes;
00050
00051 class Brackets: public Item
00052 {
00053 public:
00054 Brackets (Canvas *canvas, BracketsTypes type, char const *fontdesc, double x0, double y0, double x1, double y1);
00055 Brackets (Group *parent, BracketsTypes type, char const *fontdesc, double x0, double y0, double x1, double y1, ItemClient *client = NULL);
00056 ~Brackets ();
00057
00066 void SetPosition (double x0, double y0, double x1, double y1);
00075 void GetPosition (double &x0, double &y0, double &x1, double &y1);
00076
00077
00085 double Distance (double x, double y, Item **item) const;
00092 void Draw (cairo_t *cr, bool is_vector) const;
00099 void Move (double x, double y);
00100
00101 protected:
00105 void UpdateBounds ();
00106
00107 private:
00108
00109 private:
00110 BracketsMetrics const *m_Metrics;
00111
00112 double m_x0, m_y0, m_x1, m_y1;
00113
00122 GCCV_ITEM_POS_PROP (double, Size)
00123 GCCV_ITEM_POS_PROP (std::string, FontDesc)
00124 GCCV_ITEM_POS_PROP (BracketsTypes, Type)
00133 GCCV_ITEM_PROP (GOColor, Color)
00134 };
00135
00136 }
00137
00138 #endif // GCCV_BRACKETS_H