Commit Graph

991 Commits

Author SHA1 Message Date
Maarten Bent
2f78849d24 Fix build without precompiled headers 2018-11-26 23:51:40 +01:00
Maarten Bent
39ff5b90e5 Replace wxDeprecatedGUIConstants enum values 2018-11-25 21:29:32 +01:00
Vadim Zeitlin
a59f5932df Add wxHtmlContainerCell::Detach()
This allows manipulating the HTML DOM from the outside, e.g. to detach
a header element in order to be able to repeat it on all pages.
2018-08-25 21:16:55 +02:00
Vadim Zeitlin
012baf1ff2 Remove unnecessary heap allocations in wxHtmlDCRenderer
Make m_Parser and m_FS simple objects instead of pointers as it's
completely unnecessary to allocate them on the heap here.

Note that both wxHtmlWinParser (by explicitly including its header) and
wxFileSystem (which is implicitly included via wx/html/htmlpars.h) are
fully declared in the header, so using pointers doesn't even help with
reducing compilation dependencies.

No real changes.
2018-08-25 14:29:25 +02:00
Vadim Zeitlin
9db0234abc Allow passing already parsed HTML to wxHtmlDCRenderer
This is more efficient when the same HTML is reused multiple times, e.g.
for measuring it first and then rendering it.

The new function also makes it simpler to parse HTML and manipulate it
in some way before measuring and rendering it.
2018-08-25 02:37:55 +02:00
Paul Cornett
86ab6de0c1 Use clear() instead of assignment to wxEmptyString 2018-08-22 09:45:20 -07:00
Paul Cornett
f4bcb12709 Remove useless initializations
wxObject-derived types and wxString are null/empty by default.
2018-08-22 09:19:15 -07:00
Blake-Eryx
49e20a961d Fix misspellings in comments and documentation
No real changes.

Closes https://github.com/wxWidgets/wxWidgets/pull/870
2018-07-31 13:20:17 +02:00
Vadim Zeitlin
78edf14c88 Revert "Add temporary debugging code for HTML pagination test failure"
This reverts commit 0393940033 which is
not needed any longer after fixing AppVeyor test failure.
2018-07-25 13:47:43 +02:00
Vadim Zeitlin
542124aa95 Fix page-break-inside:avoid to work for nested tags too
The initial version was too naïve and didn't work correctly if the <div>
with this style had nested elements.
2018-07-25 02:23:02 +02:00
Vadim Zeitlin
0393940033 Add temporary debugging code for HTML pagination test failure 2018-07-22 00:43:26 +02:00
Vadim Zeitlin
566e401a3f Add support for style="page-break-inside:avoid" to wxHTML
Allow using this style to prevent page breaks inside the given <div>.
2018-07-22 00:43:25 +02:00
trivia21
107e66e725 Simplify and make more robust wxHtmlWindow layout logic
Rewrite CreateLayout() using SetVirtualSize() to avoid trying to detect
whether the vertical scrollbar is shown manually. This is simpler and
avoids the problem of entering infinite loop if the scrollbar size used
by this function (based on wxSystemSettings::GetMetric(wxSYS_VSCROLL_X))
wasn't correct, as used to be the case for wxGTK until the recent commit
900752b152 and might still be the case in
the other ports.

Closes #18141.
2018-06-24 00:29:20 +02:00
pavel-t
710474c634 Allow configuring showing printing dialog in wxHtmlEasyPrinting
Add wxHtmlEasyPrinting::SetPromptMode() to allow suppressing the
"prompt" shown by wxPrinter::Print() when it's called from this class
code.

Closes https://github.com/wxWidgets/wxWidgets/pull/838
2018-06-21 16:03:38 +02:00
Vadim Zeitlin
adfde70054 Remove redundant wxHtmlDCRenderer::m_NumPages
The actual number of pages is given by the number of elements in
m_PageBreaks vector after CountPages() is shown and is unknown until
then, so m_NumPages is completely unnecessary and can be just removed.
2018-05-25 01:35:34 +02:00
Vadim Zeitlin
8d7601295b Make wxHtmlDCRenderer::FindNextPageBreak() const
It doesn't modify the renderer.
2018-05-25 01:31:54 +02:00
Vadim Zeitlin
c5bb583cdf Replace wxList used in wxHtmlPrintout with wxVector<> too
Prefer the use of the standard-like template class to macro-based list.

