From 6705b6f96ea4255f6bd69a039562ed603a83a83e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 29 Mar 2009 19:44:39 +0000 Subject: UI: * Added a PanelType and HeaderType for registering panels and headers in regions. When the region draws, it will then automatically draw the ones that were registerd with poll and draw callbacks. Used for text header, properties and object buttons now. --- .../blender/editors/space_buttons/space_buttons.c | 79 ++++++++++++---------- 1 file changed, 45 insertions(+), 34 deletions(-) (limited to 'source/blender/editors/space_buttons/space_buttons.c') diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index 3205fea2a15..bae318ff454 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -158,41 +158,51 @@ static void buttons_main_area_draw(const bContext *C, ARegion *ar) { /* draw entirely, view changes should be handled here */ SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C); - View2D *v2d= &ar->v2d; - float col[3], fac; - int align= 0; - - /* clear and setup matrix */ - UI_GetThemeColor3fv(TH_BACK, col); - glClearColor(col[0], col[1], col[2], 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - UI_view2d_view_ortho(C, v2d); - /* swapbuffers indicator */ - fac= BLI_frand(); - glColor3f(fac, fac, fac); - glRecti(20, v2d->cur.ymin+2, 30, v2d->cur.ymin+12); - - /* panels */ - if(sbuts->mainb == CONTEXT_SCENE) - buttons_scene(C, ar); - else if(sbuts->mainb == CONTEXT_OBJECT) - buttons_object(C, ar); - else - drawnewstuff(); - - if(sbuts->align) - if(sbuts->re_align || sbuts->mainbo!=sbuts->mainb || sbuts->tabo!=sbuts->tab[sbuts->mainb]) - align= 1; + if(sbuts->mainb == CONTEXT_OBJECT) { + int tab= sbuts->tab[CONTEXT_OBJECT]; + int vertical= (sbuts->align == 2); - uiDrawPanels(C, 1); // XXX align); - uiMatchPanelsView2d(ar); - - /* reset view matrix */ - UI_view2d_view_restore(C); - - /* scrollers? */ + if(tab == TAB_OBJECT_OBJECT) + uiRegionPanelLayout(C, ar, vertical, "object"); + } + else { + View2D *v2d= &ar->v2d; + float col[3], fac; + //int align= 0; + + /* clear and setup matrix */ + UI_GetThemeColor3fv(TH_BACK, col); + glClearColor(col[0], col[1], col[2], 0.0); + glClear(GL_COLOR_BUFFER_BIT); + + UI_view2d_view_ortho(C, v2d); + + /* swapbuffers indicator */ + fac= BLI_frand(); + glColor3f(fac, fac, fac); + glRecti(20, v2d->cur.ymin+2, 30, v2d->cur.ymin+12); + + /* panels */ + if(sbuts->mainb == CONTEXT_SCENE) + buttons_scene(C, ar); + else + drawnewstuff(); + +#if 0 + if(sbuts->align) + if(sbuts->re_align || sbuts->mainbo!=sbuts->mainb || sbuts->tabo!=sbuts->tab[sbuts->mainb]) + align= 1; +#endif + + uiDrawPanels(C, 1); // XXX align); + uiMatchPanelsView2d(ar); + + /* reset view matrix */ + UI_view2d_view_restore(C); + + /* scrollers? */ + } } void buttons_operatortypes(void) @@ -271,6 +281,8 @@ void ED_spacetype_buttons(void) art->listener= buttons_area_listener; art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES; + buttons_object_register(art); + BLI_addhead(&st->regiontypes, art); /* regions: header */ @@ -295,7 +307,6 @@ void ED_spacetype_buttons(void) BLI_addhead(&st->regiontypes, art); - BKE_spacetype_register(st); } -- cgit v1.2.3