diff --git a/ChangeLog b/ChangeLog index a99601532..1e35fc02b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Oct 13 19:31:53 2004 Jonathan Blandford + + * panel-applet/NMWirelessApplet.c: Add an essid dialog. It + doesn't work yet, but it looks okay. + + * panel-applet/icons/*png: Resize to 22x22 and install in the + right place. + 2004-10-13 Dan Williams * panel-applet/NMWirelessApplet.c diff --git a/panel-applet/Makefile.am b/panel-applet/Makefile.am index a1df1e7b1..ea538ac38 100644 --- a/panel-applet/Makefile.am +++ b/panel-applet/Makefile.am @@ -54,36 +54,12 @@ libexec_PROGRAMS = NetworkManagerNotification NetworkManagerNotification_SOURCES = main.c NetworkManagerNotification_LDADD = ./libnm_notification_applet.la -uidir = $(datadir)/gnome-2.0/ui -ui_DATA = NMWirelessApplet.xml - -gladedir = $(datadir)/NMWirelessApplet -glade_DATA = wireless-applet.glade - -pixmapdir = $(datadir)/pixmaps/NMWirelessApplet -pixmap_DATA = \ - no-networkmanager.png \ - no-link-0.png \ - wired.png \ - wireless.png \ - broken-0.png \ - signal-1-40.png \ - signal-41-60.png \ - signal-61-80.png \ - signal-81-100.png \ - wireless-applet.png \ - connect-0.png \ - connect-1.png \ - connect-2.png \ - connect-3.png \ - keyring.png \ - $(NULL) +gladedir = $(datadir)/NetworkManagerNotification +glade_DATA = essid.glade CLEANFILES = $(server_DATA) *.bak *.gladep EXTRA_DIST = \ - $(pixmap_DATA) \ - $(ui_DATA) \ $(glade_DATA) \ $(NULL) diff --git a/panel-applet/NMWirelessApplet.c b/panel-applet/NMWirelessApplet.c index f1a4fdbfa..737c510dc 100644 --- a/panel-applet/NMWirelessApplet.c +++ b/panel-applet/NMWirelessApplet.c @@ -51,8 +51,6 @@ #define CFG_UPDATE_INTERVAL 1 #define NM_GCONF_WIRELESS_NETWORKS_PATH "/system/networking/wireless/networks" -static char *glade_file; - static GtkWidget * nmwa_populate_menu (NMWirelessApplet *applet); static void nmwa_dispose_menu_items (NMWirelessApplet *applet); static gboolean do_not_eat_button_press (GtkWidget *widget, GdkEventButton *event); @@ -61,18 +59,8 @@ static void setup_stock (void); static void nmwa_icons_init (NMWirelessApplet *applet); static gboolean nmwa_fill (NMWirelessApplet *applet); - -#ifndef BUILD_NOTIFICATION_ICON -static const BonoboUIVerb nmwa_context_menu_verbs [] = -{ - BONOBO_UI_UNSAFE_VERB ("NMWirelessAbout", nmwa_about_cb), - BONOBO_UI_VERB_END -}; -#endif - G_DEFINE_TYPE(NMWirelessApplet, nmwa, EGG_TYPE_TRAY_ICON) - static void nmwa_init (NMWirelessApplet *applet) { @@ -482,9 +470,9 @@ static void nmwa_menu_item_activate (GtkMenuItem *item, gpointer user_data) */ static void nmwa_toplevel_menu_activate (GtkWidget *menu, NMWirelessApplet *applet) { - nmwa_dispose_menu_items (applet); - nmwa_populate_menu (applet); - gtk_widget_show (applet->menu); + nmwa_dispose_menu_items (applet); + nmwa_populate_menu (applet); + gtk_widget_show (applet->menu); } @@ -555,17 +543,153 @@ static void nmwa_menu_add_device_item (GtkWidget *menu, NetworkDevice *device, g gtk_widget_show (menu_item); } +static void +update_button_cb (GtkWidget *entry, + GtkWidget *button) +{ + const char *text; + + text = gtk_entry_get_text (GTK_ENTRY (entry)); + if (text[0] == '\000') + gtk_widget_set_sensitive (button, FALSE); + else + gtk_widget_set_sensitive (button, TRUE); +} + +static GtkTreeModel * +create_wireless_adaptor_model (NMWirelessApplet *applet) +{ + GtkListStore *retval; + GSList *element; + + retval = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); + for (element = applet->devices; element; element = element->next) + { + NetworkDevice *network = (NetworkDevice *)(element->data); + + g_assert (network); + if (network->type == DEVICE_TYPE_WIRELESS_ETHERNET) + { + GtkTreeIter iter; + const char *network_name; + + network_name = network->hal_name ? network->hal_name : network->nm_name; + + gtk_list_store_append (retval, &iter); + gtk_list_store_set (retval, &iter, + 0, network_name, + 1, network, + -1); + } + } + + return GTK_TREE_MODEL (retval); +} + +static void +custom_essid_item_selected (GtkWidget *menu_item, NMWirelessApplet *applet) +{ + gchar *glade_file; + GtkWidget *dialog; + GtkWidget *entry; + GtkWidget *button; + GladeXML *xml; + char *essid; + gint response; + gint n_wireless_interfaces = 0; + GSList *element; + + glade_file = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_DATADIR, + "NetworkManagerNotification/essid.glade", + FALSE, NULL); + + if (!glade_file || + !g_file_test (glade_file, G_FILE_TEST_IS_REGULAR)) + { + show_warning_dialog (TRUE, _("The NetworkManager Applet could not find some required resources (the glade file was not found).")); + return; + } + + xml = glade_xml_new (glade_file, NULL, NULL); + g_free (glade_file); + + if (xml == NULL) + { + /* Reuse the above string to make the translators less angry. */ + show_warning_dialog (TRUE, _("The NetworkManager Applet could not find some required resources (the glade file was not found).")); + return; + } + + /* Set up the dialog */ + dialog = glade_xml_get_widget (xml, "custom_essid_dialog"); + entry = glade_xml_get_widget (xml, "essid_entry"); + button = glade_xml_get_widget (xml, "ok_button"); + + gtk_widget_grab_focus (entry); + gtk_entry_set_text (GTK_ENTRY (entry), ""); + gtk_widget_set_sensitive (button, FALSE); + g_signal_connect (entry, "changed", update_button_cb, button); + + /* Do we have multiple Network cards? */ + g_mutex_lock (applet->data_mutex); + for (element = applet->devices; element; element = element->next) + { + NetworkDevice *dev = (NetworkDevice *)(element->data); + + g_assert (dev); + if (dev->type == DEVICE_TYPE_WIRELESS_ETHERNET) + n_wireless_interfaces++; + } + if (n_wireless_interfaces < 1) + { + g_mutex_unlock (applet->data_mutex); + /* Run away!!! */ + return; + } + else if (n_wireless_interfaces == 1) + { + gtk_widget_hide (glade_xml_get_widget (xml, "wireless_adaptor_label")); + gtk_widget_hide (glade_xml_get_widget (xml, "wireless_adaptor_combo")); + } + else + { + GtkWidget *combo; + GtkTreeModel *model; + + combo = glade_xml_get_widget (xml, "wireless_adaptor_combo"); + model = create_wireless_adaptor_model (applet); + gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model); + + /* Select the first one randomly */ + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); + } + g_mutex_unlock (applet->data_mutex); + + /* Run the dialog */ + response = gtk_dialog_run (GTK_DIALOG (dialog)); + + if (response == GTK_RESPONSE_OK) + { + essid = gtk_entry_get_text (GTK_ENTRY (entry)); + /* FIXME: actually set the essid... */ + } + + gtk_widget_destroy (dialog); + g_object_unref (xml); +} + static void nmwa_menu_add_custom_essid_item (GtkWidget *menu, NMWirelessApplet *applet) { - GtkWidget *menu_item; - GtkWidget *label; + GtkWidget *menu_item; + GtkWidget *label; - menu_item = gtk_menu_item_new (); - label = gtk_label_new (_("Other Wireless Networks...")); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_container_add (GTK_CONTAINER (menu_item), label); - gtk_widget_show_all (menu_item); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + menu_item = gtk_menu_item_new (); + label = gtk_label_new (_("Other Wireless Networks...")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_container_add (GTK_CONTAINER (menu_item), label); + gtk_widget_show_all (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect (menu_item, "activate", custom_essid_item_selected, applet); } @@ -863,14 +987,6 @@ static GtkWidget * nmwa_get_instance (NMWirelessApplet *applet) if (!applet->gconf_client) return (NULL); - applet->ui_resources = glade_xml_new(glade_file, NULL, NULL); - if (!applet->ui_resources) - { - show_warning_dialog (TRUE, _("The NetworkManager Applet could not find some required resources (the glade file was not found).")); - g_object_unref (G_OBJECT (applet->gconf_client)); - return (NULL); - } - applet->applet_state = APPLET_STATE_NO_NM; applet->devices = NULL; applet->active_device = NULL; @@ -879,14 +995,12 @@ static GtkWidget * nmwa_get_instance (NMWirelessApplet *applet) if (!(applet->data_mutex = g_mutex_new ())) { g_object_unref (G_OBJECT (applet->gconf_client)); - /* FIXME: free glade file */ return (NULL); } if (!(applet->dbus_thread = g_thread_create (nmwa_dbus_worker, applet, FALSE, &error))) { g_mutex_free (applet->data_mutex); g_object_unref (G_OBJECT (applet->gconf_client)); - /* FIXME: free glade file */ return (NULL); } @@ -895,11 +1009,6 @@ static GtkWidget * nmwa_get_instance (NMWirelessApplet *applet) g_signal_connect (applet,"destroy", G_CALLBACK (nmwa_destroy),NULL); -#ifndef BUILD_NOTIFICATION_ICON - panel_applet_setup_menu_from_file (PANEL_APPLET (applet), NULL, "NMWirelessApplet.xml", NULL, - nmwa_context_menu_verbs, applet); -#endif - /* Start redraw timeout */ @@ -913,14 +1022,6 @@ static gboolean nmwa_fill (NMWirelessApplet *applet) gnome_window_icon_set_default_from_file (ICONDIR"/NMWirelessApplet/wireless-applet.png"); glade_gnome_init (); - glade_file = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_DATADIR, - "NMWirelessApplet/wireless-applet.glade", FALSE, NULL); - if (!glade_file) - { - show_warning_dialog (TRUE, _("The NetworkManager Applet could not find some required resources (the glade file was not found).")); - return (FALSE); - } - gtk_widget_show (nmwa_get_instance (applet)); return (TRUE); } diff --git a/panel-applet/NMWirelessAppletDbus.c b/panel-applet/NMWirelessAppletDbus.c index 47c34e1f7..0c17f594d 100644 --- a/panel-applet/NMWirelessAppletDbus.c +++ b/panel-applet/NMWirelessAppletDbus.c @@ -794,7 +794,7 @@ static void network_device_free_wireless_network_list (NetworkDevice *dev) { g_return_if_fail (dev != NULL); - g_slist_foreach (dev->networks, wireless_network_unref, NULL); + g_slist_foreach (dev->networks, (GFunc) wireless_network_unref, NULL); g_slist_free (dev->networks); dev->networks = NULL; } @@ -1131,7 +1131,7 @@ static void nmwa_dbus_update_devices (NMWirelessApplet *applet) /* Clear out existing device list */ g_mutex_lock (applet->data_mutex); - g_slist_foreach (applet->devices, network_device_unref, NULL); + g_slist_foreach (applet->devices, (GFunc) network_device_unref, NULL); g_slist_free (applet->devices); if (applet->active_device) network_device_unref (applet->active_device); diff --git a/panel-applet/broken-0.png b/panel-applet/broken-0.png deleted file mode 100644 index 6a2996491..000000000 Binary files a/panel-applet/broken-0.png and /dev/null differ diff --git a/panel-applet/connect-0.png b/panel-applet/connect-0.png deleted file mode 100644 index 6e051dd13..000000000 Binary files a/panel-applet/connect-0.png and /dev/null differ diff --git a/panel-applet/connect-1.png b/panel-applet/connect-1.png deleted file mode 100644 index 3ba69e527..000000000 Binary files a/panel-applet/connect-1.png and /dev/null differ diff --git a/panel-applet/connect-2.png b/panel-applet/connect-2.png deleted file mode 100644 index eddad5e25..000000000 Binary files a/panel-applet/connect-2.png and /dev/null differ diff --git a/panel-applet/connect-3.png b/panel-applet/connect-3.png deleted file mode 100644 index 7d7691529..000000000 Binary files a/panel-applet/connect-3.png and /dev/null differ diff --git a/panel-applet/icons/Makefile.am b/panel-applet/icons/Makefile.am index 74da9a9be..38ca664e9 100644 --- a/panel-applet/icons/Makefile.am +++ b/panel-applet/icons/Makefile.am @@ -5,7 +5,7 @@ largeicon_DATA=\ nm-device-wireless.png -smallicondir=${datadir}/icons/hicolor/24x24/apps +smallicondir=${datadir}/icons/hicolor/22x22/apps smallicon_DATA=\ nm-device-wired.png \ nm-connecting00.png \ diff --git a/panel-applet/icons/nm-connecting00.png b/panel-applet/icons/nm-connecting00.png index 38d336648..12fb751fc 100644 Binary files a/panel-applet/icons/nm-connecting00.png and b/panel-applet/icons/nm-connecting00.png differ diff --git a/panel-applet/icons/nm-connecting01.png b/panel-applet/icons/nm-connecting01.png index 15e6fe6c8..bbb5290fe 100644 Binary files a/panel-applet/icons/nm-connecting01.png and b/panel-applet/icons/nm-connecting01.png differ diff --git a/panel-applet/icons/nm-connecting02.png b/panel-applet/icons/nm-connecting02.png index 9ee86b091..711c938fc 100644 Binary files a/panel-applet/icons/nm-connecting02.png and b/panel-applet/icons/nm-connecting02.png differ diff --git a/panel-applet/icons/nm-connecting03.png b/panel-applet/icons/nm-connecting03.png index 9ea9b8b9a..0a5ee4de7 100644 Binary files a/panel-applet/icons/nm-connecting03.png and b/panel-applet/icons/nm-connecting03.png differ diff --git a/panel-applet/icons/nm-detect00.png b/panel-applet/icons/nm-detect00.png index d81e551b2..68ca67578 100644 Binary files a/panel-applet/icons/nm-detect00.png and b/panel-applet/icons/nm-detect00.png differ diff --git a/panel-applet/icons/nm-detect01.png b/panel-applet/icons/nm-detect01.png index 1cbe900ef..074e69358 100644 Binary files a/panel-applet/icons/nm-detect01.png and b/panel-applet/icons/nm-detect01.png differ diff --git a/panel-applet/icons/nm-detect02.png b/panel-applet/icons/nm-detect02.png index 8649e25ce..6873924aa 100644 Binary files a/panel-applet/icons/nm-detect02.png and b/panel-applet/icons/nm-detect02.png differ diff --git a/panel-applet/icons/nm-detect03.png b/panel-applet/icons/nm-detect03.png index 3c378b30b..0fe6014c1 100644 Binary files a/panel-applet/icons/nm-detect03.png and b/panel-applet/icons/nm-detect03.png differ diff --git a/panel-applet/icons/nm-detect04.png b/panel-applet/icons/nm-detect04.png index e6b1aa005..d7a7418ab 100644 Binary files a/panel-applet/icons/nm-detect04.png and b/panel-applet/icons/nm-detect04.png differ diff --git a/panel-applet/icons/nm-detect05.png b/panel-applet/icons/nm-detect05.png index 251245021..ea22788f3 100644 Binary files a/panel-applet/icons/nm-detect05.png and b/panel-applet/icons/nm-detect05.png differ diff --git a/panel-applet/icons/nm-detect06.png b/panel-applet/icons/nm-detect06.png index 3cecca634..a2861a572 100644 Binary files a/panel-applet/icons/nm-detect06.png and b/panel-applet/icons/nm-detect06.png differ diff --git a/panel-applet/icons/nm-detect07.png b/panel-applet/icons/nm-detect07.png index cf976ca41..05ea92838 100644 Binary files a/panel-applet/icons/nm-detect07.png and b/panel-applet/icons/nm-detect07.png differ diff --git a/panel-applet/icons/nm-signal-00.png b/panel-applet/icons/nm-signal-00.png index b2f966d4e..403c8bf9f 100644 Binary files a/panel-applet/icons/nm-signal-00.png and b/panel-applet/icons/nm-signal-00.png differ diff --git a/panel-applet/icons/nm-signal-100.png b/panel-applet/icons/nm-signal-100.png index 2011468b5..bc5fee63a 100644 Binary files a/panel-applet/icons/nm-signal-100.png and b/panel-applet/icons/nm-signal-100.png differ diff --git a/panel-applet/icons/nm-signal-25.png b/panel-applet/icons/nm-signal-25.png index b18d59c47..9ce0ffffc 100644 Binary files a/panel-applet/icons/nm-signal-25.png and b/panel-applet/icons/nm-signal-25.png differ diff --git a/panel-applet/icons/nm-signal-50.png b/panel-applet/icons/nm-signal-50.png index 78241a61f..1f7d30c8e 100644 Binary files a/panel-applet/icons/nm-signal-50.png and b/panel-applet/icons/nm-signal-50.png differ diff --git a/panel-applet/icons/nm-signal-75.png b/panel-applet/icons/nm-signal-75.png index 648cd3ec0..1f0bbb823 100644 Binary files a/panel-applet/icons/nm-signal-75.png and b/panel-applet/icons/nm-signal-75.png differ diff --git a/panel-applet/keyring.png b/panel-applet/keyring.png deleted file mode 100644 index caade38ad..000000000 Binary files a/panel-applet/keyring.png and /dev/null differ diff --git a/panel-applet/menu-info.c b/panel-applet/menu-info.c index db702145e..d5d9055e1 100644 --- a/panel-applet/menu-info.c +++ b/panel-applet/menu-info.c @@ -26,6 +26,7 @@ * Copyright (C) 1999, 2000 Eazel, Inc. */ #include +#include #include "menu-info.h" #include "gtkcellview.h" #include "gtkcellrendererprogress.h" diff --git a/panel-applet/no-link-0.png b/panel-applet/no-link-0.png deleted file mode 100644 index 3b35f7591..000000000 Binary files a/panel-applet/no-link-0.png and /dev/null differ diff --git a/panel-applet/no-networkmanager.png b/panel-applet/no-networkmanager.png deleted file mode 100644 index e51c32c07..000000000 Binary files a/panel-applet/no-networkmanager.png and /dev/null differ diff --git a/panel-applet/signal-1-40.png b/panel-applet/signal-1-40.png deleted file mode 100644 index 25ecd555a..000000000 Binary files a/panel-applet/signal-1-40.png and /dev/null differ diff --git a/panel-applet/signal-41-60.png b/panel-applet/signal-41-60.png deleted file mode 100644 index eb862f046..000000000 Binary files a/panel-applet/signal-41-60.png and /dev/null differ diff --git a/panel-applet/signal-61-80.png b/panel-applet/signal-61-80.png deleted file mode 100644 index be6920467..000000000 Binary files a/panel-applet/signal-61-80.png and /dev/null differ diff --git a/panel-applet/signal-81-100.png b/panel-applet/signal-81-100.png deleted file mode 100644 index 0c9ccad55..000000000 Binary files a/panel-applet/signal-81-100.png and /dev/null differ diff --git a/panel-applet/wired.png b/panel-applet/wired.png deleted file mode 100644 index 1bf6d7d34..000000000 Binary files a/panel-applet/wired.png and /dev/null differ diff --git a/panel-applet/wireless-applet.png b/panel-applet/wireless-applet.png deleted file mode 100644 index a3e9e26f6..000000000 Binary files a/panel-applet/wireless-applet.png and /dev/null differ diff --git a/panel-applet/wireless.png b/panel-applet/wireless.png deleted file mode 100644 index a3e9e26f6..000000000 Binary files a/panel-applet/wireless.png and /dev/null differ diff --git a/po/POTFILES.in b/po/POTFILES.in index 4626a07e1..52bc70fcd 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -4,7 +4,6 @@ info-daemon/networks.glade info-daemon/passphrase.glade info-daemon/NetworkManagerInfoPassphraseDialog.c panel-applet/NMWirelessApplet.c -panel-applet/NMWirelessApplet.xml -panel-applet/wireless-applet.glade -examples/python/systray/eggtrayicon.c +panel-applet/essid.glade panel-applet/menu-info.c +examples/python/systray/eggtrayicon.c