aboutsummaryrefslogtreecommitdiff
path: root/src/application.py
blob: b2893f7f2a957bb9a3672822e354112cd8a30d01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# To add CSS
# https://github.com/Taiko2k/GTK4PythonTutorial/blob/main/README.md#adding-your-custom-css-stylesheet

import gi
gi.require_version('Adw', '1')
from gi.repository import Adw, Gtk, Gdk

from src.main_window import MainWindow

class Application(Adw.Application):
    def __init__(self, resources, library, ereader, conn, **kwargs):
        super().__init__(**kwargs)
        self.connect('activate', self.on_activate)

        self._resources = resources
        self._library = library
        self._ereader = ereader
        self._conn = conn

        # Dark theme
        sm = self.get_style_manager()
        sm.set_color_scheme(Adw.ColorScheme.PREFER_DARK)

        # Style
        load_style()

    def on_activate(self, app):
        self.win = MainWindow(self._resources, self._library, self._ereader, self._conn, application=app)
        self.win.present()

def load_style():
    provider = Gtk.CssProvider()
    provider.load_from_path('resources/style.css')
    Gtk.StyleContext.add_provider_for_display(
        Gdk.Display.get_default(),
        provider,
        Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
    )