Quantum Fog  0.9.3
C_MAIN_VIEW.h
1 #pragma once
2 
3 #include "QFog_constants.h"
4 
5 
6 #include "C_COLORS.h"
7 #include "QB_NET.h"
8 #include "GLOBAL_FUN.h"
9 #include "C_PORT_RELATED.h"
10 #include "C_PI_WIND.h"
11 #include "C_BI_ND_WIND.h"
12 #include "C_ND_PROBS_WIND.h"
13 #include "C_BI_ND_PROBS_WIND.h"
14 #include "C_STORIES_WIND.h"
15 #include "C_ND_EFIELD.h"
16 #include "UTextMenus.h"
17 #include "C_WIND_BDS_RECO.h"
18 #include "C_ACTION_FLAGS.h"
19 class C_DOC;
20 class C_PALETTE;
21 class SET;
22 
23 //******************************************
24 class C_MAIN_VIEW : public LView, public LCommander, public LListener, public C_ACTION_FLAGS
25 {
26 protected:
27  C_DOC * its_doc_p;
28  QB_NET * its_net_p;
29 
30  USHORT its_num_of_sel_nds;
31  USHORT its_num_of_sel_arrows;
32 
33  SInt16 its_image_horiz_inches;
34  SInt16 its_image_vert_inches;
35  BOOLEAN its_has_grid_lines;
36 
37  SInt16 its_fnum; //font number
38  SInt16 its_fname_item_num; //font name's item number
39  SInt16 its_fsize; //font size
40 
41  SInt32 its_pane_counter;
42 
43  Point its_pasting_center;
44 
45  LWindow * its_main_wind_p;
46  C_PI_WIND * its_pi_wind_p;
47  C_BI_ND_WIND * its_bi_nd_wind_p;
48  C_ND_PROBS_WIND * its_nd_probs_wind_p;
49  C_BI_ND_PROBS_WIND * its_bi_nd_probs_wind_p;
50  C_STORIES_WIND * its_stories_wind_p;
51 
52  //the document does not possess its own palette but it
53  //does possess its preferred palette bounds
54  C_WIND_BDS_RECO its_pal_bds_reco;
55 
56  C_WIND_BDS_RECO its_pi_wind_bds_reco;
57  C_WIND_BDS_RECO its_bi_nd_wind_bds_reco;
58  C_WIND_BDS_RECO its_nd_probs_wind_bds_reco;
59  C_WIND_BDS_RECO its_bi_nd_probs_wind_bds_reco;
60  C_WIND_BDS_RECO its_stories_wind_bds_reco;
61 
62 public:
63 
64  C_MAIN_VIEW(LStream * inStream);
65  virtual ~C_MAIN_VIEW();
66  VOID FinishCreateSelf();
67 
68  VOID set_net_ptr(QB_NET * net_p);
69  VOID get_top_ptrs(C_DOC * & doc_p, C_MAIN_VIEW * & mview_p, QB_NET * & net_p);
70 
71  const C_WIND_BDS_RECO & get_pal_bds_reco() const;
72  VOID set_pal_bds_reco();
73  VOID read_bounds_res_of_satellite_winds();
74  VOID write_bounds_res_of_satellite_winds();
75 
76  BOOLEAN save_pi();
77  VOID refresh_pi_wind();
78  VOID refresh_pi_wind(USHORT nd_id);
79  VOID create_pi_wind(USHORT sel_nd);
80  VOID finish_pi_wind_closing();
81  VOID create_bi_nd_wind();
82  VOID finish_bi_nd_wind_closing();
83  VOID create_nd_probs_wind(USHORT sel_nd);
84  VOID finish_nd_probs_wind_closing();
85  VOID create_bi_nd_probs_wind(USHORT sel_loc);
86  VOID finish_bi_nd_probs_wind_closing();
87  VOID create_stories_wind();
88  VOID finish_stories_wind_closing();
89 
90  SInt16 get_fnum() const;
91  SInt16 get_fsize() const;
92  VOID check_fsize_and_fnum();
93 
94  SInt16 get_image_horiz_inches();
95  VOID set_image_horiz_inches(SInt16 num);
96  SInt16 get_image_vert_inches();
97  VOID set_image_vert_inches(SInt16 num);
98  VOID shift_wind_to_top_left_corner_of_desktop();
99  VOID set_min_max_and_std_of_wind(BOOLEAN set_bds_to_std);
100  BOOLEAN handle_drawing_size_dialog();
101 
102  virtual VOID DrawSelf();
103 
104  VOID disable_nd_efields();
105  VOID enable_nd_efields();
106  VOID create_nd_efield(const Point & m_down_pt, USHORT nd_id);
107  VOID destroy_nd_efield( USHORT nd_id);
108  VOID ListenToMessage(MessageT inMessage, VOID * ioParam );
109  VOID show_story_caps(const VECTOR<USHORT> * net_story_p);
110 
111  C_PORT_NAME get_touched_avail_s_port(const Point & pt);
112  C_PORT_NAME get_touched_avail_d_port(const Point & pt);
113  USHORT get_touched_nd(const Point & pt);
114  C_ARROW * get_touched_ar(const Point & pt);
115 
116 
117  USHORT get_num_of_sel_nds();
118  BOOLEAN at_least_one_nd_is_sel();
119  VOID num_of_sel_nds_pp();
120  VOID num_of_sel_nds_mm();
121  USHORT get_num_of_sel_arrows();
122  BOOLEAN at_least_one_arrow_is_sel();
123  VOID num_of_sel_arrows_pp();
124  VOID num_of_sel_arrows_mm();
125  BOOLEAN s_and_d_and_ar_selected(const C_ARROW * ar_p);
126  BOOLEAN s_or_d_or_ar_selected(const C_ARROW * ar_p);
127 
128  VOID select_all();
129  Boolean unselect_all();
130  VOID select_nd_and_its_entourage(USHORT nd_id);
131  VOID select_rect_contents(const Rect & rect);
132  VOID move_selection_by(const Point & delta);
133  VOID respond_to_selection_tool(const Point & m_down_pt, Boolean pal_open);
134  Rect get_sel_rect();
135  VOID get_map_with_sel_last(UI_MAP & map_with_sel_last);
136  VOID make_only_last_nds_selected(USHORT num_of_sel_nds);
137 // VOID get_selected_arrows(SET & sel_ars);
138 // VOID set_selected_arrows(const SET & sel_ars);
139  VOID make_only_first_arrows_selected(USHORT num_of_sel_ars);
140 
141 
142  VOID respond_to_bi_nd_selector(const Point & m_down_pt);
143  VOID respond_to_drag_tool(const Point & m_down_pt);
144  VOID respond_to_open_tool(const Point & m_down_pt);
145  VOID respond_to_no_tool(const Point & m_down_pt);
146  VOID rotate_nd(const Point & m_down_pt);
147  VOID paint_nd(const Point & pt);
148  VOID copy_nd_color(const Point & pt);
149  VOID maybe_add_arrow(const Point & m_down_pt);
150  VOID maybe_change_source_nd_of_ar(const Point & m_down_pt);
151  VOID Click(SMouseDownEvent & inMouseDown);
152  virtual VOID ClickSelf(const SMouseDownEvent & in_mouse_down);
153  virtual VOID AdjustMouseSelf(Point in_port_pt, const EventRecord & in_mac_event, RgnHandle outMouseRgn);
154 
155  VOID translate_pt_from_sel_to_pasting_rect(Point & pt, const Rect & sel_rect);
156  BOOLEAN pasting_should_restore_amps_of(USHORT nd_id);
157  BOOLEAN undeleting_should_restore_amps_of(USHORT nd_id);
158  VOID write_net_stream(LStream & net_stream, NET_STREAM_TYPE stream_type);
159  VOID read_net_stream(LStream & net_stream, NET_STREAM_TYPE stream_type);
160 
161  VOID copy_selection();
162  VOID paste_clipping();
163  VOID delete_selection(BOOLEAN sel_is_last);
164 
165 
166  virtual BOOLEAN HandleKeyPress(const EventRecord & in_key_event);
167  virtual BOOLEAN ObeyCommand(CommandT inCommand, VOID * ioParam);
168  virtual VOID FindCommandStatus(CommandT inCommand,
169  BOOLEAN & outEnabled, BOOLEAN & outUsesMark,
170  UInt16 & outMark, Str255 outName_pstr);
171 
172 };
173 #pragma mark -
174 
175 
176 //******************************************
177 inline
178 VOID C_MAIN_VIEW::set_net_ptr(
179 QB_NET * net_p) //in
180 {
181  //used only once, in C_DOC constructor
182  its_net_p = net_p;
183 }
184 //******************************************
185 inline
186 const C_WIND_BDS_RECO & C_MAIN_VIEW::get_pal_bds_reco() const
187 {
188  return its_pal_bds_reco;
189 }
190 //******************************************
191 inline
192 VOID C_MAIN_VIEW::refresh_pi_wind()
193 {
194  if(its_pi_wind_p!=0)its_pi_wind_p->set_nd_always();
195 }
196 //******************************************
197 inline
198 VOID C_MAIN_VIEW::refresh_pi_wind(USHORT nd_id)
199 {
200  if(its_pi_wind_p!=0)its_pi_wind_p->set_nd_always(nd_id);
201 }
202 //******************************************
203 inline
204 SInt16 C_MAIN_VIEW::get_fnum() const
205 {
206  return its_fnum;
207 }
208 //******************************************
209 inline
210 SInt16 C_MAIN_VIEW::get_fsize() const
211 {
212  return its_fsize;
213 }
214 //******************************************
215 inline
216 SInt16 C_MAIN_VIEW::get_image_horiz_inches()
217 {
218  return its_image_horiz_inches;
219 }
220 //******************************************
221 inline
222 VOID C_MAIN_VIEW::set_image_horiz_inches(
223 SInt16 num) //in
224 {
225  its_image_horiz_inches = num;
226 }
227 //******************************************
228 inline
229 SInt16 C_MAIN_VIEW::get_image_vert_inches()
230 {
231  return its_image_vert_inches;
232 }
233 //******************************************
234 inline
235 VOID C_MAIN_VIEW::set_image_vert_inches(
236 SInt16 num) //in
237 {
238  its_image_vert_inches = num;
239 }
240 //******************************************
241 inline
242 USHORT C_MAIN_VIEW::get_num_of_sel_nds()
243 {
244  return its_num_of_sel_nds;
245 }
246 //******************************************
247 inline
248 BOOLEAN C_MAIN_VIEW::at_least_one_nd_is_sel()
249 {
250  return (its_num_of_sel_nds > 0);
251 }
252 //******************************************
253 inline
254 VOID C_MAIN_VIEW::num_of_sel_nds_pp()
255 {
256  its_num_of_sel_nds++;
257 }
258 //******************************************
259 inline
260 VOID C_MAIN_VIEW::num_of_sel_nds_mm()
261 {
262  SignalIf_(its_num_of_sel_nds==0);
263  its_num_of_sel_nds--;
264 }
265 //******************************************
266 inline
267 USHORT C_MAIN_VIEW::get_num_of_sel_arrows()
268 {
269  return its_num_of_sel_arrows;
270 }
271 //******************************************
272 inline
273 BOOLEAN C_MAIN_VIEW::at_least_one_arrow_is_sel()
274 {
275  return (its_num_of_sel_arrows > 0);
276 }
277 //******************************************
278 inline
279 VOID C_MAIN_VIEW::num_of_sel_arrows_pp()
280 {
281  its_num_of_sel_arrows++;
282 }
283 //******************************************
284 inline
285 VOID C_MAIN_VIEW::num_of_sel_arrows_mm()
286 {
287  SignalIf_(its_num_of_sel_arrows==0);
288  its_num_of_sel_arrows--;
289 }
290 
Definition: C_MAIN_VIEW.h:24
Definition: C_ND_PROBS_WIND.h:8
Definition: C_STORIES_WIND.h:9
Definition: C_WIND_BDS_RECO.h:14
Definition: QB_NET.h:34
Definition: C_DOC.h:12
Definition: C_PORT_RELATED.h:54
Definition: C_PALETTE.h:26
Definition: C_PI_WIND.h:18
Definition: C_BI_ND_WIND.h:7
Definition: C_BI_ND_PROBS_WIND.h:9
Definition: SET.h:4
Definition: C_ACTION_FLAGS.h:13
Definition: UI_MAP.h:7
Definition: C_ARROW.h:14