Quantum Fog  0.9.3
C_ARROW.h
1 #pragma once
2 
3 #include "QFog_constants.h"
4 
5 
6 #include "C_PORT_RELATED.h"
7 #include "C_ARROW_DRAWER.h"
8 #include "C_COLORS.h"
9 #include "GLOBAL_FUN.h"
10 #include "UI_MAP.h"
11 class C_MAIN_VIEW;
12 
13 //******************************************
14 class C_ARROW
15 {
16 
17 private:
18  LView * its_mview_p;
19  C_PORT_NAME its_s_port_name;
20  C_PORT_NAME its_d_port_name;
21  Point its_init_pt, its_fin_pt;
22  BOOLEAN its_is_selected;
23  enum {arrowhead_len=16, arrowhead_halfwidth=25};
24 public:
25 
26  C_ARROW();
27  C_ARROW(LView * view_p,
28  const C_PORT_NAME & s_port_name,
29  const C_PORT_NAME & d_port_name,
30  const Point & init_pt,
31  const Point & fin_pt);
32  virtual ~C_ARROW();
33 
34  C_PORT_NAME get_s_port_name() const;
35  C_PORT_NAME get_d_port_name() const;
36  const Point & get_init_pt() const;
37  VOID set_init_pt(const Point & init_pt);
38  const Point & get_fin_pt() const;
39  VOID set_fin_pt(const Point & fin_pt);
40  VOID change_source_nd(const C_PORT_NAME & s_port_name, const Point & init_pt, const Point & fin_pt);
41 
42  VOID draw();
43  VOID undraw();
44 
45  VOID draw_sel_handles_wkr();
46  VOID draw_sel_handles();
47  VOID undraw_sel_handles();
48  Boolean select(C_MAIN_VIEW * mview_p);
49  Boolean unselect(C_MAIN_VIEW * mview_p);
50  VOID toggle_select(C_MAIN_VIEW * mview_p);
51 
52  VOID move_by(const Point & delta);
53 
54  BOOLEAN is_selected() const;
55  BOOLEAN pt_is_in_sel_dom(const Point & pt);
56  VOID renumber_nds(const UI_MAP & map);
57 
58  friend BOOLEAN operator==(const C_ARROW & ar1, const C_ARROW & ar2);
59  friend BOOLEAN operator!=(const C_ARROW & ar1, const C_ARROW & ar2);
60 
61 };
62 #pragma mark -
63 
64 
65 //******************************************
66 inline
67 C_PORT_NAME C_ARROW::get_s_port_name() const
68 {
69  return its_s_port_name;
70 }
71 //******************************************
72 inline
73 C_PORT_NAME C_ARROW::get_d_port_name() const
74 {
75  return its_d_port_name;
76 }
77 //******************************************
78 inline
79 const Point & C_ARROW::get_init_pt() const
80 {
81  return its_init_pt;
82 }
83 //******************************************
84 inline
85 VOID C_ARROW::set_init_pt(
86 const Point & init_pt) //in
87 {
88  its_init_pt = init_pt;
89 }
90 //******************************************
91 inline
92 const Point & C_ARROW::get_fin_pt() const
93 {
94  return its_fin_pt;
95 }
96 //******************************************
97 inline
98 VOID C_ARROW::set_fin_pt(
99 const Point & fin_pt) //in
100 {
101  its_fin_pt = fin_pt;
102 }
103 //******************************************
104 inline
105 BOOLEAN C_ARROW::is_selected() const
106 {
107  return its_is_selected;
108 }
109 //******************************************
110 inline
111 BOOLEAN operator!=(
112 const C_ARROW & ar1, //in
113 const C_ARROW & ar2) //in
114 {
115  return !(ar1==ar2);
116 }
117 
Definition: C_MAIN_VIEW.h:24
Definition: C_PORT_RELATED.h:54
Definition: UI_MAP.h:7
Definition: C_ARROW.h:14