home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-21 | 11.1 KB | 481 lines | [TEXT/CWIE] |
- //===================================================================
- //======================= Headers =============================
-
- #include "WindowList.h"
-
-
- //===================================================================
- //======================= Globals =============================
-
- //===================================================================
- //======================= #define =============================
-
-
- //===================================================================
- //======================= Function Prototypes =====================
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: Constructor
-
- \----------------------------------------------------------------------------*/
- NormalWindowList :: NormalWindowList( void )
- : LinkListClass< Window >()
- {
- backGround = false;
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: AddWindow
-
- \----------------------------------------------------------------------------*/
- void NormalWindowList :: AddWindow( Window *w )
- {
- // make what ever was in front not active any more
- if( FirstLink != NULL )
- {
- FirstLink->SetFront( false );
- }
-
- w->SetFront( true );
- AddToList( w );
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: RemoveWindow
-
- \----------------------------------------------------------------------------*/
- void NormalWindowList :: RemoveWindow( Window *w )
- {
- w->AddToUpdate();
- RemoveFromList( w );
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: DrawAll
-
- \----------------------------------------------------------------------------*/
- void NormalWindowList ::DrawAll( rect *where )
- {
- Window *link = LastLink;
-
- while( link != NULL )
- {
- link->DrawToScreen( where , backGround );
-
- link = link->previous;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: HandleMouseClick
-
- \----------------------------------------------------------------------------*/
- Boolean NormalWindowList :: HandleMouseClick( Boolean down , point where )
- {
- // check to see if the active window was clicked
- if( FirstLink == NULL )
- return false;
-
- if( down )
- return HandleMouseDown( where );
-
- HandleMouseUp( where );
-
- return false;
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: HandleMouseMove
-
- \----------------------------------------------------------------------------*/
- void NormalWindowList :: HandleMouseMove( point where )
- {
- // check to see if the active window was clicked
- if( FirstLink == NULL )
- return;
-
- FirstLink->HandleMouseMove( where );
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: SetBackGround
-
- \----------------------------------------------------------------------------*/
- void NormalWindowList :: SetBackGround( Boolean b )
- {
- if( backGround != b )
- {
- backGround = b;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: HandleMouseDown
-
- \----------------------------------------------------------------------------*/
- Boolean NormalWindowList :: HandleMouseDown( point where )
- {
- if( FirstLink->PointInWindow( where ) )
- {
- if( !FirstLink->Front() )
- {
- FirstLink->SetFront( true );
- }
- else
- FirstLink->HandleMouseClick( true , where );
-
- return true;
- }
- else // else go through window list and see wha twas clicked
- {
- Window *link = FirstLink->next;
-
- while( link != NULL )
- {
- if( link->PointInWindow( where ) )
- {
- FirstLink->SetFront( false );
- link->SetFront( true );
-
- MoveBefore( FirstLink , link );
-
- return true;
- }
- link = link->next;
- }
- }
-
- // no window was clicked, make the desk top active
- if( FirstLink != NULL )
- {
- if( FirstLink->Front() )
- {
- FirstLink->SetFront( false );
- }
- }
-
- return false;
- }
-
- /*----------------------------------------------------------------------------\
-
- NormalWindowList :: HandleMouseUp
-
- \----------------------------------------------------------------------------*/
- void NormalWindowList :: HandleMouseUp( point where )
- {
- FirstLink->HandleMouseClick( false , where );
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: Constructor
-
- \----------------------------------------------------------------------------*/
- FrontWindowList :: FrontWindowList( void )
- : LinkListClass< Window >()
- {
- backGround = false;
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: AddWindow
-
- \----------------------------------------------------------------------------*/
- void FrontWindowList :: AddWindow( Window *w )
- {
- // make what ever was in front not active any more
- if( FirstLink != NULL )
- {
- FirstLink->SetFront( false );
- }
-
- w->SetFront( true );
- AddToList( w );
- w->AddToUpdate();
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: DrawAll
-
- \----------------------------------------------------------------------------*/
- void FrontWindowList ::DrawAll( rect *where )
- {
- Window *link = LastLink;
-
- while( link != NULL )
- {
- link->DrawToScreen( where , backGround );
-
- link = link->previous;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: HandleMouseClick
-
- \----------------------------------------------------------------------------*/
- Boolean FrontWindowList :: HandleMouseClick( Boolean down , point where )
- {
- // check to see if the active window was clicked
- if( FirstLink == NULL )
- return false;
-
- if( down )
- return HandleMouseDown( where );
-
- HandleMouseUp( where );
-
- return false;}
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: HandleMouseMove
-
- \----------------------------------------------------------------------------*/
- void FrontWindowList :: HandleMouseMove( point where )
- {
- // check to see if the active window was clicked
- if( FirstLink == NULL )
- return;
-
- FirstLink->HandleMouseMove( where );
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: RemoveWindow
-
- \----------------------------------------------------------------------------*/
- void FrontWindowList :: RemoveWindow( Window *w )
- {
- w->AddToUpdate();
- RemoveFromList( w );
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: SetBackGround
-
- \----------------------------------------------------------------------------*/
- void FrontWindowList :: SetBackGround( Boolean b )
- {
- if( backGround != b )
- {
- backGround = b;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: HandleMouseDown
-
- \----------------------------------------------------------------------------*/
- Boolean FrontWindowList :: HandleMouseDown( point where )
- {
- if( FirstLink->PointInWindow( where ) )
- {
- if( !FirstLink->Front() )
- {
- FirstLink->SetFront( true );
- FirstLink->HandleMouseClick( true , where );
- }
- else
- FirstLink->HandleMouseClick( true , where );
-
- return true;
- }
- else // else go through window list and see wha twas clicked
- {
- Window *link = FirstLink->next;
-
- while( link != NULL )
- {
- if( link->PointInWindow( where ) )
- {
- FirstLink->SetFront( false );
- link->SetFront( true );
-
- MoveBefore( FirstLink , link );
-
- FirstLink->HandleMouseClick( true , where );
-
- return true;
- }
- link = link->next;
- }
- }
-
- // no window was clicked, make the desk top active
- if( FirstLink != NULL )
- {
- if( FirstLink->Front() )
- {
- FirstLink->SetFront( false );
- }
- }
-
- return false;
- }
-
- /*----------------------------------------------------------------------------\
-
- FrontWindowList :: HandleMouseUp
-
- \----------------------------------------------------------------------------*/
- void FrontWindowList :: HandleMouseUp( point where )
- {
- FirstLink->HandleMouseClick( false , where );
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: Constructor
-
- \----------------------------------------------------------------------------*/
- MenuWindowList :: MenuWindowList( void )
- : LinkListClass< Window >()
- {
- backGround = false;
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: AddWindow
-
- \----------------------------------------------------------------------------*/
- void MenuWindowList :: AddWindow( Window *w )
- {
- // make what ever was in front not active any more
- if( FirstLink != NULL )
- {
- FirstLink->SetFront( false );
- }
-
- w->SetFront( true );
- AddToList( w );
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: DrawAll
-
- \----------------------------------------------------------------------------*/
- void MenuWindowList ::DrawAll( rect *where )
- {
- Window *link = LastLink;
-
- while( link != NULL )
- {
- link->DrawToScreen( where , backGround );
-
- link = link->previous;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: HandleMouseClick
-
- \----------------------------------------------------------------------------*/
- Boolean MenuWindowList :: HandleMouseClick( Boolean down , point where )
- {
- // check to see if the active window was clicked
- if( FirstLink == NULL )
- return false;
-
- if( down )
- return HandleMouseDown( where );
-
- HandleMouseUp( where );
-
- return false;
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: HandleMouseMove
-
- \----------------------------------------------------------------------------*/
- void MenuWindowList :: HandleMouseMove( point where )
- {
- // check to see if the active window was clicked
- if( FirstLink == NULL )
- return;
-
- Window *link = FirstLink;
-
- while( link != NULL )
- {
- link->HandleMouseMove( where );
-
- link = link->next;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: SetBackGround
-
- \----------------------------------------------------------------------------*/
- void MenuWindowList :: SetBackGround( Boolean b )
- {
- if( backGround != b )
- {
- backGround = b;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: HandleMouseDown
-
- \----------------------------------------------------------------------------*/
- Boolean MenuWindowList :: HandleMouseDown( point where )
- {
-
- Window *link = FirstLink;
-
- while( link != NULL )
- {
- if( link->PointInWindow( where ) )
- {
- link->HandleMouseClick( true , where );
- return true;
- }
- link = link->next;
- }
-
- return false;
- }
-
- /*----------------------------------------------------------------------------\
-
- MenuWindowList :: HandleMouseUp
-
- \----------------------------------------------------------------------------*/
- void MenuWindowList :: HandleMouseUp( point where )
- {
- Window *link = FirstLink;
-
- while( link != NULL )
- {
- if( link->PointInWindow( where ) )
- {
- link->HandleMouseClick( false , where );
- }
- link = link->next;
- }
- }
-