WM: minor changes to cursor API
authorCampbell Barton <ideasman42@gmail.com>
Thu, 25 Oct 2018 04:18:24 +0000 (15:18 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 25 Oct 2018 04:18:24 +0000 (15:18 +1100)
source/blender/windowmanager/WM_api.h
source/blender/windowmanager/intern/wm_operators.c

index 2ff416c0ba6f253b95d619891f324d69ed54f196..5ee7763272b059b1ddeaf9f6924c1c789a578526 100644 (file)
@@ -55,6 +55,7 @@ struct wmGesture;
 struct wmJob;
 struct wmOperatorType;
 struct wmOperator;
+struct wmPaintCursor;
 struct rcti;
 struct PointerRNA;
 struct PropertyRNA;
@@ -133,15 +134,17 @@ void              WM_cursor_grab_enable(struct wmWindow *win, bool wrap, bool hide, int boun
 void           WM_cursor_grab_disable(struct wmWindow *win, const int mouse_ungrab_xy[2]);
 void           WM_cursor_time          (struct wmWindow *win, int nr);
 
-void *WM_paint_cursor_activate(
+struct wmPaintCursor *WM_paint_cursor_activate(
         struct wmWindowManager *wm,
         bool (*poll)(struct bContext *C),
         void (*draw)(struct bContext *C, int, int, void *customdata),
         void *customdata);
 
-void           WM_paint_cursor_end(struct wmWindowManager *wm, void *handle);
+bool           WM_paint_cursor_end(struct wmWindowManager *wm, struct wmPaintCursor *handle);
+void       *WM_paint_cursor_customdata_get(struct wmPaintCursor *pc);
 void           WM_paint_cursor_tag_redraw(struct wmWindow *win, struct ARegion *ar);
 
+
 void           WM_cursor_warp          (struct wmWindow *win, int x, int y);
 void           WM_cursor_compatible_xy(wmWindow *win, int *x, int *y);
 float          WM_cursor_pressure      (const struct wmWindow *win);
index 45084980727d3e3aef99f7a90045fdd36ba17de0..2008d388ad3e1756a7ad92902b9a84524d338fe2 100644 (file)
@@ -1813,7 +1813,7 @@ static void WM_OT_console_toggle(wmOperatorType *ot)
  * - draw(bContext): drawing callback for paint cursor
  */
 
-void *WM_paint_cursor_activate(
+wmPaintCursor *WM_paint_cursor_activate(
         wmWindowManager *wm, bool (*poll)(bContext *C),
         wmPaintCursorDraw draw, void *customdata)
 {
@@ -1828,7 +1828,7 @@ void *WM_paint_cursor_activate(
        return pc;
 }
 
-void WM_paint_cursor_end(wmWindowManager *wm, void *handle)
+bool WM_paint_cursor_end(wmWindowManager *wm, wmPaintCursor *handle)
 {
        wmPaintCursor *pc;
 
@@ -1836,9 +1836,15 @@ void WM_paint_cursor_end(wmWindowManager *wm, void *handle)
                if (pc == (wmPaintCursor *)handle) {
                        BLI_remlink(&wm->paintcursors, pc);
                        MEM_freeN(pc);
-                       return;
+                       return true;
                }
        }
+       return false;
+}
+
+void *WM_paint_cursor_customdata_get(wmPaintCursor *pc)
+{
+       return pc->customdata;
 }
 
 /* *********************** radial control ****************** */