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