[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17870] branches/blender2.5/blender/source /blender/windowmanager: 2.5
Ton Roosendaal
ton at blender.org
Mon Dec 15 12:45:17 CET 2008
Revision: 17870
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17870
Author: ton
Date: 2008-12-15 12:45:17 +0100 (Mon, 15 Dec 2008)
Log Message:
-----------
2.5
funtion WM_keymap_add_item() now returns keymap-item, so you can use it
to set default properties for operators with WM_keymap_property_set().
Brecht will fill in this function, requires rna magic!
Example: an operator ED_OB_OT_add_primitive can be configured with
keymap like this:
WM_keymap_property_set(keymapitem, "Primitivetype", "Sphere");
Similar conventions we can use later for button/menu calls.
This will make creating operators easier, allowing a developer to group
tools functionality nicely.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c
Modified: branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/WM_api.h 2008-12-15 10:48:04 UTC (rev 17869)
+++ branches/blender2.5/blender/source/blender/windowmanager/WM_api.h 2008-12-15 11:45:17 UTC (rev 17870)
@@ -61,12 +61,13 @@
void WM_timecursor (struct bContext *C, int nr);
/* keymap and handlers */
-void WM_keymap_set_item (ListBase *lb, char *idname, short type,
+wmKeymapItem *WM_keymap_set_item (ListBase *lb, char *idname, short type,
short val, int modifier, short keymodifier);
-void WM_keymap_verify_item(ListBase *lb, char *idname, short type,
+wmKeymapItem *WM_keymap_verify_item(ListBase *lb, char *idname, short type,
short val, int modifier, short keymodifier);
-void WM_keymap_add_item (ListBase *lb, char *idname, short type,
+wmKeymapItem *WM_keymap_add_item (ListBase *lb, char *idname, short type,
short val, int modifier, short keymodifier);
+void WM_keymap_property_set(wmKeymapItem *km, const char *propname, const char *propval);
ListBase *WM_keymap_listbase (wmWindowManager *wm, const char *nameid,
int spaceid, int regionid);
Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c 2008-12-15 10:48:04 UTC (rev 17869)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c 2008-12-15 11:45:17 UTC (rev 17870)
@@ -643,6 +643,7 @@
ARegion *ar;
int doit= 0;
+ /* XXX to solve, here screen handlers? */
ED_screen_set_subwinactive(win); /* state variables in screen */
for(sa= win->screen->areabase.first; sa; sa= sa->next) {
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 10:48:04 UTC (rev 17869)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_keymap.c 2008-12-15 11:45:17 UTC (rev 17870)
@@ -72,7 +72,7 @@
}
/* if item was added, then bail out */
-void WM_keymap_verify_item(ListBase *lb, char *idname, short type, short val, int modifier, short keymodifier)
+wmKeymapItem *WM_keymap_verify_item(ListBase *lb, char *idname, short type, short val, int modifier, short keymodifier)
{
wmKeymapItem *kmi;
@@ -87,11 +87,11 @@
keymap_set(kmi, type, val, modifier, keymodifier);
}
-
+ return kmi;
}
/* if item was added, then replace */
-void WM_keymap_set_item(ListBase *lb, char *idname, short type, short val, int modifier, short keymodifier)
+wmKeymapItem *WM_keymap_set_item(ListBase *lb, char *idname, short type, short val, int modifier, short keymodifier)
{
wmKeymapItem *kmi;
@@ -105,10 +105,11 @@
BLI_strncpy(kmi->idname, idname, OP_MAX_TYPENAME);
}
keymap_set(kmi, type, val, modifier, keymodifier);
+ return kmi;
}
/* always add item */
-void WM_keymap_add_item(ListBase *lb, char *idname, short type, short val, int modifier, short keymodifier)
+wmKeymapItem *WM_keymap_add_item(ListBase *lb, char *idname, short type, short val, int modifier, short keymodifier)
{
wmKeymapItem *kmi= MEM_callocN(sizeof(wmKeymapItem), "keymap entry");
@@ -116,8 +117,14 @@
BLI_strncpy(kmi->idname, idname, OP_MAX_TYPENAME);
keymap_set(kmi, type, val, modifier, keymodifier);
+ return kmi;
}
+void WM_keymap_property_set(wmKeymapItem *km, const char *propname, const char *propval)
+{
+ /* todo */
+}
+
/* ****************** storage in WM ************ */
/* name id's are for storing general or multiple keymaps,
More information about the Bf-blender-cvs
mailing list