[Goodies-commits] r6518 - in xfce4-radio-plugin/trunk: icons panel-plugin

Stefan Ott cockroach at xfce.org
Tue Jan 20 00:20:19 CET 2009


Author: cockroach
Date: 2009-01-19 23:20:19 +0000 (Mon, 19 Jan 2009)
New Revision: 6518

Added:
   xfce4-radio-plugin/trunk/icons/signal.xpm
Modified:
   xfce4-radio-plugin/trunk/icons/Makefile.am
   xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c
   xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h
Log:
Added initial support for displaying signal strength using the gnomeradio xpm


Modified: xfce4-radio-plugin/trunk/icons/Makefile.am
===================================================================
--- xfce4-radio-plugin/trunk/icons/Makefile.am	2009-01-19 23:00:07 UTC (rev 6517)
+++ xfce4-radio-plugin/trunk/icons/Makefile.am	2009-01-19 23:20:19 UTC (rev 6518)
@@ -1,6 +1,7 @@
 hicolor48dir = $(datadir)/icons/hicolor/48x48/apps
 
-hicolor48_DATA = \
-	xfce-radio.png
+hicolor48_DATA = 							\
+	xfce-radio.png							\
+	signal.xpm
 
 EXTRA_DIST = $(hicolor48_DATA)

