emmental/ui/window.py

43 lines
1.5 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
import audio
import lib
import sidebar
from gi.repository import Gtk
from . import keyboard
from . import pane
class Box(Gtk.Box):
def __init__(self):
Gtk.Box.__init__(self)
if sidebar.Switcher.get_parent(): sidebar.Switcher.unparent()
self.append(sidebar.Switcher)
self.append(pane.Pane())
class Window(Gtk.ApplicationWindow):
def __init__(self):
Gtk.ApplicationWindow.__init__(self)
self.set_icon_name("emmental")
self.set_title(lib.version.string())
self.set_titlebar(audio.Header())
self.set_child(Box())
self.add_controller(keyboard.Event)
lib.settings.initialize("window.width", 1400)
lib.settings.initialize("window.height", 800)
lib.settings.initialize("window.maximized", False)
self.set_default_size(lib.settings.get_int("window.width"),
lib.settings.get_int("window.height"))
self.connect("notify::default-width", self.width_changed)
self.connect("notify::default-height", self.height_changed)
self.connect("notify::maximized", self.maximized)
def width_changed(self, window, param):
lib.settings.set("window.width", self.get_default_size().width)
def height_changed(self, window, param):
lib.settings.set("window.height", self.get_default_size().height)
def maximized(self, window, param):
lib.settings.set("window.maximized", window.is_maximized())