summaryrefslogtreecommitdiff
path: root/navit/graphics/cocoa/graphics_cocoa.m
diff options
context:
space:
mode:
Diffstat (limited to 'navit/graphics/cocoa/graphics_cocoa.m')
-rw-r--r--navit/graphics/cocoa/graphics_cocoa.m805
1 files changed, 0 insertions, 805 deletions
diff --git a/navit/graphics/cocoa/graphics_cocoa.m b/navit/graphics/cocoa/graphics_cocoa.m
deleted file mode 100644
index 16c879bd7..000000000
--- a/navit/graphics/cocoa/graphics_cocoa.m
+++ /dev/null
@@ -1,805 +0,0 @@
-#include <glib.h>
-#include "config.h"
-#include "config_.h"
-#include "debug.h"
-#include "plugin.h"
-#include "point.h"
-#include "window.h"
-#include "graphics.h"
-#include "event.h"
-#include "item.h"
-#include "callback.h"
-#include "color.h"
-#include <iconv.h>
-
-#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
-#define USE_UIKIT 1
-#else
-#define USE_UIKIT 0
-#endif
-
-#if USE_UIKIT
-#import <UIKit/UIKit.h>
-#define NSRect CGRect
-#define NSMakeRect CGRectMake
-#define REVERSE_Y 0
-
-CGContextRef
-current_context(void)
-{
- return UIGraphicsGetCurrentContext();
-}
-
-#else
-#import <Cocoa/Cocoa.h>
-#define UIView NSView
-#define UIViewController NSViewController
-#define UIApplicationDelegate NSApplicationDelegate
-#define UIWindow NSWindow
-#define UIApplication NSApplication
-#define UIApplicationMain(a,b,c,d) NSApplicationMain(a,b)
-#define UIScreen NSScreen
-#define UIEvent NSEvent
-#define applicationFrame frame
-#define REVERSE_Y 1
-
-CGContextRef
-current_context(void)
-{
- return [[NSGraphicsContext currentContext] graphicsPort];
-}
-
-#endif
-
-
-@interface NavitView : UIView {
-@public
- struct graphics_priv *graphics;
-}
-
-@end
-
-static struct graphics_priv {
- struct window win;
- NavitView *view;
- CGLayerRef layer;
- CGContextRef layer_context;
- struct callback_list *cbl;
- struct point p, pclean;
- int w, h, wraparound, overlay_disabled, cleanup;
- struct graphics_priv *parent, *next, *overlays;
-} *global_graphics_cocoa;
-
-iconv_t utf8_macosroman;
-
-struct graphics_gc_priv {
- CGFloat rgba[4];
- int w;
-};
-
-struct graphics_font_priv {
- int size;
- char *name;
-};
-
-
-
-@implementation NavitView
-
-- (void)drawRect:(NSRect)rect
-{
- struct graphics_priv *gr=NULL;
-#if 0
- NSLog(@"NavitView:drawRect...");
-#endif
-
- CGContextRef X = current_context();
-
- CGContextDrawLayerAtPoint(X, CGPointZero, graphics->layer);
- if (!graphics->overlay_disabled)
- gr=graphics->overlays;
- while (gr) {
- if (!gr->overlay_disabled) {
- struct CGPoint pc;
- pc.x=gr->p.x;
- pc.y=gr->p.y;
- if (gr->wraparound) {
- if (pc.x < 0)
- pc.x+=graphics->w;
- if (pc.y < 0)
- pc.y+=graphics->h;
- }
- #if REVERSE_Y
- pc.y=graphics->h-pc.y-gr->h;
- #endif
- dbg(1,"draw %dx%d at %f,%f\n",gr->w,gr->h,pc.x,pc.y);
- CGContextDrawLayerAtPoint(X, pc, gr->layer);
- }
- gr=gr->next;
- }
-}
-
-#if USE_UIKIT
-- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-{
- NSArray *arr=touches.allObjects;
- UITouch *touch=[arr objectAtIndex: 0];
- struct CGPoint pc=[touch locationInView: self];
- struct point p;
- p.x=pc.x;
- p.y=pc.y;
- dbg(1,"Enter count=%d %d %d\n",touches.count,p.x,p.y);
- callback_list_call_attr_3(graphics->cbl, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(1), (void *)&p);
-}
-
-
-- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
-{
- NSArray *arr=touches.allObjects;
- UITouch *touch=[arr objectAtIndex: 0];
- struct CGPoint pc=[touch locationInView: self];
- struct point p;
- p.x=pc.x;
- p.y=pc.y;
- dbg(1,"Enter count=%d %d %d\n",touches.count,p.x,p.y);
- callback_list_call_attr_3(graphics->cbl, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(1), (void *)&p);
-}
-
-- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
-{
- NSArray *arr=touches.allObjects;
- UITouch *touch=[arr objectAtIndex: 0];
- struct CGPoint pc=[touch locationInView: self];
- struct point p;
- p.x=pc.x;
- p.y=pc.y;
- dbg(1,"Enter count=%d %d %d\n",touches.count,p.x,p.y);
- callback_list_call_attr_3(graphics->cbl, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(1), (void *)&p);
-}
-
-- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
-{
- NSArray *arr=touches.allObjects;
- UITouch *touch=[arr objectAtIndex: 0];
- struct CGPoint pc=[touch locationInView: self];
- struct point p;
- p.x=pc.x;
- p.y=pc.y;
- dbg(1,"Enter count=%d %d %d\n",touches.count,p.x,p.y);
- callback_list_call_attr_1(graphics->cbl, attr_motion, (void *)&p);
-}
-
-#else
-- (void)mouseDown:(UIEvent *)theEvent
-{
- struct point p;
- p.x=theEvent.locationInWindow.x;
- p.y=graphics->h-theEvent.locationInWindow.y;
-
- dbg(1,"Enter %d %d\n",p.x,p.y);
- callback_list_call_attr_3(graphics->cbl, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(1), (void *)&p);
-}
-
-- (void)mouseUp:(UIEvent *)theEvent
-{
- struct point p;
- p.x=theEvent.locationInWindow.x;
- p.y=graphics->h-theEvent.locationInWindow.y;
-
- dbg(1,"Enter %d %d\n",p.x,p.y);
- callback_list_call_attr_3(graphics->cbl, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(1), (void *)&p);
-}
-
-- (void)mouseDragged:(UIEvent *)theEvent
-{
- struct point p;
- p.x=theEvent.locationInWindow.x;
- p.y=graphics->h-theEvent.locationInWindow.y;
-
- dbg(1,"Enter %d %d\n",p.x,p.y);
- callback_list_call_attr_1(graphics->cbl, attr_motion, (void *)&p);
-}
-#endif
-
-- (void)dealloc {
- [super dealloc];
-}
-
-
-@end
-
-@interface NavitViewController : UIViewController
-{
- NSRect frame;
- CGLayerRef layer;
-}
-
-@property (nonatomic) NSRect frame;
-
-- (id) init_withFrame : (NSRect) _frame;
-
-@end
-
-
-
-@implementation NavitViewController
-
-@synthesize frame;
-
-- (id) init_withFrame : (NSRect) _frame
-{
- NSLog(@"init with frame\n");
- frame = _frame;
- return [self init];
-}
-
-static
-void free_graphics(struct graphics_priv *gr)
-{
- if (gr->layer) {
- CGLayerRelease(gr->layer);
- gr->layer=NULL;
- }
-}
-
-static void
-setup_graphics(struct graphics_priv *gr)
-{
- CGRect lr=CGRectMake(0, 0, gr->w, gr->h);
- gr->layer=CGLayerCreateWithContext(current_context(), lr.size, NULL);
- gr->layer_context=CGLayerGetContext(gr->layer);
-#if REVERSE_Y
- CGContextScaleCTM(gr->layer_context, 1, -1);
- CGContextTranslateCTM(gr->layer_context, 0, -gr->h);
-#endif
- CGContextSetRGBFillColor(gr->layer_context, 0, 0, 0, 0);
- CGContextSetRGBStrokeColor(gr->layer_context, 0, 0, 0, 0);
- CGContextClearRect(gr->layer_context, lr);
-}
-
-
-
-- (void)loadView
-{
- NSLog(@"loadView");
- NavitView* myV = [NavitView alloc];
-
- if (global_graphics_cocoa) {
- global_graphics_cocoa->view=myV;
- myV->graphics=global_graphics_cocoa;
- global_graphics_cocoa->w=frame.size.width;
- global_graphics_cocoa->h=frame.size.height;
- setup_graphics(global_graphics_cocoa);
- }
-
- [myV initWithFrame: frame];
-
- [self setView: myV];
-
- [myV release];
-}
-
-- (void)didReceiveMemoryWarning {
- dbg(0,"enter\n");
-}
-
-- (void)viewDidUnload {
- // Release any retained subviews of the main view.
- // e.g. self.myOutlet = nil;
-}
-
-
-- (void)dealloc {
- [super dealloc];
-}
-
-@end
-
-@class NavitViewController;
-
-@interface NavitAppDelegate : NSObject <UIApplicationDelegate> {
- UIWindow *window;
- NavitViewController *viewController;
-}
-
-@property (nonatomic, retain) /*IBOutlet*/ UIWindow *window;
-@property (nonatomic, retain) /*IBOutlet*/ NavitViewController *viewController;
-
-@end
-
-
-@implementation NavitAppDelegate
-
-@synthesize window;
-@synthesize viewController;
-
-
-#if USE_UIKIT
-- (BOOL)application:(UIApplication *)application
-didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-#else
-- (void)
-applicationDidFinishLaunching:(NSNotification *)aNotification
-#endif
-{
- NSLog(@"DidFinishLaunching\n");
-#if USE_UIKIT
- [[UIApplication sharedApplication] setStatusBarHidden:NO];
-#endif
-
- NSRect appFrame = [UIScreen mainScreen].applicationFrame;
-
- self.viewController = [[[NavitViewController alloc] init_withFrame : appFrame] autorelease];
-
- NSRect windowRect = NSMakeRect(0, 0, appFrame.size.width, appFrame.size.height);
-
-#if USE_UIKIT
- self.window = [[[UIWindow alloc] initWithFrame:windowRect] autorelease];
-#else
- self.window = [[[UIWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO] autorelease];
-#endif
- utf8_macosroman=iconv_open("MACROMAN","UTF-8");
-
-#if USE_UIKIT
- [window addSubview:viewController.view];
- [window makeKeyAndVisible];
-#else
- NSWindowController * controller = [[NSWindowController alloc] initWithWindow : window];
- NSLog(@"Setting view\n");
- [viewController loadView];
- [window setContentView : viewController.view];
- [controller setWindow : window];
- [controller showWindow : nil];
-
-#endif
-
- if (global_graphics_cocoa) {
- callback_list_call_attr_2(global_graphics_cocoa->cbl, attr_resize, (int)appFrame.size.width, (int)appFrame.size.height);
-
- }
-
-#if USE_UIKIT
- return YES;
-#endif
-}
-
-
-- (void)dealloc {
- [viewController release];
- [window release];
- [super dealloc];
-}
-
-
-@end
-
-
-static void
-draw_mode(struct graphics_priv *gr, enum draw_mode_num mode)
-{
- if (mode == draw_mode_end) {
- dbg(1,"end %p\n",gr);
- if (!gr->parent) {
-#if USE_UIKIT
- [gr->view setNeedsDisplay];
-#else
- [gr->view display];
-#endif
- }
- }
-}
-
-static void
-draw_lines(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int count)
-{
- CGPoint points[count];
- int i;
- for (i = 0 ; i < count ; i++) {
- points[i].x=p[i].x;
- points[i].y=p[i].y;
- }
- CGContextSetStrokeColor(gr->layer_context, gc->rgba);
- CGContextSetLineWidth(gr->layer_context, gc->w);
- CGContextSetLineCap(gr->layer_context, kCGLineCapRound);
- CGContextBeginPath(gr->layer_context);
- CGContextAddLines(gr->layer_context, points, count);
- CGContextStrokePath(gr->layer_context);
-
-}
-
-static void
-draw_polygon(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int count)
-{
- CGPoint points[count];
- int i;
- for (i = 0 ; i < count ; i++) {
- points[i].x=p[i].x;
- points[i].y=p[i].y;
- }
- CGContextSetFillColor(gr->layer_context, gc->rgba);
- CGContextBeginPath(gr->layer_context);
- CGContextAddLines(gr->layer_context, points, count);
- CGContextFillPath(gr->layer_context);
-}
-
-static void
-draw_rectangle(struct graphics_priv *gr, struct graphics_gc_priv *gc, struct point *p, int w, int h)
-{
- CGRect lr=CGRectMake(p->x, p->y, w, h);
- if (p->x <= 0 && p->y <= 0 && p->x+w+1 >= gr->w && p->y+h+1 >= gr->h) {
- dbg(1,"clear %p %dx%d\n",gr,w,h);
- free_graphics(gr);
- setup_graphics(gr);
- }
- CGContextSetFillColor(gr->layer_context, gc->rgba);
- CGContextFillRect(gr->layer_context, lr);
-}
-
-static void
-draw_text(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct graphics_gc_priv *bg, struct graphics_font_priv *font, char *text, struct point *p, int dx, int dy)
-{
- size_t len,inlen=strlen(text)+1,outlen=strlen(text)+1;
- char outb[outlen];
- char *inp=text,*outp=outb;
-
- len=iconv (utf8_macosroman, &inp, &inlen, &outp, &outlen);
-
- CGContextSetFillColor(gr->layer_context, fg->rgba);
-
- CGContextSelectFont(gr->layer_context, font->name, font->size/16.0, kCGEncodingMacRoman);
- CGContextSetTextDrawingMode(gr->layer_context, kCGTextFill);
- CGAffineTransform xform = CGAffineTransformMake(dx/65536.0, dy/65536.0, dy/65536.0, -dx/65536.0, 0.0f, 0.0f);
- CGContextSetTextMatrix(gr->layer_context, xform);
- CGContextShowTextAtPoint(gr->layer_context, p->x, p->y, outb, strlen(outb));
-}
-
-static void
-draw_image(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct point *p, struct graphics_image_priv *img)
-{
- CGImageRef imgc=(CGImageRef) img;
- int w=CGImageGetWidth(imgc);
- int h=CGImageGetHeight(imgc);
- CGRect rect=CGRectMake(0, 0, w, h);
- CGContextSaveGState(gr->layer_context);
- CGContextTranslateCTM(gr->layer_context, p->x, p->y+h);
- CGContextScaleCTM(gr->layer_context, 1.0, -1.0);
- CGContextDrawImage(gr->layer_context, rect, imgc);
- CGContextRestoreGState(gr->layer_context);
-}
-
-static void font_destroy(struct graphics_font_priv *font)
-{
- g_free(font);
-}
-
-static struct graphics_font_methods font_methods = {
- font_destroy
-};
-
-static void
-draw_drag(struct graphics_priv *gr, struct point *p)
-{
- if (!gr->cleanup) {
- gr->pclean=gr->p;
- gr->cleanup=1;
- }
- if (p)
- gr->p=*p;
- else {
- gr->p.x=0;
- gr->p.y=0;
- }
-}
-
-static struct graphics_font_priv *font_new(struct graphics_priv *gr, struct graphics_font_methods *meth, char *font, int size, int flags)
-{
- struct graphics_font_priv *ret=g_new0(struct graphics_font_priv, 1);
- *meth=font_methods;
-
- ret->size=size;
- ret->name="Helvetica";
- return ret;
-}
-
-static void
-gc_destroy(struct graphics_gc_priv *gc)
-{
- g_free(gc);
-}
-
-static void
-gc_set_linewidth(struct graphics_gc_priv *gc, int w)
-{
- gc->w=w;
-}
-
-static void
-gc_set_dashes(struct graphics_gc_priv *gc, int w, int offset, unsigned char *dash_list, int n)
-{
-}
-
-static void
-gc_set_foreground(struct graphics_gc_priv *gc, struct color *c)
-{
- gc->rgba[0]=c->r/65535.0;
- gc->rgba[1]=c->g/65535.0;
- gc->rgba[2]=c->b/65535.0;
- gc->rgba[3]=c->a/65535.0;
-}
-
-static void
-gc_set_background(struct graphics_gc_priv *gc, struct color *c)
-{
-}
-
-static struct graphics_gc_methods gc_methods = {
- gc_destroy,
- gc_set_linewidth,
- gc_set_dashes,
- gc_set_foreground,
- gc_set_background,
-};
-
-static struct graphics_gc_priv *gc_new(struct graphics_priv *gr, struct graphics_gc_methods *meth)
-{
- struct graphics_gc_priv *gc=g_new(struct graphics_gc_priv, 1);
- gc->w=1;
-
- *meth=gc_methods;
- return gc;
-}
-
-
-static void
-background_gc(struct graphics_priv *gr, struct graphics_gc_priv *gc)
-{
-}
-
-static struct graphics_priv *
-overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct point *p, int w, int h, int wraparound);
-
-
-static struct graphics_image_priv *
-image_new(struct graphics_priv *gra, struct graphics_image_methods *meth, char *path, int *w, int *h, struct point *hot, int rotation)
-{
- NSString *s=[[NSString alloc]initWithCString:path encoding:NSMacOSRomanStringEncoding];
- CGDataProviderRef imgDataProvider = CGDataProviderCreateWithCFData((CFDataRef)[NSData dataWithContentsOfFile:s]);
- [s release];
-
- if (!imgDataProvider)
- return NULL;
-
- CGImageRef image = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);
- CGDataProviderRelease(imgDataProvider);
- dbg(1,"size %dx%d\n",CGImageGetWidth(image),CGImageGetHeight(image));
- if (w)
- *w=CGImageGetWidth(image);
- if (h)
- *h=CGImageGetHeight(image);
- if (hot) {
- hot->x=CGImageGetWidth(image)/2;
- hot->y=CGImageGetHeight(image)/2;
- }
- return (struct graphics_image_priv *)image;
-}
-
-static void *
-get_data(struct graphics_priv *this, const char *type)
-{
- dbg(0,"enter\n");
- if (strcmp(type,"window"))
- return NULL;
- return &this->win;
-}
-
-static void
-image_free(struct graphics_priv *gr, struct graphics_image_priv *priv)
-{
- CGImageRelease((CGImageRef)priv);
-}
-
-static void
-get_text_bbox(struct graphics_priv *gr, struct graphics_font_priv *font, char *text, int dx, int dy, struct point *ret, int estimate)
-{
- int len = g_utf8_strlen(text, -1);
- int xMin = 0;
- int yMin = 0;
- int yMax = 13*font->size/256;
- int xMax = 9*font->size*len/256;
-
- ret[0].x = xMin;
- ret[0].y = -yMin;
- ret[1].x = xMin;
- ret[1].y = -yMax;
- ret[2].x = xMax;
- ret[2].y = -yMax;
- ret[3].x = xMax;
- ret[3].y = -yMin;
-}
-
-static void
-overlay_disable(struct graphics_priv *gr, int disabled)
-{
- gr->overlay_disabled=disabled;
-}
-
-static struct graphics_methods graphics_methods = {
- NULL, /* graphics_destroy, */
- draw_mode,
- draw_lines,
- draw_polygon,
- draw_rectangle,
- NULL, /* draw_circle, */
- draw_text,
- draw_image,
- NULL, /* draw_image_warp, */
- draw_drag,
- font_new,
- gc_new,
- background_gc,
- overlay_new,
- image_new,
- get_data,
- image_free,
- get_text_bbox,
- overlay_disable,
- NULL, /* overlay_resize, */
- NULL, /* set_attr, */
-};
-
-
-static struct graphics_priv *
-overlay_new(struct graphics_priv *gr, struct graphics_methods *meth, struct point *p, int w, int h, int wraparound)
-{
- struct graphics_priv *ret=g_new0(struct graphics_priv, 1);
- *meth=graphics_methods;
- ret->p=*p;
- ret->w=w;
- ret->h=h;
- ret->parent=gr;
- ret->next=gr->overlays;
- ret->wraparound=wraparound;
- gr->overlays=ret;
- setup_graphics(gr);
- return ret;
-}
-
-
-struct graphics_priv *
-graphics_cocoa_new(struct navit *nav, struct graphics_methods *meth, struct attr **attrs, struct callback_list *cbl)
-{
- struct graphics_priv *ret;
- *meth=graphics_methods;
- dbg(0,"enter\n");
- if(!event_request_system("cocoa","graphics_cocoa"))
- return NULL;
- ret=g_new0(struct graphics_priv, 1);
- ret->cbl=cbl;
- global_graphics_cocoa=ret;
- return ret;
-}
-
-static void
-event_cocoa_main_loop_run(void)
-{
-
- dbg(0,"enter\n");
-#if 0
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
- freopen("/tmp/log.txt","a+",stderr);
- NSLog(@"Test\n");
-#endif
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-#if USE_UIKIT
- dbg(0,"calling main\n");
- int retval = UIApplicationMain(main_argc, main_argv, nil, @"NavitAppDelegate");
- dbg(0,"retval=%d\n",retval);
-#else
- NavitAppDelegate * delegate = [[NavitAppDelegate alloc] init];
- NSApplication * application = [NSApplication sharedApplication];
- [application setDelegate:delegate];
- NSLog(@"Test\n");
-
- [NSApp run];
-
- [delegate release];
-#endif
- [pool release];
-}
-
-@interface NavitTimer : NSObject{
-@public
- struct callback *cb;
- NSTimer *timer;
-}
-- (void)onTimer:(NSTimer*)theTimer;
-
-@end
-
-@implementation NavitTimer
-
-- (void)onTimer:(NSTimer*)theTimer
-{
- callback_call_0(cb);
-}
-
-
-@end
-
-struct event_idle {
- struct callback *cb;
- NSTimer *timer;
-};
-
-static struct event_timeout *
-event_cocoa_add_timeout(int timeout, int multi, struct callback *cb)
-{
- NavitTimer *ret=[[NavitTimer alloc]init];
- ret->cb=cb;
- ret->timer=[NSTimer scheduledTimerWithTimeInterval:(timeout/1000.0) target:ret selector:@selector(onTimer:) userInfo:nil repeats:multi?YES:NO];
- dbg(1,"timer=%p\n",ret->timer);
- return (struct event_timeout *)ret;
-}
-
-
-static void
-event_cocoa_remove_timeout(struct event_timeout *ev)
-{
- NavitTimer *t=(NavitTimer *)ev;
-
- [t->timer invalidate];
- [t release];
-}
-
-
-static struct event_idle *
-event_cocoa_add_idle(int priority, struct callback *cb)
-{
- NavitTimer *ret=[[NavitTimer alloc]init];
- ret->cb=cb;
- ret->timer=[NSTimer scheduledTimerWithTimeInterval:(0.0) target:ret selector:@selector(onTimer:) userInfo:nil repeats:YES];
-
- dbg(1,"timer=%p\n",ret->timer);
- return (struct event_idle *)ret;
-}
-
-static void
-event_cocoa_remove_idle(struct event_idle *ev)
-{
- NavitTimer *t=(NavitTimer *)ev;
-
- [t->timer invalidate];
- [t release];
-}
-
-static struct event_methods event_cocoa_methods = {
- event_cocoa_main_loop_run,
- NULL, /* event_cocoa_main_loop_quit, */
- NULL, /* event_cocoa_add_watch, */
- NULL, /* event_cocoa_remove_watch, */
- event_cocoa_add_timeout,
- event_cocoa_remove_timeout,
- event_cocoa_add_idle,
- event_cocoa_remove_idle,
- NULL, /* event_cocoa_call_callback, */
-};
-
-
-static struct event_priv *
-event_cocoa_new(struct event_methods *meth)
-{
- dbg(0,"enter\n");
- *meth=event_cocoa_methods;
- return NULL;
-}
-
-
-void
-plugin_init(void)
-{
- dbg(0,"enter\n");
- plugin_register_category_graphics("cocoa", graphics_cocoa_new);
- plugin_register_category_event("cocoa", event_cocoa_new);
-}