[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