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
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
Enable or disable tooltips globally.
+May not be supported on all platforms (eg. wxCocoa).
+
\membersection{wxToolTip::SetDelay}\label{wxtooltipsetdelay}
Set the delay after which the tooltip appears.
+May not be supported on all platforms (eg. wxCocoa).
\membersection{wxToolTip::wxToolTip}\label{wxtooltipwxtooltip}
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// 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
#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
#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>
#import <AppKit/NSColor.h>
#import <AppKit/NSClipView.h>
#import <Foundation/NSException.h>
+#import <Foundation/NSString.h>
#include <objc/objc-runtime.h>
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);
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;