emmental/ui/window.py

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)