reopen app according to HIG
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -304,11 +304,38 @@ void wxApp::MacNewFile()
|
|||||||
|
|
||||||
void wxApp::MacReopenApp()
|
void wxApp::MacReopenApp()
|
||||||
{
|
{
|
||||||
// eventually check for open docs, if none, call MacNewFile
|
// HIG says :
|
||||||
wxTopLevelWindowMac* topLevelWindow = wxDynamicCast(GetTopWindow(), wxTopLevelWindowMac);
|
// if there is no open window -> create a new one
|
||||||
|
// if all windows are hidden -> show the first
|
||||||
if (topLevelWindow && topLevelWindow->IsIconized())
|
// if some windows are not hidden -> do nothing
|
||||||
topLevelWindow->Iconize(false);
|
|
||||||
|
wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
|
||||||
|
if ( node == NULL )
|
||||||
|
{
|
||||||
|
MacNewFile() ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxTopLevelWindow* win = NULL ;
|
||||||
|
wxTopLevelWindow* firstIconized = NULL ;
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxTopLevelWindow* win = (wxTopLevelWindow*) node->GetData();
|
||||||
|
if ( win->IsIconized() == false )
|
||||||
|
{
|
||||||
|
firstIconized = NULL ;
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( firstIconized == NULL )
|
||||||
|
firstIconized = win ;
|
||||||
|
}
|
||||||
|
node = node->GetNext();
|
||||||
|
}
|
||||||
|
if ( firstIconized )
|
||||||
|
firstIconized->Iconize( false ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user