#!/usr/bin/env python3
import sys
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
from pathlib import Path
from layoutswitcherlib.layoutsbox import LayoutBox, Command


class HeaderBarWindow(Gtk.Window):

    def __init__(self):
        """ initialize main window """
        self.layout = 'manjaro'
        Gtk.Window.__init__(self, title="Gnome Layout Switcher")
        self.set_default_size(650, 550)
        self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
        self.set_border_width(1)
        try:
            self.set_icon_from_file(str(Path(__file__).parent.resolve())+"/../data/gnome-layout-switcher.svg")
        except Exception:
            self.set_icon_from_file("/usr/share/icons/hicolor/scalable/apps/gnome-layout-switcher.svg")

        hb = Gtk.HeaderBar()
        hb.set_show_close_button(True)
        hb.props.title = "Layout Switcher"
        self.set_titlebar(hb)

        self.main_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.add(self.main_box)

        self.app_box = LayoutBox(self)
        self.main_box.pack_start(self.app_box, True, True, 0)
        self.main_box.show_all()

        self.connect('delete-event', Gtk.main_quit)
        self.connect('destroy', self.on_main_window_destroy)

    @staticmethod
    def on_main_window_destroy(widget):
        Gtk.main_quit()


if len(sys.argv) == 1:
    # Show the window
    win = HeaderBarWindow()
    win.show_all()
    Gtk.main()
else:
    Command.cli()
