INTEGRATION: CWS gh6 (1.7.16); FILE MERGED
2004/05/24 11:51:32 gh 1.7.16.3: #i29440# 2004/05/07 14:27:22 gh 1.7.16.2: #110980#GetDocumentCount is now 0(zero) if only backing Window is there 2004/04/29 13:39:40 gh 1.7.16.1: #106857# remove CTTreeListBox
This commit is contained in:
parent
dca0d1b671
commit
6c433144fe
1 changed files with 72 additions and 24 deletions
|
@ -2,9 +2,9 @@
|
|||
*
|
||||
* $RCSfile: sta_list.cxx,v $
|
||||
*
|
||||
* $Revision: 1.7 $
|
||||
* $Revision: 1.8 $
|
||||
*
|
||||
* last change: $Author: vg $ $Date: 2004-01-06 17:08:29 $
|
||||
* last change: $Author: rt $ $Date: 2004-06-17 11:39:52 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
|
@ -116,7 +116,7 @@ BOOL StatementList::IsError = FALSE;
|
|||
BOOL StatementList::bDying = FALSE;
|
||||
BOOL StatementList::bExecuting = FALSE;
|
||||
StatementList *StatementList::pCurrentProfileStatement = NULL;
|
||||
USHORT StatementList::nControlType = CONST_CTTreeListBox;
|
||||
USHORT StatementList::nControlType = CONST_CTBrowseBox;
|
||||
#if OSL_DEBUG_LEVEL > 1
|
||||
EditWindow *StatementList::m_pDbgWin;
|
||||
#endif
|
||||
|
@ -137,7 +137,7 @@ USHORT StatementList::nMinTypeKeysDelay = 0; // Verz
|
|||
USHORT StatementList::nMaxTypeKeysDelay = 0;
|
||||
BOOL StatementList::bDoTypeKeysDelay = FALSE;
|
||||
|
||||
Window* StatementList::pFirstDocWin = NULL;
|
||||
Window* StatementList::pFirstDocFrame = NULL;
|
||||
|
||||
#define IS_WINP_CLOSING(pWin) (pWin->GetHelpId() == 4321 && pWin->GetUniqueId() == 1234)
|
||||
|
||||
|
@ -258,6 +258,20 @@ Window* StatementList::GetDocWin( USHORT nNr )
|
|||
return NULL;
|
||||
}
|
||||
|
||||
USHORT StatementList::GetDocFrameCount()
|
||||
{
|
||||
Window* pBase = Application::GetFirstTopLevelWindow();
|
||||
USHORT nCount = 0;
|
||||
|
||||
while ( pBase )
|
||||
{
|
||||
if ( IsDocFrame( pBase ) )
|
||||
nCount++;
|
||||
pBase = Application::GetNextTopLevelWindow( pBase );
|
||||
}
|
||||
return nCount;
|
||||
}
|
||||
|
||||
USHORT StatementList::GetDocWinCount()
|
||||
{
|
||||
Window* pBase = Application::GetFirstTopLevelWindow();
|
||||
|
@ -290,7 +304,7 @@ Window* StatementList::SearchAllWin( Window *pBase, Search &aSearch, BOOL MaybeB
|
|||
Window *pPParent = pBase;
|
||||
while ( pPParent->GET_REAL_PARENT() )
|
||||
pPParent = pPParent->GET_REAL_PARENT();
|
||||
if ( !IsFirstDocWin( pPParent ) )
|
||||
if ( !IsFirstDocFrame( pPParent ) )
|
||||
{
|
||||
// get overlap window. Will be dialog else document itself
|
||||
pBase = pBase->GetWindow( WINDOW_OVERLAP );
|
||||
|
@ -316,8 +330,8 @@ Window* StatementList::SearchAllWin( Window *pBase, Search &aSearch, BOOL MaybeB
|
|||
|
||||
pBase = Application::GetFirstTopLevelWindow();
|
||||
|
||||
// Skip FirstDocWin
|
||||
if ( bSearchFocusFirst && IsFirstDocWin( pBase ) )
|
||||
// Skip FirstDocFrame
|
||||
if ( bSearchFocusFirst && IsFirstDocFrame( pBase ) )
|
||||
pBase = Application::GetNextTopLevelWindow( pBase );
|
||||
|
||||
while ( pBase )
|
||||
|
@ -327,8 +341,8 @@ Window* StatementList::SearchAllWin( Window *pBase, Search &aSearch, BOOL MaybeB
|
|||
return pControl;
|
||||
|
||||
pBase = Application::GetNextTopLevelWindow( pBase );
|
||||
// Skip FirstDocWin
|
||||
if ( bSearchFocusFirst && IsFirstDocWin( pBase ) )
|
||||
// Skip FirstDocFrame
|
||||
if ( bSearchFocusFirst && IsFirstDocFrame( pBase ) )
|
||||
pBase = Application::GetNextTopLevelWindow( pBase );
|
||||
}
|
||||
return NULL;
|
||||
|
@ -659,27 +673,29 @@ Window* StatementList::GetAnyActive( BOOL MaybeBase )
|
|||
return pControl;
|
||||
}
|
||||
|
||||
void StatementList::SetFirstDocWin( Window* pWin )
|
||||
void StatementList::SetFirstDocFrame( Window* pWin )
|
||||
{
|
||||
DBG_ASSERT( IsDocWin( pWin ), "Non Document Window set as first Document Window" )
|
||||
pFirstDocWin = pWin;
|
||||
DBG_ASSERT( IsDocFrame( pWin ), "Non Document Frame set as first Document Frame" )
|
||||
pFirstDocFrame = pWin;
|
||||
}
|
||||
|
||||
Window* StatementList::GetFirstDocWin()
|
||||
Window* StatementList::GetFirstDocFrame()
|
||||
{
|
||||
|
||||
if ( pFirstDocWin && !WinPtrValid( pFirstDocWin ) )
|
||||
pFirstDocWin = NULL;
|
||||
if ( pFirstDocWin && !pFirstDocWin->IsVisible() )
|
||||
pFirstDocWin = NULL;
|
||||
if ( !pFirstDocWin )
|
||||
if ( pFirstDocFrame && !WinPtrValid( pFirstDocFrame ) )
|
||||
pFirstDocFrame = NULL;
|
||||
if ( pFirstDocFrame && !pFirstDocFrame->IsVisible() )
|
||||
pFirstDocFrame = NULL;
|
||||
if ( pFirstDocFrame && !IsDocFrame( pFirstDocFrame ) )
|
||||
pFirstDocFrame = NULL;
|
||||
if ( !pFirstDocFrame )
|
||||
{
|
||||
Window* pBase = Application::GetFirstTopLevelWindow();
|
||||
while ( pBase && !IsDocWin( pBase ) )
|
||||
while ( pBase && !IsDocFrame( pBase ) )
|
||||
pBase = Application::GetNextTopLevelWindow( pBase );
|
||||
|
||||
if ( pBase )
|
||||
SetFirstDocWin( pBase );
|
||||
SetFirstDocFrame( pBase );
|
||||
|
||||
if ( !pBase ) // find just something
|
||||
{
|
||||
|
@ -690,15 +706,30 @@ Window* StatementList::GetFirstDocWin()
|
|||
return pBase; // just for now, later we will hopefully have a Window
|
||||
}
|
||||
}
|
||||
return pFirstDocWin;
|
||||
return pFirstDocFrame;
|
||||
}
|
||||
|
||||
BOOL StatementList::IsFirstDocWin( Window* pWin )
|
||||
BOOL StatementList::IsFirstDocFrame( Window* pWin )
|
||||
{
|
||||
return pWin && ( pWin == GetFirstDocWin() || ( GetFirstDocWin() && pWin == GetFirstDocWin()->GetWindow( WINDOW_CLIENT ) ) ) && ( GetFirstDocWin() && IsDocWin( GetFirstDocWin() ) );
|
||||
return pWin && ( pWin == GetFirstDocFrame() || ( GetFirstDocFrame() && pWin == GetFirstDocFrame()->GetWindow( WINDOW_CLIENT ) ) ) && ( GetFirstDocFrame() && IsDocFrame( GetFirstDocFrame() ) );
|
||||
}
|
||||
|
||||
BOOL StatementList::IsDocWin( Window* pWin )
|
||||
MenuBar* StatementList::GetDocFrameMenuBar( Window* pWin )
|
||||
{
|
||||
if ( pWin && pWin->IsVisible() && pWin->GetType() == WINDOW_BORDERWINDOW )
|
||||
{
|
||||
USHORT nCount;
|
||||
for ( nCount = 0 ; nCount < pWin->GetChildCount() ; nCount++ )
|
||||
{
|
||||
if ( pWin->GetChild( nCount )->GetType() == WINDOW_WORKWINDOW )
|
||||
return ((WorkWindow*)(pWin->GetChild( nCount )))->GetMenuBar();
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// a Doc Frame is a Document or the Backing Window
|
||||
BOOL StatementList::IsDocFrame( Window* pWin )
|
||||
{
|
||||
if ( pWin && pWin->IsVisible() && pWin->GetType() == WINDOW_BORDERWINDOW )
|
||||
{
|
||||
|
@ -720,6 +751,23 @@ BOOL StatementList::IsDocWin( Window* pWin )
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
// a Doc Win is a real document (not the Backing Window)
|
||||
BOOL StatementList::IsDocWin( Window* pWin )
|
||||
{
|
||||
if ( pWin && IsDocFrame( pWin ) )
|
||||
{
|
||||
if ( GetDocFrameCount() != 1 )
|
||||
return TRUE;
|
||||
else
|
||||
{
|
||||
// check for the close button to see if we are the last one or only the backing Window
|
||||
if ( GetDocFrameMenuBar( pWin ) )
|
||||
return GetDocFrameMenuBar( pWin )->HasCloser();
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL StatementList::IsIMEWin( Window* pWin ) // Input Window for CJK under Solaris
|
||||
{
|
||||
if ( pWin && pWin->IsVisible() && pWin->GetType() == WINDOW_BORDERWINDOW )
|
||||
|
|
Loading…
Reference in a new issue