Revision: 18302 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18302 Author: broken Date: 2009-01-04 01:05:40 +0100 (Sun, 04 Jan 2009)
Log Message: ----------- Some tweaks to menu drawing Modified Paths: -------------- branches/blender2.5/blender/source/blender/editors/include/UI_interface.h branches/blender2.5/blender/source/blender/editors/interface/interface.c branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c branches/blender2.5/blender/source/blender/editors/interface/resources.c Modified: branches/blender2.5/blender/source/blender/editors/include/UI_interface.h =================================================================== --- branches/blender2.5/blender/source/blender/editors/include/UI_interface.h 2009-01-03 23:14:33 UTC (rev 18301) +++ branches/blender2.5/blender/source/blender/editors/include/UI_interface.h 2009-01-04 00:05:40 UTC (rev 18302) @@ -180,7 +180,7 @@ void uiRoundBox(float minx, float miny, float maxx, float maxy, float rad); void uiSetRoundBox(int type); void uiRoundRect(float minx, float miny, float maxx, float maxy, float rad); -void uiDrawMenuBox(float minx, float miny, float maxx, float maxy, short flag); +void uiDrawMenuBox(float minx, float miny, float maxx, float maxy, short flag, short direction); void uiDrawBoxShadow(unsigned char alpha, float minx, float miny, float maxx, float maxy); /* Popup Menu's */ Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-01-03 23:14:33 UTC (rev 18301) +++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-01-04 00:05:40 UTC (rev 18302) @@ -511,7 +511,7 @@ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); if(block->flag & UI_BLOCK_LOOP) - uiDrawMenuBox(block->minx, block->miny, block->maxx, block->maxy, block->flag); + uiDrawMenuBox(block->minx, block->miny, block->maxx, block->maxy, block->flag, block->direction); else if(block->panel) ui_draw_panel(CTX_wm_region(C), block); Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c 2009-01-03 23:14:33 UTC (rev 18301) +++ branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c 2009-01-04 00:05:40 UTC (rev 18302) @@ -2090,9 +2090,9 @@ glBegin(GL_POLYGON); glColor4ub(0, 0, 0, alpha); glVertex2f(maxx, miny); - glVertex2f(maxx, maxy-shadsize); + glVertex2f(maxx, maxy-0.3*shadsize); glColor4ub(0, 0, 0, 0); - glVertex2f(maxx+shadsize, maxy-shadsize-shadsize); + glVertex2f(maxx+shadsize, maxy-0.75*shadsize); glVertex2f(maxx+shadsize, miny); glEnd(); @@ -2109,11 +2109,11 @@ /* bottom quad */ glBegin(GL_POLYGON); glColor4ub(0, 0, 0, alpha); - glVertex2f(minx+shadsize, miny); + glVertex2f(minx+0.3*shadsize, miny); glVertex2f(maxx, miny); glColor4ub(0, 0, 0, 0); glVertex2f(maxx, miny-shadsize); - glVertex2f(minx+shadsize+shadsize, miny-shadsize); + glVertex2f(minx+0.5*shadsize, miny-shadsize); glEnd(); glDisable(GL_BLEND); @@ -2123,33 +2123,48 @@ void uiDrawBoxShadow(unsigned char alpha, float minx, float miny, float maxx, float maxy) { /* accumulated outline boxes to make shade not linear, is more pleasant */ - ui_shadowbox(minx, miny, maxx, maxy, 6.0, (30*alpha)>>8); - ui_shadowbox(minx, miny, maxx, maxy, 4.0, (70*alpha)>>8); - ui_shadowbox(minx, miny, maxx, maxy, 2.0, (100*alpha)>>8); + ui_shadowbox(minx, miny, maxx, maxy, 11.0, (20*alpha)>>8); + ui_shadowbox(minx, miny, maxx, maxy, 7.0, (40*alpha)>>8); + ui_shadowbox(minx, miny, maxx, maxy, 5.0, (80*alpha)>>8); } // background for pulldowns, pullups, and other drawing temporal menus.... // has to be made themable still (now only color) -void uiDrawMenuBox(float minx, float miny, float maxx, float maxy, short flag) +void uiDrawMenuBox(float minx, float miny, float maxx, float maxy, short flag, short direction) { char col[4]; + int rounded = ELEM(UI_GetThemeValue(TH_BUT_DRAWTYPE), TH_ROUNDED, TH_ROUNDSHADED); + UI_GetThemeColor4ubv(TH_MENU_BACK, col); + if (rounded) { + if (direction == UI_DOWN) { + uiSetRoundBox(12); + miny -= 4.0; + } else if (direction == UI_TOP) { + uiSetRoundBox(3); + maxy += 4.0; + } else { + uiSetRoundBox(0); + } + } + if( (flag & UI_BLOCK_NOSHADOW)==0) { /* accumulated outline boxes to make shade not linear, is more pleasant */ - ui_shadowbox(minx, miny, maxx, maxy, 6.0, (30*col[3])>>8); - ui_shadowbox(minx, miny, maxx, maxy, 4.0, (70*col[3])>>8); - ui_shadowbox(minx, miny, maxx, maxy, 2.0, (100*col[3])>>8); - - glEnable(GL_BLEND); - glColor4ubv((GLubyte *)col); - glRectf(minx-1, miny, minx, maxy); // 1 pixel on left, to distinguish sublevel menus + ui_shadowbox(minx, miny, maxx, maxy, 11.0, (20*col[3])>>8); + ui_shadowbox(minx, miny, maxx, maxy, 7.0, (40*col[3])>>8); + ui_shadowbox(minx, miny, maxx, maxy, 5.0, (80*col[3])>>8); } glEnable(GL_BLEND); glColor4ubv((GLubyte *)col); - glRectf(minx, miny, maxx, maxy); + + if (rounded) { + gl_round_box(GL_POLYGON, minx, miny, maxx, maxy, 4.0); + } else { + glRectf(minx, miny, maxx, maxy); + } glDisable(GL_BLEND); } @@ -3082,6 +3097,14 @@ fdrawbox(but->x1, but->y1, but->x2, but->y2); } +static void ui_draw_sepr(uiBut *but) +{ + float y = but->y1 + (but->y2 - but->y1)*0.5; + + UI_ThemeColorBlend(TH_MENU_TEXT, TH_MENU_BACK, 0.85); + fdrawline(but->x1, y, but->x2, y); +} + static void ui_draw_roundbox(uiBut *but) { glEnable(GL_BLEND); @@ -3242,7 +3265,7 @@ break; case SEPR: - // only background + ui_draw_sepr(but); break; case COL: Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c 2009-01-03 23:14:33 UTC (rev 18301) +++ branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c 2009-01-04 00:05:40 UTC (rev 18302) @@ -59,11 +59,13 @@ #include "interface_intern.h" #define MENU_BUTTON_HEIGHT 20 +#define MENU_SEPR_HEIGHT 6 #define B_NOP -1 #define MENU_SHADOW_LEFT -1 #define MENU_SHADOW_BOTTOM -10 #define MENU_SHADOW_RIGHT 10 #define MENU_SHADOW_TOP 1 +#define MENU_ROUNDED_TOP 5 /*********************** Menu Data Parsing ********************* */ @@ -670,15 +672,16 @@ saferct= MEM_callocN(sizeof(uiSafetyRct), "uiSafetyRct"); saferct->safety= block->safety; BLI_addhead(&block->saferct, saferct); + block->direction= UI_TOP; } /* the block and buttons were positioned in window space as in 2.4x, now * these menu blocks are regions so we bring it back to region space. - * additionally we add some padding for the menu shadow */ + * additionally we add some padding for the menu shadow or rounded menus */ ar->winrct.xmin= block->minx + MENU_SHADOW_LEFT; ar->winrct.xmax= block->maxx + MENU_SHADOW_RIGHT; ar->winrct.ymin= block->miny + MENU_SHADOW_BOTTOM; - ar->winrct.ymax= block->maxy + MENU_SHADOW_TOP; + ar->winrct.ymax= block->maxy + MENU_SHADOW_TOP + MENU_ROUNDED_TOP; block->minx -= ar->winrct.xmin; block->maxx -= ar->winrct.xmin; @@ -1429,10 +1432,12 @@ bt->flag= UI_TEXT_LEFT; } uiSetCurFont(block, UI_HELV); + + //uiDefBut(block, SEPR, 0, "", startx, (short)(starty+height)-MENU_SEPR_HEIGHT, width, MENU_SEPR_HEIGHT, NULL, 0.0, 0.0, 0, 0, ""); } x1= startx + width*((int)a/rows); - y1= starty + height - MENU_BUTTON_HEIGHT; + y1= starty + height - MENU_BUTTON_HEIGHT; // - MENU_SEPR_HEIGHT; for(a=0; a<md->nitems; a++) { char *name= md->items[a].str; Modified: branches/blender2.5/blender/source/blender/editors/interface/resources.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/resources.c 2009-01-03 23:14:33 UTC (rev 18301) +++ branches/blender2.5/blender/source/blender/editors/interface/resources.c 2009-01-04 00:05:40 UTC (rev 18302) @@ -378,73 +378,49 @@ SETCOL(btheme->tui.text, 0,0,0, 255); SETCOL(btheme->tui.text_hi, 255, 255, 255, 255); - SETCOL(btheme->tui.menu_back, 0xD2,0xD2,0xD2, 255); - SETCOL(btheme->tui.menu_item, 0xDA,0xDA,0xDA, 255); + SETCOL(btheme->tui.menu_back, 255, 255, 255, 235); + SETCOL(btheme->tui.menu_item, 255, 255, 255, 20); SETCOL(btheme->tui.menu_hilite, 0x7F,0x7F,0x7F, 255); SETCOL(btheme->tui.menu_text, 0, 0, 0, 255); SETCOL(btheme->tui.menu_text_hi, 255, 255, 255, 255); + btheme->tui.but_drawtype= TH_ROUNDSHADED; - BLI_strncpy(btheme->tui.iconfile, "", sizeof(btheme->tui.iconfile)); - + /* space view3d */ -SETCOL(btheme->tui.outline, 0xA0,0xA0,0xA0, 255); - SETCOL(btheme->tui.neutral, 180, 180, 180, 255); - SETCOL(btheme->tui.action, 180, 180, 180, 255); - SETCOL(btheme->tui.setting, 180, 180, 180, 255); - SETCOL(btheme->tui.setting1, 180, 180, 180, 255); - SETCOL(btheme->tui.setting2, 180, 180, 180, 255); - SETCOL(btheme->tui.num, 143, 143, 143, 255); - SETCOL(btheme->tui.textfield, 143, 142, 143, 255); - SETCOL(btheme->tui.textfield_hi,255, 151, 26, 255); - SETCOL(btheme->tui.popup, 174, 174, 174, 255); + SETCOL(btheme->tv3d.back, 90, 90, 90, 255); + SETCOL(btheme->tv3d.text, 0, 0, 0, 255); + SETCOL(btheme->tv3d.text_hi, 255, 255, 255, 255); + SETCOL(btheme->tv3d.header, 195, 195, 195, 255); + SETCOL(btheme->tv3d.panel, 165, 165, 165, 127); - SETCOL(btheme->tui.text, 0,0,0, 255); - SETCOL(btheme->tui.text_hi, 255, 255, 255, 255); + SETCOL(btheme->tv3d.shade1, 160, 160, 160, 100); + SETCOL(btheme->tv3d.shade2, 0x7f, 0x70, 0x70, 100); - SETCOL(btheme->tui.menu_back, 0xD2,0xD2,0xD2, 255); - SETCOL(btheme->tui.menu_item, 0xDA,0xDA,0xDA, 255); - SETCOL(btheme->tui.menu_hilite, 0x7F,0x7F,0x7F, 255); - SETCOL(btheme->tui.menu_text, 0, 0, 0, 255); - SETCOL(btheme->tui.menu_text_hi, 255, 255, 255, 255); - btheme->tui.but_drawtype= TH_ROUNDSHADED; + SETCOL(btheme->tv3d.grid, 74, 74, 74 , 255); + SETCOL(btheme->tv3d.wire, 0x0, 0x0, 0x0, 255); + SETCOL(btheme->tv3d.lamp, 0, 0, 0, 40); + SETCOL(btheme->tv3d.select, 241, 88, 0, 255); + SETCOL(btheme->tv3d.active, 255, 140, 25, 255); + SETCOL(btheme->tv3d.group, 16, 64, 16, 255); + SETCOL(btheme->tv3d.group_active, 85, 187, 85, 255); + SETCOL(btheme->tv3d.transform, 0xff, 0xff, 0xff, 255); + SETCOL(btheme->tv3d.vertex, 0, 0, 0, 255); + SETCOL(btheme->tv3d.vertex_select, 255, 133, 0, 255); + btheme->tv3d.vertex_size= 3; + SETCOL(btheme->tv3d.edge, 0x0, 0x0, 0x0, 255); @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs