/***************************************************************************** * * $Workfile: UIMgr.cpp $ * * Copyright (C) 1997 Hewlett-Packard Company. * Copyright (c) 1997 Microsoft Corporation. * All rights reserved. * * 11311 Chinden Blvd. * Boise, Idaho 83714 * ***************************************************************************** * * $Log: /StdTcpMon/TcpMonUI/UIMgr.cpp $ * * 9 9/23/97 3:56p Becky * Corrected small bug for NT 5.0 * * 8 9/23/97 3:35p Becky * Split functionality into NT4UIMgr and NT5UIMgr files. This main class * is only responsible, now, for making a decision on which of these * classes to create and call. * * 7 9/19/97 11:26a Becky * Added Wizard 97 flags and function parameters. * * 6 9/12/97 3:25p Becky * Added bNewPort to the params structure. * * 5 9/11/97 9:55a Becky * Added parameter to the ConfigPortUI call to let us know if the call is * for a new port or an existing one. * * 4 9/10/97 3:16p Becky * Split out Input Checking functionality into the class CInptChkr. * * 3 9/09/97 4:35p Becky * Updated to use the new Monitor UI data structure. * * 2 9/09/97 11:58a Becky * Added a UIManager field to the AddParamsPackage so the Add UI will know * how to call the Config UI (it's a member function of the UIManager). * * 1 8/19/97 3:46p Becky * Redesign of the Port Monitor UI. * *****************************************************************************/ /* * Author: Becky Jacobsen */ #include "precomp.h" #define _PRSHT_H_ #include "TCPMonUI.h" #include "UIMgr.h" #include "InptChkr.h" #include "resource.h" #include "NT5UIMgr.h" // includes for ConfigPort #include "CfgPort.h" #include "CfgAll.h" // includes for AddPort #include "DevPort.h" #include "AddWelcm.h" #include "AddGetAd.h" #include "AddMInfo.h" #include "AddDone.h" #undef _PRSHT_H_ // // FUNCTION: CUIManager // // PURPOSE: Constructor // CUIManager::CUIManager() : m_hBigBoldFont(NULL) { CreateWizardFont(); } // Constructor // // FUNCTION: CUIManager // // PURPOSE: Destructor // CUIManager::~CUIManager() { DestroyWizardFont(); } // Destructor // // FUNCTION: AddPortUI // // PURPOSE: Main function called when the User Interface for adding a port is called. // DWORD CUIManager::AddPortUI(HWND hWndParent, HANDLE hXcvPrinter, TCHAR pszServer[], TCHAR sztPortName[]) { OSVERSIONINFO osVersionInfo; osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); if ( GetVersionEx(&osVersionInfo) ) // get the OS version { if ( osVersionInfo.dwMajorVersion >= 5 ) // check if we are NT 5.0 & later { CNT5UIManager UI97; return UI97.AddPortUI(hWndParent, hXcvPrinter, pszServer, sztPortName); } else { return ERROR_NOT_SUPPORTED; } } return NO_ERROR; } // AddPortUI // // FUNCTION: ConfigPortUI // // PURPOSE: Main function called when the User Interface for configuring a port is called. // DWORD CUIManager::ConfigPortUI(HWND hWndParent, PPORT_DATA_1 pData, HANDLE hXcvPrinter, TCHAR *szServerName, BOOL bNewPort) { OSVERSIONINFO osVersionInfo; osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); if ( GetVersionEx(&osVersionInfo) ) // get the OS version { if ( osVersionInfo.dwMajorVersion >= 5 ) // check if we are NT 5.0 & later { CNT5UIManager UI97; return UI97.ConfigPortUI(hWndParent, pData, hXcvPrinter, szServerName, bNewPort); } else { return ERROR_NOT_SUPPORTED; } } return NO_ERROR; } // ConfigPortUI // // // FUNCTION: CreateWizardFont() // // PURPOSE: Create the large bold font for the wizard 97 style. // // COMMENTS: // VOID CUIManager::CreateWizardFont() { // // Create the fonts we need based on the dialog font // NONCLIENTMETRICS ncm = {0}; ncm.cbSize = sizeof(ncm); SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0); LOGFONT BigBoldLogFont = ncm.lfMessageFont; // // Create the Big Bold Font // BigBoldLogFont.lfWeight = FW_BOLD; INT FontSize; TCHAR szLargeFontName[MAX_PATH]; TCHAR szLargeFontSize[MAX_PATH]; // // Load size and name from resources, since these may change // from locale to locale based on the size of the system font, etc. // // NOTICE-DavePr@2002/05/27 // g_hInstance is linked to what? // if( LoadString( g_hInstance, IDS_LARGEFONTNAME, szLargeFontName, sizeof(szLargeFontName)/sizeof(szLargeFontName[0]) ) && LoadString( g_hInstance, IDS_LARGEFONTSIZE, szLargeFontSize, sizeof(szLargeFontName)/sizeof(szLargeFontName[0]) ) ) { lstrcpyn( BigBoldLogFont.lfFaceName, szLargeFontName, sizeof(BigBoldLogFont.lfFaceName)/sizeof(BigBoldLogFont.lfFaceName[0]) ); FontSize = _tcstoul( szLargeFontSize, NULL, 10 ); HDC hdc = GetDC( NULL ); if( hdc ) { BigBoldLogFont.lfHeight = 0 - (GetDeviceCaps(hdc,LOGPIXELSY) * FontSize / 72); m_hBigBoldFont = CreateFontIndirect( &BigBoldLogFont ); ReleaseDC( NULL, hdc); } } } // CreateWizardFont // // // FUNCTION: DestroyWizardFont() // // PURPOSE: Destroys the wizard font created with CreateWizardFont // // COMMENTS: // VOID CUIManager::DestroyWizardFont() { if(m_hBigBoldFont) { DeleteObject(m_hBigBoldFont); } } // DestroyWizardFont // // // FUNCTION: SetControlFont(HWND hwnd, INT nId) // // PURPOSE: Set font of the specified control // // COMMENTS: // VOID CUIManager::SetControlFont(HWND hwnd, INT nId) const { if(m_hBigBoldFont) { HWND hwndControl = GetDlgItem(hwnd, nId); if(hwndControl) { SetWindowFont(hwndControl, m_hBigBoldFont, TRUE); } } } // SetControlFont