1 #include "mussa_gui_motif_window.hh"
13 a_motif->color = (Fl_Color) 5;
14 a_motif->locations.clear();
15 a_motif->dirty = false;
17 cout << "name: " << a_motif->name << " seq: " << a_motif->seq << endl;
24 cb_motif_in(Fl_Input* o, void* v)
26 motif_instance * blah = (motif_instance *) v;
27 MotifWindow* T= blah->mw_ptr;
28 T->cb_motif_in_i(o,blah->index);
33 cb_motif_color(Fl_Button* o, void* v)
35 motif_instance * blah = (motif_instance *) v;
36 MotifWindow* T= blah->mw_ptr;
37 T->cb_motif_color_i(o,blah->index);
41 MotifWindow::MotifWindow(int w, int h, const char* title,
42 vector<motif> * some_motifs):Fl_Window(w,h,title)
46 the_motifs = some_motifs;
49 motif_color_buttons.clear();
52 motif_input_pack = new Fl_Pack(0, 0, w, h);
53 motif_input_pack->spacing(4);
55 // button to add new motif inputs
56 add_motif = new Fl_Button(0,0,100,24,"Add Motif Slot");
57 add_motif->callback((Fl_Callback*)add_motif_cb, this);
58 motif_input_pack->add(add_motif);
59 // test button to make sure motif data is being stored
60 test = new Fl_Button(0,0,100,24,"show motifs");
61 test->callback((Fl_Callback*)print_cb, this);
62 motif_input_pack->add(test);
63 // creat an initial set of motif input widgets and attach to motif vector
64 for (i = 0; i < 5; i++)
73 add(motif_input_pack);
80 //tmp_input->user_data((void*) i);
82 MotifWindow::~MotifWindow(){}
85 MotifWindow::add_motif_input(int index)
88 Fl_Button *new_color_button;
89 motif_instance * something;
90 Fl_Pack * motif_hor_pack;
93 something = new motif_instance;
94 something->mw_ptr = this;
95 something->index = index;
97 motif_hor_pack = new Fl_Pack(0, 0, w(), 24);
98 motif_hor_pack->type(Fl_Pack::HORIZONTAL);
99 motif_hor_pack->spacing(4);
101 // setup the color display/selection button
102 new_color_button = new Fl_Button(0, 0, 24, 24, "");
103 new_color_button->color((*the_motifs)[index].color);
104 new_color_button->box(FL_FLAT_BOX);
105 new_color_button->callback((Fl_Callback*)cb_motif_color, (void*) something);
106 motif_color_buttons.push_back(new_color_button);
107 motif_hor_pack->add(new_color_button);
110 // setup the motif inputs
111 new_input = new Fl_Input(0, 0, 200, 24, "");
112 new_input->value( ((*the_motifs)[index].seq).c_str() );
113 new_input->callback((Fl_Callback*)cb_motif_in, (void*) something);
114 motif_ins.push_back(new_input);
115 motif_hor_pack->add(new_input);
117 motif_input_pack->add(motif_hor_pack);
127 MotifWindow::cb_motif_in_i(Fl_Input* o, int i)
129 (*the_motifs)[i].seq = o->value();
130 (*the_motifs)[i].dirty = true;
134 MotifWindow::cb_motif_color_i(Fl_Button* o, int i)
136 //Fl_Color new_color;
138 (*the_motifs)[i].color = fl_show_colormap((*the_motifs)[i].color);
139 //motif_color_buttons[i]->
140 o->color((*the_motifs)[i].color);
144 void MotifWindow::add_motif_cb(Fl_Button* o, void* v)
146 MotifWindow* T=(MotifWindow*)v;
147 T->add_motif_cb_real(o,v);
151 void MotifWindow::add_motif_cb_real(Fl_Button* , void*)
155 //blank_motif.name = "";
156 //blank_motif.seq = "";
157 blank_motif = new_blank_motif();
158 (*the_motifs).push_back(blank_motif);
159 add_motif_input(motif_count++);
164 void MotifWindow::print_cb(Fl_Button* o, void* v)
166 MotifWindow* T=(MotifWindow*)v;
167 T->print_cb_real(o,v);
171 void MotifWindow::print_cb_real(Fl_Button* , void*)
175 for (i = 0; i < motif_count; i++)
176 cout << (*the_motifs)[i].seq << endl;