Add a menu entry for the preferences

It really starts wifibrowser(1), which therefore needs to be
improved.
This commit is contained in:
Pierre Pronchery 2015-09-23 02:49:11 +02:00
parent 65fa7302bb
commit 6db0ec94d0

View File

@ -400,6 +400,14 @@ static void _wpa_set_status(WPA * wpa, gboolean connected, gboolean associated,
? panel_window_get_icon_size(wpa->helper->window) ? panel_window_get_icon_size(wpa->helper->window)
: GTK_ICON_SIZE_SMALL_TOOLBAR; : GTK_ICON_SIZE_SMALL_TOOLBAR;
gtk_icon_size_lookup(iconsize, &size, &size); gtk_icon_size_lookup(iconsize, &size, &size);
#ifndef EMBEDDED
gtk_widget_set_sensitive(wpa->widget, connected);
#else
if(connected)
gtk_widget_show(wpa->widget);
else
gtk_widget_hide(wpa->widget);
#endif
if(connected == FALSE && network == NULL) if(connected == FALSE && network == NULL)
{ {
/* an error occurred */ /* an error occurred */
@ -1023,10 +1031,11 @@ static void _clicked_available(WPA * wpa, GtkWidget * menu);
static void _clicked_network_view(WPA * wpa, GtkWidget * menu); static void _clicked_network_view(WPA * wpa, GtkWidget * menu);
static void _clicked_position_menu(GtkMenu * menu, gint * x, gint * y, static void _clicked_position_menu(GtkMenu * menu, gint * x, gint * y,
gboolean * push_in, gpointer data); gboolean * push_in, gpointer data);
static void _clicked_unavailable(GtkWidget * menu); static void _clicked_preferences(WPA * wpa, GtkWidget * menu);
/* callbacks */ /* callbacks */
static void _clicked_on_disconnect(gpointer data); static void _clicked_on_disconnect(gpointer data);
static void _clicked_on_network_activated(GtkWidget * widget, gpointer data); static void _clicked_on_network_activated(GtkWidget * widget, gpointer data);
static void _clicked_on_preferences(gpointer data);
static void _clicked_on_reassociate(gpointer data); static void _clicked_on_reassociate(gpointer data);
static void _clicked_on_rescan(gpointer data); static void _clicked_on_rescan(gpointer data);
@ -1036,9 +1045,8 @@ static void _on_clicked(gpointer data)
GtkWidget * menu; GtkWidget * menu;
menu = gtk_menu_new(); menu = gtk_menu_new();
if(wpa->channel[0].fd < 0) _clicked_preferences(wpa, menu);
_clicked_unavailable(menu); if(wpa->channel[0].fd >= 0)
else
_clicked_available(wpa, menu); _clicked_available(wpa, menu);
gtk_widget_show_all(menu); gtk_widget_show_all(menu);
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, _clicked_position_menu, gtk_menu_popup(GTK_MENU(menu), NULL, NULL, _clicked_position_menu,
@ -1050,6 +1058,8 @@ static void _clicked_available(WPA * wpa, GtkWidget * menu)
GtkWidget * menuitem; GtkWidget * menuitem;
GtkWidget * image; GtkWidget * image;
menuitem = gtk_separator_menu_item_new();
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
if(wpa->networks_cur >= 0) if(wpa->networks_cur >= 0)
{ {
/* reassociate */ /* reassociate */
@ -1134,13 +1144,14 @@ static void _clicked_network_view(WPA * wpa, GtkWidget * menu)
} }
} }
static void _clicked_unavailable(GtkWidget * menu) static void _clicked_preferences(WPA * wpa, GtkWidget * menu)
{ {
GtkWidget * menuitem; GtkWidget * menuitem;
menuitem = gtk_image_menu_item_new_with_label( menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES,
_("Wireless is disabled")); NULL);
gtk_widget_set_sensitive(menuitem, FALSE); g_signal_connect_swapped(menuitem, "activate", G_CALLBACK(
_clicked_on_preferences), wpa);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
} }
@ -1182,6 +1193,21 @@ static void _clicked_on_network_activated(GtkWidget * widget, gpointer data)
#endif #endif
} }
static void _clicked_on_preferences(gpointer data)
{
WPA * wpa = data;
char * argv[] = { BINDIR "/wifibrowser", NULL };
const unsigned int flags = 0;
GError * error = NULL;
if(g_spawn_async(NULL, argv, NULL, flags, NULL, NULL, NULL, &error)
== FALSE)
{
wpa->helper->error(NULL, error->message, 1);
g_error_free(error);
}
}
static void _clicked_on_reassociate(gpointer data) static void _clicked_on_reassociate(gpointer data)
{ {
WPA * wpa = data; WPA * wpa = data;