/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* gos720 src/gos/2d/XTOP_R7/lib/libXaw/include/X11/Xaw/PrintSP.h 1.1     */
/*                                                                        */
/* Licensed Materials - Property of IBM                                   */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2006                   */
/* All Rights Reserved                                                    */
/*                                                                        */
/* US Government Users Restricted Rights - Use, duplication or            */
/* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.      */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* SCCSID_BEGIN_TAG                                                    */
/* @(#)14  1.1  src/gos/2d/XTOP_R7/lib/libXaw/include/X11/Xaw/PrintSP.h, xsample, gos720 8/22/06 22:47:28 */
/* SCCSID_END_TAG                                                      */
/* $Xorg: PrintSP.h,v 1.1 2003/07/11 19:46:06 gisburn Exp $ */
/******************************************************************************
 ******************************************************************************
 **
 ** (c) Copyright 2003 Danny Backx <danny.backx@skynet.be>
 ** (c) Copyright 2003-2004 Roland Mainz <roland.mainz@nrubsig.org>
 ** 
 ** Permission is hereby granted, free of charge, to any person obtaining a copy
 ** of this software and associated documentation files (the "Software"), to deal
 ** in the Software without restriction, including without limitation the rights
 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 ** copies of the Software, and to permit persons to whom the Software is
 ** furnished to do so, subject to the following conditions:
 **
 ** The above copyright notice and this permission notice shall be included in
 ** all copies or substantial portions of the Software.
 **
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 ** COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 ** IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 ** CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 **
 ** Except as contained in this notice, the names of the copyright holders shall
 ** not be used in advertising or otherwise to promote the sale, use or other
 ** dealings in this Software without prior written authorization from said
 ** copyright holders.
 **
 ******************************************************************************
 *****************************************************************************/

#ifndef _XAW_PRINTSP_H
#define _XAW_PRINTSP_H 1

#include <X11/CoreP.h>
#include <X11/ShellP.h>

_XFUNCPROTOBEGIN

/* New fields for the XawPrintShell widget class record */

typedef struct {
    XtPointer       extension;          /* pointer to extension record      */
} XawPrintShellClassPart;

typedef struct XawPrintShellClassRec {
    CoreClassPart              core_class;
    CompositeClassPart         composite_class;
    ShellClassPart             shell_class;
    WMShellClassPart           wm_shell_class;
    VendorShellClassPart       vendor_shell_class;
    TopLevelShellClassPart     top_level_shell_class;
    ApplicationShellClassPart  application_shell_class;
    XawPrintShellClassPart     print_shell_class;
} XawPrintShellClassRec;

extern XawPrintShellClassRec xawPrintShellClassRec;

/* New fields for the XawPrint shell widget */

typedef struct {
    XtCallbackList               start_job_callback,
                                 end_job_callback,
                                 doc_setup_callback,
                                 page_setup_callback;
    XtEnum                       layoutmode; /* see XawPrintConfigureLayoutMode */
    unsigned short               page_width,
                                 page_height;
    Dimension                    min_x,
                                 min_y,
                                 max_x,
                                 max_y;
    unsigned int                 curr_doc_num_in_job,  /* Current document number in job */
                                 curr_page_num_in_doc, /* Current page number in doc */
                                 curr_page_num_in_job; /* Current page number in job */
    unsigned short               default_pixmap_resolution;
    long                         print_resolution;
    Boolean                      last_page_in_doc;
    Boolean                      last_page_in_job;
} XawPrintShellPart;

typedef struct XawPrintShellRec {
    CorePart              core;
    CompositePart         composite;
    ShellPart             shell;
    WMShellPart           wm;
    VendorShellPart       vendor;
    TopLevelShellPart     topLevel;
    ApplicationShellPart  application;
    XawPrintShellPart     print;
} XawPrintShellRec;
extern WidgetClass xawPrintShellWidgetClass;

#define PS_StartJobCallback(w) \
    (((XawPrintShellWidget) (w))->print.start_job_callback)
#define PS_EndJobCallback(w) \
    (((XawPrintShellWidget) (w))->print.end_job_callback)
#define PS_DocSetupCallback(w) \
    (((XawPrintShellWidget) (w))->print.doc_setup_callback)
#define PS_PageSetupCallback(w) \
    (((XawPrintShellWidget) (w))->print.page_setup_callback)
#define PS_LayoutMode(w) \
    (((XawPrintShellWidget) (w))->print.layoutmode)
#define PS_PageWidth(w) \
    (((XawPrintShellWidget) (w))->print.page_width)
#define PS_PageHeight(w) \
    (((XawPrintShellWidget) (w))->print.page_height)
#define PS_MinX(w) \
    (((XawPrintShellWidget) (w))->print.min_x)
#define PS_MinY(w) \
    (((XawPrintShellWidget) (w))->print.min_y)
#define PS_MaxX(w) \
    (((XawPrintShellWidget) (w))->print.max_x)
#define PS_MaxY(w) \
    (((XawPrintShellWidget) (w))->print.max_y)
#define PS_CurrDocNumInJob(w) \
    (((XawPrintShellWidget) (w))->print.curr_doc_num_in_job)
#define PS_CurrPageNumInDoc(w) \
    (((XawPrintShellWidget) (w))->print.curr_page_num_in_doc)
#define PS_CurrPageNumInJob(w) \
    (((XawPrintShellWidget) (w))->print.curr_page_num_in_job)
#define PS_DefaultPixmapResolution(w) \
    (((XawPrintShellWidget) (w))->print.default_pixmap_resolution)
#define PS_PrintResolution(w) \
    (((XawPrintShellWidget) (w))->print.print_resolution)
#define PS_LastPageInDoc(w) \
    (((XawPrintShellWidget) (w))->print.last_page_in_doc)
#define PS_LastPageInJob(w) \
    (((XawPrintShellWidget) (w))->print.last_page_in_job)

_XFUNCPROTOEND

#endif /* !_XAW_PRINTSP_H */

