/*
** ObjectiveAmiga: Interface to class Responder
** See GNU:lib/libobjam/ReadMe for details
*/


#import <objc/Object.h>


@interface Responder: Object
{
  id nextResponder;
}

// Freeing an instance

- free;

// Setting the next responder

- setNextResponder:aResponder;
- nextResponder;

// Determining the first responder

- (BOOL)acceptsFirstResponder;
- becomeFirstResponder;
- resignFirstResponder;

// Aiding event processing

- performKeyEquivalent:(NXEvent *)theEvent;
- (BOOL)tryToPerform:(SEL)anAction with:anObject;

// Forwarding event messages

- mouseDown:(NXEvent *)theEvent;
- rightMouseDown:(NXEvent *)theEvent;
- mouseDragged:(NXEvent *)theEvent;
- rightMouseDragged:(NXEvent *)theEvent;
- mouseUp:(NXEvent *)theEvent;
- rightMouseUp:(NXEvent *)theEvent;
- mouseMoved:(NXEvent *)theEvent;
- mouseEntered:(NXEvent *)theEvent;
- mouseExited:(NXEvent *)theEvent;
- keyDown:(NXEvent *)theEvent;
- keyUp:(NXEvent *)theEvent;
- flagsChanged:(NXEvent *)theEvent;
- noResponderFor:(const char *)eventType;

// Services menu support

- validRequestorForSendType:(NXAtom)typeSent andReturnType:(NXAtom)typeReturned;

// Help menu support

- helpRequested:(NXEvent *)eventPtr;

// Archiving:

- read:(NXTypedStream *)stream;
- write:(NXTypedStream *)stream;

@end
