diff options
-rw-r--r-- | callbacks.c | 1 | ||||
-rw-r--r-- | callbacks.h | 5 | ||||
-rw-r--r-- | deadbeef.glade | 2 | ||||
-rw-r--r-- | gtkplaylist.c | 24 | ||||
-rw-r--r-- | interface.c | 4 |
5 files changed, 36 insertions, 0 deletions
diff --git a/callbacks.c b/callbacks.c index d87a2896..b5ef3ba3 100644 --- a/callbacks.c +++ b/callbacks.c @@ -525,3 +525,4 @@ on_voice5_clicked (GtkButton *button, } + diff --git a/callbacks.h b/callbacks.h index 1efce62e..6f7e6007 100644 --- a/callbacks.h +++ b/callbacks.h @@ -218,3 +218,8 @@ on_header_configure_event (GtkWidget *widget, void on_header_realize (GtkWidget *widget, gpointer user_data); + +gboolean +on_header_motion_notify_event (GtkWidget *widget, + GdkEventMotion *event, + gpointer user_data); diff --git a/deadbeef.glade b/deadbeef.glade index b04f2a4c..455f4dff 100644 --- a/deadbeef.glade +++ b/deadbeef.glade @@ -613,9 +613,11 @@ <widget class="GtkDrawingArea" id="header"> <property name="height_request">24</property> <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK</property> <signal name="expose_event" handler="on_header_expose_event" last_modification_time="Thu, 06 Aug 2009 14:54:29 GMT"/> <signal name="configure_event" handler="on_header_configure_event" last_modification_time="Thu, 06 Aug 2009 14:54:33 GMT"/> <signal name="realize" handler="on_header_realize" last_modification_time="Thu, 06 Aug 2009 14:54:41 GMT"/> + <signal name="motion_notify_event" handler="on_header_motion_notify_event" last_modification_time="Thu, 06 Aug 2009 16:33:54 GMT"/> </widget> <packing> <property name="padding">0</property> diff --git a/gtkplaylist.c b/gtkplaylist.c index 8dbd44bc..466d64ca 100644 --- a/gtkplaylist.c +++ b/gtkplaylist.c @@ -1136,9 +1136,33 @@ on_header_configure_event (GtkWidget *widget, } +GdkCursor* cursor_sz; + void on_header_realize (GtkWidget *widget, gpointer user_data) { + // create cursor for sizing headers + cursor_sz = gdk_cursor_new (GDK_SB_H_DOUBLE_ARROW); +} + +gboolean +on_header_motion_notify_event (GtkWidget *widget, + GdkEventMotion *event, + gpointer user_data) +{ + int x = 0; + for (int i = 0; i < ncolumns; i++) { + int w = colwidths[i]; + if (event->x >= x + w && event->x <= x+w+2) { + gdk_window_set_cursor (widget->window, cursor_sz); + break; + } + else { + gdk_window_set_cursor (widget->window, NULL); + } + x += w + 2; + } + return FALSE; } diff --git a/interface.c b/interface.c index bd2ea251..cffd0c30 100644 --- a/interface.c +++ b/interface.c @@ -331,6 +331,7 @@ create_mainwin (void) gtk_widget_show (header); gtk_box_pack_start (GTK_BOX (vbox3), header, FALSE, TRUE, 0); gtk_widget_set_size_request (header, -1, 24); + gtk_widget_set_events (header, GDK_POINTER_MOTION_MASK); playlist = gtk_drawing_area_new (); gtk_widget_show (playlist); @@ -429,6 +430,9 @@ create_mainwin (void) g_signal_connect ((gpointer) header, "realize", G_CALLBACK (on_header_realize), NULL); + g_signal_connect ((gpointer) header, "motion_notify_event", + G_CALLBACK (on_header_motion_notify_event), + NULL); g_signal_connect ((gpointer) playlist, "configure_event", G_CALLBACK (on_playlist_configure_event), NULL); |