45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from lib import settings
|
|
from lib import version
|
|
import sidebar
|
|
import gi
|
|
gi.require_version("Gtk", "4.0")
|
|
from gi.repository import Gtk
|
|
from . import header
|
|
from . import keyboard
|
|
from . import pane
|
|
|
|
Window = Gtk.ApplicationWindow()
|
|
Box = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 0)
|
|
|
|
def initialize():
|
|
settings.initialize("window.width", 1100)
|
|
settings.initialize("window.height", 600)
|
|
settings.initialize("window.maximized", False)
|
|
initialize()
|
|
|
|
Box.append(sidebar.Switcher)
|
|
Box.append(pane.Pane)
|
|
|
|
Window.add_controller(keyboard.Event)
|
|
Window.set_title(version.string())
|
|
Window.set_icon_name("emmental")
|
|
Window.set_titlebar(header.Header)
|
|
Window.set_child(Box)
|
|
Window.set_default_size(settings.get_int("window.width"),
|
|
settings.get_int("window.height"))
|
|
if settings.get_bool("window.maximized"):
|
|
Window.maximize()
|
|
|
|
def on_change_width(window, width):
|
|
settings.set("window.width", window.get_default_size().width)
|
|
Window.connect("notify::default-width", on_change_width)
|
|
|
|
def on_change_height(window, height):
|
|
settings.set("window.height", window.get_default_size().height)
|
|
Window.connect("notify::default-height", on_change_height)
|
|
|
|
def on_maximized(window, maximized):
|
|
settings.set("window.maximized", window.is_maximized())
|
|
Window.connect("notify::maximized", on_maximized)
|