[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49722] branches/soc-2012-bratwurst/source /blender/editors: Functions to allow overriding of the color of a button.
Jorge Rodriguez
bs.vino at gmail.com
Thu Aug 9 05:59:32 CEST 2012
Revision: 49722
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49722
Author: vino
Date: 2012-08-09 03:59:28 +0000 (Thu, 09 Aug 2012)
Log Message:
-----------
Functions to allow overriding of the color of a button. Use these functions to make the white and black color picker buttons white and black.
Modified Paths:
--------------
branches/soc-2012-bratwurst/source/blender/editors/include/UI_interface.h
branches/soc-2012-bratwurst/source/blender/editors/interface/interface.c
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_intern.h
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_widgets.c
Modified: branches/soc-2012-bratwurst/source/blender/editors/include/UI_interface.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/include/UI_interface.h 2012-08-09 03:24:58 UTC (rev 49721)
+++ branches/soc-2012-bratwurst/source/blender/editors/include/UI_interface.h 2012-08-09 03:59:28 UTC (rev 49722)
@@ -626,6 +626,8 @@
void uiBlockSetDrawExtraFunc(uiBlock *block, void (*func)(const struct bContext *C, void *, void *, void *, struct rcti *rect), void *arg1, void *arg2);
+void uiButSetColorOverride(uiBut *but, int r, int g, int b);
+
void uiButSetFocusOnEnter(struct wmWindow *win, uiBut *but);
/* Autocomplete
Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface.c 2012-08-09 03:24:58 UTC (rev 49721)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface.c 2012-08-09 03:59:28 UTC (rev 49722)
@@ -2031,6 +2031,9 @@
IMB_freeImBuf((struct ImBuf *)but->poin);
}
+ if (but->color_override)
+ MEM_freeN(but->color_override);
+
MEM_freeN(but);
}
@@ -3533,6 +3536,14 @@
but->autofunc_arg = arg;
}
+void uiButSetColorOverride(uiBut *but, int r, int g, int b)
+{
+ but->color_override = MEM_callocN(sizeof(uiWidgetColors), "button color override");
+ but->color_override->inner[0] = r;
+ but->color_override->inner[1] = g;
+ but->color_override->inner[2] = b;
+}
+
uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str, int x1, int y1, short x2, short y2, void *idpp, const char *tip)
{
uiBut *but = ui_def_but(block, IDPOIN, retval, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip);
Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface_intern.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface_intern.h 2012-08-09 03:24:58 UTC (rev 49721)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface_intern.h 2012-08-09 03:59:28 UTC (rev 49722)
@@ -157,7 +157,9 @@
char *str;
char strdata[UI_MAX_NAME_STR];
char drawstr[UI_MAX_DRAW_STR];
-
+
+ uiWidgetColors* color_override;
+
float x1, y1, x2, y2;
char *poin;
Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c 2012-08-09 03:24:58 UTC (rev 49721)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c 2012-08-09 03:59:28 UTC (rev 49722)
@@ -2264,10 +2264,12 @@
bt = uiDefIconButO(block, BUT, "UI_OT_eyedropper", WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, butwidth + 10, -60, UI_UNIT_X, UI_UNIT_Y, NULL);
uiButSetFunc(bt, close_popup_cb, bt, NULL);
- bt = uiDefButR_prop(block, BUT, 0, "W", butwidth + 10, -80, UI_UNIT_X, UI_UNIT_Y, ptr, prop, 0, 0.0, 0.0, 0, 0, TIP_("Set to white"));
+ bt = uiDefButR_prop(block, BUT, 0, "", butwidth + 10, -80, UI_UNIT_X, UI_UNIT_Y, ptr, prop, 0, 0.0, 0.0, 0, 0, TIP_("Set to white"));
uiButSetFunc(bt, do_white_cb, bt, NULL);
- bt = uiDefButR_prop(block, BUT, 0, "B", butwidth + 10, -100, UI_UNIT_X, UI_UNIT_Y, ptr, prop, 0, 0.0, 0.0, 0, 0, TIP_("Set to black"));
+ uiButSetColorOverride(bt, 255, 255, 255);
+ bt = uiDefButR_prop(block, BUT, 0, "", butwidth + 10, -100, UI_UNIT_X, UI_UNIT_Y, ptr, prop, 0, 0.0, 0.0, 0, 0, TIP_("Set to black"));
uiButSetFunc(bt, do_black_cb, bt, NULL);
+ uiButSetColorOverride(bt, 0, 0, 0);
/* RGB values */
uiBlockBeginAlign(block);
Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface_widgets.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface_widgets.c 2012-08-09 03:24:58 UTC (rev 49721)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface_widgets.c 2012-08-09 03:59:28 UTC (rev 49722)
@@ -3242,6 +3242,14 @@
if (but->editstr) state |= UI_TEXTINPUT;
wt->state(wt, state);
+
+ if (but->color_override)
+ {
+ wt->wcol.inner[0] = but->color_override->inner[0];
+ wt->wcol.inner[1] = but->color_override->inner[1];
+ wt->wcol.inner[2] = but->color_override->inner[2];
+ }
+
if (wt->custom)
wt->custom(but, &wt->wcol, rect, state, roundboxalign);
else if (wt->draw)
More information about the Bf-blender-cvs
mailing list