Added: xfce4-radio-plugin/trunk/icons/signal.xpm
===================================================================
--- xfce4-radio-plugin/trunk/icons/signal.xpm	                        (rev 0)
+++ xfce4-radio-plugin/trunk/icons/signal.xpm	2009-01-19 23:20:19 UTC (rev 6518)
@@ -0,0 +1,144 @@
+/* XPM */
+static char * signal_xpm[] = {
+"100 30 111 2",
+"  	c None",
+". 	c #020202",
+"+ 	c #010101",
+"@ 	c #000000",
+"# 	c #051506",
+"$ 	c #0D5612",
+"% 	c #14861B",
+"& 	c #18A320",
+"* 	c #19AC22",
+"= 	c #030C04",
+"- 	c #106A16",
+"; 	c #1AB624",
+"> 	c #1BBB25",
+", 	c #061E07",
+"' 	c #179F20",
+") 	c #16951E",
+"! 	c #0E5912",
+"~ 	c #09350C",
+"{ 	c #072A0A",
+"] 	c #041205",
+"^ 	c #0D5111",
+"/ 	c #127A19",
+"( 	c #051B07",
+"_ 	c #19A922",
+": 	c #18A521",
+"< 	c #09370C",
+"[ 	c #041305",
+"} 	c #020402",
+"| 	c #0E5B13",
+"1 	c #1AB324",
+"2 	c #030703",
+"3 	c #16991F",
+"4 	c #127B19",
+"5 	c #0F6214",
+"6 	c #0C5011",
+"7 	c #0E5C13",
+"8 	c #041405",
+"9 	c #040F04",
+"0 	c #0C4B10",
+"a 	c #0F6114",
+"b 	c #0F5F14",
+"c 	c #1AB524",
+"d 	c #0B470F",
+"e 	c #041005",
+"f 	c #030B04",
+"g 	c #19AF23",
+"h 	c #0A3A0D",
+"i 	c #051906",
+"j 	c #1BBA25",
+"k 	c #0A3C0D",
+"l 	c #16921D",
+"m 	c #051A06",
+"n 	c #072408",
+"o 	c #1AB424",
+"p 	c #0F6314",
+"q 	c #137E19",
+"r 	c #137C19",
+"s 	c #0C4F11",
+"t 	c #2B2B2B",
+"u 	c #565656",
+"v 	c #1C1C1C",
+"w 	c #137D19",
+"x 	c #09380C",
+"y 	c #16961E",
+"z 	c #09340B",
+"A 	c #17A020",
+"B 	c #062208",
+"C 	c #202020",
+"D 	c #A5A5A5",
+"E 	c #A8A8A8",
+"F 	c #9A9A9A",
+"G 	c #0A0A0A",
+"H 	c #19AD22",
+"I 	c #1AB223",
+"J 	c #040E04",
+"K 	c #030A04",
+"L 	c #3F3F3F",
+"M 	c #1E1E1E",
+"N 	c #14891C",
+"O 	c #020302",
+"P 	c #1AB724",
+"Q 	c #1BB925",
+"R 	c #030903",
+"S 	c #1BB824",
+"T 	c #131313",
+"U 	c #878787",
+"V 	c #050505",
+"W 	c #179D1F",
+"X 	c #19AE22",
+"Y 	c #141B14",
+"Z 	c #060D06",
+"` 	c #051A07",
+" .	c #555555",
+"..	c #343434",
+"+.	c #0D5412",
+"@.	c #13821A",
+"#.	c #0D5011",
+"$.	c #0B430E",
+"%.	c #14891B",
+"&.	c #106715",
+"*.	c #14881B",
+"=.	c #020603",
+"-.	c #19AE23",
+";.	c #041105",
+">.	c #15921D",
+",.	c #106B16",
+"'.	c #082C0A",
+").	c #0F6014",
+"!.	c #111111",
+"~.	c #1F1F1F",
+"{.	c #0B0B0B",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . + + @ @ @ + + . . . . . . . . . . . . . . . . . . + + @ @ @ + + . . . . . . . . . . . . . . . . . . + + @ @ @ + + . . . . . . . . . . . . . . . . . # $ % & * & % $ # . . . . . . . . ",
+". . . . . . . + @ @ @ @ @ @ @ @ @ + . . . . . . . . . . . . . . + @ @ @ @ @ @ @ @ @ + . . . . . . . . . . . . . . + @ @ @ @ @ @ @ @ @ + . . . . . . . . . . . . . = - ; > > > > > > > ; - = . . . . . . ",
+". . . . . . @ @ @ @ + + . + + @ @ @ @ . . . . . . . . . . . . @ @ @ @ + + . + + @ @ @ @ . . . . . . . . . . . . @ @ @ @ + + . + + @ @ @ @ . . . . . . . . . . . , ' > > ) ! ~ { ~ ! ) > > ' , . . . . . ",
+". . . . . @ @ @ + . + + + + + . + @ @ @ . . . . . . . . . . @ @ @ + . + + + + + . + @ @ @ . . . . . . . . . . @ @ @ + ] ^ / % / ^ ] + @ @ @ . . . . . . . . . ( _ > : < [ ^ / % / ^ [ < : > _ ( . . . . ",
+". . . . @ @ @ . + @ @ @ @ @ @ @ + . @ @ @ . . . . . . . . @ @ @ . + @ @ @ @ @ @ @ + . @ @ @ . . . . . . . . @ @ @ } | 1 > > > > > 1 | } @ @ @ . . . . . . . 2 3 > ) [ | 1 > > > > > 1 | [ ) > 3 2 . . . ",
+". . . + @ @ . + @ @ @ + + + @ @ @ + . @ @ + . . . . . . + @ @ . + @ @ @ + + + @ @ @ + . @ @ + . . . . . . + @ @ } 4 > > 3 5 6 5 3 > > 4 } @ @ + . . . . . . 7 > : 8 4 > > 3 5 6 5 3 > > 4 8 : > 7 . . . ",
+". . . @ @ + + @ @ + . + + + . + @ @ + + @ @ . . . . . . @ @ + + @ @ + 9 0 a 0 9 + @ @ + + @ @ . . . . . . @ @ + b > c d e 0 a 0 e d c > b + @ @ . . . . . f g > < b > c d e 0 a 0 e d c > b < > g f . . ",
+". . + @ @ . @ @ + + @ @ @ @ @ + + @ @ . @ @ + . . . . + @ @ . @ @ + h g > > > g h + @ @ . @ @ + . . . . + @ @ i ; j k h g > > > g h k j ; i @ @ + . . . . d > l m ; j k h g > > > g h k j ; m l > d . . ",
+". . + @ + + @ + . @ @ + + + @ @ . + @ + + @ + . . . . + @ + + @ + n c o a k a o c n + @ + + @ + . . . . + @ + p > q n c o a k a o c n q > p + @ + . . . . r > s p > q n c o a k a o c n q > p s > r . . ",
+". . @ @ . @ @ + + @ + t u v + @ + + @ @ . @ @ . . . . @ @ . @ @ + w > x t u v x > w + @ @ . @ @ . . . . @ @ . y > z w > x t u v x > w z > y . @ @ . . . . A > B y > z w > x t u v x > w z > y B > A . . ",
+". . @ @ . @ @ . @ @ C D E F G @ @ . @ @ . @ @ . . . . @ @ . @ @ . H 3 C D E F G 3 H . @ @ . @ @ . . . . @ @ . I > J H 3 C D E F G 3 H J > I . @ @ . . . . o > K I > J H 3 C D E F G 3 H J > I K > o . . ",
+". . @ @ . @ @ . @ + L E E E M + @ . @ @ . @ @ . . . . @ @ . @ @ } ; N L E E E M N ; } @ @ . @ @ . . . . @ @ O P Q R ; N L E E E M N ; R Q P O @ @ . . . . S j 2 P Q R ; N L E E E M N ; R Q P 2 j S . . ",
+". . @ @ . @ @ . @ @ T F E U V @ @ . @ @ . @ @ . . . . @ @ . @ @ . W X Y F E U Z X W . @ @ . @ @ . . . . @ @ . _ > ` W X Y F E U Z X W ` > _ . @ @ . . . . H > ] _ > ` W X Y F E U Z X W ` > _ ] > H . . ",
+". . @ @ + + @ + + + .  .E ... + + + @ + + @ @ . . . . @ @ + + @ + +.- ]  .E ..] - +.+ @ + + @ @ . . . . @ @ + @.> #.+.- ]  .E ..] - +.#.> @.+ @ @ . . . . l > z @.> #.+.- ]  .E ..] - +.#.> @.z > l . . ",
+". . + @ + + @ + . . .  .E ... . . + @ + + @ + . . . . + @ + + @ + . . .  .E ... . . + @ + + @ + . . . . + @ + $.> %.. . .  .E ... . . %.> $.+ @ + . . . . &.> - $.> *.. . .  .E ... . . *.> $.- > &.. . ",
+". . . @ @ . + . . . .  .E ... . . . + . @ @ . . . . . . @ @ . + . . . .  .E ... . . . + . @ @ . . . . . . @ @ =.% 8 . . .  .E ... . . 8 % =.@ @ . . . . . { > -.;.% 8 . . .  .E ... . . 8 % ;.-.> { . . ",
+". . . @ @ + . . . . .  .E ... . . . . + @ @ . . . . . . @ @ + . . . . .  .E ... . . . . + @ @ . . . . . . @ @ + O . . . .  .E ... . . . O + @ @ . . . . . . >.> ,.O . . . .  .E ... . . . O - > >.. . . ",
+". . . . @ + . . . . .  .E ... . . . . + @ . . . . . . . . @ + . . . . .  .E ... . . . . + @ . . . . . . . . @ + . . . . .  .E ... . . . . + @ . . . . . . . '.Q % . . . . .  .E ... . . . . % Q '.. . . ",
+". . . . + + . . . . .  .E ... . . . . + + . . . . . . . . + + . . . . .  .E ... . . . . + + . . . . . . . . + + . . . . .  .E ... . . . . + + . . . . . . . . ).$.. . . . .  .E ... . . . . $.).. . . . ",
+". . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . O R . . . . .  .E ... . . . . R O . . . . ",
+". . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . ",
+". . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . ",
+". . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . . . . . . . . . . . .  .E ... . . . . . . . . . . ",
+". . . . . . . . . . . !.~.{.. . . . . . . . . . . . . . . . . . . . . . !.~.{.. . . . . . . . . . . . . . . . . . . . . . !.~.{.. . . . . . . . . . . . . . . . . . . . . . !.~.{.. . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};

Modified: xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c
===================================================================
--- xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c	2009-01-19 23:00:07 UTC (rev 6517)
+++ xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c	2009-01-19 23:20:19 UTC (rev 6518)
@@ -18,6 +18,21 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+/*
+ * Plugin layout
+ *
+ * ,--[ ebox ]--------------------------------------------------.
+ * |,--[ outer_box ] ------------------------------------------.|
+ * ||                                                          ||
+ * || ,--[ box ] ----------------------. ,--[ signal_image ]-. ||
+ * || |                                | |                   | ||
+ * || | [label]     [signal_bar]       | |                   | ||
+ * || |                                | |                   | ||
+ * || '--------------------------------' '-------------------' ||
+ * |'----------------------------------------------------------'|
+ * '------------------------------------------------------------'
+ */
+
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -28,6 +43,7 @@
 #include <stdlib.h>
 
 #include "xfce4-radio.h"
+#include "../icons/signal.xpm"
 
 #include "radio.h"
 #include "v4l1.h"
@@ -38,6 +54,31 @@
 #include <libxfce4util/libxfce4util.h>
 #include <gdk/gdkkeysyms.h>
 
+#define SIGNAL_WIDTH 25
+#define SIGNAL_HEIGHT 27
+
+static GdkPixmap *signal_s;
+
+static void
+show_signal_image(radio_gui* data, gint signal)
+{
+	// TODO:
+	//  - Make sure we only add the image *once*
+	//  - Fix the background color?
+	GdkImage *image;
+
+	signal_s = gdk_pixmap_create_from_xpm_d
+		(GTK_WIDGET(data->plugin)->window, NULL, NULL, signal_xpm);
+	image = gdk_drawable_get_image(signal_s, SIGNAL_WIDTH * signal, 0,
+		SIGNAL_WIDTH, SIGNAL_HEIGHT);
+
+	gtk_image_set_from_image (GTK_IMAGE(data->signal_image), image, NULL);
+	gtk_widget_show (data->signal_image);
+
+	gtk_box_pack_start (GTK_BOX (data->outer_box), data->signal_image,
+		FALSE, FALSE, 1);	
+}
+
 static gboolean
 update_signal_bar (radio_gui* data)
 {
@@ -45,6 +86,7 @@
 	{
 		gtk_widget_hide (data->signal_bar);
 		data->signal_timeout_id = 0;
+		show_signal_image (data, 0);
 		return FALSE;
 	}
 	else
@@ -74,6 +116,7 @@
 					(GtkFunction) update_signal_bar,
 							(gpointer) data);
 		}
