Revision: 21056
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21056
Author:   campbellbarton
Date:     2009-06-21 16:30:59 +0200 (Sun, 21 Jun 2009)

Log Message:
-----------
RNA read-only wrapped wmEvent so python operators invoke functions
* 2 new enums event_value_items and event_type_items in RNA_enum_types.h
* WM_key_event_string now uses an RNA enum lookup rather then its own switch 
statement.
* moved wmEvent from WM_types.h into DNA_windowmanager_types.h
* added RNA_enum_identifier and RNA_enum_name to get strings from an enum value.

Modified Paths:
--------------
    
branches/blender2.5/blender/source/blender/editors/transform/transform_input.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_ndofinput.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_numinput.c
    
branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_enum_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c
    branches/blender2.5/blender/source/blender/python/intern/bpy_operator_wrap.c
    branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_input.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_input.c  
    2009-06-21 14:10:17 UTC (rev 21055)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_input.c  
    2009-06-21 14:30:59 UTC (rev 21056)
@@ -26,6 +26,7 @@
 #include <math.h>
 
 #include "DNA_screen_types.h"
+#include "DNA_windowmanager_types.h"
 
 #include "BLI_arithb.h"
 

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_ndofinput.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_ndofinput.c
  2009-06-21 14:10:17 UTC (rev 21055)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_ndofinput.c
  2009-06-21 14:30:59 UTC (rev 21056)
@@ -31,6 +31,7 @@
 #include "BKE_utildefines.h"   /* ABS */
 
 #include "DNA_view3d_types.h" /* for G.vd (view3d) */
+#include "DNA_windowmanager_types.h" /* for G.vd (view3d) */
 
 #include "WM_types.h"
 

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_numinput.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_numinput.c
   2009-06-21 14:10:17 UTC (rev 21055)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_numinput.c
   2009-06-21 14:30:59 UTC (rev 21056)
@@ -34,6 +34,7 @@
 #include "BKE_utildefines.h"   /* ABS */
 
 #include "WM_types.h"
+#include "DNA_windowmanager_types.h"
 
 #include "transform.h"
 

Modified: 
branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
--- 
branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h   
    2009-06-21 14:10:17 UTC (rev 21055)
+++ 
branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h   
    2009-06-21 14:30:59 UTC (rev 21056)
@@ -222,5 +222,36 @@
        WM_RADIALCONTROL_ANGLE
 } wmRadialControlMode;
 
+/* ************** wmEvent ************************ */
+/* for read-only rna access, dont save this */
+
+/* each event should have full modifier state */
+/* event comes from eventmanager and from keymap */
+typedef struct wmEvent {
+       struct wmEvent *next, *prev;
+       
+       short type;                     /* event code itself (short, is also in 
keymap) */
+       short val;                      /* press, release, scrollvalue */
+       short x, y;                     /* mouse pointer position, screen coord 
*/
+       short mval[2];          /* region mouse position, name convention pre 
2.5 :) */
+       short prevx, prevy;     /* previous mouse pointer position */
+       short unicode;          /* future, ghost? */
+       char ascii;                     /* from ghost */
+       char pad;
+       
+       /* modifier states */
+       short shift, ctrl, alt, oskey;  /* oskey is apple or windowskey, value 
denotes order of pressed */
+       short keymodifier;                              /* rawkey modifier */
+       
+       /* keymap item, set by handler (weak?) */
+       const char *keymap_idname;
+       
+       /* custom data */
+       short custom;   /* custom data type, stylus, 6dof, see wm_event_types.h 
*/
+       void *customdata;       /* ascii, unicode, mouse coords, angles, 
vectors, dragdrop info */
+       short customdatafree;
+       
+} wmEvent;
+
 #endif /* DNA_WINDOWMANAGER_TYPES_H */
 

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_access.h    
2009-06-21 14:10:17 UTC (rev 21055)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_access.h    
2009-06-21 14:30:59 UTC (rev 21056)
@@ -172,6 +172,7 @@
 extern StructRNA RNA_EnvironmentMapTexture;
 extern StructRNA RNA_ExplodeModifier;
 extern StructRNA RNA_ExpressionController;
+extern StructRNA RNA_Event;
 extern StructRNA RNA_FCurve;
 extern StructRNA RNA_FModifier;
 extern StructRNA RNA_FModifierCycles;
@@ -541,6 +542,9 @@
 void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float 
*hardmin, float *hardmax);
 void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float 
*softmin, float *softmax, float *step, float *precision);
 
