20 #ifndef __pbd_base_ui_h__
21 #define __pbd_base_ui_h__
26 #include <sigc++/slot.h>
27 #include <sigc++/trackable.h>
29 #include <glibmm/threads.h>
30 #include <glibmm/main.h>
53 Glib::RefPtr<Glib::MainLoop>
main_loop()
const {
return _main_loop; }
55 bool caller_is_self ()
const {
return Glib::Threads::Thread::self() == run_loop_thread; }
57 std::string
name()
const {
return _name; }
59 bool ok()
const {
return _ok; }
61 static RequestType new_request_type();
87 bool signal_running ();
98 bool request_handler (Glib::IOCondition);
100 void signal_new_request ();
101 void attach_request_source ();
107 virtual void handle_ui_requests () = 0;
117 int setup_request_pipe ();
static RequestType CallSlot
Glib::Threads::Cond _running
Glib::RefPtr< Glib::MainContext > m_context
virtual void thread_init()
BaseUI * base_ui_instance
CrossThreadChannel request_channel
Glib::Threads::Mutex _run_lock
Glib::Threads::Thread * event_loop_thread() const
bool caller_is_self() const
Glib::Threads::Thread * run_loop_thread
Glib::RefPtr< Glib::MainLoop > main_loop() const
Glib::RefPtr< Glib::MainLoop > _main_loop