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 5b74b2752e Decided to use character offsets instead of byte offsets for text layout attributes. This removes the shaky code from the OS X and Windows backends to compute a list of character offsets for byte offsets. The equivalent code for GTK+ to convert chars to bytes will be much more solid; it will be written next. 2016-04-19 14:39:33 -04:00
_wip More NSTextView work. 2015-12-08 21:09:23 -05:00
_wiptable Began the work to list font families. This is the first of the text rendering work. 2015-12-22 19:01:56 -05:00
build Missed a spot in the previous commit. 2016-01-20 03:14:49 -05:00
common Set up the new Unix build. Now to do the OS X build. 2015-12-11 18:37:15 -05:00
darwin Decided to use character offsets instead of byte offsets for text layout attributes. This removes the shaky code from the OS X and Windows backends to compute a list of character offsets for byte offsets. The equivalent code for GTK+ to convert chars to bytes will be much more solid; it will be written next. 2016-04-19 14:39:33 -04:00
doc More Core Text stuff. 2016-01-11 19:34:42 -05:00
examples 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
haiku Set up saner handling of sonames at build time. 2016-01-05 11:51:36 -05:00
test Finished changing the Windows font dialog and uiFontButton to manipulate IDWriteFonts directly. 2016-04-18 17:14:33 -04:00
unix Implemented the uiDrawTextFont direct from system font-making functions on other platforms. 2016-04-19 11:23:05 -04:00
windows Decided to use character offsets instead of byte offsets for text layout attributes. This removes the shaky code from the OS X and Windows backends to compute a list of character offsets for byte offsets. The equivalent code for GTK+ to convert chars to bytes will be much more solid; it will be written next. 2016-04-19 14:39:33 -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 Quick formatting fix in the README. 2016-01-04 19:03:34 -05: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
ui.h Hooked the Windows font button and font dialog together at last. More TODOs. Now we just need to actually convert everything to DirectWrite and implement the label. 2016-04-17 22:09:18 -04:00
ui_darwin.h Added C++ extern guards. 2015-11-16 10:55:44 -05:00
ui_haiku.hpp Wrote up the event handling code for Haiku. 2015-11-20 11:45:04 -05:00
ui_unix.h Entering Valhalla. 2015-11-17 10:46:58 -05:00
ui_windows.h Added C++ extern guards. 2015-11-16 10:55:44 -05: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
    • This may be reduced to 2010 if necessary.
    • 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