Commit Graph

216 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
b6cff426ce Merge branch 'remove-bcc-support'
Remove support for Borland C++ compiler, it wasn't tested since a long
time and probably didn't work anyhow and there was no interest in
keeping support for it since many years.

See https://github.com/wxWidgets/wxWidgets/pull/2087
2020-10-16 01:58:13 +02:00
Paul Cornett
b5a554b9a6 Avoid -Wdouble-promotion warnings 2020-10-14 11:07:55 -07:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Paul Cornett
948ddc6e0f Eliminate -Wcast-qual warnings with GCC and Clang
Use const_cast, mutable, and various other changes to avoid -Wcast-qual
2020-02-02 22:50:32 -08:00
Artur Wieczorek
a771da5623 Don’t use void for functions without arguments 2019-10-02 00:54:14 +02:00
Paul Cornett
fe1737d399 Reduce the scope of some local variables 2019-04-05 10:44:02 -07:00
Maarten Bent
39ff5b90e5 Replace wxDeprecatedGUIConstants enum values 2018-11-25 21:29:32 +01:00
Vadim Zeitlin
c65eaac529 Fix harmless warning about comparing values of different enums
This avoids a bunch of -Wenum-compare-switch warnings from clang 6.
2017-12-30 18:51:05 +01:00
Bryan Petty
ed173ed91e Use HTTPS with Trac links. 2017-07-04 13:15:14 -06:00
Artur Wieczorek
9c5d6e893f Move duplicated code to the shared function
Code to emit PostScript commands to set the current colour is duplicated in several places (in SetBrush, SetPen, DrawAnyText functions) and therefore should be moved to a dedicated function.
2017-03-04 19:07:05 +01:00
Artur Wieczorek
feee67e6a1 Optimize selecting font in generated PostScript code
Emit code to select PostScript font only if it is needed (not at every call to SetFont(), but only if font has been really changed prior to a text drawing operation).
2017-03-04 19:07:04 +01:00
Artur Wieczorek
bfa2b2896b Use wxDecToHex() to convert integer value to hex string 2017-02-23 19:32:18 +01:00
Artur Wieczorek
74ab36c125 Simplify PostScript code generated by wxPostScriptDC to draw elliptic arc
Optimize procedure 'ellipticarc' by doing all operations on the operand stack instead of creating local dictionary and temporary variables.
2017-02-22 21:23:44 +01:00
Artur Wieczorek
8a45881e44 Simplify PostScript code generated by wxPostScriptDC to draw elliptic contour
Optimize procedure 'ellipse' (to draw elliptic contour) by doing all operations on the operand stack instead of creating local dictionary and temporary variables.
2017-02-22 21:15:21 +01:00
Artur Wieczorek
f49528cc2f Fix DrawArc() implementation in wxPostScriptDC
Draw pie, not arc, if current brush is not transparent.
Also simplify the code by invoking PostScript 'arc' operator only once if pie is drawn.

Closes #17805.
2017-02-22 21:09:17 +01:00
Artur Wieczorek
9035a65d17 Use wxString::empty() to check if wxString is empty 2017-02-20 21:57:16 +01:00
Artur Wieczorek
b37884b2cb Optimize PostScript code generated by wxPostScriptDC
PostScript code to register (and re-encode) given font should be emitted only once. Once registered, the font is available in the entire document and there is no need to register it again.
2017-02-20 21:56:34 +01:00
Artur Wieczorek
37b7d0e594 Fix calculating bounding box in wxPostScriptDC::DrawText and DrawRotatedText
Calculate bounding box bearing in mind that drawn text can be a multi-line text.

Closes #17801.
2017-02-19 10:18:52 +01:00
Artur Wieczorek
8e47b3ca97 Support multiline strings in wxPostScriptDC::DrawText() and DrawRotatedText()
'show' operator in PostScript doesn't support printing newlines, so we need to split the string into lines manually and print each line separately.

Closes #17798.
2017-02-11 23:05:37 +01:00
Artur Wieczorek
f7e88c0db6 Check if printer native data object is of type wxPostScriptPrintNativeData prior to call its methods
Under wxGTK (for instance), wxPrintData::GetNativeData() returns pointer to wxGtkPrintNativeData so calling wxPostScriptPrintNativeData methods on it crashes.

