home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / The Hacks / OutOfContextMenus / Source / CShadowWindow.h < prev    next >
Encoding:
Text File  |  1999-06-25  |  2.3 KB  |  116 lines  |  [TEXT/CWIE]

  1. // ===========================================================================
  2. //    CShadowWindow.h                 ©1999 Eric Traut
  3. // ===========================================================================
  4.  
  5. #pragma once
  6.  
  7. #include <MacWindows.h>
  8.  
  9. #include "CWindowBehavior.h"
  10.  
  11. typedef OSType ShadowWindowAction;
  12. const     ShadowWindowAction            kShadowActionNone        = 'none';
  13. const     ShadowWindowAction            kShadowActionBlur        = 'blur';
  14. const     ShadowWindowAction            kShadowActionFlipH        = 'flph';
  15. const     ShadowWindowAction            kShadowActionFlipV        = 'flpv';
  16. const     ShadowWindowAction            kShadowActionInvert        = 'invt';
  17. const     ShadowWindowAction            kShadowActionVBlank        = 'vblk';
  18. const    ShadowWindowAction            kShadowActionDuplicate    = 'dupl';
  19. const    ShadowWindowAction            kShadowActionNextSlide    = 'nxsl';
  20. const     ShadowWindowAction            kShadowActionRestore    = 'rstr';
  21. const     ShadowWindowAction            kShadowActionGame        = 'game';
  22. const     ShadowWindowAction            kShadowActionReboot        = 'rbot';
  23. const    ShadowWindowAction            kShadowActionCrash        = 'crsh';
  24. const    ShadowWindowAction            kShadowActionPigLatin    = 'pigl';
  25.  
  26. class CShadowWindow
  27. {
  28.     public:
  29.         CShadowWindow(    CWindowRecord *        inWindowPtr);
  30.         
  31.         virtual
  32.         ~CShadowWindow(void);
  33.         
  34.         void
  35.         ClearVisitedFlag(void)
  36.         {
  37.             mWasVisited = false;
  38.         }
  39.         
  40.         void
  41.         SetVisitedFlag(void)
  42.         {
  43.             mWasVisited = true;
  44.         }
  45.         
  46.         Boolean
  47.         WasVisited(void)
  48.         {
  49.             return mWasVisited;
  50.         }
  51.         
  52.         CWindowRecord *
  53.         GetMacWindow(void)
  54.         {
  55.             return mWindowPtr;
  56.         }
  57.         
  58.         void
  59.         GetWindowTitle(Str255 outName);
  60.         
  61.         void
  62.         UseWindowsPort(void);
  63.         
  64.         // Window Behaviors
  65.         void
  66.         AttachBehavior(        CWindowBehavior &        inBehavior);
  67.  
  68.         void
  69.         DetachBehavior(void);
  70.  
  71.         void
  72.         DeleteBehavior(void);
  73.         
  74.         Boolean
  75.         HasBehavior(void)
  76.         {
  77.             return (mWindowBehavior != NULL);
  78.         }
  79.  
  80.         CWindowBehavior *
  81.         GetBehavior(void)
  82.         {
  83.             return mWindowBehavior;
  84.         }
  85.         
  86.         virtual Boolean
  87.         ShouldEnableRestoreMenu(void);
  88.  
  89.         void
  90.         SetIdleMenuAction(    ShadowWindowAction         inWindowAction)
  91.         {
  92.             mIdleAction = inWindowAction;
  93.         }
  94.         
  95.         // Event Management
  96.         virtual void
  97.         DoIdleTask(Boolean inGNETime);
  98.  
  99.         virtual void
  100.         HandleEvent(        EventRecord *        ioEvent, 
  101.                             Boolean *            ioResult);
  102.  
  103.     private:
  104.         ShadowWindowAction    mIdleAction;
  105.         Boolean                mNeedsUpdate;
  106.         Boolean                mWasVisited;
  107.         CWindowRecord *        mWindowPtr;
  108.         CWindowBehavior *    mWindowBehavior;
  109. };
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.