[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18302] branches/blender2.5/blender/source /blender/editors: Some tweaks to menu drawing

Matt Ebb matt at mke3.net
Sun Jan 4 01:05:40 CET 2009


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. @@




More information about the Bf-blender-cvs mailing list