Commit Graph

325 Commits

Author SHA1 Message Date
Vadim Zeitlin
c92374f0a2 Fix crash when drawing bitmaps with mask in wxGTK with GTK+ < 2.20.
r73386 introduced a crash in wxGTK drawing code when using old GTK+ versions
by releasing the mask pixmap prematurely. Apparently GTK+ itself was fixed at
some time in 2.19.x time frame but work around the bug for the sake of older
GTK+ versions in wxGTK itself by simply releasing the pixmap at the end of
DoDrawBitmap(), as pre-r73386 code did.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-21 14:32:04 +00:00
Julian Smart
8f48176bbf Invalid conversion compile error fix (GTK+ 2.12.9)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-04 13:54:17 +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
d4ca3c5d8d draw monochrome source directly onto destination when it is also monochrome
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:04:57 +00:00
Paul Cornett
eb6ee8ab39 make some reference handling a little more direct and less obscure
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 01:46:50 +00:00
Paul Cornett
4787c92d39 use const arrays for wxDC array parameters, closes #10712
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-18 17:27:51 +00:00
Paul Cornett
76274efd34 revert r73185, it should no longer be needed after r73231
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-21 05:45:02 +00:00
Paul Cornett
ffc28384ca Get DC size from GDK window if possible, client size can unfortunately be wrong
This should fix wxDC::Clear() not clearing the whole window on Ubuntu 12.04 with overlay scrollbars
see #14871


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73185 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-14 06:25:00 +00:00
Vadim Zeitlin
8cd79b7af0 Factor out text measurement from wxDC and wxWindow into wxTextMeasure.
Add a new private wxTextMeasure class implementing methods for measuring text
and move the often duplicated (but not always identically) code for doing the
same from wxDC and wxWindow into it.

Currently this class is only really implemented in wxMSW and wxGTK.

Also extend the test for text measuring functions and rename it to
MeasuringTextTestCase from MeasuringContextTestCase as it's not wxGC-specific
any more.

Closes #14705.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-17 22:35:49 +00:00
Paul Cornett
c49ba2113c no real changes, just remove unnecessary indentation and scoping after r72001
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-10 17:17:53 +00:00
Paul Cornett
4e621d2471 update minimum GTK2 version requirement to 2.6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-10 16:39:44 +00:00
Paul Cornett
8e98dabce4 fix building with GTK+ < 2.8
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-22 18:09:43 +00:00
Paul Cornett
e0564c1c2f fix test for transparent pen broken in r65820
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70824 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-06 04:51:40 +00:00
Vadim Zeitlin
1442168125 Implement wxBG_STYLE_TRANSPARENT support for wxGTK.
Use composited windows if supported by GTK+ for wxWindows with this background
style.

Also add wxWindow::IsTransparentBackgroundSupported() and show how to use it
in the sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-11 16:26:52 +00:00
Paul Cornett
99f8cf22db move Pango underline workaround into wxFont::GTKSetPangoAttrs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-29 08:14:34 +00:00
Paul Cornett
c7e99122a0 move SetPangoAttrsForFont to wxFont
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-29 08:00:15 +00:00
Vadim Zeitlin
c7a49742ec Add support for stricken-through fonts.
Support stricken-through fonts in wxMSW and wxGTK (including special support
in wxStaticText and wxTextCtrl).

Closes #9907.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-23 11:28:28 +00:00
Vadim Zeitlin
2f5dec2e52 Use #ifdef, not #if, to check for __WXGTK26__ symbol.
This fixes gcc warning given if __WXGTK26__ is not defined (which almost never
happens nowadays but still).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67801 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-27 09:46:27 +00:00
Václav Slavík
fc9ab22a76 Use accessor functions instead of deprecated GTK+ macros.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-26 15:49:57 +00:00
Vadim Zeitlin
1780a38b7b Use unsigned char for XBM bitmaps data.
This fixes compilation with g++ in C++0x mode in which conversions of
constants not fitting into signed char range to char are not permitted.

Closes #12575.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-18 23:43:20 +00:00
Vadim Zeitlin
e6777e6575 Add wx{Pen,Brush}::Is[Non]Transparent() methods and use them.
Using GetStyle() == wx{PEN,BRUSH}STYLE_TRANSPARENT doesn't work for
uninitialized pen or brush objects so add convenient helpers which do work for
them.

Use the new helper functions everywhere instead of explicitly checking for
style. This makes the code shorter and more clear and also fixes some bugs (at
least those in GTK printing code).

Notice that this patch removes the main reason for explicitly initializing
m_pen and m_brush in wxGTKDCImpl ctor but this initialization still can't be
removed, at least for the latter, as doing this somehow breaks GetPixel(). It
would be nice to understand why and do remove this initialization so that a
newly created DC doesn't have any non-default pen nor brush.

Closes #12522.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-15 23:46:46 +00:00
Vadim Zeitlin
1b46c6697f Test for wxPen validity before testing for its style in wxGTK wxDC.
Calling wxPen::GetStyle() on an invalid pen resulted in an assert, breaking
the grid column drawing while reordering them, for example, because the code
in wxGrid uses wxDC::DrawRectangle() after calling SetPen(wxNullPen).

