Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #pragma once
00025
00026 #include "cinder/Cinder.h"
00027 #include "cinder/app/App.h"
00028
00029 #import <AppKit/NSView.h>
00030 #import <Foundation/Foundation.h>
00031 #import <AppKit/NSTouch.h>
00032 #include "cinder/app/TouchEvent.h"
00033
00034 #include <map>
00035
00036 @protocol CinderViewDelegate
00037 @required
00038 - (void)resize;
00039 - (void)draw;
00040 - (void)mouseDown:(cinder::app::MouseEvent*)event;
00041 - (void)mouseDrag:(cinder::app::MouseEvent*)event;
00042 - (void)mouseUp:(cinder::app::MouseEvent*)event;
00043 - (void)mouseMove:(cinder::app::MouseEvent*)event;
00044 - (void)mouseWheel:(cinder::app::MouseEvent*)event;
00045 - (void)keyDown:(cinder::app::KeyEvent*)event;
00046 - (void)keyUp:(cinder::app::KeyEvent*)event;
00047 - (void)touchesBegan:(cinder::app::TouchEvent*)event;
00048 - (void)touchesMoved:(cinder::app::TouchEvent*)event;
00049 - (void)touchesEnded:(cinder::app::TouchEvent*)event;
00050 - (void)fileDrop:(cinder::app::FileDropEvent*)event;
00051 - (cinder::app::WindowRef)getWindowRef;
00052 @end
00053
00054 @interface CinderView : NSView {
00055 @private
00056 cinder::app::App *mApp;
00057 BOOL mFullScreen;
00058 BOOL mFullScreenModeKiosk;
00059 BOOL mReadyToDraw;
00060 BOOL mReceivesEvents;
00061 cinder::app::RendererRef mRenderer;
00062
00063 float mContentScaleFactor;
00064
00065 NSMutableDictionary *mTouchIdMap;
00066 std::map<uint32_t,cinder::Vec2f> mTouchPrevPointMap;
00067 std::vector<cinder::app::TouchEvent::Touch> mActiveTouches;
00068 id<CinderViewDelegate> mDelegate;
00069 }
00070
00071 @property (readwrite) BOOL readyToDraw;
00072 @property (readwrite) BOOL receivesEvents;
00073
00074 - (id)initWithFrame:(NSRect)frame app:(cinder::app::App*)aApp renderer:(cinder::app::RendererRef)aRenderer sharedRenderer:(cinder::app::RendererRef)sharedRenderer;
00075 - (void)setupRendererWithFrame:(NSRect)frame renderer:(cinder::app::RendererRef)renderer sharedRenderer:(cinder::app::RendererRef)sharedRenderer;
00076 - (void)setDelegate:(id<CinderViewDelegate>)delegate;
00077
00078 - (BOOL)isFullScreen;
00079 - (void)setFullScreen:(BOOL)fullScreen options:(const cinder::app::FullScreenOptions *)options;
00080
00081 - (void)draw;
00082 - (void)makeCurrentContext;
00083
00084
00085 - (void)setApp:(cinder::app::App *)aApp;
00086
00087 - (void)applicationWillResignActive:(NSNotification *)aNotification;
00088
00089 - (cinder::app::RendererRef)getRenderer;
00090
00091 - (uint32_t)addTouchToMap:(NSTouch *)touch withPoint:(cinder::Vec2f)point;
00092 - (void)removeTouchFromMap:(NSTouch *)touch;
00093 - (std::pair<uint32_t,cinder::Vec2f>)updateTouch:(NSTouch *)touch withPoint:(cinder::Vec2f)point;
00094 - (void)updateActiveTouches:(NSEvent *)event;
00095 - (const std::vector<cinder::app::TouchEvent::Touch>&)getActiveTouches;
00096
00097 - (float)contentScaleFactor;
00098
00099
00100 @end