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

Comparing trunk/RenegadeMapSelector/RenegadeMapSelector.cpp (file contents):
Revision 85 by douglas, 2003-03-14T00:19:14-08:00 vs.
Revision 86 by douglas, 2003-03-15T16:43:53-08:00

# Line 8 | Line 8
8   #include "RenegadeConfig.h"
9  
10   #ifdef _WIN32
11 +
12   #include <io.h>
13   #include <fcntl.h>
14   #include "resource.h"
15 +
16   #else
17 < #include "gtk/gtk.h"
17 >
18 > #include "MapSelector.h"
19 >
20   #endif
21  
22   bool debug = false;
# Line 20 | Line 24 | string program;
24   RenegadeConfig* config;
25  
26   #ifndef _WIN32
27 +
28   inline string fix(const string& ansi) { return ansi; }
29   inline void munge(void) { debug = true; }
30  
26 void message(const string& text, const string& title, GtkMessageType type);
31   #else
32 +
33   inline string fix(const wstring& wide)
34   {
35          char* buffer = new char[wide.length() + 1];
# Line 67 | Line 72 | inline void munge(void)
72  
73          debug = true;
74   }
75 +
76   #endif
77  
78   #ifdef _WIN32
# Line 116 | Line 122 | int main(int argc, char* argv[])
122   #ifdef _WIN32
123                                  MessageBox(NULL, error.c_str(), "Bad Arguments", MB_ICONERROR);
124   #else
125 <                                message(error, "Bad Arguments", GTK_MESSAGE_ERROR);
125 >                                message(NULL, error, "Bad Arguments", GTK_MESSAGE_ERROR);
126   #endif
127                                  return 1;
128                          }
# Line 137 | Line 143 | int main(int argc, char* argv[])
143   #ifdef _WIN32
144                  MessageBox(NULL, error.c_str(), "Bad File", MB_ICONERROR);
145   #else
146 <                message(error, "Bad File", GTK_MESSAGE_ERROR);
146 >                message(NULL, error, "Bad File", GTK_MESSAGE_ERROR);
147   #endif
148                  return 1;
149          }
# Line 145 | Line 151 | int main(int argc, char* argv[])
151   #ifdef _WIN32
152          DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAP_SELECTOR), NULL, selector);
153   #else
154 <        selector();
154 >        MapSelector selector;
155   #endif
156  
157          delete config;
# Line 162 | Line 168 | int main(int argc, char* argv[])
168   }
169  
170   #ifdef _WIN32
171 +
172   int CALLBACK selector(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
173   {
174          switch (uMsg)
# Line 466 | Line 473 | int CALLBACK selector(HWND hwndDlg, UINT
473  
474          return false;
475   }
469 #else
470 static void destruct(GtkWidget* widget, gpointer data)
471 {
472        gtk_main_quit();
473 }
474
475 static void done(GtkWidget* widget, gpointer data)
476 {
477        if (true)
478        {
479                message("You need at least one map.", "No Maps",
480                        GTK_MESSAGE_WARNING);
481        }
482        else
483        {
484                //
485
486                config->save();
476  
488                gtk_main_quit();
489        }
490 }
491
492 static void mapAdd(GtkWidget* widget, gpointer data)
493 {
494        cout << "STUB: add\n\a" << flush;
495 }
496
497 static void mapRemove(GtkWidget* widget, gpointer data)
498 {
499        cout << "STUB: remove\n\a" << flush;
500 }
501
502 static void mapUp(GtkWidget* widget, gpointer data)
503 {
504        cout << "STUB: up\n\a" << flush;
505 }
506
507 static void mapDown(GtkWidget* widget, gpointer data)
508 {
509        cout << "STUB: down\n\a" << flush;
510 }
511
512 void selector(void)
513 {
514        GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
515
516        gtk_window_set_title(GTK_WINDOW(window), "Renegade Map Selector");
517        gtk_window_set_resizable(GTK_WINDOW(window), false);
518        g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destruct),
519                NULL);
520
521        GtkWidget* vertical = gtk_vbox_new(false, 0);
522        GtkWidget* horizontal = gtk_hbox_new(false, 9);
523        GtkWidget* left = gtk_frame_new("Available Maps");
524
525        gtk_frame_set_label_align(GTK_FRAME(left), 0.5, 0.5);
526        gtk_container_set_border_width(GTK_CONTAINER(left), 6);
527
528        GtkWidget* center = gtk_vbox_new(true, 0);
529        GtkWidget* top = gtk_vbutton_box_new();
530
531        gtk_button_box_set_layout(GTK_BUTTON_BOX(top), GTK_BUTTONBOX_START);
532        gtk_box_set_spacing(GTK_BOX(top), 9);
533        gtk_container_set_border_width(GTK_CONTAINER(top), 6);
534
535        GtkWidget* add = gtk_button_new_with_mnemonic("_Add");
536
537        g_signal_connect(G_OBJECT(add), "clicked", G_CALLBACK(mapAdd), NULL);
538        gtk_widget_set_sensitive(add, false);
539
540        GtkWidget* remove = gtk_button_new_with_mnemonic("_Remove");
541
542        g_signal_connect(G_OBJECT(remove), "clicked", G_CALLBACK(mapRemove), NULL);
543        gtk_widget_set_sensitive(remove, false);
544
545        GtkWidget* middle = gtk_vbutton_box_new();
546
547        gtk_button_box_set_layout(GTK_BUTTON_BOX(middle), GTK_BUTTONBOX_END);
548        gtk_box_set_spacing(GTK_BOX(middle), 9);
549        gtk_container_set_border_width(GTK_CONTAINER(middle), 6);
550
551        GtkWidget* up = gtk_button_new_with_mnemonic("_Up");
552
553        g_signal_connect(G_OBJECT(up), "clicked", G_CALLBACK(mapUp), NULL);
554        gtk_widget_set_sensitive(up, false);
555
556        GtkWidget* down = gtk_button_new_with_mnemonic("_Down");
557
558        g_signal_connect(G_OBJECT(down), "clicked", G_CALLBACK(mapDown), NULL);
559        gtk_widget_set_sensitive(down, false);
560
561        GtkWidget* right = gtk_frame_new("Selected Maps");
562
563        gtk_frame_set_label_align(GTK_FRAME(right), 0.5, 0.5);
564        gtk_container_set_border_width(GTK_CONTAINER(right), 6);
565
566        GtkWidget* separator = gtk_hseparator_new();
567        GtkWidget* bottom = gtk_hbutton_box_new();
568
569        gtk_button_box_set_layout(GTK_BUTTON_BOX(bottom), GTK_BUTTONBOX_END);
570        gtk_box_set_spacing(GTK_BOX(bottom), 9);
571        gtk_container_set_border_width(GTK_CONTAINER(bottom), 6);
572
573        GtkWidget* ok = gtk_button_new_from_stock(GTK_STOCK_OK);
574
575        g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(done), NULL);
576
577        GtkWidget* cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
578
579        g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destruct), NULL);
580
581        // pack
582        gtk_container_add(GTK_CONTAINER(vertical), horizontal);
583        gtk_container_add(GTK_CONTAINER(horizontal), left);
584        gtk_container_add(GTK_CONTAINER(horizontal), center);
585        gtk_container_add(GTK_CONTAINER(center), top);
586        gtk_container_add(GTK_CONTAINER(top), add);
587        gtk_container_add(GTK_CONTAINER(top), remove);
588        gtk_container_add(GTK_CONTAINER(center), middle);
589        gtk_container_add(GTK_CONTAINER(middle), up);
590        gtk_container_add(GTK_CONTAINER(middle), down);
591        gtk_container_add(GTK_CONTAINER(horizontal), right);
592        gtk_container_add(GTK_CONTAINER(vertical), separator);
593        gtk_container_add(GTK_CONTAINER(bottom), ok);
594        gtk_container_add(GTK_CONTAINER(bottom), cancel);
595        gtk_container_add(GTK_CONTAINER(vertical), bottom);
596        gtk_container_add(GTK_CONTAINER(window), vertical);
597
598        // show
599        gtk_widget_show(left);
600        gtk_widget_show(add);
601        gtk_widget_show(remove);
602        gtk_widget_show(top);
603        gtk_widget_show(up);
604        gtk_widget_show(down);
605        gtk_widget_show(middle);
606        gtk_widget_show(center);
607        gtk_widget_show(right);
608        gtk_widget_show(horizontal);
609        gtk_widget_show(separator);
610        gtk_widget_show(ok);
611        gtk_widget_show(cancel);
612        gtk_widget_show(bottom);
613        gtk_widget_show(vertical);
614        gtk_widget_show(window);
615
616        gtk_main();
617 }
618
619 void message(const string& text, const string& title, GtkMessageType type)
620 {
621        GtkWidget* box = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, type,
622                GTK_BUTTONS_OK, text.c_str());
623
624        gtk_window_set_title(GTK_WINDOW(box), title.c_str());
625
626        gtk_dialog_run(GTK_DIALOG(box));
627        gtk_widget_destroy(box);
628 }
477   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines