summaryrefslogtreecommitdiff
path: root/plugins/gtkui/widgets.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gtkui/widgets.c')
-rw-r--r--plugins/gtkui/widgets.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c
index 7d753b30..af8affa2 100644
--- a/plugins/gtkui/widgets.c
+++ b/plugins/gtkui/widgets.c
@@ -40,6 +40,7 @@
#include "../../fastftoi.h"
#include "actions.h"
#include "ddbseekbar.h"
+#include "callbacks.h"
//#define trace(...) { fprintf(stderr, __VA_ARGS__); }
#define trace(fmt,...)
@@ -201,6 +202,10 @@ typedef struct {
float last_songpos;
} w_seekbar_t;
+typedef struct {
+ ddb_gtkui_widget_t base;
+} w_playtb_t;
+
static int design_mode;
static ddb_gtkui_widget_t *rootwidget;
@@ -3534,3 +3539,93 @@ w_seekbar_create (void) {
w->timer = g_timeout_add (1000/gtkui_get_gui_refresh_rate (), seekbar_frameupdate, w);
return (ddb_gtkui_widget_t*)w;
}
+
+// play toolbar
+ddb_gtkui_widget_t *
+w_playtb_create (void) {
+ w_playtb_t *w = malloc (sizeof (w_playtb_t));
+ memset (w, 0, sizeof (w_playtb_t));
+ w->base.widget = gtk_hbox_new (FALSE, 0);
+ w->base.flags = DDB_GTKUI_WIDGET_FLAG_NON_EXPANDABLE;
+ gtk_widget_show (w->base.widget);
+
+ GtkWidget *stopbtn;
+ GtkWidget *image128;
+ GtkWidget *playbtn;
+ GtkWidget *image2;
+ GtkWidget *pausebtn;
+ GtkWidget *image3;
+ GtkWidget *prevbtn;
+ GtkWidget *image4;
+ GtkWidget *nextbtn;
+ GtkWidget *image5;
+
+
+ stopbtn = gtk_button_new ();
+ gtk_widget_show (stopbtn);
+ gtk_box_pack_start (GTK_BOX (w->base.widget), stopbtn, FALSE, FALSE, 0);
+ gtk_widget_set_can_focus(stopbtn, FALSE);
+ gtk_button_set_relief (GTK_BUTTON (stopbtn), GTK_RELIEF_NONE);
+
+ image128 = gtk_image_new_from_stock ("gtk-media-stop", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (image128);
+ gtk_container_add (GTK_CONTAINER (stopbtn), image128);
+
+ playbtn = gtk_button_new ();
+ gtk_widget_show (playbtn);
+ gtk_box_pack_start (GTK_BOX (w->base.widget), playbtn, FALSE, FALSE, 0);
+ gtk_widget_set_can_focus(playbtn, FALSE);
+ gtk_button_set_relief (GTK_BUTTON (playbtn), GTK_RELIEF_NONE);
+
+ image2 = gtk_image_new_from_stock ("gtk-media-play", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (image2);
+ gtk_container_add (GTK_CONTAINER (playbtn), image2);
+
+ pausebtn = gtk_button_new ();
+ gtk_widget_show (pausebtn);
+ gtk_box_pack_start (GTK_BOX (w->base.widget), pausebtn, FALSE, FALSE, 0);
+ gtk_widget_set_can_focus(pausebtn, FALSE);
+ gtk_button_set_relief (GTK_BUTTON (pausebtn), GTK_RELIEF_NONE);
+
+ image3 = gtk_image_new_from_stock ("gtk-media-pause", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (image3);
+ gtk_container_add (GTK_CONTAINER (pausebtn), image3);
+
+ prevbtn = gtk_button_new ();
+ gtk_widget_show (prevbtn);
+ gtk_box_pack_start (GTK_BOX (w->base.widget), prevbtn, FALSE, FALSE, 0);
+ gtk_widget_set_can_focus(prevbtn, FALSE);
+ gtk_button_set_relief (GTK_BUTTON (prevbtn), GTK_RELIEF_NONE);
+
+ image4 = gtk_image_new_from_stock ("gtk-media-previous", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (image4);
+ gtk_container_add (GTK_CONTAINER (prevbtn), image4);
+
+ nextbtn = gtk_button_new ();
+ gtk_widget_show (nextbtn);
+ gtk_box_pack_start (GTK_BOX (w->base.widget), nextbtn, FALSE, FALSE, 0);
+ gtk_widget_set_can_focus(nextbtn, FALSE);
+ gtk_button_set_relief (GTK_BUTTON (nextbtn), GTK_RELIEF_NONE);
+
+ image5 = gtk_image_new_from_stock ("gtk-media-next", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (image5);
+ gtk_container_add (GTK_CONTAINER (nextbtn), image5);
+ w_override_signals (w->base.widget, w);
+
+ g_signal_connect ((gpointer) stopbtn, "clicked",
+ G_CALLBACK (on_stopbtn_clicked),
+ NULL);
+ g_signal_connect ((gpointer) playbtn, "clicked",
+ G_CALLBACK (on_playbtn_clicked),
+ NULL);
+ g_signal_connect ((gpointer) pausebtn, "clicked",
+ G_CALLBACK (on_pausebtn_clicked),
+ NULL);
+ g_signal_connect ((gpointer) prevbtn, "clicked",
+ G_CALLBACK (on_prevbtn_clicked),
+ NULL);
+ g_signal_connect ((gpointer) nextbtn, "clicked",
+ G_CALLBACK (on_nextbtn_clicked),
+ NULL);
+ return (ddb_gtkui_widget_t*)w;
+}