Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/gui/orxonox_gui_keys.cc @ 2736

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

orxonox/trunk/gui: nicer, modularer, better, but not finished

File size: 4.4 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software Foundation,
18   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
19
20
21   ### File Specific:
22   main-programmer: Benjamin Grauer
23
24*/
25
26#include "orxonox_gui_keys.h"
27#include <iostream.h>
28
29/**
30   \brief Creates an Keyboard-Frame
31*/
32OrxonoxGuiKeys::OrxonoxGuiKeys ()
33{
34  keysFrame = new Frame ("Keyboard-Options:");
35  keysFrame->setGroupName("Keyboard");
36  keysBox = new Box ('v');
37  player1 = new Player("player1");
38  //  player2 = new Player("player2");
39
40  keysBox->fill(player1->getOpenButton());
41
42  keysFrame->fill (keysBox);
43}
44
45/**
46   \brief Return the Frame
47   \return Returns the Audio-frame
48*/
49Widget* OrxonoxGuiKeys::getWidget ()
50{
51  return keysFrame;
52}
53
54
55
56/* PLAYER */
57Player::Player(char* player)
58{
59  openButton = new Button (player);
60  openButton->connectSignal("button_press_event", this, openWindowEvent);
61
62  keyWindow = new Window("keys of player");
63
64  keysBox = new Box('v');
65  keysBox->fill(addKey(UP, "up"));
66  keysBox->fill(addKey(DOWN, "down"));
67  keysBox->fill(addKey(LEFT, "left"));
68  keysBox->fill(addKey(RIGHT, "right"));
69  keysBox->fill(addKey(SHOOT, "shoot"));
70  keyWindow->fill(keysBox);
71  windowIsOpen = false;
72
73}
74
75Widget* Player::addKey (KEYS key, char* name)
76{
77  keyBox[key] = new Box();
78  keyButton[key] = new Button(name);
79  keyLabel[key] = new Label ("test");
80 
81  keyButton[key]->connectSignal("key_press_event", keyLabel[key], key_cb);
82 
83  keyBox[key]->fill(keyButton[key]);
84  keyBox[key]->fill(keyLabel[key]);
85  return keyBox[key];
86}
87
88Button* Player::getOpenButton()
89{
90  return openButton;
91}
92
93
94void Player::setkey(KEYS key)
95{
96  cout << "setting up Key: "<< key <<endl;
97
98}
99
100/**
101   \brief function to display, hide the palyer window
102   Buggy, segmentation fault on WindowMaker
103*/
104void Player::openWindow ()
105{
106  if (!windowIsOpen)
107    keyWindow->showall();
108  else
109    keyWindow->hide();
110  windowIsOpen = !windowIsOpen;
111}
112
113gint Player::openWindowEvent (GtkWidget* widget, GdkEvent* event, void* player)
114{
115
116  static_cast<Player*>(player)->openWindow();
117}
118
119
120/**
121   \brief Function which gets keystrokes
122   \param w the widget that released the Function.
123   \param event The event that happened.
124   \param Widget the Widget which will be applied.
125   \returns Nothing
126*/
127gint key_cb(GtkWidget* w, GdkEventKey* event, void* Widget)
128{
129  switch(event->keyval) {
130
131  case GDK_Up:
132    printf("Up arrow key!\n");
133    static_cast<Label*>(Widget)->setText("up");
134    break;
135  case GDK_Down:
136    printf("Down arrow key!\n");
137    break;
138  case GDK_Right:
139    printf("Right arrow key!\n");
140    break;
141  case GDK_Left:
142    printf("Left arrow key!\n");
143    break;
144
145  case GDK_space:
146    printf("Space Pressed.\n");
147    break;
148
149  case 65293:
150    printf("Enter Pressed\n");
151    break;
152
153    // Special Keys //
154  case GDK_Shift_L:
155    printf("Left Shift!\n");
156    break;
157  case GDK_Shift_R:
158    printf("Right Shift!\n");
159    break;
160  case GDK_Control_L:
161    printf("Left Control!\n");
162    break;
163  case GDK_Control_R:
164    printf("Right Control!\n");
165    break;
166  case GDK_Alt_L:
167    printf("Left Alt!\n");
168    break;
169  case GDK_Alt_R:
170    printf("Rigth Alt!\n");
171    break;
172    // FXX KEYS //
173  case GDK_F1:
174    printf("F1!\n");
175    break;
176  case GDK_F2:
177    printf("F2!\n");
178    break;
179  case GDK_F3:
180    printf("F3!\n");
181    break;
182  case GDK_F4:
183    printf("F4!\n");
184    break;
185  case GDK_F5:
186    printf("F5!\n");
187    break;
188  case GDK_F6:
189    printf("F6!\n");
190    break;
191  case GDK_F7:
192    printf("F7!\n");
193    break;
194  case GDK_F8:
195    printf("F8!\n");
196    break;
197  case GDK_F9:
198    printf("F9\n");
199    break;
200  case GDK_F10:
201    printf("F10!\n");
202    break;
203  case GDK_F11:
204    printf("F11!\n");
205    break;
206  case GDK_F12:
207    printf("F12!\n");
208    break;
209
210
211  default:
212    printf ("other key %c \n", event->keyval,event->keyval);
213    break;
214  }
215}
Note: See TracBrowser for help on using the repository browser.