diff --git a/modules/dashboard/bluetooth.py b/modules/dashboard/bluetooth.py index fdab532..f91e952 100644 --- a/modules/dashboard/bluetooth.py +++ b/modules/dashboard/bluetooth.py @@ -5,18 +5,11 @@ from fabric.widgets.centerbox import CenterBox from fabric.widgets.image import Image from fabric.widgets.label import Label from fabric.widgets.scrolledwindow import ScrolledWindow -from gi.repository import Gdk -from modules.dashboard.tile import Tile +from modules.dashboard.tile import Tile, add_hover_cursor import utils.icons as icons -def add_hover_cursor(widget): - widget.add_events(Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK) - widget.connect("enter-notify-event", lambda w, e: w.get_window().set_cursor(Gdk.Cursor.new_from_name(w.get_display(), "pointer")) if w.get_window() else None) - widget.connect("leave-notify-event", lambda w, e: w.get_window().set_cursor(None) if w.get_window() else None) - - class BluetoothDeviceSlot(CenterBox): """A widget representing a single Bluetooth device in the dashboard.""" diff --git a/modules/dashboard/network.py b/modules/dashboard/network.py index 6bc5e64..929016e 100644 --- a/modules/dashboard/network.py +++ b/modules/dashboard/network.py @@ -5,19 +5,13 @@ from fabric.widgets.centerbox import CenterBox from fabric.widgets.image import Image from fabric.widgets.label import Label from fabric.widgets.scrolledwindow import ScrolledWindow -from gi.repository import Gtk, Gdk, GLib +from gi.repository import Gtk, GLib -from modules.dashboard.tile import Tile +from modules.dashboard.tile import Tile, add_hover_cursor from services.network import NetworkClient import utils.icons as icons -def add_hover_cursor(widget): - widget.add_events(Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK) - widget.connect("enter-notify-event", lambda w, e: w.get_window().set_cursor(Gdk.Cursor.new_from_name(w.get_display(), "pointer")) if w.get_window() else None) - widget.connect("leave-notify-event", lambda w, e: w.get_window().set_cursor(None) if w.get_window() else None) - - class WifiAccessPointSlot(CenterBox): """A widget representing a single WiFi access point in the dashboard.""" diff --git a/modules/dashboard/tile.py b/modules/dashboard/tile.py index b3a9c92..151a615 100644 --- a/modules/dashboard/tile.py +++ b/modules/dashboard/tile.py @@ -25,9 +25,17 @@ from fabric.widgets.button import Button from fabric.widgets.label import Label from fabric.widgets.stack import Stack from fabric.widgets.revealer import Revealer +from gi.repository import Gdk import utils.icons as icons +def add_hover_cursor(widget): + """Add hover cursor functionality to a widget.""" + widget.add_events(Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK) + widget.connect("enter-notify-event", lambda w, e: w.get_window().set_cursor(Gdk.Cursor.new_from_name(w.get_display(), "pointer")) if w.get_window() else None) + widget.connect("leave-notify-event", lambda w, e: w.get_window().set_cursor(None) if w.get_window() else None) + + class Tile(Box): """ A dashboard tile widget that displays an icon, label, and properties. @@ -96,6 +104,8 @@ class Tile(Box): child=Label(style_classes="tile-icon", markup=icons.arrow_head), on_clicked=self.handle_click, ) + # Add hover cursor to menu button + add_hover_cursor(self.menu_button) content_children = [self.type_box, self.menu_button] else: content_children = [self.type_box]