libui/README.md

62 lines
2.8 KiB
Markdown
Raw Normal View History

2015-09-02 20:58:27 -05:00
# libui: a portable GUI library for C
2016-01-04 18:03:34 -06:00
This README is being written.<br>
[![Build Status](https://travis-ci.org/andlabs/libui.png)](https://travis-ci.org/andlabs/libui)
2015-09-02 20:58:27 -05:00
2016-05-21 17:07:36 -05:00
## Announcements
**21 May 2016**
* I will now post announcements and updates here.
* Now that Ubuntu 16.04 LTS is here, no earlier than next Saturday, 28 May 2016 at noon EDT, **I will bump the minimum GTK+ version from 3.4 to 3.10**. This will add a lot of new features that I can now add to libui, such as search-oriented uiEntries, lists of arbitrary control layouts, and more. If you are still running a Linux distribution that doesn't come with 3.10, you will either need to upgrade or use jhbuild to set up a newer version of GTK+ in a private environment.
* You can decide if I should also drop OS X 10.7 [here](https://github.com/andlabs/libui/issues/46).
2016-05-21 17:07:36 -05:00
## Updates
> Note that today's entry may be updated later today.
* **22 May 2016**
** Removed `uiControlVerifyDestroy()`; that is now part of `uiFreeControl()` itself.
** Added `uiPi`, a constant for π. This is provided for C and C++ programmers, where there is no standard named constant for π; bindings authors shouldn't need to worry about this.
** Fixed uiMultilineEntry not properly having line breaks on Windows.
2016-05-22 13:37:02 -05:00
** Added `uiNewNonWrappingMultilineEntry()`, which creates a uiMultilineEntry that scrolls horizontally instead of wrapping lines. (This is not documented as being changeable after the fact on Windows, hence it's a creation-time choice.)
2016-05-21 17:07:36 -05:00
## Runtime Requirements
2015-09-02 20:58:27 -05:00
* Windows: Windows Vista SP2 with Platform Update or newer
2015-09-02 20:58:27 -05:00
* Unix: GTK+ 3.4 or newer
* Mac OS X: OS X 10.7 or newer
## Build Requirements
* All platforms:
2015-12-09 12:04:27 -06:00
* 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()`)
2015-12-09 12:04:27 -06:00
* MinGW is currently unsupported. MinGW-w64 support will be re-added once the following features come in:
* [Isolation awareness](https://msdn.microsoft.com/en-us/library/aa375197%28v=vs.85%29.aspx)
* 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)
2015-09-02 20:58:27 -05:00
## Documentation
Needs to be written. Consult ui.h and the examples for details for now.
2016-05-21 17:07:36 -05:00
## Language Bindings
libui was originally written as part of my [package ui for Go](https://github.com/andlabs/ui). Now that libui is separate, package ui has become a binding to libui. As such, package ui is the only official binding.
Other people have made bindings to other languages:
* TODO list them here
2015-09-02 20:58:27 -05:00
## Screenshots
From examples/controlgallery:
![Windows](examples/controlgallery/windows.png)
![Unix](examples/controlgallery/unix.png)
![OS X](examples/controlgallery/darwin.png)