Commit Graph

109 Commits

Author SHA1 Message Date
Vadim Zeitlin
3380a2438d Fix scale factor confusion in wxMac wxBitmap implementation
Merge ctors from (width, height) and (width, height, scale) into a
single one because the former really should be just a special case of
the latter for scale == 1 but, surprisingly and confusingly it wasn't,
because the latter also multiplied the size by scale, meaning that width
and height parameters had different meanings.

This resulted in at least 3 bugs when using scale factors different from
1: first, copying bitmaps wasn't done correctly because as
wxBitmapRefData copy ctor incorrectly scaled its size by scale again.
And second, creating bitmap from wxImage whose size wasn't divisible by
scale not just didn't work correctly but crashed when accessing memory
outside of the image because (unnecessarily) dividing and multiplying
the image size by scale wasn't idempotent. Finally, even for the images
of even size (assuming scale factor of 2), bitmaps created from them
used incorrect width and height, corresponding to the half of the image
dimensions, instead of the same ones, as they're supposed to be (the
scaled dimensions are supposed to be returned by GetScale{Width,Height}
methods).

Closes #17505.
2018-01-14 18:51:02 +01:00
Artur Wieczorek
c6938e9f97 Fix setting transparency flag for wxBitmap created from wxIcon
wxBitmap should be made transparency-capable before copying wxIcon bits to it. Doing so when wxIcon bits are already copied seems to work fine for OSX 10.8, but not for newer versions. 

Closes #17953.
2017-09-28 19:08:50 +02:00
Artur Wieczorek
3d5e84b229 Update transparency flag for wxBitmap created from wxIcon
Just created wxBitmap has "hasAlpha" flag set to false so it needs to be modified if source wxIcon contains transparency values.

Closes #17953.
2017-09-22 09:44:10 +02:00
Stefan Csomor
175c62d3f3 Using 'new-style' AssertMacros to support compilation for macOS 10.3 and iOS 11
To avoid collisions with boost and c++ standard library using the assert macros starting with two underscores is the default under these new SDKs. Since they already existed in our minimum deploment SDK we can switch them safely.
2017-07-15 13:30:59 +02:00
Stefan Csomor
eb0c95a5ea We always use 32 bit depth on OSX for this conversion from wxImage 2017-06-26 10:58:35 +02:00
Stefan Csomor
b0470eb91d Bring OSX API in sync with MSW 2017-06-25 13:55:06 +02:00
Vadim Zeitlin
50190395c6 Get rid of macOS 10.7 version checks, they're always true
We don't support OS X < 10.7 anyhow any more.
2016-11-26 17:28:12 +01:00
Tobias Taschner
5ba67c67e4 Remove wxOSX/Carbon support.
Cocoa has been the default toolkit in wxWidgets for a long time. There is really no good reason to use Carbon in 2016 and this removes a lot of unused and unmaintained code.
2016-02-01 13:48:48 +01:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
3d2d8fc4ab Consistently refuse to create bitmaps with 0 width or height.
Homogenize the behaviour of all ports when creating bitmaps with 0 width or
height: just fail always as it doesn't seem to make sense to support this.

Closes #16828.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-03 18:28:21 +00:00
Vadim Zeitlin
ee5ab1fffa Fix wxBitmap conversion to wxImage in 64-bit wxOSX builds.
Don't assume that sizeof(long) == 4, this is just wrong.

Closes #16770.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-06 20:20:19 +00:00
Václav Slavík
de0c7f725d Add support for template NSImages to wxBitmap
wxBitmap uses CGImage instead of NSImage internally and the conversion
looses NSImage metadata.  In particular, it looses the "template"
attribute, which is set for files ending with "Template" and loaded
trough wxArtProvider.

