Another mega commit... loadsof restructure, and a pretty good one! :)
authorTon Roosendaal <ton@blender.org>
Mon, 20 Oct 2003 15:40:20 +0000 (15:40 +0000)
committerTon Roosendaal <ton@blender.org>
Mon, 20 Oct 2003 15:40:20 +0000 (15:40 +0000)
commit7f5d06d638ff24444da942cf91c130d5393818cb
tree2b21f227adfb1d7f2004087e60b05c3af230d5ee
parent628b0025836183436ab5b83120497ebe060f89b7
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'
44 files changed:
source/blender/ftfont/FTF_Api.h
source/blender/ftfont/intern/FTF_Api.cpp
source/blender/ftfont/intern/FTF_TTFont.cpp
source/blender/ftfont/intern/FTF_TTFont.h
source/blender/include/BIF_interface.h
source/blender/include/BIF_language.h
source/blender/include/BIF_resources.h
source/blender/include/interface.h
source/blender/makesdna/DNA_userdef_types.h
source/blender/src/buttons_editing.c
source/blender/src/buttons_logic.c
source/blender/src/buttons_object.c
source/blender/src/buttons_scene.c
source/blender/src/buttons_script.c
source/blender/src/buttons_shading.c
source/blender/src/drawaction.c
source/blender/src/drawimasel.c
source/blender/src/drawipo.c
source/blender/src/drawobject.c
source/blender/src/drawview.c
source/blender/src/editscreen.c
source/blender/src/filesel.c
source/blender/src/header_action.c
source/blender/src/header_buttonswin.c
source/blender/src/header_filesel.c
source/blender/src/header_image.c
source/blender/src/header_imasel.c
source/blender/src/header_info.c
source/blender/src/header_ipo.c
source/blender/src/header_nla.c
source/blender/src/header_oops.c
source/blender/src/header_seq.c
source/blender/src/header_sound.c
source/blender/src/header_text.c
source/blender/src/header_view3d.c
source/blender/src/headerbuttons.c
source/blender/src/interface.c
source/blender/src/interface_draw.c [new file with mode: 0644]
source/blender/src/interface_panel.c
source/blender/src/language.c
source/blender/src/resources.c
source/blender/src/space.c
source/blender/src/toolbox.c
source/blender/src/view.c