Add wxRibbonControl::GetAncestorRibbonBar() helper.

New method allowing to find the ribbon bar containing the given window.

See #14283.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-06-03 19:17:03 +00:00
parent 017dc06b50
commit 07c7226468
3 changed files with 25 additions and 0 deletions

View File

@@ -19,6 +19,7 @@
#include "wx/control.h"
#include "wx/dynarray.h"
class wxRibbonBar;
class wxRibbonArtProvider;
class WXDLLIMPEXP_RIBBON wxRibbonControl : public wxControl
@@ -55,6 +56,8 @@ public:
virtual bool Realize();
bool Realise() {return Realize();}
virtual wxRibbonBar* GetAncestorRibbonBar()const;
// Finds the best width and height given the parent's width and height
virtual wxSize GetBestSizeForParentSize(const wxSize& WXUNUSED(parentSize)) const { return GetBestSize(); }

View File

@@ -148,6 +148,15 @@ public:
*/
bool Realise();
/**
Get the first ancestor which is a wxRibbonBar (or derived) or NULL
if not having such parent.
@since 2.9.4
*/
virtual wxRibbonBar* GetAncestorRibbonBar()const;
/**
Finds the best width and height given the parent's width and height.
Used to implement the wxRIBBON_PANEL_FLEXIBLE panel style.

View File

@@ -18,6 +18,7 @@
#if wxUSE_RIBBON
#include "wx/ribbon/control.h"
#include "wx/ribbon/bar.h"
#ifndef WX_PRECOMP
#endif
@@ -109,4 +110,16 @@ bool wxRibbonControl::Realize()
return true;
}
wxRibbonBar* wxRibbonControl::GetAncestorRibbonBar()const
{
for ( wxWindow* win = GetParent(); win; win = win->GetParent() )
{
wxRibbonBar* bar = wxDynamicCast(win, wxRibbonBar);
if ( bar )
return bar;
}
return NULL;
}
#endif // wxUSE_RIBBON