summaryrefslogtreecommitdiffstats
path: root/Drawer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Drawer.cpp')
-rw-r--r--Drawer.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/Drawer.cpp b/Drawer.cpp
index bea6a59..d2d50bb 100644
--- a/Drawer.cpp
+++ b/Drawer.cpp
@@ -106,11 +106,15 @@ void Drawer::updateScrolling() {
else
xCenter = gtk_adjustment_get_value(hAdjustment);
+ g_object_set(G_OBJECT(hRuler), "lower", xCenter-getWidth()/scale/2, "upper", xCenter+getWidth()/scale/2, NULL);
+
if((getImageHeight())*scale < getHeight())
yCenter = 0;
else
yCenter = gtk_adjustment_get_value(vAdjustment);
+ g_object_set(G_OBJECT(vRuler), "lower", yCenter-getHeight()/scale/2, "upper", yCenter+getHeight()/scale/2, NULL);
+
gtk_widget_queue_draw(drawingArea);
}
@@ -153,6 +157,9 @@ void Drawer::updateHoveredPoint(float x, float y) {
Vertex v(x, y);
viewToImage(&v);
window->getEditManager().setHoveredVertex(&v);
+
+ g_object_set(G_OBJECT(hRuler), "position", v.getX(), NULL);
+ g_object_set(G_OBJECT(vRuler), "position", v.getY(), NULL);
}
void Drawer::render() {
@@ -192,7 +199,7 @@ Drawer::Drawer(Window *window, GdkGLConfig *glconfig) : renderer(&window->getEdi
xCenter = 0;
yCenter = 0;
- drawer = gtk_table_new(2, 2, FALSE);
+ drawer = gtk_table_new(3, 3, FALSE);
g_object_ref_sink(G_OBJECT(drawer));
drawingArea = gtk_drawing_area_new();
@@ -207,18 +214,24 @@ Drawer::Drawer(Window *window, GdkGLConfig *glconfig) : renderer(&window->getEdi
g_signal_connect(G_OBJECT(drawingArea), "motion-notify-event", G_CALLBACK(eventHandler), this);
g_signal_connect(G_OBJECT(drawingArea), "scroll-event", G_CALLBACK(eventHandler), this);
gtk_widget_add_events(drawingArea, GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_RELEASE_MASK);
- gtk_table_attach(GTK_TABLE(drawer), drawingArea, 0, 1, 0, 1, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), 0, 0);
+ gtk_table_attach(GTK_TABLE(drawer), drawingArea, 1, 2, 1, 2, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), 0, 0);
hAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 0, 10, 100, 100));
GtkWidget *hScroll = gtk_hscrollbar_new(hAdjustment);
g_signal_connect(G_OBJECT(hScroll), "value-changed", G_CALLBACK(valueChanged), this);
- gtk_table_attach(GTK_TABLE(drawer), hScroll, 0, 1, 1, 2, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), (GtkAttachOptions)0, 0, 0);
+ gtk_table_attach(GTK_TABLE(drawer), hScroll, 1, 2, 2, 3, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), (GtkAttachOptions)0, 0, 0);
vAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 0, 10, 100, 100));
GtkWidget *vScroll = gtk_vscrollbar_new(vAdjustment);
g_signal_connect(G_OBJECT(vScroll), "value-changed", G_CALLBACK(valueChanged), this);
- gtk_table_attach(GTK_TABLE(drawer), vScroll, 1, 2, 0, 1, (GtkAttachOptions)0, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), 0, 0);
-
+ gtk_table_attach(GTK_TABLE(drawer), vScroll, 2, 3, 1, 2, (GtkAttachOptions)0, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), 0, 0);
+
+ hRuler = gtk_hruler_new();
+ gtk_table_attach(GTK_TABLE(drawer), hRuler, 1, 2, 0, 1, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), (GtkAttachOptions)0, 0, 0);
+
+ vRuler = gtk_vruler_new();
+ gtk_table_attach(GTK_TABLE(drawer), vRuler, 0, 1, 1, 2, (GtkAttachOptions)0, (GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK), 0, 0);
+
gtk_widget_show_all(drawer);
}