cocoa tooltips. Remove runtime warning from 10.2 (dave - I was too lazy to change this from my local copy, feel free to commit over this if you want)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Ryan Norton
2004-10-06 21:09:47 +00:00
parent 39d350d692
commit 2619179042
6 changed files with 70 additions and 6 deletions

1
configure vendored
View File

@@ -7012,7 +7012,6 @@ fi
if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
wxUSE_PRINTING_ARCHITECTURE=no wxUSE_PRINTING_ARCHITECTURE=no
wxUSE_DRAG_AND_DROP=no wxUSE_DRAG_AND_DROP=no
DEFAULT_wxUSE_TOOLTIPS=no
DEFAULT_wxUSE_DRAGIMAGE=no DEFAULT_wxUSE_DRAGIMAGE=no
fi fi

View File

@@ -1048,7 +1048,6 @@ fi
if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
wxUSE_PRINTING_ARCHITECTURE=no wxUSE_PRINTING_ARCHITECTURE=no
wxUSE_DRAG_AND_DROP=no wxUSE_DRAG_AND_DROP=no
DEFAULT_wxUSE_TOOLTIPS=no
DEFAULT_wxUSE_DRAGIMAGE=no DEFAULT_wxUSE_DRAGIMAGE=no
fi fi

View File

@@ -26,6 +26,8 @@ alter tooltips behaviour.
Enable or disable tooltips globally. Enable or disable tooltips globally.
May not be supported on all platforms (eg. wxCocoa).
\membersection{wxToolTip::SetDelay}\label{wxtooltipsetdelay} \membersection{wxToolTip::SetDelay}\label{wxtooltipsetdelay}
@@ -33,6 +35,7 @@ Enable or disable tooltips globally.
Set the delay after which the tooltip appears. Set the delay after which the tooltip appears.
May not be supported on all platforms (eg. wxCocoa).
\membersection{wxToolTip::wxToolTip}\label{wxtooltipwxtooltip} \membersection{wxToolTip::wxToolTip}\label{wxtooltipwxtooltip}

View File

@@ -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)
};

View File

@@ -13,6 +13,8 @@
#include "wx/gtk/tooltip.h" #include "wx/gtk/tooltip.h"
#elif defined(__WXMAC__) #elif defined(__WXMAC__)
#include "wx/mac/tooltip.h" #include "wx/mac/tooltip.h"
#elif defined(__WXCOCOA__)
#include "wx/cocoa/tooltip.h"
#elif defined(__WXPM__) #elif defined(__WXPM__)
#include "wx/os2/tooltip.h" #include "wx/os2/tooltip.h"
#endif #endif

View File

@@ -12,10 +12,12 @@
#include "wx/wxprec.h" #include "wx/wxprec.h"
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/log.h" #include "wx/log.h"
#include "wx/tooltip.h"
#include "wx/window.h" #include "wx/window.h"
#endif //WX_PRECOMP #endif //WX_PRECOMP
#include "wx/cocoa/autorelease.h" #include "wx/cocoa/autorelease.h"
#include "wx/cocoa/string.h"
#import <AppKit/NSView.h> #import <AppKit/NSView.h>
#import <AppKit/NSEvent.h> #import <AppKit/NSEvent.h>
@@ -23,6 +25,7 @@
#import <AppKit/NSColor.h> #import <AppKit/NSColor.h>
#import <AppKit/NSClipView.h> #import <AppKit/NSClipView.h>
#import <Foundation/NSException.h> #import <Foundation/NSException.h>
#import <Foundation/NSString.h>
#include <objc/objc-runtime.h> #include <objc/objc-runtime.h>
@@ -354,10 +357,9 @@ bool wxWindowCocoa::Cocoa_drawRect(const NSRect &rect)
int countRects = 1; int countRects = 1;
// Try replacing the larger rectangle with a list of smaller ones: // Try replacing the larger rectangle with a list of smaller ones:
NS_DURING NS_DURING
// This only works on Panther //getRectsBeingDrawn:count: is a optimization that is only available on
// [GetNSView() getRectsBeingDrawn:&rects count:&countRects]; //Panthar (10.3) and higher. Check to see if it supports it -
// This compiles everywhere (and still only works on Panther) if ( [GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)] ) objc_msgSend(GetNSView(),@selector(getRectsBeingDrawn:count:),&rects,&countRects);
objc_msgSend(GetNSView(),@selector(getRectsBeingDrawn:count:),&rects,&countRects);
NS_HANDLER NS_HANDLER
NS_ENDHANDLER NS_ENDHANDLER
m_updateRegion = wxRegion(rects,countRects); 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); 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) void wxWindowCocoa::DoMoveWindow(int x, int y, int width, int height)
{ {
wxAutoNSAutoreleasePool pool; wxAutoNSAutoreleasePool pool;