Blender  V2.93
GHOST_EventPrinter.cpp
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 
25 #include "GHOST_EventPrinter.h"
26 #include "GHOST_Debug.h"
27 #include "GHOST_EventDragnDrop.h"
28 #include "GHOST_EventKey.h"
29 #include <iostream>
30 
31 #include <stdio.h>
32 
34 {
35  bool handled = true;
36 
37  GHOST_ASSERT(event, "event==0");
38 
39  if (event->getType() == GHOST_kEventWindowUpdate)
40  return false;
41 
42  std::cout << "GHOST_EventPrinter::processEvent, time: " << (GHOST_TInt32)event->getTime()
43  << ", type: ";
44  switch (event->getType()) {
46  std::cout << "GHOST_kEventUnknown";
47  handled = false;
48  break;
49 
50  case GHOST_kEventButtonUp: {
51  GHOST_TEventButtonData *buttonData =
52  (GHOST_TEventButtonData *)((GHOST_IEvent *)event)->getData();
53  std::cout << "GHOST_kEventCursorButtonUp, button: " << buttonData->button;
54  } break;
56  GHOST_TEventButtonData *buttonData =
57  (GHOST_TEventButtonData *)((GHOST_IEvent *)event)->getData();
58  std::cout << "GHOST_kEventButtonDown, button: " << buttonData->button;
59  } break;
60 
61  case GHOST_kEventWheel: {
62  GHOST_TEventWheelData *wheelData =
63  (GHOST_TEventWheelData *)((GHOST_IEvent *)event)->getData();
64  std::cout << "GHOST_kEventWheel, z: " << wheelData->z;
65  } break;
66 
68  GHOST_TEventCursorData *cursorData =
69  (GHOST_TEventCursorData *)((GHOST_IEvent *)event)->getData();
70  std::cout << "GHOST_kEventCursorMove, (x,y): (" << cursorData->x << "," << cursorData->y
71  << ")";
72  } break;
73 
74  case GHOST_kEventKeyUp: {
75  GHOST_TEventKeyData *keyData = (GHOST_TEventKeyData *)((GHOST_IEvent *)event)->getData();
76  char str[32] = {'\0'};
77  getKeyString(keyData->key, str);
78  std::cout << "GHOST_kEventKeyUp, key: " << str;
79  } break;
80  case GHOST_kEventKeyDown: {
81  GHOST_TEventKeyData *keyData = (GHOST_TEventKeyData *)((GHOST_IEvent *)event)->getData();
82  char str[32] = {'\0'};
83  getKeyString(keyData->key, str);
84  std::cout << "GHOST_kEventKeyDown, key: " << str;
85  } break;
86 
88  GHOST_TEventDragnDropData *dragnDropData =
89  (GHOST_TEventDragnDropData *)((GHOST_IEvent *)event)->getData();
90  std::cout << "GHOST_kEventDraggingEntered, dragged object type : "
91  << dragnDropData->dataType;
92  std::cout << " mouse at x=" << dragnDropData->x << " y=" << dragnDropData->y;
93  } break;
94 
96  GHOST_TEventDragnDropData *dragnDropData =
97  (GHOST_TEventDragnDropData *)((GHOST_IEvent *)event)->getData();
98  std::cout << "GHOST_kEventDraggingUpdated, dragged object type : "
99  << dragnDropData->dataType;
100  std::cout << " mouse at x=" << dragnDropData->x << " y=" << dragnDropData->y;
101  } break;
102 
104  GHOST_TEventDragnDropData *dragnDropData =
105  (GHOST_TEventDragnDropData *)((GHOST_IEvent *)event)->getData();
106  std::cout << "GHOST_kEventDraggingExited, dragged object type : " << dragnDropData->dataType;
107  } break;
108 
110  GHOST_TEventDragnDropData *dragnDropData =
111  (GHOST_TEventDragnDropData *)((GHOST_IEvent *)event)->getData();
112  std::cout << "GHOST_kEventDraggingDropDone,";
113  std::cout << " mouse at x=" << dragnDropData->x << " y=" << dragnDropData->y;
114  switch (dragnDropData->dataType) {
116  std::cout << " type : GHOST_kDragnDropTypeString,";
117  std::cout << "\n String received = " << (char *)dragnDropData->data;
118  break;
120  GHOST_TStringArray *strArray = (GHOST_TStringArray *)dragnDropData->data;
121  int i;
122  std::cout << " type : GHOST_kDragnDropTypeFilenames,";
123  std::cout << "\n Received " << strArray->count << " filename"
124  << (strArray->count > 1 ? "s:" : ":");
125  for (i = 0; i < strArray->count; i++)
126  std::cout << "\n File[" << i << "] : " << strArray->strings[i];
127  } break;
128  default:
129  break;
130  }
131  } break;
132 
134  GHOST_TEventDataPtr eventData = ((GHOST_IEvent *)event)->getData();
135 
136  if (eventData)
137  std::cout << "GHOST_kEventOpenMainFile for path : " << (char *)eventData;
138  else
139  std::cout << "GHOST_kEventOpenMainFile with no path specified!!";
140  } break;
141 
143  std::cout << "GHOST_kEventQuitRequest";
144  break;
146  std::cout << "GHOST_kEventWindowClose";
147  break;
149  std::cout << "GHOST_kEventWindowActivate";
150  break;
152  std::cout << "GHOST_kEventWindowDeactivate";
153  break;
155  std::cout << "GHOST_kEventWindowUpdate";
156  break;
158  std::cout << "GHOST_kEventWindowSize";
159  break;
160 
161  default:
162  std::cout << "not found";
163  handled = false;
164  break;
165  }
166 
167  std::cout << std::endl;
168 
169  std::cout.flush();
170 
171  return handled;
172 }
173 
175 {
176  if ((key >= GHOST_kKeyComma) && (key <= GHOST_kKeyRightBracket)) {
177  sprintf(str, "%c", (char)key);
178  }
179  else if ((key >= GHOST_kKeyNumpad0) && (key <= GHOST_kKeyNumpad9)) {
180  sprintf(str, "Numpad %d", (key - GHOST_kKeyNumpad0));
181  }
182  else if ((key >= GHOST_kKeyF1) && (key <= GHOST_kKeyF24)) {
183  sprintf(str, "F%d", key - GHOST_kKeyF1 + 1);
184  }
185  else {
186  const char *tstr = NULL;
187  switch (key) {
188  case GHOST_kKeyBackSpace:
189  tstr = "BackSpace";
190  break;
191  case GHOST_kKeyTab:
192  tstr = "Tab";
193  break;
194  case GHOST_kKeyLinefeed:
195  tstr = "Linefeed";
196  break;
197  case GHOST_kKeyClear:
198  tstr = "Clear";
199  break;
200  case GHOST_kKeyEnter:
201  tstr = "Enter";
202  break;
203  case GHOST_kKeyEsc:
204  tstr = "Esc";
205  break;
206  case GHOST_kKeySpace:
207  tstr = "Space";
208  break;
209  case GHOST_kKeyQuote:
210  tstr = "Quote";
211  break;
212  case GHOST_kKeyBackslash:
213  tstr = "\\";
214  break;
216  tstr = "`";
217  break;
218  case GHOST_kKeyLeftShift:
219  tstr = "LeftShift";
220  break;
222  tstr = "RightShift";
223  break;
225  tstr = "LeftControl";
226  break;
228  tstr = "RightControl";
229  break;
230  case GHOST_kKeyLeftAlt:
231  tstr = "LeftAlt";
232  break;
233  case GHOST_kKeyRightAlt:
234  tstr = "RightAlt";
235  break;
236  case GHOST_kKeyOS:
237  tstr = "OS";
238  break;
239  case GHOST_kKeyApp:
240  tstr = "App";
241  break;
242  case GHOST_kKeyGrLess:
243  // PC german!
244  tstr = "GrLess";
245  break;
246  case GHOST_kKeyCapsLock:
247  tstr = "CapsLock";
248  break;
249  case GHOST_kKeyNumLock:
250  tstr = "NumLock";
251  break;
253  tstr = "ScrollLock";
254  break;
255  case GHOST_kKeyLeftArrow:
256  tstr = "LeftArrow";
257  break;
259  tstr = "RightArrow";
260  break;
261  case GHOST_kKeyUpArrow:
262  tstr = "UpArrow";
263  break;
264  case GHOST_kKeyDownArrow:
265  tstr = "DownArrow";
266  break;
268  tstr = "PrintScreen";
269  break;
270  case GHOST_kKeyPause:
271  tstr = "Pause";
272  break;
273  case GHOST_kKeyInsert:
274  tstr = "Insert";
275  break;
276  case GHOST_kKeyDelete:
277  tstr = "Delete";
278  break;
279  case GHOST_kKeyHome:
280  tstr = "Home";
281  break;
282  case GHOST_kKeyEnd:
283  tstr = "End";
284  break;
285  case GHOST_kKeyUpPage:
286  tstr = "UpPage";
287  break;
288  case GHOST_kKeyDownPage:
289  tstr = "DownPage";
290  break;
292  tstr = "NumpadPeriod";
293  break;
295  tstr = "NumpadEnter";
296  break;
298  tstr = "NumpadPlus";
299  break;
301  tstr = "NumpadMinus";
302  break;
304  tstr = "NumpadAsterisk";
305  break;
307  tstr = "NumpadSlash";
308  break;
309  case GHOST_kKeyMediaPlay:
310  tstr = "MediaPlayPause";
311  break;
312  case GHOST_kKeyMediaStop:
313  tstr = "MediaStop";
314  break;
316  tstr = "MediaFirst";
317  break;
318  case GHOST_kKeyMediaLast:
319  tstr = "MediaLast";
320  break;
321  default:
322  tstr = "unknown";
323  break;
324  }
325 
326  sprintf(str, "%s", tstr);
327  }
328 }
#define GHOST_ASSERT(x, info)
Definition: GHOST_Debug.h:79
@ GHOST_kEventWindowClose
Definition: GHOST_Types.h:197
@ GHOST_kEventWheel
Mouse button event.
Definition: GHOST_Types.h:183
@ GHOST_kEventWindowSize
Definition: GHOST_Types.h:201
@ GHOST_kEventDraggingDropDone
Definition: GHOST_Types.h:208
@ GHOST_kEventDraggingExited
Definition: GHOST_Types.h:207
@ GHOST_kEventCursorMove
Definition: GHOST_Types.h:180
@ GHOST_kEventDraggingUpdated
Definition: GHOST_Types.h:206
@ GHOST_kEventOpenMainFile
Definition: GHOST_Types.h:210
@ GHOST_kEventDraggingEntered
Definition: GHOST_Types.h:205
@ GHOST_kEventButtonUp
Mouse button event.
Definition: GHOST_Types.h:182
@ GHOST_kEventWindowActivate
Definition: GHOST_Types.h:198
@ GHOST_kEventWindowUpdate
Definition: GHOST_Types.h:200
@ GHOST_kEventWindowDeactivate
Definition: GHOST_Types.h:199
@ GHOST_kEventButtonDown
Mouse move event.
Definition: GHOST_Types.h:181
@ GHOST_kEventKeyDown
Trackpad event.
Definition: GHOST_Types.h:191
@ GHOST_kEventUnknown
Definition: GHOST_Types.h:178
@ GHOST_kEventKeyUp
Definition: GHOST_Types.h:192
@ GHOST_kEventQuitRequest
Definition: GHOST_Types.h:195
int GHOST_TInt32
Definition: GHOST_Types.h:63
void * GHOST_TEventDataPtr
Definition: GHOST_Types.h:430
GHOST_TKey
Definition: GHOST_Types.h:267
@ GHOST_kKeyInsert
Definition: GHOST_Types.h:354
@ GHOST_kKeyMediaPlay
Definition: GHOST_Types.h:406
@ GHOST_kKeyQuote
Definition: GHOST_Types.h:277
@ GHOST_kKeyAccentGrave
Definition: GHOST_Types.h:330
@ GHOST_kKeyLeftAlt
Definition: GHOST_Types.h:336
@ GHOST_kKeyRightShift
Definition: GHOST_Types.h:333
@ GHOST_kKeyNumLock
Definition: GHOST_Types.h:343
@ GHOST_kKeyEnter
Definition: GHOST_Types.h:273
@ GHOST_kKeyNumpadSlash
Definition: GHOST_Types.h:377
@ GHOST_kKeyRightArrow
Definition: GHOST_Types.h:347
@ GHOST_kKeyF24
Definition: GHOST_Types.h:403
@ GHOST_kKeyPause
Definition: GHOST_Types.h:352
@ GHOST_kKeyCapsLock
Definition: GHOST_Types.h:342
@ GHOST_kKeyApp
Definition: GHOST_Types.h:340
@ GHOST_kKeyMediaStop
Definition: GHOST_Types.h:407
@ GHOST_kKeyBackSpace
Definition: GHOST_Types.h:269
@ GHOST_kKeyDownPage
Definition: GHOST_Types.h:359
@ GHOST_kKeyGrLess
Definition: GHOST_Types.h:339
@ GHOST_kKeyDownArrow
Definition: GHOST_Types.h:349
@ GHOST_kKeyClear
Definition: GHOST_Types.h:272
@ GHOST_kKeyNumpadPeriod
Definition: GHOST_Types.h:372
@ GHOST_kKeyF1
Definition: GHOST_Types.h:380
@ GHOST_kKeyNumpadAsterisk
Definition: GHOST_Types.h:376
@ GHOST_kKeyPrintScreen
Definition: GHOST_Types.h:351
@ GHOST_kKeyLeftControl
Definition: GHOST_Types.h:334
@ GHOST_kKeyTab
Definition: GHOST_Types.h:270
@ GHOST_kKeyComma
Definition: GHOST_Types.h:278
@ GHOST_kKeyRightBracket
Definition: GHOST_Types.h:328
@ GHOST_kKeyBackslash
Definition: GHOST_Types.h:329
@ GHOST_kKeyOS
Definition: GHOST_Types.h:338
@ GHOST_kKeyLinefeed
Definition: GHOST_Types.h:271
@ GHOST_kKeyRightAlt
Definition: GHOST_Types.h:337
@ GHOST_kKeyNumpadPlus
Definition: GHOST_Types.h:374
@ GHOST_kKeyUpPage
Definition: GHOST_Types.h:358
@ GHOST_kKeyLeftArrow
Definition: GHOST_Types.h:346
@ GHOST_kKeyHome
Definition: GHOST_Types.h:356
@ GHOST_kKeyNumpad9
Definition: GHOST_Types.h:371
@ GHOST_kKeyEnd
Definition: GHOST_Types.h:357
@ GHOST_kKeyUpArrow
Definition: GHOST_Types.h:348
@ GHOST_kKeyDelete
Definition: GHOST_Types.h:355
@ GHOST_kKeyNumpad0
Definition: GHOST_Types.h:362
@ GHOST_kKeyMediaFirst
Definition: GHOST_Types.h:408
@ GHOST_kKeyRightControl
Definition: GHOST_Types.h:335
@ GHOST_kKeyEsc
Definition: GHOST_Types.h:275
@ GHOST_kKeyScrollLock
Definition: GHOST_Types.h:344
@ GHOST_kKeyNumpadEnter
Definition: GHOST_Types.h:373
@ GHOST_kKeyNumpadMinus
Definition: GHOST_Types.h:375
@ GHOST_kKeyLeftShift
Definition: GHOST_Types.h:332
@ GHOST_kKeyMediaLast
Definition: GHOST_Types.h:409
@ GHOST_kKeySpace
Definition: GHOST_Types.h:276
@ GHOST_kDragnDropTypeFilenames
Definition: GHOST_Types.h:479
@ GHOST_kDragnDropTypeString
Definition: GHOST_Types.h:480
bool processEvent(GHOST_IEvent *event)
void getKeyString(GHOST_TKey key, char str[32]) const
virtual GHOST_TEventType getType()=0
virtual GHOST_TUns64 getTime()=0
#define str(s)
GHOST_TButtonMask button
Definition: GHOST_Types.h:443
GHOST_TEventDataPtr data
Definition: GHOST_Types.h:492
GHOST_TDragnDropTypes dataType
Definition: GHOST_Types.h:490