diff doodle/gtk/cairo_canvas.d @ 88:100dd23c7bdf

Ch ch ch changes: * Handle SIGINT like a geek for now * GtkD Context has no destructor and hence it would seem, a memory leak * No more gtk_* C-function invocations * Configured my GtkD patches * (Comments)
author David Bryant <bagnose@gmail.com>
date Wed, 18 Aug 2010 23:51:43 +0930
parents 98980cee8c5b
children 467febed7367
line wrap: on
line diff
--- a/doodle/gtk/cairo_canvas.d	Mon Aug 16 22:54:16 2010 +0930
+++ b/doodle/gtk/cairo_canvas.d	Wed Aug 18 23:51:43 2010 +0930
@@ -208,14 +208,9 @@
         bool onExpose(GdkEventExpose * event, Widget widget) {
             assert(widget is _drawingArea);
 
-            Drawable dr = _drawingArea.getWindow;
-
-            int width, height;
-            dr.getSize(width, height);
-            //trace("Got expose %dx%d\n", width, height);
-
-            scope modelCr = new Context(dr);
-            scope screenCr = new Context(dr);
+            auto dr = _drawingArea.getWindow;
+            scope modelCr = new Context(dr);            // Causing a memory leak!
+            scope screenCr = new Context(dr);           // Causing a memory leak!
 
             Rectangle screenDamage =
                 event is null ? _screenModel.viewBoundsScreen :
@@ -344,8 +339,8 @@
             //trace("onGrabFocus");
         }
 
-        void onGrabNotify(gboolean what, Widget widget){
-            trace("onGrabNotify");
+        void onGrabNotify(gboolean what, Widget widget) {
+            trace("onGrabNotify: %s", what);
         }
 
         void onAdjustmentValueChanged(Adjustment adjustment) {
@@ -393,28 +388,18 @@
             Rectangle viewBoundsModel = _screenModel.viewBoundsModel;
 
             // Update the adjustments
-
-            GtkAdjustment * hGtkAdjustment = _hAdjustment.getAdjustmentStruct;
-            GtkAdjustment * vGtkAdjustment = _vAdjustment.getAdjustmentStruct;
-
-            gtk_adjustment_set_lower(hGtkAdjustment, _screenModel.canvasBoundsModel.x0);
-            gtk_adjustment_set_upper(hGtkAdjustment, _screenModel.canvasBoundsModel.x1);
-            gtk_adjustment_set_value(hGtkAdjustment, viewLeftBottom.x);
-            gtk_adjustment_set_step_increment(hGtkAdjustment, _screenModel.canvasBoundsModel.w / 16.0);
-            gtk_adjustment_set_page_increment(hGtkAdjustment, _screenModel.canvasBoundsModel.w / 4.0);
-            gtk_adjustment_set_page_size(hGtkAdjustment, viewBoundsModel.w);
-
-            gtk_adjustment_set_lower(vGtkAdjustment, _screenModel.canvasBoundsModel.y0);
-            gtk_adjustment_set_upper(vGtkAdjustment, _screenModel.canvasBoundsModel.y1);
-            gtk_adjustment_set_value(vGtkAdjustment, viewLeftBottom.y);
-            gtk_adjustment_set_step_increment(vGtkAdjustment, _screenModel.canvasBoundsModel.h / 16.0);
-            gtk_adjustment_set_page_increment(vGtkAdjustment, _screenModel.canvasBoundsModel.h / 4.0);
-            gtk_adjustment_set_page_size(vGtkAdjustment, viewBoundsModel.h);
-
-            _hAdjustment.changed;
-            _hAdjustment.valueChanged;
-            _vAdjustment.changed;
-            _vAdjustment.valueChanged;
+            _hAdjustment.configure(viewLeftBottom.x,
+                                   _screenModel.canvasBoundsModel.x0,
+                                   _screenModel.canvasBoundsModel.x1,
+                                   _screenModel.canvasBoundsModel.w / 16.0,
+                                   _screenModel.canvasBoundsModel.w / 4.0,
+                                   _screenModel.viewBoundsModel.w);
+            _vAdjustment.configure(viewLeftBottom.y,
+                                   _screenModel.canvasBoundsModel.y0,
+                                   _screenModel.canvasBoundsModel.y1,
+                                   _screenModel.canvasBoundsModel.h / 16.0,
+                                   _screenModel.canvasBoundsModel.h / 4.0,
+                                   _screenModel.viewBoundsModel.h);
         }
 
         void fixDamage() {