Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
112
cde/programs/dtpdm/BuildOidHdrs.sh
Executable file
112
cde/programs/dtpdm/BuildOidHdrs.sh
Executable file
@@ -0,0 +1,112 @@
|
||||
#!/bin/sh
|
||||
# $XConsortium: BuildOidHdrs.sh /main/3 1996/08/12 18:41:52 cde-hp $
|
||||
#
|
||||
# (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.
|
||||
#
|
||||
|
||||
in_file=PdmOidDefs.in
|
||||
oid_file=PdmOidDefs.h
|
||||
str_file=PdmOidStrs.h
|
||||
|
||||
tmpbase=`basename $0`
|
||||
oid_tmp=$tmpbase.oid_tmp
|
||||
str_tmp=$tmpbase.str_tmp
|
||||
|
||||
rm -f $oid_tmp > /dev/null 2>&1
|
||||
rm -f $str_tmp > /dev/null 2>&1
|
||||
|
||||
first=1
|
||||
|
||||
echo "parsing $in_file \c"
|
||||
|
||||
cat $in_file |
|
||||
(
|
||||
while read oid str mset mnum defmsg
|
||||
do
|
||||
if [ -n "$oid" -a "$oid" != "#" ]
|
||||
then
|
||||
if [ $first -eq 1 ]
|
||||
then
|
||||
first=0
|
||||
else
|
||||
echo "," >> $oid_tmp
|
||||
echo "," >> $str_tmp
|
||||
fi
|
||||
echo " $oid\c" >> $oid_tmp
|
||||
str_length=`echo "$str\c" | wc -c`
|
||||
if [ -z "$mset" ] ; then
|
||||
mset="-1"
|
||||
fi
|
||||
if [ -z "$mnum" ] ; then
|
||||
mnum="-1"
|
||||
fi
|
||||
if [ -z "$defmsg" ] ; then
|
||||
defmsg="(const char*)NULL"
|
||||
else
|
||||
defmsg="\"$defmsg\""
|
||||
fi
|
||||
echo " { \"$str\", $str_length, $mset, $mnum, $defmsg }\c" \
|
||||
>> $str_tmp
|
||||
echo ".\c"
|
||||
fi
|
||||
done
|
||||
echo >> $oid_tmp
|
||||
echo >> $str_tmp
|
||||
)
|
||||
|
||||
echo "done"
|
||||
|
||||
echo "creating $oid_file ...\c"
|
||||
|
||||
(
|
||||
echo '/* $'XConsortium'$ */'
|
||||
echo '/* This is an automatically-generated file. Do not edit. */'
|
||||
echo '/*
|
||||
* (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.
|
||||
*/'
|
||||
echo
|
||||
echo 'typedef enum {'
|
||||
cat $oid_tmp
|
||||
echo '} PdmOid;'
|
||||
) > $oid_file
|
||||
|
||||
echo "done"
|
||||
|
||||
echo "creating $str_file ...\c"
|
||||
|
||||
(
|
||||
echo '/* $'XConsortium'$ */'
|
||||
echo '/* This is an automatically-generated file. Do not edit. */'
|
||||
echo '/*
|
||||
* (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.
|
||||
*/'
|
||||
echo
|
||||
echo "static int PdmOidStringMapCount = `cat $str_tmp | wc -l`;"
|
||||
echo
|
||||
echo 'static const PdmOidStringMapEntry PdmOidStringMap[] = {'
|
||||
cat $str_tmp
|
||||
echo '};'
|
||||
) > $str_file
|
||||
|
||||
echo "done"
|
||||
|
||||
rm -f $oid_tmp > /dev/null 2>&1
|
||||
rm -f $str_tmp > /dev/null 2>&1
|
||||
43
cde/programs/dtpdm/Imakefile
Normal file
43
cde/programs/dtpdm/Imakefile
Normal file
@@ -0,0 +1,43 @@
|
||||
XCOMM $XConsortium: Imakefile /main/7 1996/10/09 14:13:27 drk $
|
||||
|
||||
/* General case INCLUDES DEFINES LOCAL_LIBRARIES
|
||||
* Each individual architecture may have more or less of the above.
|
||||
* USE_libraryname in LOCAL_LIBRARIES is by default empty.
|
||||
* It should be set when necessary to the real library macro name.
|
||||
*/
|
||||
DEFINES = -DXK_MISCELLANY -DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" -DI18N_MSG
|
||||
INCLUDES = -I.
|
||||
|
||||
/* DEPLIBS contains the list of library depencies for a client.
|
||||
* LOCAL_LIBRARIES contains the list of libraries on the link line.
|
||||
* Generally, the dependency form of a library has DEP as a prefix.
|
||||
* e.g. put $(XLIB) in LOCAL_LIBRARIES and $(DEPXLIB) in DEPLIBS.
|
||||
* NOTE: if DEPLIBS is not set here, it is by default null and there
|
||||
* are no library dependencies for clients.
|
||||
* You cannot put -Llibpath into DEPLIBS. You must put actual
|
||||
* paths to the library.
|
||||
*/
|
||||
DEPLIBS = DepDtClientLibs
|
||||
LOCAL_LIBRARIES = DtClientLibs
|
||||
SYS_LIBRARIES = DtClientSysLibs DtClientExtraLibs
|
||||
|
||||
#ifdef RsArchitecture
|
||||
SYS_LIBRARIES = -lmsaa -liconv
|
||||
#endif
|
||||
|
||||
#if defined (SunArchitecture)
|
||||
SYS_LIBRARIES = -lintl -L/opt/SUNWspro/SC2.0.1 -lm -lgen -ldl -lC
|
||||
#endif
|
||||
|
||||
PROGRAMS = dtpdm
|
||||
|
||||
SRCS = JobBox.c Main.c MainWindow.c \
|
||||
PdmMsgs.c PdmOid.c PdmXp.c \
|
||||
PrinterBox.c
|
||||
|
||||
OBJS = JobBox.o Main.o MainWindow.o \
|
||||
PdmMsgs.o PdmOid.o PdmXp.o \
|
||||
PrinterBox.o
|
||||
|
||||
ComplexProgramTarget($(PROGRAMS))
|
||||
|
||||
307
cde/programs/dtpdm/JobBox.c
Normal file
307
cde/programs/dtpdm/JobBox.c
Normal file
@@ -0,0 +1,307 @@
|
||||
/* $XConsortium: JobBox.c /main/3 1996/08/12 18:41:59 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/JobBox.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 "JobBox.h"
|
||||
|
||||
/*
|
||||
* JobBox-specific data - PdmSetupBox.subclass_data
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
const char* job_options;
|
||||
const char* job_name;
|
||||
PdmOidNotify notification_profile;
|
||||
|
||||
Boolean job_options_supported;
|
||||
Boolean job_name_supported;
|
||||
Boolean notification_profile_supported;
|
||||
|
||||
Widget job_options_text;
|
||||
Widget job_name_text;
|
||||
Widget notify_toggle;
|
||||
|
||||
} PdmJobBoxData;
|
||||
|
||||
/*
|
||||
* JobBox-specific fallback resources
|
||||
*/
|
||||
static String PdmJobBoxFallbackResources[] =
|
||||
{
|
||||
"*JobSetup.locationId: JobSetup",
|
||||
"*JobSetup.marginHeight: 5",
|
||||
"*JobSetup.marginWidth: 5",
|
||||
"*JobSetup.verticalSpacing: 5",
|
||||
"*JobTab.compoundString: Job",
|
||||
"*JobTab.labelString: Job"
|
||||
};
|
||||
|
||||
/*
|
||||
* static function declarations
|
||||
*/
|
||||
static void PdmJobBoxDelete(PdmSetupBox* me);
|
||||
static void PdmJobBoxCreate(PdmSetupBox* me, Widget parent);
|
||||
static PdmStatus PdmJobBoxVerifyAttr(PdmSetupBox* me, PdmXp* pdm_xp);
|
||||
static void PdmJobBoxGetAttr(PdmSetupBox* me, PdmXp* pdm_xp);
|
||||
static void PdmJobBoxSetAttr(PdmSetupBox* me, PdmXp* pdm_xp);
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmJobBoxNew
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Creates a new PdmJobBox (PdmSetupBox) instance structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The new PdmJobBox instance structure.
|
||||
*
|
||||
*/
|
||||
PdmSetupBox*
|
||||
PdmJobBoxNew()
|
||||
{
|
||||
PdmSetupBox* me = (PdmSetupBox*)XtCalloc(1, sizeof(PdmSetupBox));
|
||||
|
||||
me->delete_proc = PdmJobBoxDelete;
|
||||
me->create_proc = PdmJobBoxCreate;
|
||||
me->verify_attr_proc = PdmJobBoxVerifyAttr;
|
||||
me->get_attr_proc = PdmJobBoxGetAttr;
|
||||
me->set_attr_proc = PdmJobBoxSetAttr;
|
||||
me->fallback_resources = PdmJobBoxFallbackResources;
|
||||
me->fallback_resources_count = XtNumber(PdmJobBoxFallbackResources);
|
||||
me->tab_name = "JobTab";
|
||||
|
||||
me->subclass_data = (XtPointer)XtCalloc(1, sizeof(PdmJobBoxData));
|
||||
|
||||
return me;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmJobBoxDelete
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Frees the passed PdmJobBox (PdmSetupBox) instance structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmJobBoxDelete(PdmSetupBox* me)
|
||||
{
|
||||
PdmJobBoxData* data = (PdmJobBoxData*)me->subclass_data;
|
||||
|
||||
XtFree((char*)data);
|
||||
XtFree((char*)me);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmJobBoxCreate
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Creates a managed PDM Job options setup box widget.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The passed PdmJobBox (PdmSetupBox) instance structure.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmJobBoxCreate(PdmSetupBox* me, Widget parent)
|
||||
{
|
||||
PdmJobBoxData* data = (PdmJobBoxData*)me->subclass_data;
|
||||
me->widget = _DtCreatePDMJobSetup(parent);
|
||||
XtManageChild(me->widget);
|
||||
/*
|
||||
* get the control widget ids
|
||||
*/
|
||||
data->notify_toggle = XtNameToWidget(me->widget, "*SendMail.button_0");
|
||||
data->job_name_text = XtNameToWidget(me->widget, "*Banner");
|
||||
data->job_options_text = XtNameToWidget(me->widget, "*Options");
|
||||
/*
|
||||
* initialize the banner field
|
||||
*/
|
||||
if(data->job_name_supported)
|
||||
{
|
||||
XtVaSetValues(data->job_name_text, XmNvalue, data->job_name, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
XtSetSensitive(data->job_name_text, False);
|
||||
XtSetSensitive(XtNameToWidget(me->widget, "*BannerLabel"), False);
|
||||
}
|
||||
/*
|
||||
* initialize the options field
|
||||
*/
|
||||
if(data->job_options_supported)
|
||||
{
|
||||
XtVaSetValues(data->job_options_text,
|
||||
XmNvalue, data->job_options,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
XtSetSensitive(data->job_options_text, False);
|
||||
XtSetSensitive(XtNameToWidget(me->widget, "*OptionsLabel"), False);
|
||||
}
|
||||
/*
|
||||
* initialize the send mail toggle
|
||||
*/
|
||||
if(data->notification_profile_supported)
|
||||
{
|
||||
Boolean set;
|
||||
set = PDMOID_NOTIFY_EMAIL == data->notification_profile ? True : False;
|
||||
XmToggleButtonGadgetSetState(data->notify_toggle, set, False);
|
||||
}
|
||||
else
|
||||
{
|
||||
XtSetSensitive(data->notify_toggle, False);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmJobBoxVerifyAttr
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* PDM_SUCCESS if all of the Printer options selected are OK.
|
||||
*
|
||||
* PDM_FAILURE if any of the Printer options are invalid.
|
||||
*
|
||||
*/
|
||||
static PdmStatus
|
||||
PdmJobBoxVerifyAttr(PdmSetupBox* me, PdmXp* pdm_xp)
|
||||
{
|
||||
return PDM_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmJobBoxGetAttr
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmJobBoxGetAttr(PdmSetupBox* me, PdmXp* pdm_xp)
|
||||
{
|
||||
PdmJobBoxData* data = (PdmJobBoxData*)me->subclass_data;
|
||||
PdmOidList* job_attrs_supported;
|
||||
const char* strval;
|
||||
|
||||
/*
|
||||
* job attributes supported
|
||||
*/
|
||||
strval = PdmXpGetStringValue(pdm_xp, XPPrinterAttr,
|
||||
pdmoid_att_job_attributes_supported);
|
||||
job_attrs_supported = PdmOidListNew(strval);
|
||||
/*
|
||||
* job options
|
||||
*/
|
||||
if(PdmOidListHasOid(job_attrs_supported,
|
||||
pdmoid_att_xp_spooler_command_options))
|
||||
{
|
||||
data->job_options_supported = True;
|
||||
data->job_options =
|
||||
PdmXpGetStringValue(pdm_xp, XPJobAttr,
|
||||
pdmoid_att_xp_spooler_command_options);
|
||||
}
|
||||
/*
|
||||
* job name (banner)
|
||||
*/
|
||||
if(PdmOidListHasOid(job_attrs_supported, pdmoid_att_job_name))
|
||||
{
|
||||
data->job_name_supported = True;
|
||||
data->job_name =
|
||||
PdmXpGetStringValue(pdm_xp, XPJobAttr, pdmoid_att_job_name);
|
||||
}
|
||||
/*
|
||||
* notification profile (send mail)
|
||||
*/
|
||||
if(PdmOidListHasOid(job_attrs_supported, pdmoid_att_notification_profile))
|
||||
{
|
||||
strval = PdmXpGetStringValue(pdm_xp, XPJobAttr,
|
||||
pdmoid_att_notification_profile);
|
||||
data->notification_profile = PdmOidNotifyParse(strval);
|
||||
if(data->notification_profile != PDMOID_NOTIFY_UNSUPPORTED)
|
||||
data->notification_profile_supported = True;
|
||||
}
|
||||
/*
|
||||
* clean up
|
||||
*/
|
||||
PdmOidListDelete(job_attrs_supported);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmJobBoxSetAttr
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmJobBoxSetAttr(PdmSetupBox* me, PdmXp* pdm_xp)
|
||||
{
|
||||
PdmJobBoxData* data = (PdmJobBoxData*)me->subclass_data;
|
||||
|
||||
if(data->job_options_supported)
|
||||
{
|
||||
String value;
|
||||
XtVaGetValues(data->job_options_text, XmNvalue, &value, NULL);
|
||||
PdmXpSetStringValue(pdm_xp, XPJobAttr,
|
||||
pdmoid_att_xp_spooler_command_options, value);
|
||||
XtFree(value);
|
||||
}
|
||||
if(data->job_name_supported)
|
||||
{
|
||||
String value;
|
||||
XtVaGetValues(data->job_name_text, XmNvalue, &value, NULL);
|
||||
PdmXpSetStringValue(pdm_xp, XPJobAttr, pdmoid_att_job_name, value);
|
||||
XtFree(value);
|
||||
}
|
||||
if(data->notification_profile_supported)
|
||||
{
|
||||
Boolean set;
|
||||
|
||||
set = XmToggleButtonGadgetGetState(data->notify_toggle);
|
||||
PdmXpSetStringValue(pdm_xp, XPJobAttr,
|
||||
pdmoid_att_notification_profile,
|
||||
PdmOidNotifyString(set
|
||||
? PDMOID_NOTIFY_EMAIL
|
||||
: PDMOID_NOTIFY_NONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
25
cde/programs/dtpdm/JobBox.h
Normal file
25
cde/programs/dtpdm/JobBox.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* $XConsortium: JobBox.h /main/2 1996/08/12 18:42:04 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/JobBox.h
|
||||
*/
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
#ifndef _pdmJobBox_h
|
||||
#define _pdmJobBox_h
|
||||
|
||||
#include "MainWindow.h"
|
||||
|
||||
/*
|
||||
* public PdmJobBox methods
|
||||
*/
|
||||
extern PdmSetupBox* PdmJobBoxNew(void);
|
||||
|
||||
|
||||
#endif /* _pdmJobBox_h */
|
||||
421
cde/programs/dtpdm/Main.c
Normal file
421
cde/programs/dtpdm/Main.c
Normal file
@@ -0,0 +1,421 @@
|
||||
/* $TOG: Main.c /main/11 1998/04/20 12:58:06 mgreess $ */
|
||||
/*
|
||||
* dtpdm/Main.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 <Xm/XmAll.h>
|
||||
#include <Xm/ColorObjP.h> /* for Xme Color Obj access API */
|
||||
#include <Dt/dtpdmd.h>
|
||||
#include <Dt/EnvControlP.h>
|
||||
|
||||
#include "MainWindow.h"
|
||||
#include "PrinterBox.h"
|
||||
#include "JobBox.h"
|
||||
#include "PdmMsgs.h"
|
||||
|
||||
/*
|
||||
* PDM Shell
|
||||
*/
|
||||
typedef struct _PdmShell
|
||||
{
|
||||
/*
|
||||
* application shell widget data
|
||||
*/
|
||||
XtAppContext app_context;
|
||||
Display* display;
|
||||
Window parent_window;
|
||||
XWindowAttributes parent_attr;
|
||||
Widget widget;
|
||||
/*
|
||||
* command line parameters
|
||||
*/
|
||||
String print_display_spec;
|
||||
String print_context_str;
|
||||
|
||||
} PdmShell;
|
||||
|
||||
/*
|
||||
* application resources
|
||||
*/
|
||||
static XrmOptionDescRec PdmOptions[] =
|
||||
{
|
||||
{ "-window", "parentWindowStr", XrmoptionSepArg, (caddr_t)0 },
|
||||
{ "-pdisplay", "printDisplaySpec", XrmoptionSepArg, (caddr_t)NULL },
|
||||
{ "-pcontext", "printContextStr", XrmoptionSepArg, (caddr_t)0 }
|
||||
};
|
||||
|
||||
static XtResource PdmResources[] =
|
||||
{
|
||||
{ "printDisplaySpec", "PrintDisplaySpec", XmRString, sizeof(String),
|
||||
XtOffsetOf(PdmShell, print_display_spec), XmRImmediate, (XtPointer)NULL,
|
||||
},
|
||||
{ "printContextStr", "PrintContextStr", XmRString, sizeof(String),
|
||||
XtOffsetOf(PdmShell, print_context_str), XmRImmediate, (XtPointer)NULL,
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* fallback resources
|
||||
*/
|
||||
static String PdmShellFallbackResources[] =
|
||||
{
|
||||
"Dtpdm.title: Print Setup"
|
||||
};
|
||||
|
||||
/*
|
||||
* static function declarations
|
||||
*/
|
||||
static PdmShell* PdmShellNew();
|
||||
static int PdmShellCreate(PdmShell*, const String*, int*, String*);
|
||||
static void PdmShellPresent(PdmShell* me);
|
||||
static Boolean PdmStartOkWorkProc(XtPointer client_data);
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmShellNew
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Allocates a new PdmShell data structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* A pointer to the new PdmShell structure.
|
||||
*
|
||||
*/
|
||||
static PdmShell*
|
||||
PdmShellNew()
|
||||
{
|
||||
return (PdmShell*)XtCalloc(1, sizeof(PdmShell));
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmShellCreate
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* This function creates a top level application shell.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* 0 if successful; a PDM_EXIT code if not.
|
||||
*
|
||||
*/
|
||||
static int
|
||||
PdmShellCreate(PdmShell* me,
|
||||
const String* fallback_resources,
|
||||
int* argc_in_out, String* argv_in_out)
|
||||
{
|
||||
String app_class;
|
||||
String app_name;
|
||||
XmPixelSet pixelSets[XmCO_NUM_COLORS];
|
||||
XrmClass class_list[3];
|
||||
XrmDatabase db;
|
||||
XrmName name_list[3];
|
||||
XrmRepresentation rep_type;
|
||||
XrmValue value;
|
||||
int decor;
|
||||
int funcs;
|
||||
short secondary_id;
|
||||
/*
|
||||
* create the application context and open the video display
|
||||
*/
|
||||
XtToolkitInitialize();
|
||||
XtSetLanguageProc((XtAppContext)NULL, (XtLanguageProc)NULL,
|
||||
(XtPointer)NULL);
|
||||
me->app_context = XtCreateApplicationContext();
|
||||
|
||||
XtAppSetFallbackResources(me->app_context, (String*)fallback_resources);
|
||||
|
||||
me->display =
|
||||
XtOpenDisplay(me->app_context, (String)NULL,
|
||||
(String)NULL, "Dtpdm",
|
||||
PdmOptions, XtNumber(PdmOptions),
|
||||
argc_in_out, argv_in_out);
|
||||
if((Display*)NULL == me->display)
|
||||
return PDM_EXIT_VXAUTH;
|
||||
XtGetApplicationNameAndClass(me->display, &app_name, &app_class);
|
||||
/*
|
||||
* the fallback resources are only intended for the video display, so
|
||||
* remove them from the application context
|
||||
*/
|
||||
XtAppSetFallbackResources(me->app_context, (String*)NULL);
|
||||
/*
|
||||
* get the parent video window id from the display's resource database
|
||||
*/
|
||||
db = XtDatabase(me->display);
|
||||
name_list[0] = XrmStringToQuark(app_name);
|
||||
name_list[1] = XrmStringToQuark("parentWindowStr");
|
||||
name_list[2] = NULLQUARK;
|
||||
class_list[0] = XrmStringToQuark(app_class);
|
||||
class_list[1] = XrmStringToQuark("ParentWindowStr");
|
||||
class_list[2] = NULLQUARK;
|
||||
XrmQGetResource(db, name_list, class_list, &rep_type, &value);
|
||||
if(!value.addr) return PDM_EXIT_ERROR;
|
||||
me->parent_window = (Window)strtoul((char*)value.addr, (char**)NULL, 0);
|
||||
/*
|
||||
* obtain the parent video window's attributes
|
||||
*/
|
||||
if(!XGetWindowAttributes(me->display, me->parent_window, &me->parent_attr))
|
||||
return PDM_EXIT_ERROR;
|
||||
/*
|
||||
* register interest in the DestroyNotify event for the parent window
|
||||
*/
|
||||
XSelectInput(me->display, me->parent_window, StructureNotifyMask);
|
||||
/*
|
||||
* create the application shell
|
||||
*/
|
||||
decor = MWM_DECOR_ALL | MWM_DECOR_RESIZEH | MWM_DECOR_MINIMIZE
|
||||
| MWM_DECOR_MAXIMIZE;
|
||||
funcs = MWM_FUNC_ALL | MWM_FUNC_RESIZE | MWM_FUNC_MINIMIZE
|
||||
| MWM_FUNC_MAXIMIZE;
|
||||
me->widget =
|
||||
XtVaAppCreateShell(app_name, app_class,
|
||||
applicationShellWidgetClass,
|
||||
me->display,
|
||||
XmNdeleteResponse, XmDESTROY,
|
||||
XmNmappedWhenManaged, False,
|
||||
XmNmwmDecorations, decor,
|
||||
XmNmwmFunctions, funcs,
|
||||
XmNmwmInputMode,MWM_INPUT_PRIMARY_APPLICATION_MODAL,
|
||||
XmNscreen, me->parent_attr.screen,
|
||||
XmNtransient, True,
|
||||
NULL);
|
||||
/*
|
||||
* pick up the secondary color set, so that the PDM presents the same
|
||||
* colors as a secondary window. (the XmColorObj is created by the
|
||||
* the XmDisplay object, which is created when the app shell is
|
||||
* created)
|
||||
*/
|
||||
if(XmeGetColorObjData(XtScreen(me->widget), (int*)NULL,
|
||||
pixelSets, XmCO_NUM_COLORS,
|
||||
(short*)NULL, (short*)NULL, (short*)NULL,
|
||||
&secondary_id, (short*)NULL))
|
||||
{
|
||||
/*
|
||||
* In the Xrm database, reassign primary color resource values
|
||||
* with the corresponding secondary color values. This will cause
|
||||
* subsequently created widgets that utilize colors from the
|
||||
* primary set to actually present secondary colors.
|
||||
*/
|
||||
db = XtScreenDatabase(XtScreen(me->widget));
|
||||
value.size = sizeof(Pixel);
|
||||
value.addr = (char*)&pixelSets[secondary_id].bg;
|
||||
XrmPutResource (&db, "*background", "Pixel", &value);
|
||||
XrmPutResource (&db, "*frameBackground", "Pixel", &value);
|
||||
value.addr = (char*)&pixelSets[secondary_id].fg;
|
||||
XrmPutResource (&db, "*foreground", "Pixel", &value);
|
||||
XrmPutResource (&db, "*backPageForeground", "Pixel", &value);
|
||||
value.addr = (char*)&pixelSets[secondary_id].bs;
|
||||
XrmPutResource (&db, "*bottomShadowColor", "Pixel", &value);
|
||||
value.addr = (char*)&pixelSets[secondary_id].ts;
|
||||
XrmPutResource (&db, "*topShadowColor", "Pixel", &value);
|
||||
}
|
||||
/*
|
||||
* get the application resources
|
||||
*/
|
||||
XtGetApplicationResources(me->widget, me,
|
||||
PdmResources, XtNumber(PdmResources),
|
||||
NULL, 0);
|
||||
/*
|
||||
* return
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmShellPresent
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Displays the application shell as a transient for the window
|
||||
* passed via the -window command line parameter.
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* True if successful.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmShellPresent(PdmShell* me)
|
||||
{
|
||||
int parent_abs_x, parent_abs_y;
|
||||
Position x, y;
|
||||
Dimension width, height;
|
||||
Window dummy_child;
|
||||
/*
|
||||
* get the absolute screen coordinates of the parent window
|
||||
*/
|
||||
XTranslateCoordinates(me->display, me->parent_window,
|
||||
me->parent_attr.root,
|
||||
0, 0,
|
||||
&parent_abs_x,
|
||||
&parent_abs_y,
|
||||
&dummy_child);
|
||||
/*
|
||||
* get the dimensions of the PDM window
|
||||
*/
|
||||
XtRealizeWidget(me->widget);
|
||||
XtVaGetValues(me->widget, XmNwidth, &width, XmNheight, &height, NULL);
|
||||
/*
|
||||
* determine the origin of the PDM popup such that it is
|
||||
* centered w.r.t. the parent window
|
||||
*/
|
||||
x = parent_abs_x + me->parent_attr.width/2 - width/2;
|
||||
y = parent_abs_y + me->parent_attr.height/2 - height/2;
|
||||
/*
|
||||
* update the app shell position
|
||||
*/
|
||||
XtVaSetValues(me->widget, XmNx, x, XmNy, y, NULL);
|
||||
/*
|
||||
* present the PDM as transient for the passed video window
|
||||
*
|
||||
* Note: this only works if the passed video window is a
|
||||
* top-level window; i.e. one that the window manager
|
||||
* manages.
|
||||
*/
|
||||
XSetTransientForHint(me->display, XtWindow(me->widget),
|
||||
me->parent_window);
|
||||
/*
|
||||
* map the PDM popup
|
||||
*/
|
||||
XtMapWidget(me->widget);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmStartOkWorkProc
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Send the PDM_START_OK message to the dtpdmd on stderr. This
|
||||
* routine is an Xt work proc that is intended to be invoked by Xt
|
||||
* following the dispatch of all events generated during
|
||||
* startup. This function is only called once during the life of the
|
||||
* app.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* True, which causes Xt to remove this work proc.
|
||||
*
|
||||
*/
|
||||
static Boolean
|
||||
PdmStartOkWorkProc(XtPointer client_data)
|
||||
{
|
||||
fprintf(stderr, "PDM_START_OK");
|
||||
fflush(stderr);
|
||||
return True;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: main
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* main function for the DtPrint Dialog Manager.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* This function never returns.
|
||||
*
|
||||
*/
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
PdmShell* pdm_shell;
|
||||
PdmMainWin* pdm_main_window;
|
||||
String* fallback_resources;
|
||||
int status;
|
||||
XEvent event;
|
||||
|
||||
/*
|
||||
* Initialize environment so we can find message catalog.
|
||||
*/
|
||||
_DtEnvControl(DT_ENV_SET);
|
||||
|
||||
/*
|
||||
* ensure we can convert Xp attributes for this locale
|
||||
*/
|
||||
if(!XSupportsLocale())
|
||||
{
|
||||
fprintf(stderr, "%s\n", PDM_MSG_ERR_X_LOCALE);
|
||||
exit(PDM_EXIT_ERROR);
|
||||
}
|
||||
/*
|
||||
* create the PDM objects for the app shell, the main window, and the
|
||||
* setup boxes
|
||||
*/
|
||||
pdm_shell = PdmShellNew();
|
||||
pdm_main_window = PdmMainWinNew();
|
||||
PdmMainWinAddSetupBox(pdm_main_window, PdmPrinterBoxNew());
|
||||
PdmMainWinAddSetupBox(pdm_main_window, PdmJobBoxNew());
|
||||
/*
|
||||
* create the application shell widget
|
||||
*/
|
||||
fallback_resources =
|
||||
PdmMainWinMergeFallbacks(pdm_main_window,
|
||||
PdmShellFallbackResources,
|
||||
XtNumber(PdmShellFallbackResources));
|
||||
status = PdmShellCreate(pdm_shell, fallback_resources, &argc, argv);
|
||||
if(0 != status)
|
||||
{
|
||||
PdmMainWinDelete(pdm_main_window);
|
||||
exit(status);
|
||||
}
|
||||
XtFree((char*)fallback_resources);
|
||||
/*
|
||||
* create the main PDM window widget hierarchy
|
||||
*/
|
||||
PdmMainWinCreate(pdm_main_window,
|
||||
pdm_shell->widget,
|
||||
pdm_shell->print_display_spec,
|
||||
pdm_shell->print_context_str);
|
||||
/*
|
||||
* display the PDM
|
||||
*/
|
||||
PdmShellPresent(pdm_shell);
|
||||
/*
|
||||
* signal the PDM is up following startup event processing
|
||||
*/
|
||||
XtAppAddWorkProc(pdm_shell->app_context,
|
||||
PdmStartOkWorkProc, (XtPointer)NULL);
|
||||
/*
|
||||
* main loop
|
||||
*/
|
||||
for(;;)
|
||||
{
|
||||
/*
|
||||
* get the next event
|
||||
*/
|
||||
XtAppNextEvent(pdm_shell->app_context, &event);
|
||||
/*
|
||||
* check to see if the parent video window has been destroyed
|
||||
*/
|
||||
if(event.xany.display == pdm_shell->display
|
||||
&&
|
||||
event.xany.window == pdm_shell->parent_window
|
||||
&&
|
||||
event.xany.type == DestroyNotify)
|
||||
{
|
||||
PdmMainWinDelete(pdm_main_window);
|
||||
exit(PDM_EXIT_CANCEL);
|
||||
}
|
||||
else
|
||||
XtDispatchEvent(&event);
|
||||
}
|
||||
/*
|
||||
* not reached
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
744
cde/programs/dtpdm/MainWindow.c
Normal file
744
cde/programs/dtpdm/MainWindow.c
Normal file
@@ -0,0 +1,744 @@
|
||||
/* $XConsortium: MainWindow.c /main/7 1996/10/31 02:04:14 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/MainWindow.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 <Xm/XmAll.h>
|
||||
#include <Dt/HelpDialog.h>
|
||||
#include <Dt/dtpdmd.h>
|
||||
#include <Dt/DtNlUtils.h>
|
||||
|
||||
#ifdef USE_EXM_TABS
|
||||
#include <Exm/TabB.h>
|
||||
#endif
|
||||
|
||||
#include "MainWindow.h"
|
||||
|
||||
/*
|
||||
* PdmMainWindow-specific fallback resources
|
||||
*/
|
||||
static String PdmMainWinFallbackResources[] =
|
||||
{
|
||||
"*Notebook.ExmTabButton.notebookChildType: XmMINOR_TAB",
|
||||
"*Notebook.XmPushButton.notebookChildType: XmMINOR_TAB",
|
||||
"*HelpDialog_popup.title: Print Setup - Help",
|
||||
"*Notebook.backPageNumber: 4",
|
||||
"*Notebook.backPagePlacement: XmTOP_RIGHT",
|
||||
"*Notebook.bindingType: XmNONE",
|
||||
"*Notebook.minorTabSpacing: 8",
|
||||
"*NotebookLabel.labelString: Setup Options:",
|
||||
"*PrinterDescriptionLabel.labelString: Printer Description:",
|
||||
"*PrinterNameLabel.labelString: Printer:",
|
||||
"*helpVolume: PrnSetup"
|
||||
};
|
||||
|
||||
/*
|
||||
* static function declarations
|
||||
*/
|
||||
static void PdmMainWinCreateSetupBoxes(PdmMainWin* me);
|
||||
static Widget PdmMainWinCreateWindow(PdmMainWin* me, Widget parent);
|
||||
static void PdmMainWinGetAttributes(PdmMainWin* me);
|
||||
static void PdmMainWinOkCB(Widget, XtPointer, XtPointer);
|
||||
static void PdmMainWinCancelCB(Widget, XtPointer, XtPointer);
|
||||
static void PdmMainWinHelpCB(Widget, XtPointer, XtPointer);
|
||||
static void PdmMainWinHelpDestroyCB(Widget, XtPointer, XtPointer);
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinNew
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Allocates a new PdmMainWin instance structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* A pointer to the new PdmMainWin instance.
|
||||
*
|
||||
*/
|
||||
PdmMainWin*
|
||||
PdmMainWinNew()
|
||||
{
|
||||
PdmMainWin* me = (PdmMainWin*)XtCalloc(1, sizeof(PdmMainWin));
|
||||
me->pdm_xp = PdmXpNew();
|
||||
|
||||
return me;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinDelete
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Frees the passed PdmMainWin instance structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None
|
||||
*
|
||||
*/
|
||||
void
|
||||
PdmMainWinDelete(PdmMainWin* me)
|
||||
{
|
||||
PdmBoxNode* node;
|
||||
/*
|
||||
* close the print server connection
|
||||
*/
|
||||
if(me->pdm_xp != (PdmXp*)NULL)
|
||||
PdmXpDelete(me->pdm_xp);
|
||||
/*
|
||||
* destroy the help dialog
|
||||
*/
|
||||
if((Widget)NULL != me->help_dialog)
|
||||
{
|
||||
XtDestroyWidget(me->help_dialog);
|
||||
}
|
||||
/*
|
||||
* clean up the child setup box list
|
||||
*/
|
||||
while((node = me->box_list_head) != (PdmBoxNode*)NULL)
|
||||
{
|
||||
me->box_list_head = node->next;
|
||||
XtFree((char*)node);
|
||||
}
|
||||
/*
|
||||
* clean up string members
|
||||
*/
|
||||
XtFree((char*)me->print_display_spec);
|
||||
/*
|
||||
* free the instance structure
|
||||
*/
|
||||
XtFree((char*)me);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinAddSetupBox
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Adds a PDM setup box to the list of setup boxes managed by the
|
||||
* main window.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The passed PdmSetupBox pointer.
|
||||
*
|
||||
*/
|
||||
PdmSetupBox*
|
||||
PdmMainWinAddSetupBox(PdmMainWin* me, PdmSetupBox* box)
|
||||
{
|
||||
/*
|
||||
* create a new setup box node for the passed setup box
|
||||
* and add it to the end of the list
|
||||
*/
|
||||
PdmBoxList new_node = (PdmBoxList)XtCalloc(1, sizeof(PdmBoxNode));
|
||||
new_node->box = box;
|
||||
if(me->box_list_tail)
|
||||
me->box_list_tail = me->box_list_tail->next = new_node;
|
||||
else
|
||||
me->box_list_head = me->box_list_tail = new_node;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinMergeFallbacks
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Merges the fallback resources defined by the main window and each
|
||||
* of the setup boxes with the passed set of fallback resources.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The merged array of fallback resources. The passed set of
|
||||
* fallback appear first in the list, followed by the main window
|
||||
* fallbacks, followed by the fallbacks for each setup box. The last
|
||||
* entry in the list is set to NULL. It is the caller's
|
||||
* responsibility to free the returned list using XtFree.
|
||||
*
|
||||
*/
|
||||
String* PdmMainWinMergeFallbacks(PdmMainWin* me,
|
||||
const String* app_fallbacks,
|
||||
int count)
|
||||
{
|
||||
String* new_fallbacks;
|
||||
int res_count;
|
||||
PdmBoxNode* node;
|
||||
String* ptr;
|
||||
|
||||
res_count = count;
|
||||
res_count += XtNumber(PdmMainWinFallbackResources);
|
||||
for(node = me->box_list_head; node != (PdmBoxNode*)NULL; node = node->next)
|
||||
res_count += node->box->fallback_resources_count;
|
||||
|
||||
new_fallbacks = (String*)XtCalloc(res_count+1, sizeof(String));
|
||||
|
||||
ptr = new_fallbacks;
|
||||
memcpy(ptr, app_fallbacks, count*sizeof(String));
|
||||
ptr += count;
|
||||
memcpy(ptr, PdmMainWinFallbackResources,
|
||||
XtNumber(PdmMainWinFallbackResources)*sizeof(String));
|
||||
ptr += XtNumber(PdmMainWinFallbackResources);
|
||||
for(node = me->box_list_head; node != (PdmBoxNode*)NULL; node = node->next)
|
||||
{
|
||||
memcpy(ptr, node->box->fallback_resources,
|
||||
node->box->fallback_resources_count*sizeof(String));
|
||||
ptr += node->box->fallback_resources_count;
|
||||
}
|
||||
return new_fallbacks;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinCreateSetupBoxes
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* For each setup box added to the setup box list,
|
||||
* PdmMainWinCreateSetupBoxes calls the setup box's create method,
|
||||
* passing the notebook as the parent. A tab button is created for
|
||||
* each setup box.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmMainWinCreateSetupBoxes(PdmMainWin* me)
|
||||
{
|
||||
PdmBoxNode* node;
|
||||
|
||||
for(node = me->box_list_head; node != (PdmBoxNode*)NULL; node = node->next)
|
||||
{
|
||||
PdmSetupBox* box = node->box;
|
||||
/*
|
||||
* create the setup box widget as a child of the notebook
|
||||
*/
|
||||
(*box->create_proc)(box, me->notebook);
|
||||
/*
|
||||
* create a tab for the new setup box notebook page
|
||||
*/
|
||||
#ifdef USE_EXM_TABS
|
||||
node->tab =
|
||||
XtVaCreateManagedWidget(box->tab_name,
|
||||
exmTabButtonWidgetClass,
|
||||
me->notebook,
|
||||
NULL);
|
||||
#else
|
||||
node->tab =
|
||||
XtVaCreateManagedWidget(box->tab_name,
|
||||
xmPushButtonWidgetClass,
|
||||
me->notebook,
|
||||
NULL);
|
||||
#endif /* USE_EXM_TABS */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinGetAttributes
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmMainWinGetAttributes(PdmMainWin* me)
|
||||
{
|
||||
PdmBoxNode* node;
|
||||
/*
|
||||
* get attributes for the main window
|
||||
*/
|
||||
me->printer_descriptor = PdmXpGetStringValue(me->pdm_xp,
|
||||
XPPrinterAttr,
|
||||
pdmoid_att_descriptor);
|
||||
me->printer_name = PdmXpGetStringValue(me->pdm_xp,
|
||||
XPPrinterAttr,
|
||||
pdmoid_att_printer_name);
|
||||
/*
|
||||
* call the get attributes proc for each setup box child
|
||||
*/
|
||||
for(node = me->box_list_head; node != (PdmBoxNode*)NULL; node = node->next)
|
||||
{
|
||||
PdmSetupBox* box = node->box;
|
||||
|
||||
(*box->get_attr_proc)(box, me->pdm_xp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinOkCB
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Callback for the main window OK button. This function first calls
|
||||
* the verify values method for each of the child setup boxes. If the
|
||||
* values for all of the children are Ok, the new values are set into
|
||||
* the print context, and the program exits. Otherwise the program
|
||||
* resumes. In this case, it is assumed that the child setup box will
|
||||
* present a message to the user indicating that its values are not
|
||||
* Ok. This function will move the invalid child setup notebook page
|
||||
* to the top.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None, although it usually ends the program with an exit code of
|
||||
* PDM_EXIT_OK.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmMainWinOkCB(
|
||||
Widget w,
|
||||
XtPointer client_data,
|
||||
XtPointer call_data)
|
||||
{
|
||||
PdmMainWin* me = (PdmMainWin*)client_data;
|
||||
PdmBoxNode* node;
|
||||
int page;
|
||||
/*
|
||||
* call the verify values proc for each setup box child
|
||||
*/
|
||||
for(node = me->box_list_head, page = 1;
|
||||
node != (PdmBoxNode*)NULL;
|
||||
node = node->next, page++)
|
||||
{
|
||||
PdmSetupBox* box = node->box;
|
||||
|
||||
if((*box->verify_attr_proc)(box, me->pdm_xp) != PDM_SUCCESS)
|
||||
{
|
||||
/*
|
||||
* Ensure this setup box is the top notebook page; the setup
|
||||
* box is responsible for providing error messages to the
|
||||
* user.
|
||||
*
|
||||
* developer hint: do not use the setup box as the parent of
|
||||
* a message box; if the setup box is not the
|
||||
* current notebook page, the message box
|
||||
* will not be positioned properly; use the
|
||||
* first shell ancestor (or even the parent)
|
||||
* of the setup box instead
|
||||
*/
|
||||
XtVaSetValues(me->notebook, XmNcurrentPageNumber, page, NULL);
|
||||
/*
|
||||
* stop verifying and return
|
||||
*/
|
||||
return;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* call the set attributes proc for each setup box child
|
||||
*/
|
||||
for(node = me->box_list_head; node != (PdmBoxNode*)NULL; node = node->next)
|
||||
{
|
||||
PdmSetupBox* box = node->box;
|
||||
|
||||
(*box->set_attr_proc)(box, me->pdm_xp);
|
||||
}
|
||||
/*
|
||||
* set the updated attributes into the print context
|
||||
*/
|
||||
PdmXpUpdateAttributes(me->pdm_xp);
|
||||
/*
|
||||
* exit the PDM
|
||||
*/
|
||||
PdmMainWinDelete(me);
|
||||
exit(PDM_EXIT_OK);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinCancelCB
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Callback for the main window Cancel button. This function simply
|
||||
* ends the PDM program.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None, although it will end the program with an exit code of
|
||||
* PDM_EXIT_CANCEL.
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmMainWinCancelCB(
|
||||
Widget w,
|
||||
XtPointer client_data,
|
||||
XtPointer call_data)
|
||||
{
|
||||
PdmMainWin* me = (PdmMainWin*)client_data;
|
||||
PdmMainWinDelete(me);
|
||||
exit(PDM_EXIT_CANCEL);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinHelpCB
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
*
|
||||
*/
|
||||
static void
|
||||
PdmMainWinHelpCB(Widget w, XtPointer client_data, XtPointer call_data)
|
||||
{
|
||||
PdmMainWin* me = (PdmMainWin*)client_data;
|
||||
PdmSetupBox* box;
|
||||
struct _box_resources
|
||||
{
|
||||
String help_volume;
|
||||
String location_id;
|
||||
} box_resources;
|
||||
/*
|
||||
* create the help dialog if needed
|
||||
*/
|
||||
if((Widget)NULL == me->help_dialog)
|
||||
{
|
||||
me->help_dialog =
|
||||
DtCreateHelpDialog(XtParent(me->widget), "HelpDialog", NULL, 0);
|
||||
XtAddCallback(me->help_dialog, XmNdestroyCallback,
|
||||
PdmMainWinHelpDestroyCB, (XtPointer)me);
|
||||
}
|
||||
/*
|
||||
* determine the current setup box
|
||||
*/
|
||||
{
|
||||
int current_page, i;
|
||||
PdmBoxNode* node;
|
||||
|
||||
XtVaGetValues(me->notebook, XmNcurrentPageNumber, ¤t_page, NULL);
|
||||
node = me->box_list_head;
|
||||
for(i = 1; i < current_page; i++)
|
||||
node = node->next;
|
||||
box = node->box;
|
||||
}
|
||||
/*
|
||||
* the help volume name and location id are obtained up as application
|
||||
* resources qualified for each setup box
|
||||
*/
|
||||
{
|
||||
XtResource resources[2];
|
||||
/*
|
||||
* initialize res struct for help volume
|
||||
*/
|
||||
resources[0].resource_name = DtNhelpVolume;
|
||||
resources[0].resource_class = DtCHelpVolume;
|
||||
resources[0].resource_type = XmRString;
|
||||
resources[0].resource_size = sizeof(String);
|
||||
resources[0].resource_offset =
|
||||
XtOffsetOf(struct _box_resources, help_volume);
|
||||
resources[0].default_type = XmRImmediate;
|
||||
resources[0].default_addr = (XtPointer)NULL;
|
||||
/*
|
||||
* initialize res struct for location id
|
||||
*/
|
||||
resources[1].resource_name = DtNlocationId;
|
||||
resources[1].resource_class = DtCLocationId;
|
||||
resources[1].resource_type = XmRString;
|
||||
resources[1].resource_size = sizeof(String);
|
||||
resources[1].resource_offset =
|
||||
XtOffsetOf(struct _box_resources, location_id);
|
||||
resources[1].default_type = XmRImmediate;
|
||||
resources[1].default_addr = (XtPointer)NULL;
|
||||
/*
|
||||
* get the resource values for the current setup box widget
|
||||
*/
|
||||
XtGetApplicationResources(box->widget, (XtPointer)&box_resources,
|
||||
resources, XtNumber(resources),
|
||||
(ArgList)NULL, 0);
|
||||
}
|
||||
/*
|
||||
* set the help volume and location
|
||||
*/
|
||||
XtVaSetValues(me->help_dialog,
|
||||
DtNhelpVolume, box_resources.help_volume,
|
||||
DtNlocationId, box_resources.location_id,
|
||||
DtNhelpType, DtHELP_TYPE_TOPIC,
|
||||
NULL);
|
||||
/*
|
||||
* pop up the help dialog
|
||||
*/
|
||||
XtManageChild(me->help_dialog);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinHelpCB
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Update the main window instance structure to reflect destruction
|
||||
* of the help dialog.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*/
|
||||
static void
|
||||
PdmMainWinHelpDestroyCB(Widget w, XtPointer client_data, XtPointer call_data)
|
||||
{
|
||||
PdmMainWin* me = (PdmMainWin*)client_data;
|
||||
me->help_dialog = (Widget)NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinCreate
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Creates the PDM main window, including setup box children added
|
||||
* via PdmMainWinAddSetupBox.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The passed PdmMainWin pointer.
|
||||
*
|
||||
*/
|
||||
PdmMainWin*
|
||||
PdmMainWinCreate(PdmMainWin* me,
|
||||
Widget parent,
|
||||
String print_display_spec,
|
||||
String print_context_str)
|
||||
{
|
||||
/*
|
||||
* establish the print server connection
|
||||
*/
|
||||
if(PdmXpOpen(me->pdm_xp, print_display_spec, print_context_str)
|
||||
== (Display*)NULL)
|
||||
{
|
||||
/*
|
||||
* unable to open the print display
|
||||
*/
|
||||
PdmMainWinDelete(me);
|
||||
exit(PDM_EXIT_PXAUTH);
|
||||
}
|
||||
/*
|
||||
* make a copy of the print display spec
|
||||
*/
|
||||
me->print_display_spec = XtNewString(print_display_spec);
|
||||
/*
|
||||
* get attributes for the main window and the setup box children
|
||||
*/
|
||||
PdmMainWinGetAttributes(me);
|
||||
/*
|
||||
* create the main window
|
||||
*/
|
||||
PdmMainWinCreateWindow(me, parent);
|
||||
/*
|
||||
* add the registered setup boxes to the notebook
|
||||
*/
|
||||
PdmMainWinCreateSetupBoxes(me);
|
||||
/*
|
||||
* return
|
||||
*/
|
||||
return me;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmMainWinCreateWindow
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Creates the PDM main window, including setup box children added
|
||||
* via PdmMainWinAddSetupBox.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The main window widget ID.
|
||||
*
|
||||
*/
|
||||
static Widget
|
||||
PdmMainWinCreateWindow(PdmMainWin* me,
|
||||
Widget parent)
|
||||
{
|
||||
Widget manager;
|
||||
Widget row;
|
||||
Widget w;
|
||||
XmString label;
|
||||
|
||||
/*
|
||||
* create the main window
|
||||
*/
|
||||
me->widget =
|
||||
XtVaCreateManagedWidget("Main",
|
||||
xmMessageBoxWidgetClass,
|
||||
parent,
|
||||
XmNdialogType, XmDIALOG_MESSAGE,
|
||||
NULL);
|
||||
XtUnmanageChild(XtNameToWidget(me->widget, "Message"));
|
||||
XtUnmanageChild(XtNameToWidget(me->widget, "Symbol"));
|
||||
/*
|
||||
* add OK, Cancel and Help pushbutton callbacks
|
||||
*/
|
||||
XtAddCallback(me->widget, XmNokCallback,
|
||||
PdmMainWinOkCB, (XtPointer)me);
|
||||
XtAddCallback(me->widget, XmNcancelCallback,
|
||||
PdmMainWinCancelCB, (XtPointer)me);
|
||||
XtAddCallback(me->widget, XmNhelpCallback,
|
||||
PdmMainWinHelpCB, (XtPointer)me);
|
||||
/*
|
||||
* create the main manager widget
|
||||
*/
|
||||
manager = XtVaCreateManagedWidget("Manager",
|
||||
xmRowColumnWidgetClass,
|
||||
me->widget,
|
||||
NULL);
|
||||
/*
|
||||
* create the printer description row
|
||||
*/
|
||||
if(me->printer_descriptor != (const char*)NULL)
|
||||
{
|
||||
char* desc;
|
||||
char* ptr;
|
||||
|
||||
row = XtVaCreateManagedWidget(
|
||||
"PrinterDescriptionRow",
|
||||
xmRowColumnWidgetClass,
|
||||
manager,
|
||||
XmNorientation, XmHORIZONTAL,
|
||||
NULL);
|
||||
/*
|
||||
* create the printer description label
|
||||
*/
|
||||
w = XtVaCreateManagedWidget("PrinterDescriptionLabel",
|
||||
xmLabelGadgetClass,
|
||||
row,
|
||||
NULL);
|
||||
/*
|
||||
* create the printer description using just the 1st line
|
||||
*/
|
||||
desc = XtNewString(me->printer_descriptor);
|
||||
ptr = Dt_strchr(desc, '\n');
|
||||
if(ptr != NULL)
|
||||
*ptr = '\0';
|
||||
label = XmStringCreateLocalized(desc);
|
||||
XtFree(desc);
|
||||
w = XtVaCreateManagedWidget("PrinterDescription",
|
||||
xmLabelGadgetClass,
|
||||
row,
|
||||
XmNlabelString, label,
|
||||
NULL);
|
||||
XmStringFree(label);
|
||||
}
|
||||
/*
|
||||
* create the printer name row
|
||||
*/
|
||||
if(me->printer_name != (const char*)NULL)
|
||||
{
|
||||
char* printer_spec;
|
||||
int printer_spec_len;
|
||||
|
||||
row = XtVaCreateManagedWidget(
|
||||
"PrinterNameRow",
|
||||
xmRowColumnWidgetClass,
|
||||
manager,
|
||||
XmNorientation, XmHORIZONTAL,
|
||||
NULL);
|
||||
/*
|
||||
* create the printer name label
|
||||
*/
|
||||
w = XtVaCreateManagedWidget("PrinterNameLabel",
|
||||
xmLabelGadgetClass,
|
||||
row,
|
||||
NULL);
|
||||
/*
|
||||
* build the X printer specifier
|
||||
*/
|
||||
printer_spec_len = strlen(me->printer_name);
|
||||
if(me->print_display_spec != (char*)NULL)
|
||||
printer_spec_len += strlen(me->print_display_spec) + 1;
|
||||
printer_spec = XtMalloc(printer_spec_len + 1);
|
||||
strcpy(printer_spec, me->printer_name);
|
||||
if(me->print_display_spec != (char*)NULL)
|
||||
{
|
||||
strcat(printer_spec, "@");
|
||||
strcat(printer_spec, me->print_display_spec);
|
||||
}
|
||||
/*
|
||||
* create the printer name
|
||||
*/
|
||||
label = XmStringCreateLocalized(printer_spec);
|
||||
XtFree(printer_spec);
|
||||
w = XtVaCreateManagedWidget("PrinterName",
|
||||
xmLabelGadgetClass,
|
||||
row,
|
||||
XmNlabelString, label,
|
||||
NULL);
|
||||
XmStringFree(label);
|
||||
}
|
||||
/*
|
||||
* top separator
|
||||
*/
|
||||
w = XtVaCreateManagedWidget("TopSeparator",
|
||||
xmSeparatorGadgetClass,
|
||||
manager,
|
||||
NULL);
|
||||
/*
|
||||
* notebook label
|
||||
*/
|
||||
row = XtVaCreateManagedWidget(
|
||||
"PrinterNameRow",
|
||||
xmRowColumnWidgetClass,
|
||||
manager,
|
||||
XmNorientation, XmHORIZONTAL,
|
||||
NULL);
|
||||
w = XtVaCreateManagedWidget("NotebookLabel",
|
||||
xmLabelGadgetClass,
|
||||
row,
|
||||
NULL);
|
||||
/*
|
||||
* create the notebook
|
||||
*/
|
||||
row = XtVaCreateManagedWidget(
|
||||
"NotebookRow",
|
||||
xmRowColumnWidgetClass,
|
||||
manager,
|
||||
XmNorientation, XmHORIZONTAL,
|
||||
NULL);
|
||||
me->notebook =
|
||||
XtVaCreateManagedWidget(
|
||||
"Notebook",
|
||||
xmNotebookWidgetClass,
|
||||
row,
|
||||
NULL);
|
||||
/*
|
||||
* Create an unmanaged notebook page scroller (i.e. a widget that has
|
||||
* the XmQTnavigator trait), otherwise the notebook widget will
|
||||
* create a default page scroller when it is realized. If this
|
||||
* default page scroller is unmanaged after realization, the parent
|
||||
* manager of the notebook does not shrink in order to reclaim the
|
||||
* space previously occupied by the page scroller.
|
||||
*/
|
||||
XtVaCreateWidget("DummyPageScroller",
|
||||
xmScrollBarWidgetClass,
|
||||
me->notebook,
|
||||
NULL);
|
||||
/*
|
||||
* return
|
||||
*/
|
||||
return me->widget;
|
||||
}
|
||||
127
cde/programs/dtpdm/MainWindow.h
Normal file
127
cde/programs/dtpdm/MainWindow.h
Normal file
@@ -0,0 +1,127 @@
|
||||
/* $XConsortium: MainWindow.h /main/4 1996/08/12 18:42:19 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/MainWindow.h
|
||||
*/
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
#ifndef _pdmMainWin_h
|
||||
#define _pdmMainWin_h
|
||||
|
||||
#include "PdmXp.h"
|
||||
|
||||
/*
|
||||
* return codes for a PdmBoxVerifyAttrProc
|
||||
*/
|
||||
typedef enum { PDM_SUCCESS, PDM_FAILURE } PdmStatus;
|
||||
|
||||
/*
|
||||
* callback procedure types for setup box children of the PDM main window
|
||||
*/
|
||||
typedef struct _PdmSetupBox* (*PdmBoxNewProc) (void);
|
||||
typedef void (*PdmBoxDeleteProc)(struct _PdmSetupBox* me);
|
||||
typedef void (*PdmBoxCreateProc)(struct _PdmSetupBox* me, Widget parent);
|
||||
typedef PdmStatus (*PdmBoxVerifyAttrProc)(struct _PdmSetupBox* me,
|
||||
PdmXp* pdm_xp);
|
||||
typedef void (*PdmBoxGetAttrProc)(struct _PdmSetupBox* me, PdmXp* pdm_xp);
|
||||
typedef void (*PdmBoxSetAttrProc)(struct _PdmSetupBox* me, PdmXp* pdm_xp);
|
||||
|
||||
/*
|
||||
* instance structure for setup box children of the PDM main window
|
||||
*/
|
||||
typedef struct _PdmSetupBox
|
||||
{
|
||||
/*
|
||||
* define common setup box functions
|
||||
*/
|
||||
PdmBoxDeleteProc delete_proc;
|
||||
PdmBoxCreateProc create_proc;
|
||||
PdmBoxVerifyAttrProc verify_attr_proc;
|
||||
PdmBoxGetAttrProc get_attr_proc;
|
||||
PdmBoxSetAttrProc set_attr_proc;
|
||||
/*
|
||||
* the setup box child's widget ID
|
||||
*/
|
||||
Widget widget;
|
||||
/*
|
||||
* the setup box provides its own fallback resources and the
|
||||
* notebook tab widget instance name
|
||||
*/
|
||||
const String* fallback_resources;
|
||||
int fallback_resources_count;
|
||||
const char* tab_name;
|
||||
/*
|
||||
* allow child setup box-specific data
|
||||
*/
|
||||
void* subclass_data;
|
||||
|
||||
} PdmSetupBox;
|
||||
|
||||
/*
|
||||
* node structure for the list of setup box children managed by the PDM
|
||||
* main window
|
||||
*/
|
||||
typedef struct _PdmBoxNode
|
||||
{
|
||||
PdmSetupBox* box;
|
||||
Widget tab;
|
||||
struct _PdmBoxNode* next;
|
||||
} PdmBoxNode, *PdmBoxList;
|
||||
|
||||
/*
|
||||
* PDM main window instance structure
|
||||
*/
|
||||
typedef struct _PdmMainWin
|
||||
{
|
||||
/*
|
||||
* widget IDs
|
||||
*/
|
||||
Widget widget;
|
||||
Widget notebook;
|
||||
/*
|
||||
* printer information
|
||||
*/
|
||||
char* print_display_spec;
|
||||
|
||||
const char* printer_descriptor;
|
||||
const char* printer_name;
|
||||
/*
|
||||
* linked list of setup boxes
|
||||
*/
|
||||
PdmBoxList box_list_head;
|
||||
PdmBoxList box_list_tail;
|
||||
/*
|
||||
* Xp interface
|
||||
*/
|
||||
PdmXp* pdm_xp;
|
||||
/*
|
||||
* online help
|
||||
*/
|
||||
Widget help_dialog;
|
||||
|
||||
} PdmMainWin;
|
||||
|
||||
/*
|
||||
* public PdmMainWin methods
|
||||
*/
|
||||
PdmMainWin* PdmMainWinNew(void);
|
||||
PdmMainWin* PdmMainWinCreate(
|
||||
PdmMainWin* me,
|
||||
Widget parent,
|
||||
String print_display_spec,
|
||||
String print_context_str);
|
||||
void PdmMainWinDelete(PdmMainWin* me);
|
||||
PdmSetupBox* PdmMainWinAddSetupBox(PdmMainWin* me, PdmSetupBox* box);
|
||||
String* PdmMainWinMergeFallbacks(PdmMainWin* me,
|
||||
const String* app_fallbacks,
|
||||
int count);
|
||||
|
||||
#endif /* _pdmMainWin_h */
|
||||
|
||||
|
||||
79
cde/programs/dtpdm/PdmMsgs.c
Normal file
79
cde/programs/dtpdm/PdmMsgs.c
Normal file
@@ -0,0 +1,79 @@
|
||||
/* $XConsortium: PdmMsgs.c /main/3 1996/08/12 18:42:25 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/PdmMsgs.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.
|
||||
*/
|
||||
|
||||
#ifdef I18N_MSG
|
||||
|
||||
#include <nl_types.h>
|
||||
|
||||
#if !defined(NL_CAT_LOCALE)
|
||||
#define NL_CAT_LOCALE 0
|
||||
#endif
|
||||
|
||||
#define DTPDM_CAT_NAME "dtpdm"
|
||||
|
||||
#endif /* I18N_MSG */
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Default message values
|
||||
*/
|
||||
const char DtPdmMsg_0001[] = "Locale unsupported by X";
|
||||
const char DtPdmMsg_0002[] = "Auto-select";
|
||||
const char DtPdmMsg_0003[] = "Default";
|
||||
const char DtPdmMsg_0004[] = "Syntax error parsing medium-source-sizes";
|
||||
const char DtPdmMsg_0005[] = "Syntax error parsing input-trays-medium";
|
||||
const char DtPdmMsg_0006[] = "Syntax error parsing document format";
|
||||
|
||||
|
||||
#ifdef I18N_MSG
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: DtPdmGetMessage
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* int set - The message catalog set number.
|
||||
*
|
||||
* int n - The message number.
|
||||
*
|
||||
* char *s - The default message if the message is not
|
||||
* retrieved from a message catalog.
|
||||
*
|
||||
* Returns: the string for set 'set' and number 'n'.
|
||||
*/
|
||||
const char *
|
||||
DtPdmGetMessage(
|
||||
int set,
|
||||
int n,
|
||||
char * s)
|
||||
{
|
||||
char *msg;
|
||||
nl_catd catopen();
|
||||
char *catgets();
|
||||
static int first = 1;
|
||||
static nl_catd nlmsg_fd;
|
||||
|
||||
if(set == -1 || n == -1)
|
||||
return s;
|
||||
|
||||
if(first)
|
||||
{
|
||||
first = 0;
|
||||
nlmsg_fd = catopen(DTPDM_CAT_NAME, NL_CAT_LOCALE);
|
||||
}
|
||||
msg=catgets(nlmsg_fd,set,n,s);
|
||||
return (msg);
|
||||
}
|
||||
#endif /* I18N_MSG */
|
||||
64
cde/programs/dtpdm/PdmMsgs.h
Normal file
64
cde/programs/dtpdm/PdmMsgs.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* $XConsortium: PdmMsgs.h /main/3 1996/08/12 18:42:31 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/PrintMsgsP.h
|
||||
*/
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
#ifndef _PdmMsgs_h
|
||||
#define _PdmMsgs_h
|
||||
|
||||
#ifdef I18N_MSG
|
||||
#include <nl_types.h>
|
||||
#define DTPDM_GETMESSAGE(set, number, string) \
|
||||
DtPdmGetMessage(set, number, string)
|
||||
|
||||
#else /* I18N_MSG */
|
||||
#define DTPDM_GETMESSAGE(set, number, string) (string)
|
||||
#endif /* I18N_MSG */
|
||||
|
||||
/*** const causes the HP compiler to complain. Remove reference until ***
|
||||
*** the build and integration people can figure out how to get this to ***
|
||||
*** work. ***/
|
||||
|
||||
/* #define CONST const */
|
||||
#define CONST
|
||||
|
||||
#define PDM_MSG_ERR_X_LOCALE DTPDM_GETMESSAGE(MS_DtPdmMsg, 1, DtPdmMsg_0001)
|
||||
#define PDM_MSG_TRAY_AUTO_SELECT DTPDM_GETMESSAGE(MS_DtPdmMsg, 2, DtPdmMsg_0002)
|
||||
#define PDM_MSG_SIZE_DEFAULT DTPDM_GETMESSAGE(MS_DtPdmMsg, 3, DtPdmMsg_0003)
|
||||
#define PDM_MSG_WARN_MSS DTPDM_GETMESSAGE(MS_DtPdmMsg, 4, DtPdmMsg_0004)
|
||||
#define PDM_MSG_WARN_ITM DTPDM_GETMESSAGE(MS_DtPdmMsg, 5, DtPdmMsg_0005)
|
||||
#define PDM_MSG_WARN_DOC_FMT DTPDM_GETMESSAGE(MS_DtPdmMsg, 6, DtPdmMsg_0006)
|
||||
|
||||
extern CONST char DtPdmMsg_0001[];
|
||||
extern CONST char DtPdmMsg_0002[];
|
||||
extern CONST char DtPdmMsg_0003[];
|
||||
extern CONST char DtPdmMsg_0004[];
|
||||
extern CONST char DtPdmMsg_0005[];
|
||||
extern CONST char DtPdmMsg_0006[];
|
||||
|
||||
/*
|
||||
* Message sets
|
||||
*/
|
||||
#define MS_DtPdmOid 1
|
||||
#define MS_DtPdmMsg 2
|
||||
|
||||
#ifdef I18N_MSG
|
||||
|
||||
/* Message IDs */
|
||||
|
||||
extern const char * DtPdmGetMessage(
|
||||
int set,
|
||||
int n,
|
||||
const char * s);
|
||||
|
||||
#endif /* I18N_MSG */
|
||||
|
||||
#endif /* _PdmMsgs_h */
|
||||
2157
cde/programs/dtpdm/PdmOid.c
Normal file
2157
cde/programs/dtpdm/PdmOid.c
Normal file
File diff suppressed because it is too large
Load Diff
200
cde/programs/dtpdm/PdmOid.h
Normal file
200
cde/programs/dtpdm/PdmOid.h
Normal file
@@ -0,0 +1,200 @@
|
||||
/* $XConsortium: PdmOid.h /main/9 1996/08/12 18:42:42 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/PdmOid.h
|
||||
*/
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
#ifndef _PdmOid_h
|
||||
#define _PdmOid_h
|
||||
|
||||
#include <X11/Intrinsic.h>
|
||||
|
||||
/*
|
||||
* include the auto-generated PdmOid enum definition
|
||||
*/
|
||||
#include "PdmOidDefs.h"
|
||||
|
||||
/*
|
||||
* list of object identifiers
|
||||
*/
|
||||
typedef struct _PdmOidList
|
||||
{
|
||||
PdmOid* list;
|
||||
int count;
|
||||
} PdmOidList;
|
||||
|
||||
/*
|
||||
* linked list of object identifiers
|
||||
*/
|
||||
typedef struct PdmOidNodeStruct
|
||||
{
|
||||
PdmOid oid;
|
||||
struct PdmOidNodeStruct* next;
|
||||
} *PdmOidNode;
|
||||
|
||||
typedef struct _PdmOidLinkedList
|
||||
{
|
||||
PdmOidNode head;
|
||||
PdmOidNode tail;
|
||||
PdmOidNode current;
|
||||
int count;
|
||||
} PdmOidLinkedList;
|
||||
|
||||
/*
|
||||
* PdmOidMediumSourceSize and related definitions
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
float minimum_x;
|
||||
float maximum_x;
|
||||
float minimum_y;
|
||||
float maximum_y;
|
||||
} PdmOidArea; /* (not used by PDM) */
|
||||
|
||||
/*
|
||||
* XXX need to update continuous size spec to use reals
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
unsigned long lower_bound;
|
||||
unsigned long upper_bound;
|
||||
} PdmOidUnsignedRange; /* (not used by PDM) */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOidUnsignedRange range_across_feed;
|
||||
unsigned long increment_across_feed;
|
||||
PdmOidUnsignedRange range_in_feed;
|
||||
unsigned long increment_in_feed;
|
||||
Boolean long_edge_feeds;
|
||||
PdmOidArea assured_reproduction_area;
|
||||
} PdmOidMediumContinuousSize; /* (not used by PDM) */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOid page_size;
|
||||
Boolean long_edge_feeds; /* (not used by PDM) */
|
||||
PdmOidArea assured_reproduction_area; /* (not used by PDM) */
|
||||
} PdmOidMediumDiscreteSize;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOidMediumDiscreteSize* list;
|
||||
int count;
|
||||
} PdmOidMediumDiscreteSizeList;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOid input_tray; /* may be set to pdmoid_none */
|
||||
enum { PdmOidMediumSS_DISCRETE, PdmOidMediumSS_CONTINUOUS } mstag;
|
||||
union
|
||||
{
|
||||
PdmOidMediumDiscreteSizeList* discrete;
|
||||
PdmOidMediumContinuousSize* continuous_size; /* (not used by PDM) */
|
||||
} ms; /* "ms" is short for medium-size */
|
||||
|
||||
} PdmOidMediumSourceSize;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOidMediumSourceSize* mss;
|
||||
int count;
|
||||
} PdmOidMediumSS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOid input_tray;
|
||||
PdmOid medium;
|
||||
} PdmOidTrayMedium;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PdmOidTrayMedium* list;
|
||||
int count;
|
||||
} PdmOidTrayMediumList;
|
||||
|
||||
typedef enum {
|
||||
PDMOID_NOTIFY_UNSUPPORTED,
|
||||
PDMOID_NOTIFY_NONE,
|
||||
PDMOID_NOTIFY_EMAIL
|
||||
} PdmOidNotify;
|
||||
|
||||
/*
|
||||
* PdmOid public methods
|
||||
*/
|
||||
extern const char* PdmOidString(PdmOid);
|
||||
extern int PdmOidStringLength(PdmOid);
|
||||
extern PdmOid PdmOidFromString(const char* value);
|
||||
extern int PdmOidMsgSet(PdmOid);
|
||||
extern int PdmOidMsgNum(PdmOid);
|
||||
extern const char* PdmOidDefaultMsg(PdmOid);
|
||||
extern const char* PdmOidLocalString(PdmOid pdm_oid);
|
||||
|
||||
/*
|
||||
* PdmOidList public methods
|
||||
*/
|
||||
extern PdmOidList* PdmOidListNew(const char* value_string);
|
||||
extern void PdmOidListDelete(PdmOidList*);
|
||||
#define PdmOidListCount(l) ((l) ? (l)->count : 0)
|
||||
#define PdmOidListGetOid(l, i) ((l) ? (l)->list[(i)] : pdmoid_none)
|
||||
extern int PdmOidListGetIndex(const PdmOidList* list, PdmOid oid);
|
||||
extern Boolean PdmOidListHasOid(const PdmOidList* list, PdmOid oid);
|
||||
|
||||
/*
|
||||
* PdmOidLinkedList public methods
|
||||
*/
|
||||
extern PdmOidLinkedList* PdmOidLinkedListNew();
|
||||
extern void PdmOidLinkedListDelete(PdmOidLinkedList*);
|
||||
#define PdmOidLinkedListCount(l) ((l) ? (l)->count : 0)
|
||||
extern PdmOid PdmOidLinkedListGetOid(PdmOidLinkedList* list, int i);
|
||||
extern void PdmOidLinkedListAddOid(PdmOidLinkedList* list, PdmOid oid);
|
||||
extern int PdmOidLinkedListGetIndex(PdmOidLinkedList* list, PdmOid oid);
|
||||
extern Boolean PdmOidLinkedListHasOid(PdmOidLinkedList* list,
|
||||
PdmOid oid);
|
||||
extern PdmOid PdmOidLinkedListFirstOid(PdmOidLinkedList* list);
|
||||
extern PdmOid PdmOidLinkedListNextOid(PdmOidLinkedList* list);
|
||||
|
||||
/*
|
||||
* PdmOidMediumSourceSize public methods
|
||||
*/
|
||||
extern PdmOidMediumSS* PdmOidMediumSSNew(const char* value_string);
|
||||
extern void PdmOidMediumSSDelete(PdmOidMediumSS*);
|
||||
#define PdmOidMediumSSCount(me) ((me) ? (me)->count : 0)
|
||||
extern PdmOidLinkedList* PdmOidMediumSSGetAllSizes(PdmOidMediumSS*);
|
||||
extern void PdmOidMediumSSGetTraysSizes(PdmOidMediumSS*,
|
||||
PdmOidTrayMediumList*,
|
||||
PdmOidList** trays,
|
||||
PdmOidList** sizes);
|
||||
|
||||
/*
|
||||
* PdmOidTrayMediumList public methods
|
||||
*/
|
||||
extern PdmOidTrayMediumList* PdmOidTrayMediumListNew(const char* value_string);
|
||||
extern void PdmOidTrayMediumListDelete(PdmOidTrayMediumList* me);
|
||||
#define PdmOidTrayMediumListCount(me) ((me) ? (me)->count : 0)
|
||||
#define PdmOidTrayMediumListTray(me, i) \
|
||||
((me) ? (me)->list[(i)].input_tray : pdmoid_none)
|
||||
#define PdmOidTrayMediumListMedium(me, i) \
|
||||
((me) ? (me)->list[(i)].medium : pdmoid_none)
|
||||
|
||||
/*
|
||||
* PdmOidNotify public methods
|
||||
*/
|
||||
extern PdmOidNotify PdmOidNotifyParse(const char* value_string);
|
||||
extern const char* PdmOidNotifyString(PdmOidNotify notify);
|
||||
|
||||
/*
|
||||
* PdmOidDocumentFormat public methods
|
||||
*/
|
||||
extern char* PdmOidDocumentFormatParse(const char* value_string);
|
||||
extern char* PdmOidDocumentFormatDefault(const char* value_string);
|
||||
|
||||
#endif /* _PdmOid_h - don't add any thing after this line */
|
||||
131
cde/programs/dtpdm/PdmOidDefs.h
Normal file
131
cde/programs/dtpdm/PdmOidDefs.h
Normal file
@@ -0,0 +1,131 @@
|
||||
/* $XConsortium: PdmOidDefs.h /main/7 1996/08/12 18:42:47 cde-hp $ */
|
||||
/* This is an automatically-generated file. Do not edit. */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
pdmoid_none,
|
||||
pdmoid_unspecified,
|
||||
pdmoid_att_descriptor,
|
||||
pdmoid_att_content_orientation,
|
||||
pdmoid_att_copy_count,
|
||||
pdmoid_att_default_printer_resolution,
|
||||
pdmoid_att_default_input_tray,
|
||||
pdmoid_att_default_medium,
|
||||
pdmoid_att_document_format,
|
||||
pdmoid_att_plex,
|
||||
pdmoid_att_xp_listfonts_modes,
|
||||
pdmoid_att_job_name,
|
||||
pdmoid_att_job_owner,
|
||||
pdmoid_att_notification_profile,
|
||||
pdmoid_att_xp_setup_state,
|
||||
pdmoid_att_xp_spooler_command_options,
|
||||
pdmoid_att_content_orientations_supported,
|
||||
pdmoid_att_document_formats_supported,
|
||||
pdmoid_att_dt_pdm_command,
|
||||
pdmoid_att_input_trays_medium,
|
||||
pdmoid_att_medium_source_sizes_supported,
|
||||
pdmoid_att_plexes_supported,
|
||||
pdmoid_att_printer_model,
|
||||
pdmoid_att_printer_name,
|
||||
pdmoid_att_printer_resolutions_supported,
|
||||
pdmoid_att_xp_embedded_formats_supported,
|
||||
pdmoid_att_xp_listfonts_modes_supported,
|
||||
pdmoid_att_xp_page_attributes_supported,
|
||||
pdmoid_att_xp_raw_formats_supported,
|
||||
pdmoid_att_xp_setup_proviso,
|
||||
pdmoid_att_document_attributes_supported,
|
||||
pdmoid_att_job_attributes_supported,
|
||||
pdmoid_att_locale,
|
||||
pdmoid_att_multiple_documents_supported,
|
||||
pdmoid_val_content_orientation_portrait,
|
||||
pdmoid_val_content_orientation_landscape,
|
||||
pdmoid_val_content_orientation_reverse_portrait,
|
||||
pdmoid_val_content_orientation_reverse_landscape,
|
||||
pdmoid_val_medium_size_iso_a0,
|
||||
pdmoid_val_medium_size_iso_a1,
|
||||
pdmoid_val_medium_size_iso_a2,
|
||||
pdmoid_val_medium_size_iso_a3,
|
||||
pdmoid_val_medium_size_iso_a4,
|
||||
pdmoid_val_medium_size_iso_a5,
|
||||
pdmoid_val_medium_size_iso_a6,
|
||||
pdmoid_val_medium_size_iso_a7,
|
||||
pdmoid_val_medium_size_iso_a8,
|
||||
pdmoid_val_medium_size_iso_a9,
|
||||
pdmoid_val_medium_size_iso_a10,
|
||||
pdmoid_val_medium_size_iso_b0,
|
||||
pdmoid_val_medium_size_iso_b1,
|
||||
pdmoid_val_medium_size_iso_b2,
|
||||
pdmoid_val_medium_size_iso_b3,
|
||||
pdmoid_val_medium_size_iso_b4,
|
||||
pdmoid_val_medium_size_iso_b5,
|
||||
pdmoid_val_medium_size_iso_b6,
|
||||
pdmoid_val_medium_size_iso_b7,
|
||||
pdmoid_val_medium_size_iso_b8,
|
||||
pdmoid_val_medium_size_iso_b9,
|
||||
pdmoid_val_medium_size_iso_b10,
|
||||
pdmoid_val_medium_size_na_letter,
|
||||
pdmoid_val_medium_size_na_legal,
|
||||
pdmoid_val_medium_size_executive,
|
||||
pdmoid_val_medium_size_folio,
|
||||
pdmoid_val_medium_size_invoice,
|
||||
pdmoid_val_medium_size_ledger,
|
||||
pdmoid_val_medium_size_quarto,
|
||||
pdmoid_val_medium_size_iso_c3,
|
||||
pdmoid_val_medium_size_iso_c4,
|
||||
pdmoid_val_medium_size_iso_c5,
|
||||
pdmoid_val_medium_size_iso_c6,
|
||||
pdmoid_val_medium_size_iso_designated_long,
|
||||
pdmoid_val_medium_size_na_10x13_envelope,
|
||||
pdmoid_val_medium_size_na_9x12_envelope,
|
||||
pdmoid_val_medium_size_na_number_10_envelope,
|
||||
pdmoid_val_medium_size_na_7x9_envelope,
|
||||
pdmoid_val_medium_size_na_9x11_envelope,
|
||||
pdmoid_val_medium_size_na_10x14_envelope,
|
||||
pdmoid_val_medium_size_na_number_9_envelope,
|
||||
pdmoid_val_medium_size_na_6x9_envelope,
|
||||
pdmoid_val_medium_size_na_10x15_envelope,
|
||||
pdmoid_val_medium_size_monarch_envelope,
|
||||
pdmoid_val_medium_size_a,
|
||||
pdmoid_val_medium_size_b,
|
||||
pdmoid_val_medium_size_c,
|
||||
pdmoid_val_medium_size_d,
|
||||
pdmoid_val_medium_size_e,
|
||||
pdmoid_val_medium_size_jis_b0,
|
||||
pdmoid_val_medium_size_jis_b1,
|
||||
pdmoid_val_medium_size_jis_b2,
|
||||
pdmoid_val_medium_size_jis_b3,
|
||||
pdmoid_val_medium_size_jis_b4,
|
||||
pdmoid_val_medium_size_jis_b5,
|
||||
pdmoid_val_medium_size_jis_b6,
|
||||
pdmoid_val_medium_size_jis_b7,
|
||||
pdmoid_val_medium_size_jis_b8,
|
||||
pdmoid_val_medium_size_jis_b9,
|
||||
pdmoid_val_medium_size_jis_b10,
|
||||
pdmoid_val_plex_simplex,
|
||||
pdmoid_val_plex_duplex,
|
||||
pdmoid_val_plex_tumble,
|
||||
pdmoid_val_input_tray_top,
|
||||
pdmoid_val_input_tray_middle,
|
||||
pdmoid_val_input_tray_bottom,
|
||||
pdmoid_val_input_tray_envelope,
|
||||
pdmoid_val_input_tray_manual,
|
||||
pdmoid_val_input_tray_large_capacity,
|
||||
pdmoid_val_input_tray_main,
|
||||
pdmoid_val_input_tray_side,
|
||||
pdmoid_val_event_report_job_completed,
|
||||
pdmoid_val_delivery_method_electronic_mail,
|
||||
pdmoid_val_xp_setup_mandatory,
|
||||
pdmoid_val_xp_setup_optional,
|
||||
pdmoid_val_xp_setup_ok,
|
||||
pdmoid_val_xp_setup_incomplete,
|
||||
pdmoid_val_xp_list_glyph_fonts,
|
||||
pdmoid_val_xp_list_internal_printer_fonts
|
||||
} PdmOid;
|
||||
191
cde/programs/dtpdm/PdmOidDefs.in
Normal file
191
cde/programs/dtpdm/PdmOidDefs.in
Normal file
@@ -0,0 +1,191 @@
|
||||
# $XConsortium: PdmOidDefs.in /main/7 1996/08/12 18:42:52 cde-hp $
|
||||
|
||||
# (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.
|
||||
|
||||
# oid module headers input file
|
||||
|
||||
# entry format:
|
||||
|
||||
# <oid enum value> <oid string representation> <msg set> <msg num> <default msg>
|
||||
|
||||
# where there is one line per entry, and items within each entry are
|
||||
# delimited by white space. The last item, <default message>,
|
||||
# includes all remaining information until the end of the line, and
|
||||
# as such may contain whitespace.
|
||||
|
||||
# Note: Next available message ID is _76_
|
||||
|
||||
# the following should *always* be the first line of data
|
||||
#
|
||||
pdmoid_none
|
||||
|
||||
pdmoid_unspecified
|
||||
|
||||
# Generic attributes
|
||||
#
|
||||
pdmoid_att_descriptor descriptor
|
||||
|
||||
# Document attributes (includes Page attributes)
|
||||
#
|
||||
pdmoid_att_content_orientation content-orientation
|
||||
pdmoid_att_copy_count copy-count
|
||||
pdmoid_att_default_printer_resolution default-printer-resolution
|
||||
pdmoid_att_default_input_tray default-input-tray
|
||||
pdmoid_att_default_medium default-medium
|
||||
pdmoid_att_document_format document-format
|
||||
pdmoid_att_plex plex
|
||||
pdmoid_att_xp_listfonts_modes xp-listfonts-modes
|
||||
|
||||
# Job attributes
|
||||
#
|
||||
pdmoid_att_job_name job-name
|
||||
pdmoid_att_job_owner job-owner
|
||||
pdmoid_att_notification_profile notification-profile
|
||||
pdmoid_att_xp_setup_state xp-setup-state
|
||||
pdmoid_att_xp_spooler_command_options xp-spooler-command-options
|
||||
|
||||
# Printer attributes
|
||||
#
|
||||
pdmoid_att_content_orientations_supported content-orientations-supported
|
||||
pdmoid_att_document_formats_supported document-formats-supported
|
||||
pdmoid_att_dt_pdm_command dt-pdm-command
|
||||
pdmoid_att_input_trays_medium input-trays-medium
|
||||
pdmoid_att_medium_source_sizes_supported medium-source-sizes-supported
|
||||
pdmoid_att_plexes_supported plexes-supported
|
||||
pdmoid_att_printer_model printer-model
|
||||
pdmoid_att_printer_name printer-name
|
||||
pdmoid_att_printer_resolutions_supported printer-resolutions-supported
|
||||
pdmoid_att_xp_embedded_formats_supported xp-embedded-formats-supported
|
||||
pdmoid_att_xp_listfonts_modes_supported xp-listfonts-modes-supported
|
||||
pdmoid_att_xp_page_attributes_supported xp-page-attributes-supported
|
||||
pdmoid_att_xp_raw_formats_supported xp-raw-formats-supported
|
||||
pdmoid_att_xp_setup_proviso xp-setup-proviso
|
||||
|
||||
# Shared Server and Printer attributes
|
||||
#
|
||||
pdmoid_att_document_attributes_supported document-attributes-supported
|
||||
pdmoid_att_job_attributes_supported job-attributes-supported
|
||||
|
||||
# Server attributes
|
||||
#
|
||||
pdmoid_att_locale locale
|
||||
pdmoid_att_multiple_documents_supported multiple-documents-supported
|
||||
|
||||
# content-orientation values
|
||||
#
|
||||
pdmoid_val_content_orientation_portrait portrait MS_DtPdmOid 1 Portrait
|
||||
pdmoid_val_content_orientation_landscape landscape MS_DtPdmOid 2 Landscape
|
||||
pdmoid_val_content_orientation_reverse_portrait reverse-portrait MS_DtPdmOid 3 Reverse Portrait
|
||||
pdmoid_val_content_orientation_reverse_landscape reverse-landscape MS_DtPdmOid 4 Reverse Landscape
|
||||
|
||||
# medium-size values
|
||||
#
|
||||
pdmoid_val_medium_size_iso_a0 iso-a0 MS_DtPdmOid 8 A0
|
||||
pdmoid_val_medium_size_iso_a1 iso-a1 MS_DtPdmOid 9 A1
|
||||
pdmoid_val_medium_size_iso_a2 iso-a2 MS_DtPdmOid 10 A2
|
||||
pdmoid_val_medium_size_iso_a3 iso-a3 MS_DtPdmOid 11 A3
|
||||
pdmoid_val_medium_size_iso_a4 iso-a4 MS_DtPdmOid 12 A4
|
||||
pdmoid_val_medium_size_iso_a5 iso-a5 MS_DtPdmOid 13 A5
|
||||
pdmoid_val_medium_size_iso_a6 iso-a6 MS_DtPdmOid 14 A6
|
||||
pdmoid_val_medium_size_iso_a7 iso-a7 MS_DtPdmOid 15 A7
|
||||
pdmoid_val_medium_size_iso_a8 iso-a8 MS_DtPdmOid 16 A8
|
||||
pdmoid_val_medium_size_iso_a9 iso-a9 MS_DtPdmOid 17 A9
|
||||
pdmoid_val_medium_size_iso_a10 iso-a10 MS_DtPdmOid 18 A10
|
||||
|
||||
pdmoid_val_medium_size_iso_b0 iso-b0 MS_DtPdmOid 19 B0
|
||||
pdmoid_val_medium_size_iso_b1 iso-b1 MS_DtPdmOid 20 B1
|
||||
pdmoid_val_medium_size_iso_b2 iso-b2 MS_DtPdmOid 21 B2
|
||||
pdmoid_val_medium_size_iso_b3 iso-b3 MS_DtPdmOid 22 B3
|
||||
pdmoid_val_medium_size_iso_b4 iso-b4 MS_DtPdmOid 23 B4
|
||||
pdmoid_val_medium_size_iso_b5 iso-b5 MS_DtPdmOid 24 B5
|
||||
pdmoid_val_medium_size_iso_b6 iso-b6 MS_DtPdmOid 25 B6
|
||||
pdmoid_val_medium_size_iso_b7 iso-b7 MS_DtPdmOid 26 B7
|
||||
pdmoid_val_medium_size_iso_b8 iso-b8 MS_DtPdmOid 27 B8
|
||||
pdmoid_val_medium_size_iso_b9 iso-b9 MS_DtPdmOid 28 B9
|
||||
pdmoid_val_medium_size_iso_b10 iso-b10 MS_DtPdmOid 29 B10
|
||||
|
||||
pdmoid_val_medium_size_na_letter na-letter MS_DtPdmOid 30 Letter
|
||||
pdmoid_val_medium_size_na_legal na-legal MS_DtPdmOid 31 Legal
|
||||
pdmoid_val_medium_size_executive executive MS_DtPdmOid 32 Executive
|
||||
pdmoid_val_medium_size_folio folio MS_DtPdmOid 33 Folio
|
||||
pdmoid_val_medium_size_invoice invoice MS_DtPdmOid 34 Invoice
|
||||
pdmoid_val_medium_size_ledger ledger MS_DtPdmOid 35 Ledger
|
||||
pdmoid_val_medium_size_quarto quarto MS_DtPdmOid 36 Quarto
|
||||
|
||||
pdmoid_val_medium_size_iso_c3 iso-c3 MS_DtPdmOid 37 C3
|
||||
pdmoid_val_medium_size_iso_c4 iso-c4 MS_DtPdmOid 38 C4
|
||||
pdmoid_val_medium_size_iso_c5 iso-c5 MS_DtPdmOid 39 C5
|
||||
pdmoid_val_medium_size_iso_c6 iso-c6 MS_DtPdmOid 40 C6
|
||||
pdmoid_val_medium_size_iso_designated_long iso-designated-long MS_DtPdmOid 41 Designated Long
|
||||
|
||||
pdmoid_val_medium_size_na_10x13_envelope na-10x13-envelope MS_DtPdmOid 42 10x13 Envelope
|
||||
pdmoid_val_medium_size_na_9x12_envelope na-9x12-envelope MS_DtPdmOid 43 9x12 Envelope
|
||||
pdmoid_val_medium_size_na_number_10_envelope na-number-10-envelope MS_DtPdmOid 44 #10 Envelope
|
||||
pdmoid_val_medium_size_na_7x9_envelope na-7x9-envelope MS_DtPdmOid 45 7x9 Envelope
|
||||
pdmoid_val_medium_size_na_9x11_envelope na-9x11-envelope MS_DtPdmOid 46 9x11 Envelope
|
||||
pdmoid_val_medium_size_na_10x14_envelope na-10x14-envelope MS_DtPdmOid 47 10x14 Envelope
|
||||
pdmoid_val_medium_size_na_number_9_envelope na-number-9-envelope MS_DtPdmOid 48 #9 Envelope
|
||||
pdmoid_val_medium_size_na_6x9_envelope na-6x9-envelope MS_DtPdmOid 74 6x9 Envelope
|
||||
pdmoid_val_medium_size_na_10x15_envelope na-10x15-envelope MS_DtPdmOid 75 10x15 Envelope
|
||||
pdmoid_val_medium_size_monarch_envelope monarch-envelope MS_DtPdmOid 49 Monarch Envelope
|
||||
|
||||
pdmoid_val_medium_size_a a MS_DtPdmOid 50 A
|
||||
pdmoid_val_medium_size_b b MS_DtPdmOid 51 B
|
||||
pdmoid_val_medium_size_c c MS_DtPdmOid 52 C
|
||||
pdmoid_val_medium_size_d d MS_DtPdmOid 53 D
|
||||
pdmoid_val_medium_size_e e MS_DtPdmOid 54 E
|
||||
|
||||
pdmoid_val_medium_size_jis_b0 jis-b0 MS_DtPdmOid 55 JIS B0
|
||||
pdmoid_val_medium_size_jis_b1 jis-b1 MS_DtPdmOid 56 JIS B1
|
||||
pdmoid_val_medium_size_jis_b2 jis-b2 MS_DtPdmOid 57 JIS B2
|
||||
pdmoid_val_medium_size_jis_b3 jis-b3 MS_DtPdmOid 58 JIS B3
|
||||
pdmoid_val_medium_size_jis_b4 jis-b4 MS_DtPdmOid 59 JIS B4
|
||||
pdmoid_val_medium_size_jis_b5 jis-b5 MS_DtPdmOid 60 JIS B5
|
||||
pdmoid_val_medium_size_jis_b6 jis-b6 MS_DtPdmOid 61 JIS B6
|
||||
pdmoid_val_medium_size_jis_b7 jis-b7 MS_DtPdmOid 62 JIS B7
|
||||
pdmoid_val_medium_size_jis_b8 jis-b8 MS_DtPdmOid 63 JIS B8
|
||||
pdmoid_val_medium_size_jis_b9 jis-b9 MS_DtPdmOid 64 JIS B9
|
||||
pdmoid_val_medium_size_jis_b10 jis-b10 MS_DtPdmOid 65 JIS B10
|
||||
|
||||
# plex values
|
||||
#
|
||||
pdmoid_val_plex_simplex simplex MS_DtPdmOid 5 Simplex
|
||||
pdmoid_val_plex_duplex duplex MS_DtPdmOid 6 Duplex
|
||||
pdmoid_val_plex_tumble tumble MS_DtPdmOid 7 Tumble
|
||||
|
||||
# tray values
|
||||
#
|
||||
pdmoid_val_input_tray_top top MS_DtPdmOid 66 Top
|
||||
pdmoid_val_input_tray_middle middle MS_DtPdmOid 67 Middle
|
||||
pdmoid_val_input_tray_bottom bottom MS_DtPdmOid 68 Bottom
|
||||
pdmoid_val_input_tray_envelope envelope MS_DtPdmOid 69 Envelope
|
||||
pdmoid_val_input_tray_manual manual MS_DtPdmOid 70 Manual
|
||||
pdmoid_val_input_tray_large_capacity large-capacity MS_DtPdmOid 71 Large Capacity
|
||||
pdmoid_val_input_tray_main main MS_DtPdmOid 72 Main
|
||||
pdmoid_val_input_tray_side side MS_DtPdmOid 73 Side
|
||||
|
||||
# notification profile values
|
||||
#
|
||||
pdmoid_val_event_report_job_completed event-report-job-completed
|
||||
pdmoid_val_delivery_method_electronic_mail electronic-mail
|
||||
|
||||
# xp-setup-proviso values
|
||||
#
|
||||
pdmoid_val_xp_setup_mandatory xp-setup-mandatory
|
||||
pdmoid_val_xp_setup_optional xp-setup-optional
|
||||
|
||||
# xp-setup-state values
|
||||
#
|
||||
pdmoid_val_xp_setup_ok xp-setup-ok
|
||||
pdmoid_val_xp_setup_incomplete xp-setup-incomplete
|
||||
|
||||
# xp-listfonts-mode values
|
||||
#
|
||||
pdmoid_val_xp_list_glyph_fonts xp-list-glyph-fonts
|
||||
pdmoid_val_xp_list_internal_printer_fonts xp-list-internal-printer-fonts
|
||||
133
cde/programs/dtpdm/PdmOidStrs.h
Normal file
133
cde/programs/dtpdm/PdmOidStrs.h
Normal file
@@ -0,0 +1,133 @@
|
||||
/* $XConsortium: PdmOidStrs.h /main/7 1996/08/12 18:42:57 cde-hp $ */
|
||||
/* This is an automatically-generated file. Do not edit. */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static int PdmOidStringMapCount = 117;
|
||||
|
||||
static const PdmOidStringMapEntry PdmOidStringMap[] = {
|
||||
{ "", 0, -1, -1, (const char*)NULL },
|
||||
{ "", 0, -1, -1, (const char*)NULL },
|
||||
{ "descriptor", 10, -1, -1, (const char*)NULL },
|
||||
{ "content-orientation", 19, -1, -1, (const char*)NULL },
|
||||
{ "copy-count", 10, -1, -1, (const char*)NULL },
|
||||
{ "default-printer-resolution", 26, -1, -1, (const char*)NULL },
|
||||
{ "default-input-tray", 18, -1, -1, (const char*)NULL },
|
||||
{ "default-medium", 14, -1, -1, (const char*)NULL },
|
||||
{ "document-format", 15, -1, -1, (const char*)NULL },
|
||||
{ "plex", 4, -1, -1, (const char*)NULL },
|
||||
{ "xp-listfonts-modes", 18, -1, -1, (const char*)NULL },
|
||||
{ "job-name", 8, -1, -1, (const char*)NULL },
|
||||
{ "job-owner", 9, -1, -1, (const char*)NULL },
|
||||
{ "notification-profile", 20, -1, -1, (const char*)NULL },
|
||||
{ "xp-setup-state", 14, -1, -1, (const char*)NULL },
|
||||
{ "xp-spooler-command-options", 26, -1, -1, (const char*)NULL },
|
||||
{ "content-orientations-supported", 30, -1, -1, (const char*)NULL },
|
||||
{ "document-formats-supported", 26, -1, -1, (const char*)NULL },
|
||||
{ "dt-pdm-command", 14, -1, -1, (const char*)NULL },
|
||||
{ "input-trays-medium", 18, -1, -1, (const char*)NULL },
|
||||
{ "medium-source-sizes-supported", 29, -1, -1, (const char*)NULL },
|
||||
{ "plexes-supported", 16, -1, -1, (const char*)NULL },
|
||||
{ "printer-model", 13, -1, -1, (const char*)NULL },
|
||||
{ "printer-name", 12, -1, -1, (const char*)NULL },
|
||||
{ "printer-resolutions-supported", 29, -1, -1, (const char*)NULL },
|
||||
{ "xp-embedded-formats-supported", 29, -1, -1, (const char*)NULL },
|
||||
{ "xp-listfonts-modes-supported", 28, -1, -1, (const char*)NULL },
|
||||
{ "xp-page-attributes-supported", 28, -1, -1, (const char*)NULL },
|
||||
{ "xp-raw-formats-supported", 24, -1, -1, (const char*)NULL },
|
||||
{ "xp-setup-proviso", 16, -1, -1, (const char*)NULL },
|
||||
{ "document-attributes-supported", 29, -1, -1, (const char*)NULL },
|
||||
{ "job-attributes-supported", 24, -1, -1, (const char*)NULL },
|
||||
{ "locale", 6, -1, -1, (const char*)NULL },
|
||||
{ "multiple-documents-supported", 28, -1, -1, (const char*)NULL },
|
||||
{ "portrait", 8, MS_DtPdmOid, 1, "Portrait" },
|
||||
{ "landscape", 9, MS_DtPdmOid, 2, "Landscape" },
|
||||
{ "reverse-portrait", 16, MS_DtPdmOid, 3, "Reverse Portrait" },
|
||||
{ "reverse-landscape", 17, MS_DtPdmOid, 4, "Reverse Landscape" },
|
||||
{ "iso-a0", 6, MS_DtPdmOid, 8, "A0" },
|
||||
{ "iso-a1", 6, MS_DtPdmOid, 9, "A1" },
|
||||
{ "iso-a2", 6, MS_DtPdmOid, 10, "A2" },
|
||||
{ "iso-a3", 6, MS_DtPdmOid, 11, "A3" },
|
||||
{ "iso-a4", 6, MS_DtPdmOid, 12, "A4" },
|
||||
{ "iso-a5", 6, MS_DtPdmOid, 13, "A5" },
|
||||
{ "iso-a6", 6, MS_DtPdmOid, 14, "A6" },
|
||||
{ "iso-a7", 6, MS_DtPdmOid, 15, "A7" },
|
||||
{ "iso-a8", 6, MS_DtPdmOid, 16, "A8" },
|
||||
{ "iso-a9", 6, MS_DtPdmOid, 17, "A9" },
|
||||
{ "iso-a10", 7, MS_DtPdmOid, 18, "A10" },
|
||||
{ "iso-b0", 6, MS_DtPdmOid, 19, "B0" },
|
||||
{ "iso-b1", 6, MS_DtPdmOid, 20, "B1" },
|
||||
{ "iso-b2", 6, MS_DtPdmOid, 21, "B2" },
|
||||
{ "iso-b3", 6, MS_DtPdmOid, 22, "B3" },
|
||||
{ "iso-b4", 6, MS_DtPdmOid, 23, "B4" },
|
||||
{ "iso-b5", 6, MS_DtPdmOid, 24, "B5" },
|
||||
{ "iso-b6", 6, MS_DtPdmOid, 25, "B6" },
|
||||
{ "iso-b7", 6, MS_DtPdmOid, 26, "B7" },
|
||||
{ "iso-b8", 6, MS_DtPdmOid, 27, "B8" },
|
||||
{ "iso-b9", 6, MS_DtPdmOid, 28, "B9" },
|
||||
{ "iso-b10", 7, MS_DtPdmOid, 29, "B10" },
|
||||
{ "na-letter", 9, MS_DtPdmOid, 30, "Letter" },
|
||||
{ "na-legal", 8, MS_DtPdmOid, 31, "Legal" },
|
||||
{ "executive", 9, MS_DtPdmOid, 32, "Executive" },
|
||||
{ "folio", 5, MS_DtPdmOid, 33, "Folio" },
|
||||
{ "invoice", 7, MS_DtPdmOid, 34, "Invoice" },
|
||||
{ "ledger", 6, MS_DtPdmOid, 35, "Ledger" },
|
||||
{ "quarto", 6, MS_DtPdmOid, 36, "Quarto" },
|
||||
{ "iso-c3", 6, MS_DtPdmOid, 37, "C3" },
|
||||
{ "iso-c4", 6, MS_DtPdmOid, 38, "C4" },
|
||||
{ "iso-c5", 6, MS_DtPdmOid, 39, "C5" },
|
||||
{ "iso-c6", 6, MS_DtPdmOid, 40, "C6" },
|
||||
{ "iso-designated-long", 19, MS_DtPdmOid, 41, "Designated Long" },
|
||||
{ "na-10x13-envelope", 17, MS_DtPdmOid, 42, "10x13 Envelope" },
|
||||
{ "na-9x12-envelope", 16, MS_DtPdmOid, 43, "9x12 Envelope" },
|
||||
{ "na-number-10-envelope", 21, MS_DtPdmOid, 44, "#10 Envelope" },
|
||||
{ "na-7x9-envelope", 15, MS_DtPdmOid, 45, "7x9 Envelope" },
|
||||
{ "na-9x11-envelope", 16, MS_DtPdmOid, 46, "9x11 Envelope" },
|
||||
{ "na-10x14-envelope", 17, MS_DtPdmOid, 47, "10x14 Envelope" },
|
||||
{ "na-number-9-envelope", 20, MS_DtPdmOid, 48, "#9 Envelope" },
|
||||
{ "na-6x9-envelope", 15, MS_DtPdmOid, 74, "6x9 Envelope" },
|
||||
{ "na-10x15-envelope", 17, MS_DtPdmOid, 75, "10x15 Envelope" },
|
||||
{ "monarch-envelope", 16, MS_DtPdmOid, 49, "Monarch Envelope" },
|
||||
{ "a", 1, MS_DtPdmOid, 50, "A" },
|
||||
{ "b", 1, MS_DtPdmOid, 51, "B" },
|
||||
{ "c", 1, MS_DtPdmOid, 52, "C" },
|
||||
{ "d", 1, MS_DtPdmOid, 53, "D" },
|
||||
{ "e", 1, MS_DtPdmOid, 54, "E" },
|
||||
{ "jis-b0", 6, MS_DtPdmOid, 55, "JIS B0" },
|
||||
{ "jis-b1", 6, MS_DtPdmOid, 56, "JIS B1" },
|
||||
{ "jis-b2", 6, MS_DtPdmOid, 57, "JIS B2" },
|
||||
{ "jis-b3", 6, MS_DtPdmOid, 58, "JIS B3" },
|
||||
{ "jis-b4", 6, MS_DtPdmOid, 59, "JIS B4" },
|
||||
{ "jis-b5", 6, MS_DtPdmOid, 60, "JIS B5" },
|
||||
{ "jis-b6", 6, MS_DtPdmOid, 61, "JIS B6" },
|
||||
{ "jis-b7", 6, MS_DtPdmOid, 62, "JIS B7" },
|
||||
{ "jis-b8", 6, MS_DtPdmOid, 63, "JIS B8" },
|
||||
{ "jis-b9", 6, MS_DtPdmOid, 64, "JIS B9" },
|
||||
{ "jis-b10", 7, MS_DtPdmOid, 65, "JIS B10" },
|
||||
{ "simplex", 7, MS_DtPdmOid, 5, "Simplex" },
|
||||
{ "duplex", 6, MS_DtPdmOid, 6, "Duplex" },
|
||||
{ "tumble", 6, MS_DtPdmOid, 7, "Tumble" },
|
||||
{ "top", 3, MS_DtPdmOid, 66, "Top" },
|
||||
{ "middle", 6, MS_DtPdmOid, 67, "Middle" },
|
||||
{ "bottom", 6, MS_DtPdmOid, 68, "Bottom" },
|
||||
{ "envelope", 8, MS_DtPdmOid, 69, "Envelope" },
|
||||
{ "manual", 6, MS_DtPdmOid, 70, "Manual" },
|
||||
{ "large-capacity", 14, MS_DtPdmOid, 71, "Large Capacity" },
|
||||
{ "main", 4, MS_DtPdmOid, 72, "Main" },
|
||||
{ "side", 4, MS_DtPdmOid, 73, "Side" },
|
||||
{ "event-report-job-completed", 26, -1, -1, (const char*)NULL },
|
||||
{ "electronic-mail", 15, -1, -1, (const char*)NULL },
|
||||
{ "xp-setup-mandatory", 18, -1, -1, (const char*)NULL },
|
||||
{ "xp-setup-optional", 17, -1, -1, (const char*)NULL },
|
||||
{ "xp-setup-ok", 11, -1, -1, (const char*)NULL },
|
||||
{ "xp-setup-incomplete", 19, -1, -1, (const char*)NULL },
|
||||
{ "xp-list-glyph-fonts", 19, -1, -1, (const char*)NULL },
|
||||
{ "xp-list-internal-printer-fonts", 30, -1, -1, (const char*)NULL }
|
||||
};
|
||||
522
cde/programs/dtpdm/PdmXp.c
Normal file
522
cde/programs/dtpdm/PdmXp.c
Normal file
@@ -0,0 +1,522 @@
|
||||
/* $XConsortium: PdmXp.c /main/4 1996/08/12 18:43:03 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/PdmXp.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 <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include "PdmXp.h"
|
||||
|
||||
#include <X11/Intrinsic.h>
|
||||
|
||||
typedef enum {
|
||||
PDMXP_JOB, PDMXP_DOC, PDMXP_PRINTER, PDMXP_SERVER,
|
||||
PDMXP_BAD_POOL /* should always be last in list */
|
||||
} PdmXpPoolIndex;
|
||||
|
||||
|
||||
/*
|
||||
* static function declarations
|
||||
*/
|
||||
static const char* PdmXpGetQualifier(PdmXp* me);
|
||||
static char* PdmXpBuildResourceName(PdmXp* me, PdmOid id_att);
|
||||
static XrmDatabase PdmXpLoadPool(PdmXp* me, XPAttributes type);
|
||||
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpNew
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Creates a new PdmXp instance structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* The new PdmXp instance structure.
|
||||
*
|
||||
*/
|
||||
PdmXp*
|
||||
PdmXpNew()
|
||||
{
|
||||
return (PdmXp*)XtCalloc(1, sizeof(PdmXp));
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpDelete
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Closes an existing Xp connection, and frees the passed
|
||||
* PdmXp instance structure.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*
|
||||
*/
|
||||
void
|
||||
PdmXpDelete(PdmXp* me)
|
||||
{
|
||||
PdmXpClose(me);
|
||||
XtFree((char*)me);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpOpen
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* This function opens the passed print display specifier and sets
|
||||
* the passed print context on the newly opened print display.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* If successful, the print display pointer is returned. If unable to
|
||||
* open the display, or if the display does not support the Xp
|
||||
* extension, NULL is returned.
|
||||
*
|
||||
*/
|
||||
Display*
|
||||
PdmXpOpen(PdmXp* me,
|
||||
char* display_spec,
|
||||
char* context_str)
|
||||
{
|
||||
/*
|
||||
* only maintain one connection
|
||||
*/
|
||||
PdmXpClose(me);
|
||||
/*
|
||||
* open the passed display spec
|
||||
*/
|
||||
me->display = XOpenDisplay(display_spec);
|
||||
if(me->display)
|
||||
{
|
||||
int error_base;
|
||||
int event_base;
|
||||
/*
|
||||
* check to see if the display is a print server
|
||||
*/
|
||||
if(XpQueryExtension(me->display, &event_base, &error_base))
|
||||
{
|
||||
/*
|
||||
* set the passed print context on the print display
|
||||
*/
|
||||
me->context = strtoul(context_str, (char**)NULL, 0);
|
||||
/*
|
||||
* load the resource DB qualifier
|
||||
*/
|
||||
PdmXpGetQualifier(me);
|
||||
}
|
||||
else
|
||||
{
|
||||
XCloseDisplay(me->display);
|
||||
me->display = (Display*)NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return me->display;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpClose
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Closes the print display.
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* None.
|
||||
*
|
||||
*/
|
||||
void
|
||||
PdmXpClose(PdmXp* me)
|
||||
{
|
||||
if(me->display)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < PDMXP_POOL_COUNT; i++)
|
||||
{
|
||||
if(me->pool[i] != (XrmDatabase)NULL)
|
||||
{
|
||||
XrmDestroyDatabase(me->pool[i]);
|
||||
me->pool[i] == (XrmDatabase)NULL;
|
||||
}
|
||||
}
|
||||
XCloseDisplay(me->display);
|
||||
me->display = NULL;
|
||||
me->context = (XPContext)NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpLoadPool
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
static XrmDatabase
|
||||
PdmXpLoadPool(PdmXp* me, XPAttributes type)
|
||||
{
|
||||
PdmXpPoolIndex i;
|
||||
/*
|
||||
* determine the index into the pool array based on the Xp pool type
|
||||
*/
|
||||
switch(type)
|
||||
{
|
||||
case XPJobAttr:
|
||||
i = PDMXP_JOB;
|
||||
break;
|
||||
case XPDocAttr:
|
||||
i = PDMXP_DOC;
|
||||
break;
|
||||
case XPPrinterAttr:
|
||||
i = PDMXP_PRINTER;
|
||||
break;
|
||||
case XPServerAttr:
|
||||
i = PDMXP_SERVER;
|
||||
break;
|
||||
default:
|
||||
return (XrmDatabase)NULL;
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* get the attributes from the X print server
|
||||
*/
|
||||
if(me->pool[i] == (XrmDatabase)NULL)
|
||||
{
|
||||
XTextProperty text_prop;
|
||||
char** list;
|
||||
int count;
|
||||
|
||||
text_prop.value = (unsigned char*)
|
||||
XpGetAttributes(me->display, me->context, type);
|
||||
text_prop.encoding = XInternAtom(me->display, "COMPOUND_TEXT", False);
|
||||
text_prop.format = 8;
|
||||
text_prop.nitems = strlen((char*)text_prop.value);
|
||||
if(Success ==
|
||||
XmbTextPropertyToTextList(me->display, &text_prop, &list, &count))
|
||||
{
|
||||
if(count > 0)
|
||||
me->pool[i] = XrmGetStringDatabase(list[0]);
|
||||
|
||||
XFreeStringList(list);
|
||||
}
|
||||
}
|
||||
|
||||
return me->pool[i];
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpGetQualifier
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
*
|
||||
*/
|
||||
static const char*
|
||||
PdmXpGetQualifier(PdmXp* me)
|
||||
{
|
||||
if(me->qualifier == (char*)NULL)
|
||||
{
|
||||
if(PdmXpLoadPool(me, XPPrinterAttr) != (XrmDatabase)NULL)
|
||||
{
|
||||
char* str_type;
|
||||
XrmValue value;
|
||||
|
||||
if(XrmGetResource(me->pool[PDMXP_PRINTER],
|
||||
"qualifier", "qualifier", &str_type, &value))
|
||||
{
|
||||
me->qualifier = XtNewString((char*)value.addr);
|
||||
me->qualifier_len = strlen(me->qualifier);
|
||||
}
|
||||
}
|
||||
}
|
||||
return me->qualifier;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpBuildResourceName
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* A new fully-qualified resource name. It is the caller's
|
||||
* responsibility to free the returned string by calling XtFree.
|
||||
*
|
||||
*/
|
||||
static char*
|
||||
PdmXpBuildResourceName(PdmXp* me, PdmOid id_att)
|
||||
{
|
||||
char* ptr;
|
||||
char* res_name;
|
||||
int oid_str_len;
|
||||
/*
|
||||
* allocate memory for the resource name
|
||||
*/
|
||||
oid_str_len = PdmOidStringLength(id_att);
|
||||
ptr = res_name =
|
||||
XtMalloc(me->qualifier_len + 1 + oid_str_len + 1);
|
||||
/*
|
||||
* build the resource name from the printer name and the string value
|
||||
* for the passed attribute id
|
||||
*/
|
||||
strncpy(ptr, me->qualifier, me->qualifier_len);
|
||||
ptr += me->qualifier_len;
|
||||
*ptr = '.';
|
||||
ptr += 1;
|
||||
strncpy(ptr, PdmOidString(id_att), oid_str_len);
|
||||
ptr += oid_str_len;
|
||||
*ptr = '\0';
|
||||
/*
|
||||
* return
|
||||
*/
|
||||
return res_name;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpGetValue
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* pdmoid_none if the attribute value is not found.
|
||||
*
|
||||
*/
|
||||
PdmOid
|
||||
PdmXpGetValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att)
|
||||
{
|
||||
const char* value;
|
||||
|
||||
value = PdmXpGetStringValue(me, type, id_att);
|
||||
|
||||
return PdmOidFromString(value);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpGetStringValue
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
* NULL if the attribute value is not found, or if the resource
|
||||
* representation type is not a string.
|
||||
*
|
||||
*/
|
||||
const char*
|
||||
PdmXpGetStringValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att)
|
||||
{
|
||||
char* res_name;
|
||||
char* str_type;
|
||||
XrmValue value;
|
||||
Bool found;
|
||||
|
||||
XrmDatabase pool;
|
||||
|
||||
pool = PdmXpLoadPool(me, type);
|
||||
if(pool == (XrmDatabase)NULL)
|
||||
return (const char*)NULL;
|
||||
|
||||
res_name = PdmXpBuildResourceName(me, id_att);
|
||||
found = XrmGetResource(pool, res_name, res_name, &str_type, &value);
|
||||
XtFree(res_name);
|
||||
|
||||
/*
|
||||
* return
|
||||
*/
|
||||
if(found)
|
||||
return (const char*)value.addr;
|
||||
else
|
||||
return (const char*)NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpSetValue
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
void
|
||||
PdmXpSetValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att,
|
||||
PdmOid id_val)
|
||||
{
|
||||
PdmXpSetStringValue(me, type, id_att, PdmOidString(id_val));
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpSetStringValue
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
void
|
||||
PdmXpSetStringValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att,
|
||||
const char* str_val)
|
||||
{
|
||||
char* res_name;
|
||||
|
||||
XrmDatabase pool;
|
||||
|
||||
pool = PdmXpLoadPool(me, type);
|
||||
if(pool == (XrmDatabase)NULL)
|
||||
return;
|
||||
|
||||
res_name = PdmXpBuildResourceName(me, id_att);
|
||||
XrmPutStringResource(&pool, res_name, (char*)str_val);
|
||||
XtFree(res_name);
|
||||
}
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Name: PdmXpUpdateAttributes
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
void
|
||||
PdmXpUpdateAttributes(PdmXp* me)
|
||||
{
|
||||
char fname[L_tmpnam];
|
||||
|
||||
if(tmpnam(fname))
|
||||
{
|
||||
int i;
|
||||
XrmDatabase pool;
|
||||
XPAttributes type;
|
||||
FILE* fp;
|
||||
struct stat stbuf;
|
||||
int retlen;
|
||||
char* data = NULL;
|
||||
int data_size = 0;
|
||||
XTextProperty text_prop;
|
||||
|
||||
for(i = 0; i < PDMXP_POOL_COUNT; i++)
|
||||
{
|
||||
if(me->pool[i] != (XrmDatabase)NULL)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case PDMXP_JOB:
|
||||
type = XPJobAttr;
|
||||
break;
|
||||
case PDMXP_DOC:
|
||||
type = XPDocAttr;
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* write out the attribute pool to a file Xrm DB
|
||||
*/
|
||||
XrmPutFileDatabase(me->pool[i], fname);
|
||||
/*
|
||||
* open the new file Xrm DB
|
||||
*/
|
||||
if(fp = fopen(fname, "r"))
|
||||
{
|
||||
/*
|
||||
* read the file to create a string Xrm DB
|
||||
*/
|
||||
fstat(fileno(fp), &stbuf);
|
||||
if(stbuf.st_size + 1 > data_size)
|
||||
{
|
||||
data_size = stbuf.st_size + 1;
|
||||
data = XtRealloc(data, data_size);
|
||||
}
|
||||
retlen = read(fileno(fp), data, stbuf.st_size);
|
||||
fclose(fp);
|
||||
unlink(fname);
|
||||
data[retlen] = '\0';
|
||||
/*
|
||||
* convert to compund text
|
||||
*/
|
||||
if(Success ==
|
||||
XmbTextListToTextProperty(me->display,
|
||||
&data, 1,
|
||||
XCompoundTextStyle,
|
||||
&text_prop))
|
||||
{
|
||||
/*
|
||||
* use the string Xrm DB to update the Xp server
|
||||
*/
|
||||
XpSetAttributes(me->display, me->context,
|
||||
type, (char*)text_prop.value,
|
||||
XPAttrMerge);
|
||||
if(text_prop.value)
|
||||
XFree(text_prop.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
XtFree(data);
|
||||
}
|
||||
}
|
||||
71
cde/programs/dtpdm/PdmXp.h
Normal file
71
cde/programs/dtpdm/PdmXp.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* $XConsortium: PdmXp.h /main/4 1996/08/12 18:43:09 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/PdmXp.h
|
||||
*/
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
#ifndef _PdmXp_h
|
||||
#define _PdmXp_h
|
||||
|
||||
#include <X11/extensions/Print.h>
|
||||
|
||||
#include "PdmOid.h"
|
||||
|
||||
#define PDMXP_POOL_COUNT 4
|
||||
|
||||
/*
|
||||
* PdmXp instance structure
|
||||
*/
|
||||
typedef struct _PdmXp
|
||||
{
|
||||
/*
|
||||
* print server connection info
|
||||
*/
|
||||
Display* display;
|
||||
XPContext context;
|
||||
/*
|
||||
* printing attribute pools
|
||||
*/
|
||||
XrmDatabase pool[PDMXP_POOL_COUNT];
|
||||
/*
|
||||
* qualifier for retrieving attributes
|
||||
*/
|
||||
char* qualifier;
|
||||
int qualifier_len;
|
||||
|
||||
} PdmXp;
|
||||
|
||||
/*
|
||||
* PdmXp public methods
|
||||
*/
|
||||
extern PdmXp* PdmXpNew();
|
||||
extern Display* PdmXpOpen(PdmXp* me,
|
||||
char* display_spec,
|
||||
char* context_str);
|
||||
extern void PdmXpClose(PdmXp* me);
|
||||
extern void PdmXpDelete(PdmXp* me);
|
||||
extern PdmOid PdmXpGetValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att);
|
||||
extern const char* PdmXpGetStringValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att);
|
||||
extern void PdmXpSetValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att,
|
||||
PdmOid id_val);
|
||||
extern void PdmXpSetStringValue(PdmXp* me,
|
||||
XPAttributes type,
|
||||
PdmOid id_att,
|
||||
const char* str_val);
|
||||
extern void PdmXpUpdateAttributes(PdmXp* me);
|
||||
|
||||
|
||||
#endif /* _PdmXp_h */
|
||||
3306
cde/programs/dtpdm/PrinterBox.c
Normal file
3306
cde/programs/dtpdm/PrinterBox.c
Normal file
File diff suppressed because it is too large
Load Diff
26
cde/programs/dtpdm/PrinterBox.h
Normal file
26
cde/programs/dtpdm/PrinterBox.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/* $XConsortium: PrinterBox.h /main/2 1996/08/12 18:43:20 cde-hp $ */
|
||||
/*
|
||||
* dtpdm/PrinterBox.h
|
||||
*/
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
#ifndef _pdmPrinterBox_h
|
||||
#define _pdmPrinterBox_h
|
||||
|
||||
#include "MainWindow.h"
|
||||
|
||||
/*
|
||||
* public PdmPrinterBox methods
|
||||
*/
|
||||
extern PdmSetupBox* PdmPrinterBoxNew(void);
|
||||
|
||||
|
||||
#endif /* _pdmPrinterBox_h */
|
||||
|
||||
194
cde/programs/dtpdm/dtpdm.msg
Normal file
194
cde/programs/dtpdm/dtpdm.msg
Normal file
@@ -0,0 +1,194 @@
|
||||
$ *************************************<+>*************************************
|
||||
$ *****************************************************************************
|
||||
$ **
|
||||
$ ** File: dtpdm.msg
|
||||
$ **
|
||||
$ ** Project: DT
|
||||
$ **
|
||||
$ ** Description:
|
||||
$ ** -----------
|
||||
$ ** This file is the source for the message catalog for the Dt Print
|
||||
$ ** Dialog Manager.
|
||||
$ **
|
||||
$ **
|
||||
$ *****************************************************************************
|
||||
$ **
|
||||
$ ** (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.
|
||||
$ **
|
||||
$ *****************************************************************************
|
||||
$ **
|
||||
$ **
|
||||
$ ** $XConsortium: dtpdm.msg /main/6 1996/08/12 18:43:25 cde-hp $
|
||||
$ *****************************************************************************
|
||||
$ *****************************************************************************
|
||||
|
||||
$set 1
|
||||
$ *************************************************************
|
||||
$ ** **
|
||||
$ ** DtPdm OID messages **
|
||||
$ ** **
|
||||
$ *************************************************************
|
||||
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message numbers 1-4 appear in the page orientation option menu
|
||||
$ and indicate how the resulting printed page should be
|
||||
$ oriented.
|
||||
$
|
||||
$ */
|
||||
1 Portrait
|
||||
2 Landscape
|
||||
3 Reverse Portrait
|
||||
4 Reverse Landscape
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message numbers 5-7 appear in the page sides option menu
|
||||
$ and indicate which sides of the page should be printed.
|
||||
$
|
||||
$ Simplex -> print one side only
|
||||
$ Duplex -> print both sides such that the resulting output is
|
||||
$ intended for the reader to turn pages in a
|
||||
$ horizontal direction; left to right (like an
|
||||
$ English book) or right to left.
|
||||
$ Tumble -> print both sides such that the resulting output is
|
||||
$ intended for the reader to turn pages in a
|
||||
$ vertical direction; top to bottom or bottom to top
|
||||
$
|
||||
$ */
|
||||
5 Simplex
|
||||
6 Duplex
|
||||
7 Tumble
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message numbers 8-65 appear in the page sizes list box
|
||||
$ and indicate the size of the printed page.
|
||||
$
|
||||
$ */
|
||||
8 ISO A0
|
||||
9 ISO A1
|
||||
10 ISO A2
|
||||
11 ISO A3
|
||||
12 ISO A4
|
||||
13 ISO A5
|
||||
14 ISO A6
|
||||
15 ISO A7
|
||||
16 ISO A8
|
||||
17 ISO A9
|
||||
18 ISO A10
|
||||
19 ISO B0
|
||||
20 ISO B1
|
||||
21 ISO B2
|
||||
22 ISO B3
|
||||
23 ISO B4
|
||||
24 ISO B5
|
||||
25 ISO B6
|
||||
26 ISO B7
|
||||
27 ISO B8
|
||||
28 ISO B9
|
||||
29 ISO B10
|
||||
30 Letter
|
||||
31 Legal
|
||||
32 Executive
|
||||
33 Folio
|
||||
34 Invoice
|
||||
35 Ledger
|
||||
36 Quarto
|
||||
37 ISO C3
|
||||
38 ISO C4
|
||||
39 ISO C5
|
||||
40 ISO C6
|
||||
41 ISO Designated Long
|
||||
42 10x13 Envelope
|
||||
43 9x12 Envelope
|
||||
44 #10 Envelope
|
||||
45 7x9 Envelope
|
||||
46 9x11 Envelope
|
||||
47 10x14 Envelope
|
||||
48 #9 Envelope
|
||||
49 Monarch Envelope
|
||||
50 A
|
||||
51 B
|
||||
52 C
|
||||
53 D
|
||||
54 E
|
||||
55 JIS B0
|
||||
56 JIS B1
|
||||
57 JIS B2
|
||||
58 JIS B3
|
||||
59 JIS B4
|
||||
60 JIS B5
|
||||
61 JIS B6
|
||||
62 JIS B7
|
||||
63 JIS B8
|
||||
64 JIS B9
|
||||
65 JIS B10
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message numbers 66-73 appear in the tray options menu
|
||||
$ and indicate the printer tray from which media will be
|
||||
$ obtained.
|
||||
$
|
||||
$ */
|
||||
66 Top
|
||||
67 Middle
|
||||
68 Bottom
|
||||
69 Envelope
|
||||
70 Manual
|
||||
71 Large Capacity
|
||||
72 Main
|
||||
73 Side
|
||||
|
||||
|
||||
$set 2
|
||||
$ *************************************************************
|
||||
$ ** **
|
||||
$ ** DtPdm general messages **
|
||||
$ ** **
|
||||
$ *************************************************************
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message number 1 is an error message indicating that the X
|
||||
$ window system does not support the current locale.
|
||||
$
|
||||
$ */
|
||||
1 Locale unsupported by X
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message number 2 appears in the tray options menu and
|
||||
$ indicates no preference as to the printer tray from which
|
||||
$ media will be obtained.
|
||||
$
|
||||
$ */
|
||||
2 Auto-select
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message number 3 appears in the page size list box and
|
||||
$ indicates that the default page size will be used.
|
||||
$
|
||||
$ */
|
||||
3 Default
|
||||
$ /* NL_COMMENT
|
||||
$ Attention Translator:
|
||||
$
|
||||
$ Message numbers 4-6 appear ultimately in the Dt PDM Daemon log
|
||||
$ file, and indicate that a syntax error was found parsing an
|
||||
$ attribute. Do not localize the words "medium-source-sizes",
|
||||
$ "input-trays-medium" or "document format".
|
||||
$
|
||||
$ */
|
||||
4 Syntax error parsing medium-source-sizes
|
||||
5 Syntax error parsing input-trays-medium
|
||||
6 Syntax error parsing document format
|
||||
42
cde/programs/dtpdm/landscap.pm
Normal file
42
cde/programs/dtpdm/landscap.pm
Normal file
@@ -0,0 +1,42 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: landscap.pm /main/3 1996/08/12 18:43:47 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * landscap [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"28 22 3 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s background m black c #969696969696",
|
||||
"X s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ....",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX ...",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX X ..",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX X ..",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX XX .",
|
||||
" XXXXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXXXXX XXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXX XXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXX X XXXXXXXXXXXX ",
|
||||
" XXXXXXXXXX X XXXXXXXXXXXX ",
|
||||
" XXXXXXXXX XXX XXXXXXXXXXX ",
|
||||
" XXXXXXXXX XXX XXXXXXXXXXX ",
|
||||
" XXXXXXXX XXXXXXXXXX ",
|
||||
" XXXXXXXX XXXXX XXXXXXXXXX ",
|
||||
" XXXXXXXX XXXXX XXXXXXXXXX ",
|
||||
" XXXXXXX XXXXXX XXXXXXXXX ",
|
||||
" XXXXXX XXX XXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" "};
|
||||
35
cde/programs/dtpdm/lduplex.pm
Normal file
35
cde/programs/dtpdm/lduplex.pm
Normal file
@@ -0,0 +1,35 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: lduplex.pm /main/3 1996/08/12 18:43:51 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * lduplex [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"45 16 2 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..................... ..................... ",
|
||||
" ..................... ..................... ",
|
||||
" .. .. .. .... ",
|
||||
" ..................... ..................... ",
|
||||
" .. .... .. ... ",
|
||||
" ..................... ..................... ",
|
||||
" ..................... .. ............ ",
|
||||
" .. .... ..................... ",
|
||||
" ..................... ..................... ",
|
||||
" .. ... .. .... ",
|
||||
" ..................... ..................... ",
|
||||
" .. ............ .. ...... ",
|
||||
" ..................... ..................... ",
|
||||
" ..................... ..................... ",
|
||||
" "};
|
||||
35
cde/programs/dtpdm/lsimplex.pm
Normal file
35
cde/programs/dtpdm/lsimplex.pm
Normal file
@@ -0,0 +1,35 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: lsimplex.pm /main/3 1996/08/12 18:43:56 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * lsimplex [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"23 16 2 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" .. .. ",
|
||||
" ..................... ",
|
||||
" .. .... ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" .. .... ",
|
||||
" ..................... ",
|
||||
" .. ... ",
|
||||
" ..................... ",
|
||||
" .. ............ ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" "};
|
||||
50
cde/programs/dtpdm/ltumble.pm
Normal file
50
cde/programs/dtpdm/ltumble.pm
Normal file
@@ -0,0 +1,50 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: ltumble.pm /main/3 1996/08/12 18:44:01 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * ltumble [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"23 31 2 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" .. .. ",
|
||||
" ..................... ",
|
||||
" .. .... ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" .. .... ",
|
||||
" ..................... ",
|
||||
" .. ... ",
|
||||
" ..................... ",
|
||||
" .. ............ ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" .. .... ",
|
||||
" ..................... ",
|
||||
" .. ... ",
|
||||
" ..................... ",
|
||||
" .. ............ ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" .. .... ",
|
||||
" ..................... ",
|
||||
" .. ...... ",
|
||||
" ..................... ",
|
||||
" ..................... ",
|
||||
" "};
|
||||
42
cde/programs/dtpdm/pduplex.pm
Normal file
42
cde/programs/dtpdm/pduplex.pm
Normal file
@@ -0,0 +1,42 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: pduplex.pm /main/3 1996/08/12 18:44:06 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * pduplex [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"31 23 2 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .............. .............. ",
|
||||
" .............. .............. ",
|
||||
" .............. .............. ",
|
||||
" .. .. .. .. ",
|
||||
" .............. .............. ",
|
||||
" .. .... .. .... ",
|
||||
" .............. .............. ",
|
||||
" .. ... .. ... ",
|
||||
" .............. .............. ",
|
||||
" .............. .. ..... ",
|
||||
" .............. .............. ",
|
||||
" .. .. .............. ",
|
||||
" .............. .. ... ",
|
||||
" .. ... .............. ",
|
||||
" .............. .. ... ",
|
||||
" .. ... .............. ",
|
||||
" .............. .. ........ ",
|
||||
" .............. .............. ",
|
||||
" .............. .............. ",
|
||||
" .............. .............. ",
|
||||
" .............. .............. ",
|
||||
" "};
|
||||
48
cde/programs/dtpdm/portrait.pm
Normal file
48
cde/programs/dtpdm/portrait.pm
Normal file
@@ -0,0 +1,48 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: portrait.pm /main/3 1996/08/12 18:44:11 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * portrait [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"22 28 3 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s background m black c #969696969696",
|
||||
"X s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" .....",
|
||||
" XXXXXXXXXXXXXXX ....",
|
||||
" XXXXXXXXXXXXXXX X ..",
|
||||
" XXXXXXXXXXXXXXX XXX .",
|
||||
" XXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXX X XXXXXXXX ",
|
||||
" XXXXXXXX X XXXXXXXX ",
|
||||
" XXXXXXX XXX XXXXXXX ",
|
||||
" XXXXXXX XXX XXXXXXX ",
|
||||
" XXXXXX XXXXXX ",
|
||||
" XXXXXX XXXXX XXXXXX ",
|
||||
" XXXXXX XXXXX XXXXXX ",
|
||||
" XXXXX XXXXXX XXXXX ",
|
||||
" XXXX XXX XXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" "};
|
||||
42
cde/programs/dtpdm/psimplex.pm
Normal file
42
cde/programs/dtpdm/psimplex.pm
Normal file
@@ -0,0 +1,42 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: psimplex.pm /main/3 1996/08/12 18:44:16 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * psimplex [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"16 23 2 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .. .. ",
|
||||
" .............. ",
|
||||
" .. .... ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .. .. ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" "};
|
||||
63
cde/programs/dtpdm/ptumble.pm
Normal file
63
cde/programs/dtpdm/ptumble.pm
Normal file
@@ -0,0 +1,63 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: ptumble.pm /main/3 1996/08/12 18:44:21 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * ptumble [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"16 44 2 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .. .. ",
|
||||
" .............. ",
|
||||
" .. .... ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .. .. ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .. .. ",
|
||||
" .............. ",
|
||||
" .. .. ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .. .... ",
|
||||
" .............. ",
|
||||
" .. ... ",
|
||||
" .............. ",
|
||||
" .. ....... ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" "};
|
||||
42
cde/programs/dtpdm/rlandsca.pm
Normal file
42
cde/programs/dtpdm/rlandsca.pm
Normal file
@@ -0,0 +1,42 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: rlandsca.pm /main/3 1996/08/12 18:44:25 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
static char * rlandscap [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"28 22 3 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s background m black c #969696969696",
|
||||
"X s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" ....",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX ...",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX X ..",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX X ..",
|
||||
" XXXXXXXXXXXXXXXXXXXXXX XX .",
|
||||
" XXXXXX XXX XXXX ",
|
||||
" XXXXXXX XXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXX XXXXX XXXXXXXXXX ",
|
||||
" XXXXXXXX XXXXX XXXXXXXXXX ",
|
||||
" XXXXXXXX XXXXXXXXXX ",
|
||||
" XXXXXXXXX XXX XXXXXXXXXXX ",
|
||||
" XXXXXXXXX XXX XXXXXXXXXXX ",
|
||||
" XXXXXXXXXX X XXXXXXXXXXXX ",
|
||||
" XXXXXXXXXX X XXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXX XXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXX XXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXX XXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXX ",
|
||||
" "};
|
||||
47
cde/programs/dtpdm/rportrai.pm
Normal file
47
cde/programs/dtpdm/rportrai.pm
Normal file
@@ -0,0 +1,47 @@
|
||||
/* XPM */
|
||||
/* $XConsortium: rportrai.pm /main/3 1996/08/12 18:44:30 cde-hp $ */
|
||||
/*
|
||||
* (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.
|
||||
*/
|
||||
static char * rportrait [] = {
|
||||
/* width height ncolors cpp [x_hot y_hot] */
|
||||
"22 28 3 1 0 0",
|
||||
/* colors */
|
||||
" s iconColor1 m black c black",
|
||||
". s background m black c #969696969696",
|
||||
"X s iconColor2 m white c white",
|
||||
/* pixels */
|
||||
" .....",
|
||||
" XXXXXXXXXXXXXXX ....",
|
||||
" XXXXXXXXXXXXXXX X ..",
|
||||
" XXXXXXXXXXXXXXX XXX .",
|
||||
" XXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXX XXX XXXX ",
|
||||
" XXXXX XXXXXX XXXXX ",
|
||||
" XXXXXX XXXXX XXXXXX ",
|
||||
" XXXXXX XXXXX XXXXXX ",
|
||||
" XXXXXX XXXXXX ",
|
||||
" XXXXXXX XXX XXXXXXX ",
|
||||
" XXXXXXX XXX XXXXXXX ",
|
||||
" XXXXXXXX X XXXXXXXX ",
|
||||
" XXXXXXXX X XXXXXXXX ",
|
||||
" XXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXXX XXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" XXXXXXXXXXXXXXXXXXXX ",
|
||||
" "};
|
||||
Reference in New Issue
Block a user