ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/RenegadeMapSelector/MapSelector.cpp
(Generate patch)

Comparing trunk/RenegadeMapSelector/MapSelector.cpp (file contents):
Revision 88 by douglas, 2003-03-15T20:18:13-08:00 vs.
Revision 93 by douglas, 2003-03-15T22:52:20-08:00

# Line 96 | Line 96 | MapSelector::MapSelector()
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  
# Line 144 | Line 145 | MapSelector::MapSelector()
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  
# Line 185 | Line 195 | void MapSelector::setupAvailable()
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)
# Line 199 | Line 232 | void destruct(GtkWidget* widget, MapSele
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();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines