SDL-widgets is a GUI toolkit on top of the SDL libraries. The toolkit is written in C++. It's not especially intended for games, it aims at normal applications with a possibly complicated SDL_Surface hierarchy, where surfaces can be hidden or shown, with sliders, menus, text areas, etc. Threads are supported, they communicate with the main thread via messages.

This is version 2, using C++11 features. Especially the lambda closures are very handy for building a GUI. This implicates that it is incompatible with last version 1, although porting is straightforward. If the compiler doesn't complain, then your program will run as expected.

The following widgets are available:

  • subwindows
  • alert window
  • push buttons
  • radio buttons in 1 column
  • radio buttons at arbitrary locations
  • horizontal, vertical and 2-dimensional sliders
  • dial widgets
  • check boxes
  • horizontal and vertical scrollbars
  • indicator lamp
  • non-editable text windows
  • editable text windows
  • dialog widgets
  • menus
  • file chooser
  • temporary, movable windows

This toolkit is easily hackable: source code consists of 1 file + 2 header files.
All files have the LPGL licence.

Former versions:
SDL-widgets-2.0.tar.gz (date: febr 17, 2013)
SDL-widgets-1.0.tar.gz (date: febr 17, 2013)

New version, for SDL2, with hardware accelleration:
SDL2-widgets-2.1.tar.gz (date: nov 20, 2013)
This version does not depend on SDL-gfx libraries. File shapes.cpp is GPL'ed. Notice that the SDL2 library has ZLIB license.

Part of the tar files are 3 small example audio applications. Listen to a tune created with one of them: rising.ogg

Another application:
BigBand - a program to compose music for small ensembles - has its own site:

Example programs
physical modelling
additive synthesis
waveform entry
filter test
toolkit demo program
physical modelling app