Upgrade gettext infrastructure.
3 * This file is a part of LEMON, a generic C++ optimization library
5 * Copyright (C) 2003-2006
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
9 * Permission to use, modify and distribute this software is granted
10 * provided that this copyright notice appears in all copies. For
11 * precise terms see the accompanying LICENSE file.
13 * This software is provided "AS IS" with no warranty of any kind,
14 * express or implied, and with no claim as to its suitability for any
22 #include <all_include.h>
23 #include <libgnomecanvasmm.h>
24 #include <libgnomecanvasmm/polygon.h>
25 #include "map_value.h"
27 ///A widget by which node and arcmaps can be selected, deselected and created.
29 ///During the usage of \ref glemon we have to select
30 ///maps several times. We also need some aid-function
31 ///like new map creation and deselecting previously
32 ///selected map. Instead of writing a the mapselection
33 ///at all occurences we can use this widget by connecting
34 ///its signals to the correct place.
35 class MapSelector : public Gtk::HBox
38 ///This signal indicates that the selection has been changed by user.
39 sigc::signal<void, std::string> signal_cbt;
41 ///Signal that indicates that user wants to create a new map.
42 sigc::signal<void, bool> signal_newmapwin;
44 ///If this is true, beyond the mapnames a 'Default' selection is available as well.
46 ///For example \ref MapWin needs 'Default' option as well. In this case no map
47 ///will be visualized by the appropriate property.
48 ///But \ref AlgoWin do not need 'Default' option, because if no map is selected,
49 ///no algorithm can be run.
50 ///Its value is got and set in contructor.
53 ///Are the names of arcmaps or nodemaps stored here.
56 ///Shows whether 'Default' option is selected or not.
59 ///It is true when the new button had been pressed but the new map has not been registrated yet.
61 ///Before signal of \ref NewMapWin request is emitted by the \ref MapSelector
62 ///this variable is set to true. When the new map
63 ///is done, it will be registrated in all existing \ref MapSelector
64 ///by \ref append_text function. That function checks
65 ///whether this variable is true. If it is true that means
66 ///that this \ref MapSelector has requested \ref NewMapWin.
67 ///Therefore it set itself to the recently created map.
68 ///After that \ref set_new_map is set again false, not to
69 ///set maps active if \ref MapSelector piece is not the requester.
72 ///The widget that holds the names of maps.
74 ///It can be rolled down
75 ///Names in it are selectable.
76 Gtk::ComboBoxText cbt;
78 std::vector<std::string> cbt_content;
83 ///\ref NewMapWin wilol pop-up
88 ///If pressed \ref cbt will
89 ///set to 'Default' option.
91 ///It is visible only if \ref def is true.
94 ///Shows purpose of \ref MapSelector piece.
97 /// Which types of maps (integer, string, ...) to display.
102 ///Constructor of \ref MapSelector
104 ///Creates the layout and binds signal to the correct place.
105 ///\param mapstorage Pointer to the \ref MapStorage to get the map list from.
106 ///\param act preselected option
107 ///\param purpose text of label indicating purpose of \ref MapStorage
108 ///\param itisarc do \ref MapSelector contains arcmap names or nodemapnames.
109 ///\param def do we need 'Default' option. See \ref def.
110 ///\param type Specifies which types of maps to display.
111 MapSelector(std::vector<std::string> n_ml,
112 std::vector<std::string> s_ml, std::string act, std::string labeltext,
113 bool arc, bool d = true, MapType type = ALL);
115 ///Returns signal emitted if the user has changed the selection. (\ref signal_cbt)
116 sigc::signal<void, std::string> signal_cbt_ch();
118 ///Returns signal emitted if the user has pressed New button (\ref newbut) (\ref signal_newmapwin)
119 sigc::signal<void, bool> signal_newmapwin_needed();
121 ///Maintain \ref cbt.
123 ///Fills in \ref cbt with names, taking
124 ///into account that the previously selected option
125 ///has to be set back after the operation.
126 void update_list(std::vector<std::string> n_ml,
127 std::vector<std::string> s_ml);
129 ///Handles changement in \ref cbt.
131 ///In default case it emits a signal with the selected option.
132 ///But if 'Default' option is selected, it resets the \ref MapSelector
133 virtual void comboChanged();
135 ///Requests a \ref NewMapWin
137 ///See \ref set_new_map.
138 ///First it sets \ref set_new_map true to be identified
139 ///at registration of new map that
140 ///it has sent the \ref signal_newmapwin, therefore it
141 ///has to set \ref cbt to that option.
142 virtual void new_but_pressed();
144 ///If called, 'Default' option is selected, that means unselection of any maps.
146 ///Practically this means that if this is called,
147 ///properties of digraph will set to default state.
148 ///The function achieves this by emitting appropriately
149 ///parametrized signal_cbt.
150 virtual void reset();
152 ///Returns the currently selected option.
153 Glib::ustring get_active_text();
155 ///Sets the parameter active in \ref cbt.
157 ///\param new_value the
158 ///new value to be set in \ref cbt.
159 void set_active_text(Glib::ustring new_value);
161 ///Sets the parameter active in \ref cbt.
163 ///index of row to be set in \ref cbt.
164 void set_active(int index){cbt.set_active(index);};
166 ///Clear all options from \ref cbt.
167 void clear(){cbt.clear();};
169 ///Appends a new option to the existing ones in \ref cbt.
171 ///If \ref set_new_map is true, the
172 ///\ref MapSelector has requested the opened \ref NewMapWin,
173 ///from that the option to append is coming. In this case
174 ///this function will set \ref cbt to the new option.
175 ///\param new_option new option to append
176 void append_text(Glib::ustring new_option, MapValue::Type);
178 #endif //MAPSELECTOR_H