[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