Commit Graph

100 Commits

Author SHA1 Message Date
Vadim Zeitlin
7e64a29edb Add support for saving 256*256 ICOs in PNG format.
Allow saving icons larger than 127*127 pixels (up to 256*256 which is the
maximal size supported by the ICO format) and save large icons with the item
data in PNG format, as it is normally done for these sizes.

See #15918.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-12 23:04:14 +00:00
Vadim Zeitlin
184b9b49d3 Add support for loading icons in PNG format to wxImage.
ICO files can contain data in PNG, as well as BMP, format in recent (i.e. from
this millennium) versions of Windows, so check for this case in wxICOHandler
and load such data using wxPNGHandler.

See #15918.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-12 23:04:09 +00:00
Vadim Zeitlin
6c83e5cf8f Handle verbosity correctly in wxICOHandler loading code.
Pass on the "verbose" argument to LoadDib() function instead of always being
verbose in it.

Also remove the unused IsBmp variable.

See #15918.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-12 23:04:05 +00:00
Vadim Zeitlin
10c3830624 Allow loading icons of width 256 from ICO files.
Account for the tweak of ICO file format which uses 0 if the width is 256.

See #15918.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-12 23:04:00 +00:00
Vadim Zeitlin
d8090867aa Fix possible memory leak in wxICOHandler loading code.
Use wxScopedArray<> instead of a raw pointer to ensure that the memory is
always freed, even in case of error return.

See #15918.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-12 23:03:55 +00:00
Vadim Zeitlin
0a76afbe9c Use wxScopedArray instead of raw new[]/delete[] and fix memory leak.
Don't leak memory in case of error when reading from the stream in BMP loading
code.

Closes #15789.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-31 14:03:37 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
0f5378d414 Make code reading BMP files more robust.
Check that we did correctly read the requested amount of data instead of
blindly assuming that the needed (from the point of view of BMP format
specification) number of bytes are always available -- this doesn't work so
well with corrupted or truncated files.

Closes #12056.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 13:15:21 +00:00
Dimitri Schoolwerth
d06c3098ab Improved BMP decoding.
The BMP decoder did not handle images that are not stored upside down but straight up (in which case the height is negative). Also with RLE4 or RLE8 compressed images the 'end of scanline' RLE marker was not handled correctly. Fixed the issues and added a unit test for them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-17 21:01:09 +00:00
Dimitri Schoolwerth
5c98cb9b75 Fixed failing to load ANI, BMP, and ICO images from non-seekable streams.
Guarded recently added SeekI() calls by calling is IsSeekable() first.

Regression since r67671.

Closes #12861 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-05 23:52:07 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Dimitri Schoolwerth
bf34105a41 Fixed reading multiple images from ANI and ICO image files.
In r60852 various 'unneeded' SeekI(0) calls were removed. Examined the changes in that revision and restored all SeekI(0) calls after finding out their removal caused problems with reading more than one image from ICO and ANI files. The image handling code for these formats expects to read from the start of a stream for reading its images (as well as for DoCanRead and DoGetImageCount), regardless of the index of the requested image.

Closes #12861.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-01 23:35:46 +00:00
Dimitri Schoolwerth
2a6545a5a7 Fixed buffer overflow when saving certain images in the Windows icon format.
When an image did not have a width with a multiple of 4 the calculations for the number of padding bytes (to get a scan line DWORD aligned) would be wrong. This caused a buffer overrun when saving the 1 bits per pixel mask.

Fixes #12937.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-23 15:20:25 +00:00
Dimitri Schoolwerth
b4c470164c Tightened icon and cursor file detection heuristics.
When loading a TGA file that has an image type of uncompressed true colour it would be falsely detected as a cursor file and as an icon file if type is of uncompressed colour mapped. Lower the chance of this happening by also checking the remaining member of an ICO and CUR header which represents the number of images in the file. This member has to be non-zero (checked against all found ICO and CUR files in an XP installation).

See also #12702.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-29 12:31:37 +00:00
Vadim Zeitlin
b513123062 Discard fully transparent alpha channel when loading bitmaps.
Some bitmap files declare themselves to be 32bpp, normally indicating that
they have an alpha channel, but have only zeroes in their alpha data. Hence
loading them used to create fully transparent images which wasn't the desired
effect.

Fix this by simply discarding the alpha channel entirely if it turns out that
all pixels were fully transparent.

Closes #10915.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-09 13:15:25 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Paul Cornett
38e23f1020 Fix loading BMPs, broken in r60852. Parenthesize shift expressions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-19 06:00:13 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
43b2d5e7c3 Put braces around all calls to wxLogFunctions() inside an if statement.
This suppresses all the remaining g++ -Wparentheses warnings and uses consistent style everywhere.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-20 16:47:54 +00:00
Vadim Zeitlin
af58844636 Add information about the log message generation location to wxLog.
This means that wxLog::DoLogRecord() can now retrieve the file name, line
number and the function where the message was logged.

An unfortunate consequence of this change is that now

	if ( condition )
		wxLogError("Whatever");

results in a warning from g++ 4.x with -Wparentehses, so extra parentheses had
to be added in many places.

