#include "wx/dcclient.h"
#include "wx/nonownedwnd.h"
#include "wx/log.h"
+ #include "wx/textctrl.h"
#endif
#ifdef __WXMAC__
#include "wx/dnd.h"
#endif
+#if wxUSE_TOOLTIPS
+ #include "wx/tooltip.h"
+#endif
+
#include <objc/objc-runtime.h>
// Get the window with the focus
case NSScrollWheel :
{
+ float deltaX = 0.0;
+ float deltaY = 0.0;
+
wxevent.SetEventType( wxEVT_MOUSEWHEEL ) ;
+
+ // see http://developer.apple.com/qa/qa2005/qa1453.html
+ // for more details on why we have to look for the exact type
+
+ const EventRef cEvent = (EventRef) [nsEvent eventRef];
+ bool isMouseScrollEvent = false;
+ if ( cEvent )
+ isMouseScrollEvent = ::GetEventKind(cEvent) == kEventMouseScroll;
+
+ if ( isMouseScrollEvent )
+ {
+ deltaX = [nsEvent deviceDeltaX];
+ deltaY = [nsEvent deviceDeltaY];
+ }
+ else
+ {
+ deltaX = ([nsEvent deltaX] * 10);
+ deltaY = ([nsEvent deltaY] * 10);
+ }
+
wxevent.m_wheelDelta = 10;
wxevent.m_linesPerAction = 1;
-
- if ( fabs([nsEvent deviceDeltaX]) > fabs([nsEvent deviceDeltaY]) )
+
+ if ( fabs(deltaX) > fabs(deltaY) )
{
wxevent.m_wheelAxis = 1;
- wxevent.m_wheelRotation = (int)[nsEvent deviceDeltaX];
+ wxevent.m_wheelRotation = (int)deltaX;
}
else
{
- wxevent.m_wheelRotation = (int)[nsEvent deviceDeltaY];
+ wxevent.m_wheelRotation = (int)deltaY;
}
+
}
break ;
result = wxDragCopy;
else if ( sourceDragMask & NSDragOperationMove )
result = wxDragMove;
-
+
PasteboardRef pboardRef;
PasteboardCreate((CFStringRef)[pboard name], &pboardRef);
target->SetCurrentDragPasteboard(pboardRef);
{
}
+void wxWidgetCocoaImpl::controlTextDidChange()
+{
+ wxWindow* wxpeer = (wxWindow*)GetWXPeer();
+ if ( wxpeer )
+ {
+ wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, wxpeer->GetId());
+ event.SetEventObject( wxpeer );
+ event.SetString( static_cast<wxTextCtrl*>(wxpeer)->GetValue() );
+ wxpeer->HandleWindowEvent( event );
+ }
+}
+
//
#if OBJC_API_VERSION >= 2
[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;