summaryrefslogtreecommitdiffstats
path: root/SidebarView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SidebarView.cpp')
-rw-r--r--SidebarView.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/SidebarView.cpp b/SidebarView.cpp
index 04c6dd0..feea1f8 100644
--- a/SidebarView.cpp
+++ b/SidebarView.cpp
@@ -1,6 +1,13 @@
#include "SidebarView.h"
+void SidebarView::spinButtonHeightChanged(GtkSpinButton *spinbutton, SidebarView *view) {
+ if(!view->editor->getActiveRoom())
+ return;
+
+ view->editor->getActiveRoom()->setHeight(gtk_spin_button_get_value(spinbutton));
+}
+
void SidebarView::buttonClicked(GtkButton *button, SidebarView *sidebar) {
sidebar->editor->addRoom();
}
@@ -28,9 +35,8 @@ SidebarView::SidebarView(EditManager *editor) {
//gtk_widget_add_events(entryName, GDK_FOCUS_CHANGE_MASK);
gtk_box_pack_start(GTK_BOX(sidebar), entryName, FALSE, FALSE, 0);
- GtkWidget *tableRoomData = gtk_table_new(2, 2, FALSE);
+ GtkWidget *tableRoomData = gtk_table_new(2, 3, FALSE);
gtk_table_set_row_spacings(GTK_TABLE(tableRoomData), 5);
- gtk_table_set_col_spacings(GTK_TABLE(tableRoomData), 10);
gtk_box_pack_start(GTK_BOX(sidebar), tableRoomData, FALSE, FALSE, 5);
GtkWidget *labelAreaLabel = gtk_label_new("Room area:");
@@ -49,6 +55,17 @@ SidebarView::SidebarView(EditManager *editor) {
gtk_misc_set_alignment(GTK_MISC(labelPerimeter), 1.0, 0.5);
gtk_table_attach_defaults(GTK_TABLE(tableRoomData), labelPerimeter, 1, 2, 1, 2);
+ GtkWidget *labelHeight = gtk_label_new("Height:");
+ gtk_misc_set_alignment(GTK_MISC(labelHeight), 0.0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(tableRoomData), labelHeight, 0, 1, 2, 3);
+
+ spinButtonHeight = gtk_spin_button_new_with_range(0, 10000, 0.1f);
+ gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spinButtonHeight), 2);
+ gtk_entry_set_alignment(GTK_ENTRY(spinButtonHeight), 1.0);
+ gtk_table_attach(GTK_TABLE(tableRoomData), spinButtonHeight, 1, 2, 2, 3, (GtkAttachOptions)(GTK_EXPAND|GTK_SHRINK|GTK_FILL),
+ (GtkAttachOptions)(GTK_EXPAND|GTK_FILL), 0, 0);
+ g_signal_connect(G_OBJECT(spinButtonHeight), "value-changed", G_CALLBACK(spinButtonHeightChanged), this);
+
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);
@@ -76,6 +93,9 @@ void SidebarView::update() {
string = g_strdup_printf("%.2f", editor->getActiveRoom()->perimeter());
gtk_label_set_text(GTK_LABEL(labelPerimeter), string);
g_free(string);
+
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinButtonHeight), editor->getActiveRoom()->getHeight());
+ gtk_widget_set_sensitive(spinButtonHeight, TRUE);
}
else {
gtk_entry_set_text(GTK_ENTRY(entryName), "");
@@ -83,5 +103,8 @@ void SidebarView::update() {
gtk_label_set_text(GTK_LABEL(labelArea), NULL);
gtk_label_set_text(GTK_LABEL(labelPerimeter), NULL);
+
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinButtonHeight), 0.0);
+ gtk_widget_set_sensitive(spinButtonHeight, FALSE);
}
}