diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-07-24 00:40:51 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-07-24 00:40:51 +0400 |
commit | 062b1b88adc16cd580fb89c59839d7989a62e83e (patch) | |
tree | 0a7139bd88de867897439efd0e19d548dd439a29 /source/blender/editors/space_buttons | |
parent | 580b52785464c1399f669e1a06c9b0b5b27c0be9 (diff) |
2.5: Various
* Buttons header: made tab buttons bigger, remove view menu,
replaced by RMB menu in main region.
* Timeline header: tweak button placement and alignment, added
a play reverse icon.
* Window type chooser menu: removed audio and scripts windows,
change console and logic icons.
* Node space: disable the channel region until it is used.
Diffstat (limited to 'source/blender/editors/space_buttons')
4 files changed, 63 insertions, 78 deletions
diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c index e569ed324cd..0fb00b2780b 100644 --- a/source/blender/editors/space_buttons/buttons_header.c +++ b/source/blender/editors/space_buttons/buttons_header.c @@ -60,66 +60,14 @@ #include "buttons_intern.h" -/* ************************ header area region *********************** */ - -static void do_viewmenu(bContext *C, void *arg, int event) -{ - SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C); - ScrArea *sa= CTX_wm_area(C); - - switch(event) { - case 1: - case 2: - sbuts->align= event; - sbuts->re_align= 1; - break; - } - - ED_area_tag_redraw(sa); -} - -static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused) -{ - SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C); - ScrArea *sa= CTX_wm_area(C); - uiBlock *block; - short yco= 0, menuwidth=120; - - block= uiBeginBlock(C, ar, "dummy_viewmenu", UI_EMBOSSP); - uiBlockSetButmFunc(block, do_viewmenu, NULL); - - if (sbuts->align == 1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Horizontal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Horizontal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, ""); - - if (sbuts->align == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Vertical", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Vertical", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, ""); - - if(sa->headertype==HEADERTOP) { - uiBlockSetDirection(block, UI_DOWN); - } - else { - uiBlockSetDirection(block, UI_TOP); - uiBlockFlipOrder(block); - } - - uiTextBoundsBlock(block, 50); - uiEndBlock(C, block); - - return block; -} - #define B_CONTEXT_SWITCH 101 #define B_BUTSPREVIEW 102 -#define B_NEWFRAME 103 static void do_buttons_buttons(bContext *C, void *arg, int event) { SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C); switch(event) { - case B_NEWFRAME: - WM_event_add_notifier(C, NC_SCENE|ND_FRAME, NULL); - break; case B_CONTEXT_SWITCH: case B_BUTSPREVIEW: ED_area_tag_redraw(CTX_wm_area(C)); @@ -137,7 +85,6 @@ static void do_buttons_buttons(bContext *C, void *arg, int event) void buttons_header_buttons(const bContext *C, ARegion *ar) { - ScrArea *sa= CTX_wm_area(C); SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C); uiBlock *block; int xco, yco= 3; @@ -147,17 +94,7 @@ void buttons_header_buttons(const bContext *C, ARegion *ar) block= uiBeginBlock(C, ar, "header buttons", UI_EMBOSS); uiBlockSetHandleFunc(block, do_buttons_buttons, NULL); - xco= ED_area_header_standardbuttons(C, block, yco); - - if((sa->flag & HEADER_NO_PULLDOWN)==0) { - int xmax; - - xmax= GetButStringLength("View"); - uiDefPulldownBut(block, dummy_viewmenu, CTX_wm_area(C), - "View", xco, yco, xmax-3, 20, ""); - - xco+=xmax; - } + xco= ED_area_header_switchbutton(C, block, yco); uiBlockSetEmboss(block, UI_EMBOSS); @@ -166,30 +103,30 @@ void buttons_header_buttons(const bContext *C, ARegion *ar) // Default panels uiBlockBeginAlign(block); if(sbuts->pathflag & (1<<BCONTEXT_SCENE)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene"); if(sbuts->pathflag & (1<<BCONTEXT_WORLD)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_WORLD, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_WORLD, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World"); if(sbuts->pathflag & (1<<BCONTEXT_OBJECT)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object"); if(sbuts->pathflag & (1<<BCONTEXT_CONSTRAINT)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_CONSTRAINT, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Constraint"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_CONSTRAINT, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_CONSTRAINT, 0, 0, "Constraint"); if(sbuts->pathflag & (1<<BCONTEXT_DATA)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, sbuts->dataicon, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, sbuts->dataicon, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data"); if(sbuts->pathflag & (1<<BCONTEXT_MODIFIER)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MODIFIER, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifier"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MODIFIER, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifier"); if(sbuts->pathflag & (1<<BCONTEXT_BONE)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone"); if(sbuts->pathflag & (1<<BCONTEXT_MATERIAL)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MATERIAL, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MATERIAL, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material"); if(sbuts->pathflag & (1<<BCONTEXT_TEXTURE)) - uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture"); + uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture"); if(sbuts->pathflag & (1<<BCONTEXT_PARTICLE)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles"); if(sbuts->pathflag & (1<<BCONTEXT_PHYSICS)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics"); + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics"); if(sbuts->pathflag & (1<<BCONTEXT_GAME)) - uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_GAME, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_GAME, 0, 0, "Game"); - xco+= XIC; + uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_GAME, xco+=BUTS_UI_UNIT, yco, BUTS_UI_UNIT, BUTS_UI_UNIT, &(sbuts->mainb), 0.0, (float)BCONTEXT_GAME, 0, 0, "Game"); + xco+= BUTS_UI_UNIT; uiBlockEndAlign(block); diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h index adae52c1ce7..c505c7fdb18 100644 --- a/source/blender/editors/space_buttons/buttons_intern.h +++ b/source/blender/editors/space_buttons/buttons_intern.h @@ -49,6 +49,9 @@ struct wmOperatorType; #define BUTS_SENS_STATE 512 #define BUTS_ACT_STATE 1024 +#define BUTS_HEADERY (HEADERY*1.2) +#define BUTS_UI_UNIT (UI_UNIT_Y*1.2) + /* internal exports only */ /* buttons_header.c */ @@ -86,5 +89,7 @@ void PARTICLE_OT_target_move_down(struct wmOperatorType *ot); void SCENE_OT_render_layer_add(struct wmOperatorType *ot); void SCENE_OT_render_layer_remove(struct wmOperatorType *ot); +void BUTTONS_OT_toolbox(struct wmOperatorType *ot); + #endif /* ED_BUTTONS_INTERN_H */ diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c index 124ccf9d480..fee79c6d9c2 100644 --- a/source/blender/editors/space_buttons/buttons_ops.c +++ b/source/blender/editors/space_buttons/buttons_ops.c @@ -38,6 +38,8 @@ #include "DNA_node_types.h" #include "DNA_texture_types.h" #include "DNA_scene_types.h" +#include "DNA_screen_types.h" +#include "DNA_space_types.h" #include "DNA_world_types.h" #include "BKE_context.h" @@ -69,6 +71,8 @@ #include "RNA_access.h" #include "RNA_define.h" +#include "UI_interface.h" + #include "buttons_intern.h" // own include @@ -901,3 +905,33 @@ void SCENE_OT_render_layer_remove(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/********************** toolbox operator *********************/ + +static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + bScreen *sc= CTX_wm_screen(C); + SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C); + PointerRNA ptr; + uiPopupMenu *pup; + uiLayout *layout; + + RNA_pointer_create(&sc->id, &RNA_SpaceButtonsWindow, sbuts, &ptr); + + pup= uiPupMenuBegin(C, "Align", 0); + layout= uiPupMenuLayout(pup); + uiItemsEnumR(layout, &ptr, "align"); + uiPupMenuEnd(C, pup); + + return OPERATOR_CANCELLED; +} + +void BUTTONS_OT_toolbox(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Toolbox"; + ot->idname= "BUTTONS_OT_toolbox"; + + /* api callbacks */ + ot->invoke= toolbox_invoke; +} + diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 72c479b2877..05d181ba330 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -139,7 +139,12 @@ static SpaceLink *buttons_duplicate(SpaceLink *sl) /* add handlers, stuff you only do once or on area/region changes */ static void buttons_main_area_init(wmWindowManager *wm, ARegion *ar) { + ListBase *keymap; + ED_region_panels_init(wm, ar); + + keymap= WM_keymap_listbase(wm, "Buttons Generic", SPACE_BUTS, 0); + WM_event_add_keymap_handler(&ar->handlers, keymap); } static void buttons_main_area_draw(const bContext *C, ARegion *ar) @@ -205,11 +210,15 @@ void buttons_operatortypes(void) WM_operatortype_append(SCENE_OT_render_layer_add); WM_operatortype_append(SCENE_OT_render_layer_remove); + + WM_operatortype_append(BUTTONS_OT_toolbox); } void buttons_keymap(struct wmWindowManager *wm) { + ListBase *keymap= WM_keymap_listbase(wm, "Buttons Generic", SPACE_BUTS, 0); + WM_keymap_add_item(keymap, "BUTTONS_OT_toolbox", RIGHTMOUSE, KM_PRESS, 0, 0); } //#define PY_HEADER @@ -394,7 +403,7 @@ void ED_spacetype_buttons(void) /* regions: header */ art= MEM_callocN(sizeof(ARegionType), "spacetype buttons region"); art->regionid = RGN_TYPE_HEADER; - art->minsizey= HEADERY; + art->minsizey= BUTS_HEADERY; art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES; art->init= buttons_header_area_init; |