? abiword.log ? autom4te.cache ? src/Linux_2.2.20-pmac_ppc_OBJ Index: src/af/xap/unix/xap_UnixDlg_Print.cpp =================================================================== RCS file: /cvsroot/abi/src/af/xap/unix/xap_UnixDlg_Print.cpp,v retrieving revision 1.54 diff -u -r1.54 xap_UnixDlg_Print.cpp --- src/af/xap/unix/xap_UnixDlg_Print.cpp 11 Mar 2002 01:38:36 -0000 1.54 +++ src/af/xap/unix/xap_UnixDlg_Print.cpp 10 Mar 2003 21:55:43 -0000 @@ -77,7 +77,7 @@ m_persistPrintDlg.bDoPrintSelection = m_bDoPrintSelection; m_persistPrintDlg.bDoPrintToFile = m_bDoPrintToFile; m_persistPrintDlg.bDoCollate = m_bCollate; - + m_persistPrintDlg.bDoReverse = m_bReverse; m_persistPrintDlg.colorSpace = m_cColorSpace; m_persistPrintDlg.szPrintCommand = m_szPrintCommand; } @@ -91,6 +91,7 @@ m_persistPrintDlg.bDoPrintSelection = m_bDoPrintSelection; m_persistPrintDlg.bDoPrintToFile = m_bDoPrintToFile; m_persistPrintDlg.bDoCollate = m_bCollate; + m_persistPrintDlg.bDoReverse = m_bReverse; m_persistPrintDlg.nCopies = m_nCopies; m_persistPrintDlg.nFromPage = m_nFirstPage; m_persistPrintDlg.nToPage = m_nLastPage; @@ -185,6 +186,11 @@ gtk_widget_grab_focus (entry); } +static void entry_range_changed( GtkWidget *entry, GtkWidget *togglebutton) +{ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (togglebutton), TRUE); +} + void XAP_UnixDialog_Print::_raisePrintDialog(XAP_Frame * pFrame) { // raise the actual dialog and wait for an answer. @@ -203,6 +209,7 @@ GtkWidget *buttonSelection; GtkWidget *button; GtkWidget *buttonCollate; + GtkWidget *buttonReverse; GtkWidget *buttonEmbedFonts; GtkWidget *spinCopies; @@ -355,6 +362,10 @@ gtk_box_pack_start (GTK_BOX (hbox), buttonCollate, TRUE, TRUE, 0); gtk_widget_show (buttonCollate); + buttonReverse = gtk_check_button_new_with_label (pSS->getValue(XAP_STRING_ID_DLG_UP_Reverse)); + gtk_box_pack_start (GTK_BOX (hbox), buttonReverse, TRUE, TRUE, 0); + gtk_widget_show (buttonReverse); + buttonEmbedFonts = gtk_check_button_new_with_label (pSS->getValue(XAP_STRING_ID_DLG_UP_EmbedFonts)); gtk_box_pack_start (GTK_BOX (hbox), buttonEmbedFonts, TRUE, TRUE, 0); gtk_widget_show (buttonEmbedFonts); @@ -434,6 +445,7 @@ gtk_box_pack_end (GTK_BOX (hbox), button, TRUE, TRUE, 5); //gtk_widget_grab_default (button); + gtk_widget_grab_focus (button); gtk_widget_show (button); @@ -491,12 +503,17 @@ gtk_entry_set_text (GTK_ENTRY (entryFrom), str); sprintf(str, "%d", m_persistPrintDlg.nToPage); gtk_entry_set_text (GTK_ENTRY (entryTo), str); - + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonCollate), m_persistPrintDlg.bDoCollate); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonReverse), m_persistPrintDlg.bDoReverse); XAP_App::getApp()->getPrefsValueBool((const XML_Char *)XAP_PREF_KEY_EmbedFontsInPS, &m_bEmbedFonts); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonEmbedFonts), m_bEmbedFonts); gtk_spin_button_set_value (GTK_SPIN_BUTTON(spinCopies), m_persistPrintDlg.nCopies); + gtk_signal_connect(GTK_OBJECT(entryFrom), "changed", + GTK_SIGNAL_FUNC(entry_range_changed), buttonRange); + gtk_signal_connect(GTK_OBJECT(entryTo), "changed", + GTK_SIGNAL_FUNC(entry_range_changed), buttonRange); // get top level window and it's GtkWidget * XAP_UnixFrame * frame = static_cast(pFrame); @@ -519,6 +536,7 @@ m_bDoPrintSelection = GTK_TOGGLE_BUTTON(buttonSelection)->active; m_bDoPrintToFile = GTK_TOGGLE_BUTTON(buttonFile)->active; m_bCollate = GTK_TOGGLE_BUTTON(buttonCollate)->active; + m_bReverse = GTK_TOGGLE_BUTTON(buttonReverse)->active; bool bEmbedFonts = m_bEmbedFonts; m_bEmbedFonts = GTK_TOGGLE_BUTTON(buttonEmbedFonts)->active; m_nCopies = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinCopies)); Index: src/af/xap/unix/xap_UnixDlg_Print.h =================================================================== RCS file: /cvsroot/abi/src/af/xap/unix/xap_UnixDlg_Print.h,v retrieving revision 1.19 diff -u -r1.19 xap_UnixDlg_Print.h --- src/af/xap/unix/xap_UnixDlg_Print.h 3 Mar 2001 22:10:59 -0000 1.19 +++ src/af/xap/unix/xap_UnixDlg_Print.h 10 Mar 2003 21:55:43 -0000 @@ -73,6 +73,7 @@ bool bDoPrintSelection; bool bDoPrintToFile; bool bDoCollate; + bool bDoReverse; bool bEnablePrintToFile; bool bEnableSelection; bool bEnablePageRange; Index: src/af/xap/xp/xap_Dlg_Print.cpp =================================================================== RCS file: /cvsroot/abi/src/af/xap/xp/xap_Dlg_Print.cpp,v retrieving revision 1.14 diff -u -r1.14 xap_Dlg_Print.cpp --- src/af/xap/xp/xap_Dlg_Print.cpp 20 Mar 2002 17:44:45 -0000 1.14 +++ src/af/xap/xp/xap_Dlg_Print.cpp 10 Mar 2003 21:55:49 -0000 @@ -38,6 +38,7 @@ m_bPersistValid = false; m_persistNrCopies = 1; m_persistCollate = false; + m_persistReverse = false; m_persistColorSpace = GR_Graphics::GR_COLORSPACE_COLOR; /* full color is default */ m_persistPrintToFile = false; @@ -202,7 +203,14 @@ { UT_ASSERT(m_answer == a_OK); - return m_persistCollate; + return m_bCollate; +} + +bool XAP_Dialog_Print::getReverse(void) const +{ + UT_ASSERT(m_answer == a_OK); + + return m_bReverse; } GR_Graphics::ColorSpace XAP_Dialog_Print::getColorSpace(void) const Index: src/af/xap/xp/xap_Dlg_Print.h =================================================================== RCS file: /cvsroot/abi/src/af/xap/xp/xap_Dlg_Print.h,v retrieving revision 1.11 diff -u -r1.11 xap_Dlg_Print.h --- src/af/xap/xp/xap_Dlg_Print.h 6 Feb 2001 22:54:25 -0000 1.11 +++ src/af/xap/xp/xap_Dlg_Print.h 10 Mar 2003 21:55:49 -0000 @@ -54,6 +54,7 @@ bool getDoPrintToFile(const char *) const; UT_uint32 getNrCopies(void) const; bool getCollate(void) const; + bool getReverse(void) const; GR_Graphics::ColorSpace getColorSpace(void) const; virtual GR_Graphics * getPrinterGraphicsContext(void) = 0; @@ -66,6 +67,7 @@ UT_uint32 m_bPersistValid; /* persists (internal) */ UT_uint32 m_persistNrCopies; /* persists (internal) */ bool m_persistCollate; /* persists (internal) */ + bool m_persistReverse; /* persists (internal) */ GR_Graphics::ColorSpace m_persistColorSpace; /* persists (internal) */ bool m_persistPrintToFile; /* persists (internal) */ @@ -77,8 +79,10 @@ bool m_bEnablePrintToFile; /* input */ bool m_bDoPrintRange; /* output */ bool m_bDoPrintSelection; /* output */ - bool m_bDoPrintToFile; /* output */ - bool m_bCollate; /* output */ + bool m_bDoPrintToFile; /* output */ + bool m_bCollate; /* output */ + bool m_bReverse; /* output */ + GR_Graphics::ColorSpace m_cColorSpace; /* output */ UT_uint32 m_nFirstPage; /* input/output */ UT_uint32 m_nLastPage; /* input/output */ Index: src/af/xap/xp/xap_String_Id.h =================================================================== RCS file: /cvsroot/abi/src/af/xap/xp/xap_String_Id.h,v retrieving revision 1.78.2.1 diff -u -r1.78.2.1 xap_String_Id.h --- src/af/xap/xp/xap_String_Id.h 21 Aug 2002 07:23:08 -0000 1.78.2.1 +++ src/af/xap/xp/xap_String_Id.h 10 Mar 2003 21:55:49 -0000 @@ -154,6 +154,7 @@ dcl(DLG_UP_To, " to ") dcl(DLG_UP_Selection, "Selection") dcl(DLG_UP_Collate, "Collate") +dcl(DLG_UP_Reverse, "Reverse Order") dcl(DLG_UP_EmbedFonts, "Embed Fonts") dcl(DLG_UP_Copies, "Copies: ") dcl(DLG_UP_PrintButton, "Print") Index: src/wp/ap/xp/ap_EditMethods.cpp =================================================================== RCS file: /cvsroot/abi/src/wp/ap/xp/ap_EditMethods.cpp,v retrieving revision 1.477.2.8 diff -u -r1.477.2.8 ap_EditMethods.cpp --- src/wp/ap/xp/ap_EditMethods.cpp 2 Aug 2002 08:39:39 -0000 1.477.2.8 +++ src/wp/ap/xp/ap_EditMethods.cpp 10 Mar 2003 21:57:44 -0000 @@ -5635,7 +5635,7 @@ bool s_actuallyPrint(PD_Document *doc, GR_Graphics *pGraphics, FV_View * pPrintView, const char *pDocName, - UT_uint32 nCopies, bool bCollate, + UT_uint32 nCopies, bool bCollate, bool bReverse, UT_sint32 iWidth, UT_sint32 iHeight, UT_uint32 nToPage, UT_uint32 nFromPage) { @@ -5663,16 +5663,50 @@ XML_Char msgBuf [1024]; - if (bCollate) + if (bCollate&&bReverse) + { + for (k=nToPage; (k >= nFromPage); k--) + for (j=1; (j <= nCopies); j++) + { + sprintf (msgBuf, msgTmpl, k, nToPage); + pFrame->setStatusMessage ( msgBuf ); + pFrame->nullUpdate(); + + // NB we will need a better way to calc + // pGraphics->m_iRasterPosition when + // iHeight is allowed to vary page to page + pGraphics->m_iRasterPosition = (k-1)*iHeight; + pGraphics->startPage(pDocName, k, orient, iWidth, iHeight); + pPrintView->draw(k-1, &da); + } + } + else if(bCollate) + { + for (k=nFromPage; (k <= nToPage); k++) + for (j=1; (j <= nCopies); j++) + { + sprintf (msgBuf, msgTmpl, k, nToPage); + pFrame->setStatusMessage ( msgBuf ); + pFrame->nullUpdate(); + + // NB we will need a better way to calc + // pGraphics->m_iRasterPosition when + // iHeight is allowed to vary page to page + pGraphics->m_iRasterPosition = (k-1)*iHeight; + pGraphics->startPage(pDocName, k, orient, iWidth, iHeight); + pPrintView->draw(k-1, &da); + } + } + else if(bReverse) { for (j=1; (j <= nCopies); j++) - for (k=nFromPage; (k <= nToPage); k++) + for (k=nToPage; (k >= nFromPage); k--) { sprintf (msgBuf, msgTmpl, k, nToPage); pFrame->setStatusMessage ( msgBuf ); pFrame->nullUpdate(); - // NB we will need a better way to calc + // NB we will need a better way to calc // pGraphics->m_iRasterPosition when // iHeight is allowed to vary page to page pGraphics->m_iRasterPosition = (k-1)*iHeight; @@ -5682,8 +5716,8 @@ } else { - for (k=nFromPage; (k <= nToPage); k++) - for (j=1; (j <= nCopies); j++) + for (j=1; (j <= nCopies); j++) + for (k=nFromPage; (k <= nToPage); k++) { sprintf (msgBuf, msgTmpl, k, nToPage); pFrame->setStatusMessage ( msgBuf ); @@ -5774,6 +5808,7 @@ UT_uint32 nCopies = pDialog->getNrCopies(); bool bCollate = pDialog->getCollate(); + bool bReverse = pDialog->getReverse(); // TODO these are here temporarily to make printing work. We'll fix the hack later. // BUGBUG assumes all pages are same size and orientation @@ -5782,7 +5817,7 @@ const char *pDocName = ((doc->getFilename()) ? doc->getFilename() : pFrame->getTempNameFromTitle()); - s_actuallyPrint(doc, pGraphics, pPrintView, pDocName, nCopies, bCollate, + s_actuallyPrint(doc, pGraphics, pPrintView, pDocName, nCopies, bCollate,bReverse, iWidth, iHeight, nToPage, nFromPage); delete pDocLayout; @@ -5851,6 +5886,7 @@ UT_uint32 nCopies = 1; bool bCollate = false; + bool bReverse = false; // TODO these are here temporarily to make printing work. We'll fix the hack later. // BUGBUG assumes all pages are same size and orientation @@ -5859,7 +5895,7 @@ const char *pDocName = ((doc->getFilename()) ? doc->getFilename() : pFrame->getTempNameFromTitle()); - s_actuallyPrint(doc, pGraphics, pPrintView, pDocName, nCopies, bCollate, + s_actuallyPrint(doc, pGraphics, pPrintView, pDocName, nCopies, bCollate,bReverse, iWidth, iHeight, nToPage, nFromPage); delete pDocLayout; Index: src/wp/ap/xp/ap_EditMethods.h =================================================================== RCS file: /cvsroot/abi/src/wp/ap/xp/ap_EditMethods.h,v retrieving revision 1.1.10.2 diff -u -r1.1.10.2 ap_EditMethods.h --- src/wp/ap/xp/ap_EditMethods.h 2 Aug 2002 08:27:55 -0000 1.1.10.2 +++ src/wp/ap/xp/ap_EditMethods.h 10 Mar 2003 21:57:44 -0000 @@ -27,7 +27,7 @@ // defined in ap_editmethods.cpp bool s_actuallyPrint(PD_Document *doc, GR_Graphics *pGraphics, FV_View * pPrintView, const char *pDocName, - UT_uint32 nCopies, bool bCollate, + UT_uint32 nCopies, bool bCollate, bool bReverse, UT_sint32 inWidth, UT_sint32 inHeight, UT_uint32 nToPage, UT_uint32 nFromPage) ;