]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagtiff.cpp
fix for popup menus (part of patch 1238355)
[wxWidgets.git] / src / common / imagtiff.cpp
index 07202e5c1cab2cacbdd1d1f14ca013cd4b40e8b1..7662ccf86c9e1afc38e606cc6e6e8aa88d834af0 100644 (file)
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
-#include "wx/defs.h"
-
 #if wxUSE_IMAGE && wxUSE_LIBTIFF
 
 #include "wx/imagtiff.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+    #include "wx/app.h"
+    #include "wx/intl.h"
+#endif
+
 #include "wx/bitmap.h"
 #include "wx/debug.h"
-#include "wx/log.h"
-#include "wx/app.h"
 extern "C"
 {
     #include "tiff.h"
@@ -30,11 +33,14 @@ extern "C"
 }
 #include "wx/filefn.h"
 #include "wx/wfstream.h"
-#include "wx/intl.h"
 #include "wx/module.h"
 
 #ifndef TIFFLINKAGEMODE
-  #define TIFFLINKAGEMODE LINKAGEMODE
+  #if defined(__WATCOMC__) && defined(__WXMGL__)
+    #define TIFFLINKAGEMODE cdecl
+  #else
+    #define TIFFLINKAGEMODE LINKAGEMODE
+  #endif
 #endif
 
 //-----------------------------------------------------------------------------
@@ -94,7 +100,7 @@ _tiffReadProc(thandle_t handle, tdata_t buf, tsize_t size)
 {
     wxInputStream *stream = (wxInputStream*) handle;
     stream->Read( (void*) buf, (size_t) size );
-    return stream->LastRead();
+    return wx_truncate_cast(tsize_t, stream->LastRead());
 }
 
 tsize_t TIFFLINKAGEMODE
@@ -102,7 +108,7 @@ _tiffWriteProc(thandle_t handle, tdata_t buf, tsize_t size)
 {
     wxOutputStream *stream = (wxOutputStream*) handle;
     stream->Write( (void*) buf, (size_t) size );
-    return stream->LastWrite();
+    return wx_truncate_cast(tsize_t, stream->LastWrite());
 }
 
 toff_t TIFFLINKAGEMODE
@@ -389,7 +395,13 @@ bool wxTIFFHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbo
 
     int compression = image->GetOptionInt(wxIMAGE_OPTION_COMPRESSION);
     if ( !compression )
-        compression=COMPRESSION_LZW;
+    {
+        // we can't use COMPRESSION_LZW because current version of libtiff
+        // doesn't implement it ("no longer implemented due to Unisys patent
+        // enforcement") and other compression methods are lossy so we
+        // shouldn't use them by default -- and the only remaining one is none
+        compression = COMPRESSION_NONE;
+    }
 
     TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, spp);
     TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bpp);