25
25
#include "trayicon.h"
28
extern GtkAdjustment *adj;
31
29
extern gnomeradio_settings settings;
33
GtkWidget *mute_menuitem;
35
int mute_menuitem_toggled_cb_id;
33
37
static GtkWidget *showwindow_menuitem;
39
void tray_icon_set_title(gchar *title)
42
gtk_status_icon_set_tooltip_text(GTK_STATUS_ICON(tray_icon), title);
45
void tray_menu_items_set_sensible(gboolean sensible)
49
int i, cnt = g_list_length(settings.presets);
52
menuitems = gtk_container_get_children(GTK_CONTAINER(tray_menu));
54
g_assert(cnt + 6 == g_list_length(menuitems));
56
/* Disable the presets */
57
for (i = 0; i < cnt; i++) {
58
menuitem = g_list_nth_data(menuitems, i);
59
gtk_widget_set_sensitive(menuitem, sensible);
62
/* Disable the mute button (separator => +1) */
63
menuitem = g_list_nth_data(menuitems, cnt + 1);
64
gtk_widget_set_sensitive(menuitem, sensible);
66
/* Disable the record button */
67
menuitem = g_list_nth_data(menuitems, cnt + 2);
68
gtk_widget_set_sensitive(menuitem, sensible);
70
/* Disable the quit button */
71
menuitem = g_list_nth_data(menuitems, cnt + 5);
72
gtk_widget_set_sensitive(menuitem, sensible);
75
void tray_menu_enable_mute_button (gboolean enable)
78
g_signal_handler_block(G_OBJECT(mute_menuitem), mute_menuitem_toggled_cb_id);
79
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mute_menuitem), enable);
80
g_signal_handler_unblock(G_OBJECT(mute_menuitem), mute_menuitem_toggled_cb_id);
84
void tray_menu_add_preset (preset* ps, gint index)
88
menuitem = gtk_menu_item_new_with_label(ps->title);
90
gtk_menu_shell_insert(GTK_MENU_SHELL(tray_menu), menuitem, index);
91
g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, GINT_TO_POINTER (index));
92
gtk_widget_show(menuitem);
95
void tray_menu_remove_preset (gint index)
100
menuitems = gtk_container_get_children(GTK_CONTAINER(tray_menu));
101
g_assert(index < g_list_length(menuitems));
102
menuitem = g_list_nth_data(menuitems, index);
103
gtk_widget_destroy(menuitem);
106
void tray_menu_move_up_preset (preset* ps, gint index)
111
menuitems = gtk_container_get_children(GTK_CONTAINER(tray_menu));
112
g_assert(index < g_list_length(menuitems));
113
menuitem = g_list_nth_data(menuitems, index);
115
gtk_menu_reorder_child (GTK_MENU(tray_menu), menuitem, GPOINTER_TO_INT (index + 1));
116
g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, GINT_TO_POINTER (index + 1));
118
menuitems = gtk_container_get_children(GTK_CONTAINER(tray_menu));
119
menuitem = g_list_nth_data(menuitems, index);
120
g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, GINT_TO_POINTER (index));
123
void tray_menu_move_down_preset (preset* ps, gint index)
128
menuitems = gtk_container_get_children(GTK_CONTAINER(tray_menu));
129
g_assert(index < g_list_length(menuitems));
130
menuitem = g_list_nth_data(menuitems, index);
132
gtk_menu_reorder_child (GTK_MENU(tray_menu), menuitem, GPOINTER_TO_INT (index - 1));
133
g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, GINT_TO_POINTER (index - 1));
135
menuitems = gtk_container_get_children(GTK_CONTAINER(tray_menu));
136
menuitem = g_list_nth_data(menuitems, index);
137
g_signal_connect(G_OBJECT(menuitem), "activate", (GCallback)preset_menuitem_activate_cb, GINT_TO_POINTER (index));
140
void tray_menu_update_preset (preset* ps, gint index)
142
tray_menu_remove_preset (index);
143
tray_menu_add_preset (ps, index);
35
146
static void mute_menuitem_toggled_cb(GtkCheckMenuItem *checkmenuitem, gpointer user_data)