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

Comparing trunk/RenegadeMapSelector/MapSelector.cpp (file contents):
Revision 87 by douglas, 2003-03-15T17:19:37-08:00 vs.
Revision 88 by douglas, 2003-03-15T20:18:13-08:00

# Line 8 | Line 8
8  
9   #ifndef _WIN32
10  
11 void destruct(GtkWidget* widget, MapSelector* data)
12 {
13        gtk_main_quit();
14 }
15
16 void done(GtkWidget* widget, MapSelector* data)
17 {
18        if (true)
19        {
20                message(GTK_WINDOW(data->window), "You need at least one map.",
21                        "No Maps", GTK_MESSAGE_WARNING);
22        }
23        else
24        {
25                //
26
27                config->save();
28
29                gtk_main_quit();
30        }
31 }
32
33 void mapAdd(GtkWidget* widget, MapSelector* data)
34 {
35        cout << "STUB: add\n\a" << flush;
36 }
37
38 void mapRemove(GtkWidget* widget, MapSelector* data)
39 {
40        cout << "STUB: remove\n\a" << flush;
41 }
42
43 void mapUp(GtkWidget* widget, MapSelector* data)
44 {
45        cout << "STUB: up\n\a" << flush;
46 }
47
48 void mapDown(GtkWidget* widget, MapSelector* data)
49 {
50        cout << "STUB: down\n\a" << flush;
51 }
52
11   MapSelector::MapSelector()
12   {
13          window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
# Line 66 | Line 24 | MapSelector::MapSelector()
24          gtk_frame_set_label_align(GTK_FRAME(left), 0.5, 0.5);
25          gtk_container_set_border_width(GTK_CONTAINER(left), 6);
26  
27 +        GtkWidget* leftScroll = gtk_scrolled_window_new(NULL, NULL);
28 +        
29 +        gtk_container_set_border_width(GTK_CONTAINER(leftScroll), 6);
30 +        gtk_widget_set_size_request(leftScroll, 150, 200);
31 +        gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(leftScroll),
32 +                GTK_SHADOW_IN);
33 +
34 +        available = gtk_tree_view_new();
35 +
36 +        gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(available), false);
37 +        setupAvailable();
38 +
39          GtkWidget* center = gtk_vbox_new(true, 0);
40          GtkWidget* top = gtk_vbutton_box_new();
41  
# Line 104 | Line 74 | MapSelector::MapSelector()
74          gtk_frame_set_label_align(GTK_FRAME(right), 0.5, 0.5);
75          gtk_container_set_border_width(GTK_CONTAINER(right), 6);
76  
77 +        GtkWidget* rightScroll = gtk_scrolled_window_new(NULL, NULL);
78 +
79 +        gtk_container_set_border_width(GTK_CONTAINER(rightScroll), 6);
80 +        gtk_widget_set_size_request(rightScroll, 150, 200);
81 +        gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(rightScroll),
82 +                GTK_SHADOW_IN);
83 +
84 +        selected = gtk_tree_view_new();
85 +
86 +        gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(selected), false);
87 +        setupSelected();
88 +
89          GtkWidget* separator = gtk_hseparator_new();
90          GtkWidget* bottom = gtk_hbutton_box_new();
91  
# Line 122 | Line 104 | MapSelector::MapSelector()
104          // pack
105          gtk_container_add(GTK_CONTAINER(vertical), horizontal);
106          gtk_container_add(GTK_CONTAINER(horizontal), left);
107 +        gtk_container_add(GTK_CONTAINER(left), leftScroll);
108 +        gtk_container_add(GTK_CONTAINER(leftScroll), available);
109          gtk_container_add(GTK_CONTAINER(horizontal), center);
110          gtk_container_add(GTK_CONTAINER(center), top);
111          gtk_container_add(GTK_CONTAINER(top), add);
# Line 130 | Line 114 | MapSelector::MapSelector()
114          gtk_container_add(GTK_CONTAINER(middle), up);
115          gtk_container_add(GTK_CONTAINER(middle), down);
116          gtk_container_add(GTK_CONTAINER(horizontal), right);
117 +        gtk_container_add(GTK_CONTAINER(right), rightScroll);
118 +        gtk_container_add(GTK_CONTAINER(rightScroll), selected);
119          gtk_container_add(GTK_CONTAINER(vertical), separator);
120          gtk_container_add(GTK_CONTAINER(bottom), ok);
121          gtk_container_add(GTK_CONTAINER(bottom), cancel);
# Line 137 | Line 123 | MapSelector::MapSelector()
123          gtk_container_add(GTK_CONTAINER(window), vertical);
124  
125          // show
126 +        gtk_widget_show(available);
127 +        gtk_widget_show(leftScroll);
128          gtk_widget_show(left);
129          gtk_widget_show(add);
130          gtk_widget_show(remove);
# Line 145 | Line 133 | MapSelector::MapSelector()
133          gtk_widget_show(down);
134          gtk_widget_show(middle);
135          gtk_widget_show(center);
136 +        gtk_widget_show(selected);
137 +        gtk_widget_show(rightScroll);
138          gtk_widget_show(right);
139          gtk_widget_show(horizontal);
140          gtk_widget_show(separator);
# Line 157 | Line 147 | MapSelector::MapSelector()
147          gtk_main();
148   }
149  
150 + void MapSelector::setupAvailable()
151 + {
152 +        GtkListStore* store = gtk_list_store_new(1, G_TYPE_STRING);
153 +
154 +        char* directory = new char[MAXPATHLEN + 1];
155 +        getcwd(directory, MAXPATHLEN + 1);
156 +        if (debug) cerr << "directory = " << directory << "\n";
157 +
158 +        char* data = new char[strlen(directory) + 6];
159 +        sprintf(data, "%s/data", directory);
160 +        delete [] directory;
161 +        if (debug) cerr << "data = " << data << "\n";
162 +
163 +        DIR* dir = opendir(data);
164 +        delete [] data;
165 +
166 +        GtkTreeIter itor;
167 +        dirent* file;
168 +        while ((file = readdir(dir)) != NULL)
169 +        {
170 +                string name = file->d_name;
171 +
172 +                if (name.rfind(".mix") == name.length() - 4)
173 +                {
174 +                        gtk_list_store_append(store, &itor);
175 +                        gtk_list_store_set(store, &itor, 0, name.c_str(), -1);
176 +                }
177 +        }
178 +
179 +        closedir(dir);
180 +
181 +        gtk_tree_view_set_model(GTK_TREE_VIEW(available), GTK_TREE_MODEL(store));
182 +
183 +        GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
184 +        GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes(NULL,
185 +                renderer, "text", 0, NULL);
186 +
187 +        gtk_tree_view_append_column(GTK_TREE_VIEW(available), column);
188 + }
189 +
190 + void MapSelector::setupSelected()
191 + {
192 +        //
193 + }
194 +
195 + void destruct(GtkWidget* widget, MapSelector* data)
196 + {
197 +        gtk_main_quit();
198 + }
199 +
200 + void done(GtkWidget* widget, MapSelector* data)
201 + {
202 +        if (true)
203 +        {
204 +                message(GTK_WINDOW(data->window), "You need at least one map.",
205 +                        "No Maps", GTK_MESSAGE_WARNING);
206 +        }
207 +        else
208 +        {
209 +                //
210 +
211 +                config->save();
212 +
213 +                gtk_main_quit();
214 +        }
215 + }
216 +
217 + void mapAdd(GtkWidget* widget, MapSelector* data)
218 + {
219 +        cout << "STUB: add\n\a" << flush;
220 + }
221 +
222 + void mapRemove(GtkWidget* widget, MapSelector* data)
223 + {
224 +        cout << "STUB: remove\n\a" << flush;
225 + }
226 +
227 + void mapUp(GtkWidget* widget, MapSelector* data)
228 + {
229 +        cout << "STUB: up\n\a" << flush;
230 + }
231 +
232 + void mapDown(GtkWidget* widget, MapSelector* data)
233 + {
234 +        cout << "STUB: down\n\a" << flush;
235 + }
236 +
237   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines