From: Václav Slavík Date: Sun, 10 Sep 2006 15:38:54 +0000 (+0000) Subject: added wxWindow::IsVisible() method X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9c72cf7619064969b5c7f59cece74013789db4cf?ds=inline added wxWindow::IsVisible() method git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex index cd9326c4f0..581aa4be00 100644 --- a/docs/latex/wx/window.tex +++ b/docs/latex/wx/window.tex @@ -1546,6 +1546,10 @@ Retained windows are only available on X platforms. Returns {\tt true} if the window is shown, {\tt false} if it has been hidden. +\wxheading{See also} + +\helpref{wxWindow::IsVisible}{wxwindowisvisible} + \membersection{wxWindow::IsTopLevel}\label{wxwindowistoplevel} @@ -1556,6 +1560,18 @@ dialogs are considered to be top-level windows (even if they have a parent window). +\membersection{wxWindow::IsVisible}\label{wxwindowisvisible} + +\constfunc{virtual bool}{IsVisible}{\void} + +Returns {\tt true} if the window is physically visible on the screen, i.e. it +is shown and all its parents up to the toplevel window are shown as well. + +\wxheading{See also} + +\helpref{wxWindow::IsShown}{wxwindowisshown} + + \membersection{wxWindow::Layout}\label{wxwindowlayout} \func{void}{Layout}{\void} diff --git a/include/wx/toplevel.h b/include/wx/toplevel.h index b90c1a6584..fee628786c 100644 --- a/include/wx/toplevel.h +++ b/include/wx/toplevel.h @@ -229,6 +229,7 @@ public: // override some base class virtuals virtual bool Destroy(); virtual bool IsTopLevel() const { return true; } + virtual bool IsVisible() const { return IsShown(); } virtual wxSize GetMaxSize() const; // event handlers diff --git a/include/wx/window.h b/include/wx/window.h index e0b685a110..7a20dcb81a 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -479,6 +479,10 @@ public: virtual bool IsShown() const { return m_isShown; } virtual bool IsEnabled() const { return m_isEnabled; } + // returns true if the window is visible, i.e. IsShown() returns true + // if called on it and all its parents up to the first TLW + virtual bool IsVisible() const; + // get/set window style (setting style won't update the window and so // is only useful for internal usage) virtual void SetWindowStyleFlag( long style ) { m_windowStyle = style; } diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index a75b82f1da..08acc64556 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -744,6 +744,12 @@ bool wxWindowBase::Enable(bool enable) return false; } } + +bool wxWindowBase::IsVisible() const +{ + return IsShown() && (GetParent() == NULL || GetParent()->IsVisible()); +} + // ---------------------------------------------------------------------------- // RTTI // ----------------------------------------------------------------------------