Commit Graph

79 Commits

Author SHA1 Message Date
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
1b7c3d909a Compilation fix for PCH-less build after r74586.
Don't use wxWindow methods in wx/container.h, move AcceptsFocus()
implementation to containr.cpp.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-23 13:18:30 +00:00
Vadim Zeitlin
dee22e3198 Fix tab navigation bug with static boxes without enabled children.
wxControlContainer::AcceptsFocusFromKeyboard() returned true even if the
control didn't have any currently enabled -- and hence accepting focus --
children. This resulted in strange wxEVT_NAVIGATION_KEY propagation as it
unexpectedly wasn't handled in the control which pretended to accept focus and
instead bubbled up back into the parent, resulting in the focus returning to
the first child of the parent instead of skipping the static box with disabled
children and going to the next enabled child.

Fix this by checking that we have children that can be focused right now and
not only children that are focusable. Notice that this doesn't take care of
calling wxWindow::SetCanFocus() correctly when the children enabled/disabled
state changes so there might still be other problems, notably under wxGTK
where SetCanFocus() does something non-trivial, but it at least improves
things under wxMSW.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-23 12:44:29 +00:00
Vadim Zeitlin
2c750daecd No real changes, just refactor wxControlContainer code a little.
Extract the call to wxWindow::SetCanFocus() into a separate
UpdateParentCanFocus() function as it can be necessary to do it from places
other than UpdateCanFocusChildren() too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74582 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-23 00:43:29 +00:00
Stefan Csomor
4164a04a98 make methods available to all ports
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74198 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-13 00:42:24 +00:00
Vadim Zeitlin
4b5a12ecea Fix TAB navigation in wxGTK broken by r72663.
Don't call SetCanFocus(true) for container windows with focusable children,
this doesn't play well at all with wxGTK focus handling and in particular
totally disabled TAB navigation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-25 23:17:56 +00:00
Vadim Zeitlin
e68b7b364a Allow using windows that can't be focused with wxNavigationEnabled<>.
The code in wxNavigationEnabled<> assumed that the window itself could be
focused if it didn't have any focusable children because it was originally
extracted from wxPanel that can, indeed, be focused. This is however not the
case for all windows, notably not for wxStaticBox which now derives from
wxNavigationEnabled as well but can never be focused itself.

Add wxControlContainer::DisableSelfFocus() and call it from wxStaticBox to
support this situation. This required splitting m_acceptsFocus flag into
m_acceptsFocusSelf and m_acceptsFocusChildren and updating various methods
using them.

See #13271.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-13 22:51:50 +00:00
Vadim Zeitlin
44f4f7dda0 Don't send a huge number of unneeded wxChildFocusEvents.
wxControlContainer::SetLastFocus() propagated wxChildFocusEvent explicitly to
its parent but this is not needed because wxChildFocusEvents propagate by
default, being derived from wxCommandEvent. And doing it again resulted in the
total number of events increasing exponentially with the depth of the window
hierarchy and real performance problems due to processing all of them.

Closes #14310.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-25 09:48:22 +00:00
Vadim Zeitlin
6ca243fc75 Don't set focus to hidden window in wxSetFocusToChild().
The window that had focus previously could be hidden now, but its parent could
be hidden as well so it's not enough to set focus to it but we need to loop
until we find a visible ancestor.

Closes #14230.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-18 09:23:05 +00:00
Vadim Zeitlin
6e92c2991b Fix bug with TAB being able to switch focus between MDI frames.
The keyboard navigation code correctly checked that TAB was not propagated
above the TLW containing the window in which the key was pressed to avoid
switching focus between different TLWs by pressing TAB.

However wxMDIChildFrame is not a TLW and so it was possible to switch focus
between two different MDI child frames by pressing TAB. This was unexpected
and counterintuitive, especially because the frame receiving focus was not
even activated (which might be another bug).

Fix this by adding a new wxWindow::IsTopNavigationDomain() virtual method that
can be overridden to indicate that a window is a self-contained "keyboard
navigation domain" and that keyboard events shouldn't propagate outside of it
and override it in both wxTopLevelWindow and wxMDIChildFrame to ensure that it
behaves correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-03 00:45:42 +00:00
Vadim Zeitlin
2a0777a8f0 No real changes, just rename a variable.
"focussed" spelling is unusual and inconsistent with "focused" used in many
other places in the same file, so renamed "focussed_child_of_parent" and also
use standard camelCase naming convention for it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-03 00:45:38 +00:00
Vadim Zeitlin
26647ae4a7 Never restore focus to hidden child.
Don't set focus to a hidden window in our focus management code, this never
makes sense and results in apparent focus loss.

It also fixes, as a side effect, a crash in wxGrid under wxMSW as the focus is
not restored to the hidden grid editor any longer and so the code in its
wxEVT_KILL_FOCUS handler that resulted in the crash is not executed any
longer, see #13349.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-21 13:50:06 +00:00
Vadim Zeitlin
526954c596 Globally use "wxWindows licence" consistently.
Use "wxWindows licence" and not "wxWidgets licence" (the latter doesn't
exist) and consistently spell "licence" using British spelling.

