Commit graph

88 commits

Author SHA1 Message Date
Vadim Zeitlin
5dffb76d0a Remove bool parameter from MacSetClipChildren()
This parameter was always "true" in the existing calls to this function
and the underlying UseClippingView() didn't support passing "false" to
it anyhow, so it seems simpler and more clear to just remove the
parameter.

It also avoids clang warnings about it being unused.

No real changes.
2023-12-11 00:41:48 +01:00
Vadim Zeitlin
dede4b9326 Use "= default" for all trivial default ctors and dtors
Replace user-specified empty constructors and destructors with the
compiler-generated versions, which has a number of advantages for code
generation, in addition to being more clear.

Closes #22965.

Closes #24058.
2023-11-17 01:33:32 +01:00
Vadim Zeitlin
e43f913313 Remove all blank "Modified by:" lines from top comment blocks
Having this line is not useful at all as it doesn't contain any
information and shouldn't be filled in the future as git-shortlog can
provide the information about people who changed the given file more
more reliably than consulting the comments in any case.

Keep the non-blank lines for historical purposes.
2023-10-22 01:22:48 +02:00
Vadim Zeitlin
d5d8c1ad28 Add a hack to fix link problem with wxScrolledCanvas in wx DLL
When using MSVC, wxScrolledCanvas could be instantiated multiple times
when including wx/scrolwin.h directly and when including wx/grid.h,
which declares a class deriving from wxScrolledCanvas, later.

Fix this by defining a dummy class deriving from wxScrolledCanvas in the
same header, as this is enough to convince MSVC to generate the
definition of wxScrolledCanvas itself in the DLL instead of doing it
inline.

Closes #23774.

Closes #23803.
2023-09-06 02:40:01 +02:00
Vadim Zeitlin
4f4c5fcfdf Use nullptr instead of NULL in the code and documentation
This is a combination of running clang-tidy with modernize-use-nullptr
check for some ports (GTK, X11, OSX) and manual changes to the ports for
which it couldn't be used easily (MSW, DFB) and also manually updating
the docs.

Also replace NULL with null or nullptr in the comments as this is more
consistent with the use of nullptr in the code and makes it simpler to
grep for the remaining occurrences of NULL itself.

And also use null in the assert messages.

Only a few occurrences of "NULL" are still left in non-C files, mostly
corresponding to unclear comments or string output which it might not be
safe to change.
2022-10-18 01:25:25 +02:00
Vadim Zeitlin
fb4f0b590c Remove wxGTK1 port and GPE support
Remove the port files and references to it from the common headers and
elsewhere.

Also remove GPE (GNOME PDA Environment) support as libgpewidget is
unmaintained since 2006 or so and has never been really used.

Use __WXGTK__ to test for any version of wxGTK now. Still define
__WXGTK20__ for compatibility, but always define it now and don't test
for it in the library code.
2022-10-16 22:01:02 +02:00
PB
88d526660f Replace wxOVERRIDE and wxNOEXCEPT with override and noexcept
Don't use deprecated macros in wxWidgets itself.
2022-10-15 18:10:45 +02:00
Artur Wieczorek
5e2da5a106 Get rid of v2.8 code 2022-08-02 08:26:29 +02:00
Arrigo Marchiori
c86bcf962d Use wxASCII_STR() on string literals
Fix the build with wxNO_IMPLICIT_WXSTRING_ENCODING.
2020-07-17 17:52:16 +02:00
Vadim Zeitlin
b69b4206c6 Add wxScrollWindow::ShouldScrollToChildOnFocus() virtual hook
This method can be overridden to indicate that the scrolled window
doesn't want its children to be scrolled into view when they're focused,
which is the default behaviour.

Also reuse this method for Mac-specific scrollbar workaround.
2019-07-16 18:01:36 +02:00
Artur Wieczorek
b309868930 Fix implementation of wxScrolled<wxControl>
wxControl::Create() has a different signature than wxWindow::Create()
(its 6-th parameter is of const wxValidator& type instead of
const wxString&) so it cannot be invoked from the the general template of
wxScrolled<T>::Create() method. We need to move a call to T::Create()
function to a dedicated template function wxCreateScrolled() responsible
for actual creation of the scrolled window and overload it for custom
classes if necessary.
This has to be done for wxControl and from this overloaded function
wxControl::Create() can be called with rearranged parameters.
2019-06-02 22:34:01 +02:00
Vadim Zeitlin
27c399adbe Remove wxALWAYS_SHOW_SB-related code from wxScrolled
There is no need to handle this style specially here, it's supposed to
be handled at wxWindow level and is, indeed, at least in all the major
ports.

