home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / The Hacks! / COSEmulator / COSEmulator- SRC / src / MacAmp.cpp < prev    next >
Encoding:
Text File  |  1998-06-21  |  5.2 KB  |  224 lines  |  [TEXT/CWIE]

  1. //===================================================================
  2. //=======================  Headers        =============================
  3.  
  4. #include "MacAmp.h"
  5. #include "ApplicationEvents.h"
  6. #include "MenuBar.h"
  7.  
  8.  
  9. //===================================================================
  10. //=======================  Globals        =============================
  11.  
  12. //===================================================================
  13. //=======================  #define        =============================
  14.  
  15.  
  16. //===================================================================
  17. //=======================  Function Prototypes    =====================
  18. void PlayTrack(short track);
  19.  
  20. /*----------------------------------------------------------------------------\
  21.  
  22.     MacAmp :: Constructor
  23.  
  24. \----------------------------------------------------------------------------*/
  25.     MacAmp :: MacAmp( void )
  26.             : Application()
  27. {
  28.     whichApp = 4;
  29. }
  30.  
  31. /*----------------------------------------------------------------------------\
  32.  
  33.     MacAmp :: Init
  34.  
  35. \----------------------------------------------------------------------------*/
  36. Boolean    MacAmp :: Init( void )
  37. {
  38.     Boolean    allGood;
  39.     
  40.     allGood = playList.SetUp( 146 , 194 , 252 ,100 , 100  );
  41.     
  42.     if( allGood )
  43.         allGood = mainthing.SetUp( 145 , 288 , 122 , 100 , 400  );
  44.         
  45.     if( allGood )
  46.     {
  47.         SetUpMenuItems();
  48.         
  49.         AddFrontWindow( &playList );
  50.         AddFrontWindow( &mainthing );
  51.     }
  52.     
  53.     return allGood;
  54. }
  55.  
  56. /*----------------------------------------------------------------------------\
  57.  
  58.     MacAmp :: HandleEvent
  59.  
  60. \----------------------------------------------------------------------------*/
  61. void    MacAmp :: HandleEvent( ushort event , void *data )
  62. {
  63.     switch( event )
  64.     {
  65.     case kAEMakeFrontAppEvent:
  66.         ChangeActive( true );
  67.     break;
  68.     
  69.     case kAEGoBackGroundEvent:
  70.         ChangeActive( false );
  71.     break;
  72.     
  73.     case kAEActivateEvent:
  74.         
  75.     break;
  76.     
  77.     case kAEDeactivateEvent:
  78.         
  79.     break;
  80.     
  81.     case kAEHideEvent:
  82.         
  83.     break;
  84.     
  85.     case kAEMenuSelect:
  86.         HandleMenuSelect( ((AEMenuWhere *)data)->which , ((AEMenuWhere *)data)->num );
  87.     break;
  88.     }
  89. }
  90.  
  91. /*----------------------------------------------------------------------------\
  92.  
  93.     MacAmp :: HandleMouseClick
  94.  
  95. \----------------------------------------------------------------------------*/
  96. Boolean    MacAmp :: HandleMouseClick( Boolean down, point where )
  97. {
  98.     return WMHandleMouseClick( down , where );
  99. }
  100.  
  101. /*----------------------------------------------------------------------------\
  102.  
  103.     MacAmp :: HandleMouseMove
  104.  
  105. \----------------------------------------------------------------------------*/
  106. void    MacAmp :: HandleMouseMove( point where )
  107. {
  108.     WMHandleMouseMove( where );
  109. }
  110.  
  111. /*----------------------------------------------------------------------------\
  112.  
  113.     MacAmp :: CleanUp
  114.  
  115. \----------------------------------------------------------------------------*/
  116. void    MacAmp :: CleanUp( rect *where )
  117. {    
  118. // now clean up the windows
  119.     DrawWindows( where );
  120. }
  121.  
  122. /*----------------------------------------------------------------------------\
  123.  
  124.     MacAmp :: Maintance
  125.  
  126. \----------------------------------------------------------------------------*/
  127. void    MacAmp :: Maintance( void )
  128. {
  129.     WMMaintance();
  130. }
  131.  
  132. /*----------------------------------------------------------------------------\
  133.  
  134.     MacAmp :: ChangeActive
  135.  
  136. \----------------------------------------------------------------------------*/
  137. void    MacAmp :: ChangeActive( Boolean act )
  138. {
  139.     if( act != active )
  140.     {
  141.         active = act;
  142.         
  143.         if( active )
  144.         {
  145.             InitSpecialMenus();
  146.             menuBar.AddMenuToList( &FileMenu );
  147.             menuBar.AddMenuToList( &EditMenu );
  148.             menuBar.AddMenuToList( &WindowMenu );
  149.             
  150.             WMGoBackGround( false );
  151.         }
  152.         else
  153.         {
  154.             WMGoBackGround( true );
  155.         }
  156.     }
  157. }
  158.  
  159. /*----------------------------------------------------------------------------\
  160.  
  161.     MacAmp :: SetUpMenuItems
  162.  
  163. \----------------------------------------------------------------------------*/
  164. void    MacAmp :: SetUpMenuItems( void )
  165. {
  166.     AddMenuWindow( &appleMenu );
  167.     AddMenuWindow( &AppSwitchMenu );
  168.     
  169.     FileMenu.SetWhichMenu( kFileMenuTitle );
  170.     FileMenu.SetMaxItems( 6 );
  171.     FileMenu.AddItem( 0 , "Open MPEG/PlayList" , true );
  172.     FileMenu.AddItem( 1 , "Save Playlist" , true );
  173.     FileMenu.AddItem( 2 , NULL , true );
  174.     FileMenu.AddItem( 3 , "Preferences..." , true );
  175.     FileMenu.AddItem( 4 , NULL , true );
  176.     FileMenu.AddItem( 5 , "Quit" , true );
  177.     FileMenu.Init();
  178.     AddMenuWindow( &FileMenu );
  179.     
  180.     EditMenu.SetWhichMenu( kEditMenuTitle );
  181.     EditMenu.SetMaxItems( 8 );
  182.     EditMenu.AddItem( 0 , "Undo" , false );
  183.     EditMenu.AddItem( 1 , NULL , false );
  184.     EditMenu.AddItem( 2 , "Cut" , false );
  185.     EditMenu.AddItem( 3 , "Copy" , false );
  186.     EditMenu.AddItem( 4 , "Paste" , false );
  187.     EditMenu.AddItem( 5 , "Clear" , false );
  188.     EditMenu.AddItem( 6 , NULL , false );
  189.     EditMenu.AddItem( 7 , "Select All" , false );
  190.     EditMenu.Init();
  191.     AddMenuWindow( &EditMenu );
  192.  
  193.     WindowMenu.SetWhichMenu( kWindowMenuTitle );
  194.     WindowMenu.SetMaxItems( 2 );
  195.     WindowMenu.AddItem( 0 , "Player" , true );
  196.     WindowMenu.AddItem( 1 , "Play List" , true );
  197.     WindowMenu.Init();
  198.     AddMenuWindow( &WindowMenu );
  199. }
  200.  
  201. /*----------------------------------------------------------------------------\
  202.  
  203.     MacAmp :: HandleMenuSelect
  204.  
  205. \----------------------------------------------------------------------------*/
  206. void    MacAmp :: HandleMenuSelect( uchar    which , uchar num )
  207. {
  208.     switch( which )
  209.     {
  210.     case kFileMenuTitle:
  211.         
  212.     break;
  213.     
  214.     case kEditMenuTitle:
  215.         
  216.     break;
  217.     
  218.     case kWindowMenuTitle:
  219.         PlayTrack( 4 );
  220.     break;
  221.     } 
  222. }
  223.  
  224.