source: tags/initial/EDIT/edit.hxx

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 8.0 KB
Line 
1
2#define AWAR_CURSER_POS_REF_ECOLI "tmp/edit/curser_ref_ecoli"
3#define AWAR_SPECIES_DEST "tmp/edit/species_name_dest"
4#define AWAR_LINE_SPACING "edit/line_spacing"
5#define AWAR_CENTER_SPACING "edit/center_spacing"
6#define AWAR_HELIX_AT_SAIS "edit/helix_at_extendeds"
7#define AWAR_EDIT_MODE "tmp/edit/edit_mode"
8#define AWAR_EDIT_DIRECTION "tmp/edit/edit_direction"
9#define AWAR_EDIT_MULTI_SEQ "tmp/edit/edit_multi"
10
11#define AED_LINE_SPACING ((int)aed_root.line_spacing)
12#define AED_CENTER_SPACING ((int)aed_root.center_spacing)
13#define AED_TOP_LINE 2
14
15const long AED_MAX_SPECIES=100;
16
17
18enum {
19    AED_GC_NAME,
20    AED_GC_SELECTED,
21    AED_GC_SEQUENCE,
22    AED_GC_HELIX,
23
24    AED_GC_0,                   // @@@
25    AED_GC_1,
26    AED_GC_2,
27    AED_GC_3,
28    AED_GC_4,
29    AED_GC_5,
30    AED_GC_6,
31    AED_GC_7,
32    AED_GC_8,
33    AED_GC_9,
34
35    AED_GC_NAME_DRAG,
36    AED_GC_SELECTED_DRAG,
37    AED_GC_SEQUENCE_DRAG,
38    AED_GC_HELIX_DRAG
39};
40
41
42typedef enum {
43    AED_F_ALLWAYS = 0,
44    AED_F_NAME = 1,
45    AED_F_NAME_SELECTED = 2,
46    AED_F_SEQUENCE = 4,
47    AED_F_SEQUENCE_SELECTED = 8,
48    AED_F_INFO = 16,
49    AED_F_INFO_SEPARATOR = 32,
50    AED_F_WINFO = 64,
51    AED_F_CURSOR = 128,
52    AED_F_HELIX = 256,
53    AED_F_TEXT_1 = 512,
54    AED_F_TEXT_2 = 1024,
55    AED_F_TEXT_3 = 2048,
56    AED_F_FRAME = 4096,
57    AED_F_ALL = -1
58}       AED_filters;
59
60
61extern class AED_root {
62public:
63    AD_MAIN                             *ad_main;
64    AW_root                             *aw_root;
65    AED_root(void);
66
67    AW_default                  db;
68    long                                center_spacing;
69    long                                line_spacing;
70    long                                helix_at_extendeds;
71} aed_root;
72
73
74typedef enum   {
75    AED_ALIGN = 0,
76    AED_INSERT = 1,
77    AED_REPLACE = 2
78} AED_modi;
79
80class AED_dlist;
81class AED_area_entry {
82public:
83
84    AD_SPECIES                          *ad_species;
85    AD_SAI                                      *ad_extended;
86    AD_CONT                                     *ad_container;
87    ADT_SEQUENCE                                *adt_sequence;
88    AD_STAT                                     *ad_stat;
89               
90    AW_BOOL                                     is_selected;
91    AW_pos                                      in_line;
92    AW_pos                                      absolut_x;
93    AW_pos                                      absolut_y;
94    AED_area_entry                              *previous;
95    AED_area_entry                              *next;
96    class AED_dlist                             *in_area;
97
98    AED_area_entry() {  is_selected = AW_FALSE;
99    previous = NULL; next = NULL;};
100    ~AED_area_entry() {};
101};
102
103class AED_window;
104class AED_dummy { class AED_window *dummy; };
105
106
107class AED_dlist {
108    GB_HASH *hash;
109    GBDATA *gb_main;
110    char *hash_awar;
111    int hash_level;
112public:
113    int size;
114    AED_area_entry                              *first;
115    AED_area_entry                              *last;
116    AED_area_entry                              *current;
117    AED_dlist();
118    ~AED_dlist() {};
119    void create_hash(GBDATA *gb_main,const char *awar_suffix);
120    void insert_hash(const char *name);
121    void remove_hash(const char *name);
122    long read_hash(const char *name);
123    void optimize_hash(void);
124
125    void remove_entry(AED_area_entry *to_be_removed);
126    void append(AED_area_entry *to_be_inserted);
127    void insert_after_entry(AED_area_entry *add_after_this, AED_area_entry *to_be_inserted);
128    void insert_before_entry(AED_area_entry *add_before_this, AED_area_entry *to_be_inserted);
129};
130
131class AED_window;
132class AED_dlist_left_side;
133
134class AED_left_side {
135public:
136    char        *text;
137    char        text_for_dragging[100];
138    void        (*make_text)( class AED_window *aedw, AED_area_entry *area_entry, char *text );
139    AW_BOOL             is_selected;
140    AW_pos              absolut_x;
141    AW_pos              absolut_y;
142    AED_left_side       *previous;
143    AED_left_side       *next;
144    class AED_dlist_left_side   *in_side;
145
146    AED_left_side( void(*f)(class AED_window *aedw,AED_area_entry *area_entry, char *text), const char *string );
147    ~AED_left_side();
148};
149
150
151class AED_dlist_left_side {
152public:
153    int size;
154    AED_left_side                               *first;
155    AED_left_side                               *last;
156    AED_left_side                               *current;
157    AED_dlist_left_side() {size = 0; first = NULL; last = NULL; current = NULL;};
158    ~AED_dlist_left_side() {};
159    void remove_entry( AED_left_side *to_be_removed );
160    void append( AED_left_side *to_be_inserted );
161    void insert_after_entry( AED_left_side *add_after_this, AED_left_side *to_be_inserted );
162    void insert_before_entry( AED_left_side *add_before_this, AED_left_side *to_be_inserted );
163};
164
165
166
167typedef struct {
168    AW_BOOL     clear;
169    AW_BOOL     calc_size;
170    AW_BOOL     visible_control;
171    int top_indent;
172    int bottom_indent;
173    int left_indent;
174    int         slider_pos_horizontal;
175    int         slider_pos_vertical;
176    int picture_l;
177    int picture_t;
178
179} AED_area_display_struct;
180
181
182class AED_window {
183public:
184
185    AW_BOOL                             config_window_created;
186    AW_window_menu                      *config_window;
187
188    AED_dlist_left_side         *show_dlist_left_side;
189    AED_dlist_left_side         *hide_dlist_left_side;
190    AED_left_side               *selected_entry_of_dlist_left_side;
191    AW_BOOL                     one_entry_dlist_left_side_is_selected;
192
193    AED_root                                    *root;
194    AW_window                                   *aww;
195    ADT_ALI                                             *alignment;
196
197    AW_BOOL                                             global_focus_use;
198
199    AED_dlist           *area_top;
200    AED_dlist           *area_middle;
201    AED_dlist           *area_bottom;           
202    AED_area_entry              *selected_area_entry;
203    AW_BOOL                     one_area_entry_is_selected;
204    AW_BOOL                     selected_area_entry_is_visible;
205
206    int                 selected_info_area_text;
207    int                 info_area_height;
208    AW_BOOL                                             edit_info_area;
209
210    AW_world            size_information;
211    int                 last_slider_position;
212    AW_BOOL                     quickdraw;
213    int                 quickdraw_left_indent;
214    int                 quickdraw_right_indent;
215    AW_cursor_type              cursor_type;
216    int                 cursor;
217    AW_BOOL                     cursor_is_managed;
218    AW_BOOL                     drag;
219    int                 drag_x, drag_y;
220    AW_pos              drag_x_correcting, drag_y_correcting;
221
222    long                        edit_modus;
223    long                        edit_direction;
224    int                         owntimestamp;
225
226
227
228    // modes ....
229    AED_window( void );
230    ~AED_window( void );
231    int load_data( void );
232    void        show_data( AW_device *device, AW_window *awmm, AW_BOOL visibility_control );
233    void        show_top_data( AW_device *device, AW_window *awmm, AED_area_display_struct& display_struct );
234    void        show_single_top_data(AW_device *device, AW_window *awmm, AED_area_entry *area_entry, AED_area_display_struct& display_struct, AW_pos *y );
235    void        show_middle_data( AW_device *device, AW_window *awmm, AED_area_display_struct& display_struct );
236    void        show_single_middle_data(AW_device *device, AW_window *awmm, AED_area_entry *area_entry, AED_area_display_struct& display_struct, AW_pos *y );
237    void        show_bottom_data( AW_device *device, AW_window *awmm, AED_area_display_struct& display_struct );
238    void        show_single_bottom_data(AW_device *device, AW_window *awmm, AED_area_entry *area_entry, AED_area_display_struct& display_struct, AW_pos *y );
239    void  hide_cursor( AW_device *device, AW_window *awmm );
240    void  show_cursor( AW_device *device, AW_window *awmm );
241    AW_BOOL  manage_cursor( AW_device *device, AW_window *awmm, AW_BOOL use_last_slider_position );
242    void        show_single_area_entry( AW_device *device, AW_window *awmm, AED_area_entry *area_entry );
243    void        calculate_size(AW_window *awmm);
244    void        expose(AW_window *awmm);
245
246    void        init( AED_root *rootin );
247    void        select_area_entry( AED_area_entry *area_entry, AW_pos cursor_position );
248    void        deselect_area_entry( void );
249    void        make_left_text( char *string, AED_area_entry *area_entry );
250};
251
252void aed_create_window(AED_root *aedr);
253void aed_initialize_device(AW_device *device);
254void drag_box(AW_device *device, int gc, AW_pos x, AW_pos y, AW_pos width, AW_pos height, char *str);
255void aed_expose(AW_window *aw, AW_CL cd1, AW_CL cd2);
256void aed_clear_expose(AW_window *aw, AW_CL cd1, AW_CL cd2);
257void aed_resize(AW_window *aw, AW_CL cd1, AW_CL cd2);
258
259
260AW_window *create_naligner_window( AW_root *root, AW_CL cd2 );
261void create_naligner_variables(AW_root *root,AW_default db1);
262
263void create_tool_variables(AW_root *root,AW_default db1);
264//void create_submission_variables(AW_root *root,AW_default db1);
265
266AW_window *create_tool_search( AW_root *root, AED_window *aedwindow );
267AW_window *create_tool_replace( AW_root *root, AED_window *aedwindow );
268AW_window *create_tool_complement( AW_root *root, AED_window *aedwindow );
269AW_window *create_tool_speaker( AW_root *root, AED_window *aedwindow );
270AW_window *create_tool_consensus( AW_root *root, AED_window *aedwindow );
271//AW_window *create_submission_window( AW_root *root );
272void set_cursor_to( AED_window *aedw, long cursor,class AED_area_entry *aed );
Note: See TracBrowser for help on using the repository browser.