#include "gpanthera.hh"
#include <gtkmm.h>
#include <glibmm.h>
#include <glibmm/ustring.h>
#include <iostream>
#include <memory>

int main(int argc, char *argv[]) {
    auto app = Gtk::Application::create(argc, argv, "org.gpanthera.demo");

    Gtk::Window window;
    window.set_default_size(600, 400);

    auto layout_manager = std::make_shared<gPanthera::LayoutManager>();
    auto dock_stack = Gtk::make_managed<gPanthera::DockStack>(layout_manager, "Edge");
    auto switcher = Gtk::make_managed<gPanthera::DockStackSwitcher>(dock_stack);
    auto pane_content = Gtk::make_managed<Gtk::Box>(Gtk::ORIENTATION_VERTICAL, 0);
    pane_content->pack_start(*Gtk::make_managed<Gtk::Label>("Pane 1 content"), Gtk::PACK_EXPAND_WIDGET);
    auto pane_icon = Gtk::make_managed<Gtk::Image>();
    pane_icon->set_from_icon_name("go-home-symbolic", Gtk::ICON_SIZE_MENU);
    auto pane = Gtk::make_managed<gPanthera::DockablePane>(layout_manager, *pane_content, "pane1", "Pane 1", pane_icon);
    dock_stack->add_pane(*pane);
    switcher->update_buttons();

    Gtk::Box vbox(Gtk::ORIENTATION_VERTICAL);
    vbox.pack_start(*switcher, Gtk::PACK_SHRINK);
    vbox.pack_start(*dock_stack);

    window.add(vbox);
    window.show_all();

    return app->run(window);
}
