[Bf-blender-cvs] [64acc828368] temp-compositor-cryptomatte-picker: Code cleanup use common function for drawing text near cursor.

Jeroen Bakker noreply at git.blender.org
Tue Mar 16 08:41:06 CET 2021


Commit: 64acc828368331891086edff3d4c88b91d869c55
Author: Jeroen Bakker
Date:   Tue Mar 16 08:40:35 2021 +0100
Branches: temp-compositor-cryptomatte-picker
https://developer.blender.org/rB64acc828368331891086edff3d4c88b91d869c55

Code cleanup use common function for drawing text near cursor.

===================================================================

M	source/blender/editors/interface/interface_eyedropper.c
M	source/blender/editors/interface/interface_eyedropper_color.c
M	source/blender/editors/interface/interface_eyedropper_datablock.c
M	source/blender/editors/interface/interface_eyedropper_depth.c
M	source/blender/editors/interface/interface_eyedropper_intern.h

===================================================================

diff --git a/source/blender/editors/interface/interface_eyedropper.c b/source/blender/editors/interface/interface_eyedropper.c
index de39484bc1e..fb8d32b3b84 100644
--- a/source/blender/editors/interface/interface_eyedropper.c
+++ b/source/blender/editors/interface/interface_eyedropper.c
@@ -103,26 +103,41 @@ wmKeyMap *eyedropper_colorband_modal_keymap(wmKeyConfig *keyconf)
  */
 /** \name Generic Shared Functions
  * \{ */
-
-void eyedropper_draw_cursor_text(const struct bContext *C, const ARegion *region, const char *name)
+static void eyedropper_draw_cursor_text_ex(const int x, const int y, const char *name)
 {
   const uiFontStyle *fstyle = UI_FSTYLE_WIDGET;
-  wmWindow *win = CTX_wm_window(C);
-  int x = win->eventstate->x;
-  int y = win->eventstate->y;
+
   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};
 
-  if ((name[0] == '\0') || (BLI_rcti_isect_pt(&region->winrct, x, y) == false)) {
+  UI_fontstyle_draw_simple_backdrop(fstyle, x, y + U.widget_unit, name, col_fg, col_bg);
+}
+
+void eyedropper_draw_cursor_text_window(const struct wmWindow *window, const char *name)
+{
+  if (name[0] == '\0') {
     return;
   }
 
-  x = x - region->winrct.xmin;
-  y = y - region->winrct.ymin;
+  const int x = window->eventstate->x;
+  const int y = window->eventstate->y;
 
-  y += U.widget_unit;
+  eyedropper_draw_cursor_text_ex(x, y, name);
+}
+
+void eyedropper_draw_cursor_text_region(const struct bContext *C,
+                                        const ARegion *region,
+                                        const char *name)
+{
+  wmWindow *win = CTX_wm_window(C);
+  const int x = win->eventstate->x - region->winrct.xmin;
+  const int y = win->eventstate->y - region->winrct.ymin;
+
+  if ((name[0] == '\0') || (BLI_rcti_isect_pt(&region->winrct, x, y) == false)) {
+    return;
+  }
 
-  UI_fontstyle_draw_simple_backdrop(fstyle, x, y, name, col_fg, col_bg);
+  eyedropper_draw_cursor_text_ex(x, y, name);
 }
 
 /**
diff --git a/source/blender/editors/interface/interface_eyedropper_color.c b/source/blender/editors/interface/interface_eyedropper_color.c
index a8947266aad..4ae6f66281f 100644
--- a/source/blender/editors/interface/interface_eyedropper_color.c
+++ b/source/blender/editors/interface/interface_eyedropper_color.c
@@ -92,18 +92,7 @@ typedef struct Eyedropper {
 static void eyedropper_draw_cb(const wmWindow *window, void *arg)
 {
   Eyedropper *eye = arg;
-  if (eye->sample_text[0] == '\0') {
-    return;
-  }
-
-  const uiFontStyle *fstyle = UI_FSTYLE_WIDGET;
-  int x = window->eventstate->x;
-  int y = window->eventstate->y;
-  y += U.widget_unit;
-  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};
-
-  UI_fontstyle_draw_simple_backdrop(fstyle, x, y, eye->sample_text, col_fg, col_bg);
+  eyedropper_draw_cursor_text_window(window, eye->sample_text);
 }
 
 static bool eyedropper_init(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/interface/interface_eyedropper_datablock.c b/source/blender/editors/interface/interface_eyedropper_datablock.c
index 6a12f550d7c..8c605598cbc 100644
--- a/source/blender/editors/interface/interface_eyedropper_datablock.c
+++ b/source/blender/editors/interface/interface_eyedropper_datablock.c
@@ -77,7 +77,7 @@ typedef struct DataDropper {
 static void datadropper_draw_cb(const struct bContext *C, ARegion *region, void *arg)
 {
   DataDropper *ddr = arg;
-  eyedropper_draw_cursor_text(C, region, ddr->name);
+  eyedropper_draw_cursor_text_region(C, region, ddr->name);
 }
 
 static int datadropper_init(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/interface/interface_eyedropper_depth.c b/source/blender/editors/interface/interface_eyedropper_depth.c
index a4adbef0b94..a64fad8c333 100644
--- a/source/blender/editors/interface/interface_eyedropper_depth.c
+++ b/source/blender/editors/interface/interface_eyedropper_depth.c
@@ -78,7 +78,7 @@ typedef struct DepthDropper {
 static void depthdropper_draw_cb(const struct bContext *C, ARegion *region, void *arg)
 {
   DepthDropper *ddr = arg;
-  eyedropper_draw_cursor_text(C, region, ddr->name);
+  eyedropper_draw_cursor_text_region(C, region, ddr->name);
 }
 
 static int depthdropper_init(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/interface/interface_eyedropper_intern.h b/source/blender/editors/interface/interface_eyedropper_intern.h
index fd60dcb7c86..96a2c6ed111 100644
--- a/source/blender/editors/interface/interface_eyedropper_intern.h
+++ b/source/blender/editors/interface/interface_eyedropper_intern.h
@@ -23,9 +23,10 @@
 #pragma once
 
 /* interface_eyedropper.c */
-void eyedropper_draw_cursor_text(const struct bContext *C,
-                                 const struct ARegion *region,
-                                 const char *name);
+void eyedropper_draw_cursor_text_window(const struct wmWindow *window, const char *name);
+void eyedropper_draw_cursor_text_region(const struct bContext *C,
+                                        const struct ARegion *region,
+                                        const char *name);
 uiBut *eyedropper_get_property_button_under_mouse(bContext *C, const wmEvent *event);
 
 /* interface_eyedropper_color.c (expose for color-band picker) */



More information about the Bf-blender-cvs mailing list