// // EmulatorView.h // 2Term // // Created by Kelvin Sherlock on 7/3/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import #include "Emulator.h" #include "iGeometry.h" #ifdef __cplusplus #include "Screen.h" #include "ring_buffer.h" @class EmulatorView; class ViewScreen: public Screen { public: virtual void setSize(unsigned width, unsigned height); virtual void setCursorType(CursorType cursorType); void setSize(unsigned width, unsigned height, bool resizeView); void setView(EmulatorView *view) { _view = view; } void setFD(int fd) { _fd = fd; } private: EmulatorView *_view; int _fd; }; #endif @class CharacterGenerator; @interface EmulatorView : NSView { int _fd; NSObject *_emulator; CharacterGenerator *_charGen; NSColor *_backgroundColor; NSColor *_foregroundColor; NSColor *_boldColor; CGFloat _charHeight; CGFloat _charWidth; CGFloat _paddingTop; CGFloat _paddingBottom; CGFloat _paddingLeft; CGFloat _paddingRight; //NSImage *_cursorImg; NSTimer *_cursorTimer; BOOL _cursorOn; BOOL _scanLines; BOOL _inResizeTo; unsigned _cursorType; NSImage *_cursors[5]; #ifdef __cplusplus ring_buffer<1024> _debug_buffer; ViewScreen _screen; #endif std::vector _cursorStack; } @property (nonatomic, assign) BOOL scanLines; @property (atomic, assign) int fd; @property (nonatomic, assign) unsigned cursorType; @property (nonatomic, retain) NSColor *foregroundColor; @property (nonatomic, retain) NSColor *backgroundColor; @property (nonatomic, retain) NSObject *emulator; //@property (nonatomic, assign) iPoint cursor; -(void)invalidateIRect: (iRect)rect; //-(void)resizeTo: (iSize)size; -(void)resizeTo: (iSize)size animated: (BOOL)animated; -(void)autoTypeText: (NSString *)text; -(IBAction)paste: (id)sender; -(IBAction)copy: (id)sender; -(IBAction)copyDebugData:(id)sender; -(IBAction)clearDebugData:(id)sender; -(void)processData: (uint8_t *)data size: (size_t)size; -(void)childFinished: (int)status; -(void)childBegan; @end @interface EmulatorView (Cursor) -(void)stopCursorTimer; -(void)cursorTimer: (NSTimer *)timer; -(void)startCursorTimer; -(void)pushCursor: (unsigned)type; -(void)popCursor; @end