diff options
author | waker <wakeroid@gmail.com> | 2012-10-25 21:26:32 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-10-25 21:26:32 +0200 |
commit | d940812fafd1a71837a3bb3f1c1132c7beea5187 (patch) | |
tree | a5da851d9e4075f5b298e11d32d455c1c8261710 | |
parent | fef22528a932e0b53778690ce3ed1d67c4786af1 (diff) |
display of the seek position in the seekbar WIP
-rw-r--r-- | plugins/gtkui/callbacks.c | 24 | ||||
-rw-r--r-- | plugins/gtkui/ddbseekbar.c | 20 |
2 files changed, 24 insertions, 20 deletions
diff --git a/plugins/gtkui/callbacks.c b/plugins/gtkui/callbacks.c index 2ac935e8..72a05e63 100644 --- a/plugins/gtkui/callbacks.c +++ b/plugins/gtkui/callbacks.c @@ -577,6 +577,30 @@ seekbar_draw (GtkWidget *widget, cairo_t *cr) { cairo_fill (cr); cairo_reset_clip (cr); + if (seekbar_moving && trk) { + float dur = deadbeef->pl_get_item_duration (trk); + float time = seekbar_move_x * dur / (a.width); + if (time < 0) { + time = 0; + } + if (time > dur) { + time = dur; + } + char s[1000]; + int hr = time/360; + int mn = (time-hr*360)/60; + int sc = time-hr*360-mn*60; + snprintf (s, sizeof (s), "%02d:%02d:%02d", hr, mn, sc); + + cairo_set_source_rgba (cr, 0, 0, 0, 0.5); + cairo_rectangle (cr, ax, ay, 100, ah); + cairo_fill (cr); + cairo_move_to (cr, ax, ay+20); + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_show_text (cr, s); + } + + if (trk) { deadbeef->pl_item_unref (trk); } diff --git a/plugins/gtkui/ddbseekbar.c b/plugins/gtkui/ddbseekbar.c index 6f0d01fe..635485c3 100644 --- a/plugins/gtkui/ddbseekbar.c +++ b/plugins/gtkui/ddbseekbar.c @@ -148,26 +148,6 @@ static gboolean ddb_seekbar_real_motion_notify_event (GtkWidget* base, GdkEventM _tmp0_ = *event; _tmp1_ = on_seekbar_motion_notify_event ((GtkWidget*) self, &_tmp0_); result = _tmp1_; - - DB_playItem_t *trk = deadbeef->streamer_get_playing_track (); - if (trk) { - GtkAllocation a; - gtk_widget_get_allocation (base, &a); - float time = (event->x - a.x) * deadbeef->pl_get_item_duration (trk) / (a.width); - if (time < 0) { - time = 0; - } - deadbeef->pl_item_unref (trk); - char s[1000]; - int hr = time/360; - int mn = (time-hr*360)/60; - int sc = time-hr*360-mn*60; - snprintf (s, sizeof (s), "%02d:%02d:%02d", hr, mn, sc); - - printf ("set tooltip text %s\n", s); - gtk_widget_set_tooltip_text (base, s); - gtk_widget_trigger_tooltip_query (base); - } return result; } |