]> git.saurik.com Git - wxWidgets.git/commitdiff
cocoa tooltips. Remove runtime warning from 10.2 (dave - I was too lazy to change...
authorRyan Norton <wxprojects@comcast.net>
Wed, 6 Oct 2004 21:09:47 +0000 (21:09 +0000)
committerRyan Norton <wxprojects@comcast.net>
Wed, 6 Oct 2004 21:09:47 +0000 (21:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

configure
configure.in
docs/latex/wx/tooltip.tex
include/wx/cocoa/tooltip.h [new file with mode: 0644]
include/wx/tooltip.h
src/cocoa/window.mm

index b29fd156bd0da257bf0d214b2705b070da620ba3..e506c63584f023305f6f750c149480cef3b43743 100755 (executable)
--- a/configure
+++ b/configure
@@ -7012,7 +7012,6 @@ fi
 if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
   wxUSE_PRINTING_ARCHITECTURE=no
   wxUSE_DRAG_AND_DROP=no
-  DEFAULT_wxUSE_TOOLTIPS=no
   DEFAULT_wxUSE_DRAGIMAGE=no
 fi
 
index d1d6501d5e1aa789684d29d69b7b65049d1b3677..3e2a21546b8695fb7c9563d0042701412252d805 100644 (file)
@@ -1048,7 +1048,6 @@ fi
 if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
   wxUSE_PRINTING_ARCHITECTURE=no
   wxUSE_DRAG_AND_DROP=no
-  DEFAULT_wxUSE_TOOLTIPS=no
   DEFAULT_wxUSE_DRAGIMAGE=no
 fi
 
index 0430c381f7fb3956485f09f091924c47caba4cf7..14ee782ad5712acab7297c5c65cc29b12d88132e 100644 (file)
@@ -26,6 +26,8 @@ alter tooltips behaviour.
 
 Enable or disable tooltips globally.
 
+May not be supported on all platforms (eg. wxCocoa).
+
 
 \membersection{wxToolTip::SetDelay}\label{wxtooltipsetdelay}
 
@@ -33,6 +35,7 @@ Enable or disable tooltips globally.
 
 Set the delay after which the tooltip appears.
 
+May not be supported on all platforms (eg. wxCocoa).
 
 \membersection{wxToolTip::wxToolTip}\label{wxtooltipwxtooltip}
 
diff --git a/include/wx/cocoa/tooltip.h b/include/wx/cocoa/tooltip.h
new file mode 100644 (file)
index 0000000..4034453
--- /dev/null
@@ -0,0 +1,43 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        cocoa/tooltip.h
+// Purpose:     wxToolTip class - tooltip control
+// Author:      Ryan Norton
+// Modified by:
+// Created:     31.01.99
+// RCS-ID:      $Id$
+// Copyright:   (c) Ryan Norton
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#include "wx/object.h"
+
+class wxToolTip : public wxObject
+{
+public:
+    // ctor & dtor
+    wxToolTip(const wxString &tip) : m_text(tip), m_window(0) {}
+    virtual ~wxToolTip() {}
+
+    // accessors
+        // tip text
+    void SetTip(const wxString& tip)   { m_text = tip; }
+    const wxString& GetTip() const { return m_text; }
+
+        // the window we're associated with
+    wxWindow *GetWindow() const { return m_window; }
+
+    // controlling tooltip behaviour: globally change tooltip parameters
+        // enable or disable the tooltips globally
+    static void Enable(bool flag) {}
+        // set the delay after which the tooltip appears
+    static void SetDelay(long milliseconds) {}
+
+private:
+    void SetWindow(wxWindow* window) {m_window = window;}
+    friend class wxWindow;
+
+    wxString  m_text;           // tooltip text
+    wxWindow *m_window;         // window we're associated with
+    
+    DECLARE_ABSTRACT_CLASS(wxToolTip)
+};
\ No newline at end of file
index a378492a9a2c0a08708843f962467d6afece8e31..c20fc7b6d92bd58cca1bad3619f97637d680b45d 100644 (file)
@@ -13,6 +13,8 @@
 #include "wx/gtk/tooltip.h"
 #elif defined(__WXMAC__)
 #include "wx/mac/tooltip.h"
+#elif defined(__WXCOCOA__)
+#include "wx/cocoa/tooltip.h"
 #elif defined(__WXPM__)
 #include "wx/os2/tooltip.h"
 #endif
index a1e06db23ec42bbc25e7fda9514fbfe15cde62e4..f2b9e653415121df2373c305019f17d831f91d85 100644 (file)
 #include "wx/wxprec.h"
 #ifndef WX_PRECOMP
     #include "wx/log.h"
+    #include "wx/tooltip.h"
     #include "wx/window.h"
 #endif //WX_PRECOMP
 
 #include "wx/cocoa/autorelease.h"
+#include "wx/cocoa/string.h"
 
 #import <AppKit/NSView.h>
 #import <AppKit/NSEvent.h>
@@ -23,6 +25,7 @@
 #import <AppKit/NSColor.h>
 #import <AppKit/NSClipView.h>
 #import <Foundation/NSException.h>
+#import <Foundation/NSString.h>
 
 #include <objc/objc-runtime.h>
 
@@ -354,10 +357,9 @@ bool wxWindowCocoa::Cocoa_drawRect(const NSRect &rect)
     int countRects = 1;
     // Try replacing the larger rectangle with a list of smaller ones:
 NS_DURING
-    // This only works on Panther
-//    [GetNSView() getRectsBeingDrawn:&rects count:&countRects];
-    // This compiles everywhere (and still only works on Panther)
-    objc_msgSend(GetNSView(),@selector(getRectsBeingDrawn:count:),&rects,&countRects);
+    //getRectsBeingDrawn:count: is a optimization that is only available on
+    //Panthar (10.3) and higher.  Check to see if it supports it -
+    if ( [GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)] )    objc_msgSend(GetNSView(),@selector(getRectsBeingDrawn:count:),&rects,&countRects);
 NS_HANDLER
 NS_ENDHANDLER
     m_updateRegion = wxRegion(rects,countRects);
@@ -598,6 +600,22 @@ void wxWindowCocoa::DoSetSize(int x, int y, int width, int height, int sizeFlags
     DoMoveWindow(x,y,width,height);
 }
 
+//We should really get rid of wxToolTip :)
+IMPLEMENT_ABSTRACT_CLASS(wxToolTip, wxObject)
+
+void wxWindowCocoa::DoSetToolTip( wxToolTip *tip )
+{
+    wxWindowBase::DoSetToolTip(tip);
+
+    wxAutoNSAutoreleasePool pool;
+
+    if ( m_tooltip )
+    {
+        m_tooltip->SetWindow((wxWindow *)this);
+        [GetNSView() setToolTip:wxNSStringWithWxString(m_tooltip->GetTip())];
+    }
+}
+
 void wxWindowCocoa::DoMoveWindow(int x, int y, int width, int height)
 {
     wxAutoNSAutoreleasePool pool;