]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxRibbonControl::GetAncestorRibbonBar() helper.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 3 Jun 2012 19:17:03 +0000 (19:17 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 3 Jun 2012 19:17:03 +0000 (19:17 +0000)
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

include/wx/ribbon/control.h
interface/wx/ribbon/control.h
src/ribbon/control.cpp

index f0f3d1208972f639002700bd7f34ef47afa242a4..9fd1b92a1d6f353e5a3bd5eb9bf1e211f9233e47 100644 (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(); }
 
index 4a79b47354d736354a38f73e3e6e52ea66ae2ae3..88e0c85ee0d9523166c2b971dad4c4aeb4c2503a 100644 (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.
index d80449445e475324f2a7f75f83998cbf3b9bfa77..9867ecf7d28d18426b573edd759c333c9ea3b02a 100644 (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