mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-11 15:51:36 +00:00
f9d798c314
refresh won't be in the drawing buffer protocol, and the move commands need to be offset by the view's position in its window, but it works as intended.
74 lines
1.4 KiB
Objective-C
74 lines
1.4 KiB
Objective-C
#ifndef __qwaq_view_h
|
|
#define __qwaq_view_h
|
|
|
|
#include <Array.h>
|
|
#include <Object.h>
|
|
|
|
#include "qwaq-draw.h"
|
|
#include "qwaq-rect.h"
|
|
#include "qwaq-textcontext.h"
|
|
|
|
@class Group;
|
|
|
|
enum {
|
|
ofCanFocus =0x0001,
|
|
ofFirstClick =0x0002,
|
|
ofDontDraw =0x0004,
|
|
ofPreProcess =0x0008,
|
|
ofPostProcess =0x0010,
|
|
ofMakeFirst =0x0020,
|
|
ofTileable =0x0040,
|
|
ofCentered =0x0080,
|
|
|
|
ofCallHasObject =0x8000,
|
|
};
|
|
|
|
enum {
|
|
sfDrawn =0x0001,
|
|
sfDisabled =0x0002,
|
|
sfInFocus =0x0004,
|
|
sfModal =0x0008,
|
|
sfLocked =0x0010,
|
|
};
|
|
|
|
@interface View: Object
|
|
{
|
|
union {
|
|
Rect rect;
|
|
struct {
|
|
int xpos;
|
|
int ypos;
|
|
int xlen;
|
|
int ylen;
|
|
};
|
|
};
|
|
Rect absRect;
|
|
Point point; // can't be local :(
|
|
Group *owner;
|
|
TextContext *textContext;
|
|
int state;
|
|
int options;
|
|
int cursorState;
|
|
Point cursor;
|
|
}
|
|
-initWithRect: (Rect) rect;
|
|
- (void) dealloc;
|
|
-setOwner: (Group *) owner;
|
|
-(struct Rect_s *)getRect;
|
|
-draw;
|
|
-redraw;
|
|
|
|
- (void) refresh;
|
|
- (void) mvprintf: (Point) pos, string fmt, ...;
|
|
- (void) mvvprintf: (Point) pos, string fmt, @va_list args;
|
|
- (void) mvaddch: (Point) pos, int ch;
|
|
@end
|
|
|
|
//These are forwarded (FIXME make a protocol)
|
|
@interface View (TextContext)
|
|
- (void) printf: (string) fmt, ...;
|
|
- (void) vprintf: (string) fmt, @va_list args;
|
|
- (void) addch: (int) ch;
|
|
@end
|
|
|
|
#endif//__qwaq_view_h
|