added wxWindow::HasFocus() for more convenient way of determining if a (possibly composite) window has focus

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2008-01-21 13:30:24 +00:00
parent 6f67af05ca
commit 3358af0f87
4 changed files with 30 additions and 3 deletions

View File

@@ -276,6 +276,7 @@ All (GUI):
Also made it easier to derive from wxWizard and override behaviour.
- Made wxSizer::Fit() set the client size of the target window
- Add support for wxDatePickerCtrl in wxGenericValidator (Herry Ayen Yang)
- Added wxWindow::HasFocus().
wxGTK:

View File

@@ -624,7 +624,8 @@ Note that this is a static function, so it can be called without needing a wxWin
\wxheading{See also}
\helpref{wxWindow::SetFocus}{wxwindowsetfocus}
\helpref{wxWindow::SetFocus}{wxwindowsetfocus},
\helpref{wxWindow::HasFocus}{wxwindowhasfocus}
@@ -1556,6 +1557,18 @@ extra styles.
Returns \texttt{true} if the window has the given \arg{flag} bit set.
\membersection{wxWindow::HasFocus}\label{wxwindowhasfocus}
\constfunc{virtual bool}{HasFocus}{\void}
Returns \true if the window (or in case of composite controls, its main
child window) has focus.
\wxheading{See also}
\helpref{FindFocus}{wxwindowfindfocus}
\membersection{wxWindow::HasMultiplePages}\label{wxwindowhasmultiplepages}
\constfunc{virtual bool}{HasMultiplePages}{\void}
@@ -3083,8 +3096,9 @@ This sets the window to receive keyboard input.
\wxheading{See also}
\helpref{wxFocusEvent}{wxfocusevent}
\helpref{wxPanel::SetFocus}{wxpanelsetfocus}
\helpref{HasFocus}{wxwindowhasfocus},
\helpref{wxFocusEvent}{wxfocusevent},
\helpref{wxPanel::SetFocus}{wxpanelsetfocus},
\helpref{wxPanel::SetFocusIgnoringChildren}{wxpanelsetfocusignoringchildren}

View File

@@ -620,6 +620,11 @@ public:
static wxWindow *DoFindFocus() /* = 0: implement in derived classes */;
// return true if the window has focus (handles composite windows
// correctly - returns true if GetMainWindowOfCompositeControl()
// has focus)
virtual bool HasFocus() const;
// can this window have focus in principle?
//
// the difference between AcceptsFocus[FromKeyboard]() and CanAcceptFocus

View File

@@ -2733,6 +2733,13 @@ void wxWindowBase::DoMoveInTabOrder(wxWindow *win, WindowOrder move)
return win ? win->GetMainWindowOfCompositeControl() : NULL;
}
bool wxWindowBase::HasFocus() const
{
wxWindowBase *win = DoFindFocus();
return win == this ||
win == wxConstCast(this, wxWindowBase)->GetMainWindowOfCompositeControl();
}
// ----------------------------------------------------------------------------
// global functions
// ----------------------------------------------------------------------------