Changeset 1892:1d384b30157f in lemon-0.x
- Timestamp:
- 01/12/06 15:36:08 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2467
- Location:
- gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
gui/mapselector.cc
r1884 r1892 27 27 label->set_width_chars(longest_property_string_length); 28 28 29 defbut=new Gtk::Button(); 30 defbut->set_label("Reset"); 31 32 defbut->signal_pressed().connect 33 ( 34 sigc::mem_fun(*this, &MapSelector::reset) 35 ); 29 defbut=NULL; 30 if(def) 31 { 32 defbut=new Gtk::Button(); 33 defbut->set_label("Reset"); 34 35 defbut->signal_pressed().connect 36 ( 37 sigc::mem_fun(*this, &MapSelector::reset) 38 ); 39 } 36 40 37 41 newbut=new Gtk::Button(Gtk::Stock::NEW); … … 46 50 add(cbt); 47 51 48 add(*defbut); 52 if(def) 53 { 54 add(*defbut); 55 } 56 49 57 add(*newbut); 50 58 } … … 77 85 void MapSelector::comboChanged() 78 86 { 79 if(cbt.get_active_row_number()!=0 )87 if(cbt.get_active_row_number()!=0 || !def) 80 88 { 81 89 default_state=false; -
gui/mapselector.h
r1885 r1892 11 11 #include <libgnomecanvasmm/polygon.h> 12 12 13 ///A widget by which node and edgemaps can be selected, deselected and created. 14 15 ///During the usage of \ref glemon we have to select 16 ///maps several times. We also need some aid-function 17 ///like new map creation and deselecting previously 18 ///selected map. Instead of writing a the mapselection 19 ///at all occurences we can use this widget by connecting 20 ///its signals to the correct place. 13 21 class MapSelector : public Gtk::HBox 14 22 { 15 23 protected: 24 ///This signal indicates that the selection has been changed by user. 16 25 sigc::signal<void, std::string> signal_cbt; 26 27 ///Signal that indicates that user wants to create a new map. 17 28 sigc::signal<void, bool> signal_newmapwin; 18 29 30 ///If this is true, beyond the mapnames a 'Default' selection is available as well. 31 32 ///For example \ref MapWin needs 'Default' option as well. In this case no map 33 ///will be visualized by the appropriate property. 34 ///But \ref AlgoWin do not need 'Default' option, because if no map is selected, 35 ///no algorithm can be run. 36 ///Its value is got and set in contructor. 19 37 bool def; 20 38 39 ///Are the names of edgemaps or nodemaps stored here. 21 40 bool itisedge; 22 41 42 ///Shows whether 'Default' option is selected or not. 23 43 bool default_state; 24 44 45 ///It is true when the new button had been pressed but the new map has not been registrated yet. 46 47 ///Before signal of \ref NewMapWin request is emitted by the \ref MapSelector 48 ///this variable is set to true. When the new map 49 ///is done, it will be registrated in all existing \ref MapSelector 50 ///by \ref append_text function. That function checks 51 ///whether this variable is true. If it is true that means 52 ///that this \ref MapSelector has requested \ref NewMapWin. 53 ///Therefore it set itself to the recently created map. 54 ///After that \ref set_new_map is set again false, not to 55 ///set maps active if \ref MapSelector piece is not the requester. 25 56 bool set_new_map; 26 57 58 ///The widget that holds the names of maps. 59 60 ///It can be rolled down 61 ///Names in it are selectable. 27 62 Gtk::ComboBoxText cbt; 28 63 29 Gtk::Button * newbut, * defbut;64 ///New button. 30 65 66 ///By pressing it 67 ///\ref NewMapWin wilol pop-up 68 Gtk::Button * newbut; 69 70 ///Reset button. 71 72 ///If pressed \ref cbt will 73 ///set to 'Default' option. 74 /// 75 ///It is visible only if \ref def is true. 76 Gtk::Button * defbut; 77 78 ///Container in which GUI elements are packed. 31 79 Gtk::HBox hbox; 32 80 81 ///Shows purpose of \ref MapSelector piece. 33 82 Gtk::Label * label; 34 83 35 84 public: 36 85 37 MapSelector(std::vector<std::string>, std::string, std::string, bool, bool def=true);86 ///Constructor of \ref MapSelector 38 87 88 ///Creates the layout and binds signal to the correct place. 89 ///\param optionlist list of names to place in \ref cbt 90 ///\param act preselected option 91 ///\param purpose text of label indicating purpose of \ref MapStorage 92 ///\param itisedge do \ref MapSelector contains edgemap names or nodemapnames. 93 ///\param def do we need 'Default' option. See \ref def. 94 MapSelector(std::vector<std::string> optionlist, std::string act, std::string purpose, bool itisedge, bool def=true); 95 96 ///Signal emitted if the user has changed the selection. 39 97 sigc::signal<void, std::string> signal_cbt_ch(); 98 99 ///Signal emitted if the user has pressed New button (\ref newbut) 40 100 sigc::signal<void, bool> signal_newmapwin_needed(); 41 101 102 ///Maintain \ref cbt. 103 104 ///Fills in \ref cbt with names, taking 105 ///into account that the previously selected option 106 ///has to be set back after the operation. 42 107 void update_list( std::vector<std::string> ); 43 108 44 /// If a radiobutton is clicked, this function determines45 ///which button was that and after that calls the 46 /// appropriate function of the \ref GraphDisplayerCanvas47 /// to change the visible values of that attribute.109 ///Handles changement in \ref cbt. 110 111 ///In default case it emits a signal with the selected option. 112 ///But if 'Default' option is selected, it resets the \ref MapSelector 48 113 virtual void comboChanged(); 49 114 115 ///Requests a \ref NewMapWin 116 117 ///See \ref set_new_map. 118 ///First it sets \ref set_new_map true to be identified 119 ///at registration of new map that 120 ///it has sent the \ref signal_newmapwin, therefore it 121 ///has to set \ref cbt to that option. 50 122 virtual void new_but_pressed(); 51 123 124 ///If called, 'Default' option is selected, that means unselection of any maps. 125 126 ///Practically this means that if this is called, 127 ///properties of graph will set to default state. 128 ///The function achieves this by emitting appropriately 129 ///parametrized signal_cbt. 52 130 virtual void reset(); 53 131 132 ///Returns the currently selected option. 54 133 Glib::ustring get_active_text(); 55 void set_active_text(Glib::ustring); 134 135 ///Sets the parameter active in \ref cbt. 136 137 ///\param new_value the 138 ///new value to be set in \ref cbt. 139 void set_active_text(Glib::ustring new_value); 140 141 ///Sets the parameter active in \ref cbt. 142 ///\param index the 143 ///index of row to be set in \ref cbt. 56 144 void set_active(int index){cbt.set_active(index);}; 145 146 ///Clear all options from \ref cbt. 57 147 void clear(){cbt.clear();}; 58 void append_text(Glib::ustring); 148 149 ///Appends a new option to the existing ones in \ref cbt. 150 151 ///If \ref set_new_map is true, the 152 ///\ref MapSelector has requested the opened \ref NewMapWin, 153 ///from that the option to append is coming. In this case 154 ///this function will set \ref cbt to the new option. 155 ///\param new_option new option to append 156 void append_text(Glib::ustring new_option); 59 157 }; 60 158 #endif //MAPSELECTOR_H
Note: See TracChangeset
for help on using the changeset viewer.