#ifdef _USE_WXWIDGETS_ #include "bbtkWx.h" #include "bbtkMessageManager.h" #include //#include namespace bbtk { static wxWindow* mgTopWindow = 0; static int mgNbWindowsAlive = 0; static int mgNbWindowsShown = 0; static bool mgAutoDestroyTopWindow = true; // BBTKWXSIG static Wx::Signal_type mgWxSignal; // \BBTKWXSIG //========================================================================= void Wx::CreateTopWindow(wxWindow* parent, bool autodestroy) { wxWindow* top = new wxFrame(parent, -1, _T("TOP BBTK FRAME (YOU SHOULD NOT SEE ME !!)")); top->Hide(); Wx::SetTopWindow(top); mgAutoDestroyTopWindow = autodestroy; } //========================================================================= //========================================================================= wxWindow* Wx::GetTopWindow() { if (mgTopWindow==0) Wx::CreateTopWindow(0); return mgTopWindow; } //========================================================================= //========================================================================= bool Wx::TopWindowExists() { return (mgTopWindow!=0); } //========================================================================= // BBTKWXSIG //========================================================================= void Wx::AddSignalObserver(Slot_function_type f) { mgWxSignal.connect(f); } //========================================================================= // \BBTKWXSIG //========================================================================= void Wx::AutoDestroyTopWindow(bool b) { mgAutoDestroyTopWindow = b; } //========================================================================= //========================================================================= void Wx::SetTopWindow(wxWindow* w) { if ( mgTopWindow ) { bbtkGlobalError("wx::SetTopWindow : top window already set !"); } mgTopWindow = w; } //========================================================================= //========================================================================= void Wx::IncNbWindowsAlive() { mgNbWindowsAlive++; bbtkDebugMessage("wx",2,"* Number of windows alive = "< Destructing top window"<Close(); mgTopWindow = 0; } // BBTKWXSIG mgWxSignal(); // \BBTKWXSIG } //========================================================================= //========================================================================= void Wx::IncNbWindowsShown() { mgNbWindowsShown++; bbtkDebugMessage("wx",2,"* Number of windows shown = "< Destructing top window"<Close(); mgTopWindow = 0; } // BBTKWXSIG mgWxSignal(); // \BBTKWXSIG } //========================================================================= //========================================================================= int Wx::GetNbWindowsAlive() { return mgNbWindowsAlive; } //========================================================================= //========================================================================= bool Wx::IsSomeWindowAlive() { return (mgNbWindowsAlive>0); } //========================================================================= //========================================================================= int Wx::GetNbWindowsShown() { return mgNbWindowsShown; } //========================================================================= //========================================================================= bool Wx::IsSomeWindowShown() { return (mgNbWindowsShown>0); } //========================================================================= //========================================================================= void Wx::ResetCursor() { if (!TopWindowExists()) return; bbtkDebugMessage("wx",9,"Wx::ResetCursor()"<