Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/gui/guicc/orxonox_gui.cc @ 1964

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

orxonox/branches/gui/guicc: added OptionChange-procedure. But until now it does not work correctly.

File size: 3.1 KB
Line 
1#include "orxonox_gui.h"
2#include <iostream.h>
3
4
5int main( int argc, char *argv[] )
6  {
7    gtk_init (&argc, &argv);
8    Window* orxonoxGUI = new Window("Graphical Orxonox Launcher");
9    orxonoxGUI->connectSignal ("destroy", orxonoxGUI->orxonox_gui_quit);
10    orxonoxGUI->connectSignal ("delete_event", orxonoxGUI->orxonox_gui_quit);
11
12    Frame* Frametest = new Frame ("Test");
13    orxonoxGUI->fill((Frame*) Frametest);
14    Box* box = new Box ('v');
15    Frametest->fill(box);
16
17    CheckButton* button = new CheckButton("test");
18    button->connectSignal ("clicked", orxonoxGUI->orxonox_gui_quit);
19    box->fill(button);
20    Slider* slider = new Slider("testslider", 0, 100);
21    slider->connectSignal ("value_changed", slider->OptionChange);
22    box->fill(slider);
23
24    orxonoxGUI->showall ();
25
26    gtk_main();
27    return 0;
28  }
29
30
31/* WIDGET */
32void Widget::show()
33{
34  gtk_widget_show (widget);
35}
36
37void Widget::connectSignal (char* event, gint ( *signal)( GtkWidget*, GdkEvent*, void *))
38{
39  cout <<(void*) this <<endl;
40  g_signal_connect (G_OBJECT (this->widget), event, G_CALLBACK (signal), (void*)this);
41}
42
43/* CONTAINERS*/
44
45void Container::fill (Widget *lowerWidget)
46{
47  gtk_container_add (GTK_CONTAINER(this->widget), lowerWidget->widget);
48  this->down = lowerWidget;
49}
50
51// gtk_container_set_border_width (GTK_CONTAINER (widget), 5);
52
53/* WINDOW */
54
55Window::Window (void)
56{
57  widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
58  gtk_window_set_policy(GTK_WINDOW(widget), TRUE, TRUE, TRUE);
59}
60
61Window::Window (char* windowName)
62{
63  widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
64  gtk_window_set_policy(GTK_WINDOW(widget), TRUE, TRUE, TRUE);
65  this->setTitle(windowName);
66}
67
68Window::~Window ()
69{}
70
71void Window::showall ()
72{
73  gtk_widget_show_all  (widget);
74}
75
76void Window::setTitle (char* title)
77{
78  gtk_window_set_title (GTK_WINDOW (widget), title);
79}
80
81
82gint Window::orxonox_gui_quit ( GtkWidget *widget, GdkEvent *event, gpointer data)
83{
84  gtk_main_quit();
85  return FALSE;
86}
87
88
89/* FRAME */
90
91Frame::Frame (void)
92{
93  widget = gtk_frame_new ("");
94}
95Frame::Frame (char* title)
96{
97  widget = gtk_frame_new (title);
98}
99Frame::~Frame ()
100{}
101
102void Frame::setTitle (char* title)
103{
104  gtk_frame_set_label (GTK_FRAME (widget), title);
105}
106
107
108
109/* BOX */
110
111Box::Box (void)
112{
113  widget = gtk_hbox_new(FALSE, 0);
114}
115Box::Box (char boxtype)
116{
117  if (boxtype == 'v')
118    {
119      widget = gtk_vbox_new(FALSE, 0);
120    }
121  else
122    {
123      widget = gtk_hbox_new(FALSE, 0);
124    }
125}
126
127Box::~Box ()
128{}
129
130void Box::fill (Widget *lowerWidget)
131{
132  gtk_box_pack_start (GTK_BOX(this->widget), lowerWidget->widget, TRUE, TRUE, 0);
133}
134
135
136/* OPTION */
137
138/* BUTTON */
139Button::Button(char* buttonname)
140{
141  widget = gtk_button_new_with_label(buttonname);
142}
143
144/* CHECKBUTTON */
145CheckButton::CheckButton(char* buttonname)
146{
147  widget = gtk_check_button_new_with_label(buttonname);
148}
149
150/* SLIDER */
151Slider::Slider (char * slidername, int start, int end)
152{
153  widget = gtk_hscale_new_with_range (start, end, 5);
154  i =3;
155}
156
157gint Slider::OptionChange (GtkWidget *widget, GdkEvent *event, void* data)
158{
159  cout << data << endl;
160  Slider* test = (Slider*)data;
161
162  //cout << (int)gtk_range_get_value (GTK_RANGE(test->widget)) << endl;
163}
Note: See TracBrowser for help on using the repository browser.