Desktop applications with Haxe and Waxe – Part 6: Add some style

Posted on June 3, 2012

1


NOTE: The following is only relevant if you are using Windows. I have no idea of if/how what’s described below affects the look-and-feel of apps on OSX or Linux.

The simple test applications that we’ve created this far do work, but they have av very grayish boring Win95 look. Once again, Andreas Mokros has found a simple solution that originates from here: http://www.wxwidgets.org/docs/faqmsw.htm#winxp.

In this before-and-after picture, you can see the difference it makes:

So, how to accomplish this make-over?

At first, create and compile your Waxe project into an executable application. Here we assume that you have created an application that ends up in a AppName.exe.

Then, all you have to do is to create a so called manifest file, that’s just an empty textfile named exactly as your application + “.manifest”. For our test app, this means the following:

  • application file: AppName.exe
  • manifest file: AppName.exe.manifest

The manifest file should be put into the same directory as the application file, and have the following content:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="x86"
version="5.1.0.0"
type="win32"
name="foo.exe"/>
<description>Foo program</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>

(As you can see in the xml above, there are a name attribute and a description entry, but you don’t have to change those.)

Now, when you start your application again, the magic should happen. Welcome to the 21th century! 🙂

It should be possible to bake the manifest information into the resource files somehow. That way we wouldn’t need to copy and rename the manifest file as described above. I will look into this whenever I find the time to.

Kudos to Andreas Mokros!

Posted in: Haxe, Waxe