X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f62edb0ecd881e790dd72b7f49da29e943200edb..96a4cdebda5b3eca828bed1ee56dc550c36784bf:/src/gtk/gnome/gprint.cpp diff --git a/src/gtk/gnome/gprint.cpp b/src/gtk/gnome/gprint.cpp index a676664ff1..51ff5f64bd 100644 --- a/src/gtk/gnome/gprint.cpp +++ b/src/gtk/gnome/gprint.cpp @@ -26,6 +26,7 @@ #include "wx/math.h" #include "wx/image.h" #include "wx/module.h" + #include "wx/crt.h" #endif #include "wx/fontutil.h" @@ -153,11 +154,13 @@ public: (GnomePrintConfig *config, const guchar *key, gboolean value), (config, key, value), false ) wxDL_METHOD_DEFINE( gboolean, gnome_print_config_set_length, (GnomePrintConfig *config, const guchar *key, gdouble value, const GnomePrintUnit *unit), (config, key, value, unit), false ) - + wxDL_METHOD_DEFINE( guchar*, gnome_print_config_get, (GnomePrintConfig *config, const guchar *key), (config, key), NULL ) wxDL_METHOD_DEFINE( gboolean, gnome_print_config_get_length, (GnomePrintConfig *config, const guchar *key, gdouble *val, const GnomePrintUnit **unit), (config, key, val, unit), false ) + wxDL_METHOD_DEFINE( gboolean, gnome_print_config_get_boolean, + (GnomePrintConfig *config, const guchar *key, gboolean *val), (config, key, val), false ) wxDL_METHOD_DEFINE( GtkWidget*, gnome_print_dialog_new, (GnomePrintJob *gpj, const guchar *title, gint flags), (gpj, title, flags), NULL ) @@ -262,9 +265,10 @@ bool wxGnomePrintLibrary::InitializeMethods() wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_double ); wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_int ); wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_length ); - + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_get ); wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_get_length ); + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_get_boolean ); wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_new ); wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_construct_range_page ); @@ -308,7 +312,29 @@ bool wxGnomePrintNativeData::TransferTo( wxPrintData &data ) else data.SetOrientation( wxPORTRAIT ); g_free( res ); - + + res = gs_libGnomePrint->gnome_print_config_get( m_config, + (guchar*)(char*)GNOME_PRINT_KEY_OUTPUT_FILENAME ); + if (res) + { + data.SetFilename( wxConvFile.cMB2WX( (const char*) res ) ); + wxPrintf( "filename %s\n", data.GetFilename() ); + g_free( res ); + } + else + { + data.SetFilename( wxEmptyString ); + } + + gboolean ret; + if (gs_libGnomePrint->gnome_print_config_get_boolean( m_config, + (guchar*)(char*)GNOME_PRINT_KEY_COLLATE, &ret)) + { + data.SetCollate( ret ); + } + + // gnome_print_v + return true; } @@ -379,7 +405,7 @@ bool wxGnomePrintNativeData::TransferFrom( const wxPrintData &data ) (guchar*)(char*)"C6" ); break; case wxPAPER_NONE: break; - + default: case wxPAPER_A4: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, @@ -443,7 +469,9 @@ bool wxGnomePrintFactory::HasPrintSetupDialog() return false; } -wxDialog *wxGnomePrintFactory::CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ) +wxDialog * +wxGnomePrintFactory::CreatePrintSetupDialog(wxWindow * WXUNUSED(parent), + wxPrintData * WXUNUSED(data)) { return NULL; } @@ -519,7 +547,7 @@ wxGnomePrintDialog::wxGnomePrintDialog( wxWindow *parent, wxPrintData *data ) void wxGnomePrintDialog::Init() { wxPrintData data = m_printDialogData.GetPrintData(); - + data.ConvertToNative(); wxGnomePrintNativeData *native = @@ -623,8 +651,8 @@ bool wxGnomePrintDialog::TransferDataFromWindow() IMPLEMENT_CLASS(wxGnomePageSetupDialog, wxPageSetupDialogBase) -wxGnomePageSetupDialog::wxGnomePageSetupDialog( wxWindow *parent, - wxPageSetupDialogData* data ) +wxGnomePageSetupDialog::wxGnomePageSetupDialog(wxWindow * WXUNUSED(parent), + wxPageSetupDialogData *data) { if (data) m_pageDialogData = *data; @@ -650,7 +678,7 @@ wxGnomePageSetupDialog::wxGnomePageSetupDialog( wxWindow *parent, double mt = (double) m_pageDialogData.GetMarginTopLeft().y; double mr = (double) m_pageDialogData.GetMarginBottomRight().x; double mb = (double) m_pageDialogData.GetMarginBottomRight().y; - + gs_libGnomePrint->gnome_print_config_set_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_LEFT, ml, mm_unit ); gs_libGnomePrint->gnome_print_config_set_length (config, @@ -695,7 +723,7 @@ int wxGnomePageSetupDialog::ShowModal() { wxGnomePrintNativeData *native = (wxGnomePrintNativeData*) m_pageDialogData.GetPrintData().GetNativeData(); - + GnomePrintConfig *config = native->GetPrintConfig(); @@ -790,7 +818,7 @@ bool wxGnomePrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) } wxPrintData printdata = GetPrintDialogData().GetPrintData(); - + wxGnomePrintNativeData *native = (wxGnomePrintNativeData*) printdata.GetNativeData(); @@ -934,7 +962,7 @@ wxDC* wxGnomePrinter::PrintDialog( wxWindow *parent ) return new wxGnomePrintDC( m_printDialogData.GetPrintData() ); } -bool wxGnomePrinter::Setup( wxWindow *parent ) +bool wxGnomePrinter::Setup(wxWindow * WXUNUSED(parent)) { return false; } @@ -992,12 +1020,19 @@ bool wxGnomePrintDC::IsOk() const return true; } -bool wxGnomePrintDC::DoFloodFill(wxCoord x1, wxCoord y1, const wxColour &col, int style ) +bool +wxGnomePrintDC::DoFloodFill(wxCoord WXUNUSED(x1), + wxCoord WXUNUSED(y1), + const wxColour& WXUNUSED(col), + int WXUNUSED(style)) { return false; } -bool wxGnomePrintDC::DoGetPixel(wxCoord x1, wxCoord y1, wxColour *col) const +bool +wxGnomePrintDC::DoGetPixel(wxCoord WXUNUSED(x1), + wxCoord WXUNUSED(y1), + wxColour * WXUNUSED(col)) const { return false; } @@ -1016,7 +1051,7 @@ void wxGnomePrintDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) CalcBoundingBox( x2, y2 ); } -void wxGnomePrintDC::DoCrossHair(wxCoord x, wxCoord y) +void wxGnomePrintDC::DoCrossHair(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) { } @@ -1121,7 +1156,7 @@ void wxGnomePrintDC::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,d CalcBoundingBox( x+w, y+h ); } -void wxGnomePrintDC::DoDrawPoint(wxCoord x, wxCoord y) +void wxGnomePrintDC::DoDrawPoint(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) { } @@ -1145,7 +1180,9 @@ void wxGnomePrintDC::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoo gs_libGnomePrint->gnome_print_stroke ( m_gpc); } -void wxGnomePrintDC::DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset, int fillStyle) +void wxGnomePrintDC::DoDrawPolygon(int n, wxPoint points[], + wxCoord xoffset, wxCoord yoffset, + int WXUNUSED(fillStyle)) { if (n==0) return; @@ -1198,6 +1235,9 @@ void wxGnomePrintDC::DoDrawPolyPolygon(int n, int count[], wxPoint points[], wxC void wxGnomePrintDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { + width--; + height--; + if (m_brush.GetStyle () != wxTRANSPARENT) { SetBrush( m_brush ); @@ -1233,7 +1273,10 @@ void wxGnomePrintDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoor void wxGnomePrintDC::DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius) { - wxCoord rad = (wxCoord) radius; + width--; + height--; + + wxCoord rad = wxRound( radius ); if (m_brush.GetStyle() != wxTRANSPARENT) { @@ -1348,6 +1391,9 @@ void wxGnomePrintDC::makeEllipticalPath(wxCoord x, wxCoord y, void wxGnomePrintDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { + width--; + height--; + if (m_brush.GetStyle () != wxTRANSPARENT) { SetBrush( m_brush ); @@ -1368,20 +1414,20 @@ void wxGnomePrintDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord } #if wxUSE_SPLINES -void wxGnomePrintDC::DoDrawSpline(wxList *points) +void wxGnomePrintDC::DoDrawSpline(const wxPointList *points) { SetPen (m_pen); double c, d, x1, y1, x2, y2, x3, y3; wxPoint *p, *q; - wxList::compatibility_iterator node = points->GetFirst(); - p = (wxPoint *)node->GetData(); + wxPointList::compatibility_iterator node = points->GetFirst(); + p = node->GetData(); x1 = p->x; y1 = p->y; node = node->GetNext(); - p = (wxPoint *)node->GetData(); + p = node->GetData(); c = p->x; d = p->y; x3 = @@ -1399,7 +1445,7 @@ void wxGnomePrintDC::DoDrawSpline(wxList *points) node = node->GetNext(); while (node) { - q = (wxPoint *)node->GetData(); + q = node->GetData(); x1 = x3; y1 = y3; @@ -1427,9 +1473,14 @@ void wxGnomePrintDC::DoDrawSpline(wxList *points) } #endif // wxUSE_SPLINES -bool wxGnomePrintDC::DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, int rop, bool useMask, - wxCoord xsrcMask, wxCoord ysrcMask) +bool +wxGnomePrintDC::DoBlit(wxCoord xdest, wxCoord ydest, + wxCoord width, wxCoord height, + wxDC *source, + wxCoord xsrc, wxCoord ysrc, + int rop, + bool WXUNUSED(useMask), + wxCoord WXUNUSED(xsrcMask), wxCoord WXUNUSED(ysrcMask)) { wxCHECK_MSG( source, false, wxT("invalid source dc") ); @@ -1451,7 +1502,10 @@ void wxGnomePrintDC::DoDrawIcon( const wxIcon& icon, wxCoord x, wxCoord y ) DoDrawBitmap( icon, x, y, true ); } -void wxGnomePrintDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, bool useMask ) +void +wxGnomePrintDC::DoDrawBitmap(const wxBitmap& bitmap, + wxCoord x, wxCoord y, + bool WXUNUSED(useMask)) { if (!bitmap.Ok()) return; @@ -1567,18 +1621,18 @@ void wxGnomePrintDC::DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord // Draw layout. gs_libGnomePrint->gnome_print_moveto (m_gpc, xx, yy); - + gs_libGnomePrint->gnome_print_gsave( m_gpc ); - + gs_libGnomePrint->gnome_print_scale( m_gpc, m_scaleX * DEV2PS, m_scaleY * DEV2PS ); - + if (fabs(angle) > 0.00001) gs_libGnomePrint->gnome_print_rotate( m_gpc, angle ); - + gs_libGnomePrint->gnome_print_pango_layout( m_gpc, m_layout ); - + gs_libGnomePrint->gnome_print_grestore( m_gpc ); - + if (underlined) { // undo underline attributes setting: @@ -1614,7 +1668,7 @@ void wxGnomePrintDC::SetPen( const wxPen& pen ) m_pen = pen; double width; - + if (m_pen.GetWidth() <= 0) width = 0.1; else @@ -1712,20 +1766,20 @@ void wxGnomePrintDC::SetBrush( const wxBrush& brush ) } } -void wxGnomePrintDC::SetLogicalFunction( int function ) +void wxGnomePrintDC::SetLogicalFunction(int WXUNUSED(function)) { } -void wxGnomePrintDC::SetBackground( const wxBrush& brush ) +void wxGnomePrintDC::SetBackground(const wxBrush& WXUNUSED(brush)) { } void wxGnomePrintDC::DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { wxDC::DoSetClippingRegion( x, y, width, height ); - + gs_libGnomePrint->gnome_print_gsave( m_gpc ); - + gs_libGnomePrint->gnome_print_newpath( m_gpc ); gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); @@ -1740,7 +1794,7 @@ void wxGnomePrintDC::DestroyClippingRegion() wxDC::DestroyClippingRegion(); gs_libGnomePrint->gnome_print_grestore( m_gpc ); - + #if 0 // not needed, we set the values in each // drawing method anyways @@ -1750,7 +1804,7 @@ void wxGnomePrintDC::DestroyClippingRegion() #endif } -bool wxGnomePrintDC::StartDoc(const wxString& message) +bool wxGnomePrintDC::StartDoc(const wxString& WXUNUSED(message)) { return true; } @@ -1865,7 +1919,7 @@ void wxGnomePrintDC::DoGetSize(int* width, int* height) const if (width) *width = wxRound( pw * PS2DEV ); - + if (height) *height = wxRound( ph * PS2DEV ); } @@ -1899,9 +1953,9 @@ wxSize wxGnomePrintDC::GetPPI() const } void wxGnomePrintDC::SetPrintData(const wxPrintData& data) -{ +{ m_printData = data; - + int height; if (m_printData.GetOrientation() == wxPORTRAIT) GetSize( NULL, &height ); @@ -1910,7 +1964,7 @@ void wxGnomePrintDC::SetPrintData(const wxPrintData& data) m_deviceLocalOriginY = height; } -void wxGnomePrintDC::SetResolution(int ppi) +void wxGnomePrintDC::SetResolution(int WXUNUSED(ppi)) { } @@ -2030,5 +2084,5 @@ void wxGnomePrintPreview::DetermineScaling() } } -#endif +#endif // wxUSE_LIBGNOMEPRINT