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 "gui/SeqTextWindow.hpp"
16 get_seq_cb(Fl_Button* o, void* v)
18 SeqTextWindow* T=(SeqTextWindow*)v;
23 SeqTextWindow::real_get_seq_cb()
25 string sub_seq_formatted;
26 int seq_len, i, line_len;
29 cout << "length = " << seq_end-seq_start << endl;
31 // make sure inputed values within valid ranges
32 if ((seq_end > seq_start) && (seq_id > -1) && (seq_id < the_seqs.size()) )
34 sub_sequence = the_seqs[seq_id].subseq(seq_start, seq_end-seq_start);
36 sub_seq_formatted = "";
37 seq_len = sub_sequence.size();
39 for (i = 0; i < seq_len; i += line_len)
41 sub_seq_formatted.append(sub_sequence.substr(i,line_len));
42 sub_seq_formatted.append("\n");
45 seq_display->value((const char *)sub_seq_formatted.c_str());
50 // *** input seq index id
53 set_seq_id_cb(Fl_Input* o, void* v)
55 SeqTextWindow* T=(SeqTextWindow*)v;
56 T->real_set_seq_id_cb(o);
60 SeqTextWindow::real_set_seq_id_cb(Fl_Input* o)
62 seq_id = atoi(o->value()) - 1; // -1 since arrays start at 0
66 // *** input seq start index
69 set_seq_start_cb(Fl_Input* o, void* v)
71 SeqTextWindow* T=(SeqTextWindow*)v;
72 T->real_set_seq_start_cb(o);
76 SeqTextWindow::real_set_seq_start_cb(Fl_Input* o)
78 seq_start = atoi(o->value());
81 // *** input seq end index
84 set_seq_end_cb(Fl_Input* o, void* v)
86 SeqTextWindow* T=(SeqTextWindow*)v;
87 T->real_set_seq_end_cb(o);
91 SeqTextWindow::real_set_seq_end_cb(Fl_Input* o)
93 seq_end = atoi(o->value());
97 SeqTextWindow::SeqTextWindow(int w, int h, const char* title,
98 vector<Sequence> some_Seqs):Fl_Window(w,h,title)
102 the_seqs = some_Seqs;
111 seq_id_input = new Fl_Input(80,10,30,30, "Seq num: ");
112 seq_id_input->value("");
113 seq_id_input->callback((Fl_Callback*)set_seq_id_cb, this);
115 seq_start_input = new Fl_Input(160,10,100,30, " start: ");
116 seq_start_input->value("");
117 seq_start_input->callback((Fl_Callback*)set_seq_start_cb, this);
119 seq_end_input = new Fl_Input(310,10,100,30, "end: ");
120 seq_end_input->value("");
121 seq_end_input->callback((Fl_Callback*)set_seq_end_cb, this);
123 seq_display = new Fl_Multiline_Output(10, 50, w-20, h-60, "");
124 seq_display->value("");
126 //seq_display2 = new Fl_Text_Display(10,100, w-20, h-110,"");
128 // button to get the sequence
129 get_seq_but = new Fl_Button(w-80,10,80,30,"Get Seq");
130 get_seq_but->callback((Fl_Callback*)get_seq_cb, this);
139 SeqTextWindow::~SeqTextWindow(){}