So revert 2119b213e3 (see #13616) and the
workaround for it applied later for macOS (see #14856). And this also
removes the need for handling wx[HV]SCROLL in wxScrolled (see #17846).

Closes #14856, #17846.
2018-01-14 18:27:10 +01:00
Maarten
977a826639 use more wxOVERRIDE (#329) 2016-09-25 13:21:28 -07:00
ARATA Mizuki
8cfc74491a Replace wxEXPLICIT with the 'explicit' keyword
See #17655.
2016-09-14 18:45:12 +09:00
Paul Cornett
27a8d28029 more use of wxOVERRIDE 2015-09-06 17:20:42 -07: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
f4b80e5337 Remove MSVC6 support.
Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 22:32:17 +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
Václav Slavík
0d1903dbda Add virtual ~wxAnyScrollHelperBase() to fix compiler warning.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-21 09:28:42 +00:00
Vadim Zeitlin
4706252347 Make default keyboard handling available in wxVarScrollHelperEvtHandler too.
Factor out the keyboard handling code in wxAnyScrollHelperBase allowing its
reuse in wxVarScrollHelperEvtHandler.

Now wxVarScrollHelperBase handles cursor keys in a sane way by default
too and also allows disabling their handling, just as wxScrolledWindow.

See #15357.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-15 00:15:17 +00:00
Vadim Zeitlin
dc2513650d Propagate the event handling fixes to wxVarScrollHelperBase.
Merge the fixes to wxScrollHelperBase::ProcessEvent() of r64358, r64370,
r64464, r72939 and possibly a few more in wxVarScrollHelperBase to fix its
behaviour too, as it wasn't generating the correct events any longer.

Unfortunately the fix right now is to physically copy the code from one class
to the other. This should be avoided, of course, and a more in depth
refactoring should be done to move the code common to both classes into
wxAnyScrollHelperBase after 3.0 release. But for now continuing to duplicate
code is better than not having a working wxVarScrollHelperBase.

See #15357.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-15 00:15:12 +00:00
Vadim Zeitlin
010d821b31 Add wxAnyScrollHelperBase to reduce code duplication in wxVarScrollHelperBase.
This is just a small refactoring to move some trivially common parts of
wxScrollHelperBase and wxVarScrollHelperBase in a new common base class.
This will make it possible to apply other corrections to wxVarScrollHelperBase
without having to physically duplicate the code from wxScrollHelperBase in it.

See #15357.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-15 00:15:07 +00:00
Vadim Zeitlin
029a401d74 Make wxWindow::HasScrollbar() respect wxScrolled::ShowScrollbars().
Override CanScroll() in wxScrolled to return the real state of the scrollbar
instead of just relying on the wx[HV]SCROLL styles.

Closes #15440.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-27 13:12:38 +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
208717f64e Account for scrolling when setting the background brush origin in wxMSW.
We must use physical coordinates for the brush origin to account for the
coordinates offset in scrolled windows, so add MSWAdjustBrushOrg() and call it
from MSWGetBgBrushForChild().

Closes #14917.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-10 16:14:03 +00:00
Vadim Zeitlin
de168da1ed No changes, just improve wxScrolled::EnableScrolling() documentation.
Explain that, in spite of its name, this function doesn't disable scrolling
when called with false argument but just changes the mechanism used to
implement it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-22 02:34:07 +00:00
Stefan Csomor
96943967a5 workaround, see #14856
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-27 08:29:24 +00:00
Vadim Zeitlin
4ca30c7d65 Simplify wxEVT_PAINT handling in wxScrollHelperBase.
Just always call the virtual OnDraw() if wxEVT_PAINT wasn't handled. This is
much simpler than connecting our own special handler just to set a flag saying
whether the event was processed which was very complicated and didn't work
anyhow for the statically connected wxEVT_PAINT handlers.

See #14757.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-10 00:53:17 +00:00
Vadim Zeitlin
2119b213e3 Add support for wxALWAYS_SHOW_SB style to wxScrolled<>.
Simply call ShowScrollbars(wxSHOW_SB_ALWAYS) if this style is specified.

Closes #13616.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-04 23:24:28 +00:00
Vadim Zeitlin
233f573883 Fix file paths in the header comments.
Consistently use only "wx/foo.h" instead of "include/wx/foo.h" ("include" is
always implicit anyhow).

Also use "src/osx" instead of "src/mac" for the files in this directory.

See #12165.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:29:58 +00:00
Vadim Zeitlin
d6a658ff0c Allow user code to override key events in generic wxListCtrl.
The changes of r58323 ("Restore keyboard navi") fixed the handling of cursor
keys in the generic wxListCtrl implementation but at the price of not sending
keyboard events for the cursor keys to wxListCtrl itself any more. This made
it impossible to override their handling in user code, something that used to
work in previous wx versions and still works in wxMSW.

Revert the changes of this revision now and fix the original code by simply
disabling the handling of the cursor keys in wxScrollHelperBase using a newly
added DisableKeyboardScrolling() method. This ensures that the keyboard events
for cursor keys are not used to scroll the window when they are forwarded to
wxListCtrl from wxListMainWindow.

The fix is conceptually ugly as it would be better to avoid the need for such
ad hoc functions as DisableKeyboardScrolling() but it is very simple and there
just doesn't seem to be any sane way to do it otherwise with wxScrollHelperBase.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:35 +00:00
Vadim Zeitlin
ce38e440a6 Suppress VC6 warnings about non-DLL-exported class for wxScrolled.
It's harmless to derive wxScrolledWindow from wxScrolled<> so suppress the
warnings about it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:18:11 +00:00
Vadim Zeitlin
cb7c02fd46 Remove DLL export declaration from wxScrolled.
As this class has only inline methods it doesn't need to be exported from the
DLL and actually exporting it results in linking problems when using
wxScrolled<wxWindow> (which, unlike wxScrolled<wxPanel>, is not used in wx
itself and so doesn't seem to be instantiated) in DLL client even with VC > 6.

An alternative solution would be to change WXDLLIMPEXP_TEMPLATE_INSTANCE_CORE
macro to explicitly instantiate the template in the DLL even for VC > 6 but
this wouldn't solve the problem for wxScrolled<CustomClass> while removing the
DLL export declaration should.

Also use wxScrolled<wxWindow> in addition to wxScrolled<wxPanel> in the scroll
sample to test that it links correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-23 14:28:42 +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
bc448be341 make Scroll() itself virtual too as existing code might override it (but new code should override DoScroll() only); use the same access in the derived classes as in wxScrollHelperBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 12:27:20 +00:00
Vadim Zeitlin
bca1504431 deprecate OnScroll() which existed for compatibility only even before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 12:23:28 +00:00
Vadim Zeitlin
29e1398fa0 further untangle generic and native GTK implementations of wxScrollHelper: use the standard wxScrollHelperBase/wxScrollHelper naming convention and move the stuff unused by GTK in the generic implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-24 16:43:30 +00:00
Vadim Zeitlin
69e9752529 provide generic implementation for ShowScrollbars() too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-24 16:11:02 +00:00
Vadim Zeitlin
6362d82b3e add wxScrollHelper::ShowScrollbars() (implemented for GTK only right now, generic implementation coming soon)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-24 15:58:37 +00:00
Vadim Zeitlin
0b0f6f87d5 add convenient GetViewStart() and Scroll() overloads taking wxPoint instead of 2 int[ pointer]s
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-24 15:11:00 +00:00
Vadim Zeitlin
5eda3bcdad remove assert from GetSizeAvailableForScrollTarget
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-18 13:50:10 +00:00
Vadim Zeitlin
f9ec0ea7c5 eliminate the hysteresis when scrollbars didn't disappear when the window was resized to be less than its virtual size and then resized back to be slightly greater than it in the native GTK version too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-26 17:36:57 +00:00
Vadim Zeitlin
69367c566e move the grid-specific workaround for scrollbar hysteresis to wxScrollHelper itself, the scrollbars now should not only appear but also disappear correctly during resizing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-14 22:44:08 +00:00
Vadim Zeitlin
707d9f4047 VC6 compilation warning fix for non-defined template class copy ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-02 13:10:33 +00:00
Vadim Zeitlin
9fdb68d985 wxMac compilation fix: must explicitly qualify non-dependent MacSetClipChildren() in wxScrolled::Create()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-02 13:51:30 +00:00
Václav Slavík
f2a6c918e8 compilation fix for wxMSW and r52961
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-01 15:40:49 +00:00
Václav Slavík
16361ec941 Generalized wxScrolledWindow into wxScrolled<T> that can derive from
anything (typically wxPanel or wxWindow). Fixed generic wxListCtrl to
use wxScrolled<wxWindow> - this fixes focus problems with label-editing
text control. Fixes to wxScrolledWindow doxygen docs.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-01 15:07:03 +00:00
Francesco Montorsi
53a2db124c substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-26 15:06:00 +00:00
Václav Slavík
7d616e99ed fixed wxScrolledWindow best size calculation: compute something (this was broken after 2.8) and don't use current size in computation; also removed now-unused ScrollGetWindowSizeForVirtualSize() method to simplify the code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-21 22:47:55 +00:00
Václav Slavík
06b9c2a22f when a window inside scrolled window receives focus, make sure the parent is scrolled so that the window with focus is visible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-19 19:21:52 +00:00