[Goodies-commits] r2148 - xfce4-mpc-plugin/trunk/panel-plugin
Landry Breuil
landry at xfce.org
Sun Nov 5 19:51:51 CET 2006
Author: landry
Date: 2006-11-05 18:51:49 +0000 (Sun, 05 Nov 2006)
New Revision: 2148
Modified:
xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c
xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h
Log:
- Added a configurable client entry in right-click menu
Modified: xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c 2006-11-05 18:49:30 UTC (rev 2147)
+++ xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c 2006-11-05 18:51:49 UTC (rev 2148)
@@ -60,7 +60,7 @@
{
gtk_container_set_border_width (GTK_CONTAINER (mpc->frame), 2);
if (xfce_panel_plugin_get_orientation (plugin) == GTK_ORIENTATION_HORIZONTAL)
- gtk_widget_set_size_request (GTK_WIDGET (mpc->frame), -1, size-2 );
+ gtk_widget_set_size_request (GTK_WIDGET (mpc->frame), -1, size-2 );
else
gtk_widget_set_size_request (GTK_WIDGET (mpc->frame), size-4 , -1);
}
@@ -97,11 +97,12 @@
mpc->mpd_port = xfce_rc_read_int_entry (rc, "mpd_port", DEFAULT_MPD_PORT);
mpc->mpd_password = g_strdup(xfce_rc_read_entry (rc, "mpd_password", ""));
mpc->show_frame = xfce_rc_read_bool_entry (rc, "show_frame", TRUE);
- DBG ("Settings : %s@%s:%d\nframe:%d", mpc->mpd_password, mpc->mpd_host, mpc->mpd_port, mpc->show_frame);
+ mpc->client_appl = g_strdup(xfce_rc_read_entry (rc, "client_appl", ""));
+ DBG ("Settings : %s@%s:%d\nframe:%d\nappl:%s", mpc->mpd_password, mpc->mpd_host, mpc->mpd_port, mpc->show_frame, mpc->client_appl);
xfce_rc_close (rc);
}
-
+
static void mpc_write_config (XfcePanelPlugin * plugin, t_mpc * mpc)
{
XfceRc *rc;
@@ -128,6 +129,7 @@
xfce_rc_write_int_entry (rc, "mpd_port", mpc->mpd_port);
xfce_rc_write_entry (rc, "mpd_password", mpc->mpd_password);
xfce_rc_write_bool_entry (rc, "show_frame", mpc->show_frame);
+ xfce_rc_write_entry (rc, "client_appl", mpc->client_appl);
xfce_rc_close (rc);
}
@@ -148,14 +150,20 @@
mpc_dialog_apply_options (t_mpc_dialog *dialog)
{
DBG ("!");
+ GtkWidget *label;
+ char str[30];
t_mpc *mpc = dialog->mpc;
mpc->mpd_host = g_strndup(gtk_entry_get_text(GTK_ENTRY(dialog->textbox_host)),STRLENGTH);
mpc->mpd_port = atoi(gtk_entry_get_text(GTK_ENTRY(dialog->textbox_port)));
mpc->mpd_password = g_strndup(gtk_entry_get_text(GTK_ENTRY(dialog->textbox_password)),STRLENGTH);
-
- DBG ("Apply: host=%s, port=%d, passwd=%s", mpc->mpd_host, mpc->mpd_port, mpc->mpd_password);
+ mpc->client_appl = g_strndup(gtk_entry_get_text(GTK_ENTRY(dialog->textbox_client_appl)),STRLENGTH);
+ label = gtk_bin_get_child(GTK_BIN(mpc->appl));
+ g_sprintf(str, "%s %s", _("Launch"), mpc->client_appl);
+ gtk_label_set_text(GTK_LABEL(label),str);
+ DBG ("Apply: host=%s, port=%d, passwd=%s, appl=%s", mpc->mpd_host, mpc->mpd_port, mpc->mpd_password, mpc->client_appl);
+
mpd_disconnect(mpc->mo);
mpd_set_hostname(mpc->mo,mpc->mpd_host);
mpd_set_port(mpc->mo,mpc->mpd_port);
@@ -224,10 +232,11 @@
gtk_widget_show (vbox);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), vbox, TRUE, TRUE, 0);
- table = gtk_table_new(3,2,FALSE);
+ table = gtk_table_new(4,2,FALSE);
gtk_table_attach_defaults(GTK_TABLE(table),gtk_label_new(_("Host : ")),0,1,0,1);
gtk_table_attach_defaults(GTK_TABLE(table),gtk_label_new(_("Port : ")),0,1,1,2);
gtk_table_attach_defaults(GTK_TABLE(table),gtk_label_new(_("Password : ")),0,1,2,3);
+ gtk_table_attach_defaults(GTK_TABLE(table),gtk_label_new(_("Client : ")),0,1,3,4);
dialog->textbox_host = gtk_entry_new();
gtk_entry_set_width_chars(GTK_ENTRY(dialog->textbox_host),DIALOG_ENTRY_WIDTH);
@@ -245,6 +254,11 @@
gtk_entry_set_width_chars(GTK_ENTRY(dialog->textbox_password),DIALOG_ENTRY_WIDTH);
gtk_entry_set_text(GTK_ENTRY(dialog->textbox_password),mpc->mpd_password);
gtk_table_attach_defaults(GTK_TABLE(table),dialog->textbox_password,1,2,2,3);
+
+ dialog->textbox_client_appl = gtk_entry_new();
+ gtk_entry_set_width_chars(GTK_ENTRY(dialog->textbox_client_appl),DIALOG_ENTRY_WIDTH);
+ gtk_entry_set_text(GTK_ENTRY(dialog->textbox_client_appl),mpc->client_appl);
+ gtk_table_attach_defaults(GTK_TABLE(table),dialog->textbox_client_appl,1,2,3,4);
gtk_widget_show_all (table);
gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
@@ -261,6 +275,13 @@
}
static void
+mpc_launch_client(GtkWidget *widget, t_mpc* mpc)
+{
+ DBG("Going to xfce_exec(\"%s\")", mpc->client_appl);
+ xfce_exec(mpc->client_appl, FALSE, TRUE, NULL);
+}
+
+static void
mpc_random_toggled(GtkWidget *widget, t_mpc* mpc)
{
DBG("!");
@@ -473,10 +494,14 @@
g_signal_connect (G_OBJECT(mpc->random), "toggled", G_CALLBACK (mpc_random_toggled), mpc);
mpc->repeat = gtk_check_menu_item_new_with_label (_("Repeat"));
g_signal_connect (G_OBJECT(mpc->repeat), "toggled", G_CALLBACK (mpc_repeat_toggled), mpc);
+ mpc->appl = gtk_menu_item_new_with_label (_("Launch"));
+ g_signal_connect (G_OBJECT(mpc->appl), "activate", G_CALLBACK (mpc_launch_client), mpc);
xfce_panel_plugin_menu_insert_item(plugin,GTK_MENU_ITEM(mpc->random));
xfce_panel_plugin_menu_insert_item(plugin,GTK_MENU_ITEM(mpc->repeat));
+ xfce_panel_plugin_menu_insert_item(plugin,GTK_MENU_ITEM(mpc->appl));
gtk_widget_show (mpc->repeat);
gtk_widget_show (mpc->random);
+ gtk_widget_show (mpc->appl);
gtk_widget_show_all (mpc->box);
return mpc;
@@ -502,6 +527,7 @@
mpc->mpd_host = g_strdup(DEFAULT_MPD_HOST);
mpc->mpd_port = DEFAULT_MPD_PORT;
mpc->mpd_password = g_strdup("");
+ mpc->client_appl = g_strdup("");
mpc->show_frame = TRUE;
/* mpc->stay_connected = TRUE; */
Modified: xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h 2006-11-05 18:49:30 UTC (rev 2147)
+++ xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h 2006-11-05 18:51:49 UTC (rev 2148)
@@ -34,10 +34,11 @@
typedef struct {
XfcePanelPlugin *plugin;
GtkTooltips *tips;
- GtkWidget *frame,*ebox,*box,*prev,*stop,*toggle,*next,*random,*repeat;
+ GtkWidget *frame,*ebox,*box,*prev,*stop,*toggle,*next,*random,*repeat,*appl;
gboolean show_frame;
/* mpd handle */
MpdObj *mo;
+ gchar* client_appl;
gchar* mpd_host;
gint mpd_port;
gchar * mpd_password;
@@ -50,6 +51,7 @@
GtkWidget *textbox_host;
GtkWidget *textbox_port;
GtkWidget *textbox_password;
+ GtkWidget *textbox_client_appl;
GtkWidget *checkbox_frame;
} t_mpc_dialog;
More information about the Goodies-commits
mailing list