gccv/arrow.h
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_ARROW_H
00026 #define GCCV_ARROW_H
00027
00028 #include "line.h"
00029
00030 namespace gccv {
00031
00032 typedef enum {
00033 ArrowHeadNone,
00034 ArrowHeadFull,
00035 ArrowHeadLeft,
00036 ArrowHeadRight,
00037 } ArrowHeads;
00038
00039 class Arrow: public Line
00040 {
00041 public:
00042 Arrow (Canvas *canvas, double xstart, double ystart, double xend, double yend);
00043 Arrow (Group *parent, double xstart, double ystart, double xend, double yend, ItemClient *client = NULL);
00044 virtual ~Arrow ();
00045
00046
00047 double Distance (double x, double y, Item **item) const;
00048 void Draw (cairo_t *cr, bool is_vector) const;
00049 void UpdateBounds ();
00050
00051 private:
00052
00053 GCCV_ITEM_POS_PROP (ArrowHeads, StartHead)
00054 GCCV_ITEM_POS_PROP (ArrowHeads, EndHead)
00055 GCCV_ITEM_POS_PROP (double, A)
00056 GCCV_ITEM_POS_PROP (double, B)
00057 GCCV_ITEM_POS_PROP (double, C)
00058 };
00059
00060 }
00061
00062 #endif // GCCV_SQUIGGLE_H