Added IFF handler.
Minor doc updates. Corrected configure for SGI OpenGL (wx-config related). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -472,7 +472,7 @@ install: @AFMINSTALL@ @WX_ALL_INSTALLED@ m4datainstall
 | 
			
		||||
	@echo " "
 | 
			
		||||
	@echo " The installation of wxWindows is finished.  On certain"
 | 
			
		||||
	@echo " platforms (e.g. Linux) you'll now have to run ldconfig"
 | 
			
		||||
	@echo " if you installed a shared library and also modify"
 | 
			
		||||
	@echo " if you installed a shared library and also modify the"
 | 
			
		||||
	@echo " LD_LIBRARY_PATH (or equivalent) environment variable."
 | 
			
		||||
	@echo " "
 | 
			
		||||
	@echo " wxWindows comes with no guarantees and doesn't claim"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								configure.in
									
									
									
									
									
								
							@@ -813,6 +813,7 @@ if test $DEBUG_CONFIGURE = 1; then
 | 
			
		||||
  DEFAULT_wxUSE_GIF=no
 | 
			
		||||
  DEFAULT_wxUSE_PCX=no
 | 
			
		||||
  DEFAULT_wxUSE_PNM=no
 | 
			
		||||
  DEFAULT_wxUSE_IFF=no
 | 
			
		||||
  DEFAULT_wxUSE_XPM=no
 | 
			
		||||
  DEFAULT_wxUSE_ICO_CUR=no
 | 
			
		||||
else
 | 
			
		||||
@@ -983,6 +984,7 @@ else
 | 
			
		||||
  DEFAULT_wxUSE_IMAGE=yes
 | 
			
		||||
  DEFAULT_wxUSE_GIF=yes
 | 
			
		||||
  DEFAULT_wxUSE_PCX=yes
 | 
			
		||||
  DEFAULT_wxUSE_IFF=yes
 | 
			
		||||
  DEFAULT_wxUSE_PNM=yes
 | 
			
		||||
  DEFAULT_wxUSE_XPM=yes
 | 
			
		||||
  DEFAULT_wxUSE_ICO_CUR=yes
 | 
			
		||||
@@ -1358,6 +1360,7 @@ WX_ARG_ENABLE(palette,     [  --enable-palette        use wxPalette class], wxUS
 | 
			
		||||
WX_ARG_ENABLE(image,       [  --enable-image          use wxImage class], wxUSE_IMAGE)
 | 
			
		||||
WX_ARG_ENABLE(gif,         [  --enable-gif            use gif images (GIF file format)], wxUSE_GIF)
 | 
			
		||||
WX_ARG_ENABLE(pcx,         [  --enable-pcx            use pcx images (PCX file format)], wxUSE_PCX)
 | 
			
		||||
WX_ARG_ENABLE(iff,         [  --enable-iff            use iff images (IFF file format)], wxUSE_IFF)
 | 
			
		||||
WX_ARG_ENABLE(pnm,         [  --enable-pnm            use pnm images (PNM file format)], wxUSE_PNM)
 | 
			
		||||
WX_ARG_ENABLE(xpm,         [  --enable-xpm            use xpm images (XPM file format)], wxUSE_XPM)
 | 
			
		||||
WX_ARG_ENABLE(ico_cur,     [  --enable-icocur         use Windows ICO and CUR formats], wxUSE_ICO_CUR)
 | 
			
		||||
@@ -2407,7 +2410,11 @@ if test "$wxUSE_OPENGL" = "yes"; then
 | 
			
		||||
                WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],[GL])
 | 
			
		||||
                if test "$ac_find_libraries" != "" ; then
 | 
			
		||||
                    WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
 | 
			
		||||
                    LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
 | 
			
		||||
                    if test "$ac_path_to_link" = " -L/usr/lib" ; then
 | 
			
		||||
                        LDFLAGS_GL="$LDFLAGS"
 | 
			
		||||
                    else
 | 
			
		||||
                        LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
 | 
			
		||||
                    fi
 | 
			
		||||
                    OPENGL_LIBS="-lGL -lGLU"
 | 
			
		||||
                    AC_MSG_RESULT([yes])
 | 
			
		||||
                else
 | 
			
		||||
@@ -4712,6 +4719,10 @@ if test "$wxUSE_PCX" = "yes" ; then
 | 
			
		||||
  AC_DEFINE(wxUSE_PCX)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "$wxUSE_IFF" = "yes" ; then
 | 
			
		||||
  AC_DEFINE(wxUSE_IFF)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "$wxUSE_PNM" = "yes" ; then
 | 
			
		||||
  AC_DEFINE(wxUSE_PNM)
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -166,6 +166,7 @@ gaugecmn.cpp	Common
 | 
			
		||||
gdicmn.cpp	Common
 | 
			
		||||
geometry.cpp	Common
 | 
			
		||||
gifdecod.cpp	Common
 | 
			
		||||
iffdecod.cpp	Common
 | 
			
		||||
hash.cpp	Common	Base
 | 
			
		||||
helpbase.cpp	Common
 | 
			
		||||
http.cpp	Common	Socket,Base
 | 
			
		||||
@@ -173,6 +174,7 @@ imagall.cpp	Common
 | 
			
		||||
imagbmp.cpp	Common
 | 
			
		||||
image.cpp	Common
 | 
			
		||||
imaggif.cpp	Common
 | 
			
		||||
imagiff.cpp	Common
 | 
			
		||||
imagjpeg.cpp	Common	Win32Only
 | 
			
		||||
imagpcx.cpp	Common	Win32Only
 | 
			
		||||
imagpng.cpp	Common	Win32Only
 | 
			
		||||
@@ -794,8 +796,10 @@ helpbase.h	WXH
 | 
			
		||||
helphtml.h	WXH
 | 
			
		||||
helpwin.h	WXH
 | 
			
		||||
icon.h	WXH
 | 
			
		||||
iffdecod.h	WXH
 | 
			
		||||
image.h	WXH
 | 
			
		||||
imaggif.h	WXH
 | 
			
		||||
imagiff.h	WXH
 | 
			
		||||
imagxpm.h	WXH
 | 
			
		||||
imagbmp.h	WXH
 | 
			
		||||
imagpng.h	WXH
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,19 @@
 | 
			
		||||
 | 
			
		||||
*** wxWindows 2.3.3 ***
 | 
			
		||||
 | 
			
		||||
Some wxFont changes for better mixing of native fonts
 | 
			
		||||
and wxFont's accessors.
 | 
			
		||||
 | 
			
		||||
Corrections to wxImage code for special SGI visuals.
 | 
			
		||||
 | 
			
		||||
Added IFF image handler.
 | 
			
		||||
 | 
			
		||||
Added ICO, CUR and ANI image handler.
 | 
			
		||||
 | 
			
		||||
wxFrame::SetMenuBar() works again.
 | 
			
		||||
 | 
			
		||||
wxButton honours wxBU_EXACTFIT.
 | 
			
		||||
 | 
			
		||||
wxStaticBox honours wxALIGN_XXX styles
 | 
			
		||||
 | 
			
		||||
Reworked wxConfig class interface.
 | 
			
		||||
 
 | 
			
		||||
@@ -245,38 +245,37 @@ you download wxGTK, it will default to --with-gtk etc. But
 | 
			
		||||
if you use all of our CVS repository you have to choose a 
 | 
			
		||||
toolkit. You must do this by running configure with either of:
 | 
			
		||||
 | 
			
		||||
    --without-gtk            Don't use the GIMP ToolKit (GTK)
 | 
			
		||||
    --with-gtk              Use the GIMP ToolKit (GTK). Default.
 | 
			
		||||
	
 | 
			
		||||
	--with-motif             Use either Motif or Lesstif
 | 
			
		||||
	                         Configure will look for both. 
 | 
			
		||||
	--with-motif            Use either Motif or Lesstif
 | 
			
		||||
	                        Configure will look for both. 
 | 
			
		||||
 | 
			
		||||
The following options handle the kind of library you want to build.
 | 
			
		||||
 | 
			
		||||
	--disable-threads       Compile without thread support.
 | 
			
		||||
 | 
			
		||||
	--disable-shared        Do not create shared libraries.
 | 
			
		||||
 | 
			
		||||
	--enable-static         Create static libraries.
 | 
			
		||||
	--disable-shared        Do not create shared libraries, but
 | 
			
		||||
                            build static libraries instead.
 | 
			
		||||
 | 
			
		||||
	--disable-optimise	    Do not optimise the code. Can
 | 
			
		||||
	                        sometimes be useful for debugging
 | 
			
		||||
				and is required on some architectures
 | 
			
		||||
				such as Sun with gcc 2.8.X which
 | 
			
		||||
				would otherwise produce segvs.
 | 
			
		||||
                            and is required on some architectures
 | 
			
		||||
                            such as Sun with gcc 2.8.X which
 | 
			
		||||
                            would otherwise produce segvs.
 | 
			
		||||
 | 
			
		||||
	--enable-profile        Add profiling info to the object 
 | 
			
		||||
				            files. Currently broken, I think.
 | 
			
		||||
				
 | 
			
		||||
	--enable-no_rtti        Enable compilation without creation of
 | 
			
		||||
	                        C++ RTTI information in object files. 
 | 
			
		||||
				This will speed-up compilation and reduce 
 | 
			
		||||
				binary size.
 | 
			
		||||
                            This will speed-up compilation and reduce 
 | 
			
		||||
                            binary size.
 | 
			
		||||
				
 | 
			
		||||
	--enable-no_exceptions  Enable compilation without creation of
 | 
			
		||||
	                        C++ exception information in object files. 
 | 
			
		||||
				This will speed-up compilation and reduce 
 | 
			
		||||
				binary size. Also fewer crashes during the
 | 
			
		||||
				actual compilation...
 | 
			
		||||
                            This will speed-up compilation and reduce 
 | 
			
		||||
                            binary size. Also fewer crashes during the
 | 
			
		||||
                            actual compilation...
 | 
			
		||||
				
 | 
			
		||||
	--enable-no_deps        Enable compilation without creation of
 | 
			
		||||
	                        dependency information.
 | 
			
		||||
