Finished up the map-gen functionality. Added a converter functionallity to convert...
[agi-studio-improvements:agi-studio-improvements.git] / trunk / agistudio / src / menu.h
1 /*
2  *  QT AGI Studio :: Copyright (C) 2000 Helen Zommer
3  *
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  */
20
21 #ifndef MENU_H
22 #define MENU_H
23
24 #include <stdarg.h>
25 #include <string>
26 #include <qwidget.h>
27 #include <qmenubar.h>
28 #include <qlabel.h>
29 #include <qpushbutton.h>
30 #include <qlayout.h>
31 #include <qpopupmenu.h>
32 #include <qkeycode.h>
33 #include <qmessagebox.h>
34 #include <qfiledialog.h>
35 #include <qlineedit.h>
36 #include <qbuttongroup.h>
37 #include <qradiobutton.h>
38 #include <qmainwindow.h>
39 #include <qstatusbar.h>
40
41 #include "wordsedit.h"
42 #include "objedit.h"
43 #include "viewedit.h"
44 #include "logedit.h"
45 #include "picedit.h"
46 #include "dir.h"
47 #include "resources.h"
48 #include "helpwindow.h"
49
50 // Added by William Heineman
51 #include "digraph.h"
52
53 class WindowList : public QWidget
54 {
55
56     Q_OBJECT
57 public:
58     WindowList( QWidget *parent=0, const char *name=0 );
59     QListBox *win;
60 public slots:
61     void draw();
62     void select_cb(int);
63     void select_ok();
64     void del_cb();
65 };
66
67
68 class About: public QWidget
69 {
70     Q_OBJECT
71 public:
72     About( QWidget *parent=0, const char *name=0);
73 };
74
75
76 class Menu : public QMainWindow
77 {
78     Q_OBJECT
79 public:
80     Menu( QWidget *parent=0, const char *name=0);
81     QStatusBar *status;
82     ResourcesWin *resources_win;
83     void errmes(const char *, const char *,...);
84     void errmes(const char *,...);
85     void warnmes(const char *,...);
86
87     void enable(void);
88     void disable(void);
89     void show_resources();
90     void enable_resources();
91     void disable_resources();
92     void inc_res(ResourcesWin *res);
93     void dec_res();
94     bool templ;
95
96         // Added by William Heineman
97         void test();
98         int value(string);
99
100 #ifdef IMGEXT
101     bool imgext;
102     void load_imgext();
103 #endif
104     public slots:
105       void open_game(void);
106       void close_game(void);
107       void quit_cb(void);
108       void run_game(void);
109       void settings(void);
110
111       void from_template(void);
112       void blank(void);
113
114       void add_resource(void);
115       void extract_resource(void);
116       void delete_resource(void);
117       void renumber_resource(void);
118       void rebuild_vol(void);
119       void recompile_all(void);
120       void new_resource_window();
121
122       void view_editor(void);
123       void logic_editor(void);
124       void text_editor(void);
125       void object_editor(void);
126       void words_editor(void);
127       void picture_editor(void);
128       void sound_player(void);
129
130       void help_contents(void);
131       void help_index(void);
132       bool help_topic( const QString& topic );
133       void about_it(void);
134       void about_qt(void);
135       void closeEvent( QCloseEvent *e );
136
137       int save_all(void);
138       void save_and_run(void);
139       void window_list_cb(void);
140
141         // Added by William Heineman
142         void will_1(void);
143         void gen_Map(void);
144         void map_editor(void);
145         void map_write(void);
146         void convert(void);
147 protected:
148     QMenuBar *menubar;
149     QMessageBox *err,*warn;
150     QPushButton *create;
151     QFileDialog *f;
152     QPushButton *open,*close_,*run,*view,*logic,*text,*obj,*words,*pic,*wil,*con;
153     Dir *dir_new,*dir_open;
154     int num_res;
155     int n_res;
156     int id[26];
157     int max_disabled;
158
159         // Added by William Heineman
160         diGraph<int, char, char, int>network;
161 };
162
163 extern Menu *menu;
164
165 typedef struct {
166   union {
167     LogEdit *l;
168     ViewEdit *v;
169     WordsEdit *w;
170     ObjEdit *o;
171     PicEdit *p;
172     TextEdit *t;
173     ResourcesWin *r;
174     Preview *pr;
175     HelpWindow *h;
176   }w;
177   int type;
178 }WinList;
179
180 #define MAXWIN 64
181 extern WinList winlist[MAXWIN];
182 extern int get_win();
183 extern WindowList *window_list;
184
185 #endif  //MENU_H
186