96 |
|
GtkWidget* ok = gtk_button_new_from_stock(GTK_STOCK_OK); |
97 |
|
|
98 |
|
g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(done), this); |
99 |
+ |
GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT); |
100 |
|
|
101 |
|
GtkWidget* cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL); |
102 |
|
|
145 |
|
gtk_widget_show(vertical); |
146 |
|
gtk_widget_show(window); |
147 |
|
|
148 |
+ |
// stuff |
149 |
+ |
gtk_widget_grab_default(ok); |
150 |
+ |
gtk_widget_grab_focus(ok); |
151 |
+ |
|
152 |
+ |
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( |
153 |
+ |
available)); |
154 |
+ |
|
155 |
+ |
gtk_tree_selection_unselect_all(selection); |
156 |
+ |
|
157 |
|
gtk_main(); |
158 |
|
} |
159 |
|
|
195 |
|
renderer, "text", 0, NULL); |
196 |
|
|
197 |
|
gtk_tree_view_append_column(GTK_TREE_VIEW(available), column); |
198 |
+ |
|
199 |
+ |
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( |
200 |
+ |
available)); |
201 |
|
} |
202 |
|
|
203 |
|
void MapSelector::setupSelected() |
204 |
|
{ |
205 |
< |
// |
205 |
> |
GtkListStore* store = gtk_list_store_new(1, G_TYPE_STRING); |
206 |
> |
|
207 |
> |
vector<string> maps = config->getMaps(); |
208 |
> |
|
209 |
> |
GtkTreeIter itor; |
210 |
> |
for (unsigned index = 0; index < maps.size(); index++) |
211 |
> |
{ |
212 |
> |
gtk_list_store_append(store, &itor); |
213 |
> |
gtk_list_store_set(store, &itor, 0, maps[index].c_str(), -1); |
214 |
> |
} |
215 |
> |
|
216 |
> |
gtk_tree_view_set_model(GTK_TREE_VIEW(selected), GTK_TREE_MODEL(store)); |
217 |
> |
|
218 |
> |
GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); |
219 |
> |
GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes(NULL, |
220 |
> |
renderer, "text", 0, NULL); |
221 |
> |
|
222 |
> |
gtk_tree_view_append_column(GTK_TREE_VIEW(selected), column); |
223 |
> |
|
224 |
> |
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( |
225 |
> |
selected)); |
226 |
|
} |
227 |
|
|
228 |
|
void destruct(GtkWidget* widget, MapSelector* data) |
232 |
|
|
233 |
|
void done(GtkWidget* widget, MapSelector* data) |
234 |
|
{ |
235 |
< |
if (true) |
235 |
> |
GtkTreeModel* store = gtk_tree_view_get_model(GTK_TREE_VIEW(data->selected) |
236 |
> |
); |
237 |
> |
|
238 |
> |
GtkTreeIter itor; |
239 |
> |
if (!gtk_tree_model_get_iter_first(store, &itor)) |
240 |
|
{ |
241 |
|
message(GTK_WINDOW(data->window), "You need at least one map.", |
242 |
< |
"No Maps", GTK_MESSAGE_WARNING); |
242 |
> |
"No Maps", GTK_MESSAGE_INFO); |
243 |
|
} |
244 |
|
else |
245 |
|
{ |
246 |
< |
// |
246 |
> |
vector<string> maps; |
247 |
> |
|
248 |
> |
do |
249 |
> |
{ |
250 |
> |
char* name; |
251 |
> |
|
252 |
> |
gtk_tree_model_get(store, &itor, 0, &name, -1); |
253 |
> |
maps.push_back(name); |
254 |
> |
|
255 |
> |
g_free(name); |
256 |
> |
} |
257 |
> |
while (gtk_tree_model_iter_next(store, &itor)); |
258 |
|
|
259 |
+ |
config->setMaps(maps); |
260 |
+ |
|
261 |
|
config->save(); |
262 |
|
|
263 |
|
gtk_main_quit(); |