config.c
上传用户:xmgzy123
上传日期:2007-01-07
资源大小:373k
文件大小:6k
源码类别:

SCSI/ASPI

开发平台:

WINDOWS

  1. /*
  2.  * config.c - Copyright (C) 1999,2000 Jay A. Key
  3.  *
  4.  * Creates and displays the configuration property sheet.
  5.  *
  6.  **********************************************************************
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  21.  *
  22.  */
  23. #include <windows.h>
  24. #include <commctrl.h>
  25. #include "resources.h"
  26. #include "globals.h"
  27. #include "gauge.h"
  28. #include "statusbar.h"
  29. #if (__IBMC__)                         /* BWT (20000127)                   */
  30. WINCOMMCTRLAPI void WINAPI InitCommonControls(void);   /* BWT (20000127)   */
  31. #endif                                 /* BWT (20000127)                   */
  32. void GetSetOutputDlgCurrentVals( BOOL bGet );
  33. void GetSetCDDlgCurrentVals( BOOL bGet );
  34. void GetSetMP3DlgCurrentVals( BOOL bGet );
  35. void GetSetCDDBDlgCurrentVals( BOOL bGet );
  36. void centerDialog( HWND hWnd );
  37. BOOL CALLBACK GenericDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
  38.                              LPARAM lParam );
  39. BOOL CALLBACK CDDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
  40.                              LPARAM lParam );
  41. BOOL CALLBACK OutputDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
  42.                              LPARAM lParam );
  43. BOOL CALLBACK MP3DlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
  44.                              LPARAM lParam );
  45. BOOL CALLBACK CDDBDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
  46.                            LPARAM lParam );
  47. void centerDialog( HWND hWnd )
  48. {
  49.   RECT r, rs;
  50.   LONG x, y, w, h;
  51.   if ( !hWnd )
  52.     return;
  53.   GetWindowRect( hWnd, &r );
  54.   GetWindowRect( GetDesktopWindow(), &rs );
  55.   w = r.right - r.left;
  56.   h = r.bottom - r.top;
  57.   x = ( rs.left + rs.right ) / 2 - ( w / 2 );
  58.   y = ( rs.top + rs.bottom ) / 2 - ( h / 2 );
  59.   MoveWindow( hWnd, x, y, w, h, TRUE );
  60. }
  61. BOOL CALLBACK GenericDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
  62.                              LPARAM lParam )
  63. {
  64.   //char buf[81];
  65.   NMHDR *l = (NMHDR *)lParam;
  66.   WORD wID;
  67.   switch( uMsg )
  68.     {
  69.     case WM_COMMAND:
  70.       wID = LOWORD( wParam );
  71.       break;
  72.     case WM_CREATE:
  73.       break;
  74.     case WM_NOTIFY:
  75.       switch( l->code )
  76.         {
  77.         case PSN_SETACTIVE:  // sent before page is shown
  78.           break;
  79.         case PSN_KILLACTIVE:  //losing focus
  80.           SetWindowLong( hWnd, DWL_MSGRESULT, FALSE );
  81.           break;
  82.         case PSN_QUERYCANCEL:
  83.           break;
  84.         case PSN_APPLY:
  85.           break;
  86.         case PSN_HELP:
  87.           break;
  88.         case PSN_RESET:
  89.           break;
  90.         default:
  91.           break;
  92.         }
  93.       break;
  94.     }
  95.   return FALSE;
  96. }
  97. int DoConfig( HWND hParent, HINSTANCE hInst, UINT uiStartPage )
  98. {
  99.   HPROPSHEETPAGE hPg[4];
  100.   PROPSHEETPAGE p;
  101.   PROPSHEETHEADER ph;
  102.   //char buf[81];
  103.   int retVal;
  104.   InitCommonControls();
  105.   memset( &p, 0, sizeof(p) );
  106.   p.dwSize      = sizeof(p);
  107.   p.dwFlags     = PSP_DEFAULT;
  108.   p.hInstance   = hInst;
  109. #ifdef __GNUC__
  110.   p.u.pszTemplate = "CDControlDialog";
  111. #else
  112.   p.pszTemplate = "CDControlDialog";
  113. #endif
  114.   p.pfnDlgProc  = (DLGPROC)CDDlgProc;
  115.   hPg[0] = CreatePropertySheetPage( &p );
  116.   memset( &p, 0, sizeof(p) );
  117.   p.dwSize      = sizeof(p);
  118.   p.dwFlags     = PSP_DEFAULT;
  119.   p.hInstance   = hInst;
  120. #ifdef __GNUC__
  121.   p.u.pszTemplate = "DirectoryDialog";
  122. #else
  123.   p.pszTemplate = "DirectoryDialog";
  124. #endif
  125.   p.pfnDlgProc  = (DLGPROC)OutputDlgProc;
  126.   hPg[1] = CreatePropertySheetPage( &p );
  127.   memset( &p, 0, sizeof(p) );
  128.   p.dwSize      = sizeof(p);
  129.   p.dwFlags     = PSP_DEFAULT;
  130.   p.hInstance   = hInst;
  131. #ifdef __GNUC__
  132.   p.u.pszTemplate = "MP3OptionsDialog";
  133. #else
  134.   p.pszTemplate = "MP3OptionsDialog";
  135. #endif
  136.   p.pfnDlgProc  = (DLGPROC)MP3DlgProc;
  137.   hPg[2] = CreatePropertySheetPage( &p );
  138.   memset( &p, 0, sizeof(p) );
  139.   p.dwSize      = sizeof(p);
  140.   p.dwFlags     = PSP_DEFAULT;
  141.   p.hInstance   = hInst;
  142. #ifdef __GNUC__
  143.   p.u.pszTemplate = "CDDBOptionsDialog";
  144. #else
  145.   p.pszTemplate = "CDDBOptionsDialog";
  146. #endif
  147.   p.pfnDlgProc  = (DLGPROC)CDDBDlgProc;
  148.   hPg[3] = CreatePropertySheetPage( &p );
  149.   memset( &ph, 0, sizeof(ph) );
  150.   ph.dwSize      = sizeof(ph);
  151.   ph.dwFlags     = PSH_DEFAULT;
  152.   ph.hwndParent  = hParent;
  153.   ph.hInstance   = hInst;
  154. #ifdef __GNUC__
  155.   ph.u.pszIcon  = "GUIRIPLG";
  156.   ph.u2.nStartPage = uiStartPage;
  157.   ph.u3.phpage   = hPg;
  158. #else
  159.   ph.pszIcon  = "GUIRIPLG";
  160.   ph.nStartPage = uiStartPage;
  161.   ph.phpage   = hPg;
  162. #endif
  163.   ph.pszCaption  = "CD-DA X-Tractor Options";
  164.   ph.nPages      = 4;
  165.   GetSetCDDlgCurrentVals( TRUE );  // read current values
  166.   GetSetOutputDlgCurrentVals( TRUE );  // read current values
  167.   GetSetMP3DlgCurrentVals( TRUE );
  168.   GetSetCDDBDlgCurrentVals( TRUE );
  169.   retVal = PropertySheet( &ph );
  170.   // cancel == 0; OK == 1; 
  171.   if ( retVal <= 0 )
  172.     return 0;  
  173.   // save the info
  174.   GetSetCDDlgCurrentVals( FALSE );  // set current values
  175.   GetSetOutputDlgCurrentVals( FALSE );  // set current values
  176.   GetSetCDDBDlgCurrentVals( FALSE );
  177.   UpdateStatusBar();
  178.   return 0;
  179. }