Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Go to file
Pietro Gagliardi 78b49ae04d Started reworking window.cpp to get a feel for what's going to happen. This is a mess... 2016-04-26 22:44:40 -04:00
_wip Removed uthash. All its (one) uses are now using C++ instead. 2016-04-20 22:15:24 -04:00
_wiptable Removed all the type function declarations from all the controls. More TODOs. 2016-04-24 15:04:36 -04:00
build Fixed some things so far. It looks like I can't have __FILE__, etc. turned into wide strings because the way to do so works *ahead of time* :| Have to restructure debug.cpp. 2016-04-23 17:31:59 -04:00
common Started the migration. Got rid of a bunch of cruft, including the old delayed resize logic (except for timers; will have to get that back out). 2016-04-26 19:57:13 -04:00
darwin Fixed the SyncEnableState() machinery not quite working properly. 2016-04-25 18:07:29 -04:00
doc More Core Text stuff. 2016-01-11 19:34:42 -05:00
examples Updated the controlgallery screenshots. More TODOs. 2016-04-24 13:07:19 -04:00
test Added uiFontButtonFont() and uiFontButtonOnChanged(); implemented on OS X. 2016-04-20 13:40:54 -04:00
unix Fixed build errors. It works! (Except for radiobuttons now needing a destroy; that'll come later.) Next up... Windows. Yay... 2016-04-25 20:34:12 -04:00
windows Started reworking window.cpp to get a feel for what's going to happen. This is a mess... 2016-04-26 22:44:40 -04:00
.travis.yml Fixed the controlgallery example. Reenabled it in make examples. Changed .travis.yml to build the test first. 2016-01-06 19:38:27 -05:00
GNUmakefile Two important changes to the Windows build: 2016-01-19 16:40:00 -05:00
LICENSE Split into a new repository and added a LICENSE. 2015-04-16 20:31:11 -04:00
README.md Wrote up a utf16 with conversion and allocating-sprintf() functions. Changed the way deubgging will work. 2016-04-21 18:03:52 -04:00
TODO.md Some TODOs I will probably regret. 2016-04-16 15:41:34 -04:00
buildnotes More commit stuff. 2016-01-04 16:00:16 -05:00
oldhaiku.tgz Discontinued the Haiku port for now. 2016-04-24 14:18:56 -04:00
rules.darwin Adjusted the rules based on the previous commit. 2016-04-25 18:08:26 -04:00
rules.unix Added a rules.unix just to be safe. 2016-04-25 23:36:06 -04:00
ui.h Made SyncEnableState() a uiDarwinControl method instead of a uiControl method since it's not needed on GTK+. 2016-04-25 17:52:16 -04:00
ui_darwin.h Fixed the SyncEnableState() machinery not quite working properly. 2016-04-25 18:07:29 -04:00
ui_unix.h More ui_unix.h and unix/control.c work. NOW we're ready to migrate the controls. 2016-04-25 19:45:05 -04:00
ui_windows.h More TODOs. 2016-04-26 22:07:14 -04:00

README.md

libui: a portable GUI library for C

This README is being written.
Build Status

Runtime Requirements

  • Windows: Windows Vista SP2 with Platform Update or newer
  • Unix: GTK+ 3.4 or newer
  • Mac OS X: OS X 10.7 or newer

Build Requirements

  • All platforms:
    • GNU make 3.81 or newer (Xcode comes with this; on Windows you will need to get it yourself)
  • Windows: Microsoft Visual Studio 2013 or newer (2013 is needed for va_copy())
    • MinGW is currently unsupported. MinGW-w64 support will be re-added once the following features come in:
      • Isolation awareness
      • Linker symbols for some functions such as TaskDialog() (which I thought I submitted...)
  • Unix: nothing specific
  • Mac OS X: nothing specific, so long as you can build Cocoa programs

(TODO write some notes on make variables and cross-compiling)

Documentation

Needs to be written. Consult ui.h and the examples for details for now.

Screenshots

From examples/controlgallery:

Windows

Unix

OS X