Commit Graph

109 Commits

Author SHA1 Message Date
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
f4bcb12709 Remove useless initializations
wxObject-derived types and wxString are null/empty by default.
2018-08-22 09:19:15 -07: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
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
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
Bryan Petty
ed173ed91e Use HTTPS with Trac links. 2017-07-04 13:15:14 -06:00
Paul Cornett
c1f2bbce5d Use wxString::empty() instead of comparison to wxEmptyString 2017-05-29 00:05:52 -07:00
Troels Knakkergaard
c9a3a23e5a Add wxHtmlPrintout::SetMargins(wxPageSetupDialogData) overload
Make it simpler to set the user-configured margins.

Closes #16872.
2016-03-05 03:33:08 +01: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
Artur Wieczorek
0091246427 Only use wxDateTime in wxHtmlPrintout::TranslateHeader() if available.
Code using wxDateTime when preparing header should be active only if
wxUSE_DATETIME==1.

See #16939.
2015-04-05 19:57:20 +02:00
Vadim Zeitlin
33ad33d447 Add wxOVERRIDE and use it in common and wxOSX code.
Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-20 13:26:28 +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
3ee9771b36 No real changes, just don't use brush styles for background mode in wxHTML.
Use just wxTRANSPARENT and wxSOLID instead of wxBRUSHSTYLE_TRANSPARENT and
wxBRUSHSTYLE_SOLID when changing the background mode.

See #14599.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-07 22:39:20 +00:00
Vadim Zeitlin
846f4568e5 Fix infinite loop in wxHtmlEasyPrinting page break code.
The code didn't handle cells higher than the page height correctly and entered
an infinite loop when trying to adjust page breaks in their presence, e.g.
when trying to print a very tall image.

Closes #13935.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-07 13:02:32 +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
9899a70bc0 Remove hard limit on number of pages in wxHtmlPrintout.
This seems to be a leftover from an old version in which the page breaks
positions were stored in a fixed size array. As the code uses a dynamic array
now there doesn't seem to be any reason to impose any limit on the number of
pages and some people did run into the old 999 pages limitation apparently.

Closes #11159.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-24 12:27:18 +00:00
Vadim Zeitlin
c14dc5541c Fix PCH-less compilation after recent changes.
Include wx/sizer.h explicitly when not using PCH.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-05 13:53:40 +00:00
Vadim Zeitlin
fc48f78fd0 Notify user less intrusively about overflow when previewing HTML printouts.
We used to show a modal dialog if the page didn't fit horizontally but this
was too intrusive when the user was just previewing the output and not really
printing it. Moreover, the question of the message box ("Print" or "Cancel")
simply didn't make sense in this case.

Fix both problems by not showing this dialog at all when previewing. Instead,
notify the user with a much less intrusive info bar in the preview window.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-05 12:20:15 +00:00
Václav Slavík
c44a49b852 Use fixed screen DPI of 96 when printing HTML.
Unlike font sizes, which depend on screen resolution because of weird
wxFont API, pixel sizes used elsewhere (and in particular, for images)
shouldn't depend on screen DPI.

This finally makes the output independent of screen size.

Fixes #10942.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-29 14:19:06 +00:00
Václav Slavík
5a21001cdd Removed useless wxDisplaySize() calls from wxHtmlPrintout.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-29 14:18:58 +00:00
Vadim Zeitlin
3fff75338a Use stock id instead of duplicating its string label in CheckFit().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-25 16:41:25 +00:00
Vadim Zeitlin
9b95e87cb0 Use Ok/Cancel dialog instead of Yes/No one in CheckFit().
This has the advantage of being able to close the dialog with "Esc" and also allows us to not specify the label for the "Cancel" button at all and use the default one, which is especially important under MSW where the label returned by wxGetStockLabel(wxID_CANCEL) is actually not the same string as is used in the native message boxes (they don't define an accelerator for the cancel button).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-25 16:40:49 +00:00
Vadim Zeitlin
39dfe3d454 Add a period to the sentence end.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-25 16:40:42 +00:00
Vadim Zeitlin
f7f068364f compare wxMessageDialog::ShowModal() return value with wxID_YES, not wxYES (closes #10789)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-13 08:41:44 +00:00
Vadim Zeitlin
7ff1542d27 fix g++ warnings for float->int conversions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-31 09:18:42 +00:00
Vadim Zeitlin
4209475ced detect horizontal overflow in wxHtmlPrintout and warn the user about it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-26 13:37:37 +00:00
Václav Slavík
131fc12022 added asserts to check correct order of wxHtmlDCRenderer methods calls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59071 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-21 16:43:22 +00:00
Vadim Zeitlin
e822d1bd5f fix more Borland release build warnings about unused variable/code without effect
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-20 10:30:49 +00:00
Václav Slavík
26fba7b2a3 apply Stefan's fix for wxHtmlDCRenderer clipping
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55070 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-12 16:03:17 +00:00
Václav Slavík
9f7e7edb78 fixed SetUserScale() calls to use correct scale on Y axis
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-16 08:10:06 +00:00
Václav Slavík
7258d99573 Changed wxHTML default font size for printing to be 12pt regardless
of the platform; this font shouldn't depend on toolkit's default
GUI font (introduced in 2.8, now reverting to pre-2.8 correct
behaviour).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-04 22:34:09 +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
Robert Roebling
9695c53a92 Ok -> IsOk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-14 13:15:07 +00:00
Julian Smart
806f9e8330 Avoid crash if user aborts the print
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-29 16:41:01 +00:00
Vadim Zeitlin
b4a980f4f5 don't use obsolete functions (mostly copystring() and Count()), remove their documentation (patch 1697956)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-11 00:23:19 +00:00
Vadim Zeitlin
a1d5a2937a corrected message about page number overflow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-01-07 19:58:48 +00:00
Vadim Zeitlin
a863333e37 fixed off by 2 error in HasPage() (patch 1562871)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-04 22:58:23 +00:00
Włodzimierz Skiba
02761f6cd4 Include wx/module.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-31 19:31:43 +00:00
Vadim Zeitlin
766571a703 add @DATE@, @TIME@ and @TITLE@ macros to HTML printing (extended/modified patch 1528679)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-29 20:45:13 +00:00