libs-gui/Headers/AppKit/NSEvent.h
Adrian Robert 1345d7506d filled in various gsdoc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@21287 72102866-910b-0410-8b05-ffd578937521
2005-06-06 04:05:05 +00:00

369 lines
9.9 KiB
Objective-C

/*
NSEvent.h
The event class
Copyright (C) 1996,1999 Free Software Foundation, Inc.
Author: Scott Christley <scottc@net-community.com>
Date: 1996
This file is part of the GNUstep GUI Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef _GNUstep_H_NSEvent
#define _GNUstep_H_NSEvent
#include <Foundation/NSCoder.h>
#include <Foundation/NSGeometry.h>
#include <Foundation/NSDate.h>
@class NSString;
@class NSWindow;
@class NSGraphicsContext;
/**
* Enumeration of event types recognized within GNUstep GUI. Each type has a
* corresponding mask that can be used when filtering for multiple types. For
* example, the <code>NSLeftMouseDown</code> type has
* <code>NSLeftMouseDownMask</code> for its mask. The special mask
* <code>NSAnyEventMask</code> matches any event. The complete list of types
* is as follows:
* <example>
NSLeftMouseDown,
NSLeftMouseUp,
NSOtherMouseDown,
NSOtherMouseUp,
NSRightMouseDown,
NSRightMouseUp,
NSMouseMoved,
NSLeftMouseDragged,
NSOtherMouseDragged,
NSRightMouseDragged,
NSMouseEntered,
NSMouseExited,
NSKeyDown,
NSKeyUp,
NSFlagsChanged,
NSAppKitDefined, // reserved
NSSystemDefined, // reserved
NSApplicationDefined, // available for custom use by apps
NSPeriodic,
NSCursorUpdate,
NSScrollWheel
</example>
*/
typedef enum _NSEventType {
// Note - order IS significant as ranges of values
// are used for testing for valid event types.
NSLeftMouseDown,
NSLeftMouseUp,
NSOtherMouseDown,
NSOtherMouseUp,
NSRightMouseDown,
NSRightMouseUp,
NSMouseMoved,
NSLeftMouseDragged,
NSOtherMouseDragged,
NSRightMouseDragged,
NSMouseEntered,
NSMouseExited,
NSKeyDown,
NSKeyUp,
NSFlagsChanged,
NSAppKitDefined,
NSSystemDefined,
NSApplicationDefined,
NSPeriodic,
NSCursorUpdate,
NSScrollWheel
} NSEventType;
enum {
NSLeftMouseDownMask = (1 << NSLeftMouseDown),
NSLeftMouseUpMask = (1 << NSLeftMouseUp),
NSOtherMouseDownMask = (1 << NSOtherMouseDown),
NSOtherMouseUpMask = (1 << NSOtherMouseUp),
NSRightMouseDownMask = (1 << NSRightMouseDown),
NSRightMouseUpMask = (1 << NSRightMouseUp),
NSMouseMovedMask = (1 << NSMouseMoved),
NSLeftMouseDraggedMask = (1 << NSLeftMouseDragged),
NSOtherMouseDraggedMask = (1 << NSOtherMouseDragged),
NSRightMouseDraggedMask = (1 << NSRightMouseDragged),
NSMouseEnteredMask = (1 << NSMouseEntered),
NSMouseExitedMask = (1 << NSMouseExited),
NSKeyDownMask = (1 << NSKeyDown),
NSKeyUpMask = (1 << NSKeyUp),
NSFlagsChangedMask = (1 << NSFlagsChanged),
NSAppKitDefinedMask = (1 << NSAppKitDefined),
NSSystemDefinedMask = (1 << NSSystemDefined),
NSApplicationDefinedMask = (1 << NSApplicationDefined),
NSPeriodicMask = (1 << NSPeriodic),
NSCursorUpdateMask = (1 << NSCursorUpdate),
NSScrollWheelMask = (1 << NSScrollWheel),
NSAnyEventMask = 0xffffffff
};
enum {
NSAlphaShiftKeyMask = 1,
NSShiftKeyMask = 2,
NSControlKeyMask = 4,
NSAlternateKeyMask = 8,
NSCommandKeyMask = 16,
NSNumericPadKeyMask = 32,
NSHelpKeyMask = 64,
NSFunctionKeyMask = 128
};
@interface NSEvent : NSObject <NSCoding, NSCopying>
{
NSEventType event_type;
NSPoint location_point;
unsigned int modifier_flags;
NSTimeInterval event_time;
int window_num;
NSGraphicsContext *event_context;
union _MB_event_data
{
struct
{
int event_num;
short click;
short button;
float pressure;
float deltaX;
float deltaY;
float deltaZ;
} mouse;
struct
{
BOOL repeat;
NSString *char_keys;
NSString *unmodified_keys;
unsigned short key_code;
} key;
struct
{
int event_num;
int tracking_num;
void *user_data;
} tracking;
struct
{
short sub_type;
int data1;
int data2;
} misc;
} event_data;
}
+ (NSEvent*) enterExitEventWithType: (NSEventType)type
location: (NSPoint)location
modifierFlags: (unsigned int)flags
timestamp: (NSTimeInterval)time
windowNumber: (int)windowNum
context: (NSGraphicsContext*)context
eventNumber: (int)eventNum
trackingNumber: (int)trackingNum
userData: (void *)userData;
+ (NSEvent*) keyEventWithType: (NSEventType)type
location: (NSPoint)location
modifierFlags: (unsigned int)flags
timestamp: (NSTimeInterval)time
windowNumber: (int)windowNum
context: (NSGraphicsContext*)context
characters: (NSString *)keys
charactersIgnoringModifiers: (NSString *)ukeys
isARepeat: (BOOL)repeatKey
keyCode: (unsigned short)code;
+ (NSEvent*) mouseEventWithType: (NSEventType)type
location: (NSPoint)location
modifierFlags: (unsigned int)flags
timestamp: (NSTimeInterval)time
windowNumber: (int)windowNum
context: (NSGraphicsContext*)context
eventNumber: (int)eventNum
clickCount: (int)clickNum
pressure: (float)pressureValue;
#ifndef NO_GNUSTEP
+ (NSEvent*) mouseEventWithType: (NSEventType)type
location: (NSPoint)location
modifierFlags: (unsigned int)flags
timestamp: (NSTimeInterval)time
windowNumber: (int)windowNum
context: (NSGraphicsContext*)context
eventNumber: (int)eventNum
clickCount: (int)clickNum
pressure: (float)pressureValue
buttonNumber: (int)buttonNum
deltaX: (float)deltaX
deltaY: (float)deltaY
deltaZ: (float)deltaZ;
#endif
+ (NSPoint)mouseLocation;
+ (NSEvent*) otherEventWithType: (NSEventType)type
location: (NSPoint)location
modifierFlags: (unsigned int)flags
timestamp: (NSTimeInterval)time
windowNumber: (int)windowNum
context: (NSGraphicsContext*)context
subtype: (short)subType
data1: (int)data1
data2: (int)data2;
+ (void) startPeriodicEventsAfterDelay: (NSTimeInterval)delaySeconds
withPeriod: (NSTimeInterval)periodSeconds;
+ (void) stopPeriodicEvents;
#ifndef STRICT_OPENSTEP
- (int) buttonNumber;
#endif
- (NSString *) characters;
- (NSString *) charactersIgnoringModifiers;
- (int) clickCount;
- (NSGraphicsContext*) context;
- (int) data1;
- (int) data2;
#ifndef STRICT_OPENSTEP
- (float)deltaX;
- (float)deltaY;
- (float)deltaZ;
#endif
- (int) eventNumber;
- (BOOL) isARepeat;
- (unsigned short) keyCode;
- (NSPoint) locationInWindow;
- (unsigned int) modifierFlags;
- (float) pressure;
- (short) subtype;
- (NSTimeInterval) timestamp;
- (int) trackingNumber;
- (NSEventType) type;
- (void *) userData;
- (NSWindow *) window;
- (int) windowNumber;
@end
enum {
NSUpArrowFunctionKey = 0xF700,
NSDownArrowFunctionKey = 0xF701,
NSLeftArrowFunctionKey = 0xF702,
NSRightArrowFunctionKey = 0xF703,
NSF1FunctionKey = 0xF704,
NSF2FunctionKey = 0xF705,
NSF3FunctionKey = 0xF706,
NSF4FunctionKey = 0xF707,
NSF5FunctionKey = 0xF708,
NSF6FunctionKey = 0xF709,
NSF7FunctionKey = 0xF70A,
NSF8FunctionKey = 0xF70B,
NSF9FunctionKey = 0xF70C,
NSF10FunctionKey = 0xF70D,
NSF11FunctionKey = 0xF70E,
NSF12FunctionKey = 0xF70F,
NSF13FunctionKey = 0xF710,
NSF14FunctionKey = 0xF711,
NSF15FunctionKey = 0xF712,
NSF16FunctionKey = 0xF713,
NSF17FunctionKey = 0xF714,
NSF18FunctionKey = 0xF715,
NSF19FunctionKey = 0xF716,
NSF20FunctionKey = 0xF717,
NSF21FunctionKey = 0xF718,
NSF22FunctionKey = 0xF719,
NSF23FunctionKey = 0xF71A,
NSF24FunctionKey = 0xF71B,
NSF25FunctionKey = 0xF71C,
NSF26FunctionKey = 0xF71D,
NSF27FunctionKey = 0xF71E,
NSF28FunctionKey = 0xF71F,
NSF29FunctionKey = 0xF720,
NSF30FunctionKey = 0xF721,
NSF31FunctionKey = 0xF722,
NSF32FunctionKey = 0xF723,
NSF33FunctionKey = 0xF724,
NSF34FunctionKey = 0xF725,
NSF35FunctionKey = 0xF726,
NSInsertFunctionKey = 0xF727,
NSDeleteFunctionKey = 0xF728,
NSHomeFunctionKey = 0xF729,
NSBeginFunctionKey = 0xF72A,
NSEndFunctionKey = 0xF72B,
NSPageUpFunctionKey = 0xF72C,
NSPageDownFunctionKey = 0xF72D,
NSPrintScreenFunctionKey = 0xF72E,
NSScrollLockFunctionKey = 0xF72F,
NSPauseFunctionKey = 0xF730,
NSSysReqFunctionKey = 0xF731,
NSBreakFunctionKey = 0xF732,
NSResetFunctionKey = 0xF733,
NSStopFunctionKey = 0xF734,
NSMenuFunctionKey = 0xF735,
NSUserFunctionKey = 0xF736,
NSSystemFunctionKey = 0xF737,
NSPrintFunctionKey = 0xF738,
NSClearLineFunctionKey = 0xF739,
NSClearDisplayFunctionKey = 0xF73A,
NSInsertLineFunctionKey = 0xF73B,
NSDeleteLineFunctionKey = 0xF73C,
NSInsertCharFunctionKey = 0xF73D,
NSDeleteCharFunctionKey = 0xF73E,
NSPrevFunctionKey = 0xF73F,
NSNextFunctionKey = 0xF740,
NSSelectFunctionKey = 0xF741,
NSExecuteFunctionKey = 0xF742,
NSUndoFunctionKey = 0xF743,
NSRedoFunctionKey = 0xF744,
NSFindFunctionKey = 0xF745,
NSHelpFunctionKey = 0xF746,
NSModeSwitchFunctionKey = 0xF747
};
/*
* Convert an Event Mask Type to a Mask
*/
unsigned int NSEventMaskFromType(NSEventType type);
#ifndef NO_GNUSTEP
typedef enum {
GSAppKitWindowMoved = 1,
GSAppKitWindowResized,
GSAppKitWindowClose,
GSAppKitWindowMiniaturize,
GSAppKitWindowFocusIn,
GSAppKitWindowFocusOut,
GSAppKitWindowLeave,
GSAppKitWindowEnter,
GSAppKitDraggingEnter,
GSAppKitDraggingUpdate,
GSAppKitDraggingStatus,
GSAppKitDraggingExit,
GSAppKitDraggingDrop,
GSAppKitDraggingFinished
} GSAppKitSubtype;
#endif
#endif /* _GNUstep_H_NSEvent */