home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-21 | 10.3 KB | 411 lines | [TEXT/CWIE] |
- //===================================================================
- //======================= Headers =============================
-
- #include "BogusFinder.h"
- #include "WindowManager.h"
- #include "Screen.h"
- #include "ApplicationEvents.h"
- #include "MenuBar.h"
- #include "ApplicationHandler.h"
- #include "GameUtilities.h"
-
- //===================================================================
- //======================= Globals =============================
-
- //===================================================================
- //======================= #define =============================
-
-
- //===================================================================
- //======================= Function Prototypes =====================
-
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: Constructor
-
- \----------------------------------------------------------------------------*/
- BogusFinder :: BogusFinder( void )
- {
- whichApp = 0;
-
- selectedIcon = 0xff;
- movingIcon = false;
-
- MySetRectWH( &icons[ kIconPhotoShop ] , 0 , 0 , 188 , 47 );
- MySetRectWH( &icons[ kIconMacAmp ] , 0 , 47 , 124 , 47 );
- MySetRectWH( &icons[ kIconQT ] , 0 , 94 , 70 , 46 );
-
- MySetRectWH( &screenIcon[ kIconPhotoShop ] , 100 , 200 , 188 , 47 );
- MySetRectWH( &screenIcon[ kIconMacAmp ] , 300 , 200 , 124 , 47 );
- MySetRectWH( &screenIcon[ kIconQT ] , 500 , 200 , 70 , 46 );
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: Init
-
- \----------------------------------------------------------------------------*/
- Boolean BogusFinder :: Init( void )
- {
-
- if( iconBuff.LoadPicBuff( 144 ) )
- {
-
- SetUpMenuItems();
-
- return backGround.LoadPicBuff( 129 );
- }
-
- return false;
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: HandleEvent
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: HandleEvent( ushort event , void *data )
- {
- switch( event )
- {
- case kAEMakeFrontAppEvent:
- ChangeActive( true );
- break;
-
- case kAEGoBackGroundEvent:
- ChangeActive( false );
- break;
-
- case kAEActivateEvent:
-
- break;
-
- case kAEDeactivateEvent:
-
- break;
-
- case kAEHideEvent:
-
- break;
-
- case kAEMenuSelect:
- HandleMenuSelect( ((AEMenuWhere *)data)->which , ((AEMenuWhere *)data)->num );
- break;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: HandleMouseClick
-
- \----------------------------------------------------------------------------*/
- Boolean BogusFinder :: HandleMouseClick( Boolean down, point where )
- {
- IconHandleMouseClick( down , where );
- return WMHandleMouseClick( down , where );
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: HandleMouseMove
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: HandleMouseMove( point where )
- {
- IconHandleMouseMove( where );
- WMHandleMouseMove( where );
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: CleanUp
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: CleanUp( rect *where )
- {
- // clean up the back ground
- if( where == NULL )
- screen.DrawGeneric( &backGround , &backGround.GetBoundsSize() ,
- &backGround.GetBoundsSize() , NULL ,
- 0 , 0 , 0 );
- else
- screen.DrawGeneric( &backGround , where ,
- where , NULL ,
- 0 , 0 , 0 );
-
- // icons
- IconCleanUp( where);
-
- // now clean up the windows
- DrawWindows( where );
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: Maintance
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: Maintance( void )
- {
- WMMaintance();
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: ChangeActive
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: ChangeActive( Boolean act )
- {
- if( act != active )
- {
- active = act;
-
- if( active )
- {
- InitSpecialMenus();
- menuBar.AddMenuToList( &FileMenu );
- menuBar.AddMenuToList( &EditMenu );
- menuBar.AddMenuToList( &ViewMenu );
- menuBar.AddMenuToList( &SpecialMenu );
-
- WMGoBackGround( false );
- }
- else
- {
- WMGoBackGround( true );
- }
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: SetUpMenuItems
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: SetUpMenuItems( void )
- {
- AddMenuWindow( &appleMenu );
- AddMenuWindow( &AppSwitchMenu );
-
- FileMenu.SetWhichMenu( kFileMenuTitle );
- FileMenu.SetMaxItems( 18 );
- FileMenu.AddItem( 0 , "New Folder" , true );
- FileMenu.AddItem( 1 , "Open" , false );
- FileMenu.AddItem( 2 , "Print" , false );
- FileMenu.AddItem( 3 , "Move To Trash" , false );
- FileMenu.AddItem( 4 , "Close Window" , false );
- FileMenu.AddItem( 5 , NULL , false );
- FileMenu.AddItem( 6 , "Get Info" , false );
- FileMenu.AddItem( 7 , "Label" , false );
- FileMenu.AddItem( 8 , "Sharing..." , false );
- FileMenu.AddItem( 9 , "Duplicate" , false );
- FileMenu.AddItem( 10 , "Make Alias" , false );
- FileMenu.AddItem( 11 , "Put Away" , false );
- FileMenu.AddItem( 12 , NULL , false );
- FileMenu.AddItem( 13 , "Find..." , false );
- FileMenu.AddItem( 14 , "Show Original" , true );
- FileMenu.AddItem( 15 , NULL , false );
- FileMenu.AddItem( 16 , "Print Setup.." , true );
- FileMenu.AddItem( 17 , "Print Desktop" , true );
- FileMenu.Init();
- AddMenuWindow( &FileMenu );
-
- EditMenu.SetWhichMenu( kEditMenuTitle );
- EditMenu.SetMaxItems( 10 );
- EditMenu.AddItem( 0 , "Undo" , false );
- EditMenu.AddItem( 1 , NULL , false );
- EditMenu.AddItem( 2 , "Cut" , false );
- EditMenu.AddItem( 3 , "Copy" , false );
- EditMenu.AddItem( 4 , "Paste" , true );
- EditMenu.AddItem( 5 , "Clear" , false );
- EditMenu.AddItem( 6 , "Select All" , true );
- EditMenu.AddItem( 7 , "Show Keyboard" , true );
- EditMenu.AddItem( 8 , NULL , false );
- EditMenu.AddItem( 9 , "Preferences..." , true );
- EditMenu.Init();
- AddMenuWindow( &EditMenu );
-
- ViewMenu.SetWhichMenu( kViewMenuTitle );
- ViewMenu.SetMaxItems( 8 );
- ViewMenu.AddItem( 0 , "as Icon" , true );
- ViewMenu.AddItem( 1 , "as Button" , true );
- ViewMenu.AddItem( 2 , "as list" , false );
- ViewMenu.AddItem( 3 , NULL , false );
- ViewMenu.AddItem( 4 , "as Window" , false );
- ViewMenu.AddItem( 5 , "as Pop-up Window" , true );
- ViewMenu.AddItem( 6 , "Arrange" , true );
- ViewMenu.AddItem( 7 , "view Options" , true );
- ViewMenu.Init();
- AddMenuWindow( &ViewMenu );
-
- SpecialMenu.SetWhichMenu( kSpecialMenuTitle );
- SpecialMenu.SetMaxItems( 8 );
- SpecialMenu.AddItem( 0 , "Empty Trash..." , false );
- SpecialMenu.AddItem( 1 , NULL , false );
- SpecialMenu.AddItem( 2 , "Eject" , false );
- SpecialMenu.AddItem( 3 , "Erase Disk..." , false );
- SpecialMenu.AddItem( 4 , NULL , false );
- SpecialMenu.AddItem( 5 , "Sleep" , true );
- SpecialMenu.AddItem( 6 , "Restart" , true );
- SpecialMenu.AddItem( 7 , "Shut Down" , true );
- SpecialMenu.Init();
- AddMenuWindow( &SpecialMenu );
-
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: HandleMenuSelect
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: HandleMenuSelect( uchar which , uchar num )
- {
- switch( which )
- {
- case kFileMenuTitle:
-
- break;
-
- case kEditMenuTitle:
-
- break;
-
- case kViewMenuTitle:
-
- break;
-
- case kSpecialMenuTitle:
- ExitToShell();
- break;
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: IconHandleMouseClick
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: IconHandleMouseClick( Boolean down, point where )
- {
- short i;
-
- if( down )
- {
- for( i = 0; i < kNumFinderIcons; i++ )
- {
- if( SectPtRect( where , screenIcon[ i ] ) )
- {
- if( i != selectedIcon )
- {
- if( selectedIcon != 0xff )
- screen.AddRectToUpdate( screenIcon[ selectedIcon ] );
- selectedIcon = i;
- screen.AddRectToUpdate( screenIcon[ selectedIcon ] );
- start = where;
- movingIcon = true;
- didMove = false;
- return;
- }
- }
- }
-
- if( selectedIcon != 0xff )
- {
- screen.AddRectToUpdate( screenIcon[ selectedIcon ] );
- selectedIcon = 0xff;
- }
- }
- else
- {
- if( movingIcon )
- {
- movingIcon = false;
-
- if( SectPtRect( where , screenIcon[ selectedIcon ] ) && !didMove )
- {
- HandleIconClick( selectedIcon );
- }
- }
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: IconHandleMouseMove
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: IconHandleMouseMove( point where )
- {
- if( movingIcon )
- {
- didMove = true;
-
- screen.AddRectToUpdate( screenIcon[ selectedIcon ] );
-
- MyOffSetRect( &screenIcon[ selectedIcon ] , where.x - start.x , where.y - start.y );
- start = where;
-
- screen.AddRectToUpdate( screenIcon[ selectedIcon ] );
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: IconCleanUp
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: IconCleanUp( rect *where )
- {
- short i;
-
- for( i = 0; i < kNumFinderIcons; i++ )
- {
- if( i != selectedIcon )
- {
- if( where == NULL )
- screen.DrawGeneric( &iconBuff , &icons[ i ] ,
- &screenIcon[ i ] , NULL ,
- kDrawTransparent , 0 , 0 );
- else
- screen.DrawGeneric( &iconBuff , &icons[ i ] ,
- &screenIcon[ i ] , where ,
- kDrawTransparent , 0 , 0 );
- }
- else
- {
- if( where == NULL )
- screen.DrawGeneric( &iconBuff , &icons[ i ] ,
- &screenIcon[ i ] , NULL ,
- kDrawTransparent | kDrawTint, 16 , 0x0000 );
- else
- screen.DrawGeneric( &iconBuff , &icons[ i ] ,
- &screenIcon[ i ] , where ,
- kDrawTransparent | kDrawTint, 16 , 0x0000 );
- }
- }
- }
-
- /*----------------------------------------------------------------------------\
-
- BogusFinder :: HandleIconClick
-
- \----------------------------------------------------------------------------*/
- void BogusFinder :: HandleIconClick( short which )
- {
- switch( which )
- {
- case kIconPhotoShop:
- AH.LoadApplication( kPhotoshopApp );
- break;
-
- case kIconMacAmp:
- AH.LoadApplication( kMacAmp );
- break;
-
- case kIconQT:
- AH.LoadApplication( kQuickTime );
- break;
- }
- }