+		show_signal_image (data, signal);
 		return TRUE;
 	}
 }
@@ -137,6 +180,11 @@
 
 	if (data->on)
 	{
+		//GtkTreeIter iter;
+		//GtkTreeModel *presets = GTK_TREE_MODEL (data->presets);
+		//if (find_preset_by_freq (presets, data->freq, &iter))
+		//	gtk_tree_model_get (presets, &iter, 0, &label, -1);
+		//else
 		label = g_strdup_printf ("%5.1f", ((float) data->freq) / 100);
 		update_tooltip (data);
 	}
@@ -480,15 +528,26 @@
 }
 
 static void
-add_box (radio_gui *gui)
+add_boxes (radio_gui *gui)
 {
 	if (gui->orientation == GTK_ORIENTATION_HORIZONTAL)
+	{
 		gui->box = gtk_hbox_new (FALSE, 0);
+		gui->outer_box = gtk_hbox_new (FALSE, 0);
+	}
 	else
+	{
 		gui->box = gtk_vbox_new (FALSE, 0);
+		gui->outer_box = gtk_vbox_new (FALSE, 0);
+	}
 
 	gtk_container_set_border_width (GTK_CONTAINER (gui->box), BORDER / 2);
+
 	gtk_widget_show (gui->box);	
+	gtk_widget_show (gui->outer_box);
+
+	gtk_container_add (GTK_CONTAINER (gui->outer_box), gui->box);
+	gtk_container_add (GTK_CONTAINER (gui->ebox), gui->outer_box);
 }
 
 static void