+int RNA_enum_identifier(const EnumPropertyItem *item, const int value, const 
char **identifier);
+int RNA_enum_name(const EnumPropertyItem *item, const int value, const char 
**name);
+
 void RNA_property_enum_items(PointerRNA *ptr, PropertyRNA *prop, const 
EnumPropertyItem **item, int *totitem);
 int RNA_property_enum_value(PointerRNA *ptr, PropertyRNA *prop, const char 
*identifier, int *value);
 int RNA_property_enum_identifier(PointerRNA *ptr, PropertyRNA *prop, const int 
value, const char **identifier);

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_enum_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_enum_types.h        
2009-06-21 14:10:17 UTC (rev 21055)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_enum_types.h        
2009-06-21 14:30:59 UTC (rev 21056)
@@ -40,6 +40,9 @@
 
 extern EnumPropertyItem fmodifier_type_items[];
 
+extern EnumPropertyItem event_value_items[];
+extern EnumPropertyItem event_type_items[];
+
 #endif /* RNA_ENUM_TYPES */
 
 

Modified: 
branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c     
2009-06-21 14:10:17 UTC (rev 21055)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c     
2009-06-21 14:30:59 UTC (rev 21056)
@@ -669,6 +669,28 @@
        return 0;
 }
 
+int RNA_enum_identifier(const EnumPropertyItem *item, const int value, const 
char **identifier)
+{
+       for (; item->identifier; item++) {
+               if(item->value==value) {
+                       *identifier = item->identifier;
+                       return 1;
+               }
+       }
+       return 0;
+}
+
+int RNA_enum_name(const EnumPropertyItem *item, const int value, const char 
**name)
+{
+       for (; item->identifier; item++) {
+               if(item->value==value) {
+                       *name = item->name;
+                       return 1;
+               }
+       }
+       return 0;
+}
+
 int RNA_property_enum_identifier(PointerRNA *ptr, PropertyRNA *prop, const int 
value, const char **identifier)
 {      
        const EnumPropertyItem *item;
@@ -676,14 +698,7 @@
        
        RNA_property_enum_items(ptr, prop, &item, &totitem);
        
-       for(i=0; i<totitem; i++) {
-               if(item[i].value==value) {
-                       *identifier = item[i].identifier;
-                       return 1;
-               }
-       }
-       
-       return 0;
+       return RNA_enum_identifier(item, value, identifier);
 }
 
 const char *RNA_property_ui_name(PropertyRNA *prop)

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c 
2009-06-21 14:10:17 UTC (rev 21055)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c 
2009-06-21 14:30:59 UTC (rev 21056)
@@ -30,7 +30,121 @@
 #include "rna_internal.h"
 
 #include "DNA_windowmanager_types.h"
+#include "WM_types.h" /* wmEvent */
 
