summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-08-04 01:31:19 +0200
committerAylur <[email protected]>2024-08-04 01:31:19 +0200
commit652e23a6fd7da58461bbf0a1b022be0d0a0896f4 (patch)
tree996c1acc7ce181e16c98573300520339ff4b9771
parent99e46734e2a23a2bb9d1aa6e1775eda85105ce0e (diff)
feat: accesspoint icons
-rw-r--r--src/accesspoint.vala12
-rw-r--r--src/wifi.vala22
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);