[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24564] trunk/blender/source/blender/ makesrna/intern/rna_wm.c: RNA property for propvalue in keymapitems.
Martin Poirier
theeth at yahoo.com
Sat Nov 14 23:43:42 CET 2009
Revision: 24564
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24564
Author: theeth
Date: 2009-11-14 23:43:42 +0100 (Sat, 14 Nov 2009)
Log Message:
-----------
RNA property for propvalue in keymapitems.
Enables modification of modal keymaps.
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_wm.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_wm.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_wm.c 2009-11-14 20:46:18 UTC (rev 24563)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm.c 2009-11-14 22:43:42 UTC (rev 24564)
@@ -230,6 +230,10 @@
{TIMER2, "TIMER2", 0, "Timer 2", ""},
{0, NULL, 0, NULL, NULL}};
+EnumPropertyItem keymap_propvalue_items[] = {
+ {0, "NONE", 0, "", ""},
+ {0, NULL, 0, NULL, NULL}};
+
#define KMI_TYPE_KEYBOARD 0
#define KMI_TYPE_MOUSE 1
#define KMI_TYPE_TWEAK 2
@@ -403,6 +407,30 @@
else return event_value_items;
}
+static EnumPropertyItem *rna_KeyMapItem_propvalue_itemf(bContext *C, PointerRNA *ptr, int *free)
+{
+ wmWindowManager *wm = CTX_wm_manager(C);
+ wmKeyConfig *kc;
+
+ for(kc=wm->keyconfigs.first; kc; kc=kc->next) {
+ wmKeyMap *km;
+
+ for(km=kc->keymaps.first; km; km=km->next) {
+ /* only check if it's a modal keymap */
+ if (km->modal_items) {
+ wmKeyMapItem *ki;
+ for (ki=km->items.first; ki; ki=ki->next) {
+ if (ki == ptr->data) {
+ return km->modal_items;
+ }
+ }
+ }
+ }
+ }
+
+ return keymap_propvalue_items;
+}
+
static PointerRNA rna_WindowManager_active_keyconfig_get(PointerRNA *ptr)
{
wmWindowManager *wm= ptr->data;
@@ -795,6 +823,12 @@
RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_EXPANDED);
RNA_def_property_ui_text(prop, "Expanded", "Expanded in the user interface.");
+ prop= RNA_def_property(srna, "propvalue", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "propvalue");
+ RNA_def_property_enum_items(prop, keymap_propvalue_items);
+ RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_KeyMapItem_propvalue_itemf");
+ RNA_def_property_ui_text(prop, "Property Value", "The value this event translates to in a modal keymap.");
+
prop= RNA_def_property(srna, "active", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE);
RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item.");
More information about the Bf-blender-cvs
mailing list