Commit Graph

305 Commits

Author SHA1 Message Date
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
Paul Cornett
04ee05f92a fix a huge number of build errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-17 18:26:00 +00:00
Paul Cornett
86d58c90cb more code simplification
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-20 06:07:17 +00:00
Paul Cornett
ea3a345f1c factor out a whole bunch of duplicated code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-17 07:31:35 +00:00
Paul Cornett
46142dc952 remove some duplication in font scaling code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-17 07:05:35 +00:00
Paul Cornett
f7732fa59a create hatch bitmaps on demand, and dispose of them at termination
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-17 06:30:25 +00:00
Paul Cornett
d6afc2c88c use a wxCharBuffer instead of malloc/free for pango underline workaround
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-17 05:58:07 +00:00
Robert Roebling
c21c8158e9 Remove old/new DC test code (3000th commit - and still typing)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-16 13:53:07 +00:00
Paul Cornett
6267c3ead9 build fix for -D__WXUNIVERSAL__
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-03 02:15:24 +00:00
Robert Roebling
888dde65f4 DC reorganization
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-30 13:48:22 +00:00
Robert Roebling
4f37154e98 Further wxDC changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-14 14:49:40 +00:00
Vadim Zeitlin
8d22935dcb unused parameter warning fixes for --disable-all-features build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-11 12:55:43 +00:00
Paul Cornett
08f53168ac New "pizza" widget implementation. Window border widths now match the GtkStyle they are drawn with.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-06 18:14:15 +00:00
Vadim Zeitlin
ff654490b7 removed all compile- and run-time checks for GTK+ < 2.4; don't include the generic files which are now never used in wxGTK in the build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-05 22:31:24 +00:00
Vadim Zeitlin
e4161a2a08 use -Wunused-parameter with gcc for consistency with MSVC and other compilers which warn about this; fix the uncovered warnings in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-23 22:19:34 +00:00
Robert Roebling
eb7637b587 Remove several hack from PS code, use high resolution code from GNOME print, invert Y axis internally
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-24 14:04:09 +00:00
Robert Roebling
ab171e9502 Converted wxGTK's basic DC classes to new DC code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-23 11:27:41 +00:00
Vadim Zeitlin
c052164410 compilation fixes for wxUSE_IMAGE==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-11 00:02:11 +00:00
Paul Cornett
93de378435 gtk version check should be runtime, not compile time
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-17 17:02:14 +00:00
Robert Roebling
2970ae54d3 Beginning to make wxDC code compile both before
and after the DC reorg to make the transition
    smoother (indeed possible).
  Move the wxImplDC code to its future place in
    dcbase.cpp and wx/dc.h


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-08 23:47:43 +00:00
Vadim Zeitlin
c94f845b16 changed wxDC::GetTextExtent() and related methods to take const wxFont pointer, for consistency with wxWindow::GetTextExtent() and because it generally doesn't need a non-const font
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-25 01:49:47 +00:00