Fix this by testing for the pen validity first.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-03 10:35:49 +00:00
Paul Cornett
f089940f68 Reverse hierarchy of wxPizza GdkWindows
widget->window must be topmost in order for GTK+ to calculate DND drop coordinates correctly
fixes #11834


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-29 01:16:06 +00:00
Vadim Zeitlin
15b8500726 Correct the bounding box calculation in wxGTK wxDC::DrawBitmap().
Take into account the axis direction when calculating the bounding box.

This is consistent with not reversing the bitmap even when the axis are
reversed which is probably the expected behaviour.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-03 21:07:42 +00:00
Vadim Zeitlin
2dcf60dab4 Correct bounding box calculation in wxGTK wxDC::DrawText().
Physical coordinates were incorrectly used to update the bounding box instead
of the logical ones.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-03 21:07:32 +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
657a8a3598 first round of debug/release merge: introduce wxDEBUG_LEVEL, for now defined as 1 if __WXDEBUG__ is defined, i.e. no real changes; don't use __WXDEBUG__ in the headers to keep debug and release builds ABI-compatible; add functions to customize or disable asserts handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-21 23:36:37 +00:00
Francesco Montorsi
b5791cc7af add the wxFont(const wxSize& pixelSize, ...) ctor to all ports; add some wxCHECK_MSGs to ensure that the wxSize objects contains non-negative arguments; document that passing zero for the width parameter is allowed; other minor doc fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-15 16:28:33 +00:00
Robert Roebling
496e7ec647 More GTK prefixing for internal methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-13 10:25:38 +00:00
Paul Cornett
b666ade784 use the right GdkWindow and origin for non-pizza widget with wxClientDC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-05 05:45:40 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Francesco Montorsi
6de4336e38 guard against NULL parents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-11 00:40:09 +00:00
Francesco Montorsi
89efaf2b65 change generic ints to enums in wxDC (closes #9959)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 14:21:53 +00:00
Paul Cornett
a909ef16ad build fix for GTK+ versions prior to 2.14
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-04 05:56:07 +00:00
Paul Cornett
e7f83cccd8 native implementation of DoGetPixel()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-04 02:58:52 +00:00
Paul Cornett
02cecc4dc2 Complete rewrite of DoDrawBitmap() and DoBlit().
Blit should now correctly handle all combinations of scaling, clipping, and mask.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-04 02:40:11 +00:00
Paul Cornett
3630713bd0 restore clearing of clipped mask, turns out it is needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57181 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-08 08:58:13 +00:00
Paul Cornett
3d5b482773 remove redundant clearing of clipped mask
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-07 05:51:42 +00:00
Paul Cornett
6226d1e97b fix bitmap position with RTL and non-default scale
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-07 05:50:11 +00:00
Vadim Zeitlin
c11bdf68b8 make ellipses drawn with transparent pen more wxGC/Cairo-like (closes #9899)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-14 00:12:02 +00:00
Vadim Zeitlin
f3d7473941 add a scoped_ptr-like wxGtkObject class which calls g_object_unref() automatically and use it in some GC-related code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-27 01:06:58 +00:00
Vadim Zeitlin
98d8a7ece5 honour user scale and source offset in wxDC::Blit() (#2605)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-27 00:52:13 +00:00
Vadim Zeitlin
e1bd1db228 use Pango to draw rotated text if possible (this supports text background and should be more efficient), fall back to the old method for old libraries (closes #9861)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-21 22:31:36 +00:00
Robert Roebling
5f22e8ccf8 Ticket #9858 gtk wxDC::DrawText() - draw text background natively
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-21 12:06:11 +00:00
Robert Roebling
8e69bf8e84 Support NOR logical function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-02 14:14:17 +00:00
Vadim Zeitlin
fdaad94e75 deprecate wxDC::SetClippingRegion(wxRegion) overload and replace it with SetDeviceClippingRegion() to avoid confusion due to use of different kind of coordinates in this and other overloads of the same function; also rename wxDCImpl::DoSetClippingRegionAsRegion() to DoSetDeviceClippingRegion(); finally use bounding box of the region passed to wxDCClipper ctor to avoid interpreting coordinates differently for different ctors of the same class (see #8970)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-08 01:45:56 +00:00
Robert Roebling
d225267e66 Made the various logical 2 device transforms consistent with what's drawn on all platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-19 12:42:11 +00:00
Paul Cornett
460d7f8221 don't change brush settings in SetBackgroundMode(), it is only supposed to affect text background, bug 1480986
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-11 20:17:30 +00:00
Robert Roebling
0b822969a6 Added new wxGraphicsContext:Create( wxPrinterDC ) instead of wxDC:CreateGraphicsContext
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-28 20:39:57 +00:00
Robert Roebling
2b44ffc0e7 Added wxDC::CreateGraphicsContext and implemented it for a few DCs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-25 11:05:16 +00:00