[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17884] branches/blender2.5/blender/source /blender:
Brecht Van Lommel
brecht at blender.org
Tue Dec 16 08:32:12 CET 2008
Revision: 17884
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17884
Author: blendix
Date: 2008-12-16 08:32:12 +0100 (Tue, 16 Dec 2008)
Log Message:
-----------
UI: bring back function to convert keyboard event to string, and
make the key event button work again.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/interface/interface.c
branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c
branches/blender2.5/blender/source/blender/windowmanager/wm_event_types.h
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2008-12-15 20:53:45 UTC (rev 17883)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2008-12-16 07:32:12 UTC (rev 17884)
@@ -44,6 +44,7 @@
#include "BLI_dynstr.h"
#include "BKE_global.h"
+#include "BKE_library.h"
#include "BKE_screen.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
@@ -1587,8 +1588,7 @@
if (but->flag & UI_SELECT) {
strcat(but->drawstr, "Press a key");
} else {
- /* XXX 2.50 function not supported */
- /* strcat(but->drawstr, key_event_to_string((short) ui_get_but_val(but))); */
+ strcat(but->drawstr, WM_key_event_string((short) ui_get_but_val(but)));
}
break;
@@ -2073,8 +2073,8 @@
/* autocomplete callback for ID buttons */
static void autocomplete_id(bContext *C, char *str, void *arg_v)
{
- /* int blocktype= (intptr_t)arg_v; */
- ListBase *listb= NULL /* XXX 2.50 needs context, wich_libbase(G.main, blocktype) */;
+ int blocktype= (intptr_t)arg_v;
+ ListBase *listb= wich_libbase(G.main, blocktype); /* XXX */
if(listb==NULL) return;
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2008-12-15 20:53:45 UTC (rev 17883)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2008-12-16 07:32:12 UTC (rev 17884)
@@ -1449,17 +1449,14 @@
if(event->type == MOUSEMOVE)
return WM_UI_HANDLER_CONTINUE;
- /* XXX 2.50 missing function */
-#if 0
if(event->val) {
- if(!key_event_to_string(event)[0])
+ if(WM_key_event_string(event->type)[0])
+ ui_set_but_val(but, event->type);
+ else
data->cancel= 1;
- else
- ui_set_but_val(but, event->type);
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
-#endif
}
return WM_UI_HANDLER_CONTINUE;
@@ -2660,8 +2657,12 @@
/* check if the mouse is in the region, and in case of a view2d also check
* if it is inside the view2d itself, not over scrollbars for example */
- if(!BLI_in_rcti(&ar->winrct, x, y))
+ if(!BLI_in_rcti(&ar->winrct, x, y)) {
+ for(block=ar->uiblocks.first; block; block=block->next)
+ block->auto_open= 0;
+
return NULL;
+ }
if(ar->v2d.mask.xmin!=ar->v2d.mask.xmax) {
mx= x;
Modified: branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/WM_api.h 2008-12-15 20:53:45 UTC (rev 17883)
+++ branches/blender2.5/blender/source/blender/windowmanager/WM_api.h 2008-12-16 07:32:12 UTC (rev 17884)
@@ -61,7 +61,7 @@
void WM_cursor_wait (struct wmWindow *win, int val);
void WM_timecursor (struct wmWindow *win, int nr);
- /* keymap and handlers */
+ /* keymap */
wmKeymapItem *WM_keymap_set_item (ListBase *lb, char *idname, short type,
short val, int modifier, short keymodifier);
wmKeymapItem *WM_keymap_verify_item(ListBase *lb, char *idname, short type,
@@ -71,7 +71,10 @@
ListBase *WM_keymap_listbase (wmWindowManager *wm, const char *nameid,
int spaceid, int regionid);
+char *WM_key_event_string(short type);
+ /* handlers */
+
struct wmEventHandler *WM_event_add_keymap_handler(ListBase *handlers, ListBase *keymap);
/* boundbox, optional subwindow boundbox for offset */
struct wmEventHandler *WM_event_add_keymap_handler_bb(ListBase *handlers, ListBase *keymap, rcti *bb, rcti *swinbb);
Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c 2008-12-15 20:53:45 UTC (rev 17883)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c 2008-12-16 07:32:12 UTC (rev 17884)
@@ -167,3 +167,318 @@
return &km->keymap;
}
+/* ***************** get string from key events **************** */
+
+char *WM_key_event_string(short type)
+{
+ /* not returned: CAPSLOCKKEY, UNKNOWNKEY, COMMANDKEY, GRLESSKEY */
+
+ switch(type) {
+ case AKEY:
+ return "A";
+ break;
+ case BKEY:
+ return "B";
+ break;
+ case CKEY:
+ return "C";
+ break;
+ case DKEY:
+ return "D";
+ break;
+ case EKEY:
+ return "E";
+ break;
+ case FKEY:
+ return "F";
+ break;
+ case GKEY:
+ return "G";
+ break;
+ case HKEY:
+ return "H";
+ break;
+ case IKEY:
+ return "I";
+ break;
+ case JKEY:
+ return "J";
+ break;
+ case KKEY:
+ return "K";
+ break;
+ case LKEY:
+ return "L";
+ break;
+ case MKEY:
+ return "M";
+ break;
+ case NKEY:
+ return "N";
+ break;
+ case OKEY:
+ return "O";
+ break;
+ case PKEY:
+ return "P";
+ break;
+ case QKEY:
+ return "Q";
+ break;
+ case RKEY:
+ return "R";
+ break;
+ case SKEY:
+ return "S";
+ break;
+ case TKEY:
+ return "T";
+ break;
+ case UKEY:
+ return "U";
+ break;
+ case VKEY:
+ return "V";
+ break;
+ case WKEY:
+ return "W";
+ break;
+ case XKEY:
+ return "X";
+ break;
+ case YKEY:
+ return "Y";
+ break;
+ case ZKEY:
+ return "Z";
+ break;
+
+ case ZEROKEY:
+ return "Zero";
+ break;
+ case ONEKEY:
+ return "One";
+ break;
+ case TWOKEY:
+ return "Two";
+ break;
+ case THREEKEY:
+ return "Three";
+ break;
+ case FOURKEY:
+ return "Four";
+ break;
+ case FIVEKEY:
+ return "Five";
+ break;
+ case SIXKEY:
+ return "Six";
+ break;
+ case SEVENKEY:
+ return "Seven";
+ break;
+ case EIGHTKEY:
+ return "Eight";
+ break;
+ case NINEKEY:
+ return "Nine";
+ break;
+
+ case LEFTCTRLKEY:
+ return "Leftctrl";
+ break;
+ case LEFTALTKEY:
+ return "Leftalt";
+ break;
+ case RIGHTALTKEY:
+ return "Rightalt";
+ break;
+ case RIGHTCTRLKEY:
+ return "Rightctrl";
+ break;
+ case RIGHTSHIFTKEY:
+ return "Rightshift";
+ break;
+ case LEFTSHIFTKEY:
+ return "Leftshift";
+ break;
+
+ case ESCKEY:
+ return "Esc";
+ break;
+ case TABKEY:
+ return "Tab";
+ break;
+ case RETKEY:
+ return "Ret";
+ break;
+ case SPACEKEY:
+ return "Space";
+ break;
+ case LINEFEEDKEY:
+ return "Linefeed";
+ break;
+ case BACKSPACEKEY:
+ return "Backspace";
+ break;
+ case DELKEY:
+ return "Del";
+ break;
+ case SEMICOLONKEY:
+ return "Semicolon";
+ break;
+ case PERIODKEY:
+ return "Period";
+ break;
+ case COMMAKEY:
+ return "Comma";
+ break;
+ case QUOTEKEY:
+ return "Quote";
+ break;
+ case ACCENTGRAVEKEY:
+ return "Accentgrave";
+ break;
+ case MINUSKEY:
+ return "Minus";
+ break;
+ case SLASHKEY:
+ return "Slash";
+ break;
+ case BACKSLASHKEY:
+ return "Backslash";
+ break;
+ case EQUALKEY:
+ return "Equal";
+ break;
+ case LEFTBRACKETKEY:
+ return "Leftbracket";
+ break;
+ case RIGHTBRACKETKEY:
+ return "Rightbracket";
+ break;
+
+ case LEFTARROWKEY:
+ return "Leftarrow";
+ break;
+ case DOWNARROWKEY:
+ return "Downarrow";
+ break;
+ case RIGHTARROWKEY:
+ return "Rightarrow";
+ break;
+ case UPARROWKEY:
+ return "Uparrow";
+ break;
+
+ case PAD2:
+ return "Pad2";
+ break;
+ case PAD4:
+ return "Pad4";
+ break;
+ case PAD6:
+ return "Pad6";
+ break;
+ case PAD8:
+ return "Pad8";
+ break;
+ case PAD1:
+ return "Pad1";
+ break;
+ case PAD3:
+ return "Pad3";
+ break;
+ case PAD5:
+ return "Pad5";
+ break;
+ case PAD7:
+ return "Pad7";
+ break;
+ case PAD9:
+ return "Pad9";
+ break;
+
+ case PADPERIOD:
+ return "Padperiod";
+ break;
+ case PADSLASHKEY:
+ return "Padslash";
+ break;
+ case PADASTERKEY:
+ return "Padaster";
+ break;
+
+ case PAD0:
+ return "Pad0";
+ break;
+ case PADMINUS:
+ return "Padminus";
+ break;
+ case PADENTER:
+ return "Padenter";
+ break;
+ case PADPLUSKEY:
+ return "Padplus";
+ break;
+
+ case F1KEY:
+ return "F1";
+ break;
+ case F2KEY:
+ return "F2";
+ break;
+ case F3KEY:
+ return "F3";
+ break;
+ case F4KEY:
+ return "F4";
+ break;
+ case F5KEY:
+ return "F5";
+ break;
+ case F6KEY:
+ return "F6";
+ break;
+ case F7KEY:
+ return "F7";
+ break;
+ case F8KEY:
+ return "F8";
+ break;
+ case F9KEY:
+ return "F9";
+ break;
+ case F10KEY:
+ return "F10";
+ break;
+ case F11KEY:
+ return "F11";
+ break;
+ case F12KEY:
+ return "F12";
+ break;
+
+ case PAUSEKEY:
+ return "Pause";
+ break;
+ case INSERTKEY:
+ return "Insert";
+ break;
+ case HOMEKEY:
+ return "Home";
+ break;
+ case PAGEUPKEY:
+ return "Pageup";
+ break;
+ case PAGEDOWNKEY:
+ return "Pagedown";
+ break;
+ case ENDKEY:
+ return "End";
+ break;
+ }
+
+ return "";
+}
+
Modified: branches/blender2.5/blender/source/blender/windowmanager/wm_event_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/wm_event_types.h 2008-12-15 20:53:45 UTC (rev 17883)
+++ branches/blender2.5/blender/source/blender/windowmanager/wm_event_types.h 2008-12-16 07:32:12 UTC (rev 17884)
@@ -188,11 +188,6 @@
#define COMMANDKEY 172
#define GRLESSKEY 173
-/* used as fake leftmouse events, special handled in interface.c */
-#define BUT_ACTIVATE 200
-#define BUT_NEXT 201
-#define BUT_PREV 202
-
/* **************** BLENDER QUEUE EVENTS ********************* */
#define CHANGED 0x4000
More information about the Bf-blender-cvs
mailing list