/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ // STyles.cpp : implementation file // #include "stdafx.h" #include "styles.h" #include "nethelp.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif // // Draw a framed rectangle of the current color // void WFE_DrawSwatch(CWnd * parent, UINT ID, COLORREF color) { CWnd * widget = parent->GetDlgItem(ID); CDC * pDC = widget->GetDC(); CRect rect; // find out how much area we can draw into widget->GetClientRect(&rect); // color for the inside CBrush brush(color); CBrush * oldBrush = (CBrush *) pDC->SelectObject(&brush); pDC->LPtoDP(&rect); // flush any drawing widget->Invalidate(); widget->UpdateWindow(); // draw the frame pDC->Rectangle(rect); // select the old brush pDC->SelectObject(oldBrush); // set the background color pDC->SetBkColor(color); // give the CDC back to the system widget->ReleaseDC(pDC); } // CLM: Added params to pass in Caption ID CNetscapePropertyPage::CNetscapePropertyPage(UINT nID, UINT nIDCaption, UINT nIDFocus) : CPropertyPage(nID, nIDCaption), m_nIDFocus(nIDFocus) { } // Return with this at end of OnSetActive() // to set focus to a specific control // Either pass an ID in call, or set it in constructor BOOL CNetscapePropertyPage::SetInitialFocus( UINT nID ) { if ( nID || m_nIDFocus ){ CWnd * pWnd = GetDlgItem(nID ? nID : m_nIDFocus); if( pWnd ){ pWnd->SetFocus(); return FALSE; } } return TRUE; } // Use instead of MFC's CancelToClose, which doesn't work as advertised (wrong only in Win16?) void CNetscapePropertyPage::OkToClose() { CWnd *pApply = GetParent()->GetDlgItem(ID_APPLY_NOW); // Do nothing if we don't have an Apply button if( pApply && pApply->IsWindowVisible() ){ // We always do this after using the Apply button SetModified(FALSE); // Get the Property sheet parent of the property page CWnd *pWnd = GetParent()->GetDlgItem(IDOK); if( pWnd ){ // Change "OK" button text to "Close" pWnd->SetWindowText(szLoadString(IDS_CLOSE_BUTTON)); // Move focus from the Apply button to the Close button if( GetFocus() == pApply ){ pWnd->SetFocus(); } } // Disable the Cancel button pWnd = GetParent()->GetDlgItem(IDCANCEL); if( pWnd ){ pWnd->EnableWindow(FALSE); } } } void CNetscapePropertyPage::OnHelp() { NetHelp("PREFERENCES_GENERAL_APPEARANCE"); } // the ID_HELP message actually goes to our parent CNetscapePropertySheet // which passes it along to us, can't use message map BEGIN_MESSAGE_MAP(CNetscapePropertyPage, CPropertyPage) END_MESSAGE_MAP() // Called by the security library to indicate whether the user is or is // not using a password // // XXX - jsw - remove me void FE_SetPasswordEnabled(MWContext *context, PRBool usePW) { }