pane: Add a GtkPane to the Window's grid
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
ac5c8c30d8
commit
9339ce22bb
|
@ -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)
|
|
@ -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)
|
|
@ -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())
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue