radiant/cursor: factorise a bit the code
authorThomas Debesse <dev@illwieckz.net>
Wed, 10 Mar 2021 05:03:11 +0000 (06:03 +0100)
committerThomas Debesse <dev@illwieckz.net>
Wed, 10 Mar 2021 10:20:35 +0000 (11:20 +0100)
libs/gtkutil/cursor.cpp
libs/gtkutil/cursor.h
radiant/xywindow.cpp

index 999621f12ecdb4f633076aace99cd2579bbee9be..d14286359eafd32ab570328884cdd6915a3b811b 100644 (file)
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
-
 GdkCursor* create_blank_cursor(){
-       return gdk_cursor_new(GDK_BLANK_CURSOR);
+       return gdk_cursor_new( GDK_BLANK_CURSOR );
 }
 
-void blank_cursor( ui::Widget widget ){
-       GdkCursor* cursor = create_blank_cursor();
-       gdk_window_set_cursor( gtk_widget_get_window(widget), cursor );
+void set_cursor( ui::Widget widget, GdkCursorType cursor_type ){
+       GdkCursor* cursor = gdk_cursor_new( cursor_type );
+       gdk_window_set_cursor( gtk_widget_get_window( widget ), cursor );
        gdk_cursor_unref( cursor );
 }
 
-void default_cursor( ui::Widget widget ){
-       gdk_window_set_cursor( gtk_widget_get_window(widget), 0 );
+void blank_cursor( ui::Widget widget ){
+       set_cursor( widget, GDK_BLANK_CURSOR );
 }
 
+void default_cursor( ui::Widget widget ){
+       gdk_window_set_cursor( gtk_widget_get_window( widget ), NULL );
+}
 
 void Sys_GetCursorPos( ui::Window window, int *x, int *y ){
        gdk_display_get_pointer( gdk_display_get_default(), 0, x, y, 0 );
index 2d16142eb9f71134c1bb93ae384632024c837565..db44d2a46e7134ef1212c6e7e722b64e969b25ca 100644 (file)
@@ -22,6 +22,7 @@
 #if !defined( INCLUDED_GTKUTIL_CURSOR_H )
 #define INCLUDED_GTKUTIL_CURSOR_H
 
+#include <gdk/gdk.h>
 #include <uilib/uilib.h>
 
 #include "debugging/debugging.h"
@@ -30,13 +31,12 @@ typedef struct _GdkCursor GdkCursor;
 typedef struct _GdkEventMotion GdkEventMotion;
 
 GdkCursor* create_blank_cursor();
+void set_cursor( ui::Widget widget, GdkCursorType cursor_type );
 void blank_cursor( ui::Widget widget );
 void default_cursor( ui::Widget widget );
 void Sys_GetCursorPos( ui::Window window, int *x, int *y );
 void Sys_SetCursorPos( ui::Window window, int x, int y );
 
-
-
 class DeferredMotion
 {
 guint m_handler;
index 6788f04453b1c9271759973f82d8a02ea0d8b550..c56083735f4f07f837be805b19dd9dcbff25e603 100644 (file)
@@ -58,6 +58,7 @@
 #include "gtkutil/widget.h"
 #include "gtkutil/glwidget.h"
 #include "gtkutil/filechooser.h"
+#include "gtkutil/cursor.h"
 #include "gtkmisc.h"
 #include "select.h"
 #include "csg.h"
@@ -945,14 +946,11 @@ void XYWnd::Clipper_Crosshair_OnMouseMoved( int x, int y ){
        Vector3 mousePosition;
        XY_ToPoint( x, y, mousePosition );
        if ( ClipMode() && GlobalClipPoints_Find( mousePosition, (VIEWTYPE)m_viewType, m_fScale ) != 0 ) {
-               GdkCursor *cursor;
-               cursor = gdk_cursor_new( GDK_CROSSHAIR );
-               gdk_window_set_cursor( gtk_widget_get_window(m_gl_widget), cursor );
-               gdk_cursor_unref( cursor );
+               set_cursor ( m_gl_widget, GDK_CROSSHAIR );
        }
        else
        {
-               gdk_window_set_cursor( gtk_widget_get_window(m_gl_widget), 0 );
+               default_cursor( m_gl_widget );
        }
 }