pane: Add a GtkPane to the Window's grid

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-06-09 08:55:40 -04:00
parent ac5c8c30d8
commit 9339ce22bb
4 changed files with 50 additions and 0 deletions

25
ui/pane.py Normal file
View File

@ -0,0 +1,25 @@
# Copyright 2021 (c) Anna Schumaker.
from lib import settings
from gi.repository import Gtk
Pane = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
def initialize():
settings.initialize("sidebar.width", 250)
initialize()
Pane.set_position(settings.get_int("sidebar.width"))
Pane.set_vexpand(True)
def on_change_position(pane, position):
settings.set("sidebar.width", pane.get_position())
Pane.connect("notify::position", on_change_position)
#
# Create some dummy widgets so the pane actually shows up
#
Sidebar = Gtk.Label.new(str="Sidebar")
Content = Gtk.Label.new(str="Content")
Pane.set_start_child(Sidebar)
Pane.set_end_child(Content)

20
ui/test_pane.py Normal file
View File

@ -0,0 +1,20 @@
# Copyright 2021 (c) Anna Schumaker.
from lib import settings
from . import pane
from gi.repository import Gtk
import unittest
class TestUIPane(unittest.TestCase):
def setUpClass():
pane.initialize()
def test_pane_init(self):
self.assertIsInstance(pane.Pane, Gtk.Paned)
self.assertTrue(pane.Pane.get_vexpand())
self.assertEqual(pane.Pane.get_position(), 250)
self.assertEqual(settings.get_int("sidebar.width"), 250)
pane.Pane.set_position(200)
self.assertEqual(pane.Pane.get_position(), 200)
self.assertEqual(settings.get_int("sidebar.width"), 200)

View File

@ -3,6 +3,7 @@ from lib import settings
from lib import version
from . import window
from . import header
from . import pane
from gi.repository import Gtk
import unittest
@ -21,6 +22,7 @@ class TestUIWindow(unittest.TestCase):
self.assertEqual(window.Window.get_titlebar(), header.Header)
self.assertEqual(window.Window.get_child(), window.Grid)
self.assertIn(pane.Pane, window.Grid)
window.Window.present()
self.assertEqual(window.Window.get_title(), version.string())

View File

@ -5,6 +5,7 @@ import gi
gi.require_version("Gtk", "4.0")
from gi.repository import Gtk
from . import header
from . import pane
Window = Gtk.ApplicationWindow()
Grid = Gtk.Grid()
@ -15,6 +16,8 @@ def initialize():
settings.initialize("window.maximized", False)
initialize()
Grid.attach(pane.Pane, 0, 0, 4, 1)
Window.set_title(version.string())
Window.set_icon_name("emmental")
Window.set_titlebar(header.Header)