Commit Graph

190 Commits

Author SHA1 Message Date
Maarten Bent
39ca664053 Improve handling of non default DPI in wxHtmlWindow deawing code
This replaces the fix of f4dcac9f44 (Return wxFont adjusted to DPI in
wxHtmlWinParser::CreateCurrentFont(), 2020-11-25) adjusting the font
explicitly under MSW with a better fix, associating the correct window
(and hence DPI) with the device context used in OnPaint().

See #18564.
2020-11-28 16:56:10 +01:00
Andy Robinson
c2a488ca42 Fix scroll position after following a link in wxHtmlWindow
When not using an anchor, new page must be shown starting from its
origin in the top-left corner, instead of remaining at the current
scroll position, as it did before.

Closes #18922.
2020-11-04 17:44:02 +01:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Vadim Zeitlin
1422991602 Add wxWindow::GetDPIScaleFactor()
This function replaces some uses of GetContentScaleFactor(), where a
factor greater than 1 must be used even under the platforms not doing
any logical/physical pixel mapping, such as MSW.

For now GetContentScaleFactor() is still unchanged, but it will return 1
for such platforms in the future and adding GetDPIScaleFactor() allows
to avoid changing the behaviour of the code which relied on its current
behaviour.
2020-07-18 23:42:44 +02:00
Pavel Kalugin
bce4bf1c8e Fix calculation of the selection bounding rectangle 2019-10-05 14:56:46 +02:00
Pavel Kalugin
ba5547d640 Use Ctrl+Ins to copy the selection in wxHtmlWindow 2019-10-05 14:56:46 +02:00
Pavel Kalugin
3db142e58f Redraw selection in wxHtmlWindow on focus event 2019-10-05 14:56:46 +02:00
Pavel Kalugin
ef524931cc Fix selection background colour in wxHtmlWindow
Use inactive selection colour when the window doesn't have focus.
2019-10-05 14:56:46 +02:00
Paul Cornett
fe1737d399 Reduce the scope of some local variables 2019-04-05 10:44:02 -07:00
Paul Cornett
7c3ce912e0 Use ctor-initializer rather than assignment for non-POD class members 2019-02-25 10:23:35 -08:00
Maarten Bent
39ff5b90e5 Replace wxDeprecatedGUIConstants enum values 2018-11-25 21:29:32 +01:00
Paul Cornett
86ab6de0c1 Use clear() instead of assignment to wxEmptyString 2018-08-22 09:45:20 -07: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
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
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
c3ae2fc54a Use content scale factor to make wxHTML DPI-aware 2015-11-29 19:36:14 +00:00
Vadim Zeitlin
bede8a3296 Ensure we never create empty bitmap in wxHtmlWindow::OnPaint().
Doing this resulted in an assert from wxBitmap ctor and was useless anyhow,
just skip the drawing code if the window is reduced to empty client area.
2015-06-21 15:38:31 +02: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
0f60be60a2 Don't leave wxHtmlWinParser with a dangling wxDC pointer.
Call SetDC(NULL) to prevent wxHtmlWinParser from using a pointer to the
already destroyed wxDC object.

See #16501.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-29 11:56:33 +00:00
Vadim Zeitlin
88e808c9ac No changes, just avoid unnecessary heap allocation in wxHtmlWindow.
Create the temporary wxClientDC on the stack, not the heap, there is no need
for the latter.

See #16501.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-29 11:56:27 +00: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
Julian Smart
9733b78862 Return true from OnCellClicked if the event was processed, otherwise further processing will use default behaviour which may negate the effect of the event handler.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-04 19:10:22 +00:00
Vadim Zeitlin
67cbb04051 Try to detect invalid wxHtmlWindow title format earlier.
Assert directly in wxHtmlWindow::SetRelatedFrame() instead of doing it much
later, hopefully people will read the comment at the assert point.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-31 16:06:43 +00:00
Vadim Zeitlin
fba8b37345 Add wxHtmlWindow::SetDefaultHTMLCursor().
This allows to change the cursors used by any HTML windows, before creating
them.

Closes #15324.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-18 16:00:43 +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
e24c4e1238 Set mouse cursor correctly over image map links in wxHTML.
The cursor didn't change to a link one when the mouse was over link areas in
an image map.

Fix this by generalizing wxHtmlCell::GetMouseCursor() into GetMouseCursorAt().

Closes #15350.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-17 17:27:14 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
4340a145d8 Fix background corruption in scrolled wxHtmlWindow.
Draw the background on the entire virtual size, not just the currently shown
client size.

