diff options
-rw-r--r-- | src/accesspoint.vala | 12 | ||||
-rw-r--r-- | src/wifi.vala | 22 |
2 files changed, 23 insertions, 11 deletions
diff --git a/src/accesspoint.vala b/src/accesspoint.vala index cc2eb4b..3c51018 100644 --- a/src/accesspoint.vala +++ b/src/accesspoint.vala @@ -8,6 +8,7 @@ public class AstalNetwork.AccessPoint : Object { public int last_seen { get { return ap.last_seen; } } public uint max_bitrate { get { return ap.max_bitrate; } } public uint8 strength { get { return ap.strength; } } + public string icon_name { get; private set; } public NM.80211Mode mode { get { return ap.mode; } } public NM.80211ApFlags flags { get { return ap.flags; } } public NM.80211ApSecurityFlags rsn_flags { get { return ap.rsn_flags; } } @@ -28,7 +29,18 @@ public class AstalNetwork.AccessPoint : Object { ap.notify.connect((pspec) => { if (get_class().find_property(pspec.name) != null) notify_property(pspec.name); + if (pspec.name == "strength") + icon_name = _icon(); }); + icon_name = _icon(); + } + + private string _icon() { + if (strength >= 80) return Wifi.ICON_EXCELLENT; + if (strength >= 60) return Wifi.ICON_GOOD; + if (strength >= 40) return Wifi.ICON_OK; + if (strength >= 20) return Wifi.ICON_WEAK; + return Wifi.ICON_NONE; } // TODO: connect to ap diff --git a/src/wifi.vala b/src/wifi.vala index 27cf27f..c9e9881 100644 --- a/src/wifi.vala +++ b/src/wifi.vala @@ -1,15 +1,15 @@ public class AstalNetwork.Wifi : Object { - private const string ICON_EXCELLENT = "network-wireless-signal-excellent-symbolic"; - private const string ICON_OK = "network-wireless-signal-ok-symbolic"; - private const string ICON_GOOD = "network-wireless-signal-good-symbolic"; - private const string ICON_WEAK = "network-wireless-signal-weak-symbolic"; - private const string ICON_NONE = "network-wireless-signal-none-symbolic"; - private const string ICON_ACQUIRING = "network-wireless-acquiring-symbolic"; - private const string ICON_CONNECTED = "network-wireless-connected-symbolic"; - private const string ICON_DISABLED = "network-wireless-disabled-symbolic"; - private const string ICON_OFFLINE = "network-wireless-offline-symbolic"; - private const string ICON_NO_ROUTE = "network-wireless-no-route-symbolic"; - private const string ICON_HOTSPOT = "network-wireless-hotspot-symbolic"; + internal const string ICON_EXCELLENT = "network-wireless-signal-excellent-symbolic"; + internal const string ICON_OK = "network-wireless-signal-ok-symbolic"; + internal const string ICON_GOOD = "network-wireless-signal-good-symbolic"; + internal const string ICON_WEAK = "network-wireless-signal-weak-symbolic"; + internal const string ICON_NONE = "network-wireless-signal-none-symbolic"; + internal const string ICON_ACQUIRING = "network-wireless-acquiring-symbolic"; + internal const string ICON_CONNECTED = "network-wireless-connected-symbolic"; + internal const string ICON_DISABLED = "network-wireless-disabled-symbolic"; + internal const string ICON_OFFLINE = "network-wireless-offline-symbolic"; + internal const string ICON_NO_ROUTE = "network-wireless-no-route-symbolic"; + internal const string ICON_HOTSPOT = "network-wireless-hotspot-symbolic"; private HashTable<string, AccessPoint> _access_points = new HashTable<string, AccessPoint>(str_hash, str_equal); |