wmxmms shuffle toggle patch
Federico Grau <[email protected]>
| Newsgroups | gmane.comp.multimedia.xmms.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello, Attached is a patch (against the latest cvs) which adds a shuffle toggle at the top of wmxmms. thanks, donfede
xmms_wmxmms_shuffle_toggle.patch
(text/plain, 5.8 KB)
Index: wmxmms/wmxmms.c
===================================================================
RCS file: /cvs/xmms/wmxmms/wmxmms.c,v
retrieving revision 1.16
diff -u -r1.16 wmxmms.c
--- wmxmms/wmxmms.c 27 Oct 2002 17:19:23 -0000 1.16
+++ wmxmms/wmxmms.c 15 Feb 2003 14:28:00 -0000
@@ -48,6 +48,7 @@
void action_prev(void);
void action_next(void);
void action_stop(void);
+void action_toggle_shuffle(void);
Button buttons[] =
{
@@ -75,10 +76,16 @@
#define SEEKSLIDER_KNOB_WIDTH 3
#define SEEKSLIDER_MAX (SEEKSLIDER_WIDTH - SEEKSLIDER_KNOB_WIDTH)
+#define SHUFFLE_X 29
+#define SHUFFLE_Y 10
+#define SHUFFLE_WIDTH 18
+#define SHUFFLE_HEIGHT 5
+
gboolean volslider_dragging = FALSE;
int volslider_pos = 0;
gboolean seekslider_visible = FALSE, seekslider_dragging = FALSE;
int seekslider_pos = -1, seekslider_drag_offset = 0;
+gboolean shuffle_value = FALSE;
int timeout_tag = 0;
void init(void);
@@ -136,6 +143,11 @@
xmms_remote_stop(xmms_session);
}
+void action_toggle_shuffle(void)
+{
+ xmms_remote_toggle_shuffle(xmms_session);
+}
+
gboolean inside_region(int mx, int my, int x, int y, int w, int h)
{
if ((mx >= x && mx < x + w) && (my >= y && my < y + h))
@@ -193,7 +205,7 @@
if (seekslider_visible)
{
- gdk_draw_pixmap(w, dock_gc, pixmap, 2, 114, 19, 12, 35, 14);
+ gdk_draw_pixmap(w, dock_gc, pixmap, 2, 117, 19, 15, 35, 11);
if (seekslider_pos < SEEKSLIDER_MAX / 3)
slider_x = 44;
else if (seekslider_pos < (SEEKSLIDER_MAX * 2) / 3)
@@ -205,7 +217,7 @@
SEEKSLIDER_HEIGHT);
}
else
- gdk_draw_pixmap(w, dock_gc, pixmap, 2, 100, 19, 12, 35, 14);
+ gdk_draw_pixmap(w, dock_gc, pixmap, 2, 103, 19, 15, 35, 11);
}
void draw_seekslider(void)
@@ -214,6 +226,20 @@
real_draw_seekslider(icon_win->window);
}
+void real_draw_shuffle(GdkWindow * w)
+{
+ if (shuffle_value)
+ gdk_draw_pixmap(w, dock_gc, pixmap, 26, 128, SHUFFLE_X, SHUFFLE_Y, SHUFFLE_WIDTH, SHUFFLE_HEIGHT);
+ else
+ gdk_draw_pixmap(w, dock_gc, pixmap, 4, 128, SHUFFLE_X, SHUFFLE_Y, SHUFFLE_WIDTH, SHUFFLE_HEIGHT);
+}
+
+void draw_shuffle(void)
+{
+ real_draw_shuffle(window->window);
+ real_draw_shuffle(icon_win->window);
+}
+
void redraw_window(void)
{
if (xmms_running)
@@ -225,6 +251,7 @@
draw_buttons(button_list);
draw_volslider();
draw_seekslider();
+ draw_shuffle();
}
else
{
@@ -318,6 +345,12 @@
draw_seekslider();
seekslider_dragging = TRUE;
}
+ if (inside_region(event->x, event->y, SHUFFLE_X, SHUFFLE_Y, SHUFFLE_WIDTH, SHUFFLE_HEIGHT))
+ {
+ xmms_remote_toggle_shuffle(xmms_session);
+ shuffle_value = ! shuffle_value;
+ draw_shuffle();
+ }
}
else if ((!single_click && event->type == GDK_2BUTTON_PRESS) ||
(single_click && event->type == GDK_BUTTON_PRESS))
@@ -465,7 +498,7 @@
int timeout_func(gpointer data)
{
int new_pos, pos;
- gboolean playing, running;
+ gboolean playing, running, new_shuffle_value;
running = xmms_remote_is_running(xmms_session);
@@ -536,6 +569,12 @@
draw_seekslider();
}
}
+ }
+ new_shuffle_value = xmms_remote_is_shuffle(xmms_session);
+ if (new_shuffle_value != shuffle_value)
+ {
+ shuffle_value = new_shuffle_value;
+ draw_shuffle();
}
}
else
Index: wmxmms/xmms-dock-master.xpm
===================================================================
RCS file: /cvs/xmms/wmxmms/xmms-dock-master.xpm,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 xmms-dock-master.xpm
--- wmxmms/xmms-dock-master.xpm 29 Jul 1999 21:03:12 -0000 1.1.1.1
+++ wmxmms/xmms-dock-master.xpm 15 Feb 2003 14:28:00 -0000
@@ -1,7 +1,7 @@
/* XPM */
static char *xmms_dock_master_xpm[] = {
/* width height num_colors chars_per_pixel */
-" 64 128 125 2",
+" 64 138 125 2",
/* colors */
".. c #000000",
".# c #00fe00",
@@ -254,6 +254,16 @@
"......#b..............................................................#b........................................................",
"......#b..............................................................#b........................................................",
"......#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b........................................................",
+"................................................................................................................................",
+"................................................................................................................................",
+"................................................................................................................................",
+".........................................H.H.........................H.H.........................................................",
+".................................H.H.....H.H.........................H.H.............H.H.........................................",
+".........................H.H.....H.H.....H.H.........H.H.............H.H.............H.H.........................................",
+".................H.H.....H.H.....H.H.....H.H.........H.H.....H.H.....H.H.............H.H.........................................",
+".........H.H.....H.H.....H.H.....H.H.....H.H.........H.H.....H.H.....H.H.....H.H.....H.H.........................................",
+"................................................................................................................................",
+"................................................................................................................................",
"................................................................................................................................",
"................................................................................................................................",
"................................................................................................................................"
signature.asc
(application/pgp-signature, 232 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE+TlAax+yU3uQx8M4RAre8AJ951m1ZTnu5rO0+5oDA+umy1TLBvgCfZnwh hRoHFqVYXlN+siNyZ0T1jUg= =4Xwm -----END PGP SIGNATURE-----