Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/gui/orxonox_gui.h @ 2586

Last change on this file since 2586 was 2586, checked in by bensch, 20 years ago

orxonox/trunk/gui: added init-routine to all the Widget-type objects. (Menu is to come)

File size: 3.7 KB
Line 
1#ifndef _ORXONOX_GUI_H
2#define _ORXONOX_GUI_H
3
4#include <stdlib.h>
5#include <string.h>
6#include <gtk/gtkmain.h>
7#include <gtk/gtkwindow.h>
8#include <gtk/gtkframe.h>
9#include <gtk/gtkhbox.h>
10#include <gtk/gtkvbox.h>
11#include <gtk/gtkbutton.h>
12#include <gtk/gtkcheckbutton.h>
13#include <gtk/gtkhscale.h>
14#include <gtk/gtkoptionmenu.h>
15#include <gtk/gtkmenu.h>
16#include <gtk/gtkmenuitem.h>
17#include <gtk/gtklabel.h>
18#include <gtk/gtkimage.h>
19#include <gtk/gtkeventbox.h>
20
21class OrxonoxGui
22{
23 public:
24  OrxonoxGui (int argc, char *argv[]);
25  ~OrxonoxGui ();
26
27};
28
29class Widget
30{
31 private:
32 public:
33  Widget* next;
34  GtkWidget* widget;
35  virtual void init(void);
36  int is_option;
37
38  void connectSignal (char* event, gint (*signal)(GtkWidget*, GdkEvent*, void *));
39  void connectSignal (char* event, gint (*signal)(GtkWidget*, Widget *));
40  void connectSignal (char* event, void* extObj, gint (*signal)(GtkWidget*, GdkEvent*, void *));
41  void show ();
42
43  void walkThrough (void (*function)(Widget*));
44  static void listOptions (Widget* widget);
45  static void setOptions (Widget* widget);
46
47};
48
49
50
51class Container : public Widget
52{
53 private:
54  int borderwidth;
55  int policy;
56  char* label;
57 
58 public:
59  void init(void);
60  Widget* down;
61  void setBorderWidth (int borderwidth);
62  virtual void setTitle (char* title) = 0;
63  void fill (Widget *lowerWidget);
64};
65
66class Window : public Container
67{
68 public:
69  Window (char* windowName);
70  Window (void);
71  ~Window ();
72  void init ();
73 
74  void setTitle (char* title);
75  void showall ();
76  static gint orxonox_gui_quit (GtkWidget *widget, GdkEvent *event, gpointer data);
77};
78
79class Frame :public Container
80{
81 public:
82  Frame (char* frameName);
83  Frame (void);
84  ~Frame ();
85  void init(void);
86 
87  void setTitle (char* title);
88};
89
90class EventBox : public Container
91{
92 public:
93  EventBox (char* eventBoxName);
94  EventBox (void);
95  ~EventBox ();
96  void init(void);
97 
98  void setTitle (char* title);
99};
100
101class Box : public Widget
102{
103 public:
104  Box (void);
105  Box (char boxtype);
106  ~Box (void);
107  void init(char boxtype);
108
109  Widget* down;
110  void fill (Widget* lowerWidget);
111
112};
113
114class Image : public Widget
115{
116 public:
117  Image (char* imgaename);
118  ~Image ();
119  void init(void);
120};
121
122class Option : public Widget
123{
124 public:
125  //virtual gint OptionChange (GtkWidget *widget, GdkEvent *event, gpointer data);
126  void init(void);
127
128  int value;
129  char* option_name;
130  char* flag_name;
131  char* flag_name_short;
132  int default_value;
133
134  void setFlagName (char* flagname, int defaultvalue);
135  void setFlagName (char* flagname, char* flagnameshort, int defaultvalue);
136  virtual void redraw () = 0;
137};
138
139class Button : public Option
140{
141 public:
142  Button (char* buttonname);
143  ~Button (void);
144  void init(void);
145
146  void setTitle(char* title);
147 
148  void redraw();
149};
150
151class CheckButton : public Option
152{
153 public:
154  CheckButton (char* buttonname);
155  ~CheckButton (void);
156  static gint OptionChange (GtkWidget* widget, Widget* checkbutton);
157 
158  void init(void);
159  void setTitle(char* title);
160
161  void redraw ();
162};
163
164class Slider : public Option
165{
166 public:
167  Slider (char* slidername,int start, int end);
168  ~Slider ();
169  void init(int start, int end);
170
171  void setTitle(char* title);
172  void setValue(int value);
173
174  static gint OptionChange (GtkWidget* widget, Widget* slider);
175  void redraw();
176};
177
178class Menu : public Option
179{
180 public:
181  Menu (char* menuname, ...);
182  ~Menu ();
183  void init(void);   /// HAS TO BE IMPLEMENTED!! most difficult :-)
184
185  static gint OptionChange (GtkWidget* widget, Widget* menu);
186  void redraw();
187};
188
189class Label : public Widget
190{
191 public:
192  Label ();
193  Label (char* text);
194  ~Label ();
195  void init(void);
196 
197  void setText (char * text);
198  char* getText ();
199};
200
201//gint orxonox_gui_quit (GtkWidget *widget, GdkEvent *event, gpointer data);
202
203#endif /* _ORXONOX_GUI_H */
Note: See TracBrowser for help on using the repository browser.