1///////////////////////////////////////////////////////////////////////////// 2// Name: cocoa/NSScroller.mm 3// Purpose: wxCocoaNSScroller 4// Author: David Elliott 5// Modified by: 6// Created: 2004/04/27 7// RCS-ID: $Id: NSScroller.mm 48107 2007-08-15 16:12:45Z DE $ 8// Copyright: (c) 2004 David Elliott 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#include "wx/wxprec.h" 13#ifndef WX_PRECOMP 14 #include "wx/log.h" 15#endif // WX_PRECOMP 16 17#include "wx/cocoa/objc/objc_uniquifying.h" 18 19#include "wx/cocoa/NSScroller.h" 20#import <AppKit/NSScroller.h> 21 22WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSScroller) 23 24// ============================================================================ 25// @class wxNSScrollerTarget 26// ============================================================================ 27@interface wxNSScrollerTarget : NSObject 28{ 29} 30 31- (void)wxNSScrollerAction: (id)sender; 32@end // wxNSScrollerTarget 33WX_DECLARE_GET_OBJC_CLASS(wxNSScrollerTarget,NSObject) 34 35@implementation wxNSScrollerTarget : NSObject 36- (void)wxNSScrollerAction: (id)sender 37{ 38 wxCocoaNSScroller *scroller = wxCocoaNSScroller::GetFromCocoa(sender); 39 wxCHECK_RET(scroller,wxT("wxNSScrollerAction received without associated wx object")); 40 scroller->Cocoa_wxNSScrollerAction(); 41} 42 43@end // implementation wxNSScrollerTarget 44WX_IMPLEMENT_GET_OBJC_CLASS(wxNSScrollerTarget,NSObject) 45 46// ============================================================================ 47// class wxCocoaNSScroller 48// ============================================================================ 49const wxObjcAutoRefFromAlloc<struct objc_object*> wxCocoaNSScroller::sm_cocoaTarget = [[WX_GET_OBJC_CLASS(wxNSScrollerTarget) alloc] init]; 50 51void wxCocoaNSScroller::AssociateNSScroller(WX_NSScroller cocoaNSScroller) 52{ 53 if(cocoaNSScroller) 54 { 55 sm_cocoaHash.insert(wxCocoaNSScrollerHash::value_type(cocoaNSScroller,this)); 56 [cocoaNSScroller setTarget: sm_cocoaTarget]; 57 [cocoaNSScroller setAction: @selector(wxNSScrollerAction:)]; 58 } 59} 60 61