1 /* xscreensaver, Copyright (c) 2006-2014 Jamie Zawinski <jwz@jwz.org>
3 * Permission to use, copy, modify, distribute, and sell this software and its
4 * documentation for any purpose is hereby granted without fee, provided that
5 * the above copyright notice appear in all copies and that both that
6 * copyright notice and this permission notice appear in supporting
7 * documentation. No representations are made about the suitability of this
8 * software for any purpose. It is provided "as is" without express or
13 # import <Foundation/Foundation.h>
14 # import <UIKit/UIKit.h>
15 # import <OpenGLES/EAGL.h>
16 # import <OpenGLES/ES1/gl.h>
17 # import <OpenGLES/ES1/glext.h>
18 # import <QuartzCore/QuartzCore.h>
19 # define NSView UIView
20 # define NSRect CGRect
21 # define NSSize CGSize
22 # define NSColor UIColor
23 # define NSImage UIImage
24 # define NSEvent UIEvent
25 # define NSWindow UIWindow
26 # define NSButton UIButton
27 # define NSApplication UIApplication
28 # define NSScreen UIScreen
30 # import <Cocoa/Cocoa.h>
31 # import <ScreenSaver/ScreenSaver.h>
34 @class ScreenSaverView;
36 @interface SaverRunner : NSObject
38 NSString *saverName; // the one currently loaded
39 NSArray *saverNames; // Names of available savers
40 NSString *saverDir; // Where we find saver bundles
44 NSBundle *saverBundle;
46 IBOutlet NSMenu *menubar;
51 UINavigationController *rotating_nav; // Hierarchy 1 (UI)
52 IBOutlet UIWindow *window;
53 IBOutlet UIView *view;
55 UINavigationController *nonrotating_nav; // Hierarchy 2 (savers)
56 UIWindow *saverWindow;
57 UIView *backgroundView;
58 ScreenSaverView *saverView;
60 EAGLContext *eagl_ctx;
61 GLuint gl_framebuffer, gl_renderbuffer;
62 UIImage *saved_screenshot;
69 - (void) loadSaver: (NSString *)name launch:(BOOL)launch;
70 - (void) loadSaver: (NSString *)name;
71 - (void) selectedSaverDidChange:(NSDictionary *)change;
72 - (void) aboutPanel: (id)sender;
75 - (void) openPreferences: (id)sender;
77 - (void) openPreferences: (NSString *)which;
78 - (UIImage *) screenshot;