]> git.saurik.com Git - wxWidgets.git/commitdiff
reflect correct position for native toolbar, fixes #14049
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 9 Mar 2012 12:49:59 +0000 (12:49 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 9 Mar 2012 12:49:59 +0000 (12:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/osx/toolbar.h
src/osx/cocoa/toolbar.mm

index f8d789ec3551e9bc2410dd2c642d82e6b20fcf3b..5e20bc6768f0feda2a6485cfb470507b9da65f8e 100644 (file)
@@ -86,8 +86,11 @@ protected:
     void DoSetSize(int x, int y, int width, int height, int sizeFlags);
 
 #ifndef __WXOSX_IPHONE__
     void DoSetSize(int x, int y, int width, int height, int sizeFlags);
 
 #ifndef __WXOSX_IPHONE__
-   virtual void DoGetSize(int *width, int *height) const;
+    virtual void DoGetSize(int *width, int *height) const;
     virtual wxSize DoGetBestSize() const;
     virtual wxSize DoGetBestSize() const;
+#endif
+#ifdef __WXOSX_COCOA__
+    virtual void DoGetPosition(int*x, int *y) const;
 #endif
     virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
     virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
 #endif
     virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
     virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
index d5d0256f458bfa6335d0a929a589f261ae41e2f0..20ad47d304892ff5e1b3f045a678b5ad531e5256 100644 (file)
@@ -761,6 +761,41 @@ void wxToolBar::DoGetSize( int *width, int *height ) const
 #endif
 }
 
 #endif
 }
 
+void wxToolBar::DoGetPosition(int*x, int *y) const
+{
+#if wxOSX_USE_NATIVE_TOOLBAR
+    bool    ownToolbarInstalled;
+    
+    MacTopLevelHasNativeToolbar( &ownToolbarInstalled );
+    if ( ownToolbarInstalled )
+    {
+        WXWindow tlw = MacGetTopLevelWindowRef();
+        float toolbarHeight = 0.0;
+        NSRect windowFrame = NSMakeRect(0, 0, 0, 0);
+        
+        if(m_macToolbar && [(NSToolbar*)m_macToolbar isVisible])
+        {
+            windowFrame = [NSWindow contentRectForFrameRect:[tlw frame]
+                                                  styleMask:[tlw styleMask]];
+            toolbarHeight = NSHeight(windowFrame)
+            - NSHeight([[tlw contentView] frame]);
+        }
+        
+        // it is extending to the north of the content area
+        
+        if ( x != NULL )
+            *x = 0;
+        if ( y != NULL )
+            *y = -toolbarHeight;
+    }
+    else
+        wxToolBarBase::DoGetPosition( x, y );
+    
+#else
+    wxToolBarBase::DoGetPosition( x, y );
+#endif
+}
+
 wxSize wxToolBar::DoGetBestSize() const
 {
     // was updated in Realize()
 wxSize wxToolBar::DoGetBestSize() const
 {
     // was updated in Realize()