9 BC_DialogThread::BC_DialogThread()
13 startup_lock = new Condition(1, "BC_DialogThread::startup_lock");
14 window_lock = new Mutex("BC_DialogThread::window_lock");
17 BC_DialogThread::~BC_DialogThread()
19 startup_lock->lock("BC_DialogThread::~BC_DialogThread");
26 startup_lock->unlock();
33 void BC_DialogThread::lock_window(char *location)
35 window_lock->lock(location);
38 void BC_DialogThread::unlock_window()
40 window_lock->unlock();
43 void BC_DialogThread::start()
47 window_lock->lock("BC_DialogThread::start");
50 gui->lock_window("BC_DialogThread::start");
54 window_lock->unlock();
58 // Don't allow anyone else to create the window
59 startup_lock->lock("BC_DialogThread::start");
63 startup_lock->lock("BC_DialogThread::start");
64 startup_lock->unlock();
67 void BC_DialogThread::run()
70 startup_lock->unlock();
71 int result = gui->run_window();
73 handle_done_event(result);
75 window_lock->lock("BC_DialogThread::run");
78 window_lock->unlock();
80 handle_close_event(result);
83 BC_Window* BC_DialogThread::new_gui()
85 printf("BC_DialogThread::new_gui called\n");
89 BC_Window* BC_DialogThread::get_gui()
94 void BC_DialogThread::handle_done_event(int result)
98 void BC_DialogThread::handle_close_event(int result)