hegyi@103: // -*- C++ -*- // hegyi@103: hegyi@103: #ifndef ALGOBOX_H hegyi@103: #define ALGOBOX_H hegyi@103: hegyi@103: class AlgoBox; hegyi@103: hegyi@103: #include hegyi@103: #include hegyi@103: #include hegyi@103: hegyi@103: class AlgoBox : public Gtk::VBox hegyi@103: { hegyi@103: hegyi@103: Gtk::Label * label; hegyi@103: Gtk::ComboBoxText cbt; hegyi@103: hegyi@103: public: hegyi@103: AlgoBox(std::vector tabnames) hegyi@103: { hegyi@103: update_tablist(tabnames); hegyi@103: hegyi@103: label=new Gtk::Label("Haliho"); hegyi@103: hegyi@103: pack_start(*label); hegyi@103: pack_start(cbt); hegyi@103: hegyi@103: show_all_children(); hegyi@103: }; hegyi@103: hegyi@103: void update_tablist( std::vector< std::string > tl ) hegyi@103: { hegyi@103: std::string actname=cbt.get_active_text(); hegyi@103: int prev_act=-1; hegyi@103: hegyi@103: cbt.clear(); hegyi@103: int actptr=0; hegyi@103: hegyi@103: std::vector< std::string >::iterator emsi=tl.begin(); hegyi@103: for(;emsi!=tl.end();emsi++) hegyi@103: { hegyi@103: if(actname==*emsi) hegyi@103: { hegyi@103: prev_act=actptr; hegyi@103: } hegyi@103: hegyi@103: cbt.append_text(*emsi); hegyi@103: actptr++; hegyi@103: } hegyi@103: hegyi@103: if(prev_act!=-1) hegyi@103: { hegyi@103: cbt.set_active(prev_act); hegyi@103: } hegyi@103: else if(actptr>0) //so there is item in the list hegyi@103: { hegyi@103: cbt.set_active(0); hegyi@103: } hegyi@103: } hegyi@103: hegyi@103: }; hegyi@103: #endif //ALGOBOX_H