/************************************************************************ * * * BTNSEC.CPP * * * * Copyright (C) Microsoft Corporation 1993-1995 * * All Rights reserved. * * * ************************************************************************/ #include "stdafx.h" #include "resource.h" #pragma hdrstop #include "hpjdoc.h" #include "btnsec.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBtnSec dialog CBtnSec::CBtnSec(WSMAG FAR* pCallersWsmag, BOOL fWarn, CWnd* pParent) : CDialog(CBtnSec::IDD, pParent) { pwsmag = pCallersWsmag; fBackWarn = fWarn; ASSERT(pwsmag); /* * MFC doesn't think non-zero counts for a check box -- it must * explicitly set to TRUE or FASLE. */ m_chk_contents = (pwsmag->wMax & FWSMAG_WMAX_CONTENTS) ? TRUE : FALSE; m_chk_search = (pwsmag->wMax & FWSMAG_WMAX_SEARCH) ? TRUE : FALSE; m_chk_topics = (pwsmag->wMax & FWSMAG_WMAX_TOPICS) ? TRUE : FALSE; m_chk_back = (pwsmag->wMax & FWSMAG_WMAX_BACK) ? TRUE : FALSE; m_chk_print = (pwsmag->wMax & FWSMAG_WMAX_PRINT) ? TRUE : FALSE; m_chk_find = (pwsmag->wMax & FWSMAG_WMAX_FIND) ? TRUE : FALSE; m_chk_browse = (pwsmag->wMax & FWSMAG_WMAX_BROWSE) ? TRUE : FALSE; /* * Just in case the user tried editing these by hand, or some * other project editor screwed up, let's make sure we don't have * both Topics and Contents/Search. */ if (m_chk_topics) m_chk_contents = m_chk_search = FALSE; //{{AFX_DATA_INIT(CBtnSec) //}}AFX_DATA_INIT } void CBtnSec::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBtnSec) DDX_Check(pDX, IDC_CHECK_BTN_BACK, m_chk_back); DDX_Check(pDX, IDC_CHECK_BTN_CONTENTS, m_chk_contents); DDX_Check(pDX, IDC_CHECK_BTN_PRINT, m_chk_print); DDX_Check(pDX, IDC_CHECK_BTN_SEARCH, m_chk_search); DDX_Check(pDX, IDC_CHECK_BTN_TOPICS, m_chk_topics); DDX_Check(pDX, IDC_CHECK_BTN_FIND, m_chk_find); //}}AFX_DATA_MAP if (!pDX->m_bSaveAndValidate) { // initialization // Can't have both Topics and Contents/Search if (m_chk_topics) { ((CButton*) GetDlgItem(IDC_CHECK_BTN_CONTENTS))-> EnableWindow(FALSE); ((CButton*) GetDlgItem(IDC_CHECK_BTN_SEARCH))-> EnableWindow(FALSE); } else if (m_chk_contents || m_chk_search) { ((CButton*) GetDlgItem(IDC_CHECK_BTN_TOPICS))-> EnableWindow(FALSE); } SetChicagoDialogStyles(m_hWnd); } else { // Remove all existing buttons pwsmag->wMax &= ~(FWSMAG_WMAX_BROWSE | FWSMAG_WMAX_CONTENTS | FWSMAG_WMAX_SEARCH | FWSMAG_WMAX_TOPICS | FWSMAG_WMAX_PRINT | FWSMAG_WMAX_BACK | FWSMAG_WMAX_FIND); // Add buttons according to checkboxes if (m_chk_contents) pwsmag->wMax |= FWSMAG_WMAX_CONTENTS; if (m_chk_search) pwsmag->wMax |= FWSMAG_WMAX_SEARCH; if (m_chk_topics) pwsmag->wMax |= FWSMAG_WMAX_TOPICS; if (m_chk_print) pwsmag->wMax |= FWSMAG_WMAX_PRINT; if (m_chk_find) pwsmag->wMax |= FWSMAG_WMAX_FIND; if (m_chk_browse) pwsmag->wMax |= FWSMAG_WMAX_BROWSE; if (m_chk_back) { pwsmag->wMax |= FWSMAG_WMAX_BACK; } } } BEGIN_MESSAGE_MAP(CBtnSec, CDialog) //{{AFX_MSG_MAP(CBtnSec) ON_BN_CLICKED(IDC_CHECK_BTN_CONTENTS, OnCheckBtnContents) ON_BN_CLICKED(IDC_CHECK_BTN_SEARCH, OnCheckBtnSearch) ON_BN_CLICKED(IDC_CHECK_BTN_TOPICS, OnCheckBtnTopics) //}}AFX_MSG_MAP ON_MESSAGE(WM_CONTEXTMENU, OnContextMenu) ON_MESSAGE(WM_HELP, OnHelp) END_MESSAGE_MAP() static const DWORD aHelpIds[] = { IDC_CHECK_BTN_CONTENTS, IDH_CHECK_BTN_CONTENTS, IDC_CHECK_BTN_SEARCH, IDH_CHECK_BTN_SEARCH, IDC_CHECK_BTN_TOPICS, IDH_CHECK_BTN_TOPICS, IDC_CHECK_BTN_PRINT, IDH_CHECK_BTN_PRINT, IDC_CHECK_BTN_BACK, IDH_CHECK_BTN_BACK, IDC_CHECK_BTN_FIND, IDH_CHECK_BTN_FIND, 0, 0 }; LRESULT CBtnSec::OnContextMenu(WPARAM wParam, LPARAM lParam) { ::WinHelp((HWND) wParam, AfxGetApp()->m_pszHelpFilePath, HELP_CONTEXTMENU, (DWORD) (LPVOID) aHelpIds); return 0; } LRESULT CBtnSec::OnHelp(WPARAM wParam, LPARAM lParam) { ::WinHelp((HWND) ((LPHELPINFO) lParam)->hItemHandle, AfxGetApp()->m_pszHelpFilePath, HELP_WM_HELP, (DWORD) (LPVOID) aHelpIds); return 0; } void CBtnSec::OnCheckBtnContents() { if (((CButton*) GetDlgItem(IDC_CHECK_BTN_CONTENTS))->GetCheck()) ((CButton*) GetDlgItem(IDC_CHECK_BTN_TOPICS))-> EnableWindow(FALSE); else ((CButton*) GetDlgItem(IDC_CHECK_BTN_TOPICS))-> EnableWindow(TRUE); } void CBtnSec::OnCheckBtnSearch() { if (((CButton*) GetDlgItem(IDC_CHECK_BTN_SEARCH))->GetCheck()) ((CButton*) GetDlgItem(IDC_CHECK_BTN_TOPICS))-> EnableWindow(FALSE); else ((CButton*) GetDlgItem(IDC_CHECK_BTN_TOPICS))-> EnableWindow(TRUE); } void CBtnSec::OnCheckBtnTopics() { if (((CButton*) GetDlgItem(IDC_CHECK_BTN_TOPICS))->GetCheck()) { ((CButton*) GetDlgItem(IDC_CHECK_BTN_CONTENTS))-> EnableWindow(FALSE); ((CButton*) GetDlgItem(IDC_CHECK_BTN_SEARCH))-> EnableWindow(FALSE); } else { ((CButton*) GetDlgItem(IDC_CHECK_BTN_CONTENTS))-> EnableWindow(TRUE); ((CButton*) GetDlgItem(IDC_CHECK_BTN_SEARCH))-> EnableWindow(TRUE); } }