diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-12-15 16:10:29 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-12-15 16:10:29 +0300 |
commit | d48f4b6012ccfc1a1da6a1a002d7c86cacbd98aa (patch) | |
tree | 17042a225366b4d6fc85e0b91534d9d1d952cf9d /source/blender/makesdna | |
parent | b4aef1673369b8f0a4e8009f9aab38c7c586ef4f (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.h | 20 |
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 */ |