diff options
author | Ton Roosendaal <ton@blender.org> | 2003-10-20 19:40:20 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2003-10-20 19:40:20 +0400 |
commit | 7f5d06d638ff24444da942cf91c130d5393818cb (patch) | |
tree | 2b21f227adfb1d7f2004087e60b05c3af230d5ee /source/blender/src/interface_panel.c | |
parent | 628b0025836183436ab5b83120497ebe060f89b7 (diff) |
Another mega commit... loadsof restructure, and a pretty good one! :)
- changed the BIF_DrawString() function. it used to work different for
AA fonts as for default fonts. Now it's identical. Setting color for fonts
can just be done with OpenGL, for both font types.
Removed: BIF_DrawStringRGB()
- added theme color options for Buttons
- recoded DefButton, so it automatically chooses the right color.
- had to remove a 1000 uiBlockSetCol() calls for that reason...
- uiBlockSetCol() still works, to override automatic color
- removed entirely the silly old color system (BIFColorID). All color
calls can now be done with a BIF_ThemeColor() call, including fonts and
buttons and opengl stuff
- all buttons in button header have headercolor by default
- recoded drawing icons, it was a really bad & old loop doing manually
colorshading and blending... which was per pixel a load of code!
Now it uses a single OpenGL call to blend or colorize. Quite faster!
- (as test, for review) icons don't colorize anymore with button color,
but have a different alpha to blend in (when not active)
- recoded the entire interface_draw.c file...:
- drawing buttons is separated in three parts:
1. main drawing function for text and icons
2. free definable callback for button itself
3. free definable callback for slider
- removed a load of redundant code for this!
- coded a minimal theme, and adjusted Matt's buttons to match new
callback system
- adding new drawing themes is piece of cake now
- for coders, default 'themes' to be aware of:
UI_EMBOSS : the themable drawing style
UI_EMBOSSP: the pulldown menu system (apart from color not themable)
UI_EMBOSSN: draw nothing, only text and/or icon
UI_EMBOSSM: minimal theme, still in use for Logic and Constraintsa
this can be set with uiBlockSetEmboss(block) or in the uiNewBlock() call.
TODO: make UI API call for button alignment
(plus removed another series of warnings from code...)
Plus: fixed bug in Matts commit: he used a 'short' button for an 'int'
Diffstat (limited to 'source/blender/src/interface_panel.c')
-rw-r--r-- | source/blender/src/interface_panel.c | 60 |
1 files changed, 5 insertions, 55 deletions
diff --git a/source/blender/src/interface_panel.c b/source/blender/src/interface_panel.c index 09f30f66944..0ae12e3ab86 100644 --- a/source/blender/src/interface_panel.c +++ b/source/blender/src/interface_panel.c @@ -97,56 +97,6 @@ static void stow_unstow(uiBlock *block); /* --------- generic helper drawng calls ---------------- */ -/* supposes you draw the actual box atop of this. */ -void uiSoftShadow(float minx, float miny, float maxx, float maxy, float rad, int alpha) -{ - - glShadeModel(GL_SMOOTH); - glEnable(GL_BLEND); - glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); - - /* quads start left-top, clockwise */ - - /* left */ - glBegin(GL_POLYGON); - glColor4ub(0, 0, 0, 0); - glVertex2f( minx-rad, maxy-rad); - glColor4ub(0, 0, 0, alpha); - glVertex2f( minx+rad, maxy-rad); - glColor4ub(0, 0, 0, alpha); - glVertex2f( minx+rad, miny+rad); - glColor4ub(0, 0, 0, 0); - glVertex2f( minx-rad, miny-rad); - glEnd(); - - /* bottom */ - glBegin(GL_POLYGON); - glColor4ub(0, 0, 0, alpha); - glVertex2f( minx+rad, miny+rad); - glColor4ub(0, 0, 0, alpha); - glVertex2f( maxx-rad, miny+rad); - glColor4ub(0, 0, 0, 0); - glVertex2f( maxx+rad, miny-rad); - glColor4ub(0, 0, 0, 0); - glVertex2f( minx-rad, miny-rad); - glEnd(); - - /* right */ - glBegin(GL_POLYGON); - glColor4ub(0, 0, 0, alpha); - glVertex2f( maxx-rad, maxy-rad); - glColor4ub(0, 0, 0, 0); - glVertex2f( maxx+rad, maxy-rad); - glColor4ub(0, 0, 0, 0); - glVertex2f( maxx+rad, miny-rad); - glColor4ub(0, 0, 0, alpha); - glVertex2f( maxx-rad, miny+rad); - glEnd(); - - glDisable(GL_BLEND); - glShadeModel(GL_FLAT); -} - #define UI_RB_ALPHA 16 static int roundboxtype= 15; @@ -764,7 +714,7 @@ static void ui_draw_panel_header(uiBlock *block) BIF_ThemeColor(TH_TEXT_HI); glRasterPos2f(4+block->minx+pnl_icons, block->maxy+5); - BIF_DrawString(block->curfont, block->panel->panelname, (U.transopts & TR_BUTTONS), 1); + BIF_DrawString(block->curfont, block->panel->panelname, (U.transopts & TR_BUTTONS)); return; } @@ -782,7 +732,7 @@ static void ui_draw_panel_header(uiBlock *block) BIF_ThemeColor(TH_TEXT); glRasterPos2f(16+pnl_icons+a*width, panel->sizey+4); str= ui_block_cut_str(block, pa->panelname, (short)(width-10)); - BIF_DrawString(block->curfont, str, (U.transopts & TR_BUTTONS), 0); + BIF_DrawString(block->curfont, str, (U.transopts & TR_BUTTONS)); a++; } @@ -795,7 +745,7 @@ static void ui_draw_panel_header(uiBlock *block) BIF_ThemeColor(TH_TEXT_HI); glRasterPos2f(16+pnl_icons+a*width, panel->sizey+4); str= ui_block_cut_str(block, pa->panelname, (short)(width-10)); - BIF_DrawString(block->curfont, str, (U.transopts & TR_BUTTONS), 1); + BIF_DrawString(block->curfont, str, (U.transopts & TR_BUTTONS)); a++; } @@ -833,7 +783,7 @@ void ui_draw_panel(uiBlock *block) if(panel->control & UI_PNL_CLOSE) ofsx+= PNL_ICON; BIF_ThemeColor(TH_TEXT_HI); glRasterPos2f(4+block->minx+ofsx, block->maxy+5); - BIF_DrawString(block->curfont, panel->panelname, (U.transopts & TR_BUTTONS), 1); + BIF_DrawString(block->curfont, panel->panelname, (U.transopts & TR_BUTTONS)); // border if(panel->flag & PNL_SELECT) { @@ -863,7 +813,7 @@ void ui_draw_panel(uiBlock *block) str[0]= panel->panelname[a]; if( isupper(str[0]) ) { glRasterPos2f(block->minx+5, block->maxy-ofs); - BIF_DrawString(block->curfont, str, 0, 1); + BIF_DrawString(block->curfont, str, 0); ofs+= 15; } } |