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
wxUSE_PRINTING_ARCHITECTURE=no
wxUSE_DRAG_AND_DROP=no
DEFAULT_wxUSE_TOOLTIPS=no
DEFAULT_wxUSE_DRAGIMAGE=no
fi

View 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

View 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}

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"
#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

View File

@@ -12,10 +12,12 @@
#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;