ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/RenegadeMapSelector/MapSelector.cpp
Revision: 87
Committed: 2003-03-15T17:19:37-08:00 (22 years, 3 months ago) by douglas
File size: 4358 byte(s)
Log Message:
Fixed objectification!

File Contents

# Content
1 // Renegade Map Selector
2 //
3 // Douglas Thrift
4 //
5 // MapSelector.cpp
6
7 #include "MapSelector.h"
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
53 MapSelector::MapSelector()
54 {
55 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
56
57 gtk_window_set_title(GTK_WINDOW(window), "Renegade Map Selector");
58 gtk_window_set_resizable(GTK_WINDOW(window), false);
59 g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destruct),
60 this);
61
62 GtkWidget* vertical = gtk_vbox_new(false, 0);
63 GtkWidget* horizontal = gtk_hbox_new(false, 9);
64 GtkWidget* left = gtk_frame_new("Available Maps");
65
66 gtk_frame_set_label_align(GTK_FRAME(left), 0.5, 0.5);
67 gtk_container_set_border_width(GTK_CONTAINER(left), 6);
68
69 GtkWidget* center = gtk_vbox_new(true, 0);
70 GtkWidget* top = gtk_vbutton_box_new();
71
72 gtk_button_box_set_layout(GTK_BUTTON_BOX(top), GTK_BUTTONBOX_START);
73 gtk_box_set_spacing(GTK_BOX(top), 9);
74 gtk_container_set_border_width(GTK_CONTAINER(top), 6);
75
76 add = gtk_button_new_with_mnemonic("_Add");
77
78 g_signal_connect(G_OBJECT(add), "clicked", G_CALLBACK(mapAdd), this);
79 gtk_widget_set_sensitive(add, false);
80
81 remove = gtk_button_new_with_mnemonic("_Remove");
82
83 g_signal_connect(G_OBJECT(remove), "clicked", G_CALLBACK(mapRemove), this);
84 gtk_widget_set_sensitive(remove, false);
85
86 GtkWidget* middle = gtk_vbutton_box_new();
87
88 gtk_button_box_set_layout(GTK_BUTTON_BOX(middle), GTK_BUTTONBOX_END);
89 gtk_box_set_spacing(GTK_BOX(middle), 9);
90 gtk_container_set_border_width(GTK_CONTAINER(middle), 6);
91
92 up = gtk_button_new_with_mnemonic("_Up");
93
94 g_signal_connect(G_OBJECT(up), "clicked", G_CALLBACK(mapUp), this);
95 gtk_widget_set_sensitive(up, false);
96
97 down = gtk_button_new_with_mnemonic("_Down");
98
99 g_signal_connect(G_OBJECT(down), "clicked", G_CALLBACK(mapDown), this);
100 gtk_widget_set_sensitive(down, false);
101
102 GtkWidget* right = gtk_frame_new("Selected Maps");
103
104 gtk_frame_set_label_align(GTK_FRAME(right), 0.5, 0.5);
105 gtk_container_set_border_width(GTK_CONTAINER(right), 6);
106
107 GtkWidget* separator = gtk_hseparator_new();
108 GtkWidget* bottom = gtk_hbutton_box_new();
109
110 gtk_button_box_set_layout(GTK_BUTTON_BOX(bottom), GTK_BUTTONBOX_END);
111 gtk_box_set_spacing(GTK_BOX(bottom), 9);
112 gtk_container_set_border_width(GTK_CONTAINER(bottom), 6);
113
114 GtkWidget* ok = gtk_button_new_from_stock(GTK_STOCK_OK);
115
116 g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(done), this);
117
118 GtkWidget* cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
119
120 g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destruct), this);
121
122 // pack
123 gtk_container_add(GTK_CONTAINER(vertical), horizontal);
124 gtk_container_add(GTK_CONTAINER(horizontal), left);
125 gtk_container_add(GTK_CONTAINER(horizontal), center);
126 gtk_container_add(GTK_CONTAINER(center), top);
127 gtk_container_add(GTK_CONTAINER(top), add);
128 gtk_container_add(GTK_CONTAINER(top), remove);
129 gtk_container_add(GTK_CONTAINER(center), middle);
130 gtk_container_add(GTK_CONTAINER(middle), up);
131 gtk_container_add(GTK_CONTAINER(middle), down);
132 gtk_container_add(GTK_CONTAINER(horizontal), right);
133 gtk_container_add(GTK_CONTAINER(vertical), separator);
134 gtk_container_add(GTK_CONTAINER(bottom), ok);
135 gtk_container_add(GTK_CONTAINER(bottom), cancel);
136 gtk_container_add(GTK_CONTAINER(vertical), bottom);
137 gtk_container_add(GTK_CONTAINER(window), vertical);
138
139 // show
140 gtk_widget_show(left);
141 gtk_widget_show(add);
142 gtk_widget_show(remove);
143 gtk_widget_show(top);
144 gtk_widget_show(up);
145 gtk_widget_show(down);
146 gtk_widget_show(middle);
147 gtk_widget_show(center);
148 gtk_widget_show(right);
149 gtk_widget_show(horizontal);
150 gtk_widget_show(separator);
151 gtk_widget_show(ok);
152 gtk_widget_show(cancel);
153 gtk_widget_show(bottom);
154 gtk_widget_show(vertical);
155 gtk_widget_show(window);
156
157 gtk_main();
158 }
159
160 #endif