PpPrintWidget()

Print a widget

Synopsis:

void PpPrintWidget( PpPrintContext_t *pc,
                    PtWidget_t *widget,
                    PhPoint_t const *trans,
                    PhRect_t const *clip_rect,
                    unsigned long resize );

Arguments:

pc
A print context obtained via PpCreatePC() and initialized via PpSetPC() and PpStartJob().
widget
The widget to be printed. This widget doesn't need to be realized to be printed and won't be clipped by its parent while printing.
trans
If non-NULL, this argument points to a PhPoint_t structure that's used to set the print context's offsets. These offsets define the amounts by which to translate widgets when drawing them into the print context.

Specifying a translation equal to the position of the widget makes the widget print at 0,0 on the printed output.

clip_rect
If non-NULL, a pointer to a PhRect_t structure that defines the rectangle to be clipped to.

Note: This isn't implemented yet; set clip_rect to NULL.

resize
A value that indicates any special resizing to be done:

Library:

ph

Description:

This function prints the specified widget using the provided print context. The widget doesn't need to be realized in order to be printed.

Examples:

#include <Ph.h>
#include <Pt.h>

int
main()
{
    int              n;
    int              do_preview_only = 1;
    PhArea_t         area, sev_area = {{ 0,0 },{400,400}};
    PpPrintContext_t *pc;
    PtArg_t          args[10];
    PtWidget_t       *window, *button;
    PhDim_t          dim = { 750, 1000 };

    PtInit( NULL );
    pc = PpCreatePC();

    /* Set override on print context to do preview mode only */
       PpSetPC( pc, Pp_PC_DO_PREVIEW, &do_preview_only, 0 );

    PpStartJob( pc );

    PtSetArg( &args[0], Pt_ARG_AREA, &sev_area, 0 );
    window = PtCreateWidget( PtWindow, Pt_NO_PARENT, 1, args );

    n = 0;
    PtSetArg( &args[n++], Pt_ARG_AREA, &sev_area, 0 );
    PtSetArg( &args[n++], Pt_ARG_FILL_COLOR, Pg_BLUE, 0);
    PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, "Test Button", 0 );
    button = PtCreateWidget( PtButton, Pt_DEFAULT_PARENT, n, args );

    PtRealizeWidget( window );

    PpContinueJob( pc );

    PtWidgetArea( button, &area);

    PpSetCanvas( pc, dim );
    PpPrintWidget( pc, button, &area.pos, NULL, Pt_PP_NO_RESIZE );

    PpEndJob( pc );

    PtMainLoop();
    return EXIT_SUCCESS;
}

Classification:

Photon

Safety:
Interrupt handler No
Signal handler No
Thread No

See also:

PhPoint_t, PhRect_t, PpContinueJob(), PpCreatePC(), PpEndJob(), PpGetPC(), PpPrintContext_t, PpPrintNewPage(), PpReleasePC(), PpSetPC(), PpStartJob(), PpSuspendJob()

Printing in the Photon Programmer's Guide