]> git.saurik.com Git - wxWidgets.git/commitdiff
Basic support for tooltips under OS X Cocoa.
authorKevin Ollivier <kevino@theolliviers.com>
Sat, 13 Feb 2010 06:30:06 +0000 (06:30 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Sat, 13 Feb 2010 06:30:06 +0000 (06:30 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/osx/cocoa/private.h
include/wx/osx/core/private.h
src/osx/cocoa/tooltip.mm
src/osx/cocoa/window.mm
src/osx/window_osx.cpp

index 709a39dbbef0b27f23a1a5f2f7383fa2a34f164a..dd52324ea91d34e7946108e1e9965207b972f1fa 100644 (file)
@@ -145,6 +145,7 @@ public :
     void                SetScrollThumb( wxInt32 value, wxInt32 thumbSize );
 
     void                SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true );
+    void                SetToolTip( wxToolTip* tooltip );
 
     void                InstallEventHandler( WXWidget control = NULL );
 
index 79b652409832f5b4a223f7502ce5ec956aea3ad8..49b2f13417acdd5a058866b32b0c4dce06d1010f 100644 (file)
@@ -268,6 +268,8 @@ public :
     virtual void        SetScrollThumb( wxInt32 value, wxInt32 thumbSize ) = 0;
 
     virtual void        SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ) = 0;
+    
+    virtual void        SetToolTip(wxToolTip* WXUNUSED(tooltip)) { }
 
     // is the clicked event sent AFTER the state already changed, so no additional
     // state changing logic is required from the outside
index 16ecda0f5b16108c72df1fdad8bd32498a19e268..d0b73a59ce2815cfcfc11a13f046259751a7504f 100644 (file)
@@ -47,6 +47,8 @@ wxToolTip::~wxToolTip()
 void wxToolTip::SetTip( const wxString &tip )
 {
     m_text = tip;
+    if (m_window)
+        m_window->SetToolTip(this);
 }
 
 void wxToolTip::SetWindow( wxWindow *win )
index 8ab72ea34248d46f850e13b66865573ce4a48db7..a2aea90d23c464a829abe7167a13cd2301428b27 100644 (file)
     #include "wx/dnd.h"
 #endif
 
+#if wxUSE_TOOLTIPS
+    #include "wx/tooltip.h"
+#endif
+
 #include <objc/objc-runtime.h>
 
 // Get the window with the focus
@@ -1890,6 +1894,18 @@ void wxWidgetCocoaImpl::SetFont(wxFont const& font, wxColour const&, long, bool)
         [m_osxView setFont: font.OSXGetNSFont()];
 }
 
+void wxWidgetCocoaImpl::SetToolTip(wxToolTip* tooltip)
+{
+    if (tooltip)
+    {
+        wxCFStringRef cf( tooltip->GetTip() , m_wxPeer->GetFont().GetEncoding() );
+        [m_osxView setToolTip: cf.AsNSString()];
+    }
+    else 
+        [m_osxView setToolTip: nil];
+
+}
+
 void wxWidgetCocoaImpl::InstallEventHandler( WXWidget control )
 {
     WXWidget c =  control ? control : (WXWidget) m_osxView;
index 041c9d952e9bd77f99d817e4aa1501746f859d6c..b091cbcab5b459db8f0873d2b0c5d61d7f48e3de 100644 (file)
@@ -752,6 +752,9 @@ void wxWindowMac::DoSetToolTip(wxToolTip *tooltip)
 
     if ( m_tooltip )
         m_tooltip->SetWindow(this);
+        
+    if (m_peer)
+        m_peer->SetToolTip(tooltip);
 }
 
 #endif