Boost logo

Boost :

Subject: Re: [boost] [ANN] Boost.UI - a new C++ GUI library
From: Kolya Kosenko (kolya.kosenko_at_[hidden])
Date: 2017-09-28 12:58:28

On 09/28/2017 03:02 PM, Stefan Seefeld via Boost wrote:
>> - uses native system-provided widgets
> what widgets do you consider "system-provided" ? What backends do you
> bind to on the different platforms, and can those bindings be changed ?

Native system-provided widgets means widgets from toolkits GTK+, Qt,
Windows Controls, Cocoa etc.

>> - compatible with other Boost libraries
> What does that mean ?

Boost.Geometry and Boost.Polygon could be used with Boost.UI
coordinates, Boost.Chrono - boost::ui::on_timeout() function,
Boost.Date_Time library are used in date and time pickers etc.

> I'd be interested in some high-level documentation explaining the basic
> programming and execution model of the API.

You can ask for implementation details here. Documentation explains only API.

> For example, how are events
> handled and how are they bound to particular actions ?

Library subscribes to event handlers in native toolkit. When user
press button, native event handler eventually calls Boost.UI event

> Are programs
> inherently multi-threaded or single-threaded (e.g., does the main event
> loop run in its own thread) ?

There is main GUI thread and you should call GUI functions from other
your own threads using boost::ui::call_async() function.

Boost.UI library (like all other C++ GUI libraries) aren't thread safe
because native toolkits are not thread safe.

> Is your library mostly just a (thin) layer over existing
> platform-specific GUI libraries, or does it reimplement a lot of the
> logic itself ?

Boost.UI is a rather thin layer with C++11/Boost support.

> (And what is that cryptic "ui_main()" function ? :-) )

ui_main() function call required for GUI initialization,
deinitialization, cleanup. It is required for underlying toolkits.
Actually you can call some functions directly from main() function,
but it is at your own risk.


Boost list run by bdawes at, gregod at, cpdaniel at, john at