import gi
gi.require_version("Gtk", "4.0")

from gi.repository import Gtk


class Applet(Gtk.Box):
    name = "Generic applet"
    description = ""

    def __init__(self, orientation=Gtk.Orientation.HORIZONTAL, config=None):
        super().__init__(orientation=orientation)
        if orientation == Gtk.Orientation.VERTICAL:
            self.set_hexpand(True)
            self.set_vexpand(False)
        elif orientation == Gtk.Orientation.HORIZONTAL:
            self.set_vexpand(True)
            self.set_hexpand(False)

    def get_config(self):
        return {}

    def set_panel_position(self, position: Gtk.PositionType):
        return


def get_panel_position(applet: Applet) -> Gtk.PositionType:
    return applet.get_root().position


OPPOSITE_POSITION = {
    Gtk.PositionType.TOP: Gtk.PositionType.BOTTOM,
    Gtk.PositionType.BOTTOM: Gtk.PositionType.TOP,
    Gtk.PositionType.LEFT: Gtk.PositionType.RIGHT,
    Gtk.PositionType.RIGHT: Gtk.PositionType.LEFT,
}

POSITION_TO_ARROW = {
    Gtk.PositionType.TOP: Gtk.ArrowType.UP,
    Gtk.PositionType.BOTTOM: Gtk.ArrowType.DOWN,
    Gtk.PositionType.LEFT: Gtk.ArrowType.LEFT,
    Gtk.PositionType.RIGHT: Gtk.ArrowType.RIGHT,
}
