#include "SidebarAdd.h"
void SidebarAdd::buttonClicked(GtkButton *button, SidebarAdd *sidebar) {
sidebar->editor->finishRoom();
}
SidebarAdd::SidebarAdd(EditManager *editor) {
this->editor = editor;
sidebar = gtk_vbox_new(FALSE, 0);
g_object_ref_sink(G_OBJECT(sidebar));
GtkWidget *labelRoomInfo = gtk_label_new(NULL);
gtk_label_set_markup(GTK_LABEL(labelRoomInfo), "<b>Add room</b>");
gtk_misc_set_alignment(GTK_MISC(labelRoomInfo), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(sidebar), labelRoomInfo, FALSE, FALSE, 5);
buttonAdd = gtk_button_new_with_label("Add room");
g_signal_connect(G_OBJECT(buttonAdd), "clicked", G_CALLBACK(buttonClicked), this);
gtk_box_pack_end(GTK_BOX(sidebar), buttonAdd, FALSE, FALSE, 0);
gtk_widget_show_all(sidebar);
SidebarAdd::~SidebarAdd() {
g_object_unref(G_OBJECT(sidebar));
GtkWidget* SidebarAdd::getWidget() {
return sidebar;
void SidebarAdd::update() {
if(!editor->getActiveRoom())
return;
if(editor->getActiveRoom()->size() > 2 && editor->polygonOk(*editor->getActiveRoom()))
gtk_widget_set_sensitive(buttonAdd, TRUE);
else
gtk_widget_set_sensitive(buttonAdd, FALSE);