// generated 2002/8/4 21:32:50 CEST by free@mandrake82.maison.fr // using glademm V0.6.4 // // newer (non customized) versions of this file go to MMIListBrowser.cc_new // This file is for your program, I won't touch it again! #include "config.h" #include "MMIListBrowser.hh" #include MMIListBrowser::MMIListBrowser(void) : MMIListBrowser_glade(), MMIBrowser() { for (int cpt = 0; cpt < _individuals_list->columns().size() ; cpt++) { _individuals_list->column(cpt).set_justification(GTK_JUSTIFY_LEFT); _individuals_list->column_titles_active(); _columns_sort_types.push_back(GTK_SORT_ASCENDING); } _individuals_list->set_selection_mode(GTK_SELECTION_SINGLE); _individuals_list->click_column.connect(slot(this, &MMIListBrowser::cb_column_clicked)); return; } void MMIListBrowser::cb_column_clicked(int col) { if (_columns_sort_types[col] == GTK_SORT_ASCENDING) { _columns_sort_types[col] = GTK_SORT_DESCENDING; } else { _columns_sort_types[col] = GTK_SORT_ASCENDING; } _individuals_list->set_sort_type(_columns_sort_types[col]); _individuals_list->set_sort_column(col); _individuals_list->sort(); return; } std::string const MMIListBrowser::getSelectedId(void) const { std::string selected_id; Gtk::CList_Helpers::SelectionList selected_rows = _individuals_list->selection(); Gtk::CList_Helpers::Row selected_row = selected_rows.front(); std::string const * ptr_selected_id = (std::string *)selected_row.get_data(); if (ptr_selected_id != 0) { selected_id = *ptr_selected_id; } return selected_id; } void MMIListBrowser::Select(std::string const &id) { std::string * ptr_id = _ids_ptr[id]; Gtk::CList_Helpers::RowIterator row_iter = _individuals_list->rows().find_data(ptr_id); if (row_iter != _individuals_list->rows().end()) { row_iter->select(); _individuals_list->cell(row_iter->get_row_num(),0).moveto(); } return; } void MMIListBrowser::addIndividual(std::vector const &values, std::string const &id) { std::string * ptr_id = new std::string(id); _ids.push_back(SmartPtr < std::string >(ptr_id)); _ids_ptr[id] = ptr_id; _individuals_list->rows().push_back(values); _individuals_list->rows().back().set_data(ptr_id); return; } void MMIListBrowser::clear(void) { _individuals_list->clear(); _ids.clear(); return; }