1 // This file is part of the Mussa source distribution.
2 // http://mussa.caltech.edu/
3 // Contact author: Tristan De Buysscher, tristan@caltech.edu
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.
11 #include "mussa_gui_seq_text.hh"
15 get_seq_cb(Fl_Button* o, void* v)
17 SeqTextWin* T=(SeqTextWin*)v;
22 SeqTextWin::real_get_seq_cb()
24 string sub_seq_formatted;
25 int seq_len, i, line_len;
28 cout << "length = " << seq_end-seq_start << endl;
30 // make sure inputed values within valid ranges
31 if ((seq_end > seq_start) && (seq_id > -1) && (seq_id < the_Seqs.size()) )
33 sub_sequence = the_Seqs[seq_id].subseq(seq_start, seq_end-seq_start);
35 sub_seq_formatted = "";
36 seq_len = sub_sequence.size();
38 for (i = 0; i < seq_len; i += line_len)
40 sub_seq_formatted.append(sub_sequence.substr(i,line_len));
41 sub_seq_formatted.append("\n");
44 seq_display->value((const char *)sub_seq_formatted.c_str());
49 // *** input seq index id
52 set_seq_id_cb(Fl_Input* o, void* v)
54 SeqTextWin* T=(SeqTextWin*)v;
55 T->real_set_seq_id_cb(o);
59 SeqTextWin::real_set_seq_id_cb(Fl_Input* o)
61 seq_id = atoi(o->value()) - 1; // -1 since arrays start at 0
65 // *** input seq start index
68 set_seq_start_cb(Fl_Input* o, void* v)
70 SeqTextWin* T=(SeqTextWin*)v;
71 T->real_set_seq_start_cb(o);
75 SeqTextWin::real_set_seq_start_cb(Fl_Input* o)
77 seq_start = atoi(o->value());
80 // *** input seq end index
83 set_seq_end_cb(Fl_Input* o, void* v)
85 SeqTextWin* T=(SeqTextWin*)v;
86 T->real_set_seq_end_cb(o);
90 SeqTextWin::real_set_seq_end_cb(Fl_Input* o)
92 seq_end = atoi(o->value());
96 SeqTextWin::SeqTextWin(int w, int h, const char* title,
97 vector<Sequence> some_Seqs):Fl_Window(w,h,title)
101 the_Seqs = some_Seqs;
110 seq_id_input = new Fl_Input(80,10,30,30, "Seq num: ");
111 seq_id_input->value("");
112 seq_id_input->callback((Fl_Callback*)set_seq_id_cb, this);
114 seq_start_input = new Fl_Input(160,10,100,30, " start: ");
115 seq_start_input->value("");
116 seq_start_input->callback((Fl_Callback*)set_seq_start_cb, this);
118 seq_end_input = new Fl_Input(310,10,100,30, "end: ");
119 seq_end_input->value("");
120 seq_end_input->callback((Fl_Callback*)set_seq_end_cb, this);
122 seq_display = new Fl_Multiline_Output(10, 50, w-20, h-60, "");
123 seq_display->value("");
125 //seq_display2 = new Fl_Text_Display(10,100, w-20, h-110,"");
127 // button to get the sequence
128 get_seq_but = new Fl_Button(w-80,10,80,30,"Get Seq");
129 get_seq_but->callback((Fl_Callback*)get_seq_cb, this);
138 SeqTextWin::~SeqTextWin(){}