It’s been rough couple of days with bad health.

Right now I am trying to achieve each different draw as an actor on the stage.

It is taking a lot of my time as I am not getting what I am trying to do.

If this doesn’t go the way I want it to then I’ll fallback on my backup to just use cairo and finish the gui work as soon as possible.


Added a canvas actor to the stage which is embedded in our drawingarea GtkWidget.

Soon entities will be drawn as actors on the canvas.

I think it’s safe to say that stage is set now. 🙂

Also thinking on how to implement the kernel part, where entities will be processed and stored in a list or a vector, in a storage space.


Well it’s really frustrating when you can’t stay on schedule for your work. My Laptop seems to disagree with me these days. My system got crashed and now it’s not even booting up. Fresh install didn’t help either.

Meanwhile I am working on getting mouse events to draw entities in the widget.

Hope to get back on track real soon.


Implemented Tabbed Document Interface(TDI) in drgeo.

New tabs are created on ‘New’ menu item click.

And the tabs are ciosed on selecting ‘Close’ menu item.

I can also add close button, i.e cross to close tab, to every tab but I think I’ll move on to creating entites and moving on to kernel part of the software.


Working on implementing Tabbed Document Interface in GTK. Done with a single tab in a notebook widget.

I’ll commit the changes by tomorrow afternoon regarding TDI along with adding and removing the tabs.

Also I may add drawing area to it.


It was almost a done deal to use Qt for the development of Dr. Geo till it was pointed out that only GTK+ is considered the standard for GNU.

I made a great progress with Qt in just a single day, had implemented Tabbed Document Interface and even point entity was done along with its mouse events.

But I guess that wasn’t meant to be. Now I am back to GTK+.

So continuing my previous work I have started using ui (glade) files to create widgets like mainwindow, menubar, etc. to help in quicker development.

I also changed the directory structure which will help in implementing the modular approach like I proposed.


I have implemented mouse events for DrawingArea but these events are enabled by default.

I want to enable them on particular function call, for example when I click Point menu item from Draw menu. So that I can draw points on the drawing area when I click on the widget.

The whole process is extremely difficult to work with. It is quite easy and effective in Qt, maybe that’s because I have some experience with Qt development. I could have progressed much further than I currently am.


My progress is little slow but steady nonetheless.

I read up on the ‘surface’ concept for the Cairo::Context.

“A cairo surface represents an image, either as the destination of a drawing operation or as source when drawing onto another surface.

There are different subtypes of cairo surface for different drawing backends.”

So, now I am working on that to draw entities in my Gtk::DrawingArea.