Files
Mozilla/mozilla/cmd/xfe/src/NewsServerPropDialog.cpp
spider 957093e8c5 Normandy Merge ....
git-svn-id: svn://10.0.0.236/trunk@4231 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-22 21:19:46 +00:00

297 lines
8.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.
*/
/*
NewsServerPropDialog.cpp -- property dialogs for news servers.
Created: Chris Toshok <toshok@netscape.com>, 08-Apr-97
*/
#include "rosetta.h"
#include "NewsServerPropDialog.h"
#include "PropertySheetView.h"
#include <Xm/LabelG.h>
#include <Xm/SeparatoG.h>
#include <Xm/Form.h>
#include <Xm/ToggleB.h>
#include <Xfe/Xfe.h>
#include "xfe.h"
#include "xpgetstr.h"
extern int XFE_GENERAL;
extern int XFE_HTML_NEWSGROUP_MSG;
extern int XFE_SEC_ENCRYPTED;
extern int XFE_SEC_NONE;
static XFE_NewsServerPropDialog *theDialog = NULL;
XFE_NewsServerPropGeneralTab::XFE_NewsServerPropGeneralTab(XFE_Component *top,
XFE_View *view,
MSG_NewsHost *host)
: XFE_PropertyTabView(top, view, XFE_GENERAL)
{
int widest_width;
char buf[100];
XmString str;
Widget top_form, middle_form;
Widget sep1;
Widget name_label, name_value;
Widget port_label, port_value;
HG28921
Widget desc_label, desc_value;
m_newshost = host;
top_form = XtCreateManagedWidget("top_form",
xmFormWidgetClass,
getBaseWidget(),
NULL, 0);
middle_form = XtCreateManagedWidget("middle_form",
xmFormWidgetClass,
getBaseWidget(),
NULL, 0);
sep1 = XtCreateManagedWidget("sep1",
xmSeparatorGadgetClass,
getBaseWidget(),
NULL, 0);
name_label = XtCreateManagedWidget("name_label",
xmLabelGadgetClass,
top_form,
NULL, 0);
str = XmStringCreate((char*)MSG_GetNewsHostName(m_newshost),
XmFONTLIST_DEFAULT_TAG);
name_value = XtVaCreateManagedWidget("name_value",
xmLabelGadgetClass,
top_form,
XmNlabelString, str,
NULL);
XmStringFree(str);
port_label = XtCreateManagedWidget("port_label",
xmLabelGadgetClass,
top_form,
NULL, 0);
PR_snprintf(buf, sizeof(buf), "%d", MSG_GetNewsHostPort(m_newshost));
str = XmStringCreate(buf, XmFONTLIST_DEFAULT_TAG);
port_value = XtVaCreateManagedWidget("port_value",
xmLabelGadgetClass,
top_form,
XmNlabelString, str,
NULL);
XmStringFree(str);
HG21933
desc_label = XtCreateManagedWidget("desc_label",
xmLabelGadgetClass,
top_form,
NULL, 0);
str = XmStringCreate("", XmFONTLIST_DEFAULT_TAG); // XXXX
desc_value = XtVaCreateManagedWidget("desc_value",
xmLabelGadgetClass,
top_form,
XmNlabelString, str,
NULL);
XmStringFree(str);
m_prompt_toggle = XtCreateManagedWidget("prompt_toggle",
xmToggleButtonWidgetClass,
middle_form,
NULL, 0);
m_anonymous_toggle = XtCreateManagedWidget("anonymous_toggle",
xmToggleButtonWidgetClass,
middle_form,
NULL, 0);
XtVaSetValues(m_prompt_toggle,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNindicatorType, XmONE_OF_MANY,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_FORM,
NULL);
XtVaSetValues(m_anonymous_toggle,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNindicatorType, XmONE_OF_MANY,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, m_prompt_toggle,
XmNbottomAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
NULL);
widest_width = XfeVaGetWidestWidget(name_label, port_label, HG82872, NULL);
XtVaSetValues(name_label,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_NONE,
NULL);
XtVaSetValues(port_label,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, name_label,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_NONE,
NULL);
HG72723
XtVaSetValues(name_value,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, name_label,
XmNleftOffset, widest_width - XfeWidth(name_label),
XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
XmNtopWidget, name_label,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_FORM,
NULL);
XtVaSetValues(port_value,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, port_label,
XmNleftOffset, widest_width - XfeWidth(port_label),
XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
XmNtopWidget, port_label,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_FORM,
NULL);
XtVaSetValues(desc_value,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, desc_label,
XmNleftOffset, widest_width - XfeWidth(desc_label),
XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
XmNtopWidget, desc_label,
XmNbottomAttachment, XmATTACH_NONE,
XmNrightAttachment, XmATTACH_FORM,
NULL);
XtVaSetValues(top_form,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomAttachment, XmATTACH_NONE,
NULL);
XtVaSetValues(sep1,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, top_form,
XmNbottomAttachment, XmATTACH_NONE,
NULL);
XtVaSetValues(middle_form,
XmNleftAttachment, XmATTACH_FORM,
XmNrightAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, sep1,
XmNbottomAttachment, XmATTACH_FORM,
NULL);
#define setPromptToggle() \
if (MSG_GetNewsHostPushAuth(m_newshost)) { \
XmToggleButtonSetState(m_prompt_toggle, True, False); \
XmToggleButtonSetState(m_anonymous_toggle, False, False); \
} else { \
XmToggleButtonSetState(m_prompt_toggle, False, False); \
XmToggleButtonSetState(m_anonymous_toggle, True, False); \
}
setPromptToggle();
XtAddCallback(m_prompt_toggle, XmNvalueChangedCallback,
promptForPasswd_cb, this);
XtAddCallback(m_anonymous_toggle, XmNvalueChangedCallback,
promptForPasswd_cb, this);
}
XFE_NewsServerPropGeneralTab::~XFE_NewsServerPropGeneralTab()
{
}
void
XFE_NewsServerPropGeneralTab::setPushAuth(Widget w)
{
XP_Bool pushAuth = (w == m_prompt_toggle) ? True : False;
MSG_SetNewsHostPushAuth (m_newshost, pushAuth);
setPromptToggle();
}
void
XFE_NewsServerPropGeneralTab::promptForPasswd_cb(Widget w,
XtPointer clientData,
XtPointer)
{
XFE_NewsServerPropGeneralTab* obj
= (XFE_NewsServerPropGeneralTab*)clientData;
if (obj)
obj->setPushAuth(w);
}
XFE_NewsServerPropDialog::XFE_NewsServerPropDialog(Widget parent,
char *name,
MWContext *context,
MSG_NewsHost *host)
: XFE_PropertySheetDialog((XFE_View*)0, parent, name,
context,
TRUE, /* ok */
TRUE, /* cancel */
TRUE, /* help */
FALSE, /* apply */
FALSE, /* separator */
True) /* modal */
{
XFE_PropertySheetView* folderView = (XFE_PropertySheetView *) m_view;
folderView->addTab(new XFE_NewsServerPropGeneralTab(this,
folderView, host));
}
XFE_NewsServerPropDialog::~XFE_NewsServerPropDialog()
{
theDialog = NULL;
}
void
fe_showNewsServerProperties(Widget parent,
MWContext *context,
MSG_NewsHost *host)
{
if (theDialog)
delete theDialog;
theDialog = new XFE_NewsServerPropDialog(parent, "NewsServerProps", context, host);
theDialog->show();
}