On 09/28/2017 11:27 PM, Nat Goodspeed via Boost wrote:
I have bumped into the problem of trying to integrate application code with an inaccessible main loop.
Why you need a main loop? You can create an other (worker) thread and sync all data and calls with GUI loop using boost::ui::call_async() function. Actually there is boost::ui::event_loop class, but it is only for advanced users. You can see usage example in ui/src/frame.cpp file.
Instead of providing your own main loop, you might consider using an Asio io_service as your main event loop, and exposing (a subset of) its API to your own library consumers. That would give you a certain level of extensibility right out of the box.
It sounds like a good idea. Thanks! :) Unfortunately I'm not familiar with ASIO yet. boost::ui::event_loop looks very similar to io_service class.