Commit Graph

57 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Paul Cornett
03aae8254f remove unused private member variables 2016-01-16 11:04:27 -08:00
Paul Cornett
8b3e3e594b avoid double-to-float conversion warnings in headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-05 17:13:46 +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
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
Dimitri Schoolwerth
80fdcdb90e No changes, synchronised source names that appear commented at the top of files with the actual path to the files.
Fixed commented names (path, filename, and extension) of files in include/ and src/. Prepended the names in src/ with "src/" everywhere, while starting those in include/wx/ with "wx/".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-20 00:14:35 +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
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
Bryan Petty
0678e935b1 Forward-port of r62758 (Added wxHtmlEasyPrinting name accessor and modifier).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-01 20:23:29 +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
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Francesco Montorsi
18e9c453ef s/FALSE/false
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-29 18:58:21 +00:00
Julian Smart
2a225ba641 Added Get/SetParentWindow to allow the same easy printing object to be used even
if the original parent frame was deleted


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-03 08:50:18 +00:00
Vadim Zeitlin
d3c7fc996a mark all dtors which are virtual because base class dtor is virtual explicitly virtual themselves
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-05 20:47:48 +00:00
Vadim Zeitlin
fd0bab4353 use dynamic array for the page breaks positions (patch 1483976)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-28 22:56:28 +00:00
Vadim Zeitlin
fbfb8bcc3f added missing consts and pass objects by const reference instead of by value (patch 1205869)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-24 21:43:15 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Julian Smart
99d800190a Added licence/copyright information
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-05-04 18:57:50 +00:00
Václav Slavík
4ac725a3b3 renamed Render's argument to not obfuscate its meaning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-11-27 22:40:05 +00:00
Robert Roebling
b45dfd0a8b Moved the wxPageSetupDialogData <-> native conversion
code for MSW to the appropriate file in src/msw/printdlg.cpp
  Removed the now obsolete printer setup dialog code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-10-31 23:43:41 +00:00
Włodzimierz Skiba
6953da0088 Source cleaning: whitespaces, tabs, -1/wxID_ANY, TRUE/true, FALSE/false.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-27 19:06:39 +00:00
Václav Slavík
10e5c7eaa0 replaced NormalizeFontSizes with SetStandardFonts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-24 09:55:10 +00:00
Robin Dunn
7acd36259b Added NormalizeFontSizes which will set the html font sizes based on
the size of a system font.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-08-05 23:59:44 +00:00
Julian Smart
655719367a Use old licence name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e Name and version changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00
Václav Slavík
632783de61 create wxPrintData instance on demand
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-02-23 22:38:30 +00:00
Václav Slavík
1202890513 added support for gcc precompiled headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-08-09 12:38:21 +00:00
Julian Smart
d2b354f9c9 Printing improvements: GetPageInfo() gets called after the DC has
been set and after OnPreparePrinting() has been called so it can
report the number of pages accurately; doesn't try to set
number of pages in print dialog, in common with other Windows apps;
wxHTML easy printing's preview shows number of pages
correctly; preview scrollbars are set correctly; keyboard navigation
improved


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-23 20:30:19 +00:00
Julian Smart
fa10c70ceb Added wxHtmlPrintout::AddFilter so the same filters used for
viewing HTML can be used for printing it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-06 17:52:42 +00:00
Václav Slavík
6acba9a719 fixes for moving wxHTML files into their own DLL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-04 13:04:05 +00:00
Julian Smart
a5ae8241de Allow printing objects to be passed a wxWindow, not a wxFrame
(vestigial remains of older wxWin version)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20735 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-26 09:55:28 +00:00
Václav Slavík
f2034f1b6e applied HTML pagebreaks patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-05-12 22:33:51 +00:00
Václav Slavík
4eecf1150d applied patch adding SetFonts to wxHTML printing classes and allowing NULL sizes list
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-03-16 20:30:26 +00:00
Vadim Zeitlin
22f3361e1c use DECLARE_NO_COPY_CLASS() where applicable (patch 633384)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-01-02 23:38:11 +00:00
Vadim Zeitlin
2b5f62a0b2 merged 2.4 branch into the trunk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-12-04 14:11:26 +00:00
Gilles Depeyrot
af49c4b8a2 disable use of #pragma interface under Mac OS X
GNU compiler included with Mac OS X 10.2 (Jaguar) as well as August Developer
Tools update contain a bug concerning #pragma interface handling that can only
be worked around by not using them (and they are not necessary anyways)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-08-31 11:29:13 +00:00
Gilles Depeyrot
a2e9bc18a8 use "..." instead of <...> for wx headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2002-01-06 15:40:15 +00:00
Václav Slavík
2978621101 wxHtmlEasyPrinting indentation changes + CreatePrintout,DoPrint and DoPreview virtual and protected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2001-08-23 18:56:41 +00:00