ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/RenegadeMapSelector/MapSelector.cpp
Revision: 86
Committed: 2003-03-15T16:43:53-08:00 (22 years, 3 months ago) by douglas
File size: 4344 byte(s)
Log Message:
Objectified!

File Contents

# Content
1 // Renegade Map Selector
2 //
3 // Douglas Thrift
4 //
5 // MapSelector.cpp
6
7 #ifndef _WIN32
8
9 static void destruct(GtkWidget* widget, gpointer data)
10 {
11 gtk_main_quit();
12 }
13
14 static void done(GtkWidget* widget, gpointer data)
15 {
16 if (true)
17 {
18 message(GTK_WINDOW(window), "You need at least one map.", "No Maps",
19 GTK_MESSAGE_WARNING);
20 }
21 else
22 {
23 //
24
25 config->save();
26
27 gtk_main_quit();
28 }
29 }
30
31 static void mapAdd(GtkWidget* widget, gpointer data)
32 {
33 cout << "STUB: add\n\a" << flush;
34 }
35
36 static void mapRemove(GtkWidget* widget, gpointer data)
37 {
38 cout << "STUB: remove\n\a" << flush;
39 }
40
41 static void mapUp(GtkWidget* widget, gpointer data)
42 {
43 cout << "STUB: up\n\a" << flush;
44 }
45
46 static void mapDown(GtkWidget* widget, gpointer data)
47 {
48 cout << "STUB: down\n\a" << flush;
49 }
50
51 MapSelector::MapSelector()
52 {
53 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
54
55 gtk_window_set_title(GTK_WINDOW(window), "Renegade Map Selector");
56 gtk_window_set_resizable(GTK_WINDOW(window), false);
57 g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destruct),
58 NULL);
59
60 GtkWidget* vertical = gtk_vbox_new(false, 0);
61 GtkWidget* horizontal = gtk_hbox_new(false, 9);
62 GtkWidget* left = gtk_frame_new("Available Maps");
63
64 gtk_frame_set_label_align(GTK_FRAME(left), 0.5, 0.5);
65 gtk_container_set_border_width(GTK_CONTAINER(left), 6);
66
67 GtkWidget* center = gtk_vbox_new(true, 0);
68 GtkWidget* top = gtk_vbutton_box_new();
69
70 gtk_button_box_set_layout(GTK_BUTTON_BOX(top), GTK_BUTTONBOX_START);
71 gtk_box_set_spacing(GTK_BOX(top), 9);
72 gtk_container_set_border_width(GTK_CONTAINER(top), 6);
73
74 add = gtk_button_new_with_mnemonic("_Add");
75
76 g_signal_connect(G_OBJECT(add), "clicked", G_CALLBACK(mapAdd), NULL);
77 gtk_widget_set_sensitive(add, false);
78
79 remove = gtk_button_new_with_mnemonic("_Remove");
80
81 g_signal_connect(G_OBJECT(remove), "clicked", G_CALLBACK(mapRemove), NULL);
82 gtk_widget_set_sensitive(remove, false);
83
84 GtkWidget* middle = gtk_vbutton_box_new();
85
86 gtk_button_box_set_layout(GTK_BUTTON_BOX(middle), GTK_BUTTONBOX_END);
87 gtk_box_set_spacing(GTK_BOX(middle), 9);
88 gtk_container_set_border_width(GTK_CONTAINER(middle), 6);
89
90 up = gtk_button_new_with_mnemonic("_Up");
91
92 g_signal_connect(G_OBJECT(up), "clicked", G_CALLBACK(mapUp), NULL);
93 gtk_widget_set_sensitive(up, false);
94
95 down = gtk_button_new_with_mnemonic("_Down");
96
97 g_signal_connect(G_OBJECT(down), "clicked", G_CALLBACK(mapDown), NULL);
98 gtk_widget_set_sensitive(down, false);
99
100 GtkWidget* right = gtk_frame_new("Selected Maps");
101
102 gtk_frame_set_label_align(GTK_FRAME(right), 0.5, 0.5);
103 gtk_container_set_border_width(GTK_CONTAINER(right), 6);
104
105 GtkWidget* separator = gtk_hseparator_new();
106 GtkWidget* bottom = gtk_hbutton_box_new();
107
108 gtk_button_box_set_layout(GTK_BUTTON_BOX(bottom), GTK_BUTTONBOX_END);
109 gtk_box_set_spacing(GTK_BOX(bottom), 9);
110 gtk_container_set_border_width(GTK_CONTAINER(bottom), 6);
111
112 GtkWidget* ok = gtk_button_new_from_stock(GTK_STOCK_OK);
113
114 g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(done), NULL);
115
116 GtkWidget* cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
117
118 g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destruct), NULL);
119
120 // pack
121 gtk_container_add(GTK_CONTAINER(vertical), horizontal);
122 gtk_container_add(GTK_CONTAINER(horizontal), left);
123 gtk_container_add(GTK_CONTAINER(horizontal), center);
124 gtk_container_add(GTK_CONTAINER(center), top);
125 gtk_container_add(GTK_CONTAINER(top), add);
126 gtk_container_add(GTK_CONTAINER(top), remove);
127 gtk_container_add(GTK_CONTAINER(center), middle);
128 gtk_container_add(GTK_CONTAINER(middle), up);
129 gtk_container_add(GTK_CONTAINER(middle), down);
130 gtk_container_add(GTK_CONTAINER(horizontal), right);
131 gtk_container_add(GTK_CONTAINER(vertical), separator);
132 gtk_container_add(GTK_CONTAINER(bottom), ok);
133 gtk_container_add(GTK_CONTAINER(bottom), cancel);
134 gtk_container_add(GTK_CONTAINER(vertical), bottom);
135 gtk_container_add(GTK_CONTAINER(window), vertical);
136
137 // show
138 gtk_widget_show(left);
139 gtk_widget_show(add);
140 gtk_widget_show(remove);
141 gtk_widget_show(top);
142 gtk_widget_show(up);
143 gtk_widget_show(down);
144 gtk_widget_show(middle);
145 gtk_widget_show(center);
146 gtk_widget_show(right);
147 gtk_widget_show(horizontal);
148 gtk_widget_show(separator);
149 gtk_widget_show(ok);
150 gtk_widget_show(cancel);
151 gtk_widget_show(bottom);
152 gtk_widget_show(vertical);
153 gtk_widget_show(window);
154
155 gtk_main();
156 }
157
158 #endif