pjs/cmd/winfe/askmedlg.cpp

145 строки
3.8 KiB
C++

/* -*- 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.
*/
// AskMeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "askmedlg.h"
#include "prefapi.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
void AskMeDlg(void)
{
int32 nPromptAskMe = FALSE;
PREF_GetIntPref("offline.startup_mode", &nPromptAskMe);
if (nPromptAskMe==0) //online
PREF_SetBoolPref("network.online", TRUE);
else if (nPromptAskMe==1) //offline
PREF_SetBoolPref("network.online", FALSE);
else if (nPromptAskMe==2) //ask me
{
CAskMeDlg rAskMeDlg(nPromptAskMe);
rAskMeDlg.DoModal();
}
}
/////////////////////////////////////////////////////////////////////////////
// CAskMeDlg dialog
CAskMeDlg::CAskMeDlg(BOOL bDefault/*FALSE*/, int nOnOffLine/*0-the default*/,
CWnd* pParent /*=NULL*/)
: CDialog(CAskMeDlg::IDD, pParent)
{
XP_Bool bOnline = TRUE;
PREF_GetBoolPref("network.online", &bOnline);
//{{AFX_DATA_INIT(CAskMeDlg)
m_nStartupSelection = (bOnline == 1 ? 0 : 1);
m_bAskMeDefault = 0;
//}}AFX_DATA_INIT
}
void CAskMeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAskMeDlg)
DDX_Radio(pDX, IDC_RADIO_ONLINE, m_nStartupSelection);
DDX_Check(pDX, IDC_CHECK_ASKME_DEFAULT, m_bAskMeDefault);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAskMeDlg, CDialog)
//{{AFX_MSG_MAP(CAskMeDlg)
ON_BN_CLICKED(IDC_CHECK_ASKME_DEFAULT, OnCheckAskMeDefault)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAskMeDlg message handlers
void CAskMeDlg::OnOK()
{
//Save any preference settings that may have been chosen
CDialog::OnOK();
UpdateData();
if (IsDlgButtonChecked(IDC_CHECK_ASKME_DEFAULT))
{
if (IsDlgButtonChecked(IDC_RADIO_ONLINE))
{
PREF_SetBoolPref("network.online", TRUE);
PREF_SetIntPref("offline.startup_mode",0);
}
else
{
PREF_SetBoolPref("network.online", FALSE);
PREF_SetIntPref("offline.startup_mode",1);
}
}
else
{
if (IsDlgButtonChecked(IDC_RADIO_ONLINE))
PREF_SetBoolPref("network.online", TRUE);
else
PREF_SetBoolPref("network.online", FALSE);
}
}
void CAskMeDlg::OnCheckAskMeDefault()
{
}
void CAskMeDlg::EnableDisableItem(BOOL bState, UINT nIDC)
{
CWnd *pWnd = GetDlgItem(nIDC);
if (pWnd)
{
pWnd->EnableWindow(bState);
}
}
BOOL CAskMeDlg::OnInitDialog()
{
BOOL bReturn = CDialog::OnInitDialog();
CWnd *pWnd = NULL;
HFONT hFont = (HFONT)this->SendMessage(WM_GETFONT);
if (hFont != NULL)
{ //make the title bold
VERIFY(::GetObject(hFont, sizeof(LOGFONT), &m_LogFont));
m_LogFont.lfWeight=FW_BOLD;
m_hFont = theApp.CreateAppFont( m_LogFont );
::SendMessage(::GetDlgItem(m_hWnd, IDC_STATIC_TITLE), WM_SETFONT, (WPARAM)m_hFont, FALSE);
::SendMessage(::GetDlgItem(m_hWnd, IDC_RADIO_ONLINE), WM_SETFONT, (WPARAM)m_hFont, FALSE);
::SendMessage(::GetDlgItem(m_hWnd, IDC_RADIO_OFFLINE), WM_SETFONT, (WPARAM)m_hFont, FALSE);
::SendMessage(::GetDlgItem(m_hWnd, IDC_CHECK_ASKME_DEFAULT), WM_SETFONT, (WPARAM)m_hFont, FALSE);
}
return bReturn;
}