]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dcpsg.cpp
Fixed wxAtomicInc/Dec() to not use asm/atomic.h header on Linux - it's kernel interna...
[wxWidgets.git] / src / generic / dcpsg.cpp
index 0f0ded3abd03039319eba902be2be95a9b055a4d..4f7be92ace822c41ff2bd2d7de1be9b59eb117c4 100644 (file)
@@ -270,6 +270,7 @@ wxPostScriptDC::wxPostScriptDC ()
 
     m_signX =  1;  // default x-axis left to right
     m_signY = -1;  // default y-axis bottom up -> top down
+    
 }
 
 wxPostScriptDC::wxPostScriptDC (const wxPrintData& printData)
@@ -292,6 +293,10 @@ wxPostScriptDC::wxPostScriptDC (const wxPrintData& printData)
 
     m_printData = printData;
 
+    int h = 0;
+    GetSize( NULL, &h );
+    SetDeviceLocalOrigin( 0, h );
+    
     m_ok = true;
 }
 
@@ -1480,6 +1485,14 @@ wxCoord wxPostScriptDC::GetCharWidth() const
     return (wxCoord) (GetCharHeight() * 72.0 / 120.0);
 }
 
+void wxPostScriptDC::SetPrintData(const wxPrintData& data)
+{ 
+    m_printData = data;
+    
+    int h = 0;
+    GetSize( NULL, &h );
+    SetDeviceLocalOrigin( 0, h );
+}
 
 void wxPostScriptDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp )
 {
@@ -1491,15 +1504,29 @@ void wxPostScriptDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp )
     ComputeScaleAndOrigin();
 }
 
-void wxPostScriptDC::SetDeviceOrigin( wxCoord x, wxCoord y )
+void wxPostScriptDC::SetMapMode(int mode)
 {
-    wxCHECK_RET( m_ok, wxT("invalid postscript dc") );
+    wxDCBase::SetMapMode(mode);
+}
 
-    int h = 0;
-    int w = 0;
-    GetSize( &w, &h );
+void wxPostScriptDC::SetUserScale(double x, double y)
+{
+    wxDCBase::SetUserScale(x,y);
+}
+
+void wxPostScriptDC::SetLogicalScale(double x, double y)
+{
+    wxDCBase::SetLogicalScale(x,y);
+}
 
-    wxDC::SetDeviceOrigin( x, h-y );
+void wxPostScriptDC::SetLogicalOrigin(wxCoord x, wxCoord y)
+{
+    wxDCBase::SetLogicalOrigin(x,y);
+}
+
+void wxPostScriptDC::SetDeviceOrigin(wxCoord x, wxCoord y)
+{
+    wxDCBase::SetDeviceOrigin(x,y);
 }
 
 void wxPostScriptDC::DoGetSize(int* width, int* height) const
@@ -1835,11 +1862,11 @@ wxCoord wxPostScriptDC::GetCharHeight() const
 void wxPostScriptDC::DoGetTextExtent(const wxString& string,
                                      wxCoord *x, wxCoord *y,
                                      wxCoord *descent, wxCoord *externalLeading,
-                                     wxFont *theFont ) const
+                                     const wxFont *theFont ) const
 {
-    wxFont *fontToUse = theFont;
+    const wxFont *fontToUse = theFont;
 
-    if (!fontToUse) fontToUse = (wxFont*) &m_font;
+    if (!fontToUse) fontToUse = &m_font;
 
     wxCHECK_RET( fontToUse, wxT("GetTextExtent: no font defined") );
 
@@ -2201,17 +2228,29 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string,
 }
 
 // print postscript datas via required method (file, stream)
-void wxPostScriptDC::DoPsPrintfFormat(const wxChar *fmt, ... )
+#if !wxUSE_UTF8_LOCALE_ONLY
+void wxPostScriptDC::DoPsPrintfFormatWchar(const wxChar *fmt, ...)
+{
+    va_list argptr;
+    va_start(argptr, fmt);
+
+    PsPrint( wxString::FormatV( fmt, argptr ) );
+}
+#endif // !wxUSE_UTF8_LOCALE_ONLY
+
+#if wxUSE_UNICODE_UTF8
+void wxPostScriptDC::DoPsPrintfFormatUtf8(const char *fmt, ...)
 {
     va_list argptr;
     va_start(argptr, fmt);
 
     PsPrint( wxString::FormatV( fmt, argptr ) );
 }
+#endif // wxUSE_UNICODE_UTF8
 
 void wxPostScriptDC::PsPrint( const wxString& str )
 {
-    wxWX2MBbuf psdata(str.mb_str(wxConvUTF8));
+    const wxWX2MBbuf psdata(str.mb_str(wxConvUTF8));
 
     wxPostScriptPrintNativeData *data =
         (wxPostScriptPrintNativeData *) m_printData.GetNativeData();