This change makes it easy to use template images with native controls
such as the toolbar.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-14 08:53:11 +00:00
Stefan Csomor
f6a2d1caef remove unnecessary includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-26 13:38:22 +00:00
Václav Slavík
7a25cf4932 Don't use the deprecated 'register' storage specifier.
It is not only useless with any modern C++ compiler, but also deprecated
in C++11.  Removing it fixes Clang warnings on the subject.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-19 17:23:02 +00:00
Stefan Csomor
b7b24349e1 removing extra semicola
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-31 07:28:10 +00:00
Vadim Zeitlin
33ad33d447 Add wxOVERRIDE and use it in common and wxOSX code.
Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-20 13:26:28 +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
Stefan Csomor
44c8e75ba9 support for @2x notation for wxBITMAP_TYPE_PNG (non-resource) on retina displays
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-14 11:16:32 +00:00
Stefan Csomor
bc7a3ceeba support getting device resolution on all osx ports
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-28 13:24:27 +00:00
Stefan Csomor
e788ceb8fa new method for contentScaleFactor on main screen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-28 10:41:20 +00:00
Stefan Csomor
c944835aaa native bitmap scaling codes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-27 07:24:15 +00:00
Stefan Csomor
f8bfebfcb8 native scaling support for bitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74287 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-25 14:02:11 +00:00
Stefan Csomor
68d5ce9099 adding new constructor for best dc-compatibility of bitmaps
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-15 16:29:04 +00:00
Václav Slavík
72625b36b6 Add wxBitmap(NSImage*) ctor to wxOSX.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-28 16:28:52 +00:00
Paul Cornett
5ca21fe7bf add wxMask::GetBitmap(), closes #9381
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 06:28:11 +00:00
Paul Cornett
784d9056f4 sizeof(char) is 1. By definition.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 03:08:33 +00:00
Stefan Csomor
a51e79e87d fixing class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-02 10:45:52 +00:00
Stefan Csomor
0224c1f68b completing the removal of PICT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-19 21:18:55 +00:00
Stefan Csomor
37d8aa5b68 bracing 10.7+ constant
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-19 14:09:30 +00:00
Stefan Csomor
359e69fed2 workaround for non-standard icon sizes under 64 bit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-19 12:36:24 +00:00
Vadim Zeitlin
20e6714a67 Add wxBitmap::NewFromPNGData() for creating bitmaps from PNG data.
This simple function can be used to create a wxBitmap from the raw image data
in PNG format. It is just a thin wrapper around wxImage load functions under
almost all platforms but has two advantages:

1. It can be implemented natively for some platforms (currently only OS X).
2. It can be used in a single expression as it doesn't require creating a
   temporary wxMemoryInputStream and this will be required by wxBITMAP_PNG()
   macro that will be added soon.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:15:00 +00:00
Stefan Csomor
f5fac4471b guarding agains NULL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-14 21:51:19 +00:00
Stefan Csomor
5f35207b7d fixing c++11 build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-18 09:56:06 +00:00
Vadim Zeitlin
4fbb421ba9 Handle kCGImageAlphaNoneSkipFirst correctly in wxOSX wxBitmap code.
The code tested twice for kCGImageAlphaNoneSkipLast which was clearly wrong.
The original intention was probably to check for both it and
kCGImageAlphaNoneSkipFirst, so fix it to this now.

Closes #14019.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-28 22:24:40 +00:00
Stefan Csomor
13842bbf04 removing Quickdraw call
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-28 16:30:58 +00:00
Stefan Csomor
08eb5b48d0 no 10.4 support anymore
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-27 15:38:39 +00:00
Stefan Csomor
29c829ba84 no 10.4 support anymore
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-27 15:35:31 +00:00
Stefan Csomor
fb2281054c fixing RTTI
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-18 14:19:01 +00:00
Stefan Csomor
974c115dff guard against nullptr
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67899 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-09 00:31:05 +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
Stefan Csomor
ea2807a4c4 calling explicit base class constructor from copy constructor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-16 10:56:41 +00:00
Stefan Csomor
554b2800c6 supporting a null cgimage so that we don't get exceptions, only an wxbitmap that is !Ok()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-25 18:47:12 +00:00
Stefan Csomor
bf7470fe14 adding constructor from CGImageRef
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-25 15:47:05 +00:00
Stefan Csomor
aaa7d63c51 loading png and jpg from resource bundle
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-23 10:10:45 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Stefan Csomor
59d866ad85 name change to correctly reflect the autorelease nature of the methods, removing double release, fixes #11547, fixes #11760
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-12 16:29:35 +00:00
Stefan Csomor
0cc67fd514 commenting never used code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-03 19:58:15 +00:00
Paul Cornett
acc255e9d0 revert, checked in the wrong file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-03 16:37:54 +00:00
Paul Cornett
54c5d4fa43 Remove unused global bitmap, which caused crash on startup with wxUSE_XPM==0.
Use new pen style enums

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-03 16:23:18 +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