Page MenuHome

tooltip_patch5.diff

Authored By
luke frisken (lfrisken)
Nov 13 2013, 4:21 PM
Size
10 KB
Subscribers
None

tooltip_patch5.diff

Index: release/scripts/startup/bl_ui/space_userpref.py
===================================================================
--- release/scripts/startup/bl_ui/space_userpref.py (revision 45048)
+++ release/scripts/startup/bl_ui/space_userpref.py (working copy)
@@ -627,6 +627,10 @@
ui = theme.user_interface.wcol_menu_back
col.label(text="Menu Back:")
ui_items_general(col, ui)
+
+ ui = theme.user_interface.wcol_tooltip
+ col.label(text="Tooltip:")
+ ui_items_general(col, ui)
ui = theme.user_interface.wcol_tooltip
col.label(text="Tooltip:")
Index: source/blender/makesrna/intern/rna_userdef.c
===================================================================
--- source/blender/makesrna/intern/rna_userdef.c (revision 45048)
+++ source/blender/makesrna/intern/rna_userdef.c (working copy)
@@ -698,7 +698,8 @@
RNA_def_property_flag(prop, PROP_NEVER_NULL);
RNA_def_property_ui_text(prop, "Menu Backdrop Colors", "");
RNA_def_property_update(prop, 0, "rna_userdef_update");
- prop = RNA_def_property(srna, "wcol_tooltip", PROP_POINTER, PROP_NONE);
+
+ prop = RNA_def_property(srna, "wcol_tooltip", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_NEVER_NULL);
RNA_def_property_ui_text(prop, "Tooltip Colors", "");
RNA_def_property_update(prop, 0, "rna_userdef_update");
Index: source/blender/editors/interface/resources.c
===================================================================
--- source/blender/editors/interface/resources.c (revision 45048)
+++ source/blender/editors/interface/resources.c (working copy)
@@ -1745,6 +1745,7 @@
for(btheme= U.themes.first; btheme; btheme= btheme->next) {
if (btheme->tui.wcol_tooltip.inner[3] == 0) {
btheme->tui.wcol_tooltip = btheme->tui.wcol_menu_back;
+ rgba_char_args_set(btheme->tui.wcol_tooltip.text, 255, 255, 255, 255);
}
}
}
Index: source/blender/editors/interface/interface_intern.h
===================================================================
--- source/blender/editors/interface/interface_intern.h (revision 45048)
+++ source/blender/editors/interface/interface_intern.h (working copy)
@@ -332,6 +332,25 @@
rctf safety;
} uiSafetyRct;
+#define MAX_TOOLTIP_LINES 8
+typedef struct uiTooltipData {
+ rcti bbox;
+ uiFontStyle fstyle;
+ char lines[MAX_TOOLTIP_LINES][512];
+ /*line_brightness
+ full brightness = 1 was 0xFFFFFF
+ 3/4 brightness = 2 was 0xDDDDDD
+ 1/2 brightness = 3 was 0x888888
+ 1/4 brightness = 4
+ - alert - = 0 was 0x6666ff
+ using this instead of assigning actual colors because theme
+ colors are contained within interface_widgets rather than interface_regions
+ which is where these values are assigned*/
+ unsigned int line_brightness[MAX_TOOLTIP_LINES];
+ int totline;
+ int toth, spaceh, lineh;
+} uiTooltipData;
+
/* interface.c */
extern void ui_delete_linkline(uiLinkLine *line, uiBut *but);
@@ -466,7 +485,7 @@
void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy, float rad);
void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect);
-void ui_draw_tooltip(uiStyle *UNUSED(style), uiBlock *block, rcti *rect);
+void ui_draw_tooltip(uiStyle *UNUSED(style), uiTooltipData *data);
void ui_draw_search_back(struct uiStyle *style, uiBlock *block, rcti *rect);
int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol);
void ui_draw_link_bezier(rcti *rect);
Index: source/blender/editors/interface/interface_regions.c
===================================================================
--- source/blender/editors/interface/interface_regions.c (revision 45048)
+++ source/blender/editors/interface/interface_regions.c (working copy)
@@ -308,37 +308,10 @@
/************************* Creating Tooltips **********************/
-#define MAX_TOOLTIP_LINES 8
-
-typedef struct uiTooltipData {
- rcti bbox;
- uiFontStyle fstyle;
- char lines[MAX_TOOLTIP_LINES][512];
- unsigned int color[MAX_TOOLTIP_LINES];
- int totline;
- int toth, spaceh, lineh;
-} uiTooltipData;
-
static void ui_tooltip_region_draw_cb(const bContext *UNUSED(C), ARegion *ar)
{
uiTooltipData *data= ar->regiondata;
- rcti bbox= data->bbox;
- int a;
-
- ui_draw_tooltip(UI_GetStyle(), NULL, &data->bbox);
-
- /* draw text */
- uiStyleFontSet(&data->fstyle);
-
- bbox.ymax= bbox.ymax - 0.5f*((bbox.ymax - bbox.ymin) - data->toth);
- bbox.ymin= bbox.ymax - data->lineh;
-
- for(a=0; a<data->totline; a++) {
- cpack(data->color[a]);
- uiStyleFontDraw(&data->fstyle, &bbox, data->lines[a]);
- bbox.ymin -= data->lineh + data->spaceh;
- bbox.ymax -= data->lineh + data->spaceh;
- }
+ ui_draw_tooltip(UI_GetStyle(), data);
}
static void ui_tooltip_region_free_cb(ARegion *ar)
@@ -373,7 +346,8 @@
const char *descr= RNA_property_description(but->rnaprop);
if(descr && descr[0]) {
BLI_strncpy(data->lines[data->totline], descr, sizeof(data->lines[0]));
- data->color[data->totline]= 0xFFFFFF;
+ /*light text*/
+ data->line_brightness[data->totline]= 1;
data->totline++;
}
@@ -388,7 +362,8 @@
if(item[i].identifier[0] && item[i].value == value) {
if(item[i].description && item[i].description[0]) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "%s: %s", item[i].name, item[i].description);
- data->color[data->totline]= 0xDDDDDD;
+ /*dark text*/
+ data->line_brightness[data->totline]= 2;
data->totline++;
}
break;
@@ -403,7 +378,7 @@
if(but->tip && but->tip[0] != '\0') {
BLI_strncpy(data->lines[data->totline], but->tip, sizeof(data->lines[0]));
- data->color[data->totline]= 0xFFFFFF;
+ data->line_brightness[data->totline]= 1;
data->totline++;
}
@@ -415,7 +390,7 @@
buf, sizeof(buf)))
{
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Shortcut: %s"), buf);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
}
@@ -425,7 +400,7 @@
ui_get_but_string(but, buf, sizeof(buf));
if(buf[0]) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Value: %s"), buf);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
}
@@ -437,7 +412,7 @@
if (RNA_property_type(but->rnaprop) == PROP_FLOAT) {
float value= RNA_property_array_check(but->rnaprop) ? RNA_property_float_get_index(&but->rnapoin, but->rnaprop, but->rnaindex) : RNA_property_float_get(&but->rnapoin, but->rnaprop);
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Radians: %f"), value);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
}
@@ -446,7 +421,7 @@
if(ui_but_anim_expression_get(but, buf, sizeof(buf))) {
/* expression */
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Expression: %s"), buf);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
}
@@ -454,7 +429,7 @@
/* rna info */
if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Python: %s.%s"), RNA_struct_identifier(but->rnapoin.type), RNA_property_identifier(but->rnaprop));
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
@@ -462,7 +437,7 @@
ID *id= but->rnapoin.id.data;
if(id->lib && id->lib->name) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Library: %s"), id->lib->name);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
}
@@ -477,7 +452,7 @@
/* operator info */
if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Python: %s"), str);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
@@ -491,7 +466,7 @@
poll_msg= CTX_wm_operator_poll_msg_get(C);
if(poll_msg) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Disabled: %s"), poll_msg);
- data->color[data->totline]= 0x6666ff; /* alert */
+ data->line_brightness[data->totline]= 0; /* alert */
data->totline++;
}
}
@@ -501,7 +476,7 @@
MenuType *mt= uiButGetMenuType(but);
if (mt) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Python: %s"), mt->idname);
- data->color[data->totline]= 0x888888;
+ data->line_brightness[data->totline]= 3;
data->totline++;
}
}
Index: source/blender/editors/interface/interface_widgets.c
===================================================================
--- source/blender/editors/interface/interface_widgets.c (revision 45048)
+++ source/blender/editors/interface/interface_widgets.c (working copy)
@@ -3226,12 +3226,60 @@
}
}
-void ui_draw_tooltip(uiStyle *UNUSED(style), uiBlock *UNUSED(block), rcti *rect)
+
+void ui_draw_tooltip(uiStyle *UNUSED(style), uiTooltipData *data)
{
- uiWidgetType *wt = widget_type(UI_WTYPE_TOOLTIP);
- wt->state(wt, 0);
- /* wt->draw ends up using same function to draw the tooltip as menu_back */
- wt->draw(&wt->wcol, rect, 0, 0);
+ rcti bbox= data->bbox;
+ uiWidgetType *wt= widget_type(UI_WTYPE_TOOLTIP);
+ char alert_colour[4] = {102, 102, 255, 255};
+ char bright_colour[4];
+ char medium_colour[4];
+ char dark_colour[4];
+ int a, i;
+
+ /*calculate bright_colour*/
+ for(i=0;i<4;i++){
+ bright_colour[i] = wt->wcol_theme->text[i];
+ }
+ /*calculate medium colour*/
+ for(i=0;i<4;i++){
+ medium_colour[i] = (int)(((float)bright_colour[i]) * 0.86666);
+ }
+ /*calculate dark_clolour*/
+ for(i=0;i<4;i++){
+ dark_colour[i] = (int)(((float)bright_colour[i]) * 0.53333);
+ }
+
+ /* draw background */
+ wt->state(wt, 0);
+ /*wt->draw ends up using same function to draw the tooltip background as menu_back*/
+ wt->draw(&wt->wcol, &bbox, 0, 0);
+
+ /* draw text */
+ uiStyleFontSet(&data->fstyle);
+
+ bbox.ymax= bbox.ymax - 0.5f*((bbox.ymax - bbox.ymin) - data->toth);
+ bbox.ymin= bbox.ymax - data->lineh;
+
+ for(a=0; a<data->totline; a++) {
+ switch(data->line_brightness[a]){
+ case 0:
+ glColor3ubv((unsigned char*)alert_colour);
+ break;
+ case 1:
+ glColor3ubv((unsigned char*)bright_colour);
+ break;
+ case 2:
+ glColor3ubv((unsigned char*)medium_colour);
+ break;
+ case 3:
+ glColor3ubv((unsigned char*)dark_colour);
+ break;
+ }
+ uiStyleFontDraw(&data->fstyle, &bbox, data->lines[a]);
+ bbox.ymin -= data->lineh + data->spaceh;
+ bbox.ymax -= data->lineh + data->spaceh;
+ }
}
void ui_draw_search_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
8c/78/b37c11c2ad076e1ab8f3c10dbea3

Event Timeline