quakeforge/ruamoko/qwaq/qwaq-view.h
Bill Currie f9d798c314 [qwaq] Use forwarding for some text methods
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.
2020-03-10 02:58:30 +09:00

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