Finally, also allow storing arbitrary attributes in wxLogRecordInfo. This had
to be added to implement our own overloaded wxLogStatus() and wxLogSysError()
and will probably be useful for the others as well.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-09 20:26:34 +00:00
Francesco Montorsi
a9a2485d64 fix loading ICO from socket stream: override OnSysTell and OnSysSeek rather than directly SeekO/I or TellO/I; in wxICOHandler only call SeekI() if we have a non-null seek offset
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 13:56:41 +00:00
Francesco Montorsi
8faef7ccbc document that CanRead() and GetImageCount() functions of wxImageHandlers do NOT modify the current stream position and that they require seekable streams; rename current GetImageCount() functions to DoGetImageCount() and put save-and-restore stream position logic in GetImageCount(); add comments in the various DoCanRead() and in DoGetImageCount() where the stream position is modified; remove unneeded SeekI(0) calls from DoCanRead() and DoGetImageCount() functions: they didn't allow to load images from non-seekable streams; implement forward-seeking in wxInputStream::SeekI() also for non-seekable streams
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 11:43:36 +00:00
Francesco Montorsi
b81e450659 always properly check if SeekI() calls succeded; this makes CanRead() functions of animation decoders return false for non-seekable streams (which is a wanted side-effect)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-13 19:16:08 +00:00
Vadim Zeitlin
fe7f0a591d use GetResolutionFromOptions() to honour wxIMAGE_OPTION_RESOLUTION and not just wxIMAGE_OPTION_RESOLUTION[XY]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-17 14:32:10 +00:00
Vadim Zeitlin
0d81b3cd93 fix bad typo in the code: wxIMAGE_OPTION_RESOLUTION option was used where wxIMAGE_OPTION_RESOLUTIONUNIT was meant (reviewing documentation is useful for finding bugs too...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-17 14:27:35 +00:00
Vadim Zeitlin
d8defde6b0 remove unused abits variable from DoLoadDib()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-20 08:51:30 +00:00
Vadim Zeitlin
622f7a49ef use factor of 10, not 100, to convert mm to cm after mm2inches was fixed in r55800
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-22 16:27:43 +00:00
Vadim Zeitlin
ef5571c62a no real changes, just some cleanup: use wxON_BLOCK_EXIT instead of littering the code with delete[] statements; don't use identifiers starting with underscore
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 00:32:12 +00:00
Vadim Zeitlin
55a35cb0c1 add support for reading alpha channel from BMP images (#9741)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 00:23:38 +00:00
Vadim Zeitlin
f172cb8200 removed support for Salford compiler (which was almost certainly broken anyhow) (patch 1861133)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-31 10:05:00 +00:00
Vadim Zeitlin
ad91e1ade0 fix gcc warnings about float/double to int conversion after the latest changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-09 19:34:01 +00:00
Vadim Zeitlin
37ba70a520 added support for reading resolution information from TIFF, JPEG and BMP formats; corrected some bugs with saving resolution; added command allowing to see the image resolution (if available) to the sample (heavily modified patch 1790546)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-08 18:32:36 +00:00
Vadim Zeitlin
72045d5768 added wxAnimationCtrl (patch 1570325)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-09 17:51:07 +00:00
Vadim Zeitlin
b7cacb43db add IsOk() to all classes having Ok() method (patch 1570985)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41751 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 21:56:55 +00:00
Paul Cornett
5ff14574fc some app.h cleanup: minimize includes, use static cast
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-09 17:29:19 +00:00
Włodzimierz Skiba
57bd4c6031 Include wx/msw/wrap*.h according to pch support (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-07 19:01:45 +00:00
Włodzimierz Skiba
02761f6cd4 Include wx/module.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-31 19:31:43 +00:00
Mart Raudsepp
eab77b5983 Kill typo noticed by Priit Laes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-27 11:55:13 +00:00
Włodzimierz Skiba
0bca037363 Include wx/bitmap.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-14 10:02:19 +00:00
Włodzimierz Skiba
e7c80f9e05 wx/debug.h is always unconditionally included by wx/defs.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-24 15:13:23 +00:00
Włodzimierz Skiba
8898456df4 wx/wxprec.h already includes wx/defs.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-18 07:24:35 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Włodzimierz Skiba
1229a1e7bf Better fix for 'int i' used twice in the same block.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-13 16:06:41 +00:00
Włodzimierz Skiba
6fbf4a60fe 'i' is already used in this scope so make it clearer.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-05 17:39:15 +00:00
Włodzimierz Skiba
11846af338 Warning fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-01-25 15:49:14 +00:00
Vadim Zeitlin
0ce5a3a853 fixed SaveDIB() crash with BW images (patch 1045884)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-12 17:40:00 +00:00
Włodzimierz Skiba
ecae80b250 Typecast before endian adjustements.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-11-17 16:36:28 +00:00
David Elliott
f12a90c7c2 Use wxUint16 instead of WORD and wxUint8 instead of BYTE.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-11-15 20:51:05 +00:00
Włodzimierz Skiba
9a431f4d03 Warning fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-11-15 17:40:00 +00:00
Vadim Zeitlin
30984deafc new set of fixes for problems due to huge files support: drop wxFileSize_t, use wxFileOffset only, make wxInvalidOffset an int (main part of the patch 1063498)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-11-10 21:02:58 +00:00