It also makes more sense to use a vector rather than a linked list here,
as the elements are never removed from or inserted into m_Filters, so
there is no reason to prefer the list structure.
2018-05-25 01:22:29 +02:00
Vadim Zeitlin
edeca4d9d6 Use wxVector<int> instead of wxArrayInt in wxHtmlDCRenderer
No real changes, just prefer standard-like template class to the legacy
wx one.
2018-05-25 01:19:01 +02:00
Vadim Zeitlin
b9b6ccb804 Remove "known_pagebreaks" from wxHtmlCell::AdjustPagebreak()
This parameter is not actually needed for any reasonable page breaking
algorithm, as it shouldn't care about any previous page breaks except
for the last one, which is already known as "*pagebreak - pageHeight" in
this function.

Removing it will allow to stop using wxArrayInt in the code using this
method and switch to an std::vector<int> instead.

This is not a backwards compatible change, but it seems that there is
very little code actually overriding this function (none could be found
in any open source repositories) and updating it should be as simple as
removing the now unneeded argument.
2018-05-24 18:12:40 +02:00
Vadim Zeitlin
c58d81d32d Simplify wxHtmlPageBreakCell::AdjustPagebreak()
There is no need to look in the known page breaks array for a page break
at the position of this cell, all we care about is whether this cell is
on the current page or not: we must insert a page break if, and only if,
it is.

No real changes in behaviour, but the code is now much simpler to
understand and this change paves way for removing "known_pagebreaks"
entirely, as it was only added for the use in this function (see
f2034f1b6e from 15 years ago), which
doesn't even actually need it.

It should also make pagination code somewhat faster.
2018-05-24 18:12:41 +02:00
Vadim Zeitlin
71948018f4 Add a sanity check for AdjustPagebreak() implementation
Verify that this function never adjusts page break so far back that it
comes before the previous one (or even at the same position).

This avoids infinite loops in CountPages() even if a custom cell class
implements its overridden AdjustPagebreak() incorrectly.
2018-05-24 17:53:26 +02:00
Vadim Zeitlin
63add2cd19 Don't call AdjustPagebreak() in a loop, this seems useless
There doesn't seem to be any reason to call this function more than once
on the same cell as the existing implementations are idempotent and it's
difficult to see why this should ever not be the case.
2018-05-24 17:53:26 +02:00
Vadim Zeitlin
e01892c669 Split and simplify wxHtmlDCRenderer::Render()
This function was difficult to understand as it did two quite different
things depending on the value of its "dont_render" argument and using it
also made CountPages() logic more complicated than necessary.

Simplify the code by splitting Render() into FindNextPageBreak(), which
is used by CountPages(), and Render() itself, which doesn't need to deal
with pagination at all as it's either already provided the page start
and end positions or can just assume that everything fits on a single
page (the latter is the case for the headers and footers renderer).

This is a notionally backwards-incompatible change, but no code using
wxHtmlDCRenderer could be found in the wild and the new API is so much
simpler that it seems to be worth switching to it.
2018-05-24 17:53:26 +02:00
Vadim Zeitlin
0ada873c45 Slightly simplify wxHtmlDCRenderer::Render()
Use "totalHeight" variable to make it more clear that
m_Cells->GetHeight() and GetTotalHeight() are the same value.
2018-05-24 17:53:26 +02:00
Vadim Zeitlin
b6f0693a41 Use wxDCClipper in wxHtmlDCRenderer code
Use wxDCClipper instead of manually calling DestroyClippingRegion().
This is simpler and safer and also potentially more correct as
wxDCClipper restores the previous clipping region, if any, unlike the
old code -- even though this probably doesn't matter here as the
printing DC seems unlikely to be clipped.
2018-05-23 17:22:54 +02:00
Vadim Zeitlin
9fa9880f97 Pass known page breaks as const ref to wxHtmlDCRenderer::Render()
This method doesn't modify the known page breaks, it only uses them to
find the next one, so make it more clear by using const reference in the
function signature.
2018-05-21 19:06:21 +02:00
Vadim Zeitlin
a56b993c55 Use "for" loop in wxHtmlContainerCell::AdjustPagebreak()
Use a simpler form for iterating over all children.

No real changes.
2018-05-21 17:14:29 +02:00
Vadim Zeitlin
9544d102dd Remove unnecessary wxHtmlPrintout members initialization
Don't initialize strings to their default (empty) value, this is just
useless.
2018-05-21 16:43:49 +02:00
Vadim Zeitlin
f1ea4afdbe Make wxHtmlPrintout::m_Renderer{,Hdr} objects instead of pointers
There is no need to allocate these objects on the heap and delete them
later when we can just make them members of wxHtmlPrintout object
itself.

