[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21015] branches/soc-2009-chingachgook/ source/blender/editors/space_info/info_header.c: Merged 2.5 -r 20124:21003

Chingiz Dyussenov chingiz.ds at gmail.com
Fri Jun 19 20:24:16 CEST 2009


Revision: 21015
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21015
Author:   chingachgook
Date:     2009-06-19 20:24:16 +0200 (Fri, 19 Jun 2009)

Log Message:
-----------
Merged 2.5 -r 20124:21003

Modified Paths:
--------------
    branches/soc-2009-chingachgook/source/blender/editors/space_info/info_header.c

Modified: branches/soc-2009-chingachgook/source/blender/editors/space_info/info_header.c
===================================================================
--- branches/soc-2009-chingachgook/source/blender/editors/space_info/info_header.c	2009-06-19 16:43:35 UTC (rev 21014)
+++ branches/soc-2009-chingachgook/source/blender/editors/space_info/info_header.c	2009-06-19 18:24:16 UTC (rev 21015)
@@ -262,23 +262,22 @@
 static void info_filemenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
 	
-	uiLayoutContext(layout, WM_OP_EXEC_AREA);
+	uiLayoutSetOperatorContext(layout, WM_OP_EXEC_AREA);
 	uiItemO(layout, NULL, 0, "WM_OT_read_homefile"); 
-	uiLayoutContext(layout, WM_OP_INVOKE_AREA);
+	uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_AREA);
 	uiItemO(layout, NULL, 0, "WM_OT_open_mainfile"); 
 //	uiDefIconTextBlockBut(block, info_openrecentmenu, NULL, ICON_RIGHTARROW_THIN, "Open Recent",0, yco-=20, 120, 19, "");
 //	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recover Last Session",				0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
 	
 	uiItemS(layout);
 	
-	uiLayoutContext(layout, WM_OP_EXEC_AREA);
+	uiLayoutSetOperatorContext(layout, WM_OP_EXEC_AREA);
 	uiItemO(layout, NULL, 0, "WM_OT_save_mainfile"); 
-	uiLayoutContext(layout, WM_OP_INVOKE_AREA);
+	uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_AREA);
 	uiItemO(layout, NULL, 0, "WM_OT_save_as_mainfile"); 
 
 	// XXX: these should move
 	uiItemS(layout);
-	uiLayoutContext(layout, WM_OP_INVOKE_AREA);
 	uiItemO(layout, NULL, 0, "WM_OT_collada_import"); 
 	uiItemO(layout, NULL, 0, "WM_OT_collada_export"); 
 
@@ -393,7 +392,41 @@
 	}
 }
 
+static void operator_call_cb(struct bContext *C, void *arg1, void *arg2)
+{
+	wmOperatorType *ot= arg2;
+	
+	if(ot)
+		WM_operator_name_call(C, ot->idname, WM_OP_INVOKE_DEFAULT, NULL);
+}
 
+static void operator_search_cb(const struct bContext *C, void *arg, char *str, uiSearchItems *items)
+{
+	wmOperatorType *ot = WM_operatortype_first();
+	
+	for(; ot; ot= ot->next) {
+		
+		if(BLI_strcasestr(ot->name, str)) {
+			if(ot->poll==NULL || ot->poll((bContext *)C)) {
+				char name[256];
+				int len= strlen(ot->name);
+				
+				/* display name for menu, can hold hotkey */
+				BLI_strncpy(name, ot->name, 256);
+				
+				/* check for hotkey */
+				if(len < 256-6) {
+					if(WM_key_event_operator_string(C, ot->idname, WM_OP_EXEC_DEFAULT, NULL, &name[len+1], 256-len-1))
+						name[len]= '|';
+				}
+				
+				if(0==uiSearchItemAdd(items, name, ot))
+					break;
+			}
+		}
+	}
+}
+
 void info_header_buttons(const bContext *C, ARegion *ar)
 {
 	wmWindow *win= CTX_wm_window(C);
@@ -459,6 +492,16 @@
 		xco+= 90;
 	}
 	
+	{
+		static char search[256]= "";
+		uiBut *but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, xco+5, yco, 120, 19, "");
+		
+		uiButSetSearchFunc(but, operator_search_cb, NULL, operator_call_cb);
+
+		xco+= 125;
+	}
+
+	
 	/* always as last  */
 	UI_view2d_totRect_set(&ar->v2d, xco+XIC+80, ar->v2d.tot.ymax-ar->v2d.tot.ymin);
 	





More information about the Bf-blender-cvs mailing list