/* -*- 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; 
}
