panorama_panel.py
Python script, ASCII text executable
1import gi 2gi.require_version("Gtk", "4.0") 3 4from gi.repository import Gtk 5 6 7class Applet(Gtk.Box): 8name = "Generic applet" 9description = "" 10 11def __init__(self, orientation=Gtk.Orientation.HORIZONTAL, config=None): 12super().__init__(orientation=orientation) 13if orientation == Gtk.Orientation.VERTICAL: 14self.set_hexpand(True) 15self.set_vexpand(False) 16elif orientation == Gtk.Orientation.HORIZONTAL: 17self.set_vexpand(True) 18self.set_hexpand(False) 19 20def get_config(self): 21return {} 22 23def set_panel_position(self, position: Gtk.PositionType): 24return 25 26 27def get_panel_position(applet: Applet) -> Gtk.PositionType: 28return applet.get_root().position 29 30 31OPPOSITE_POSITION = { 32Gtk.PositionType.TOP: Gtk.PositionType.BOTTOM, 33Gtk.PositionType.BOTTOM: Gtk.PositionType.TOP, 34Gtk.PositionType.LEFT: Gtk.PositionType.RIGHT, 35Gtk.PositionType.RIGHT: Gtk.PositionType.LEFT, 36} 37 38POSITION_TO_ARROW = { 39Gtk.PositionType.TOP: Gtk.ArrowType.UP, 40Gtk.PositionType.BOTTOM: Gtk.ArrowType.DOWN, 41Gtk.PositionType.LEFT: Gtk.ArrowType.LEFT, 42Gtk.PositionType.RIGHT: Gtk.ArrowType.RIGHT, 43} 44