X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c3ead1d1513a5eb79091a604f4e42b45d1bdf5d..3187b15febc24307d97d8e8cb67bef5a3b61f7eb:/src/ribbon/control.cpp

diff --git a/src/ribbon/control.cpp b/src/ribbon/control.cpp
index a963a6c4c1..9867ecf7d2 100644
--- a/src/ribbon/control.cpp
+++ b/src/ribbon/control.cpp
@@ -8,16 +8,18 @@
 // Copyright:   (C) Peter Cawley
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
+
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
     #pragma hdrstop
 #endif
 
-#include "wx/ribbon/control.h"
-
 #if wxUSE_RIBBON
 
+#include "wx/ribbon/control.h"
+#include "wx/ribbon/bar.h"
+
 #ifndef WX_PRECOMP
 #endif
 
@@ -27,20 +29,22 @@
 
 IMPLEMENT_CLASS(wxRibbonControl, wxControl)
 
-wxRibbonControl::wxRibbonControl(wxWindow *parent, wxWindowID id,
+bool wxRibbonControl::Create(wxWindow *parent, wxWindowID id,
                     const wxPoint& pos,
                     const wxSize& size, long style,
                     const wxValidator& validator,
                     const wxString& name)
-    : wxControl(parent, id, pos, size, style, validator, name)
 {
-    m_art = NULL;
+    if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
+        return false;
 
     wxRibbonControl *ribbon_parent = wxDynamicCast(parent, wxRibbonControl);
     if(ribbon_parent)
     {
         m_art = ribbon_parent->GetArtProvider();
     }
+
+    return true;
 }
 
 void wxRibbonControl::SetArtProvider(wxRibbonArtProvider* art)
@@ -106,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