Program: bbtk
Module: $RCSfile: bbtkWx.cxx,v $
Language: C++
- Date: $Date: 2009/05/19 10:19:23 $
- Version: $Revision: 1.14 $
+ Date: $Date: 2009/05/28 08:12:06 $
+ Version: $Revision: 1.15 $
=========================================================================*/
/* ---------------------------------------------------------------------
//=========================================================================
static WxApp* mgWxApp = 0;
static wxWindow* mgTopWindow = 0;
- static wxWindow* mgTopWindowParent = 0;
- static bool mgAutoDestroyTopWindow = true;
static int mgNbWindowsAlive = 0;
- static int mgNbWindowsShown = 0;
//=========================================================================
-
+
//=========================================================================
// BBTKWXSIG
static Wx::Signal_type mgWxSignal;
bbtkDebugMessage("wx",1," --> Creating bbtk wxApp"<<std::endl);
mgWxApp = new WxApp;
wxApp::SetInstance(mgWxApp);
- //int argc = 0;
- //wxEntry(argc,0);
wxInitialize();
}
}
{
if (mgWxApp!= 0)
{
- bbtkDebugMessage("wx",1," --> Destructing bbtk WxApp"<<std::endl);
+ // bbtkDebugMessage("wx",1," --> Destructing bbtk WxApp"<<std::endl);
//delete mgWxApp;
// mgWxApp = 0;
// Uninit wx
}
//=========================================================================
- //=========================================================================
- void Wx::SetTopWindowParent(wxWindow* w)
- {
- if (mgTopWindowParent != 0)
- {
- bbtkGlobalError("Wx::SetTopWindowParent : top window parent != 0");
- }
- mgTopWindowParent = w;
- }
- //=========================================================================
-
- //=========================================================================
- void Wx::CreateTopWindowIfNeeded()
- {
- if (mgTopWindow!=0) return;
- bbtkDebugMessage("wx",1," --> Creating bbtk top window"<<std::endl);
-
- CreateWxAppIfNeeded();
-
- wxWindow* top =
- new wxFrame(mgTopWindowParent,
- -1,
- _T("TOP BBTK FRAME (YOU SHOULD NOT SEE ME !!)"));
- top->Hide();
-
- //if (mgTopWindowParent==0)
- Wx::SetTopWindow(top);
- }
- //=========================================================================
//=========================================================================
- void Wx::DestroyTopWindowIfNeeded()
+ void Wx::ProcessPendingEvents()
{
- if ( (mgNbWindowsAlive==0) &&
- (mgAutoDestroyTopWindow) &&
- (mgTopWindow != 0))
+ /*
+ if (Wx::GetTopWindow() != 0)
{
- bbtkDebugMessage("wx",1," --> Destructing bbtk top window"<<std::endl);
- mgTopWindow->Close();
- mgTopWindow = 0;
-
- DestroyWxAppIfNeeded();
+ Wx::GetTopWindow()->DestroyChildren();
}
- }
- //=========================================================================
-
- //=========================================================================
- void Wx::LoopUntilAllWindowsClose()
- {
- int i = 0;
- while (mgTopWindow != 0)
- {
- if (i % 100 == 0)
- {
- bbtkDebugMessage("wx",2,"Wx::Loop "<<i << std::endl);
- }
- i++;
- wxMilliSleep(10);
+ */
- }
+ /*
+ wxApp* a = (wxApp*)wxApp::GetInstance();
+ if (a==0) return;
+
+ std::cout << "$$$$$$$$$$$$$$ PROCESS PENDING "<<std::endl;
+ while (a->Pending())
+ a->Dispatch();
+ std::cout << "$$$$$$$$$$$$$$ PROCESS PENDING DONE"<<std::endl;
+ */
}
- //=========================================================================
+
//=========================================================================
wxWindow* Wx::GetTopWindow()
{
- Wx::CreateTopWindowIfNeeded();
return mgTopWindow;
}
//=========================================================================
- //=========================================================================
- bool Wx::TopWindowExists()
- {
- return (mgTopWindow!=0);
- }
- //=========================================================================
// BBTKWXSIG
//=========================================================================
//=========================================================================
// \BBTKWXSIG
- //=========================================================================
- void Wx::SetAutoDestroyTopWindow(bool b)
- {
- mgAutoDestroyTopWindow = b;
- }
- //=========================================================================
//=========================================================================
void Wx::SetTopWindow(wxWindow* w)
{
if ( mgTopWindow )
{
- bbtkGlobalError("wx::SetTopWindow : top window already set !");
+ bbtkGlobalError("Wx::SetTopWindow : top window already set !");
}
- mgTopWindow = w;
+ //mgTopWindow = w;
}
//=========================================================================
bbtkDebugMessage("wx",2,"* Number of windows alive = "<<mgNbWindowsAlive
<<std::endl);
- DestroyTopWindowIfNeeded();
- // BBTKWXSIG
- mgWxSignal();
- // \BBTKWXSIG
- }
- //=========================================================================
-
- //=========================================================================
- void Wx::IncNbWindowsShown()
- {
- mgNbWindowsShown++;
- bbtkDebugMessage("wx",2,"* Number of windows shown = "<<mgNbWindowsShown
- <<std::endl);
- // BBTKWXSIG
- mgWxSignal();
- // \BBTKWXSIG
- }
- //=========================================================================
-
- //=========================================================================
- void Wx::DecNbWindowsShown()
- {
- mgNbWindowsShown--;
- bbtkDebugMessage("wx",2,"* Number of windows shown = "<<mgNbWindowsShown
- <<std::endl);
-
- // DestroyTopWindowIfNeeded();
-
// BBTKWXSIG
mgWxSignal();
// \BBTKWXSIG
}
//=========================================================================
-
//=========================================================================
int Wx::GetNbWindowsAlive()
{
//=========================================================================
bool Wx::IsSomeWindowAlive()
{
- return (mgNbWindowsAlive>0);
- }
- //=========================================================================
-
-
- //=========================================================================
- int Wx::GetNbWindowsShown()
- {
- return mgNbWindowsShown;
- }
- //=========================================================================
-
- //=========================================================================
- bool Wx::IsSomeWindowShown()
- {
- return (mgNbWindowsShown>0);
+ return (mgNbWindowsAlive!=0);
}
//=========================================================================
//mCursor = new wxBusyCursor;
}
}
+ //=========================================================================
+ //=========================================================================
Wx::BusyCursor::~BusyCursor()
{
if (mCursor)
}
//=========================================================================
- /*
- //=========================================================================
- void Wx::ResetCursor()
- {
- if (!TopWindowExists()) return;
- bbtkDebugMessage("wx",9,"Wx::ResetCursor()"<<std::endl);
- while (wxIsBusy()) ::wxEndBusyCursor();
- }
- //=========================================================================
- //=========================================================================
- void Wx::BeginBusyCursor()
- {
- if (!TopWindowExists()) return;
- bbtkDebugMessage("wx",9,"Wx::BeginBusyCursor()"<<std::endl);
- ::wxBeginBusyCursor();
- }
- //=========================================================================
- //=========================================================================
- void Wx::EndBusyCursor()
- {
- if (!TopWindowExists()) return;
- bbtkDebugMessage("wx",9,"Wx::EndBusyCursor()"<<std::endl);
- ::wxEndBusyCursor();
- }
- //=========================================================================
- */
+
} // namespace bbtk
//=========================================================================
namespace bbtk
{
+ //=========================================================================
Wx::BusyCursor::BusyCursor()
{
}