Commit Graph

113 Commits

Author SHA1 Message Date
Artur Wieczorek
b35d595e5d Check that number of points passed to wxDC::DrawSpline() is at least 2
DoDrawSpline() implementations for all ports work for the number of points
>= 2 (for 2 points there is drawn a straight line) so we need to add checks
whether this requirement is met.

See #19172.
2021-06-30 22:24:28 +02:00
Vadim Zeitlin
fc2e01d9a2 Make GtkPageSetup-related functions private
These functions don't need to be members of wxGtkPrintNativeData as they
don't use this object at all, so one shouldn't be required to call them.

And rather than making them static, just make them private functions
instead.

No real changes, this is just a refactoring.
2021-05-16 00:55:04 +02:00
Vadim Zeitlin
2514945ab3 Fix retrieving paper size and orientation from GTK print dialog
The paper size and orientation in wxPrintData were never updated because
we didn't retrieve them from GTK correctly: they need to be extracted
from "default-page-setup" property and not the main GtkPrintSettings
themselves, at least with GTK 3.
2021-05-16 00:55:04 +02:00
Vadim Zeitlin
131d07b430 Update print dialog data after printing successfully
This is necessary in order to get the information entered by the user in
the dialog and was already done in PrintDialog(), but not Print()
itself -- now do it there as well.
2021-05-16 00:55:04 +02:00
Vadim Zeitlin
16ca2df0c4 Refactor return code in wxGtkPrinter::Print()
No real changes, just make it simpler to do other things before
returning successfully by handling error returns separately.

This is also more consistent with PrintDialog() method of the same
class.

No real changes.
2021-05-16 00:55:04 +02:00
Vadim Zeitlin
0af8d6b95a Fix size of 0-width pen for wxPrinterDC in wxGTK
Don't apply scale to the fixed line width used for 0-width pens.

Closes #17056.
2021-04-03 23:17:39 +02:00
Paul Cornett
a571ec6fbb Fix GTK wxPrinterDC gradient fill radius
All the other implementations use the rect width/height, not the diagonal
2021-02-02 10:16:42 -08:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Paul Cornett
fe1737d399 Reduce the scope of some local variables 2019-04-05 10:44:02 -07:00
Paul Cornett
d52acfe469 Use correct printf format specifier 2019-04-05 09:09:53 -07:00
Paul Cornett
7c3ce912e0 Use ctor-initializer rather than assignment for non-POD class members 2019-02-25 10:23:35 -08:00
Vadim Zeitlin
96d9616201 Merge branch 'html-print-cleanup'
Simplify wxHTML pagination code and make it easier to reuse from
applications.

See https://github.com/wxWidgets/wxWidgets/pull/817
2018-06-10 14:56:33 +02:00
Vadim Zeitlin
048b7f44ec Add wxPrintout::SetUp() to reuse the same code in all ports
MSW, GTK, OSX and Postscript implementations all did almost exactly the
same thing to initialize wxPrintout, so extract this common code into a
new wxPrintout method and just call it instead.

There should be no changes in behaviour.
2018-05-23 17:52:31 +02:00
Vadim Zeitlin
c0b0562533 Avoid many -Wparentheses warnings from gtk/gtk.h with gcc8
Add wx/gtk/private/wrapgtk.h wrapping gtk/gtk.h in pragmas disabling
these warnings and include it everywhere instead of directly including
gtk/gtk.h.

Also include wx/gtk/private/gtk2-compat.h from this wrapper header as it
was included by 90% of the files including gtk/gtk.h itself and it seems
to be better and simpler to just always include it.
2018-05-21 12:34:04 +02:00
Vadim Zeitlin
d6af0236c5 Simplify GTK+ 2 version checks with a helper function
Use wx_is_at_least_gtk2(minor) instead of gtk_check_version(2, minor)
because it is more clear and also works as expected (i.e. returns true)
when using GTK+ 3 instead of creating difficult to notice bugs in the
code by failing the version check in this case.

See #18004.
2017-11-23 13:15:31 +01:00
Artur Wieczorek
136f909f58 Free object representing font description in wxGtkPrinterDC dtor
Closes #14233.
2017-05-29 20:30:22 +02:00
Artur Wieczorek
ab6bdb94be Release temporary object representing page setup
See #14233.
2017-05-29 20:28:01 +02:00
Artur Wieczorek
fe7854933a Release old print settings object prior to storing a new one
Old GtkPrintSettings object should be released before copying its new
instance.

See #14233.
2017-05-29 20:25:33 +02:00
Artur Wieczorek
de047e1ad9 Delete temporary device context used in wxGtkPrinter
Lifetime of wxPrinterDC created in BeginPrint() handler (associated with
"begin-print" signal) is limited to the current print job and therefore
this object should be destroyed when the actual printing is finished.

