Initial import of the CDE 2.1.30 sources from the Open Group.

This commit is contained in:
Peter Howkins
2012-03-10 18:21:40 +00:00
commit 83b6996daa
18978 changed files with 3945623 additions and 0 deletions

View 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

View 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
View 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));
}
}

View 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
View 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;
}

View 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, &current_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;
}

View 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 */

View 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 */

View 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

File diff suppressed because it is too large Load Diff

200
cde/programs/dtpdm/PdmOid.h Normal file
View 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 */

View 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;

View 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

View 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
View 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);
}
}

View 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 */

File diff suppressed because it is too large Load Diff

View 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 */

View 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

View 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 ",
" "};

View 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 */
" ",
" ..................... ..................... ",
" ..................... ..................... ",
" .. .. .. .... ",
" ..................... ..................... ",
" .. .... .. ... ",
" ..................... ..................... ",
" ..................... .. ............ ",
" .. .... ..................... ",
" ..................... ..................... ",
" .. ... .. .... ",
" ..................... ..................... ",
" .. ............ .. ...... ",
" ..................... ..................... ",
" ..................... ..................... ",
" "};

View 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 */
" ",
" ..................... ",
" ..................... ",
" .. .. ",
" ..................... ",
" .. .... ",
" ..................... ",
" ..................... ",
" .. .... ",
" ..................... ",
" .. ... ",
" ..................... ",
" .. ............ ",
" ..................... ",
" ..................... ",
" "};

View 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 */
" ",
" ..................... ",
" ..................... ",
" .. .. ",
" ..................... ",
" .. .... ",
" ..................... ",
" ..................... ",
" .. .... ",
" ..................... ",
" .. ... ",
" ..................... ",
" .. ............ ",
" ..................... ",
" ..................... ",
" ",
" ..................... ",
" ..................... ",
" .. .... ",
" ..................... ",
" .. ... ",
" ..................... ",
" .. ............ ",
" ..................... ",
" ..................... ",
" .. .... ",
" ..................... ",
" .. ...... ",
" ..................... ",
" ..................... ",
" "};

View 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 */
" ",
" .............. .............. ",
" .............. .............. ",
" .............. .............. ",
" .. .. .. .. ",
" .............. .............. ",
" .. .... .. .... ",
" .............. .............. ",
" .. ... .. ... ",
" .............. .............. ",
" .............. .. ..... ",
" .............. .............. ",
" .. .. .............. ",
" .............. .. ... ",
" .. ... .............. ",
" .............. .. ... ",
" .. ... .............. ",
" .............. .. ........ ",
" .............. .............. ",
" .............. .............. ",
" .............. .............. ",
" .............. .............. ",
" "};

View 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 ",
" "};

View 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 */
" ",
" .............. ",
" .............. ",
" .............. ",
" .. .. ",
" .............. ",
" .. .... ",
" .............. ",
" .. ... ",
" .............. ",
" .............. ",
" .............. ",
" .. .. ",
" .............. ",
" .. ... ",
" .............. ",
" .. ... ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" "};

View 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 */
" ",
" .............. ",
" .............. ",
" .............. ",
" .. .. ",
" .............. ",
" .. .... ",
" .............. ",
" .. ... ",
" .............. ",
" .............. ",
" .............. ",
" .. .. ",
" .............. ",
" .. ... ",
" .............. ",
" .. ... ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" ",
" .............. ",
" .............. ",
" .............. ",
" .. .. ",
" .............. ",
" .. .. ",
" .............. ",
" .. ... ",
" .............. ",
" .............. ",
" .. ... ",
" .............. ",
" .. .... ",
" .............. ",
" .. ... ",
" .............. ",
" .. ....... ",
" .............. ",
" .............. ",
" .............. ",
" "};

View 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 ",
" "};

View 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 ",
" "};