quakeforge/ruamoko/qwaq/ui/proxyview.r

49 lines
719 B
R

#include "ui/group.h"
#include "ui/proxyview.h"
@implementation ProxyView
- (void) forward: (SEL) sel : (@va_list) args
{
if (!view) {
return;
}
obj_msg_sendv (view, sel, args);
}
-initWithView:(View *) view
{
if (!(self = [super init])) {
return nil;
}
self.view = view;
return self;
}
-setOwner:(Group *)owner
{
self.owner = owner;
return [view setOwner:owner];
}
-setView:(View *) view
{
int state = [self.view state];
if (state & sfInFocus) {
[self.view loseFocus];
}
[self.view hide];
[self.view setContext:nil];
self.view = view;
[view setContext:[owner context]];
if (state & sfDrawn) {
[view draw];
}
if (state & sfInFocus) {
[view takeFocus];
}
return self;
}
@end