+
+EnumPropertyItem event_value_items[] = {
+       {KM_ANY, "ANY", 0, "Any", ""},
+       {KM_NOTHING, "NOTHING", 0, "Nothing", ""},
+       {KM_PRESS, "PRESS", 0, "Press", ""},
+       {KM_RELEASE, "RELEASE", 0, "Release", ""},
+       {0, NULL, 0, NULL, NULL}};
+
+/* not returned: CAPSLOCKKEY, UNKNOWNKEY, COMMANDKEY, GRLESSKEY */
+EnumPropertyItem event_type_items[] = {
+       {AKEY, "A", 0, "A", ""},
+       {BKEY, "B", 0, "B", ""},
+       {CKEY, "C", 0, "C", ""},
+       {DKEY, "D", 0, "D", ""},
+       {EKEY, "E", 0, "E", ""},
+       {FKEY, "F", 0, "F", ""},
+       {GKEY, "G", 0, "G", ""},
+       {HKEY, "H", 0, "H", ""},
+       {IKEY, "I", 0, "I", ""},
+       {JKEY, "J", 0, "J", ""},
+       {KKEY, "K", 0, "K", ""},
+       {LKEY, "L", 0, "L", ""},
+       {MKEY, "M", 0, "M", ""},
+       {NKEY, "N", 0, "N", ""},
+       {OKEY, "O", 0, "O", ""},
+       {PKEY, "P", 0, "P", ""},
+       {QKEY, "Q", 0, "Q", ""},
+       {RKEY, "R", 0, "R", ""},
+       {SKEY, "S", 0, "S", ""},
+       {TKEY, "T", 0, "T", ""},
+       {UKEY, "U", 0, "U", ""},
+       {VKEY, "V", 0, "V", ""},
+       {WKEY, "W", 0, "W", ""},
+       {XKEY, "X", 0, "X", ""},
+       {YKEY, "Y", 0, "Y", ""},
+       {ZKEY, "Z", 0, "Z", ""},
+       
+       {ZEROKEY, "ZERO",       0, "Zero Key", ""},
+       {ONEKEY, "ONE",         0, "One Key", ""},
+       {TWOKEY, "TWO",         0, "Two Key", ""},
+       {THREEKEY, "THREE",     0, "Three Key", ""},
+       {FOURKEY, "FOUR",       0, "Four Key", ""},
+       {FIVEKEY, "FIVE",       0, "Five Key", ""},
+       {SIXKEY, "SIX",         0, "Six Key", ""},
+       {SEVENKEY, "SEVEN",     0, "Seven Key", ""},
+       {EIGHTKEY, "EIGHT",     0, "Eight Key", ""},
+       {NINEKEY, "NINE",       0, "Nine Key", ""},
+       
+       {LEFTCTRLKEY,   "LEFT_CTRL",    0, "Left Ctrl", ""},
+       {LEFTALTKEY,    "LEFT_ALT",             0, "Left Alt", ""},
+       {RIGHTALTKEY,   "RIGHT_ALT",    0, "Right Alt", ""},
+       {RIGHTCTRLKEY,  "RIGHT_CTRL",   0, "Rightctrl", ""},
+       {RIGHTSHIFTKEY, "RIGHT_SHIFT",  0, "Rightshift", ""},
+       {LEFTSHIFTKEY,  "LEFT_SHIFT",   0, "Leftshift", ""},
+       
+       {ESCKEY, "ESC", 0, "Esc", ""},
+       {TABKEY, "TAB", 0, "Tab", ""},
+       {RETKEY, "RET", 0, "Return", ""},
+       {SPACEKEY, "SPACE", 0, "Spacebar", ""},
+       {LINEFEEDKEY, "LINE_FEED", 0, "Line Feed", ""},
+       {BACKSPACEKEY, "BACK_SPACE", 0, "Back Space", ""},
+       {DELKEY, "DEL", 0, "Delete", ""},
+       {SEMICOLONKEY, "SEMI_COLON", 0, "Semicolon", ""},
+       {PERIODKEY, "PERIOD", 0, "Period", ""},
+       {COMMAKEY, "COMMA", 0, "Comma", ""},
+       {QUOTEKEY, "QUOTE", 0, "Quote", ""},
+       {ACCENTGRAVEKEY, "ACCENT_GRAVE", 0, "Accentgrave", ""},
+       {MINUSKEY, "MINUS", 0, "Minus", ""},
+       {SLASHKEY, "SLASH", 0, "Slash", ""},
+       {BACKSLASHKEY, "BACK_SLASH", 0, "Backslash", ""},
+       {EQUALKEY, "EQUAL", 0, "Equal", ""},
+       {LEFTBRACKETKEY, "LEFT_BRACKET", 0, "Leftbracket", ""},
+       {RIGHTBRACKETKEY, "RIGHT_BRACKET", 0, "Rightbracket", ""},
+       {LEFTARROWKEY, "LEFT_ARROW", 0, "Left Arrow", ""},
+       {DOWNARROWKEY, "DOWN_ARROW", 0, "Down Arrow", ""},
+       {RIGHTARROWKEY, "RIGHT_ARROW", 0, "Right Arrow", ""},
+       {UPARROWKEY, "UP_ARROW", 0, "Up Arrow", ""},
+       {PAD2, "NUMPAD_2", 0, "Numpad 2", ""},
+       {PAD4, "NUMPAD_4", 0, "Numpad 4", ""},
+       {PAD6, "NUMPAD_6", 0, "Numpad 6", ""},
+       {PAD8, "NUMPAD_8", 0, "Numpad 8", ""},
+       {PAD1, "NUMPAD_1", 0, "Numpad 1", ""},
+       {PAD3, "NUMPAD_3", 0, "Numpad 3", ""},
+       {PAD5, "NUMPAD_5", 0, "Numpad 5", ""},
+       {PAD7, "NUMPAD_7", 0, "Numpad 7", ""},
+       {PAD9, "NUMPAD_9", 0, "Numpad 9", ""},
+       {PADPERIOD, "NUMPAD_PERIOD", 0, "Numpad .", ""},
+       {PADSLASHKEY, "NUMPAD_SLASH", 0, "Numpad /", ""},
+       {PADASTERKEY, "NUMPAD_ASTERIX", 0, "Numpad *", ""},
+       {PAD0, "NUMPAD_0", 0, "Numpad 0", ""},

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to