Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2008-12-15 16:10:29 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2008-12-15 16:10:29 +0300
commitd48f4b6012ccfc1a1da6a1a002d7c86cacbd98aa (patch)
tree17042a225366b4d6fc85e0b91534d9d1d952cf9d /source/blender/makesdna
parentb4aef1673369b8f0a4e8009f9aab38c7c586ef4f (diff)
2.5: added support for setting RNA properties in keymap item,
which will then be set when the operator is called, example: kmi= WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "dir", 'h'); kmi= WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, KM_SHIFT, 0); RNA_enum_set(kmi->ptr, "dir", 'v'); There is a hack I had to do here, since properties are defined as member of wmOperator, will try to fix later, committing now so it can be used already.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_windowmanager_types.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h
index 867007032b6..e50aaee3c0e 100644
--- a/source/blender/makesdna/DNA_windowmanager_types.h
+++ b/source/blender/makesdna/DNA_windowmanager_types.h
@@ -142,7 +142,10 @@ typedef struct wmOperatorType {
typedef struct wmKeymapItem {
struct wmKeymapItem *next, *prev;
+ /* these are same order as wmOperator because RNA depends on it, fixme XXX */
char idname[64]; /* used to retrieve operator type pointer */
+ IDProperty *properties; /* default operator properties */
+ struct PointerRNA *ptr; /* rna pointer to access properties */
short type; /* event code itself */
short val; /* 0=any, 1=click, 2=release, or wheelvalue, or... */
@@ -170,18 +173,15 @@ typedef struct wmKeyMap {
/* operator + operatortype should be able to redo entirely, but for different contextes */
typedef struct wmOperator {
struct wmOperator *next, *prev;
-
- wmOperatorType *type;
- char idname[64]; /* used to retrieve type pointer */
-
- /* custom storage, only while operator runs, not saved */
- void *customdata;
- /* IDproperty list */
- IDProperty *properties;
+ /* saved */
+ char idname[64]; /* used to retrieve type pointer */
+ IDProperty *properties; /* saved, user-settable properties */
+
/* runtime */
- struct PointerRNA *ptr;
- ListBase *modallist;
+ wmOperatorType *type; /* operator type definition from idname */
+ void *customdata; /* custom storage, only while operator runs */
+ struct PointerRNA *ptr; /* rna pointer to access properties */
} wmOperator;
/* operator type exec(), invoke() modal(), return values */