namespace ui {
namespace wifi {
+public class WifiIcon : Gtk.StatusIcon
+{
+ bool requested = false;
+
+ public WifiIcon()
+ {
+ activate += on_activate;
+ update_icon();
+ }
+
+ private void on_activate()
+ {
+ requested = !requested;
+ update_icon();
+ if (requested)
+ {
+ //zavai.wifi.wifi.start();
+ stderr.printf("wifi should be started here\n");
+ stderr.printf("wifi status: %d\n", (int) zavai.wifi.wifi.started);
+ }
+ else
+ {
+ //zavai.wifi.wifi.stop();
+ stderr.printf("wifi should be stopped here\n");
+ stderr.printf("wifi status: %d\n", (int) zavai.wifi.wifi.started);
+ }
+ }
+
+ protected void update_icon()
+ {
+ string name = zavai.config.icondir + "/";
+ name += (active() ? "wifi_1.png" : "wifi_0.png");
+ stderr.printf("load icon from %s\n", name);
+ set_from_file(name);
+ }
+
+ private bool active()
+ {
+ return zavai.wifi.wifi.started;
+ }
+}
+
+WifiIcon icon;
+
public void init()
{
// Menus
zavai.menu_misc.add_service_toggle(zavai.wifi.wifi, "Start Wifi", "Stop Wifi");
+ // Icon
+ icon = new WifiIcon();
+ icon.set_visible(true);
}
}