@@ -296,11 +295,11 @@ The following options handle the kind of library you want to build.
 | 
			
		||||
 | 
			
		||||
	--enable-debug_flag	    Define __DEBUG__ and __WXDEBUG__ when
 | 
			
		||||
	                        compiling. This enable wxWindows' very
 | 
			
		||||
				useful internal debugging tricks (such
 | 
			
		||||
				as automatically reporting illegal calls)
 | 
			
		||||
				to work. Note that program and library
 | 
			
		||||
				must be compiled with the same debug 
 | 
			
		||||
				options.
 | 
			
		||||
                            useful internal debugging tricks (such
 | 
			
		||||
                            as automatically reporting illegal calls)
 | 
			
		||||
                            to work. Note that program and library
 | 
			
		||||
                            must be compiled with the same debug 
 | 
			
		||||
                            options.
 | 
			
		||||
 | 
			
		||||
* Feature Options
 | 
			
		||||
-------------------
 | 
			
		||||
@@ -327,6 +326,8 @@ are
 | 
			
		||||
	
 | 
			
		||||
	--disable-pcx		    Disables PCX image format code.
 | 
			
		||||
	
 | 
			
		||||
	--disable-iff		    Disables IFF image format code.
 | 
			
		||||
	
 | 
			
		||||
    --disable-resources     Disables the use of *.wxr type
 | 
			
		||||
	                        resources.
 | 
			
		||||
		
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
 | 
			
		||||
   Welcome to wxWindows/Gtk 2.2
 | 
			
		||||
   Welcome to wxWindows/Gtk 2.3
 | 
			
		||||
 | 
			
		||||
you have downloaded version 2.2 of the GTK port of the 
 | 
			
		||||
you have downloaded version 2.3 of the GTK port of the 
 | 
			
		||||
wxWindows GUI library.
 | 
			
		||||
 | 
			
		||||