Closes #13536
2017-02-04 00:24:51 +01:00
Artur Wieczorek
7eadda902f Use wxSwap() function to swap values of variables 2017-01-27 23:02:58 +01:00
Artur Wieczorek
cd676d1663 Clean up DrawText() and DrawRotatedText() (wxPostScriptDC)
Move shared code to the separate method DrawAnyText() instead of duplicating it.
2017-01-27 23:02:58 +01:00
Artur Wieczorek
ba5d07f4b4 Fix underline length for underlined text (wxPostScriptDC)
Draw underline relatively to the baseline and obtain line parameters using 'stringwidth' operator instead of calculating them manually based on the parameters returned by DoGetTextExtent(), which are not always accurate (e.g. if no AFM files are available).

Closes #17788.
2017-01-27 23:02:43 +01:00
Artur Wieczorek
e3c3a0f188 Fix calculating position of rotated text (wxPostScriptDC)
Given top-left position of the drawn text should be converted to the bottom-left position, taking into account rotation angle.

Closes #10940
2017-01-22 13:19:37 +01:00
ARATA Mizuki
a17a3994ec Get rid of a use of wxMBSTRINGCAST
wxMBSTRINGCAST is a const-removing cast and therefore should be avoided
unless necessary.

Here, the cast was used to convert wxWX2MBbuf to const char *, which does not
involve removing const-ness.
2016-03-01 16:01:39 +09: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
a380c1e46f Add public wxDegToRad() and wxRadToDeg() functions.
Define these functions just once in wx/math.h instead of duplicating them in a
dozen of places.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-17 12:29:15 +00:00
Vadim Zeitlin
d66e7af9aa Don't use deprecated wxBOLD, wxNORMAL and similar constants.
Replace them with wxFONTWEIGHT_BOLD, wxFONTSTYLE_NORMAL or wxFONTWEIGHT_NORMAL
and equivalents in the code of the library itself and in the samples.

Also simplify font construction using wxFontInfo where possible to avoid
specifying these constants at all if they are not needed.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-11 14:25:30 +00:00
Vadim Zeitlin
b0ad146aba Fix assorted typos in comments and other non-code.
Closes #15509.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74827 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-17 15:25:59 +00:00
Vadim Zeitlin
76b0f8384e Fix another crash when conversion fails in Unix PostScript code.
Returning 0 length from GetTextExtent() is hardly ideal but it's better than
crashing.

Closes #15489.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-11 15:06:04 +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
bde7eee92e Implement support for pen cap and join in wxPostScriptDC.
Use PostScript "setlinecap" and "setlinejoin" commands to do it.

Closes #1244.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-09 15:08:25 +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
Vadim Zeitlin
39429ad146 Fix assert in initial call to wxPostScriptDC::SetPen().
Attempt to use wxPen::GetStyle() on the initially invalid pen resulted in an
assert, so don't do it and test for pen validity explicitly.

Closes #13524.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-30 15:26:36 +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
Vadim Zeitlin
68f64b40bf Don't close arcs drawn in wxPostScriptDC.
Draw arcs, not pies, in DoDrawArc(): simply remove the apparently unnecessary
last lineto and closepath PostScript statements.

Closes #13141.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-23 17:36:11 +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
Paul Cornett
a243da29c8 make array data fully const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-02 17:28:45 +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
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
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
Francesco Montorsi
1a7bfacc8a s/wxGetTempFileName/wxFileName::CreateTempFileName
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-07 01:08:02 +00:00
Vadim Zeitlin
5c69ef61f3 fix some of icc 11.0 warnings and disable a few others
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-16 14:24:13 +00:00
Francesco Montorsi
6d52ca536a make GetPaperRect() and GetResolution() const functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-15 11:10:34 +00:00
Václav Slavík
12ca55868c wxGTK: Fixed printing to use fonts sizes adjustment consistent with wxMSW. In
particular, screen resolution no longer affects text size in printed output
when using wx's map-screen-to-paper approach to printing.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-28 09:33:04 +00:00
Václav Slavík
0c75b29e1e progress message passed to wxDC::StartDoc() is not appropriate for PostScript document title
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-21 08:49:08 +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
Vadim Zeitlin
f99b00fabb hack: don't use wxCharTypeBuffer<char>::operator[]() as VC gives linking error for it for some reason
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-11 13:02:33 +00:00
Vadim Zeitlin
9d55bfef2c don't use 8 bit characters in sources, this results in level 1 warning with VC8 (patch 1841741)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-03 22:09:26 +00:00