No real changes.
2018-05-21 16:39:02 +02:00
Paul Cornett
98cd5a6b20 Use wxString::clear() instead of assignment to wxEmptyString 2018-05-11 10:52:56 -07:00
Maarten Bent
3b9aeaeb2f More use of wxOVERRIDE 2018-03-06 23:31:01 +01:00
Stefan Csomor
0fc53016a9 making NSString conversion functions available in private.h 2018-02-28 21:08:27 +01:00
Paul Cornett
cd1c3fab0c Use static linkage for various local names 2017-09-24 09:29:26 -07:00
Gavin Kinsey
d24ffcf749 Fix wxHTML parse bug in non-unicode, ? characters are not displayed.
GetEntitiesParser()->GetCharForCode(NBSP_UNICODE_VALUE) in the non-unicode
build returns the value '?' as it doesn't find a match for that value.  The
parser then proceeds to replace all '?' characters in the HTML document with
NBSP.

Change the type of the #define to be unsigned int rather than wxChar for
non-unicode to fix this.

Closes #17692.
2017-09-05 21:57:52 +02:00
Paul Cornett
7626292fa4 Don't reset scroll position to zero when window size changes
Aside from just being the proper thing to do, this fixes scrolling with
GTK3 when not using overlay scrollbars, where size events are somehow being
generated during scrolling.
See #17915
2017-08-04 07:56:23 -07:00
Bryan Petty
ed173ed91e Use HTTPS with Trac links. 2017-07-04 13:15:14 -06:00
Stefan Csomor
0873b809a2 fixing compilation when not using precomp headers under osx 2017-06-08 11:56:28 +02:00
Stefan Csomor
d28dd3333b change code to help analyzer trace ownership properly 2017-06-07 23:00:28 +02:00
Stefan Csomor
4312de64c7 analyzer warnings: assign [super init] to self and check for nil 2017-06-07 10:21:18 +02:00
Paul Cornett
c1f2bbce5d Use wxString::empty() instead of comparison to wxEmptyString 2017-05-29 00:05:52 -07:00
Paul Cornett
01909a20c8 Remove initializations of wxString with wxEmptyString
An empty string is the default
2017-05-28 23:53:44 -07:00
JulianSmart
d3687e7da3 Fixed suffix which should be @2x 2017-05-13 17:50:04 +01:00
JulianSmart
32355f7172 Implemented @2 HiDPI images for wxHTML on Mac 2017-05-13 16:10:43 +01:00
Paul Cornett
96826d80d2 Use wxString::clear() instead of assignment to wxEmptyString 2017-02-18 11:00:26 -08:00
Vadim Zeitlin
295576f78f Fix compilation of WebView code in wxOSX with SDK < 10.11
This was broken by 05857e66c0 which introduced
dependencies on protocols only declared in 10.11 headers.

Fix build by checking if we're using 10.11 SDK and using these protocols only
in this case.
2016-11-26 17:29:27 +01:00
VZ
05857e66c0 Declare Objective-C protocols in the code using web view
This avoids clang -Wincompatible-pointer-types warnings when setting
delegates.
2016-11-23 16:25:09 +01:00
Václav Slavík
c57bde7092 Compilation fix for !wxUSE_PRINTING_ARCHITECTURE 2016-03-29 18:54:10 +02:00
Vadim Zeitlin
ce1cc2cea5 Remove hard TABs in wxHTML introduced by recent commit
Reformat the code added in d96a25be12.

See https://github.com/wxWidgets/wxWidgets/pull/244
2016-03-17 22:11:30 +01:00
X-L0rd
d96a25be12 Support backslashes in topics of HTML help files
HTML help file is a Microsoft format and it makes sense to support backslashes
in the file names used in it.

Closes https://github.com/wxWidgets/wxWidgets/pull/244
2016-03-16 02:23:29 +01:00
Vadim Zeitlin
b4d6348c6b Don't use a dummy menu with wxHtmlHelpFrame under OS X
Contrary to the comment in wxHtmlHelpFrame::Create(), this doesn't seem to be
necessary and can be actually problematic.

Never adding this menu obviates the need for the wxHF_MENU style from #15538.

Closes #15538.
2016-03-06 22:12:29 +01:00