[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50753] trunk/blender/source/blender/ editors: Add a "Header" sub-menu to the right-click one of all buttons in a header area.

Bastien Montagne montagne29 at wanadoo.fr
Wed Sep 19 20:47:41 CEST 2012


Revision: 50753
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50753
Author:   mont29
Date:     2012-09-19 18:47:41 +0000 (Wed, 19 Sep 2012)
Log Message:
-----------
Add a "Header" sub-menu to the right-click one of all buttons in a header area. Also header tools entries are now translatable!

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/ED_screen.h
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/screen/screen_ops.c

Modified: trunk/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_screen.h	2012-09-19 17:37:15 UTC (rev 50752)
+++ trunk/blender/source/blender/editors/include/ED_screen.h	2012-09-19 18:47:41 UTC (rev 50753)
@@ -111,6 +111,7 @@
 void    ED_screen_full_prevspace(struct bContext *C, ScrArea *sa);
 void    ED_screen_full_restore(struct bContext *C, ScrArea *sa);
 struct ScrArea *ED_screen_full_toggle(struct bContext *C, struct wmWindow *win, struct ScrArea *sa);
+void    ED_screens_header_tools_menu_create(struct bContext *C, struct uiLayout *layout, void *arg);
 
 /* anim */
 void    ED_update_for_newframe(struct Main *bmain, struct Scene *scene, int mute);

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-09-19 17:37:15 UTC (rev 50752)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-09-19 18:47:41 UTC (rev 50753)
@@ -4501,6 +4501,7 @@
 
 static int ui_but_menu(bContext *C, uiBut *but)
 {
+	ARegion *ar = CTX_wm_region(C);
 	uiPopupMenu *pup;
 	uiLayout *layout;
 	int length;
@@ -4724,7 +4725,12 @@
 		uiItemS(layout);
 	}
 
-	
+	/* Show header tools for header buttons. */
+	if (ar->regiontype == RGN_TYPE_HEADER) {
+		uiItemMenuF(layout, IFACE_("Header"), ICON_NONE, ED_screens_header_tools_menu_create, NULL);
+		uiItemS(layout);
+	}
+
 	{   /* Docs */
 		char buf[512];
 		PointerRNA ptr_props;

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2012-09-19 17:37:15 UTC (rev 50752)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2012-09-19 18:47:41 UTC (rev 50753)
@@ -2850,35 +2850,40 @@
 }
 
 /* ************** header tools operator ***************************** */
-
-static int header_toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
+void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UNUSED(arg))
 {
 	ScrArea *sa = CTX_wm_area(C);
 	ARegion *ar = CTX_wm_region(C);
-	uiPopupMenu *pup;
-	uiLayout *layout;
-	
-	pup = uiPupMenuBegin(C, "Header", ICON_NONE);
-	layout = uiPupMenuLayout(pup);
-	
-	// XXX SCREEN_OT_region_flip doesn't work - gets wrong context for active region, so added custom operator
+
+	/* XXX SCREEN_OT_region_flip doesn't work - gets wrong context for active region, so added custom operator. */
 	if (ar->alignment == RGN_ALIGN_TOP)
-		uiItemO(layout, "Flip to Bottom", ICON_NONE, "SCREEN_OT_header_flip");
+		uiItemO(layout, IFACE_("Flip to Bottom"), ICON_NONE, "SCREEN_OT_header_flip");
 	else
-		uiItemO(layout, "Flip to Top", ICON_NONE, "SCREEN_OT_header_flip");
-	
+		uiItemO(layout, IFACE_("Flip to Top"), ICON_NONE, "SCREEN_OT_header_flip");
+
 	uiItemS(layout);
-	
+
 	/* file browser should be fullscreen all the time, but other regions can be maximized/restored... */
 	if (sa->spacetype != SPACE_FILE) {
 		if (sa->full) 
-			uiItemO(layout, "Tile Area", ICON_NONE, "SCREEN_OT_screen_full_area");
+			uiItemO(layout, IFACE_("Tile Area"), ICON_NONE, "SCREEN_OT_screen_full_area");
 		else
-			uiItemO(layout, "Maximize Area", ICON_NONE, "SCREEN_OT_screen_full_area");
+			uiItemO(layout, IFACE_("Maximize Area"), ICON_NONE, "SCREEN_OT_screen_full_area");
 	}
-	
+}
+
+static int header_toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
+{
+	uiPopupMenu *pup;
+	uiLayout *layout;
+
+	pup = uiPupMenuBegin(C, N_("Header"), ICON_NONE);
+	layout = uiPupMenuLayout(pup);
+
+	ED_screens_header_tools_menu_create(C, layout, NULL);
+
 	uiPupMenuEnd(C, pup);
-	
+
 	return OPERATOR_CANCELLED;
 }
 




More information about the Bf-blender-cvs mailing list