See #14233.
2017-05-29 20:23:03 +02:00
Artur Wieczorek
79a7fa0330 Create new instance of wxPrintDC in wxGtkPrintDialog
GetPrintDC() should return a new device context created by the print
dialog, not the duplicate of existing context passed from the caller
(e.g. from wxGtkPrinter) through SetPrintDC(). Therefore SetPrintDC() is
no longer useful and can be removed.
2017-05-29 20:17:19 +02:00
Artur Wieczorek
b99f4d9327 Fix drawing shapes with transparent borders in wxGtkPrinterDC
Stroke the path of the shape only if pen using in drawing is
non-transparent. Otherwise, the shape would have a visible border even for
transparent pen.
2017-05-26 00:32:58 +02:00
Artur Wieczorek
ef3863a71e Implement GetPartialTextExtents() in wxGtkPrinterDC
Generic implementation from wxDCImpl doesn't work well with wxPrinterDC
under wxGTK.
(This implementation is adopted from wxCairoContext::GetPartialTextExtents.)
2017-05-26 00:32:49 +02:00
Paul Cornett
1b0e7c17e3 Enable choosing paper size and orientation on print dialog, see #17712 2016-11-14 22:32:03 -08:00
Paul Cornett
301f86ad85 reset clipping region in DestroyClippingRegion(), closes #17086 2015-07-30 09:59:51 -07:00
Paul Cornett
bc3f5503db Fix wxPrintDialog when used directly, closes #16821 2015-05-11 10:15:05 -07: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
Paul Cornett
ceae28f3f0 initialize members in ctor, avoid int-to-bool warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-15 16:16:38 +00:00
Paul Cornett
010e897e48 assertion messages don't need to be translated
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-04 16:00:03 +00:00
Paul Cornett
ba962b00cb remove redundant assertion messages, wxLogError has already been called
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76278 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-04 15:56:29 +00:00
Paul Cornett
8009bf50ae fix more memory leaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-04 06:45:27 +00:00
Paul Cornett
cfe6604d5d fix missing semicolon typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-04 06:36:59 +00:00
Paul Cornett
15dd9e117c Improve conversion between wxPaperSize and GtkPaperSize
by using a table to map the screwy Windows DMPAPER_* stuff, which wxWidgets stupidly uses.
Eliminates many "Gtk-WARNING **: Unknown paper size", and the occasional
"GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed".
And fixes approximately one zillion memory leaks.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-04 06:05:23 +00:00
Paul Cornett
0da8eb2786 Fix invalid use of g_object_get_property()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-01 17:45:01 +00:00
Paul Cornett
8b4ae731d3 use wxOVERRIDE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-30 00:02:23 +00:00
Vadim Zeitlin
b905bae91c Fix harmless warnings about unused global variables.
Don't define variables that we never use to fix clang warnings about them.

See #15915.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-22 22:39:48 +00:00
Vadim Zeitlin
16ab50d25b Don't draw the segment lines in wxGtkPrinterDC::DrawArc() unless it's filled.
The segments should only be drawn if we're filling the arc, i.e. drawing a
pie, but not if we're just drawing its outline.

Add a test of this to the printing sample.

Closes #15609.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-25 17:38:43 +00:00
Vadim Zeitlin
db7af3c2a7 Fix DrawArc() implementation in wxGtkPrinterDC.
It didn't count the angles correctly when they were equal to 90 degrees.

Also simplify the code by avoiding special cases for 90 degrees anyhow, just
call atan2() directly. And also avoid converting the angles to degrees just to
convert them back to radians immediately afterwards.

See #15609.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-25 17:38:37 +00:00
Vadim Zeitlin
9ed99f82da Remove support for Gnome printing from wxGTK.
It was replaced by GTK+ printing several years ago and is almost never used
any longer anyhow, so any problems in this code (and there are some) would
never be found and fixed.

Also update the message catalogs to avoid having the strings not used any
more, as they were only used in Gnome printing code.

Closes #15517.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-01 17:09:02 +00:00
Paul Cornett
48829702f1 Fix referencing of cairo_t returned from wxDCImpl::GetCairoContext().
It was assumed that all callers were going to unref the cairo_t, but that is not
true, so callers that are going to unref it should ref it themselves.
See #15455


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74746 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-03 05:37:30 +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
691745ab41 Add a public wxModalDialogHook class for intercepting modal dialogs.
Extract wxModalDialogHook from wx/testing.h into its own wx/modalhook.h,
extend it to allow to be notified not only about showing modal dialogs but
also about dismissing them and document it and show its use in the dialogs
sample.

Also replace all the WX_TESTING_SHOW_MODAL_HOOK macros occurrences with
WX_HOOK_MODAL_DIALOG.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-20 13:15:41 +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
Václav Slavík
643e9cf9f6 Add wxTEST_DIALOG for testing of modal dialogs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-01 16:45:11 +00:00
Vadim Zeitlin
332afcdb2f Make GetClippingBox() work for wxPrinterDC in wxGTK.
GetClippingBox() implementation relies on wxDCImpl::m_clip[XY][12] being
updated in DoSetClippingRegion() but this wasn't done here. Fix this by adding
the code to do this to the base class version of this method and calling it
from wxGtkPrinterDCImpl.

Also, refactor wxGCDCImpl to reuse the same code instead of duplicating it.

Closes #14697.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-14 14:55:32 +00:00
Vadim Zeitlin
8d489a5e4b Fix printing in landscape mode in wxGTK.
Only apply Cairo transforms in StartPage(), doing it earlier interferes with
the code doing the coordinate system rotation inside GTK+ itself when a
non-portrait printing mode is used.

Closes #14732.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-09 21:01:29 +00:00
Vadim Zeitlin
bb03d283be Recreate GtkPrintOperation every time when printing in wxGTK.
Apparently reusing GtkPrintOperation is not allowed, so create a new one
every time we need it.

Closes #14731.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-08 12:09:37 +00:00
Paul Cornett
7d1214cd72 silence warnings about shadowed variables with GCC -Wshadow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-04 15:55:06 +00:00
Robin Dunn
8e72f2cd18 wxDC::GetHandle support for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-28 19:31:18 +00:00
Paul Cornett
9dc44eff02 support for GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-30 20:39:06 +00:00
Vadim Zeitlin
80a4659776 Use wxCLASSINFO() instead of deprecated CLASSINFO().
No real changes, just use the version of the macro with a "wx" prefix.

Closes #14356.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-01 11:01:24 +00:00