wxWindows no longer supports GTK 1.0 (as did some early
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,6 @@
 | 
			
		||||
 | 
			
		||||
-------------------- High priority ---------------------
 | 
			
		||||
 | 
			
		||||
Port to GTK 2.0 - including its Unicode support.
 | 
			
		||||
 | 
			
		||||
Fix crash in DnD reported from Mahogany.
 | 
			
		||||
 | 
			
		||||
-------------------- Medium priority ---------------------
 | 
			
		||||
@@ -18,6 +16,8 @@ Show accelerator control labels and actually implement them
 | 
			
		||||
Right aligned checkboxes: focus highlighting is wrong, tooltips can't be set can't be set
 | 
			
		||||
  -> Postponed. GTK 2.0 can do that.
 | 
			
		||||
 | 
			
		||||
Port to GTK 2.0 - including its Unicode support.
 | 
			
		||||
 | 
			
		||||
Add wxNoteBook::GetPageIndex()
 | 
			
		||||
Add wxNoteBook::SetTabPosition()
 | 
			
		||||
  -> Postponed.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										94
									
								
								include/wx/iffdecod.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								include/wx/iffdecod.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,94 @@
 | 
			
		||||
//
 | 
			
		||||
// iffdecod.h	- image handler for IFF/ILBM images
 | 
			
		||||
//
 | 
			
		||||
// (c) Steffen Gutmann, 2002
 | 
			
		||||
//
 | 
			
		||||
// Creation date: 08.01.2002
 | 
			
		||||
// Last modified: 12.01.2002
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef WX_IIF_DECODE_H
 | 
			
		||||
#define WX_IIF_DECODE_H
 | 
			
		||||
 | 
			
		||||
#ifdef __GNUG__
 | 
			
		||||
#pragma interface "iffdecod.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "wx/setup.h"
 | 
			
		||||
#define wxUSE_IFF 1
 | 
			
		||||
 | 
			
		||||
#if wxUSE_STREAMS && wxUSE_IFF
 | 
			
		||||
 | 
			
		||||
#include "wx/stream.h"
 | 
			
		||||
#include "wx/image.h"
 | 
			
		||||
 | 
			
		||||
// --------------------------------------------------------------------------
 | 
			
		||||
// Constants
 | 
			
		||||
// --------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// Error codes:
 | 
			
		||||
//  Note that the error code wxIFF_TRUNCATED means that the image itself
 | 
			
		||||
//  is most probably OK, but the decoder didn't reach the end of the data
 | 
			
		||||
//  stream; this means that if it was not reading directly from file,
 | 
			
		||||
//  the stream will not be correctly positioned.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
    wxIFF_OK = 0,                   /* everything was OK */
 | 
			
		||||
    wxIFF_INVFORMAT,                /* error in iff header */
 | 
			
		||||
    wxIFF_MEMERR,                   /* error allocating memory */
 | 
			
		||||
    wxIFF_TRUNCATED                 /* file appears to be truncated */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// --------------------------------------------------------------------------
 | 
			
		||||
// wxIFFDecoder class
 | 
			
		||||
// --------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// internal class for storing IFF image data
 | 
			
		||||
class IFFImage
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    unsigned int w;                 /* width */
 | 
			
		||||
    unsigned int h;                 /* height */
 | 
			
		||||
    int transparent;                /* transparent color (-1 = none) */
 | 
			
		||||
    int colors;			    /* number of colors */
 | 
			
		||||
    unsigned char *p;               /* bitmap */
 | 
			
		||||
    unsigned char *pal;             /* palette */
 | 
			
		||||
 | 
			
		||||
    IFFImage() : w(0), h(0), colors(0), p(0), pal(0) {}
 | 
			
		||||
    ~IFFImage() { delete [] p; delete [] pal; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class WXDLLEXPORT wxIFFDecoder
 | 
			
		||||
{
 | 
			
		||||
private:
 | 
			
		||||
    IFFImage *m_image;		// image data
 | 
			
		||||
    wxInputStream *m_f; 	// input stream
 | 
			
		||||
    unsigned char *databuf; 
 | 
			
		||||
    unsigned char *picptr; 
 | 
			
		||||
    unsigned char *decomp_mem;
 | 
			
		||||
 | 
			
		||||
    void Destroy();
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    // get data of current frame
 | 
			
		||||
    unsigned char* GetData() const;
 | 
			
		||||
    unsigned char* GetPalette() const;
 | 
			
		||||
    int GetNumColors() const;
 | 
			
		||||
    unsigned int GetWidth() const;
 | 
			
		||||
    unsigned int GetHeight() const;
 | 
			
		||||
    int GetTransparentColour() const;
 | 
			
		||||
 | 
			
		||||
    // constructor, destructor, etc.
 | 
			
		||||
    wxIFFDecoder(wxInputStream *s);
 | 
			
		||||
    ~wxIFFDecoder() { Destroy(); }
 | 
			
		||||
    bool CanRead();
 | 
			
		||||
    int ReadIFF();
 | 
			
		||||
    bool ConvertToImage(wxImage *image) const;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif  // wxUSE_STREAM && wxUSE_IFF
 | 
			
		||||
#endif  // _WX_IFFDECOD_H
 | 
			
		||||
 | 
			
		||||
@@ -266,6 +266,7 @@ WXDLLEXPORT_DATA(extern wxImage)    wxNullImage;
 | 
			
		||||
#include "wx/imagtiff.h"
 | 
			
		||||
#include "wx/imagpnm.h"
 | 
			
		||||
#include "wx/imagxpm.h"
 | 
			
		||||
#include "wx/imagiff.h"
 | 
			
		||||
 | 
			
		||||
#endif // wxUSE_IMAGE
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								include/wx/imagiff.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								include/wx/imagiff.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
//
 | 
			
		||||
// imgiff.h	- image handler for Amiga IFF images
 | 
			
		||||
// 		  parts of the source taken by xv source code.
 | 
			
		||||
//
 | 
			
		||||
// (c) Steffen Gutmann, 2002
 | 
			
		||||
//
 | 
			
		||||
// Creation date: 08.01.2002
 | 
			
		||||
// Last modified: 08.01.2002
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef WX_IMAGE_IFF_H
 | 
			
		||||
#define WX_IMAGE_IFF_H
 | 
			
		||||
 | 
			
		||||
#ifdef __GNUG__
 | 
			
		||||
#pragma interface "imagiff.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "wx/image.h"
 | 
			
		||||
#define wxUSE_IFF 1
 | 
			
		||||
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
// wxIFFHandler
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#if wxUSE_IFF
 | 
			
		||||
 | 
			
		||||
class WXDLLEXPORT wxIFFHandler : public wxImageHandler
 | 
			
		||||
{
 | 
			
		||||
    DECLARE_DYNAMIC_CLASS(wxIFFHandler)
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    wxIFFHandler()
 | 
			
		||||
    {
 | 
			
		||||
	m_name = "IFF file";
 | 
			
		||||
	m_extension = "iff";
 | 
			
		||||
  	m_type = wxBITMAP_TYPE_ANY;
 | 
			
		||||
    	// m_mime = "image/iff";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
#if wxUSE_STREAMS
 | 
			
		||||
    virtual bool LoadFile(wxImage *image, wxInputStream& stream, 
 | 
			
		||||
	    bool verbose=TRUE, int index=0);
 | 
			
		||||
    virtual bool SaveFile(wxImage *image, wxOutputStream& stream, 
 | 
			
		||||
	    bool verbose=TRUE);
 | 
			
		||||
    virtual bool DoCanRead(wxInputStream& stream);
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -866,6 +866,9 @@
 | 
			
		||||
// Set to 1 for PCX format support
 | 
			
		||||
#define wxUSE_PCX           1
 | 
			
		||||
 | 
			
		||||
// Set to 1 for IFF format support
 | 
			
		||||
#define wxUSE_IFF           1
 | 
			
		||||
 | 
			
		||||
// Set to 1 for XPM format support
 | 
			
		||||
#define wxUSE_XPM           1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -931,6 +931,9 @@
 | 
			
		||||
// Set to 1 for PCX format support
 | 
			
		||||
#define wxUSE_PCX           1
 | 
			
		||||
 | 
			
		||||
// Set to 1 for IFF format support
 | 
			
		||||
#define wxUSE_IFF           1
 | 
			
		||||
 | 
			
		||||
// Set to 1 for XPM format support
 | 
			
		||||
#define wxUSE_XPM           1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -918,6 +918,9 @@
 | 
			
		||||
// Set to 1 for PCX format support
 | 
			
		||||
#define wxUSE_PCX           0
 | 
			
		||||
 | 
			
		||||
// Set to 1 for IFF format support
 | 
			
		||||
#define wxUSE_IFF           0
 | 
			
		||||
 | 
			
		||||
// Set to 1 for XPM format support
 | 
			
		||||
#define wxUSE_XPM           1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -247,6 +247,8 @@
 | 
			
		||||
                                  // Set to 1 for PNM format support
 | 
			
		||||
#define wxUSE_PCX           1
 | 
			
		||||
                                  // Set to 1 for PCX format support
 | 
			
		||||
#define wxUSE_IFF           1
 | 
			
		||||
                                  // Set to 1 for IFF format support
 | 
			
		||||
#define wxUSE_XPM           1
 | 
			
		||||
                                  // Set to 1 for XPM format support
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										53
									
								
								locale/nl.po
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								locale/nl.po
									
									
									
									
									
								
							@@ -324,24 +324,26 @@ msgid ""
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</"
 | 
			
		||||
"font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</"
 | 
			
		||||
"font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</"
 | 
			
		||||
"font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</"
 | 
			
		||||
"font></tt></body></html>"
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
 | 
			
		||||
"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font></tt></body></html>"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<html><body>Normaal lettertype<br>en <u>onderstreept</u>. <i>Cursief "
 | 
			
		||||
"lettertype.</i> <b>Vet lettertype.</b> <b><i>Vet+cursief lettertype.</i></"
 | 
			
		||||
"b><br><font size=-2>lettergrootte -2</font><br><font size=-1>lettergrootte -"
 | 
			
		||||
"1</font><br><font size=+0>lettergrootte +0</font><br><font size="
 | 
			
		||||
"+1>lettergrootte +1</font><br><font size=+2>lettergrootte +2</font><br><font "
 | 
			
		||||
"size=+3>lettergrootte +3</font><br><font size=+4>lettergrootte +4</"
 | 
			
		||||
"font><br><p><tt>Niet-proportioneel lettertype.<br> <b>vet</b> <i>cursief</i> "
 | 
			
		||||
"<b><i>vet+cursief <u>onderstreept</u></i></b><br><font size=-2>lettergrootte "
 | 
			
		||||
"-2</font><br><font size=-1>lettergrootte -1</font><br><font size="
 | 
			
		||||
"+0>lettergrootte +0</font><br><font size=+1>lettergrootte +1</font><br><font "
 | 
			
		||||
"size=+2>lettergrootte +2</font><br><font size=+3>lettergrootte +3</"
 | 
			
		||||
"font><br><font size=+4>lettergrootte +4</font></tt></body></html>"
 | 
			
		||||
"lettertype.</i> <b>Vet lettertype.</b> <b><i>Vet+cursief "
 | 
			
		||||
"lettertype.</i></b><br><font size=-2>lettergrootte -2</font><br><font "
 | 
			
		||||
"size=-1>lettergrootte -1</font><br><font size=+0>lettergrootte "
 | 
			
		||||
"+0</font><br><font size=+1>lettergrootte +1</font><br><font "
 | 
			
		||||
"size=+2>lettergrootte +2</font><br><font size=+3>lettergrootte "
 | 
			
		||||
"+3</font><br><font size=+4>lettergrootte "
 | 
			
		||||
"+4</font><br><p><tt>Niet-proportioneel lettertype.<br> <b>vet</b> "
 | 
			
		||||
"<i>cursief</i> <b><i>vet+cursief <u>onderstreept</u></i></b><br><font "
 | 
			
		||||
"size=-2>lettergrootte -2</font><br><font size=-1>lettergrootte "
 | 
			
		||||
"-1</font><br><font size=+0>lettergrootte +0</font><br><font "
 | 
			
		||||
"size=+1>lettergrootte +1</font><br><font size=+2>lettergrootte "
 | 
			
		||||
"+2</font><br><font size=+3>lettergrootte +3</font><br><font "
 | 
			
		||||
"size=+4>lettergrootte +4</font></tt></body></html>"
 | 
			
		||||
 | 
			
		||||
#: ../src/common/paper.cpp:113
 | 
			
		||||
msgid "A3 sheet, 297 x 420 mm"
 | 
			
		||||
@@ -1103,8 +1105,8 @@ msgstr "Toon optie-dialoog"
 | 
			
		||||
#: ../src/msw/mimetype.cpp:677
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s"
 | 
			
		||||
"\" ?\n"
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s\" "
 | 
			
		||||
"?\n"
 | 
			
		||||
"Current value is \n"
 | 
			
		||||
"%s, \n"
 | 
			
		||||
"New value is \n"
 | 
			
		||||
@@ -1704,12 +1706,13 @@ msgstr "HTML-anchor %s bestaat niet."
 | 
			
		||||
 | 
			
		||||
#: ../src/html/helpfrm.cpp:1350
 | 
			
		||||
msgid ""
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|"
 | 
			
		||||
"Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
 | 
			
		||||
"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
 | 
			
		||||
"files (*.*)|*"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"HTML-bestanden (*.htm)|*.htm|HTML-bestanden (*.html)|*.html|Helpbestanden (*."
 | 
			
		||||
"htb)|*.htb|Helpbestanden (*.zip)|*.zip|HTML-Help Project (*.hhp)|*.hhp|Alle "
 | 
			
		||||
"bestanden (*.*)|*"
 | 
			
		||||
"HTML-bestanden (*.htm)|*.htm|HTML-bestanden (*.html)|*.html|Helpbestanden "
 | 
			
		||||
"(*.htb)|*.htb|Helpbestanden (*.zip)|*.zip|HTML-Help Project "
 | 
			
		||||
"(*.hhp)|*.hhp|Alle bestanden (*.*)|*"
 | 
			
		||||
 | 
			
		||||
#: ../src/common/fontmap.cpp:118
 | 
			
		||||
msgid "Hebrew (ISO-8859-8)"
 | 
			
		||||
@@ -2702,8 +2705,8 @@ msgid ""
 | 
			
		||||
"Thread module initialization failed: can not store value in thread local "
 | 
			
		||||
"storage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Threadmodule-initialisatie mislukt: kan geen waarde opslaan in lokale thread-"
 | 
			
		||||
"geheugenruimte."
 | 
			
		||||
"Threadmodule-initialisatie mislukt: kan geen waarde opslaan in lokale "
 | 
			
		||||
"thread-geheugenruimte."
 | 
			
		||||
 | 
			
		||||
#: ../src/unix/threadpsx.cpp:1469
 | 
			
		||||
msgid "Thread module initialization failed: failed to create thread key"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								locale/ru.po
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								locale/ru.po
									
									
									
									
									
								
							@@ -403,11 +403,11 @@ msgid ""
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</"
 | 
			
		||||
"font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</"
 | 
			
		||||
"font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</"
 | 
			
		||||
"font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</"
 | 
			
		||||
"font></tt></body></html>"
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
 | 
			
		||||
"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font></tt></body></html>"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> "
 | 
			
		||||
"<b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size "
 | 
			
		||||
@@ -415,11 +415,11 @@ msgstr ""
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</"
 | 
			
		||||
"font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</"
 | 
			
		||||
"font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</"
 | 
			
		||||
"font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</"
 | 
			
		||||
"font></tt></body></html>"
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
 | 
			
		||||
"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font></tt></body></html>"
 | 
			
		||||
 | 
			
		||||
# ../src/common/paper.cpp:113
 | 
			
		||||
#: ../src/common/paper.cpp:113
 | 
			
		||||
@@ -1260,8 +1260,8 @@ msgid ""
 | 
			
		||||
"Dial up functions are unavailable because the remote access service (RAS) is "
 | 
			
		||||
"not installed on this machine. Please install it."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (RAS) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>."
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (RAS) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> "
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>."
 | 
			
		||||
 | 
			
		||||
#: ../src/msw/toplevel.cpp:221
 | 
			
		||||
#, fuzzy
 | 
			
		||||
@@ -1302,8 +1302,8 @@ msgstr "
 | 
			
		||||
#: ../src/msw/mimetype.cpp:677
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s"
 | 
			
		||||
"\" ?\n"
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s\" "
 | 
			
		||||
"?\n"
 | 
			
		||||
"Current value is \n"
 | 
			
		||||
"%s, \n"
 | 
			
		||||
"New value is \n"
 | 
			
		||||
@@ -2000,12 +2000,13 @@ msgstr "HTML-
 | 
			
		||||
# ../src/html/helpfrm.cpp:1188
 | 
			
		||||
#: ../src/html/helpfrm.cpp:1350
 | 
			
		||||
msgid ""
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|"
 | 
			
		||||
"Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
 | 
			
		||||
"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
 | 
			
		||||
"files (*.*)|*"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD> HTML (*.htm)|*.htm|<7C><><EFBFBD><EFBFBD><EFBFBD> HTML (*.html)|*.html|<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (*.htb)|*."
 | 
			
		||||
"htb|<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (*.zip)|*.zip|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HTML (*.hhp)|*.hhp|<7C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*."
 | 
			
		||||
"*)|*"
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD> HTML (*.htm)|*.htm|<7C><><EFBFBD><EFBFBD><EFBFBD> HTML (*.html)|*.html|<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
 | 
			
		||||
"(*.htb)|*.htb|<7C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (*.zip)|*.zip|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HTML "
 | 
			
		||||
"(*.hhp)|*.hhp|<7C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (*.*)|*"
 | 
			
		||||
 | 
			
		||||
# ../src/common/fontmap.cpp:104
 | 
			
		||||
#: ../src/common/fontmap.cpp:118
 | 
			
		||||
@@ -2302,8 +2303,8 @@ msgid ""
 | 
			
		||||
"MS HTML Help functions are unavailable because the MS HTML Help library is "
 | 
			
		||||
"not installed on this machine. Please install it."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (RAS) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>."
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (RAS) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> "
 | 
			
		||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>."
 | 
			
		||||
 | 
			
		||||
# ../src/unix/mimetype.cpp:1570
 | 
			
		||||
#: ../src/unix/mimetype.cpp:2412
 | 
			
		||||
@@ -4366,8 +4367,7 @@ msgstr "
 | 
			
		||||
#~ msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> '%c'."
 | 
			
		||||
 | 
			
		||||
#~ msgid ""
 | 
			
		||||
#~ "Mime.types file %s, line %d: extra characters after the field value "
 | 
			
		||||
#~ "ignored."
 | 
			
		||||
#~ "Mime.types file %s, line %d: extra characters after the field value ignored."
 | 
			
		||||
#~ msgstr ""
 | 
			
		||||
#~ "<22><><EFBFBD><EFBFBD> mime.types %s, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> "
 | 
			
		||||
#~ "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
 | 
			
		||||
@@ -4425,8 +4425,8 @@ msgstr "
 | 
			
		||||
#~ "wxPrintPreviewBase::SetCanvas <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (canvas)!"
 | 
			
		||||
 | 
			
		||||
#~ msgid ""
 | 
			
		||||
#~ "can't determine if the end of file is reached on                 "
 | 
			
		||||
#~ "descriptor %d"
 | 
			
		||||
#~ "can't determine if the end of file is reached on                 descriptor "
 | 
			
		||||
#~ "%d"
 | 
			
		||||
#~ msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d"
 | 
			
		||||
 | 
			
		||||
#~ msgid "bad index in wxArrayString::Insert"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								locale/sl.po
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								locale/sl.po
									
									
									
									
									
								
							@@ -422,23 +422,24 @@ msgid ""
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</"
 | 
			
		||||
"font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</"
 | 
			
		||||
"font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</"
 | 
			
		||||
"font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</"
 | 
			
		||||
"font></tt></body></html>"
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
 | 
			
		||||
"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font></tt></body></html>"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<html><body>Normalno<br>(and <u>pod<6F>rtano</u>. <i>Kurzivno.</i> <b>Krepko.</"
 | 
			
		||||
"b> <b><i>Krepko kurzivno.</i></b><br><font size=-2>velikost <20>rk -2</"
 | 
			
		||||
"font><br><font size=-1>velikost <20>rk -1</font><br><font size=+0>velikost <EFBFBD>rk "
 | 
			
		||||
"<html><body>Normalno<br>(and <u>pod<6F>rtano</u>. <i>Kurzivno.</i> "
 | 
			
		||||
"<b>Krepko.</b> <b><i>Krepko kurzivno.</i></b><br><font size=-2>velikost <20>rk "
 | 
			
		||||
"-2</font><br><font size=-1>velikost <20>rk -1</font><br><font size=+0>velikost "
 | 
			
		||||
"<22>rk +0</font><br><font size=+1>velikost <20>rk +1</font><br><font "
 | 
			
		||||
"size=+2>velikost <20>rk +2</font><br><font size=+3>velikost <20>rk "
 | 
			
		||||
"+3</font><br><font size=+4>velikost <20>rk +4</font><br><p><tt>Enaka "
 | 
			
		||||
"velikost.<br> <b>krepko</b> <i>kurzivno</i> <b><i>krepko kurzivno "
 | 
			
		||||
"<u>pod<6F>rtano</u></i></b><br><font size=-2>velikost <20>rk -2</font><br><font "
 | 
			
		||||
"size=-1>velikost <20>rk -1</font><br><font size=+0>velikost <20>rk "
 | 
			
		||||
"+0</font><br><font size=+1>velikost <20>rk +1</font><br><font size=+2>velikost "
 | 
			
		||||
"<22>rk +2</font><br><font size=+3>velikost <20>rk +3</font><br><font size="
 | 
			
		||||
"+4>velikost <20>rk +4</font><br><p><tt>Enaka velikost.<br> <b>krepko</b> "
 | 
			
		||||
"<i>kurzivno</i> <b><i>krepko kurzivno <u>pod<6F>rtano</u></i></b><br><font "
 | 
			
		||||
"size=-2>velikost <20>rk -2</font><br><font size=-1>velikost <20>rk -1</"
 | 
			
		||||
"font><br><font size=+0>velikost <20>rk +0</font><br><font size=+1>velikost <20>rk "
 | 
			
		||||
"+1</font><br><font size=+2>velikost <20>rk +2</font><br><font size=+3>velikost "
 | 
			
		||||
"<22>rk +3</font><br><font size=+4>velikost <20>rk +4</font></tt></body></html>"
 | 
			
		||||
"<22>rk +2</font><br><font size=+3>velikost <20>rk +3</font><br><font "
 | 
			
		||||
"size=+4>velikost <20>rk +4</font></tt></body></html>"
 | 
			
		||||
 | 
			
		||||
# generic/dcpsg.cpp:2547
 | 
			
		||||
#: ../src/common/paper.cpp:113
 | 
			
		||||
@@ -1410,8 +1411,8 @@ msgstr "Poka
 | 
			
		||||
#: ../src/msw/mimetype.cpp:677
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s"
 | 
			
		||||
"\" ?\n"
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s\" "
 | 
			
		||||
"?\n"
 | 
			
		||||
"Current value is \n"
 | 
			
		||||
"%s, \n"
 | 
			
		||||
"New value is \n"
 | 
			
		||||
@@ -2157,12 +2158,13 @@ msgstr "HTML sidro %s ne obstaja"
 | 
			
		||||
# html/helpfrm.cpp:1188
 | 
			
		||||
#: ../src/html/helpfrm.cpp:1350
 | 
			
		||||
msgid ""
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|"
 | 
			
		||||
"Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
 | 
			
		||||
"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
 | 
			
		||||
"files (*.*)|*"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"HTML datoteke (*.htm)|*.htm|HTML datoteke (*.html)|*.html|Knjige s pomo<6D>jo "
 | 
			
		||||
"(*.htb)|*.htb|Knjige s pomo<6D>jo (*.zip)|*.zip|HTML Projekt pomo<6D>i (*.hhp)|*."
 | 
			
		||||
"hhp|Vse datoteke (*.*)|*"
 | 
			
		||||
"(*.htb)|*.htb|Knjige s pomo<6D>jo (*.zip)|*.zip|HTML Projekt pomo<6D>i "
 | 
			
		||||
"(*.hhp)|*.hhp|Vse datoteke (*.*)|*"
 | 
			
		||||
 | 
			
		||||
#: ../src/common/fontmap.cpp:118
 | 
			
		||||
msgid "Hebrew (ISO-8859-8)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								locale/sv.po
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								locale/sv.po
									
									
									
									
									
								
							@@ -324,25 +324,26 @@ msgid ""
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</"
 | 
			
		||||
"font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</"
 | 
			
		||||
"font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</"
 | 
			
		||||
"font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</"
 | 
			
		||||
"font></tt></body></html>"
 | 
			
		||||
"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
 | 
			
		||||
"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 | 
			
		||||
"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 | 
			
		||||
"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 | 
			
		||||
"+4</font></tt></body></html>"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"<html><body>Normalt typsnitt<br>(och <u>understruket</u>. <i>Kursivt "
 | 
			
		||||
"typsnitt.</i> <b>Fett typsnitt.</b> <b><i>Fett kursivt typsnitt.</i></"
 | 
			
		||||
"b><br><font size=-2>typsnittsstorlek  -2</font><br><font size=-"
 | 
			
		||||
"1>typsnittsstorlek -1</font><br><font size=+0>typsnittsstorlek +0</"
 | 
			
		||||
"font><br><font size=+1>typsnittsstorlek +1</font><br><font size="
 | 
			
		||||
"+2>typsnittsstorlek +2</font><br><font size=+3>typsnittsstorlek +3</"
 | 
			
		||||
"font><br><font size=+4>typsnittsstorlek +4</font><br><p><tt>Storleksbest<73>mt "
 | 
			
		||||
"typsnitt.<br> <b>fet</b> <i>kursiv</i> <b><i>fet kursiv <u>understruken</u></"
 | 
			
		||||
"i></b><br><font size=-2>typsnittsstorlek -2</font><br><font size=-"
 | 
			
		||||
"1>typsnittsstorlek -1</font><br><font size=+0>typsnittsstorlek +0</"
 | 
			
		||||
"font><br><font size=+1>typsnittsstorlek +1</font><br><font size="
 | 
			
		||||
"+2>typsnittsstorlek +2</font><br><font size=+3>typsnittsstorlek +3</"
 | 
			
		||||
"font><br><font size=+4>typsnittsstorlek +4</font></tt></body></html>"
 | 
			
		||||
"typsnitt.</i> <b>Fett typsnitt.</b> <b><i>Fett kursivt "
 | 
			
		||||
"typsnitt.</i></b><br><font size=-2>typsnittsstorlek  -2</font><br><font "
 | 
			
		||||
"size=-1>typsnittsstorlek -1</font><br><font size=+0>typsnittsstorlek "
 | 
			
		||||
"+0</font><br><font size=+1>typsnittsstorlek +1</font><br><font "
 | 
			
		||||
"size=+2>typsnittsstorlek +2</font><br><font size=+3>typsnittsstorlek "
 | 
			
		||||
"+3</font><br><font size=+4>typsnittsstorlek "
 | 
			
		||||
"+4</font><br><p><tt>Storleksbest<73>mt typsnitt.<br> <b>fet</b> <i>kursiv</i> "
 | 
			
		||||
"<b><i>fet kursiv <u>understruken</u></i></b><br><font "
 | 
			
		||||
"size=-2>typsnittsstorlek -2</font><br><font size=-1>typsnittsstorlek "
 | 
			
		||||
"-1</font><br><font size=+0>typsnittsstorlek +0</font><br><font "
 | 
			
		||||
"size=+1>typsnittsstorlek +1</font><br><font size=+2>typsnittsstorlek "
 | 
			
		||||
"+2</font><br><font size=+3>typsnittsstorlek +3</font><br><font "
 | 
			
		||||
"size=+4>typsnittsstorlek +4</font></tt></body></html>"
 | 
			
		||||
 | 
			
		||||
#: ../src/common/paper.cpp:113
 | 
			
		||||
msgid "A3 sheet, 297 x 420 mm"
 | 
			
		||||
@@ -1105,8 +1106,8 @@ msgstr "Visa alternativdialog"
 | 
			
		||||
#: ../src/msw/mimetype.cpp:677
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s"
 | 
			
		||||
"\" ?\n"
 | 
			
		||||
"Do you want to overwrite the command used to %s files with extension \"%s\" "
 | 
			
		||||
"?\n"
 | 
			
		||||
"Current value is \n"
 | 
			
		||||
"%s, \n"
 | 
			
		||||
"New value is \n"
 | 
			
		||||
@@ -1705,12 +1706,13 @@ msgstr "HTML-ankare %s finns inte."
 | 
			
		||||
 | 
			
		||||
#: ../src/html/helpfrm.cpp:1350
 | 
			
		||||
msgid ""
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|"
 | 
			
		||||
"Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
 | 
			
		||||
"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
 | 
			
		||||
"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
 | 
			
		||||
"files (*.*)|*"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"HTML-filer (*.htm)|*.htm|HTML-filer (*.html)|*.html|Hj<48>lpb<70>cker (*.htb)|*."
 | 
			
		||||
"htb|Hj<48>lpb<70>cker (*.zip)|*.zip|HTML-hj<68>lpprojekt (*.hhp)|*.hhp|Alla filer (*."
 | 
			
		||||
"*)|*"
 | 
			
		||||
"HTML-filer (*.htm)|*.htm|HTML-filer (*.html)|*.html|Hj<48>lpb<70>cker "
 | 
			
		||||
"(*.htb)|*.htb|Hj<48>lpb<70>cker (*.zip)|*.zip|HTML-hj<68>lpprojekt (*.hhp)|*.hhp|Alla "
 | 
			
		||||
"filer (*.*)|*"
 | 
			
		||||
 | 
			
		||||
#: ../src/common/fontmap.cpp:118
 | 
			
		||||
msgid "Hebrew (ISO-8859-8)"
 | 
			
		||||
 
 | 
			
		||||
@@ -818,6 +818,11 @@
 | 
			
		||||
 */
 | 
			
		||||
#define wxUSE_PCX 0
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * IFF image format support
 | 
			
		||||
 */
 | 
			
		||||
#define wxUSE_IFF 0
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * PNM image format support
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										638
									
								
								src/common/iffdecod.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										638
									
								
								src/common/iffdecod.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,638 @@
 | 
			
		||||
//
 | 
			
		||||
// iffdecod.cc  - image handler for IFF/ILBM images
 | 
			
		||||
//        parts of the source are based on xviff by Thomas Meyer
 | 
			
		||||
//        Permission for use in wxWindows has been gratefully given.
 | 
			
		||||
//
 | 
			
		||||
// (c) Steffen Gutmann, 2002
 | 
			
		||||
//
 | 
			
		||||
// Creation date: 08.01.2002
 | 
			
		||||
// Last modified: 12.01.2002
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifdef __GNUG__
 | 
			
		||||
#pragma implementation "iffdecod.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// For compilers that support precompilation, includes "wx.h".
 | 
			
		||||
#include "wx/wxprec.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __BORLANDC__
 | 
			
		||||
#  pragma hdrstop
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef WX_PRECOMP
 | 
			
		||||
#  include "wx/defs.h"
 | 
			
		||||
#  include "wx/log.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "wx/iffdecod.h"
 | 
			
		||||
 | 
			
		||||
#if wxUSE_STREAMS && wxUSE_IFF
 | 
			
		||||
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
// wxIFFDecoder constructor and destructor
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
wxIFFDecoder::wxIFFDecoder(wxInputStream *s)
 | 
			
		||||
{
 | 
			
		||||
    m_f = s;
 | 
			
		||||
    m_image = 0;
 | 
			
		||||
    databuf = 0;
 | 
			
		||||
    decomp_mem = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxIFFDecoder::Destroy()
 | 
			
		||||
{
 | 
			
		||||
    delete m_image;
 | 
			
		||||
    m_image = 0;
 | 
			
		||||
    delete [] databuf;
 | 
			
		||||
    databuf = 0;
 | 
			
		||||
    delete [] decomp_mem;
 | 
			
		||||
    decomp_mem = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
// Convert this image to a wxImage object
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// This function was designed by Vaclav Slavik
 | 
			
		||||
 | 
			
		||||
bool wxIFFDecoder::ConvertToImage(wxImage *image) const
 | 
			
		||||
{
 | 
			
		||||
    // just in case...
 | 
			
		||||
    image->Destroy();
 | 
			
		||||
 | 
			
		||||
    // create the image
 | 
			
		||||
    image->Create(GetWidth(), GetHeight());
 | 
			
		||||
 | 
			
		||||
    if (!image->Ok())
 | 
			
		||||
        return FALSE;
 | 
			
		||||
 | 
			
		||||
    unsigned char *pal = GetPalette();
 | 
			
		||||
    unsigned char *src = GetData();
 | 
			
		||||
    unsigned char *dst = image->GetData();
 | 
			
		||||
    int colors = GetNumColors();
 | 
			
		||||
    int transparent = GetTransparentColour();
 | 
			
		||||
    long i;
 | 
			
		||||
 | 
			
		||||
    // set transparent colour mask
 | 
			
		||||
    if (transparent != -1)
 | 
			
		||||
    {
 | 
			
		||||
        for (i = 0; i < colors; i++)
 | 
			
		||||
        {
 | 
			
		||||
            if ((pal[3 * i + 0] == 255) &&
 | 
			
		||||
                (pal[3 * i + 1] == 0) &&
 | 
			
		||||
                (pal[3 * i + 2] == 255))
 | 
			
		||||
            {
 | 
			
		||||
                pal[3 * i + 2] = 254;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        pal[3 * transparent + 0] = 255,
 | 
			
		||||
        pal[3 * transparent + 1] = 0,
 | 
			
		||||
        pal[3 * transparent + 2] = 255;
 | 
			
		||||
 | 
			
		||||
        image->SetMaskColour(255, 0, 255);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
        image->SetMask(FALSE);
 | 
			
		||||
 | 
			
		||||
#if wxUSE_PALETTE
 | 
			
		||||
    if (pal && colors > 0)
 | 
			
		||||
    {
 | 
			
		||||
        unsigned char r[colors];
 | 
			
		||||
        unsigned char g[colors];
 | 
			
		||||
        unsigned char b[colors];
 | 
			
		||||
 | 
			
		||||
        for (i = 0; i < colors; i++)
 | 
			
		||||
        {
 | 
			
		||||
            r[i] = pal[3*i + 0];
 | 
			
		||||
            g[i] = pal[3*i + 1];
 | 
			
		||||
            b[i] = pal[3*i + 2];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        image->SetPalette(wxPalette(colors, r, g, b));
 | 
			
		||||
    }
 | 
			
		||||
#endif // wxUSE_PALETTE
 | 
			
		||||
 | 
			
		||||
    // copy image data
 | 
			
		||||
    for (i = 0; i < (long)(GetWidth() * GetHeight()); i++, src += 3, dst += 3)
 | 
			
		||||
    {
 | 
			
		||||
    dst[0] = src[0];
 | 
			
		||||
    dst[1] = src[1];
 | 
			
		||||
    dst[2] = src[2];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
// Data accessors
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// Get data for current frame
 | 
			
		||||
 | 
			
		||||
unsigned char* wxIFFDecoder::GetData() const    { return (m_image->p); }
 | 
			
		||||
unsigned char* wxIFFDecoder::GetPalette() const { return (m_image->pal); }
 | 
			
		||||
int wxIFFDecoder::GetNumColors() const          { return m_image->colors; }
 | 
			
		||||
unsigned int wxIFFDecoder::GetWidth() const     { return (m_image->w); }
 | 
			
		||||
unsigned int wxIFFDecoder::GetHeight() const    { return (m_image->h); }
 | 
			
		||||
int wxIFFDecoder::GetTransparentColour() const { return m_image->transparent; }
 | 
			
		||||
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
// IFF reading and decoding
 | 
			
		||||
//---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// CanRead:
 | 
			
		||||
//  Returns TRUE if the file looks like a valid IFF, FALSE otherwise.
 | 
			
		||||
//
 | 
			
		||||
bool wxIFFDecoder::CanRead()
 | 
			
		||||
{
 | 
			
		||||
    unsigned char buf[12] = "";
 | 
			
		||||
 | 
			
		||||
    m_f->Read(buf, 12);
 | 
			
		||||
    m_f->SeekI(-12, wxFromCurrent);
 | 
			
		||||
 | 
			
		||||
    return (memcmp(buf, "FORM", 4) == 0 && memcmp(buf+8, "ILBM", 4) == 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ReadIFF:
 | 
			
		||||
// Based on xv source code by Thomas Meyer
 | 
			
		||||
// Permission for use in wxWindows has been gratefully given.
 | 
			
		||||
 | 
			
		||||
typedef unsigned char byte;
 | 
			
		||||
#define IFFDEBUG 0
 | 
			
		||||
 | 
			
		||||
/*************************************************************************
 | 
			
		||||
  void decomprle(source, destination, source length, buffer size)
 | 
			
		||||
  
 | 
			
		||||
  Decompress run-length encoded data from source to destination. Terminates
 | 
			
		||||
  when source is decoded completely or destination buffer is full.
 | 
			
		||||
  
 | 
			
		||||
  The decruncher is as optimized as I could make it, without risking
 | 
			
		||||
  safety in case of corrupt BODY chunks.
 | 
			
		||||
**************************************************************************/
 | 
			
		||||
 | 
			
		||||
static void decomprle(const byte *sptr, byte *dptr, long slen, long dlen)
 | 
			
		||||
{
 | 
			
		||||
    byte codeByte, dataByte;
 | 
			
		||||
  
 | 
			
		||||
    while ((slen > 0) && (dlen > 0)) {
 | 
			
		||||
    // read control byte
 | 
			
		||||
    codeByte = *sptr++;
 | 
			
		||||
    
 | 
			
		||||
    if (codeByte < 0x80) {
 | 
			
		||||
        codeByte++;
 | 
			
		||||
        if ((slen > (long) codeByte) && (dlen >= (long) codeByte)) {
 | 
			
		||||
        slen -= codeByte + 1;
 | 
			
		||||
        dlen -= codeByte;
 | 
			
		||||
        while (codeByte > 0) {
 | 
			
		||||
            *dptr++ = *sptr++;
 | 
			
		||||
            codeByte--;
 | 
			
		||||
        }
 | 
			
		||||
        }
 | 
			
		||||
        else slen = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    else if (codeByte > 0x80) {
 | 
			
		||||
        codeByte = 0x81 - (codeByte & 0x7f);
 | 
			
		||||
        if ((slen > (long) 0) && (dlen >= (long) codeByte)) {
 | 
			
		||||
        dataByte = *sptr++;
 | 
			
		||||
        slen -= 2;
 | 
			
		||||
        dlen -= codeByte;
 | 
			
		||||
        while (codeByte > 0) {
 | 
			
		||||
            *dptr++ = dataByte;
 | 
			
		||||
            codeByte--;
 | 
			
		||||
        }
 | 
			
		||||
        }
 | 
			
		||||
        else slen = 0;
 | 
			
		||||
    }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/******************************************/
 | 
			
		||||
static unsigned int iff_getword(const byte *ptr)
 | 
			
		||||
{
 | 
			
		||||
    unsigned int v;
 | 
			
		||||
 | 
			
		||||
    v = *ptr++;
 | 
			
		||||
    v = (v << 8) + *ptr;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/******************************************/
 | 
			
		||||
static unsigned long iff_getlong(const byte *ptr)
 | 
			
		||||
{
 | 
			
		||||
    unsigned long l;
 | 
			
		||||
 | 
			
		||||
    l = *ptr++;
 | 
			
		||||
    l = (l << 8) + *ptr++;
 | 
			
		||||
    l = (l << 8) + *ptr++;
 | 
			
		||||
    l = (l << 8) + *ptr;
 | 
			
		||||
    return l;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Define internal ILBM types
 | 
			
		||||
#define ILBM_NORMAL     0
 | 
			
		||||
#define ILBM_EHB        1
 | 
			
		||||
#define ILBM_HAM        2
 | 
			
		||||
#define ILBM_HAM8       3
 | 
			
		||||
#define ILBM_24BIT      4
 | 
			
		||||
 | 
			
		||||
int wxIFFDecoder::ReadIFF()
 | 
			
		||||
{
 | 
			
		||||
    Destroy();
 | 
			
		||||
 | 
			
		||||
    m_image = new IFFImage();
 | 
			
		||||
    if (m_image == 0) {
 | 
			
		||||
    Destroy();
 | 
			
		||||
    return wxIFF_MEMERR;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // compute file length
 | 
			
		||||
    off_t currentPos = m_f->TellI();
 | 
			
		||||
    m_f->SeekI(0, wxFromEnd);
 | 
			
		||||
    long filesize = m_f->TellI();
 | 
			
		||||
    m_f->SeekI(currentPos, wxFromStart);
 | 
			
		||||
 | 
			
		||||
    // allocate memory for complete file
 | 
			
		||||
    if ((databuf = new byte[filesize]) == 0) {
 | 
			
		||||
    Destroy();
 | 
			
		||||
    return wxIFF_MEMERR;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    m_f->Read(databuf, filesize);
 | 
			
		||||
    const byte *dataend = databuf + filesize;
 | 
			
		||||
 | 
			
		||||
    // initialize work pointer. used to trace the buffer for IFF chunks
 | 
			
		||||
    const byte *dataptr = databuf;
 | 
			
		||||
 | 
			
		||||
    // check for minmal size
 | 
			
		||||
    if (dataptr + 12 > dataend) {
 | 
			
		||||
    Destroy();
 | 
			
		||||
    return wxIFF_INVFORMAT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // check if we really got an IFF file
 | 
			
		||||
    if (strncmp((char *)dataptr, "FORM", 4) != 0) {
 | 
			
		||||
    Destroy();
 | 
			
		||||
    return wxIFF_INVFORMAT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dataptr = dataptr + 8;                  // skip ID and length of FORM
 | 
			
		||||
 | 
			
		||||
    // check if the IFF file is an ILBM (picture) file
 | 
			
		||||
    if (strncmp((char *) dataptr, "ILBM", 4) != 0) {
 | 
			
		||||
    Destroy();
 | 
			
		||||
    return wxIFF_INVFORMAT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    wxLogTrace(_T("iff"), _T("IFF ILBM file recognized"));
 | 
			
		||||
 | 
			
		||||
    dataptr = dataptr + 4;                                // skip ID
 | 
			
		||||
 | 
			
		||||
    // 
 | 
			
		||||
    // main decoding loop. searches IFF chunks and handles them. 
 | 
			
		||||
    // terminates when BODY chunk was found or dataptr ran over end of file 
 | 
			
		||||
    //
 | 
			
		||||
    bool BMHDok = false, CMAPok = false, CAMGok = false;
 | 
			
		||||
    int bmhd_width = 0, bmhd_height = 0, bmhd_bitplanes = 0, bmhd_transcol = -1;
 | 
			
		||||
    byte bmhd_masking = 0, bmhd_compression = 0;
 | 
			
		||||
    long camg_viewmode = 0;
 | 
			
		||||
    int colors = 0;
 | 
			
		||||
    while (dataptr + 8 <= dataend) {
 | 
			
		||||
    // get chunk length and make even
 | 
			
		||||
    size_t chunkLen = (iff_getlong(dataptr + 4) + 1) & 0xfffffffe; 
 | 
			
		||||
    if (chunkLen < 0) {     // format error?
 | 
			
		||||
       break;
 | 
			
		||||
    }
 | 
			
		||||
    bool truncated = (dataptr + 8 + chunkLen > dataend);
 | 
			
		||||
 | 
			
		||||
    if (strncmp((char *)dataptr, "BMHD", 4) == 0) { // BMHD chunk?
 | 
			
		||||
        if (chunkLen < 12 + 2 || truncated) {
 | 
			
		||||
        break;
 | 
			
		||||
        }
 | 
			
		||||
        bmhd_width = iff_getword(dataptr + 8);      // width of picture
 | 
			
		||||
        bmhd_height= iff_getword(dataptr + 8 + 2);  // height of picture
 | 
			
		||||
        bmhd_bitplanes = *(dataptr + 8 + 8);        // # of bitplanes
 | 
			
		||||
        bmhd_masking  = *(dataptr + 8 + 9);
 | 
			
		||||
        bmhd_compression = *(dataptr + 8 + 10);     // get compression
 | 
			
		||||
        bmhd_transcol    = iff_getword(dataptr + 8 + 12);
 | 
			
		||||
        BMHDok = true;                              // got BMHD
 | 
			
		||||
        dataptr += 8 + chunkLen;                    // to next chunk
 | 
			
		||||
    }
 | 
			
		||||
    else if (strncmp((char *)dataptr, "CMAP", 4) == 0) { // CMAP ?
 | 
			
		||||
        if (truncated) {
 | 
			
		||||
        break;
 | 
			
		||||
        }
 | 
			
		||||
        const byte *cmapptr = dataptr + 8;
 | 
			
		||||
        colors = chunkLen / 3;                  // calc no of colors
 | 
			
		||||
      
 | 
			
		||||
        delete m_image->pal;
 | 
			
		||||
        m_image->pal = 0;
 | 
			
		||||
        m_image->colors = colors;
 | 
			
		||||
        if (colors > 0) {
 | 
			
		||||
        m_image->pal = new byte[3*colors];
 | 
			
		||||
        if (!m_image->pal) {
 | 
			
		||||
            Destroy();
 | 
			
		||||
            return wxIFF_MEMERR;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // copy colors to color map
 | 
			
		||||
        for (int i=0; i < colors; i++) {
 | 
			
		||||
            m_image->pal[3*i + 0] = *cmapptr++;
 | 
			
		||||
            m_image->pal[3*i + 1] = *cmapptr++;
 | 
			
		||||
            m_image->pal[3*i + 2] = *cmapptr++;
 | 
			
		||||
        }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        wxLogTrace(_T("iff"), _T("Read %d colors from IFF file."),
 | 
			
		||||
            colors);
 | 
			
		||||
        
 | 
			
		||||
        CMAPok = true;                              // got CMAP
 | 
			
		||||
        dataptr += 8 + chunkLen;                    // to next chunk
 | 
			
		||||
    } else if (strncmp((char *)dataptr, "CAMG", 4) == 0) { // CAMG ?
 | 
			
		||||
        if (chunkLen < 4 || truncated) {
 | 
			
		||||
        break;
 | 
			
		||||
        }
 | 
			
		||||
        camg_viewmode = iff_getlong(dataptr + 8);   // get viewmodes
 | 
			
		||||
        CAMGok = true;                              // got CAMG
 | 
			
		||||
        dataptr += 8 + chunkLen;                    // to next chunk
 | 
			
		||||
    }
 | 
			
		||||
    else if (strncmp((char *)dataptr, "BODY", 4) == 0) { // BODY ?
 | 
			
		||||
        if (!BMHDok) {                              // BMHD found?
 | 
			
		||||
        break;
 | 
			
		||||
        }
 | 
			
		||||
        const byte *bodyptr = dataptr + 8;          // -> BODY data
 | 
			
		||||
 | 
			
		||||
        if (truncated) {
 | 
			
		||||
        chunkLen = dataend - dataptr;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        //
 | 
			
		||||
            // if BODY is compressed, allocate buffer for decrunched BODY
 | 
			
		||||
        // and decompress it (run length encoding)
 | 
			
		||||
        //
 | 
			
		||||
        if (bmhd_compression == 1) {
 | 
			
		||||
        // calc size of decrunch buffer - (size of the actual pic. 
 | 
			
		||||
        // decompressed in interleaved Amiga bitplane format)
 | 
			
		||||
 | 
			
		||||
        size_t decomp_bufsize = (((bmhd_width + 15) >> 4) << 1) 
 | 
			
		||||
            * bmhd_height * bmhd_bitplanes;
 | 
			
		||||
            
 | 
			
		||||
        if ((decomp_mem = new byte[decomp_bufsize]) == 0) {
 | 
			
		||||
            Destroy();
 | 
			
		||||
            return wxIFF_MEMERR;
 | 
			
		||||
        }
 | 
			
		||||
            
 | 
			
		||||
        decomprle(bodyptr, decomp_mem, chunkLen, decomp_bufsize);
 | 
			
		||||
        bodyptr = decomp_mem;                 // -> uncompressed BODY
 | 
			
		||||
        chunkLen = decomp_bufsize;
 | 
			
		||||
        delete [] databuf;
 | 
			
		||||
        databuf = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // the following determines the type of the ILBM file.
 | 
			
		||||
        // it's either NORMAL, EHB, HAM, HAM8 or 24BIT
 | 
			
		||||
    
 | 
			
		||||
        int fmt = ILBM_NORMAL;                 // assume normal ILBM
 | 
			
		||||
        if (bmhd_bitplanes == 24) {
 | 
			
		||||
        fmt = ILBM_24BIT;
 | 
			
		||||
        } else if (bmhd_bitplanes == 8) {
 | 
			
		||||
        if (CAMGok && (camg_viewmode & 0x800)) {
 | 
			
		||||
            fmt = ILBM_HAM8;
 | 
			
		||||
        }
 | 
			
		||||
        } else if ((bmhd_bitplanes > 5) && CAMGok) {
 | 
			
		||||
        if (camg_viewmode & 0x80) {
 | 
			
		||||
            fmt = ILBM_EHB;
 | 
			
		||||
        } else if (camg_viewmode & 0x800) {
 | 
			
		||||
            fmt = ILBM_HAM;
 | 
			
		||||
        }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        wxLogTrace(_T("iff"), 
 | 
			
		||||
            _T("LoadIFF: %s %dx%d, planes=%d (%d cols), comp=%d"),
 | 
			
		||||
            (fmt==ILBM_NORMAL) ? "Normal ILBM" :
 | 
			
		||||
            (fmt==ILBM_HAM)    ? "HAM ILBM" :
 | 
			
		||||
            (fmt==ILBM_HAM8)   ? "HAM8 ILBM" :
 | 
			
		||||
            (fmt==ILBM_EHB)    ? "EHB ILBM" :
 | 
			
		||||
            (fmt==ILBM_24BIT)  ? "24BIT ILBM" : "unknown ILBM",
 | 
			
		||||
            bmhd_width, bmhd_height, bmhd_bitplanes, 
 | 
			
		||||
            1<<bmhd_bitplanes, bmhd_compression);
 | 
			
		||||
 | 
			
		||||
        if ((fmt==ILBM_NORMAL) || (fmt==ILBM_EHB) || (fmt==ILBM_HAM)) {
 | 
			
		||||
        wxLogTrace(_T("iff"), 
 | 
			
		||||
            _T("Converting CMAP from normal ILBM CMAP"));
 | 
			
		||||
 | 
			
		||||
        switch(fmt) {
 | 
			
		||||
            case ILBM_NORMAL: colors = 1 << bmhd_bitplanes; break;
 | 
			
		||||
            case ILBM_EHB:    colors = 32*2; break;
 | 
			
		||||
            case ILBM_HAM:    colors = 16; break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (colors > m_image->colors) {
 | 
			
		||||
            byte *pal = new byte[colors*3];
 | 
			
		||||
            if (!pal) {
 | 
			
		||||
            Destroy();
 | 
			
		||||
            return wxIFF_MEMERR;
 | 
			
		||||
            }
 | 
			
		||||
            int i;
 | 
			
		||||
            for (i = 0; i < m_image->colors; i++) {
 | 
			
		||||
            pal[3*i + 0] = m_image->pal[3*i + 0];
 | 
			
		||||
            pal[3*i + 1] = m_image->pal[3*i + 1];
 | 
			
		||||
            pal[3*i + 2] = m_image->pal[3*i + 2];
 | 
			
		||||
            }
 | 
			
		||||
            for (; i < colors; i++) {
 | 
			
		||||
            pal[3*i + 0] = 0;
 | 
			
		||||
            pal[3*i + 1] = 0;
 | 
			
		||||
            pal[3*i + 2] = 0;
 | 
			
		||||
            }
 | 
			
		||||
            delete m_image->pal;
 | 
			
		||||
            m_image->pal = pal;
 | 
			
		||||
            m_image->colors = colors;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
            for (int i=0; i < colors; i++) {
 | 
			
		||||
            m_image->pal[3*i + 0] = (m_image->pal[3*i + 0] >> 4) * 17;
 | 
			
		||||
            m_image->pal[3*i + 1] = (m_image->pal[3*i + 1] >> 4) * 17;
 | 
			
		||||
            m_image->pal[3*i + 2] = (m_image->pal[3*i + 2] >> 4) * 17;
 | 
			
		||||
        }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        m_image->p = new byte[bmhd_width * bmhd_height * 3];
 | 
			
		||||
            byte *picptr = m_image->p;
 | 
			
		||||
        if (!picptr) {
 | 
			
		||||
        Destroy();
 | 
			
		||||
        return wxIFF_MEMERR;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        byte *pal = m_image->pal;
 | 
			
		||||
        int lineskip = ((bmhd_width + 15) >> 4) << 1;
 | 
			
		||||
            int height = chunkLen / (lineskip * bmhd_bitplanes);
 | 
			
		||||
 | 
			
		||||
        if (bmhd_height < height) {
 | 
			
		||||
            height = bmhd_height;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (fmt == ILBM_HAM || fmt == ILBM_HAM8 || fmt == ILBM_24BIT) {
 | 
			
		||||
        byte *pic = picptr;
 | 
			
		||||
        const byte *workptr = bodyptr;
 | 
			
		||||
 | 
			
		||||
        for (int i=0; i < height; i++) {
 | 
			
		||||
            byte bitmsk = 0x80;
 | 
			
		||||
            const byte *workptr2 = workptr;
 | 
			
		||||
 | 
			
		||||
            // at start of each line, init RGB values to background
 | 
			
		||||
            byte rval = pal[0];
 | 
			
		||||
            byte gval = pal[1];
 | 
			
		||||
            byte bval = pal[2];
 | 
			
		||||
 | 
			
		||||
            for (int j=0; j < bmhd_width; j++) {
 | 
			
		||||
            long col = 0;
 | 
			
		||||
            long colbit = 1;
 | 
			
		||||
            const byte *workptr3 = workptr2;
 | 
			
		||||
            for (int k=0; k < bmhd_bitplanes; k++) {
 | 
			
		||||
                if (*workptr3 & bitmsk) {
 | 
			
		||||
                col += colbit;
 | 
			
		||||
                }
 | 
			
		||||
                workptr3 += lineskip;
 | 
			
		||||
                colbit <<= 1;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (fmt==ILBM_HAM) {
 | 
			
		||||
                int c = (col & 0x0f);
 | 
			
		||||
                switch (col & 0x30) {
 | 
			
		||||
                case 0x00: if (c >= 0 && c < colors) {
 | 
			
		||||
                           rval = pal[3*c + 0];
 | 
			
		||||
                           gval = pal[3*c + 1];
 | 
			
		||||
                           bval = pal[3*c + 2];
 | 
			
		||||
                       }
 | 
			
		||||
                       break;
 | 
			
		||||
 | 
			
		||||
                case 0x10: bval = c * 17;
 | 
			
		||||
                       break;
 | 
			
		||||
 | 
			
		||||
                case 0x20: rval = c * 17;
 | 
			
		||||
                       break;
 | 
			
		||||
 | 
			
		||||
                case 0x30: gval = c * 17;
 | 
			
		||||
                       break;
 | 
			
		||||
                }
 | 
			
		||||
            } else if (fmt == ILBM_HAM8) {
 | 
			
		||||
                int c = (col & 0x3f);
 | 
			
		||||
                switch(col & 0xc0) {
 | 
			
		||||
                case 0x00: if (c >= 0 & c < colors) {
 | 
			
		||||
                           rval = pal[3*c + 0];
 | 
			
		||||
                           gval = pal[3*c + 1];
 | 
			
		||||
                           bval = pal[3*c + 2];
 | 
			
		||||
                       }
 | 
			
		||||
                       break;
 | 
			
		||||
 | 
			
		||||
                case 0x40: bval = (bval & 3) | (c << 2);
 | 
			
		||||
                       break;
 | 
			
		||||
 | 
			
		||||
                case 0x80: rval = (rval & 3) | (c << 2);
 | 
			
		||||
                       break;
 | 
			
		||||
 | 
			
		||||
                case 0xc0: gval = (rval & 3) | (c << 2);
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                rval = col & 0xff;
 | 
			
		||||
                gval = (col >> 8) & 0xff;
 | 
			
		||||
                bval = (col >> 16) & 0xff;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            *pic++ = rval;
 | 
			
		||||
            *pic++ = gval;
 | 
			
		||||
            *pic++ = bval;
 | 
			
		||||
 | 
			
		||||
            bitmsk = bitmsk >> 1;
 | 
			
		||||
            if (bitmsk == 0) {
 | 
			
		||||
                bitmsk = 0x80;
 | 
			
		||||
                workptr2++;
 | 
			
		||||
            }
 | 
			
		||||
            }
 | 
			
		||||
            workptr += lineskip * bmhd_bitplanes;
 | 
			
		||||
        }
 | 
			
		||||
        }  else if ((fmt == ILBM_NORMAL) || (fmt == ILBM_EHB)) {
 | 
			
		||||
        if (fmt == ILBM_EHB) {
 | 
			
		||||
            wxLogTrace(_T("iff"), _T("Doubling CMAP for EHB mode"));
 | 
			
		||||
        
 | 
			
		||||
            for (int i=0; i<32; i++) {
 | 
			
		||||
            pal[3*(i + 32) + 0] = pal[3*i + 0] >> 1;
 | 
			
		||||
            pal[3*(i + 32) + 1] = pal[3*i + 1] >> 1;
 | 
			
		||||
            pal[3*(i + 32) + 2] = pal[3*i + 2] >> 1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
      
 | 
			
		||||
        byte *pic = picptr;         // ptr to buffer
 | 
			
		||||
        const byte *workptr = bodyptr;  // ptr to pic, planar format
 | 
			
		||||
 | 
			
		||||
        if (bmhd_height < height) {
 | 
			
		||||
            height = bmhd_height;
 | 
			
		||||
        }
 | 
			
		||||
      
 | 
			
		||||
        for (int i=0; i < height; i++) {
 | 
			
		||||
            byte bitmsk = 0x80;                 // left most bit (mask)
 | 
			
		||||
            const byte *workptr2 = workptr;     // work ptr to source
 | 
			
		||||
            for (int j=0; j < bmhd_width; j++) {
 | 
			
		||||
            long col = 0;
 | 
			
		||||
            long colbit = 1;
 | 
			
		||||
            const byte *workptr3 = workptr2;  // 1st byte in 1st pln
 | 
			
		||||
          
 | 
			
		||||
            for (int k=0; k < bmhd_bitplanes; k++) {
 | 
			
		||||
                if (*workptr3 & bitmsk) { // if bit set in this pln
 | 
			
		||||
                col = col + colbit; // add bit to chunky byte
 | 
			
		||||
                }
 | 
			
		||||
                workptr3 += lineskip;   // go to next line
 | 
			
		||||
                colbit <<= 1;           // shift color bit
 | 
			
		||||
            }
 | 
			
		||||
          
 | 
			
		||||
            if (col >= 0 && col < colors) {
 | 
			
		||||
                pic[0] = pal[3*col + 0];
 | 
			
		||||
                pic[1] = pal[3*col + 1];
 | 
			
		||||
                pic[2] = pal[3*col + 2];
 | 
			
		||||
            } else {
 | 
			
		||||
                pic[0] = pic[1] = pic[2] = 0;
 | 
			
		||||
            }
 | 
			
		||||
            pic += 3;
 | 
			
		||||
            bitmsk = bitmsk >> 1;   // shift mask to next bit
 | 
			
		||||
            if (bitmsk == 0) {      // if mask is zero
 | 
			
		||||
                bitmsk = 0x80;      // reset mask
 | 
			
		||||
                workptr2++;         // mv ptr to next byte
 | 
			
		||||
            }
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
            workptr += lineskip * bmhd_bitplanes;  // to next line
 | 
			
		||||
        }
 | 
			
		||||
        } else {
 | 
			
		||||
        break;      // unknown format
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        m_image->w = bmhd_width;
 | 
			
		||||
        m_image->h = height;
 | 
			
		||||
        m_image->transparent = bmhd_transcol;
 | 
			
		||||
        
 | 
			
		||||
        wxLogTrace(_T("iff"), _T("Loaded IFF picture %s"),
 | 
			
		||||
            truncated? "truncated" : "completely");
 | 
			
		||||
 | 
			
		||||
        return (truncated? wxIFF_TRUNCATED : wxIFF_OK);
 | 
			
		||||
    } else {
 | 
			
		||||
        wxLogTrace(_T("iff"), _T("Skipping unknown chunk '%c%c%c%c'"),
 | 
			
		||||
                *dataptr, *(dataptr+1), *(dataptr+2), *(dataptr+3));
 | 
			
		||||
 | 
			
		||||
        dataptr = dataptr + 8 + chunkLen;      // skip unknown chunk
 | 
			
		||||
    }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Destroy();
 | 
			
		||||
    return wxIFF_INVFORMAT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // wxUSE_STREAMS && wxUSE_IFF
 | 
			
		||||
 | 
			
		||||
@@ -52,6 +52,9 @@ void wxInitAllImageHandlers()
 | 
			
		||||
#if wxUSE_PCX
 | 
			
		||||
  wxImage::AddHandler( new wxPCXHandler );
 | 
			
		||||
#endif
 | 
			
		||||
#if wxUSE_IFF
 | 
			
		||||
  wxImage::AddHandler( new wxIFFHandler );
 | 
			
		||||
#endif
 | 
			
		||||
#if wxUSE_XPM
 | 
			
		||||
  wxImage::AddHandler( new wxXPMHandler );
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										108
									
								
								src/common/imagiff.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								src/common/imagiff.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,108 @@
 | 
			
		||||
//
 | 
			
		||||
// imgiff.cc    - image handler for Amiga IFF images
 | 
			
		||||
//        parts of the source taken by xv source code.
 | 
			
		||||
//
 | 
			
		||||
// (c) Steffen Gutmann, 2002
 | 
			
		||||
//
 | 
			
		||||
// Creation date: 08.01.2002
 | 
			
		||||
// Last modified: 08.01.2002
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifdef __GNUG__
 | 
			
		||||
#pragma implementation "imagiff.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// For compilers that support precompilation, includes "wx.h".
 | 
			
		||||
#include "wx/wxprec.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __BORLANDC__
 | 
			
		||||
#  pragma hdrstop
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef WX_PRECOMP
 | 
			
		||||
#  include "wx/defs.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "wx/imagiff.h"
 | 
			
		||||
#include "wx/iffdecod.h"
 | 
			
		||||
#include "wx/wfstream.h"
 | 
			
		||||
#include "wx/log.h"
 | 
			
		||||
#include "wx/intl.h"
 | 
			
		||||
 | 
			
		||||
#if wxUSE_IMAGE && wxUSE_IFF
 | 
			
		||||
 | 
			
		||||
IMPLEMENT_DYNAMIC_CLASS(wxIFFHandler, wxImageHandler)
 | 
			
		||||
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
// wxIFFHandler
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#if wxUSE_STREAMS
 | 
			
		||||
 | 
			
		||||
bool wxIFFHandler::LoadFile(wxImage *image, wxInputStream& stream, 
 | 
			
		||||
    bool verbose, int WXUNUSED(index))
 | 
			
		||||
{
 | 
			
		||||
    wxIFFDecoder *decod;
 | 
			
		||||
    int error;
 | 
			
		||||
    bool ok;
 | 
			
		||||
 | 
			
		||||
    decod = new wxIFFDecoder(&stream);
 | 
			
		||||
    error = decod->ReadIFF();
 | 
			
		||||
 | 
			
		||||
    if ((error != wxIFF_OK) && (error != wxIFF_TRUNCATED))
 | 
			
		||||
    {
 | 
			
		||||
        if (verbose)
 | 
			
		||||
        {
 | 
			
		||||
            switch (error)
 | 
			
		||||
            {
 | 
			
		||||
                case wxIFF_INVFORMAT:
 | 
			
		||||
                    wxLogError(_("IFF: error in IFF image format."));
 | 
			
		||||
                    break;
 | 
			
		||||
                case wxIFF_MEMERR:
 | 
			
		||||
                    wxLogError(_("IFF: not enough memory."));
 | 
			
		||||
                    break;
 | 
			
		||||
                default:
 | 
			
		||||
                    wxLogError(_("IFF: unknown error!!!"));
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        delete decod;
 | 
			
		||||
        return FALSE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((error == wxIFF_TRUNCATED) && verbose)
 | 
			
		||||
    {
 | 
			
		||||
        wxLogError(_("IFF: data stream seems to be truncated."));
 | 
			
		||||
        /* go on; image data is OK */
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ok = decod->ConvertToImage(image);
 | 
			
		||||
    delete decod;
 | 
			
		||||
 | 
			
		||||
    return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool wxIFFHandler::SaveFile(wxImage * WXUNUSED(image),
 | 
			
		||||
    wxOutputStream& WXUNUSED(stream), bool verbose)
 | 
			
		||||
{
 | 
			
		||||
    if (verbose)
 | 
			
		||||
        wxLogDebug(wxT("IFF: the handler is read-only!!"));
 | 
			
		||||
 | 
			
		||||
    return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool wxIFFHandler::DoCanRead(wxInputStream& stream)
 | 
			
		||||
{
 | 
			
		||||
    wxIFFDecoder *decod;
 | 
			
		||||
    bool ok;
 | 
			
		||||
 | 
			
		||||
    decod = new wxIFFDecoder(&stream);
 | 
			
		||||
    ok = decod->CanRead();
 | 
			
		||||
    delete decod;
 | 
			
		||||
 | 
			
		||||
    return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  
 | 
			
		||||
#endif  
 | 
			
		||||
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
# This file was automatically generated by tmake at 22:59, 2002/01/01
 | 
			
		||||
# This file was automatically generated by tmake at 18:46, 2002/01/15
 | 
			
		||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE GTK.T!
 | 
			
		||||
ALL_SOURCES = \
 | 
			
		||||
		generic/accel.cpp \
 | 
			
		||||
@@ -101,10 +101,12 @@ ALL_SOURCES = \
 | 
			
		||||
		common/hash.cpp \
 | 
			
		||||
		common/helpbase.cpp \
 | 
			
		||||
		common/http.cpp \
 | 
			
		||||
		common/iffdecod.cpp \
 | 
			
		||||
		common/imagall.cpp \
 | 
			
		||||
		common/imagbmp.cpp \
 | 
			
		||||
		common/image.cpp \
 | 
			
		||||
		common/imaggif.cpp \
 | 
			
		||||
		common/imagiff.cpp \
 | 
			
		||||
		common/imagjpeg.cpp \
 | 
			
		||||
		common/imagpcx.cpp \
 | 
			
		||||
		common/imagpng.cpp \
 | 
			
		||||
@@ -357,9 +359,11 @@ ALL_HEADERS = \
 | 
			
		||||
		helphtml.h \
 | 
			
		||||
		helpwin.h \
 | 
			
		||||
		icon.h \
 | 
			
		||||
		iffdecod.h \
 | 
			
		||||
		imagbmp.h \
 | 
			
		||||
		image.h \
 | 
			
		||||
		imaggif.h \
 | 
			
		||||
		imagiff.h \
 | 
			
		||||
		imagjpeg.h \
 | 
			
		||||
		imaglist.h \
 | 
			
		||||
		imagpcx.h \
 | 
			
		||||
@@ -665,10 +669,12 @@ COMMONOBJS = \
 | 
			
		||||
		hash.o \
 | 
			
		||||
		helpbase.o \
 | 
			
		||||
		http.o \
 | 
			
		||||
		iffdecod.o \
 | 
			
		||||
		imagall.o \
 | 
			
		||||
		imagbmp.o \
 | 
			
		||||
		image.o \
 | 
			
		||||
		imaggif.o \
 | 
			
		||||
		imagiff.o \
 | 
			
		||||
		imagjpeg.o \
 | 
			
		||||
		imagpcx.o \
 | 
			
		||||
		imagpng.o \
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
# This file was automatically generated by tmake at 22:59, 2002/01/01
 | 
			
		||||
# This file was automatically generated by tmake at 18:46, 2002/01/15
 | 
			
		||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE GTK.T!
 | 
			
		||||
ALL_SOURCES = \
 | 
			
		||||
		generic/accel.cpp \
 | 
			
		||||
@@ -101,10 +101,12 @@ ALL_SOURCES = \
 | 
			
		||||
		common/hash.cpp \
 | 
			
		||||
		common/helpbase.cpp \
 | 
			
		||||
		common/http.cpp \
 | 
			
		||||
		common/iffdecod.cpp \
 | 
			
		||||
		common/imagall.cpp \
 | 
			
		||||
		common/imagbmp.cpp \
 | 
			
		||||
		common/image.cpp \
 | 
			
		||||
		common/imaggif.cpp \
 | 
			
		||||
		common/imagiff.cpp \
 | 
			
		||||
		common/imagjpeg.cpp \
 | 
			
		||||
		common/imagpcx.cpp \
 | 
			
		||||
		common/imagpng.cpp \
 | 
			
		||||
@@ -357,9 +359,11 @@ ALL_HEADERS = \
 | 
			
		||||
		helphtml.h \
 | 
			
		||||
		helpwin.h \
 | 
			
		||||
		icon.h \
 | 
			
		||||
		iffdecod.h \
 | 
			
		||||
		imagbmp.h \
 | 
			
		||||
		image.h \
 | 
			
		||||
		imaggif.h \
 | 
			
		||||
		imagiff.h \
 | 
			
		||||
		imagjpeg.h \
 | 
			
		||||
		imaglist.h \
 | 
			
		||||
		imagpcx.h \
 | 
			
		||||
@@ -665,10 +669,12 @@ COMMONOBJS = \
 | 
			
		||||
		hash.o \
 | 
			
		||||
		helpbase.o \
 | 
			
		||||
		http.o \
 | 
			
		||||
		iffdecod.o \
 | 
			
		||||
		imagall.o \
 | 
			
		||||
		imagbmp.o \
 | 
			
		||||
		image.o \
 | 
			
		||||
		imaggif.o \
 | 
			
		||||
		imagiff.o \
 | 
			
		||||
		imagjpeg.o \
 | 
			
		||||
		imagpcx.o \
 | 
			
		||||
		imagpng.o \
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user