MASkinG - Miran Amon's Skinnable GUI Library


As the name suggests MASkinG is a library for writing GUI's in C++. It is an addon library for the Allegro game programming library which means that it only works with Allegro. MASkinG is based on the DeGUI library, written by Doug Eleveld. DeGUI is basically a C++ wrapper for the Allegro GUI code that I've extended with support for skins, movable and resizable windows, additional widgets, etc.

Latest stable version

The latest somewhat stable version of the MASkinG library is v0.79, last updated on April 3rd, 2005. This is a beta release intended for testing although most parts are stable enough to be used in a serious project. Scroll down this page to the downloads section to get it. The previous version is also available in case you need it for some obscure reason. In order to compile MASkinG you will also need the alfont library by Javier Gonzalez. You can get it here or alternatively if the official page is down, in the dowloads section below.

Latest CVS version

This library is being worked on continuously. All changes to the source code are submitted to the SourceForge CVS server. This means that the stable version may already be outdated by the time you read this but it also means that some things might not be working properly and documentation might be missing.

If you need the latst development version of MASkinG, you can download it from the CVS server with a CVS client by typing the following commands in a console at the directory where you want to download the code:

cvs login
cvs -z3 co -P MASkinG

If you're asked for a password, just press enter.


MASkinG already comes with a few skins but it's true power lies in the possibility of making new ones. You have two choices: you can either make a general purpose skin that will work with more or less any MASkinG application or you can make a skin for a specific purpose. If you make a nice skin I would really appreciate it if you sent it to me so I could put it on this site.


Here are a few screenshots of the test and example programs.

ex03.exe with Selenium.ini
ex04.exe with QNXAmiga.ini
ex05.exe with Selenium.ini


file version date size description author preview
MASkinG (CVS) 0.80 23.06.2006 - go here to get the latest greatest version Miran Amon
MASkinG (stable) 0.80 23.06.2005 923k Miran Amon's Skinnable GUI Library version 0.80 Miran Amon
MASkinG (old) 0.65 20.02.2003 584k a prehistoric version of MASkinG Miran Amon
AllegroFont 1.91 07.04.2004 1320k Javier Gonzalez' Allegro Font library v1.91. Javier Gonzalez


Here are links to some of the projects that use MASkinG.

link description
Quad my first game ever (it's a simple puzzle game)
Centipede a simple snakes clone (doesn't work with newer releases of MASkinG though)
Allegro Font Editor bitmap font editor and converter utility for Allegro
Bookworm e-book reader application
TEGEL tilemap library for Allegro with a tilemap editor application
Sparklet networked multiplayer 2D space shooter game
Allegro Mini Game Collection 2 A collection of Allegro minigames and a platform for developing such games.
Dodger A fun little arcade game written in less 72 hours for TINS 2006
Seppl's Sprite Editor A tool for creating animated sprites out of several bitmaps, so if you change a bitmap used by a sprite, every frame of the sprite of will change, too. Useful for making different sprites of persons with the same movement.