UI: Style drag-drop indicators as tooltips
Currently, the drop indicator colors are hardcoded to white text on semi-transparent black background.
This patch makes the drop indicator use the tooltip theme settings, as they serve a similar purpose.
{F10530482, size=full}
All built-in themes seem to work well and got improved readability.
Reviewed By: HooglyBoogly
Differential Revision: https://developer.blender.org/D12588
This commit is contained in:
@@ -24,6 +24,8 @@
|
|||||||
#include "DNA_screen_types.h"
|
#include "DNA_screen_types.h"
|
||||||
#include "DNA_space_types.h"
|
#include "DNA_space_types.h"
|
||||||
|
|
||||||
|
#include "BLI_math_color.h"
|
||||||
|
|
||||||
#include "BKE_context.h"
|
#include "BKE_context.h"
|
||||||
#include "BKE_screen.h"
|
#include "BKE_screen.h"
|
||||||
|
|
||||||
@@ -107,8 +109,13 @@ static void eyedropper_draw_cursor_text_ex(const int x, const int y, const char
|
|||||||
{
|
{
|
||||||
const uiFontStyle *fstyle = UI_FSTYLE_WIDGET;
|
const uiFontStyle *fstyle = UI_FSTYLE_WIDGET;
|
||||||
|
|
||||||
const float col_fg[4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
/* Use the theme settings from tooltips. */
|
||||||
const float col_bg[4] = {0.0f, 0.0f, 0.0f, 0.2f};
|
const bTheme *btheme = UI_GetTheme();
|
||||||
|
const uiWidgetColors *wcol = &btheme->tui.wcol_tooltip;
|
||||||
|
|
||||||
|
float col_fg[4], col_bg[4];
|
||||||
|
rgba_uchar_to_float(col_fg, wcol->text);
|
||||||
|
rgba_uchar_to_float(col_bg, wcol->inner);
|
||||||
|
|
||||||
UI_fontstyle_draw_simple_backdrop(fstyle, x, y + U.widget_unit, name, col_fg, col_bg);
|
UI_fontstyle_draw_simple_backdrop(fstyle, x, y + U.widget_unit, name, col_fg, col_bg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -312,11 +312,8 @@ void UI_fontstyle_draw_simple_backdrop(const uiFontStyle *fs,
|
|||||||
const float decent = BLF_descender(fs->uifont_id);
|
const float decent = BLF_descender(fs->uifont_id);
|
||||||
const float margin = height / 4.0f;
|
const float margin = height / 4.0f;
|
||||||
|
|
||||||
/* backdrop */
|
|
||||||
const float color[4] = {col_bg[0], col_bg[1], col_bg[2], 0.5f};
|
|
||||||
|
|
||||||
UI_draw_roundbox_corner_set(UI_CNR_ALL);
|
UI_draw_roundbox_corner_set(UI_CNR_ALL);
|
||||||
UI_draw_roundbox_aa(
|
UI_draw_roundbox_4fv(
|
||||||
&(const rctf){
|
&(const rctf){
|
||||||
.xmin = x - margin,
|
.xmin = x - margin,
|
||||||
.xmax = x + width + margin,
|
.xmax = x + width + margin,
|
||||||
@@ -325,7 +322,7 @@ void UI_fontstyle_draw_simple_backdrop(const uiFontStyle *fs,
|
|||||||
},
|
},
|
||||||
true,
|
true,
|
||||||
margin,
|
margin,
|
||||||
color);
|
col_bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BLF_position(fs->uifont_id, x, y, 0.0f);
|
BLF_position(fs->uifont_id, x, y, 0.0f);
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#include "BLT_translation.h"
|
#include "BLT_translation.h"
|
||||||
|
|
||||||
#include "BLI_blenlib.h"
|
#include "BLI_blenlib.h"
|
||||||
|
#include "BLI_math_color.h"
|
||||||
|
|
||||||
#include "BIF_glutil.h"
|
#include "BIF_glutil.h"
|
||||||
|
|
||||||
@@ -50,6 +51,7 @@
|
|||||||
|
|
||||||
#include "UI_interface.h"
|
#include "UI_interface.h"
|
||||||
#include "UI_interface_icons.h"
|
#include "UI_interface_icons.h"
|
||||||
|
#include "UI_resources.h"
|
||||||
|
|
||||||
#include "RNA_access.h"
|
#include "RNA_access.h"
|
||||||
|
|
||||||
@@ -463,8 +465,14 @@ void WM_drag_free_imported_drag_ID(struct Main *bmain, wmDrag *drag, wmDropBox *
|
|||||||
static void wm_drop_operator_draw(const char *name, int x, int y)
|
static void wm_drop_operator_draw(const char *name, int x, int y)
|
||||||
{
|
{
|
||||||
const uiFontStyle *fstyle = UI_FSTYLE_WIDGET;
|
const uiFontStyle *fstyle = UI_FSTYLE_WIDGET;
|
||||||
const float col_fg[4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
|
||||||
const float col_bg[4] = {0.0f, 0.0f, 0.0f, 0.2f};
|
/* Use the theme settings from tooltips. */
|
||||||
|
const bTheme *btheme = UI_GetTheme();
|
||||||
|
const uiWidgetColors *wcol = &btheme->tui.wcol_tooltip;
|
||||||
|
|
||||||
|
float col_fg[4], col_bg[4];
|
||||||
|
rgba_uchar_to_float(col_fg, wcol->text);
|
||||||
|
rgba_uchar_to_float(col_bg, wcol->inner);
|
||||||
|
|
||||||
UI_fontstyle_draw_simple_backdrop(fstyle, x, y, name, col_fg, col_bg);
|
UI_fontstyle_draw_simple_backdrop(fstyle, x, y, name, col_fg, col_bg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user