config.c
资源名称:xtractor.zip [点击查看]
上传用户:xmgzy123
上传日期:2007-01-07
资源大小:373k
文件大小:6k
源码类别:
SCSI/ASPI
开发平台:
WINDOWS
- /*
- * config.c - Copyright (C) 1999,2000 Jay A. Key
- *
- * Creates and displays the configuration property sheet.
- *
- **********************************************************************
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
- #include <windows.h>
- #include <commctrl.h>
- #include "resources.h"
- #include "globals.h"
- #include "gauge.h"
- #include "statusbar.h"
- #if (__IBMC__) /* BWT (20000127) */
- WINCOMMCTRLAPI void WINAPI InitCommonControls(void); /* BWT (20000127) */
- #endif /* BWT (20000127) */
- void GetSetOutputDlgCurrentVals( BOOL bGet );
- void GetSetCDDlgCurrentVals( BOOL bGet );
- void GetSetMP3DlgCurrentVals( BOOL bGet );
- void GetSetCDDBDlgCurrentVals( BOOL bGet );
- void centerDialog( HWND hWnd );
- BOOL CALLBACK GenericDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
- LPARAM lParam );
- BOOL CALLBACK CDDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
- LPARAM lParam );
- BOOL CALLBACK OutputDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
- LPARAM lParam );
- BOOL CALLBACK MP3DlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
- LPARAM lParam );
- BOOL CALLBACK CDDBDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
- LPARAM lParam );
- void centerDialog( HWND hWnd )
- {
- RECT r, rs;
- LONG x, y, w, h;
- if ( !hWnd )
- return;
- GetWindowRect( hWnd, &r );
- GetWindowRect( GetDesktopWindow(), &rs );
- w = r.right - r.left;
- h = r.bottom - r.top;
- x = ( rs.left + rs.right ) / 2 - ( w / 2 );
- y = ( rs.top + rs.bottom ) / 2 - ( h / 2 );
- MoveWindow( hWnd, x, y, w, h, TRUE );
- }
- BOOL CALLBACK GenericDlgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
- LPARAM lParam )
- {
- //char buf[81];
- NMHDR *l = (NMHDR *)lParam;
- WORD wID;
- switch( uMsg )
- {
- case WM_COMMAND:
- wID = LOWORD( wParam );
- break;
- case WM_CREATE:
- break;
- case WM_NOTIFY:
- switch( l->code )
- {
- case PSN_SETACTIVE: // sent before page is shown
- break;
- case PSN_KILLACTIVE: //losing focus
- SetWindowLong( hWnd, DWL_MSGRESULT, FALSE );
- break;
- case PSN_QUERYCANCEL:
- break;
- case PSN_APPLY:
- break;
- case PSN_HELP:
- break;
- case PSN_RESET:
- break;
- default:
- break;
- }
- break;
- }
- return FALSE;
- }
- int DoConfig( HWND hParent, HINSTANCE hInst, UINT uiStartPage )
- {
- HPROPSHEETPAGE hPg[4];
- PROPSHEETPAGE p;
- PROPSHEETHEADER ph;
- //char buf[81];
- int retVal;
- InitCommonControls();
- memset( &p, 0, sizeof(p) );
- p.dwSize = sizeof(p);
- p.dwFlags = PSP_DEFAULT;
- p.hInstance = hInst;
- #ifdef __GNUC__
- p.u.pszTemplate = "CDControlDialog";
- #else
- p.pszTemplate = "CDControlDialog";
- #endif
- p.pfnDlgProc = (DLGPROC)CDDlgProc;
- hPg[0] = CreatePropertySheetPage( &p );
- memset( &p, 0, sizeof(p) );
- p.dwSize = sizeof(p);
- p.dwFlags = PSP_DEFAULT;
- p.hInstance = hInst;
- #ifdef __GNUC__
- p.u.pszTemplate = "DirectoryDialog";
- #else
- p.pszTemplate = "DirectoryDialog";
- #endif
- p.pfnDlgProc = (DLGPROC)OutputDlgProc;
- hPg[1] = CreatePropertySheetPage( &p );
- memset( &p, 0, sizeof(p) );
- p.dwSize = sizeof(p);
- p.dwFlags = PSP_DEFAULT;
- p.hInstance = hInst;
- #ifdef __GNUC__
- p.u.pszTemplate = "MP3OptionsDialog";
- #else
- p.pszTemplate = "MP3OptionsDialog";
- #endif
- p.pfnDlgProc = (DLGPROC)MP3DlgProc;
- hPg[2] = CreatePropertySheetPage( &p );
- memset( &p, 0, sizeof(p) );
- p.dwSize = sizeof(p);
- p.dwFlags = PSP_DEFAULT;
- p.hInstance = hInst;
- #ifdef __GNUC__
- p.u.pszTemplate = "CDDBOptionsDialog";
- #else
- p.pszTemplate = "CDDBOptionsDialog";
- #endif
- p.pfnDlgProc = (DLGPROC)CDDBDlgProc;
- hPg[3] = CreatePropertySheetPage( &p );
- memset( &ph, 0, sizeof(ph) );
- ph.dwSize = sizeof(ph);
- ph.dwFlags = PSH_DEFAULT;
- ph.hwndParent = hParent;
- ph.hInstance = hInst;
- #ifdef __GNUC__
- ph.u.pszIcon = "GUIRIPLG";
- ph.u2.nStartPage = uiStartPage;
- ph.u3.phpage = hPg;
- #else
- ph.pszIcon = "GUIRIPLG";
- ph.nStartPage = uiStartPage;
- ph.phpage = hPg;
- #endif
- ph.pszCaption = "CD-DA X-Tractor Options";
- ph.nPages = 4;
- GetSetCDDlgCurrentVals( TRUE ); // read current values
- GetSetOutputDlgCurrentVals( TRUE ); // read current values
- GetSetMP3DlgCurrentVals( TRUE );
- GetSetCDDBDlgCurrentVals( TRUE );
- retVal = PropertySheet( &ph );
- // cancel == 0; OK == 1;
- if ( retVal <= 0 )
- return 0;
- // save the info
- GetSetCDDlgCurrentVals( FALSE ); // set current values
- GetSetOutputDlgCurrentVals( FALSE ); // set current values
- GetSetCDDBDlgCurrentVals( FALSE );
- UpdateStatusBar();
- return 0;
- }