home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_144 / 8.ddi / SCRNSAVE.ZIP / TSCRNSAV.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  2.6 KB  |  122 lines

  1. // ObjectWindows - (C) Copyright 1992 by Borland International
  2. //
  3. // tscrnsav.cpp
  4.  
  5. #include <owl.h>
  6. #include "tscrnsav.h"
  7.  
  8. #ifndef SC_SCREENSAVE
  9. #define SC_SCREENSAVE 0xF140
  10. #endif
  11.  
  12. TScrnSavWindow::TScrnSavWindow( PTWindowsObject AParent, LPSTR ATitle,
  13.                                 PTModule AModule ) :
  14.                 TWindow( AParent, ATitle, AModule )
  15. {
  16.     ShowCursor( FALSE );
  17.     Attr.Style  = WS_POPUP;
  18. }
  19.  
  20.  
  21. TScrnSavWindow::~TScrnSavWindow()
  22. {
  23.     ShowCursor( TRUE );
  24. }
  25.  
  26.  
  27. void TScrnSavWindow::GetWindowClass( WNDCLASS & AWndClass )
  28. {
  29.     TWindow::GetWindowClass( AWndClass );
  30.     AWndClass.hIcon  = ( HICON )NULL;
  31.     AWndClass.style |= CS_SAVEBITS;
  32.     AWndClass.hbrBackground = ( HBRUSH )GetStockObject( NULL_BRUSH );
  33. }
  34.  
  35.  
  36. void TScrnSavWindow::SetupWindow( void )
  37. {
  38.     RECT rc;
  39.  
  40.     TWindow::SetupWindow();
  41.     GetCursorPos( &prevPt );
  42.     GetWindowRect( GetDesktopWindow(), &rc );
  43.     MoveWindow( HWindow, rc.left, rc.top, rc.right, rc.bottom, TRUE );
  44. }
  45.  
  46.  
  47. void TScrnSavWindow::DefWndProc( RTMessage msg )
  48. {
  49.     switch( msg.Message )
  50.     {
  51.         case WM_MOUSEMOVE:
  52.              if ( MAKEPOINT( msg.LParam ).x == prevPt.x &&
  53.                   MAKEPOINT( msg.LParam ).y == prevPt.y  )
  54.                  break;
  55.  
  56.         case WM_ACTIVATE:
  57.         case WM_ACTIVATEAPP:
  58.              if ( msg.WParam != 0 )
  59.                  break;
  60.  
  61.         case WM_KEYDOWN:
  62.         case WM_SYSKEYDOWN:
  63.         case WM_LBUTTONDOWN:
  64.         case WM_MBUTTONDOWN:
  65.         case WM_RBUTTONDOWN:
  66.              PostMessage( HWindow, WM_CLOSE, 0, 0L );
  67.  
  68.         default:
  69.              break;
  70.     }
  71.     TWindow::DefWndProc( msg );
  72. }
  73.  
  74.  
  75. void TScrnSavWindow::WMSysCommand( RTMessage msg )
  76. {
  77.     if (( msg.WParam & 0xFFF0 ) == SC_SCREENSAVE )
  78.     {
  79.             msg.Result = TRUE;
  80.     }
  81.     else
  82.         DefWndProc( msg );
  83. }
  84.  
  85.  
  86. void TScrnSavWindow::AnimateScreen()
  87. {}
  88.  
  89.  
  90.  
  91. void TScrnSavApp::InitMainWindow()
  92. {
  93.     if ( *(( WORD FAR * )lpCmdLine ) == '/c' ||
  94.          *(( WORD FAR * )lpCmdLine ) == '-c'  )
  95.     {
  96.         fConfigureFlag = TRUE;
  97.         InitConfigDialog();
  98.         if ( pConfigureDialog )
  99.             MainWindow = pConfigureDialog;
  100.     }
  101.     else
  102.     {
  103.         fConfigureFlag = FALSE;
  104.         InitScrnSavWindow();
  105.         if ( pScrnSavWnd )
  106.             MainWindow = pScrnSavWnd;
  107.     }
  108. }
  109.  
  110.  
  111. void TScrnSavApp::InitScrnSavWindow()
  112. {
  113.     pScrnSavWnd = new TScrnSavWindow( NULL, NULL, NULL );
  114. }
  115.  
  116.  
  117. void TScrnSavApp::IdleAction()
  118. {
  119.     if ( fConfigureFlag == FALSE  &&  pScrnSavWnd != NULL )
  120.         pScrnSavWnd->AnimateScreen();
  121. }
  122.