Changeset 90 for trunk/Lucide


Ignore:
Timestamp:
Jul 30, 2006, 6:06:48 PM (15 years ago)
Author:
Eugene Romanenko
Message:

intermediate commit, incomplete printing procedures

Location:
trunk/Lucide
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/BIN/Lucide.lng

    r89 r90  
    160160PD_JOB_PROPERTIES=Job properties
    161161PD_DRIVER_LABEL=Driver
     162PD_PRINT_RANGE=Print range
     163PD_RANGE_ALL=All
     164PD_RANGE_CURRENT_PAGE=Current page
     165PD_RANGE_PAGES=Pages
     166PD_FROM=From
     167PD_TO=To
     168PD_PRINT_TYPE=Print type
     169PD_TYPE_POSTSCRIPT=Postscript
     170PD_TYPE_ASIMAGE=As image
     171PD_HIGHER_IMAGE_QUALITY=Higher image quality (slower and require more memory)
    162172PD_BTNPRINT=Print
    163173PD_BTNCANCEL=Cancel
  • trunk/Lucide/SOURCE/gui/Lucide_res.H

    r89 r90  
    2222 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
    2323 * in which case the provisions of the LGPL are applicable instead of those
    24  * above. If you wish to allow use of your version of this file only under the 
     24 * above. If you wish to allow use of your version of this file only under the
    2525 * terms of the LGPL, and not to allow others to use your version of this file
    2626 * under the terms of the CDDL, indicate your decision by deleting the
    2727 * provisions above and replace them with the notice and other provisions
    2828 * required by the LGPL. If you do not delete the provisions above, a recipient
    29  * may use your version of this file under the terms of any one of the CDDL 
     29 * may use your version of this file under the terms of any one of the CDDL
    3030 * or the LGPL.
    3131 *
     
    3636#define __LUCIDE_RES_H
    3737
    38 #define IDI_MAIN_ICON   1
    39 #define IDB_LOGO                2
     38#define IDI_MAIN_ICON   1
     39#define IDB_LOGO        2
    4040
    41 #define IDP_HAND                10
     41#define IDP_HAND        10
    4242
    43 #define IDB_OPEN                20
    44 #define IDB_PRINT               21
    45 #define IDB_NAVPANE             22
    46 #define IDB_FIRSTPAGE   23
    47 #define IDB_PREVPAGE    24
    48 #define IDB_NEXTPAGE    25
    49 #define IDB_LASTPAGE    26
    50 #define IDB_100PERC             27
    51 #define IDB_FITPAGE             28
    52 #define IDB_FITWIDTH    29
    53 #define IDB_FIND                30
    54 #define IDB_FINDAGAIN   31
     43#define IDB_OPEN        20
     44#define IDB_PRINT       21
     45#define IDB_NAVPANE     22
     46#define IDB_FIRSTPAGE   23
     47#define IDB_PREVPAGE    24
     48#define IDB_NEXTPAGE    25
     49#define IDB_LASTPAGE    26
     50#define IDB_100PERC     27
     51#define IDB_FITPAGE     28
     52#define IDB_FITWIDTH    29
     53#define IDB_FIND        30
     54#define IDB_FINDAGAIN   31
    5555
    5656#define IDM_MAINMENU    100
    57 #define IDA_MAINACCEL   101
     57#define IDA_MAINACCEL   101
    5858
    59 #define CM_OPEN                 101
    60 #define CM_SAVEAS               102
    61 #define CM_PAGESETUP    103
    62 #define CM_PRINT                104
    63 #define CM_PLUGINSLIST  105
    64 #define CM_EXIT                 106
     59#define CM_OPEN         101
     60#define CM_SAVEAS       102
     61#define CM_PAGESETUP    103
     62#define CM_PRINT        104
     63#define CM_PLUGINSLIST  105
     64#define CM_EXIT         106
    6565
    66 #define CM_COPY                 201
    67 #define CM_SELECTALL    202
    68 #define CM_FIND                 203
    69 #define CM_FINDAGAIN    204
    70 #define CM_SETTINGS             205
     66#define CM_COPY         201
     67#define CM_SELECTALL    202
     68#define CM_FIND         203
     69#define CM_FINDAGAIN    204
     70#define CM_SETTINGS     205
    7171
    72 #define CM_FIRSTPAGE    301
    73 #define CM_PREVPAGE             302
    74 #define CM_NEXTPAGE             303
    75 #define CM_LASTPAGE             304
    76 #define CM_GOTOPAGE             305
     72#define CM_FIRSTPAGE    301
     73#define CM_PREVPAGE     302
     74#define CM_NEXTPAGE     303
     75#define CM_LASTPAGE     304
     76#define CM_GOTOPAGE     305
    7777
    78 #define CM_FITWINDOW    401
    79 #define CM_ACTSIZE              402
    80 #define CM_FITWIDTH             403
    81 #define CM_ROTATE90CW   404
    82 #define CM_ROTATE90CCW  405
    83 #define CM_SINGLEPAGE   406
    84 #define CM_CONTINUOUS   407
    85 #define CM_DOCINFO              408
    86 #define CM_FONTSINFO    409
     78#define CM_FITWINDOW    401
     79#define CM_ACTSIZE      402
     80#define CM_FITWIDTH     403
     81#define CM_ROTATE90CW   404
     82#define CM_ROTATE90CCW  405
     83#define CM_SINGLEPAGE   406
     84#define CM_CONTINUOUS   407
     85#define CM_DOCINFO      408
     86#define CM_FONTSINFO    409
    8787
    88 #define CM_NAVPANE              501
    89 #define CM_MAXVIEW              502
    90 #define CM_FULLSCREEN   503
     88#define CM_NAVPANE      501
     89#define CM_MAXVIEW      502
     90#define CM_FULLSCREEN   503
    9191
    92 #define CM_PRODINFO             601
     92#define CM_PRODINFO     601
    9393
    94 #define TBID_PAGENUM    1
    95 #define TBID_OFPAGES    2
    96 #define TBID_ZOOM               3
     94#define TBID_PAGENUM    1
     95#define TBID_OFPAGES    2
     96#define TBID_ZOOM       3
    9797
    98 #define IDD_VIEWPLUGINS         1000
    99 #define IDC_PLUGINSLIST         10
     98#define IDD_VIEWPLUGINS     1000
     99#define IDC_PLUGINSLIST     10
    100100
    101 #define IDD_FONTINFO            1001
    102 #define IDC_FONTSLIST           10
    103 #define IDC_ENUMLABEL           11
     101#define IDD_FONTINFO        1001
     102#define IDC_FONTSLIST       10
     103#define IDC_ENUMLABEL       11
    104104
    105 #define IDD_DOCINFO                     1002
    106 #define IDC_PROPSLIST           10
     105#define IDD_DOCINFO         1002
     106#define IDC_PROPSLIST       10
    107107
    108 #define IDD_FIND                        1003
    109 #define IDC_FINDFIELD           10
    110 #define IDC_FINDMATCHCASE       11
     108#define IDD_FIND            1003
     109#define IDC_FINDFIELD       10
     110#define IDC_FINDMATCHCASE   11
    111111
    112 #define IDD_PROGRESS            1004
    113 #define IDC_PTEXT                       10
    114 #define IDC_PBAR                        11
     112#define IDD_PROGRESS        1004
     113#define IDC_PTEXT           10
     114#define IDC_PBAR            11
    115115
    116 #define IDD_ABOUT                       1005
    117 #define IDT_LUCIDEVERSION       10
    118 #define IDC_COPYRIGHTS          11
    119 #define IDC_NETLABSURL          12
    120 #define IDC_LOGO                        13
     116#define IDD_ABOUT           1005
     117#define IDT_LUCIDEVERSION   10
     118#define IDC_COPYRIGHTS      11
     119#define IDC_NETLABSURL      12
     120#define IDC_LOGO            13
    121121
    122 #define IDD_SETTINGS            1006
    123 #define IDC_DEFPGLAYOUT         10
    124 #define IDC_DEFZOOM                     11
     122#define IDD_SETTINGS        1006
     123#define IDC_DEFPGLAYOUT     10
     124#define IDC_DEFZOOM         11
    125125
    126 #define IDD_GOTOPAGE            1007
    127 #define IDC_PAGE                        10
    128 #define IDC_PAGES                       11
     126#define IDD_GOTOPAGE        1007
     127#define IDC_PAGE            10
     128#define IDC_PAGES           11
    129129
    130 #define IDD_PRINT                       1008
    131 #define IDC_PNAME                       10
    132 #define IDC_JOBPROPERTIES       11
    133 #define IDC_PDESCRIPTION        12
     130#define IDD_PRINT           1008
     131#define IDC_PNAME           10
     132#define IDC_JOBPROPERTIES   11
     133#define IDC_PDESCRIPTION    12
     134#define IDC_RANGEALL        13
     135#define IDC_RANGECURRENT    14
     136#define IDC_RANGEPAGES      15
     137#define IDC_LABELFROM       16
     138#define IDC_PGFROM          17
     139#define IDC_LABELTO         18
     140#define IDC_PGTO            19
     141#define IDC_TYPE_POSTSCRIPT     20
     142#define IDC_TYPE_ASIMAGE        21
     143#define IDC_HIGHER_IMAGE_QUALITY        22
     144
    134145
    135146#endif // __LUCIDE_RES_H
  • trunk/Lucide/SOURCE/gui/dialogs.rc

    r89 r90  
    134134DLGTEMPLATE IDD_PRINT
    135135BEGIN
    136         DIALOG "PD_TITLE", -1, 6, 52, 256, 113, WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
     136        DIALOG "PD_TITLE", -1, 67, 28, 258, 155, WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
    137137        BEGIN
    138                 CONTROL "PD_PRINTER", -1, 2, 71, 253, 39, WC_STATIC, SS_GROUPBOX | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
     138                CONTROL "PD_PRINTER", -1, 2, 117, 253, 35, WC_STATIC, SS_GROUPBOX | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
    139139                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    140                 CONTROL "PD_NAME_LABEL", -1, 8, 89, 40, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
     140                CONTROL "PD_NAME_LABEL", -1, 8, 134, 40, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
    141141                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    142                 CONTROL "", IDC_PNAME, 53, 55, 115, 43, WC_COMBOBOX, CBS_DROPDOWNLIST | ES_ANY | WS_VISIBLE | WS_GROUP | WS_TABSTOP
     142                CONTROL "", IDC_PNAME, 53, 100, 115, 43, WC_COMBOBOX, CBS_DROPDOWNLIST | ES_ANY | WS_VISIBLE | WS_GROUP | WS_TABSTOP
    143143                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    144                 CONTROL "PD_JOB_PROPERTIES", IDC_JOBPROPERTIES, 174, 87, 78, 13, WC_BUTTON, BS_PUSHBUTTON | WS_VISIBLE | WS_GROUP | WS_TABSTOP | WS_DISABLED
     144                CONTROL "PD_JOB_PROPERTIES", IDC_JOBPROPERTIES, 174, 132, 78, 13, WC_BUTTON, BS_PUSHBUTTON | WS_VISIBLE | WS_GROUP | WS_TABSTOP | WS_DISABLED
    145145                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    146                 CONTROL "PD_DRIVER_LABEL", -1, 8, 76, 40, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
     146                CONTROL "PD_DRIVER_LABEL", -1, 8, 121, 40, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
    147147                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    148                 CONTROL "", IDC_PDESCRIPTION, 53, 76, 196, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | WS_VISIBLE | WS_GROUP
     148                CONTROL "", IDC_PDESCRIPTION, 53, 121, 196, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | WS_VISIBLE | WS_GROUP
    149149                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    150                 DEFPUSHBUTTON "PD_BTNPRINT", DID_OK, 113, 5, 51, 14, WS_DISABLED
     150                CONTROL "PD_PRINT_RANGE", -1, 2, 75, 253, 40, WC_STATIC, SS_GROUPBOX | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
    151151                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    152                 PUSHBUTTON "PD_BTNCANCEL", DID_CANCEL, 171, 5, 51, 14
     152                CONTROL "PD_RANGE_ALL", IDC_RANGEALL, 9, 97, 106, 10, WC_BUTTON, BS_AUTORADIOBUTTON | WS_VISIBLE | WS_GROUP | WS_TABSTOP
     153                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     154                CONTROL "PD_RANGE_CURRENT_PAGE", IDC_RANGECURRENT, 9, 87, 106, 10, WC_BUTTON, BS_AUTORADIOBUTTON | WS_VISIBLE | WS_TABSTOP
     155                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     156                CONTROL "PD_RANGE_PAGES", IDC_RANGEPAGES, 9, 77, 90, 10, WC_BUTTON, BS_AUTORADIOBUTTON | WS_VISIBLE | WS_TABSTOP
     157                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     158                CONTROL "PD_FROM", IDC_LABELFROM, 102, 78, 35, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP | WS_DISABLED
     159                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     160                CONTROL "", IDC_PGFROM, 138, 78, 39, 12, WC_SPINBUTTON, SPBS_MASTER | SPBS_NUMERICONLY | SPBS_JUSTCENTER | WS_VISIBLE | WS_GROUP | WS_TABSTOP | WS_DISABLED
     161                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     162                CONTROL "PD_TO", IDC_LABELTO, 183, 78, 22, 8, WC_STATIC, SS_TEXT | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP | WS_DISABLED
     163                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     164                CONTROL "", IDC_PGTO, 208, 78, 39, 12, WC_SPINBUTTON, SPBS_MASTER | SPBS_NUMERICONLY | SPBS_JUSTCENTER | WS_VISIBLE | WS_GROUP | WS_TABSTOP | WS_DISABLED
     165                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     166                CONTROL "PD_PRINT_TYPE", -1, 2, 33, 253, 40, WC_STATIC, SS_GROUPBOX | DT_LEFT | DT_TOP | DT_MNEMONIC | WS_VISIBLE | WS_GROUP
     167                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     168                CONTROL "PD_TYPE_POSTSCRIPT", IDC_TYPE_POSTSCRIPT, 9, 55, 240, 10, WC_BUTTON, BS_AUTORADIOBUTTON | WS_VISIBLE | WS_GROUP | WS_TABSTOP
     169                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     170                CONTROL "PD_TYPE_ASIMAGE", IDC_TYPE_ASIMAGE, 9, 45, 240, 10, WC_BUTTON, BS_AUTORADIOBUTTON | WS_VISIBLE | WS_TABSTOP
     171                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     172                CONTROL "PD_HIGHER_IMAGE_QUALITY", IDC_HIGHER_IMAGE_QUALITY, 19, 35, 230, 10, WC_BUTTON, BS_AUTOCHECKBOX | WS_VISIBLE | WS_GROUP | WS_TABSTOP
     173                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     174                DEFPUSHBUTTON "PD_BTNPRINT", DID_OK, 135, 6, 51, 14, WS_DISABLED
     175                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
     176                PUSHBUTTON "PD_BTNCANCEL", DID_CANCEL, 193, 6, 51, 14
    153177                PRESPARAMS PP_FONTNAMESIZE "9.WarpSans"
    154178        END
  • trunk/Lucide/SOURCE/gui/lucide.cpp

    r89 r90  
    3535#define INCL_WIN
    3636#define INCL_DOS
     37#define INCL_SPL
     38#define INCL_SPLDOSPRINT
    3739#include <os2.h>
    3840
     
    264266
    265267    WinEnableMenuItem( hWndMenu, CM_PRINT, TRUE );
     268    WinSendMsg( hToolBar, TBM_ENABLEITEM, MPFROMSHORT(CM_PRINT), (MPARAM)TRUE );
    266269    WinEnableMenuItem( hWndMenu, CM_SAVEAS, doc->isSaveable( ev ) );
    267270    setOfPages( doc->getPageCount( ev ) );
     
    636639                case CM_PRINT:
    637640                {
    638                     PrintDlg *d = new PrintDlg( hWndFrame, doc );
     641                    PrintDlg *d = new PrintDlg( hWndFrame, doc, docViewer->getCurrentPage() + 1 );
    639642                    if ( d->showDialog() == DID_OK ) {
    640643                        // print
     644                        //printDocument( doc, d->getCurrentQInfo() );
    641645                    }
    642646                    delete d;
  • trunk/Lucide/SOURCE/gui/makefile

    r89 r90  
    3636       linklab.obj wwbtn.obj intern.obj messages.obj indexWindow.obj \
    3737       fontsInfoDlg.obj docInfoDlg.obj findDlg.obj progressDlg.obj \
    38        aboutDlg.obj settingsDlg.obj lusettings.obj printDlg.obj
     38       aboutDlg.obj settingsDlg.obj lusettings.obj printDlg.obj \
     39       print.obj
    3940
    4041Lucide.exe: $(OBJS) Lucide.res
     
    5859file $(OBJDIR)\aboutDlg.obj
    5960file $(OBJDIR)\printDlg.obj
     61file $(OBJDIR)\print.obj
    6062file $(OBJDIR)\settingsDlg.obj
    6163file $(OBJDIR)\lusettings.obj
     
    9698aboutDlg.obj:       aboutDlg.cpp
    9799printDlg.obj:       printDlg.cpp
     100print.obj:          print.cpp
    98101settingsDlg.obj:    settingsDlg.cpp
    99102lusettings.obj:     lusettings.cpp
  • trunk/Lucide/SOURCE/gui/printDlg.cpp

    r89 r90  
    4646#include "luutils.h"
    4747
    48 extern HAB hab;
    49 
    50 #define DEVICENAME_LENGTH   32
    51 #define DRIVERNAME_LENGTH   128
    52 
    53 struct PrintDlgInternalData
    54 {
    55     PPRQINFO3 pQueueInfo;
    56     PPRQINFO3 pCurQueue;
    57 };
    58 
    59 
    60 PrintDlg::PrintDlg( HWND hWndFrame, LuDocument *_doc )
    61 {
    62     hFrame = hWndFrame;
    63     doc    = _doc;
    64     data   = new PrintDlgInternalData;
    65     memset( data, 0, sizeof( PrintDlgInternalData ) );
     48
     49PrintDlg::PrintDlg( HWND hWndFrame, LuDocument *_doc, long _currentpage )
     50{
     51    hFrame      = hWndFrame;
     52    doc         = _doc;
     53    currentpage = _currentpage;
     54    psetup      = new PrintSetup;
     55    memset( psetup, 0, sizeof( PrintSetup ) );
    6656}
    6757
    6858PrintDlg::~PrintDlg()
    6959{
    70     if ( data->pQueueInfo != NULL ) {
    71         free( data->pQueueInfo );
    72     }
    73     delete data;
     60    delete psetup;
    7461}
    7562
     
    8067}
    8168
    82 
    83 void PrintDlg::setCurrentQInfo( HWND hwnd, void *i )
    84 {
    85     data->pCurQueue = (PPRQINFO3)i;
    86     WinSetDlgItemText( hwnd, IDC_PNAME, data->pCurQueue->pszComment );
    87     WinSetDlgItemText( hwnd, IDC_PDESCRIPTION, data->pCurQueue->pszDriverName );
     69void PrintDlg::getPrintSetup( PrintSetup *p ) {
     70    memcpy( p, psetup, sizeof( PrintSetup ) );
     71}
     72
     73void PrintDlg::setCurrentQInfo( HWND hwnd, PPRQINFO3 q )
     74{
     75    memcpy( &(psetup->QueueInfo), q, sizeof( PRQINFO3 ) );
     76    WinSetDlgItemText( hwnd, IDC_PNAME, psetup->QueueInfo.pszComment );
     77    WinSetDlgItemText( hwnd, IDC_PDESCRIPTION, psetup->QueueInfo.pszDriverName );
    8878    WinEnableControl( hwnd, IDC_JOBPROPERTIES, TRUE );
    8979    WinEnableControl( hwnd, DID_OK, TRUE );
     
    9787                              &cTotal, &cbNeeded, NULL );
    9888    if ( cTotal == 0L ) {
    99         // TODO: 'no printers installed' message
    100     }
    101 
    102     data->pQueueInfo = (PPRQINFO3)malloc( cbNeeded );
    103 
    104     se = SplEnumQueue( NULL, 3, data->pQueueInfo, cbNeeded, &cReturned,
     89        // TODO: 'no printers installed' message  (?)
     90    }
     91
     92    pQueueInfo = (PPRQINFO3)malloc( cbNeeded );
     93
     94    se = SplEnumQueue( NULL, 3, pQueueInfo, cbNeeded, &cReturned,
    10595                       &cTotal, &cbNeeded, NULL );
    10696    if ( se != NO_ERROR ) {
    10797        // TODO: error message
    108         free( data->pQueueInfo );
    109         data->pQueueInfo = NULL;
     98        free( pQueueInfo );
     99        pQueueInfo = NULL;
    110100        return;
    111101    }
     
    115105    {
    116106        sEntry = (SHORT)WinSendMsg( list, LM_INSERTITEM, MPFROMSHORT(LIT_END),
    117                                     MPFROMP( data->pQueueInfo[i].pszComment ) );
     107                                    MPFROMP( pQueueInfo[i].pszComment ) );
    118108        WinSendMsg( list, LM_SETITEMHANDLE,
    119                     MPFROMSHORT(sEntry), MPFROMP( &(data->pQueueInfo[i]) ) );
    120 
    121         if ( data->pQueueInfo[i].fsType & PRQ3_TYPE_APPDEFAULT ) {
    122             setCurrentQInfo( hwnd, &( data->pQueueInfo[i] ) );
     109                    MPFROMSHORT(sEntry), MPFROMP( &(pQueueInfo[i]) ) );
     110
     111        if ( pQueueInfo[i].fsType & PRQ3_TYPE_APPDEFAULT ) {
     112            setCurrentQInfo( hwnd, &( pQueueInfo[i] ) );
    123113        }
    124114    }
     
    128118void PrintDlg::showJobProperties()
    129119{
    130     if ( data->pCurQueue == NULL ) {
     120    if ( psetup->QueueInfo.pszName[0] == 0 ) {
    131121        return;
    132122    }
     
    137127    // The pszDriverName is of the form DRIVER.DEVICE (e.g.,
    138128    // LASERJET.HP LaserJet IID) so we need to separate it at the dot
    139     int i = strcspn( data->pCurQueue->pszDriverName, "." );
     129    int i = strcspn( psetup->QueueInfo.pszDriverName, "." );
    140130    if ( i > 0 ) {
    141         strncpy( achDriverName, data->pCurQueue->pszDriverName, i );
     131        strncpy( achDriverName, psetup->QueueInfo.pszDriverName, i );
    142132        achDriverName[ i ] = '\0';
    143         strcpy( achDeviceName, &( data->pCurQueue->pszDriverName[ i + 1 ] ) );
     133        strcpy( achDeviceName, &( psetup->QueueInfo.pszDriverName[ i + 1 ] ) );
    144134    }
    145135    else {
    146         strcpy( achDriverName, data->pCurQueue->pszDriverName );
     136        strcpy( achDriverName, psetup->QueueInfo.pszDriverName );
    147137        *achDeviceName = '\0';
    148138    }
     
    151141    // We will use the first in the comma separated list.  We would
    152142    // need an expanded dialog for the user to be more specific.
    153     char *pszTemp = strchr( data->pCurQueue->pszPrinters, ',' );
     143    char *pszTemp = strchr( psetup->QueueInfo.pszPrinters, ',' );
    154144    if ( pszTemp != NULL ) {
    155145        // Strip off comma and trailing printer names
    156         *pszTemp = '\0' ;
     146        *pszTemp = '\0';
    157147    }
    158148
    159149    // Post the job properties dialog for the printer to allow the
    160150    // user to modify the options
    161     DevPostDeviceModes( hab, data->pCurQueue->pDriverData, achDriverName,
    162                         achDeviceName, data->pCurQueue->pszPrinters, DPDM_POSTJOBPROP );
     151    DevPostDeviceModes( hab, psetup->QueueInfo.pDriverData, achDriverName,
     152                        achDeviceName, psetup->QueueInfo.pszPrinters, DPDM_POSTJOBPROP );
    163153}
    164154
     
    184174            localizeDialog( hwnd );
    185175            centerWindow( _this->hFrame, hwnd );
     176
     177            // Enum printer queues
    186178            _this->enumQueues( hwnd );
     179
     180            // Print range
     181            WinCheckButton( hwnd, IDC_RANGEALL, TRUE );
     182
     183            // Set the print range spins
     184            long pages = _this->doc->getPageCount( ev );
     185            WinSendDlgItemMsg( hwnd, IDC_PGFROM, SPBM_SETLIMITS,
     186                               MPFROMLONG( pages ), MPFROMLONG( 1 ) );
     187            WinSendDlgItemMsg( hwnd, IDC_PGFROM, SPBM_SETCURRENTVALUE,
     188                               MPFROMLONG( 1 ), MPVOID );
     189            WinSendDlgItemMsg( hwnd, IDC_PGTO, SPBM_SETLIMITS,
     190                               MPFROMLONG( pages ), MPFROMLONG( 1 ) );
     191            WinSendDlgItemMsg( hwnd, IDC_PGTO, SPBM_SETCURRENTVALUE,
     192                               MPFROMLONG( pages ), MPVOID );
     193
     194            // Set the print type
     195            if ( _this->doc->isPostScriptExportable( ev ) ) {
     196                WinEnableControl( hwnd, IDC_TYPE_POSTSCRIPT, TRUE );
     197                WinCheckButton( hwnd, IDC_TYPE_POSTSCRIPT, TRUE );
     198            }
     199            else {
     200                WinEnableControl( hwnd, IDC_TYPE_POSTSCRIPT, FALSE );
     201                WinCheckButton( hwnd, IDC_TYPE_ASIMAGE, TRUE );
     202            }
     203            WinSendMsg( hwnd, WM_CONTROL,
     204                        MPFROM2SHORT( IDC_TYPE_POSTSCRIPT, BN_CLICKED ),
     205                        MPFROMHWND( WinWindowFromID( hwnd, IDC_TYPE_POSTSCRIPT ) ) );
     206
     207
    187208            return (MRESULT)FALSE;
    188209        }
     
    190211        case WM_CONTROL:
    191212        {
    192             if ( (SHORT1FROMMP(mp1) == IDC_PNAME) && (SHORT2FROMMP(mp1) == CBN_ENTER) )
     213            switch ( SHORT1FROMMP(mp1) )
    193214            {
    194                 SHORT rc = (SHORT)WinSendDlgItemMsg( hwnd, IDC_PNAME, LM_QUERYSELECTION,
    195                                                      MPFROMSHORT( LIT_CURSOR ), MPVOID );
    196                 if ( rc != LIT_NONE ) {
    197                     MRESULT r = WinSendDlgItemMsg( hwnd, IDC_PNAME, LM_QUERYITEMHANDLE,
    198                                                    MPFROMSHORT( rc ), MPVOID );
    199                     _this->setCurrentQInfo( hwnd, r );
     215                case IDC_PNAME:
     216                {
     217                    if ( SHORT2FROMMP(mp1) == CBN_ENTER )
     218                    {
     219                        SHORT rc = (SHORT)WinSendDlgItemMsg( hwnd, IDC_PNAME, LM_QUERYSELECTION,
     220                                                             MPFROMSHORT( LIT_CURSOR ), MPVOID );
     221                        if ( rc != LIT_NONE ) {
     222                            MRESULT r = WinSendDlgItemMsg( hwnd, IDC_PNAME, LM_QUERYITEMHANDLE,
     223                                                           MPFROMSHORT( rc ), MPVOID );
     224                            _this->setCurrentQInfo( hwnd, (PPRQINFO3)r );
     225                        }
     226                    }
    200227                }
     228                break;
     229
     230                case IDC_RANGEALL:
     231                case IDC_RANGECURRENT:
     232                case IDC_RANGEPAGES:
     233                {
     234                    BOOL en = WinQueryButtonCheckstate( hwnd, IDC_RANGEPAGES );
     235                    WinEnableControl( hwnd, IDC_LABELFROM, en );
     236                    WinEnableControl( hwnd, IDC_PGFROM, en );
     237                    WinEnableControl( hwnd, IDC_LABELTO, en );
     238                    WinEnableControl( hwnd, IDC_PGTO, en );
     239                }
     240                break;
     241
     242                case IDC_TYPE_POSTSCRIPT:
     243                case IDC_TYPE_ASIMAGE:
     244                {
     245                    WinEnableControl( hwnd, IDC_HIGHER_IMAGE_QUALITY,
     246                                WinQueryButtonCheckstate( hwnd, IDC_TYPE_ASIMAGE ) );
     247                }
     248                break;
     249
    201250            }
    202251        }
     
    212261                case DID_OK:
    213262                    {
    214                         // do
     263                        _this->psetup->range = RangeAll;
     264                        _this->psetup->pgfrom = 1;
     265                        _this->psetup->pgto = _this->doc->getPageCount( ev );
     266
     267                        if ( WinQueryButtonCheckstate( hwnd, IDC_RANGECURRENT ) ) {
     268                            _this->psetup->range = RangeCurrent;
     269                            _this->psetup->pgfrom = _this->currentpage;
     270                            _this->psetup->pgto = _this->currentpage;
     271                        }
     272
     273                        if ( WinQueryButtonCheckstate( hwnd, IDC_RANGEPAGES ) )
     274                        {
     275                            _this->psetup->range = RangePages;
     276                            LONG tmpVal = 0;
     277                            BOOL rc = (BOOL)WinSendDlgItemMsg( hwnd, IDC_PGFROM, SPBM_QUERYVALUE, MPFROMP( &tmpVal ), MPFROM2SHORT( 0, SPBQ_UPDATEIFVALID ) );
     278                            if ( rc && ( tmpVal > 0 ) ) {
     279                                _this->psetup->pgfrom = tmpVal;
     280                            }
     281                            rc = (BOOL)WinSendDlgItemMsg( hwnd, IDC_PGTO, SPBM_QUERYVALUE, MPFROMP( &tmpVal ), MPFROM2SHORT( 0, SPBQ_UPDATEIFVALID ) );
     282                            if ( rc && ( tmpVal > 0 ) ) {
     283                                _this->psetup->pgto = tmpVal;
     284                            }
     285                        }
     286
     287                        _this->psetup->ptype = TypePostScript;
     288                        if ( WinQueryButtonCheckstate( hwnd, IDC_TYPE_ASIMAGE ) ) {
     289                            _this->psetup->ptype = TypeAsImage;
     290                        }
     291                        _this->psetup->higherQuality = WinQueryButtonCheckstate( hwnd, IDC_HIGHER_IMAGE_QUALITY );
     292
    215293                        WinDismissDlg( hwnd, DID_OK );
    216294                    }
  • trunk/Lucide/SOURCE/gui/printDlg.h

    r89 r90  
    2222 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
    2323 * in which case the provisions of the LGPL are applicable instead of those
    24  * above. If you wish to allow use of your version of this file only under the 
     24 * above. If you wish to allow use of your version of this file only under the
    2525 * terms of the LGPL, and not to allow others to use your version of this file
    2626 * under the terms of the CDDL, indicate your decision by deleting the
    2727 * provisions above and replace them with the notice and other provisions
    2828 * required by the LGPL. If you do not delete the provisions above, a recipient
    29  * may use your version of this file under the terms of any one of the CDDL 
     29 * may use your version of this file under the terms of any one of the CDDL
    3030 * or the LGPL.
    3131 *
     
    3636#define __PRINTDLG_H
    3737
     38#include "print.h"
     39
     40
    3841class LuDocument;
    3942struct PrintDlgInternalData;
     
    4245{
    4346    public:
    44         PrintDlg( HWND hWndFrame, LuDocument *_doc );
     47        PrintDlg( HWND hWndFrame, LuDocument *_doc, long _currentpage );
    4548        virtual ~PrintDlg();
    4649
    4750        ULONG showDialog();
     51        void getPrintSetup( PrintSetup *p );
    4852
    4953    private:
    5054
    51         void enumQueues( HWND hwnd );
    52         void showJobProperties();
    53                 void setCurrentQInfo( HWND hwnd, void *i );
     55        void enumQueues( HWND hwnd );
     56        void showJobProperties();
     57        void setCurrentQInfo( HWND hwnd, PPRQINFO3 q );
    5458        static MRESULT EXPENTRY printDlgProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 );
    5559
    5660        HWND hFrame;
    5761        LuDocument *doc;
    58         PrintDlgInternalData *data;
     62        long currentpage;
     63        PPRQINFO3 pQueueInfo;
     64        PrintSetup *psetup;
    5965};
    6066
    6167#endif // __PRINTDLG_H
     68
Note: See TracChangeset for help on using the changeset viewer.