Welcome to the wonderful world of wxWidgets! In this series of tutorials, I'm going to be explaining how to develop software in C++ using wxWidgets.
So, what's this wxWidgets stuff?wxWidgets is a very interesting toolkit, which is compatible with pretty much any operating system! That's right, you can make your software for a whole range of platforms, including:
- Win32
- Mac OS X
- GTK+
- X11
- Motif
- WinCE
- and more!
It's compatible with a whole bunch of languages, including C++, Perl and C# ~ but in these tutorials, I'll be covering development in C++
What should I already know?As with all programming concepts, it's important that you've got a good understanding of as many of the key principals as possible. Loops, functions, etc~ oh, and object oriented programming (OOP) is a must!
OK, OK~ let me get started!It can be quite tedious to set up wxWidgets. Unfortunately, I can only cover the setup for Windows~ sorry everyone else! You can check out the
wxWiki, you should be able to find everything you need there. Also, if you have any questions, let me know and I'll do my best to help.
So let's get startedWait... what do we need? Well, a compiler. Obviously. You'll also need to download wxWidgets, and preferably an IDE. (My choice: Code::Blocks)
Where can I get all this stuff from?First off, get your compiler.
MinGW is a great compiler for Windows, and that's what I'll be using. The Microsoft installer is available from
here.
As I mentioned earlier, my IDE of choice is
Code::Blocks. It's cross platform, but since this tutorial covers Windows, you can get the Windows installer directly from
here.
Last but certainly not least, you're going to need the
wxWidgets toolkit itself! The Microsoft installer is available
here, and for you non-Windows users, check out the downloads page
here.
OK, so what now? Install your compiler (MinGW) and wxWidgets. Install them to the root of your drive, so on Windows, you should have:
C:/MinGWC:/wxWidgets-2.8.9 (or some other version)
Now you're going to need to clean and compile the source code. Fortunately for you Windows user though, I've set up a nice little batch script to do all the work for you. If you want to get it set up automatically, use
this batch script.If you want to do it manually, all you have to do is follow the code in that snippet, typing each command into the command line. (NOT RECOMMENDED!)
(Remember that REM is simply a comment, and not part of the code)
So now it's time to set up Code::Blocks. This bit's pretty easy. Install it (preferably to the default directory in Program Files, but it doesn't matter) and run the exe.
You should now be in front of your new favourite IDE.

Go to File>New>Project, and find wxWidgets Project. (It should be right at the bottom)
Follow the instructions until you reach a dialog asking which version you want to use. This should be self explanatory, but (at the time of writing this tutorial) wxWidgets 2.8.x is the latest, so select that.
Next, it will probably ask you to set up wxWidgets. Open the Global Variable Editor, and paste this into the "base" text box:
C:\wxWidgets-2.8.9 (or wherever you installed it to)
Now click close, and continue on through the setup.
You will now be asked to select the setting which match your installation. Check all three boxes (they should be "driver" "monolithic" and "unicode.") If you read the batch script, this will make sense. If not, don't worry about it, it's not important.

Continue on through the project setup, and you should eventually have a template prepared for you. This bit's important:
YOU CAN ONLY COMPILE FOR "RELEASE"This is because we configured wxWidgets for release earlier (again, you'll know if you read the batch script. Don't worry if you didn't)
So, change the Build target to Release, and hit F9 (Compile and run)
That's it! You should now have a window open, built using the example code from the Code::Blocks template!
*Note: I apologise if the end setup (for Code::Blocks) is a little off. I had to do this from memory, since it's only necessary to do it once.
And that's it! It was a long setup, but over the next tutorials in this series, you're going to find out why it was worth it!
Happy coding!

***Please feel free to ask
any questions regarding this setup. I know it can be tedious, I had problems myself when setting it up. I'll do my best to answer them.
