Commit Graph

62 Commits

Author SHA1 Message Date
Vadim Zeitlin
84cb293e71 Make wxBitmap::Rescale() less horrible for commonly used icons
Make the results look somewhat better by using wxIMAGE_QUALITY_NEAREST
which preserves sharp horizontal and vertical edges in the images which
are common in the icons, with which this function is often used, instead
of blurring them as wxIMAGE_QUALITY_HIGH does.

This is also much (factor of ~40) faster, which shouldn't hurt neither.
2022-02-23 00:04:02 +00:00
Vadim Zeitlin
94716fd801 Add wxBitmap::CreateWithLogicalSize()
The new function has a more clear name than CreateScaled() it replaces
and uses a more useful parameter order, with the scale factor, which
must always be specified when using it, coming before, and not after,
the depth, which almost never needs to be specified and so can be left
at its default value in 99% of cases.
2022-01-22 22:44:00 +00:00
Vadim Zeitlin
65bb454311 Add wxBitmap::GetLogical{Width,Height,Size}()
These functions have better names than the existing GetScaledXXX() ones,
so add them to be able to use them in the new code, even if we still
keep the old ones for compatibility.
2022-01-22 18:56:21 +00:00
Vadim Zeitlin
7c7ff3cd42 Add wxBitmap::GetDIPSize() and use it in wxBitmapBundleImplArt
This fixes the problem with wrong standard bitmaps size when using high
DPI for the main monitor with wxMSW, as GetScaledSize() used here since
31f2892200 (Avoid bitmap scaling in wxArtProvider::GetBitmapBundle(),
2021-12-17) was not the right function to use there.

Closes #19331.
2022-01-13 17:34:49 +00:00
Vadim Zeitlin
f6fbc97c7b Only return really scaled bitmap size under platforms using DIPs
wxBitmap::GetScaledXXX() functions are useful for obtaining the
coordinates in logical pixels, so they should only divide by the scaling
factor on the platforms where logical pixels are actually different from
the physical ones, i.e. those using DPI-independent pixels.

This ensures that their behaviour under MSW remains unchanged even after
a1e4dca067 (Store scale factor in wxMSW bitmaps too, 2021-12-16), which
is the correct way to avoid breaking wxAUI (and other) drawing.
2022-01-13 17:34:49 +00:00
Vadim Zeitlin
41b1ba3c9e Replace many identical wxBitmap::CopyFromIcon() with a single one
Define CopyFromIcon() directly in wxBitmapBase for the non-MSW ports, as
it was implemented exactly in the same way in all ports using this class
anyhow.

This means this function is not virtual any longer, but this shouldn't
be a problem as it was never supposed to be overridden in application
code and this couldn't be done with wxMSW, where it never was virtual in
the first place, anyhow.

No real changes, just a simplification.
2021-10-25 23:36:45 +02:00
Vadim Zeitlin
1056ba19af Move scale factor-related wxBitmap functions out of line
This will make it possible to change them later without breaking ABI,
which is probably worth paying the price of a function call (assuming
the compiler could de-virtualize this call and inline it before).

No real changes.
2021-10-24 23:04:45 +02:00
Vadim Zeitlin
5a91ab92f7 Use high quality in wxBitmap::Rescale()
This function is currently used for relatively small icons in
wxArtProvider and wxSearchCtrl, so it shouldn't be a problem to use
wxIMAGE_QUALITY_HIGH from performance point of view and if it ever does
become a problem, the application could easily use wxImage::Rescale()
with a different option directly instead.
2021-09-24 00:30:02 +02:00
Vadim Zeitlin
024c231624 Replace multiple RescaleBitmap() with wxBitmap::Rescale()
Define a single function and use it in both wxArtProvider and (the
generic implementation of) wxSearchCtrl instead of repeating the same
code elsewhere.

Note that another, but slightly different, version of RescaleBitmap()
still remains in wxPropertyGrid.

Deprecate undocumented wxArtProvider::RescaleBitmap() which is
completely useless now.

No real changes, this is just a refactoring.
2021-09-24 00:30:02 +02:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02: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
df13791078 Merge wxQT branch into the trunk.
This merges in the latest sources from GSoC 2014 wxQt project with just a few
minor corrections, mostly undoing wrong changes to common files in that branch
(results of a previous bad merge?) and getting rid of whitespace-only changes.
Also remove debug logging from wxGrid.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-24 01:50:11 +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
cfcab929d4 virtual method hiding in GTK, so add direct implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-25 15:41:23 +00:00
Stefan Csomor
a85ccd79fd fixing naming to GetScaleFactor, adding default Create with a dc parameter
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74286 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-25 13:54:15 +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
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
e765d7ee73 xti changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 17:49:18 +00:00
Vadim Zeitlin
ac04aa9943 Make wxBitmap::ConvertToDisabled() available in all ports.
This method was defined in wxBitmapBase which is not used by wxMSW (and wxOS2)
so it wasn't available there. Move the definition of the method inline and
reuse it for all ports, making it part of either wxBitmapBase or wxBitmap as
appropriate.