See #12165.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:29:13 +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
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
21bf81db6f revert r51647 change as it broke the code overriding AcceptsFocusFromKeyboard() to prevent the user from tabbing into a window; simply override it at wxControlContainer too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-24 13:58:38 +00:00
Vadim Zeitlin
4453c7082f use CanAcceptFocus() instead of CanAcceptFocusFromKeyboard() when checking if we should TAB into a child because the latter is not recursive and we do want to TAB into panels which don't have focus themselves but have children that do
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 01:21:46 +00:00
Vadim Zeitlin
506f9e92cb no changes, just do the case of m_winLastFocused to wxRadioButton once instead of four times in wxMSW radiobutton navigation hack fragment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 00:14:54 +00:00
Vadim Zeitlin
391b16953a don't use parent window of a TLW in HandleOnNavigationKey(), even if it's apparently harmless it's wrong to involve the parent TLW in the code navigating inside this one
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 00:09:24 +00:00
Vadim Zeitlin
e49d331c47 don't allow TAB-bing away to other TLWs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-13 19:10:04 +00:00
Julian Smart
c7bfb76a2c A number of focus handling improvements:
Left clicking on a window only focuses the window if not processed.
wxControlContainer::SetFocus moved to wxControlContainerBase so that a container now focuses the first child even on wxGTK.
wxAuiBook is now a container, need for correct navigation on wxGTK.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-18 10:54:31 +00:00
Vadim Zeitlin
a8ff046ba9 fixes for building wxMSW with --disbale-all-features
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-21 02:05:03 +00:00
Vadim Zeitlin
edc0987174 CanAcceptFocus() now returns true if either the window itself or one of its children accepts focus; added new IsFocusable() to test whether the window itself accepts focus
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-28 12:04:06 +00:00
Václav Slavík
049908c573 make wxFrame a wxControlContainer too, so that it behaves in the same way as wxDialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-13 16:29:23 +00:00
Václav Slavík
6b6bd02c07 don't propagate wxChildFocusEvent outside of wxTLWs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-13 15:35:57 +00:00
Vadim Zeitlin
80332672ab make wxControlContainer accept focus depending on whether it has any focusable children when using native TAB navigation too but also allow to manually override this automatic detection; added wxWindow::SetCanFocus() to notify GTK+ about changed focus state
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 22:29:14 +00:00
Vadim Zeitlin
de160b0647 don't use wxControlContainer if wxHAS_NATIVE_TAB_TRAVERSAL is defined (currently it never is)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-25 22:41:11 +00:00
Vadim Zeitlin
5f28de16f3 fix infinite recursion when processing navigation keys in panels containing book controls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-01-21 01:21:45 +00:00
Robin Dunn
31e1bd370d Simplify use of MacIsWindowScrollbar
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-09 18:12:59 +00:00
Robin Dunn
afd7bf26f1 Don't let the built-in scrollbars confuse things when setting focus to
a wxScrolledWindow


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-09 06:34:08 +00:00
Vadim Zeitlin
f242653114 move the logic for changing notebook pages using the standard Ctrl-Tab/PageUp/Dn keys even when focus is outside of the notebook to wxControlContainer from wxTopLevelWindowMSW to allow it work for notebooks whose parent is not a TLW (as a side effect, this now also works in all ports although I don't really know how desirable this is)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-10 15:42:07 +00:00
Vadim Zeitlin
6c20e8f816 move default button handling code from wxControlContainer to wxTLW (patch 1524441)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-25 01:31:13 +00:00
Włodzimierz Skiba
841f23e18a Include wx/containr.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-21 07:36:58 +00:00
Włodzimierz Skiba
b0b5881aea Include wx/radiobut.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-05 16:46:15 +00:00
Włodzimierz Skiba
851dee09b5 Include wx/scrolbar.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-30 13:43:18 +00:00
Vadim Zeitlin
aa78d22e20 don't compare invalid iterators/node pointers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-23 00:47:01 +00:00
Vadim Zeitlin
e547f7a7b8 better fix for infinite loop in HandleOnNavigationKey() when wxUSE_STL==1 and start_node is NULL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-21 13:10:20 +00:00
Vadim Zeitlin
edc0a395c6 fix an infinite loop in HandleOnNavigationKey() when wxUSE_STL==1 and start_node is NULL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-21 12:53:28 +00:00
Julian Smart
3d3afaecfb Applied patch [ 1310416 ] [wxMSW] Fix radio button traversal
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-23 10:59:01 +00:00
Vadim Zeitlin
9f542367b7 fixed warnings about pointer to integer cast
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-25 23:36:10 +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
Vadim Zeitlin
b49f58fe12 compilation fix after last patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-20 00:45:10 +00:00
Vadim Zeitlin
7ff1b620e8 fix (with unknown but apparently beneficial effects) for TAB navigation in radio buttons (patch 1038330)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-19 21:58:48 +00:00
Włodzimierz Skiba
82ef81ed9c Final MSW/PalmOS split. Remove dump copies of MSW specific code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-22 07:22:25 +00:00
Włodzimierz Skiba
4055ed8281 Use __WXPALMOS__ for PalmOS port which fits __WX$(TOOLKIT)__ of bakefiles. Do not depend on MSW macros in PalmOS port. Source cleaning.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-20 12:44:22 +00:00
Julian Smart
ffecfa5aeb Committed William Osborne's wxPalmOS port
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-10-19 13:40:30 +00:00
Vadim Zeitlin
944e8709b7 fix crash after radio button fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-27 13:01:12 +00:00
Robert Roebling
c932709d31 Make radiobutton tab behaviour the same on MSW
as in standard MSW app, i.e. tab into the
    activated, not necessarily the first radio
    button.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-22 14:51:31 +00:00
Włodzimierz Skiba
c9d59ee7e0 Source cleaning: TRUE/true, FALSE/false, whitespaces, tabs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-09 17:42:36 +00:00