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:
parent
13b1f8a7e6
commit
4b6b4dfcf4
@ -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 ""
|
||||
"óÅÒ×ÉÓ ÕÄÁÌÅÎÎÏÇÏ ÐÏÄÓÏÅÄÉÎÅÎÉÑ (RAS) ÎÅ ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÜÔÏÊ ÍÁÛÉÎÅ."
|
||||
"ðÏÖÁÌÕÊÓÔÁ ÕÓÔÁÎÏ×ÉÔÅ ÅÇÏ."
|
||||
"óÅÒ×ÉÓ ÕÄÁÌÅÎÎÏÇÏ ÐÏÄÓÏÅÄÉÎÅÎÉÑ (RAS) ÎÅ ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÜÔÏÊ "
|
||||
"ÍÁÛÉÎÅ.ðÏÖÁÌÕÊÓÔÁ ÕÓÔÁÎÏ×ÉÔÅ ÅÇÏ."
|
||||
|
||||
#: ../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 ""
|
||||
"æÁÊÌÙ HTML (*.htm)|*.htm|æÁÊÌÙ HTML (*.html)|*.html|ëÎÉÇÉ ÐÏÍÏÝÉ (*.htb)|*."
|
||||
"htb|ëÎÉÇÉ ÐÏÍÏÝÉ (*.zip)|*.zip|ðÒÏÅËÔ ÐÏÍÏÝÉ HTML (*.hhp)|*.hhp|÷ÓÅ ÆÁÊÌÙ (*."
|
||||
"*)|*"
|
||||
"æÁÊÌÙ HTML (*.htm)|*.htm|æÁÊÌÙ HTML (*.html)|*.html|ëÎÉÇÉ ÐÏÍÏÝÉ "
|
||||
"(*.htb)|*.htb|ëÎÉÇÉ ÐÏÍÏÝÉ (*.zip)|*.zip|ðÒÏÅËÔ ÐÏÍÏÝÉ HTML "
|
||||
"(*.hhp)|*.hhp|÷ÓÅ ÆÁÊÌÙ (*.*)|*"
|
||||
|
||||
# ../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 ""
|
||||
"óÅÒ×ÉÓ ÕÄÁÌÅÎÎÏÇÏ ÐÏÄÓÏÅÄÉÎÅÎÉÑ (RAS) ÎÅ ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÜÔÏÊ ÍÁÛÉÎÅ."
|
||||
"ðÏÖÁÌÕÊÓÔÁ ÕÓÔÁÎÏ×ÉÔÅ ÅÇÏ."
|
||||
"óÅÒ×ÉÓ ÕÄÁÌÅÎÎÏÇÏ ÐÏÄÓÏÅÄÉÎÅÎÉÑ (RAS) ÎÅ ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÜÔÏÊ "
|
||||
"ÍÁÛÉÎÅ.ðÏÖÁÌÕÊÓÔÁ ÕÓÔÁÎÏ×ÉÔÅ ÅÇÏ."
|
||||
|
||||
# ../src/unix/mimetype.cpp:1570
|
||||
#: ../src/unix/mimetype.cpp:2412
|
||||
@ -4366,8 +4367,7 @@ msgstr "
|
||||
#~ msgstr "éÍÑ ÚÁÐÉÓÉ ÎÅ ÍÏÖÅÔ ÎÁÞÉÎÁÔØÓÑ Ó '%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 ""
|
||||
#~ "æÁÊÌ mime.types %s, ÓÔÒÏËÁ %d: ÌÉÛÎÉÅ ÓÉÍ×ÏÌÙ ÐÏÓÌÅ ÚÎÁÞÅÎÉÑ ÐÏÌÑ "
|
||||
#~ "ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ."
|
||||
@ -4425,8 +4425,8 @@ msgstr "
|
||||
#~ "wxPrintPreviewBase::SetCanvas ÞÔÏÂÙ Ñ ÚÎÁÌ Ï ËÁÎ×Å (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 "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÄÏÓÔÉÇÎÕÔ ÌÉ ËÏÎÅà ÆÁÊÌÁ Ó ÄÅÓËÒÉÐÔÏÒÏÍ %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èrtano</u>. <i>Kurzivno.</i> <b>Krepko.</"
|
||||
"b> <b><i>Krepko kurzivno.</i></b><br><font size=-2>velikost èrk -2</"
|
||||
"font><br><font size=-1>velikost èrk -1</font><br><font size=+0>velikost èrk "
|
||||
"<html><body>Normalno<br>(and <u>podèrtano</u>. <i>Kurzivno.</i> "
|
||||
"<b>Krepko.</b> <b><i>Krepko kurzivno.</i></b><br><font size=-2>velikost èrk "
|
||||
"-2</font><br><font size=-1>velikost èrk -1</font><br><font size=+0>velikost "
|
||||
"èrk +0</font><br><font size=+1>velikost èrk +1</font><br><font "
|
||||
"size=+2>velikost èrk +2</font><br><font size=+3>velikost èrk "
|
||||
"+3</font><br><font size=+4>velikost èrk +4</font><br><p><tt>Enaka "
|
||||
"velikost.<br> <b>krepko</b> <i>kurzivno</i> <b><i>krepko kurzivno "
|
||||
"<u>podèrtano</u></i></b><br><font size=-2>velikost èrk -2</font><br><font "
|
||||
"size=-1>velikost èrk -1</font><br><font size=+0>velikost èrk "
|
||||
"+0</font><br><font size=+1>velikost èrk +1</font><br><font size=+2>velikost "
|
||||
"èrk +2</font><br><font size=+3>velikost èrk +3</font><br><font size="
|
||||
"+4>velikost èrk +4</font><br><p><tt>Enaka velikost.<br> <b>krepko</b> "
|
||||
"<i>kurzivno</i> <b><i>krepko kurzivno <u>podèrtano</u></i></b><br><font "
|
||||
"size=-2>velikost èrk -2</font><br><font size=-1>velikost èrk -1</"
|
||||
"font><br><font size=+0>velikost èrk +0</font><br><font size=+1>velikost èrk "
|
||||
"+1</font><br><font size=+2>velikost èrk +2</font><br><font size=+3>velikost "
|
||||
"èrk +3</font><br><font size=+4>velikost èrk +4</font></tt></body></html>"
|
||||
"èrk +2</font><br><font size=+3>velikost èrk +3</font><br><font "
|
||||
"size=+4>velikost è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èjo "
|
||||
"(*.htb)|*.htb|Knjige s pomoèjo (*.zip)|*.zip|HTML Projekt pomoèi (*.hhp)|*."
|
||||
"hhp|Vse datoteke (*.*)|*"
|
||||
"(*.htb)|*.htb|Knjige s pomoèjo (*.zip)|*.zip|HTML Projekt pomoè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ä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ä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älpböcker (*.htb)|*."
|
||||
"htb|Hjälpböcker (*.zip)|*.zip|HTML-hjälpprojekt (*.hhp)|*.hhp|Alla filer (*."
|
||||
"*)|*"
|
||||
"HTML-filer (*.htm)|*.htm|HTML-filer (*.html)|*.html|Hjälpböcker "
|
||||
"(*.htb)|*.htb|Hjälpböcker (*.zip)|*.zip|HTML-hjä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 \
|
||||
|
Loading…
Reference in New Issue
Block a user