Ignore:
Timestamp:
Aug 25, 2006, 7:21:30 PM (15 years ago)
Author:
Eugene Romanenko
Message:

printer dialog and basic print features completed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/SOURCE/gui/print.cpp

    r96 r102  
    6969#define HIGH_IMAGE_ZOOM     3.0
    7070#define PS_PRINT_BUF_SIZE   32768
    71 #define TEST_MARGIN         10
    7271
    7372
     
    134133{
    135134    CHAR         achDriverName[ DRIVERNAME_LENGTH ] = "";
     135    CHAR         achQueueProcParams[ 8 ] = "";
    136136    DEVOPENSTRUC dos   = { 0 };
    137137    SIZEL        sizel = { 0 };
     
    143143
    144144    // build a devopenstruct for the call to DevOpenDC
    145     dos.pszLogAddress = psetup->QueueInfo.pszName;              // 1
     145    dos.pszLogAddress      = psetup->QueueInfo.pszName;              // 1
    146146    strcpy( achDriverName, psetup->QueueInfo.pszDriverName );
    147147    achDriverName[ strcspn( achDriverName, "." ) ] = '\0';
    148     dos.pszDriverName = achDriverName;                          // 2
    149     dos.pdriv         = psetup->QueueInfo.pDriverData;          // 3
    150     dos.pszDataType   = "PM_Q_STD";                             // 4
    151 
    152     HDC hdcPrinter = DevOpenDC( lhab, OD_QUEUED, "*", 4L, (PDEVOPENDATA)&dos, NULLHANDLE );
     148    dos.pszDriverName      = achDriverName;                          // 2
     149    dos.pdriv              = psetup->QueueInfo.pDriverData;          // 3
     150    dos.pszDataType        = "PM_Q_STD";                             // 4
     151    dos.pszComment         = (PSZ)appName;                           // 5
     152    dos.pszQueueProcName   = NULL;                                   // 6
     153    snprintf( achQueueProcParams, sizeof( achQueueProcParams ), "COP=%d", psetup->copies );
     154    dos.pszQueueProcParams = achQueueProcParams;                     // 7
     155
     156    HDC hdcPrinter = DevOpenDC( lhab, OD_QUEUED, "*", 7L, (PDEVOPENDATA)&dos, NULLHANDLE );
    153157    if ( hdcPrinter == DEV_ERROR ) {
    154158        return false;
     
    205209
    206210    // Magrins
    207     LONG mLeft   = __max( TEST_MARGIN, pcurForm->xLeftClip );
    208     LONG mBottom = __max( TEST_MARGIN, pcurForm->yBottomClip );
    209     LONG mRight  = __max( TEST_MARGIN, pcurForm->cx - pcurForm->xRightClip );
    210     LONG mTop    = __max( TEST_MARGIN, pcurForm->cy - pcurForm->yTopClip );
     211    LONG mLeft   = __max( psetup->margin_left, pcurForm->xLeftClip );
     212    LONG mBottom = __max( psetup->margin_bottom, pcurForm->yBottomClip );
     213    LONG mRight  = __max( psetup->margin_right, pcurForm->cx - pcurForm->xRightClip );
     214    LONG mTop    = __max( psetup->margin_top, pcurForm->cy - pcurForm->yTopClip );
    211215
    212216    // Count paper page size in hi-metric
     
    274278{
    275279    CHAR         achDriverName[ DRIVERNAME_LENGTH ] = "";
     280    CHAR         achQueueProcParams[ 8 ] = "";
    276281    DEVOPENSTRUC dos   = { 0 };
    277282    SIZEL        sizel = { 0 };
     
    287292
    288293    // Magrins
    289     LONG mLeft   = __max( TEST_MARGIN, curForm.xLeftClip );
    290     LONG mBottom = __max( TEST_MARGIN, curForm.yBottomClip );
    291     LONG mRight  = __max( TEST_MARGIN, curForm.cx - curForm.xRightClip );
    292     LONG mTop    = __max( TEST_MARGIN, curForm.cy - curForm.yTopClip );
     294    LONG mLeft   = __max( psetup->margin_left, curForm.xLeftClip );
     295    LONG mBottom = __max( psetup->margin_bottom, curForm.yBottomClip );
     296    LONG mRight  = __max( psetup->margin_right, curForm.cx - curForm.xRightClip );
     297    LONG mTop    = __max( psetup->margin_top, curForm.cy - curForm.yTopClip );
    293298
    294299    // Count paper page size in 1/72 inches
     
    321326
    322327    // build a devopenstruct for the call to DevOpenDC
    323     dos.pszLogAddress = psetup->QueueInfo.pszName;              // 1
     328    dos.pszLogAddress      = psetup->QueueInfo.pszName;              // 1
    324329    strcpy( achDriverName, psetup->QueueInfo.pszDriverName );
    325330    achDriverName[ strcspn( achDriverName, "." ) ] = '\0';
    326     dos.pszDriverName = achDriverName;                          // 2
    327     dos.pdriv         = psetup->QueueInfo.pDriverData;          // 3
    328     dos.pszDataType   = "PM_Q_RAW";                             // 4
    329 
    330     HDC hdcPrinter = DevOpenDC( lhab, OD_QUEUED, "*", 4L, (PDEVOPENDATA)&dos, NULLHANDLE );
     331    dos.pszDriverName      = achDriverName;                          // 2
     332    dos.pdriv              = psetup->QueueInfo.pDriverData;          // 3
     333    dos.pszDataType        = "PM_Q_RAW";                             // 4
     334    dos.pszComment         = (PSZ)appName;                           // 5
     335    dos.pszQueueProcName   = NULL;                                   // 6
     336    snprintf( achQueueProcParams, sizeof( achQueueProcParams ), "COP=%d", psetup->copies );
     337    dos.pszQueueProcParams = achQueueProcParams;                     // 7
     338
     339    HDC hdcPrinter = DevOpenDC( lhab, OD_QUEUED, "*", 7L, (PDEVOPENDATA)&dos, NULLHANDLE );
    331340    if ( hdcPrinter == DEV_ERROR ) {
    332341        unlink( tmpps );
     
    393402    }
    394403
    395     //long lTech = 0;
    396     //DevQueryCaps( hdcPrinterInfo, CAPS_TECHNOLOGY, sizeof(long), &lTech );
    397     //somPrintf( "lTech: 0x%x\n", lTech );
    398 
    399404    LONG lForms = DevQueryHardcopyCaps( hdcPrinterInfo, 0, 0, NULL );
    400405    if ( lForms == DQHC_ERROR ) {
Note: See TracChangeset for help on using the changeset viewer.