cdesktopenv/cde/lib/DtPrint/PrintDlgMgr.c

183 lines
5.8 KiB
C

/*
* CDE - Common Desktop Environment
*
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/* $XConsortium: PrintDlgMgr.c /main/7 1996/08/12 18:40:50 cde-hp $ */
/*
* DtPrint/PrintDlgMgr.c
*/
/*
* (c) Copyright 1996 Digital Equipment Corporation.
* (c) Copyright 1996 Hewlett-Packard Company.
* (c) Copyright 1996 International Business Machines Corp.
* (c) Copyright 1996 Sun Microsystems, Inc.
* (c) Copyright 1996 Novell, Inc.
* (c) Copyright 1996 FUJITSU LIMITED.
* (c) Copyright 1996 Hitachi.
*/
#include <Dt/PrintDlgMgrP.h>
#include <Dt/PrintMsgsP.h>
#include <Xm/XmAll.h>
#define SEND_MAIL_LABEL DTPRINT_GETMESSAGE( \
MS_PrintDlgMgrSet, DTPDM_SEND_MAIL_LABEL, _DtPrMsgPrintDlgMgr_0000)
#define BANNER_LABEL DTPRINT_GETMESSAGE( \
MS_PrintDlgMgrSet, DTPDM_BANNER_LABEL, _DtPrMsgPrintDlgMgr_0001)
#define SPOOL_OPTS_LABEL DTPRINT_GETMESSAGE( \
MS_PrintDlgMgrSet, DTPDM_SPOOL_OPTS_LABEL, _DtPrMsgPrintDlgMgr_0002)
Widget _DtCreatePDMJobSetup(Widget parent)
{
Widget manager;
Widget send_mail, banner_label, banner, spool_opts_label, spool_opts;
XmString label;
Dimension banner_label_width, banner_label_height;
Dimension banner_height;
Dimension spool_opts_label_width, spool_opts_label_height;
Dimension spool_opts_height;
Position offset; /* vertical offset between text fields and their labels */
Dimension vspace = 10; /* space between the "rows" */
/*
* create the manager for the Job Setup Box
*/
manager =
XtVaCreateManagedWidget("JobSetup", xmFormWidgetClass, parent,
XmNallowOverlap, False,
NULL);
/*
* send mail control
*/
label = XmStringCreateLocalized(SEND_MAIL_LABEL);
send_mail =
XmVaCreateSimpleCheckBox(manager, "SendMail", NULL,
XmVaCHECKBUTTON, label, NULL, NULL, NULL,
NULL);
XmStringFree(label);
XtManageChild(send_mail);
/*
* banner page title
*/
label = XmStringCreateLocalized(BANNER_LABEL);
banner_label =
XtVaCreateManagedWidget("BannerLabel",
xmLabelWidgetClass,
manager,
XmNlabelString, label,
XmNalignment, XmALIGNMENT_END,
NULL);
XmStringFree(label);
banner =
XtVaCreateManagedWidget("Banner",
xmTextFieldWidgetClass,
manager,
NULL);
/*
* spooler command options
*/
label = XmStringCreateLocalized(SPOOL_OPTS_LABEL);
spool_opts_label =
XtVaCreateManagedWidget("OptionsLabel",
xmLabelWidgetClass,
manager,
XmNlabelString, label,
XmNalignment, XmALIGNMENT_END,
NULL);
XmStringFree(label);
spool_opts =
XtVaCreateManagedWidget("Options",
xmTextFieldWidgetClass,
manager,
NULL);
/*
* retrieve various dimensions of form children
*/
XtVaGetValues(banner_label,
XmNwidth, &banner_label_width,
XmNheight, &banner_label_height,
NULL);
XtVaGetValues(banner,
XmNheight, &banner_height,
NULL);
XtVaGetValues(spool_opts_label,
XmNwidth, &spool_opts_label_width,
XmNheight, &spool_opts_label_height,
NULL);
XtVaGetValues(spool_opts,
XmNheight, &spool_opts_height,
NULL);
/*
* set the width of the shorter text field to match the longest
*/
if(banner_label_width < spool_opts_label_width)
XtVaSetValues(banner_label,
XmNwidth, spool_opts_label_width,
XmNrecomputeSize, False,
NULL);
else
XtVaSetValues(spool_opts_label,
XmNwidth, banner_label_width,
XmNrecomputeSize, False,
NULL);
/*
* layout the form children
*/
XtVaSetValues(send_mail,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
NULL);
offset = ((Position)banner_height - (Position)banner_label_height) / 2;
XtVaSetValues(banner_label,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, send_mail,
XmNtopOffset, vspace + (offset > 0 ? offset : 0),
NULL);
XtVaSetValues(banner,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, banner_label,
XmNrightAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
XmNtopWidget, banner_label,
XmNtopOffset, -offset,
NULL);
offset =
((Position)spool_opts_height - (Position)spool_opts_label_height) / 2;
XtVaSetValues(spool_opts_label,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, banner_label,
XmNtopOffset, vspace + (offset > 0 ? offset : 0),
NULL);
XtVaSetValues(spool_opts,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, spool_opts_label,
XmNrightAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
XmNtopWidget, spool_opts_label,
XmNtopOffset, -offset,
NULL);
/*
* return the new Job Setup Box
*/
return manager;
}