[project @ 13]
[mussa.git] / mussa_gui_seq.hh
1 //  This file is part of the Mussa source distribution.
2 //  http://mussa.caltech.edu/
3 //  Contact author: Tristan  De Buysscher, tristan@caltech.edu
4
5 // This program and all associated source code files are Copyright (C) 2005
6 // the California Institute of Technology, Pasadena, CA, 91125 USA.  It is
7 // under the GNU Public License; please see the included LICENSE.txt
8 // file for more information, or contact Tristan directly.
9
10
11 #include "mussa_gui_seq_view.hh"
12
13 #include <FL/Fl_Menu_Bar.H>
14 #include <FL/Fl_Menu_Item.H>
15 #include <FL/Fl_Menu_Button.H>
16 #include <FL/Fl_Double_Window.H>
17
18
19 class SeqWindow : public Fl_Double_Window
20 {
21   private:
22     string ana_name;
23     int base_window_len;
24
25     //this data is passed as pointers to the instantiated classes
26     vector<Sequence> *S;
27     // list of paths in selection box
28     list<vector<int> > P;
29     vector<int> seq_lens;
30     //pointer to passed motif data
31     vector<motif> *the_motifs;
32
33     int x_max, y_max;
34     Fl_Menu_Button *choose_align_menu;
35     Fl_Menu_Button *show_align_menu;
36     Fl_Button *toggle_bars;
37     SeqView *seq_box;
38
39   public:
40     int seq_num;
41
42     SeqWindow(int w, int h, const char* title, int sq_num,
43               vector<Sequence> *some_seqs, 
44               list<vector<int> > some_paths, vector<int> some_lens,
45               vector<motif> *some_motifs);
46     virtual ~SeqWindow(){ cout << "dying\n"; }
47
48     void make_choose_menu();
49     void make_show_menu();
50     void real_set_align_cb(int which_align);
51     void real_show_align_cb(int which_align);
52     void real_toggle_bars_cb();
53     void real_toggle_motifs_cb();
54 };
55
56
57
58 struct menu_align_data_bundle
59 {
60   SeqWindow * swm_ptr;
61   int which_align;
62 };