167 lines
4.3 KiB
Python
167 lines
4.3 KiB
Python
import gi
|
|
|
|
gi.require_version("Gtk", "3.0")
|
|
from fabric.widgets.box import Box
|
|
from fabric.widgets.label import Label
|
|
from fabric.widgets.stack import Stack
|
|
|
|
import config.data as data
|
|
from modules.bluetooth import BluetoothConnections
|
|
from modules.buttons import Buttons
|
|
from modules.calendar import Calendar
|
|
from modules.controls import ControlSliders
|
|
from modules.metrics import Metrics
|
|
from modules.network import NetworkConnections
|
|
from modules.notifications import NotificationHistory
|
|
from modules.player import Player
|
|
|
|
|
|
class Widgets(Box):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(
|
|
name="dash-widgets",
|
|
h_align="fill",
|
|
v_align="fill",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
visible=True,
|
|
all_visible=True,
|
|
)
|
|
|
|
vertical_layout = False
|
|
if data.PANEL_THEME == "Panel" and (
|
|
data.BAR_POSITION in ["Left", "Right"]
|
|
or data.PANEL_POSITION in ["Start", "End"]
|
|
):
|
|
vertical_layout = True
|
|
|
|
calendar_view_mode = "week" if vertical_layout else "month"
|
|
|
|
self.calendar = Calendar(view_mode=calendar_view_mode)
|
|
|
|
self.notch = kwargs["notch"]
|
|
|
|
self.buttons = Buttons(widgets=self)
|
|
self.bluetooth = BluetoothConnections(widgets=self)
|
|
|
|
self.box_1 = Box(
|
|
name="box-1",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
)
|
|
|
|
self.box_2 = Box(
|
|
name="box-2",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
)
|
|
|
|
self.box_3 = Box(
|
|
name="box-3",
|
|
v_expand=True,
|
|
)
|
|
|
|
self.controls = ControlSliders()
|
|
|
|
self.player = Player()
|
|
|
|
self.metrics = Metrics()
|
|
|
|
self.notification_history = NotificationHistory()
|
|
|
|
self.network_connections = NetworkConnections(widgets=self)
|
|
|
|
self.applet_stack = Stack(
|
|
h_expand=True,
|
|
v_expand=True,
|
|
transition_type="slide-left-right",
|
|
children=[
|
|
self.notification_history,
|
|
self.network_connections,
|
|
self.bluetooth,
|
|
],
|
|
)
|
|
|
|
self.applet_stack_box = Box(
|
|
name="applet-stack",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
h_align="fill",
|
|
children=[
|
|
self.applet_stack,
|
|
],
|
|
)
|
|
|
|
if not vertical_layout:
|
|
self.children_1 = [
|
|
Box(
|
|
name="container-sub-1",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
spacing=8,
|
|
children=[
|
|
self.calendar,
|
|
self.applet_stack_box,
|
|
],
|
|
),
|
|
self.metrics,
|
|
]
|
|
else:
|
|
self.children_1 = [
|
|
self.applet_stack_box,
|
|
self.calendar, # Weekly view when vertical
|
|
self.player,
|
|
]
|
|
|
|
self.container_1 = Box(
|
|
name="container-1",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
orientation="h" if not vertical_layout else "v",
|
|
spacing=8,
|
|
children=self.children_1,
|
|
)
|
|
|
|
self.container_2 = Box(
|
|
name="container-2",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
orientation="v",
|
|
spacing=8,
|
|
children=[
|
|
self.buttons,
|
|
self.controls,
|
|
self.container_1,
|
|
],
|
|
)
|
|
|
|
if not vertical_layout:
|
|
self.children_3 = [
|
|
self.player,
|
|
self.container_2,
|
|
]
|
|
else: # vertical_layout
|
|
self.children_3 = [
|
|
self.container_2,
|
|
]
|
|
|
|
self.container_3 = Box(
|
|
name="container-3",
|
|
h_expand=True,
|
|
v_expand=True,
|
|
orientation="h",
|
|
spacing=8,
|
|
children=self.children_3,
|
|
)
|
|
|
|
self.add(self.container_3)
|
|
|
|
def show_bt(self):
|
|
self.applet_stack.set_visible_child(self.bluetooth)
|
|
|
|
def show_notif(self):
|
|
self.applet_stack.set_visible_child(self.notification_history)
|
|
|
|
def show_network_applet(self):
|
|
self.notch.open_notch("network_applet")
|