This is clearly ugly but we still have no good solution for deriving wxBitmap
from wxBitmapBase in wxMSW as it already inherits from MSW-specific wxGDIImage
there.

Also document that ConvertToDisabled() is only available when wxUSE_IMAGE==1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:51:51 +00:00
Julian Smart
198c264dbc Applied part of #10034: wxImage::ConvertToDisabled()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 20:05:33 +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
Francesco Montorsi
c822d4ca20 build fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-25 21:19:27 +00:00
Francesco Montorsi
e86f2cc84a reorganized wxBitmap/wxBitmapHandler classes to use wxBitmapType instead of "long" where possible; made them const-correct; introduce wxBITMAP_SCREEN_DEPTH instead of -1 for clearness (specially in the docs); remove wxBitmapHandler empty stubs and rename wxBitmapHandlerBase as wxBitmapHandler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-25 20:31:48 +00:00
Vadim Zeitlin
55ccdb93e4 COW cleanup patch (1583966):
1. perform deep comparison for the classes for which it makes sense in the
   ports where this wasn't done yet
2. remove (shallow) comparison operators for the classes for which it does
   not make sense (such as wxBitmap)
3. makes wxBitmap use COW on all ports
4. adds wxObject::IsRefTo()
5. centralizes and improves COW docs


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-30 19:26:48 +00:00
Paul Cornett
98d6e4b475 small cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41732 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 15:59:56 +00:00
Julian Smart
1deb3af2fd Added missing image.h header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 13:01:18 +00:00
Paul Cornett
452418c4b0 Move some things to wxBitmapBase to avoid much duplication.
Use proper const for XPM data, and const void* for arbitary bitmap data.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 08:04:49 +00:00
Włodzimierz Skiba
d4f6dbf62a wxVariant support needs wx/icon.h earlier.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-02 08:15:15 +00:00
Włodzimierz Skiba
bae328c1ff wxVariant support for icon and bitmap should work regardless wxBitmapBase.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-02 07:58:53 +00:00
Robert Roebling
6f5d78250c Move wxVariant support for GDI classes to their
files (and thus away from wxBase).
  Add export declaration field for variant macros.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-30 20:45:15 +00:00
Włodzimierz Skiba
da8cebb2f9 Build fix for !PCH builds.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-29 12:26:27 +00:00
Włodzimierz Skiba
ab00f409f4 Build fix for !PCH builds.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-29 09:58:15 +00:00
Vadim Zeitlin
87f83ac867 The Lesser wxMask Refactoring: merged wxMGL and wxDFB version, added wxMaskBase which could/should be used by other ports later
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-28 23:02:39 +00:00
Vadim Zeitlin
91885f468a no real changes, just replaced a long preprocessor expression occuring in 2 places with a simple wxUSE_BITMAP_BASE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-28 17:11:02 +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
Václav Slavík
b3c861501a initial (not yet working) code for DirectFB port
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-27 09:42:42 +00:00
Włodzimierz Skiba
155ecd4c42 Include wx/image.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-03 19:02:54 +00:00
Włodzimierz Skiba
923d28da0e Include wx/icon.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-21 21:45:44 +00:00
Włodzimierz Skiba
559a723c1d Include wx/palette.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-20 19:43:09 +00:00
Włodzimierz Skiba
de6185e212 Include wx/utils.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-02 10:39:23 +00:00
Włodzimierz Skiba
e4db172a3b Include wx/log.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-26 08:21:31 +00:00
Włodzimierz Skiba
f03e8f9b16 Filename correction.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-01-26 16:03:33 +00:00
Włodzimierz Skiba
9b5f189564 Include order is wxprec.h=>defs.h=>platform.h=>setup.h so remove explicit setup.h inclusion not touched by chckconf.h.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37159 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-01-26 16:02:02 +00:00
Vadim Zeitlin
4b2322641a fixed check for bitmapType match (thanks to HP compiler for the warning)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-07 21:49:20 +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
7220e45533 Simpler for readable diffs in future new ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-04-15 16:47:28 +00:00
Robert Roebling
effc8cf18b Forgot one.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-05 14:18:55 +00:00
Włodzimierz Skiba
c9d59ee7e0 Source cleaning: TRUE/true, FALSE/false, whitespaces, tabs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-09 17:42:36 +00:00
Julian Smart
655719367a Use old licence name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00