From 8f620ea5f0881eaf3a88516030037371aa397443 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 20 May 2009 14:32:15 +0000 Subject: 2.5 - Made Normal (Sphere) button draw with nice AA (check in node editor) - Bugfix in alignment code, collumns were not drawing OK - Picker buttons draw swatches again, and made them work. --- source/blender/editors/interface/interface.c | 6 ++++++ source/blender/editors/interface/interface_draw.c | 15 ++++++++++++--- source/blender/editors/interface/interface_handlers.c | 6 ++++-- source/blender/editors/interface/interface_regions.c | 11 +++-------- source/blender/editors/space_node/node_header.c | 8 ++++---- 5 files changed, 29 insertions(+), 17 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 2bcc1a03923..8184e2e1fa9 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -612,6 +612,7 @@ static void ui_but_to_pixelrect(rcti *rect, const ARegion *ar, uiBlock *block, u rect->xmax= floor(getsizex*(0.5+ 0.5*(gx*block->winmat[0][0]+ gy*block->winmat[1][0]+ block->winmat[3][0]))); rect->ymax= floor(getsizey*(0.5+ 0.5*(gx*block->winmat[0][1]+ gy*block->winmat[1][1]+ block->winmat[3][1]))); + } /* uses local copy of style, to scale things down, and allow widgets to change stuff */ @@ -2041,6 +2042,7 @@ static void ui_block_do_align_but(uiBlock *block, uiBut *first, int nr) else if(buts_are_horiz(but, next)) { /* check if this is already second row */ if( prev && buts_are_horiz(prev, but)==0) { + flag &= ~UI_BUT_ALIGN_LEFT; flag |= UI_BUT_ALIGN_TOP; /* exception case: bottom row */ if(rows>0) { @@ -2059,6 +2061,10 @@ static void ui_block_do_align_but(uiBlock *block, uiBut *first, int nr) flag |= UI_BUT_ALIGN_TOP; } else { /* next button switches to new row */ + + if(prev && buts_are_horiz(prev, but)) + flag |= UI_BUT_ALIGN_LEFT; + if( (flag & UI_BUT_ALIGN_TOP)==0) { /* stil top row */ if(prev) flag= UI_BUT_ALIGN_DOWN|UI_BUT_ALIGN_LEFT; diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index 8be2084ab01..955abe1aecd 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -819,7 +819,7 @@ void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect) glTranslatef(rect->xmin + 0.5f*(rect->xmax-rect->xmin), rect->ymin+ 0.5f*(rect->ymax-rect->ymin), 0.0f); size= (rect->xmax-rect->xmin)/200.f; glScalef(size, size, size); - + if(displist==0) { GLUquadricObj *qobj; @@ -838,13 +838,22 @@ void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect) else glCallList(displist); /* restore */ - glPopMatrix(); glDisable(GL_LIGHTING); glDisable(GL_CULL_FACE); glMaterialfv(GL_FRONT, GL_DIFFUSE, diff); - glDisable(GL_LIGHT7); + /* AA circle */ + glEnable(GL_BLEND); + glEnable(GL_LINE_SMOOTH ); + glColor3ubv(wcol->inner); + glutil_draw_lined_arc(0.0f, M_PI*2.0, 100.0f, 32); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH ); + + /* matrix after circle */ + glPopMatrix(); + /* enable blender light */ for(a=0; a<8; a++) { if(old[a]) diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index ed126ed870d..65752423dce 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -311,8 +311,10 @@ static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data) static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data) { - if(but->type == COL) - ui_set_but_vectorf(but, data->vec); + if(but->type == COL) { + if(but->a1 != -1) // this is not a color picker (weak!) + ui_set_but_vectorf(but, data->vec); + } else if(ELEM3(but->type, MENU, ICONROW, ICONTEXTROW)) ui_set_but_val(but, data->value); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 57644e5decc..8474ee17ee0 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1054,18 +1054,17 @@ static void ui_update_block_buts_hex(uiBlock *block, char *hexcol) /* callback to copy from/to palette */ static void do_palette_cb(bContext *C, void *bt1, void *col1) { + wmWindow *win= CTX_wm_window(C); uiBut *but1= (uiBut *)bt1; float *col= (float *)col1; float *fp, hsv[3]; fp= (float *)but1->poin; - /* XXX 2.50 bad access, how to solve? - * - if( (get_qual() & LR_CTRLKEY) ) { + if(win->eventstate->ctrl) { VECCOPY(fp, col); } - else*/ { + else { VECCOPY(col, fp); } @@ -1205,8 +1204,6 @@ void uiBlockPickerButtons(uiBlock *block, float *col, float *hsv, float *old, ch // palette - uiBlockSetEmboss(block, UI_EMBOSSP); - bt=uiDefButF(block, COL, retval, "", FPICK+DPICK, 0, BPICK,BPICK, old, 0.0, 0.0, -1, 0, "Old color, click to restore"); uiButSetFunc(bt, do_palette_cb, bt, col); uiDefButF(block, COL, retval, "", FPICK+DPICK, BPICK+DPICK, BPICK,60-BPICK-DPICK, col, 0.0, 0.0, -1, 0, "Active color"); @@ -1221,8 +1218,6 @@ void uiBlockPickerButtons(uiBlock *block, float *col, float *hsv, float *old, ch } uiBlockEndAlign(block); - uiBlockSetEmboss(block, UI_EMBOSS); - // buttons rgb_to_hsv(col[0], col[1], col[2], hsv, hsv+1, hsv+2); sprintf(hexcol, "%02X%02X%02X", (unsigned int)(col[0]*255.0), (unsigned int)(col[1]*255.0), (unsigned int)(col[2]*255.0)); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index 002e4eea681..8c48d4b54e1 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -702,22 +702,22 @@ void node_header_buttons(const bContext *C, ARegion *ar) xmax= GetButStringLength("View"); uiDefPulldownBut(block, node_viewmenu, NULL, - "View", xco, yco-2, xmax-3, 24, ""); + "View", xco, yco, xmax-3, 20, ""); xco+= xmax; xmax= GetButStringLength("Select"); uiDefPulldownBut(block, node_selectmenu, NULL, - "Select", xco, yco-2, xmax-3, 24, ""); + "Select", xco, yco, xmax-3, 20, ""); xco+= xmax; xmax= GetButStringLength("Add"); uiDefPulldownBut(block, node_addmenu, NULL, - "Add", xco, yco-2, xmax-3, 24, ""); + "Add", xco, yco, xmax-3, 20, ""); xco+= xmax; xmax= GetButStringLength("Node"); uiDefPulldownBut(block, node_nodemenu, NULL, - "Node", xco, yco-2, xmax-3, 24, ""); + "Node", xco, yco, xmax-3, 20, ""); xco+= xmax; } -- cgit v1.2.3