1 | #include <stdio.h> |
---|
2 | |
---|
3 | |
---|
4 | #include <arbdb.h> |
---|
5 | //#include <arbdbt.h> |
---|
6 | #include <aw_root.hxx> |
---|
7 | #include <aw_device.hxx> |
---|
8 | #include <aw_window.hxx> |
---|
9 | |
---|
10 | #include <awt.hxx> |
---|
11 | #include <awt_canvas.hxx> |
---|
12 | #include <aw_preset.hxx> |
---|
13 | #include <awt_preset.hxx> |
---|
14 | |
---|
15 | |
---|
16 | #include "d_classes.hxx" |
---|
17 | #include "d_main.hxx" |
---|
18 | #include "d_awt_graphic_designer.hxx" |
---|
19 | AW_HEADER_MAIN; |
---|
20 | |
---|
21 | void AD_map_viewer(GBDATA* gbd){return;}; |
---|
22 | GBDATA *gb_main; |
---|
23 | |
---|
24 | |
---|
25 | AW_window *create_main_window(AW_root *aw_root) { |
---|
26 | |
---|
27 | AW_gc_manager aw_gc_manager = 0; |
---|
28 | AW_window_menu_modes *awm = new AW_window_menu_modes(); |
---|
29 | awm->init(aw_root,"DESIGNER", 800,600,0,0); |
---|
30 | AWT_canvas *ntw = new AWT_canvas(gb_main,awm,(AWT_graphic *)new AWT_graphic_designer(), aw_gc_manager); |
---|
31 | awm->create_menu( 0, "File", "F", "xxx.hlp", 0 ); |
---|
32 | awm->insert_menu_topic( 0, "Quit", "Q", "quit.hlp", 0, (AW_CB)quit_cb, 0, 0); |
---|
33 | awm->insert_separator(); |
---|
34 | awm->insert_menu_topic(0,"Colors and Fonts ...", "C","colors.hlp",0, |
---|
35 | AW_POPUP, (AW_CL)AW_create_gc_window, (AW_CL)aw_gc_manager ); |
---|
36 | awm->insert_menu_topic(0, "Print View to Printer ...", "P","print.hlp",0,(AW_CB)AWT_create_print_window, (AW_CL)ntw, 0 ); |
---|
37 | |
---|
38 | awm->create_mode( 0, "zoom.bitmap", "mode_pzoom.hlp", 0, (AW_CB)nt_mode_event, |
---|
39 | (AW_CL)ntw, |
---|
40 | (AW_CL)AWT_MODE_ZOOM |
---|
41 | ); |
---|
42 | awm->create_mode( 0, "lzoom.bitmap", "mode_lzoom.hlp", 0, (AW_CB)nt_mode_event, |
---|
43 | (AW_CL)ntw, |
---|
44 | (AW_CL)AWT_MODE_LZOOM |
---|
45 | ); |
---|
46 | |
---|
47 | awm->set_info_area_height( 0 ); |
---|
48 | awm->set_bottom_area_height( 0 ); |
---|
49 | |
---|
50 | return (AW_window *)awm; |
---|
51 | } |
---|
52 | |
---|
53 | void quit_cb(AW_window *aww) { |
---|
54 | exit(0); |
---|
55 | } |
---|
56 | |
---|
57 | |
---|
58 | |
---|
59 | int main(int argc, char **argv) { |
---|
60 | class Element *root; |
---|
61 | class Element *tmp_elem; |
---|
62 | int number = 5; |
---|
63 | |
---|
64 | |
---|
65 | AW_root *aw_root; |
---|
66 | AW_default aw_default; |
---|
67 | |
---|
68 | char *db_server =":"; |
---|
69 | |
---|
70 | // aw_initstatus(); |
---|
71 | |
---|
72 | aw_root = new AW_root; |
---|
73 | aw_default = aw_root->open_default(".designer"); |
---|
74 | aw_root->init_variables(aw_default); |
---|
75 | aw_root->init("DESIGNER"); |
---|
76 | |
---|
77 | //*********************************************************** |
---|
78 | |
---|
79 | root = new Element; |
---|
80 | |
---|
81 | printf("start\n"); |
---|
82 | |
---|
83 | root->set_contents(1); |
---|
84 | root->print_contents(); |
---|
85 | |
---|
86 | tmp_elem = root->add_son()->set_contents(11)->print_contents(); |
---|
87 | tmp_elem->add_son()->set_contents(111)->print_contents(); |
---|
88 | tmp_elem->add_son()->set_contents(112)->print_contents(); |
---|
89 | tmp_elem->add_son()->set_contents(113)->print_contents(); |
---|
90 | |
---|
91 | tmp_elem = root->add_son()->set_contents(2)->print_contents(); |
---|
92 | tmp_elem->add_son()->set_contents(121)->print_contents(); |
---|
93 | tmp_elem->add_son()->set_contents(122)->print_contents()->add_son()->set_contents(1221)->print_contents(); |
---|
94 | |
---|
95 | tmp_elem = root->add_son()->set_contents(3)->print_contents(); |
---|
96 | tmp_elem->add_son()->set_contents(131)->print_contents(); |
---|
97 | tmp_elem->add_son()->set_contents(132)->print_contents(); |
---|
98 | tmp_elem->add_son()->set_contents(133)->print_contents(); |
---|
99 | |
---|
100 | root->get_number_of_sons(number); |
---|
101 | printf("Number of sons:%i\n",number); |
---|
102 | |
---|
103 | // root->print_contents_recursive(0); |
---|
104 | |
---|
105 | root->calculate_sizes(); |
---|
106 | |
---|
107 | root->dump_recursive(); |
---|
108 | |
---|
109 | printf("ende\n"); |
---|
110 | |
---|
111 | //*********************************************************** |
---|
112 | |
---|
113 | AW_window_menu_modes *awm = (AW_window_menu_modes*)create_main_window(aw_root); |
---|
114 | awm->show(); |
---|
115 | |
---|
116 | aw_root->awar_string( "tmp/LeftFooter", ""); |
---|
117 | |
---|
118 | aw_root->main_loop(); |
---|
119 | |
---|
120 | |
---|
121 | } |
---|
122 | |
---|
123 | |
---|
124 | void |
---|
125 | nt_mode_event( AW_window *aws, AWT_canvas *ntw, AWT_COMMAND_MODE mode) |
---|
126 | { |
---|
127 | AWUSE(aws); |
---|
128 | char *text; |
---|
129 | static int story = 0; |
---|
130 | |
---|
131 | switch(mode){ |
---|
132 | case AWT_MODE_MARK: |
---|
133 | text="MARK MODE LEFT: mark subtree RIGHT: unmark subtree"; |
---|
134 | break; |
---|
135 | case AWT_MODE_GROUP: |
---|
136 | text="GROUP MODE LEFT: group/ungroup group RIGHT: group/ungroup subtree"; |
---|
137 | break; |
---|
138 | case AWT_MODE_ZOOM: |
---|
139 | text="ZOOM MODE LEFT: press and drag to zoom RIGHT: zoom out one step"; |
---|
140 | break; |
---|
141 | case AWT_MODE_LZOOM: |
---|
142 | text="LOGICAL ZOOM MODE LEFT: show subtree RIGHT: go up one step"; |
---|
143 | break; |
---|
144 | case AWT_MODE_MOD: |
---|
145 | text="MODIFY MODE LEFT: select node RIGHT: assign info to internal node"; |
---|
146 | break; |
---|
147 | case AWT_MODE_LINE: |
---|
148 | text="LINE MODE LEFT: reduce linewidth RIGHT: increase linewidth"; |
---|
149 | break; |
---|
150 | case AWT_MODE_ROT: |
---|
151 | text="ROTATE MODE LEFT: Select branch and drag to rotate RIGHT: -"; |
---|
152 | break; |
---|
153 | case AWT_MODE_SPREAD: |
---|
154 | text="SPREAD MODE LEFT: decrease angles RIGHT: increase angles"; |
---|
155 | break; |
---|
156 | case AWT_MODE_SWAP: |
---|
157 | text="SWAP MODE LEFT: swap branches RIGHT: -"; |
---|
158 | break; |
---|
159 | case AWT_MODE_LENGTH: |
---|
160 | text="BRANCH LENGTH MODE LEFT: Select branch and drag to change length RIGHT: -"; |
---|
161 | break; |
---|
162 | case AWT_MODE_MOVE: |
---|
163 | text="MOVE MODE LEFT: select subtree to move and drag to new destination RIGHT: -"; |
---|
164 | break; |
---|
165 | case AWT_MODE_NNI: |
---|
166 | text="NEAREST NEIGHBOUR INTERCHANGE OPTIMIZER LEF: select subtree RIGHT: whole tree"; |
---|
167 | break; |
---|
168 | case AWT_MODE_KERNINGHAN: |
---|
169 | text="KERNIGHAN LIN OPTIMIZER LEFT: select subtree RIGHT: whole tree"; |
---|
170 | break; |
---|
171 | case AWT_MODE_OPTIMIZE: |
---|
172 | text="NNI & KL OPTIMIZER LEFT: select subtree RIGHT:whole tree"; |
---|
173 | break; |
---|
174 | case AWT_MODE_SETROOT: |
---|
175 | text="SET ROOT MODE LEFT: set root RIGHT: -"; |
---|
176 | break; |
---|
177 | case AWT_MODE_RESET: |
---|
178 | text="RESET MODE LEFT: reset rotation MIDDLE: reset angles RIGHT: reset linewidth"; |
---|
179 | break; |
---|
180 | case AWT_MODE_JUMP: |
---|
181 | story++; |
---|
182 | if(story>9){ |
---|
183 | story = 1; |
---|
184 | } |
---|
185 | switch(story){ |
---|
186 | case 1: |
---|
187 | text="STORY MODE: Allow a few seconds please: This is a short story about"; |
---|
188 | break; |
---|
189 | case 2: |
---|
190 | text="STORY MODE: The Making of ARB..."; |
---|
191 | break; |
---|
192 | case 3: |
---|
193 | text="STORY MODE: In the first day there was the idea."; |
---|
194 | break; |
---|
195 | case 4: |
---|
196 | text="STORY MODE: In the second day there was the wild discussion."; |
---|
197 | break; |
---|
198 | case 5: |
---|
199 | text="STORY MODE: In the forth day there was an almost working version!"; |
---|
200 | break; |
---|
201 | case 6: |
---|
202 | text="STORY MODE: In the fifth day there was an almost working version!!"; |
---|
203 | break; |
---|
204 | case 7: |
---|
205 | text="STORY MODE: In the sixth day there was an almost working version!!!"; |
---|
206 | break; |
---|
207 | case 8: |
---|
208 | text="STORY MODE: In the seventh day there finally was >>>> ARB NTREE <<<<"; |
---|
209 | break; |
---|
210 | case 9: |
---|
211 | text="STORY MODE: Yeahh, that was it how it was :)"; |
---|
212 | break; |
---|
213 | |
---|
214 | default: |
---|
215 | text="STORY MODE: uuups, what's this ???"; |
---|
216 | break; |
---|
217 | } |
---|
218 | |
---|
219 | default: |
---|
220 | text="No help for this mode available"; |
---|
221 | break; |
---|
222 | } |
---|
223 | |
---|
224 | ntw->awr->awar("tmp/LeftFooter")->write_string( text); |
---|
225 | ntw->set_mode(mode); |
---|
226 | } |
---|