Hi Everyone. Well, I’m happy to tell you that the program I’ve been discussing in my previous blogs has completed the code inspection process and has cleared legal. The decision was made to bundle it with the actual API’s that are being developed in another group so it is not yet out on ISN. I will begin working on the 1.1 version of the tool in a few days but today I wanted to talk about the interim project I have been doing.
Here’s the setup: A member of my team developed a tool some time ago for Win32. He has been updating it and revising it for over a year now and it has gained in popularity. Recently, his tool was developed for Linux by another member of our team. The Linux version is strictly command line driven. To tie both of these two programs together, I was asked to come up with a GUI wizard that would look the same in both Win32 and Linux and make using the tool a little less confusing and more intuitive for the user.
My first step was to find the right development tools. Python had been suggested as being a good choice for cross-platform development, so I took a look at that. I also talked to a senior software engineer and got a recommendation for wxWidgets. I had not heard of wxWidgets before, but with his suggestion in hand I went online and had a look at it. Do you know about wxWidgets? It’s a pretty cool toolkit. You can use it with C++, Perl, Python, and even C#. There are distributions of it for Win32, Mac OS X, any version of Linux that uses GTK+, and several more. I’m not really sure how I got to wxFormBuilder, but it seemed like the perfect interface to get started with, being a wxWidgets GUI builder, designer and RAD tool that was easily connected to Anjuta (my development IDE in Linux). I was soon up and running with it. Unfortunately, wxFormBuilder did not have wxWizard as part of its available widgets. I didn’t know if a wizard widget existed so I started out designing with a notebook widget. It’s not the same, but it did give me pages that were connected together. I was just about finished with my design when I located this wonderful book entitled “Cross-Platform GUI Programming with wxWidgets.” It really helps you to understand wxWidgets and gives lots of examples. Under documentation on the wxWidgets website you can find the latest online manual which is terrific, but sadly sparse on example code. This book helps bridge that gap. Guess what I found detailed in the book? That’s right, a wxWizard class!
So now I have moved to using straight wxWidgets in Anjuta. Saying that makes me feel like I’m hitting the hard stuff, and honestly it does feel like a little richer and more intense experience. I miss having the visual format to develop the pages but I was able to cut and paste most of the design from my wxFormBuilder notebook design into the wizard pages, which saved a lot of time. Extensive use of the documentation on the wxWidgets site was extremely helpful when I wanted to do something beyond the norm to individual controls. The wizard is just about finished now and ready to be connected. I’ll start by connecting it to the Linux command-line version, and after that is successful I will port it over to Win32. I know that it will work, however. I already have wxWidgets set up in my development studio on Win32. That’s a very reassuring bit of knowledge. My original tool, wxFormbuilder, is portable to Win32 as well and although I got the correct download I have not been successful in integrating it into my development studio there. Now I don’t have to do so.
I’ll let you know in my next blog how the integration process is going for the wizard and also tell you about anything new and different I learn about the Linux environment, C++, wxWidgets, Glade, Anjuta or any other programming subject. Take care until then!