Closes #15047.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-19 23:13:21 +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
49b489e80f Fix erasing wxHtmlWindow background in wxUniv.
Prevent the default wxWindow-level wxEVT_ERASE_BACKGROUND handler from being
used in wxUniv for wxHtmlWindow. This is unnecessary as it has its own handler
anyhow and also doesn't work for some reason as erasing wxMemoryDC by drawing
a solid rectangle over it seems to be broken in at least wxX11.

Work around this problem by erasing the background in wxHtmlWindow itself if
no user-defined (as opposed to any, including one defined in wxWindow itself)
handler for this event exists.

Closes #13880.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-28 22:24:43 +00:00
Václav Slavík
fca74306c5 Don't eat unhandled events in wxHtmlWindow::OnKeyUp().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-07 16:15:11 +00:00
Vadim Zeitlin
615f68c6b9 Skip EVT_RIGHT_UP event in wxHtmlWindow if it wasn't handled.
This fixes generation of EVT_CONTEXT_MENU for mouse clicks in wxHtmlWindow
under MSW: it wasn't generated before because we always ate the right mouse
clicks.

Closes #2465.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-18 23:12:03 +00:00
Vadim Zeitlin
2f0bebe646 Use more clear names for variables in wxHtmlSelection code.
Call the variables and related methods "character position" instead of
"private position" which wasn't very clear.

Closes #13307.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-11-30 09:21:33 +00:00
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.

Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").

Closes #13063 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 14:17:38 +00:00
Stefan Csomor
2895324520 merging back XTI branch part 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 08:31:53 +00:00
Vadim Zeitlin
88ed20a2fa Propagate wxHtmlWindow layout direction to the wxDC it uses.
While wxHtmlWindow doesn't support mixing LTR and RTL contents we can indeed
try to make it render pure RTL stuff correctly by setting up the wxDC used for
drawing accordingly.

Closes #1988.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-23 23:33:23 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
b42468496c Compilation fixes in wxHTML for wxUSE_CONFIG==0.
Surround uses of wxConfig with #of wxUSE_CONFIG in wxHTML code.

Closes #11750.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-25 00:03:30 +00:00
Václav Slavík
a7b2c092b7 Fix wxHtmlWindow to correctly decide whether to show scrollbars.
wxHtmlWindow::CreateLayout()'s algorithm was both naive (not properly
accounting for scrollbar visibility changes during layout) and broken
(incorrectly rounding when computing scroll steps and adding
GetCharHeight() value to the height in an attempt to mitigate the
harm).

This algorithm should properly for scrollbars in all situations.
Rounding is done in such way that the content is fully viewable, while
at the same time not showing scrollbars needlessly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-14 15:27:42 +00:00
Václav Slavík
8e6c2840b4 Improved handling of anchors in wxHTML: scroll to better position (patch #11406).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-17 20:20:48 +00:00
Vadim Zeitlin
a3873c6f9c Revert "trivial" change of r61772.
The "slight code simplification" of r61772 broke the code as it could now
crash if dangling m_Cell pointer was used during parsing. Revert it and add a
comment explaining why the code is written in the way it is.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-04 16:15:52 +00:00
Julian Smart
8e494db90c Set the initial size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-10 11:02:01 +00:00
Vadim Zeitlin
1c51fc784d No real changes, just slightly simplify code.
No need to check whether the pointer is NULL before deleting it nor to assign
NULL to it if it's going to be immediately reassigned on the next line.

Closes #11149.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-28 10:43:51 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
03a187ccae wxHtmlWindow background drawing fixes for OS X and optimizations
1. Avoid crashes under OS X due to attempts to copy window contents to the
   backing store bitmap: this doesn't work under OS X so avoid it by always
   painting the background from OnPaint() itself, while still generating the
   erase background events for compatibility.

2. Don't double buffer wxHtmlWindow drawing if the window is already double
   buffered.

3. Don't allocate backing store bitmap on the heap, this is useless as bitmaps
   are already pointer-lile -- so just use invalid bitmap instead of NULL
   bitmap pointer.

4. Update the html/test sample to show the effects of custom erase background
   handler in wxHtmlWindow (it overrides the background bitmap painting).



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-18 17:32:20 +00:00
Vadim Zeitlin
6528a7f145 make wxWindow::SetAutoLayout() now works for all windows, not just panels
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-23 11:26:58 +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
Vadim Zeitlin
9b11752c4f require semicolon after wxDECLARE/DEFINE_EVENT() (closes #10456)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 18:59:25 +00:00
Vadim Zeitlin
3c77890141 add more flexible and safer template Connect() overloads (#10000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 14:26:13 +00:00