150 lines
4.2 KiB
C++
150 lines
4.2 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.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is Mozilla Communicator client code.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*/
|
|
|
|
|
|
#include "felocale.h"
|
|
#include "xfe.h"
|
|
#include "xpgetstr.h"
|
|
#include "SubUpgradeDialog.h"
|
|
|
|
extern "C" int XFE_SUBUPGRADE_AUTOSUBSCRIBE;
|
|
|
|
extern "C" MSG_IMAPUpgradeType
|
|
fe_promptIMAPSubscriptionUpgrade(MWContext *context,
|
|
const char *hostName)
|
|
{
|
|
MSG_IMAPUpgradeType retval;
|
|
XFE_SubUpgradeDialog *sud = new XFE_SubUpgradeDialog(context,hostName);
|
|
|
|
retval=sud->prompt();
|
|
delete sud;
|
|
|
|
return retval;
|
|
}
|
|
|
|
XFE_SubUpgradeDialog::XFE_SubUpgradeDialog(MWContext *context,
|
|
const char *hostName)
|
|
:XFE_Dialog(CONTEXT_WIDGET(context),
|
|
"SubUpgradeDialog",TRUE, TRUE, FALSE, FALSE, FALSE), // ok and cancel
|
|
m_retVal(MSG_IMAPUpgradeDont),
|
|
m_doneWithLoop(0),
|
|
m_hostname(hostName)
|
|
{
|
|
create();
|
|
init();
|
|
}
|
|
XFE_SubUpgradeDialog::~XFE_SubUpgradeDialog() {
|
|
|
|
}
|
|
|
|
void XFE_SubUpgradeDialog::create()
|
|
{
|
|
|
|
Widget form;
|
|
Widget paragraph_label;
|
|
|
|
Widget selection_radiobox;
|
|
|
|
form=XmCreateForm(m_chrome, "form", NULL,0);
|
|
|
|
paragraph_label=XmCreateLabelGadget(form, "paragraphLabel", NULL,0);
|
|
selection_radiobox=XmCreateRadioBox(form, "selectionBox", NULL,0);
|
|
|
|
m_automatic_toggle=XmCreateToggleButtonGadget(selection_radiobox,"automaticToggle",NULL,0);
|
|
m_custom_toggle=XmCreateToggleButtonGadget(selection_radiobox,"customToggle",NULL,0);
|
|
|
|
char *automatic_toggle=
|
|
PR_smprintf(XP_GetString(XFE_SUBUPGRADE_AUTOSUBSCRIBE), m_hostname);
|
|
XmString automatic_toggle_string =
|
|
XmStringCreateLocalized(automatic_toggle);
|
|
|
|
XtVaSetValues(m_automatic_toggle,
|
|
XmNlabelString, automatic_toggle_string,
|
|
NULL);
|
|
XP_FREE(automatic_toggle);
|
|
XmStringFree(automatic_toggle_string);
|
|
|
|
XtVaSetValues(paragraph_label,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
NULL);
|
|
|
|
XtVaSetValues(selection_radiobox,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNtopWidget, paragraph_label,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL);
|
|
|
|
XtManageChild(m_custom_toggle);
|
|
XtManageChild(m_automatic_toggle);
|
|
XtManageChild(selection_radiobox);
|
|
XtManageChild(paragraph_label);
|
|
XtManageChild(form);
|
|
|
|
XtAddCallback(m_chrome, XmNokCallback, cb_ok, this);
|
|
XtAddCallback(m_chrome, XmNcancelCallback, cb_cancel, this);
|
|
|
|
}
|
|
|
|
void XFE_SubUpgradeDialog::init()
|
|
{
|
|
XmToggleButtonGadgetSetState(m_automatic_toggle, True, True);
|
|
}
|
|
|
|
void XFE_SubUpgradeDialog::cb_ok(Widget, XtPointer closure, XtPointer)
|
|
{
|
|
((XFE_SubUpgradeDialog*)closure)->ok();
|
|
}
|
|
|
|
|
|
|
|
void XFE_SubUpgradeDialog::cb_cancel(Widget, XtPointer closure, XtPointer)
|
|
{
|
|
((XFE_SubUpgradeDialog*)closure)->cancel();
|
|
}
|
|
|
|
void XFE_SubUpgradeDialog::ok() {
|
|
if (XmToggleButtonGadgetGetState(m_automatic_toggle))
|
|
m_retVal=MSG_IMAPUpgradeAutomatic;
|
|
else if (XmToggleButtonGadgetGetState(m_custom_toggle))
|
|
m_retVal=MSG_IMAPUpgradeCustom;
|
|
|
|
m_doneWithLoop=True;
|
|
|
|
}
|
|
|
|
void XFE_SubUpgradeDialog::cancel() {
|
|
m_doneWithLoop=True;
|
|
}
|
|
|
|
MSG_IMAPUpgradeType XFE_SubUpgradeDialog::prompt() {
|
|
m_doneWithLoop=False;
|
|
show();
|
|
while (!m_doneWithLoop)
|
|
fe_EventLoop();
|
|
|
|
hide();
|
|
return m_retVal;
|
|
}
|