@@ -517,13 +576,19 @@
 }
 
 static void
+add_image (radio_gui *gui)
+{
+	gui->signal_image = gtk_image_new();
+}
+
+static void
 add_gui_elements (radio_gui *gui)
 {
 
-	add_box (gui);
+	add_boxes (gui);
 	add_label (gui);
 	add_signal_bar (gui);
-	gtk_container_add (GTK_CONTAINER (gui->ebox), gui->box);
+	add_image (gui);
 }
 
 static radio_gui *
@@ -1123,7 +1188,7 @@
 								radio_gui *gui)
 {
 	gui->orientation = orientation;
-	gtk_container_remove (GTK_CONTAINER (gui->ebox), gui->box);
+	gtk_container_remove (GTK_CONTAINER (gui->ebox), gui->outer_box);
 	add_gui_elements (gui);
 }
 

Modified: xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h
===================================================================
--- xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h	2009-01-19 23:00:07 UTC (rev 6517)
+++ xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h	2009-01-19 23:20:19 UTC (rev 6518)
@@ -65,10 +65,12 @@
 typedef struct radio_preset_st radio_preset;
 
 typedef struct {
+	GtkWidget*		outer_box;
 	GtkWidget*		box;
 	GtkWidget*		ebox;
 	GtkWidget*		label;
 	GtkWidget*		signal_bar;
+	GtkWidget*		signal_image;
 	GtkTooltips*		tooltips;
 	gint			orientation;
 




More information about the Goodies-commits mailing list