Open source
  • Bandwidth benchmark
  • TouchWidgets UI lib
  • Diviner big number math
  • Documentation
  • x86 instructions ref
  • GIT quick ref
  • GPG quick ref
  • Avoid Ubuntu
  • Android malware risks
  • iOS malware risks
  • OS/X security tips
  • Who blocks Tor
  • Software engineering
  • BASH aliases
  • I.B. pro/con
  • Nutrition
  • Other apps
  • Contact
    1 at zsmith dot co


    © by
    All rights reserved.

    TouchWidgets is my widget library that is animation- and touch-friendly.

    Over the years I've worked on creating an open-source widget library. The earliest vestiges of the TouchWidgets code base probably began in my C and Xlib-based widget library that I wrote around 2002, and refined in 2006. I intended it to be fast enough to run on the slow (200-600 MHz) but wonderful IBM Thinkpad laptops that I owned at the time, which always ran GNU/Linux. The code base's next incarnation was suited to a Lenovo laptop, which ran Windows XP. For this I converted the code to C++ and adapted it to use GDI calls. The major application I was writing at the time was a video editor that used AVILIB. When I gave up on Windows, the code remained C++ but I switched it back to Xlib-based again so that I could run it on GNU/Linux. When I switched to the Macintosh around 2008, after a 14 year hiatus from that product line, it was basically the same code, using XQuartz as X-Windows system, but before long I realized I preferred Objective C, so I translated it from C++ to Objective-C. Eventually I had to admit that I'd never return to sub-600 MHz computers and that virtually all computers now had 3D hardware and virtually all operating systems now support OpenGL in some form, so there was no longer a reason to not refactor the code to sit on top of OpenGL, which had ascended, instead of the passé X-Windows or GDI. A clear example that this was possible was/is the GLUI library, which I had used for the Maxilla project. It is a somewhat clunky widget set that sits on top of OpenGL. So I developed the new variant of TouchWidgets that sits on top of OpenGL (not ES), and I abandoned the Xlib code. But Objective C was a bad language choice. It really only runs well on Apple products; the GNU Objective-C compiler that comes with Linux is an unfinished, buggy, abandoned effort. So recently I have retranslated the most recent code base from Objective C back to C++. I am also adding OpenGL ES 1.1 support, which is supported differently on each platform, but I have working code for iOS.


    The staticly-linked executable that produced this was about 240kB.


    Not presently available.

    © Zack Smith