ftp.nice.ch/Attic/openStep/implementation/gnustep/sources/objcX-0.87.tgz#/objcX-0.87/dpsclient/event.h

This is event.h in view mode; [Download] [Up]

/* GNU OpenStep dpsclient/event.h include file
 *
 * Copyright (C) 1993 Keith Mason. All Rights Reserved.
 *
 * Author: Keith Mason
 */

#ifndef _GNUSTEP_DPSCLIENT_EVENT_H_
#define _GNUSTEP_DPSCLIENT_EVENT_H_

/* Character Set Values */

#define NX_ASCIISET   1
#define NX_SYMBOLSET  2
#define NX_DINGBATSET 3


/* Event types */

#define NX_NULLEVENT     0

#define NX_LMOUSEDOWN    1
#define NX_LMOUSEUP      2
#define NX_LMOUSEDRAGGED 3

#define NX_MOUSEDOWN     NX_LMOUSEDOWN
#define NX_MOUSEUP       NX_LMOUSEUP
#define NX_MOUSEDRAGGED  NX_LMOUSEDRAGGED

#define NX_RMOUSEDOWN    4
#define NX_RMOUSEUP      5
#define NX_RMOUSEDRAGGED 6

#define NX_MOUSEMOVED    7
#define NX_MOUSEENTERED  8
#define NX_MOUSEEXITED   9
#define NX_KEYDOWN       10
#define NX_KEYUP         11
#define NX_FLAGSCHANGED  12

#define NX_KITDEFINED    13
#define NX_SYSDEFINED    14
#define NX_APPDEFINED    15

#define NX_TIMER         16
#define NX_CURSORUPDATE  17
#define NX_JOURNALEVENT  18

#define NX_FIRSTEVENT    NX_NULLEVENT
#define NX_LASTEVENT     NX_JOURNALEVENT
#define NX_ALLEVENTS     31


/* Event Type Masks */

/* I don't get what the difference between "event types" and "event type     */
/* masks" are.... They both refer to the type field of the NXEvent struct.   */
/* These aren't masks, until I find out how they're supposed to be           */
#define NX_NULLEVENTMASK     0
#define NX_LMOUSEDOWNMASK    1
#define NX_LMOUSEUPMASK      2
#define NX_LMOUSEDRAGGEDMASK 3
#define NX_MOUSEDOWNMASK     NX_LMOUSEDOWNMASK
#define NX_MOUSEUPMASK       NX_LMOUSEUPMASK
#define NX_MOUSEDRAGGEDMASK  NX_LMOUSEDRAGGEDMASK
#define NX_RMOUSEDOWNMASK    4
#define NX_RMOUSEUPMASK      5
#define NX_RMOUSEDRAGGEDMASK 6
#define NX_MOUSEMOVEDMASK    7
#define NX_MOUSEENTEREDMASK  8
#define NX_MOUSEEXITEDMASK   9
#define NX_KEYDOWNMASK       10
#define NX_KEYUPMASK         11
#define NX_FLAGSCHANGEDMASK  12
#define NX_KITDEFINEDMASK    13
#define NX_SYSDEFINEDMASK    14
#define NX_APPDEFINEDMASK    15
#define NX_TIMERMASK         16
#define NX_CURSORUPDATEMASK  17
#define NX_JOURNALEVENTMASK  18


/* Keyboard State Flags Masks */

#define NX_ALPHASHIFTMASK    (1<<0)
#define NX_SHIFTMASK         (1<<1)
#define NX_CONTROLMASK       (1<<2)
#define NX_ALTERNATEMASK     (1<<3)
#define NX_COMMANDMASK       (1<<4)
#define NX_NUMERICPADMASK    (1<<5)
#define NX_HELPMASK          (1<<6)

#define NX_NEXTCTRLKEYMASK   (1<<7)
#define NX_NEXTLSHIFTKEYMASK (1<<8)
#define NX_NEXTRSHIFTKEYMASK (1<<9)
#define NX_NEXTLCMDKEYMASK   (1<<10)
#define NX_NEXTRCMDKEYMASK   (1<<11)
#define NX_NEXTLALTKEYMASK   (1<<12)
#define NX_NEXTRALTKEYMASK   (1<<13)


/* Miscellaneous Event Flags Masks */

#define NX_STYLUSPROXIMITYMASK (1<<14)
#define NX_NONCOALSESCEDMASK   (1<<15)


/* NXCoord */

/* Note: temporarily, coordinates are integers */
/* typedef float NXCoord; */
typedef int NXCoord;


/* NXPoint */

typedef struct _NXPoint {
  NXCoord x;
  NXCoord y;
} NXPoint;


/* NXSize */

typedef struct _NXSize {
  NXCoord width;
  NXCoord height;
} NXSize;


/* NXEventData */

typedef union {
  struct {
    short eventNum;
    int click;
    unsigned char pressure;
  } mouse;
  struct {
    short repeat;
    unsigned short charSet;
    unsigned short charCode;
    unsigned short keyCode;
    short keyData;
  } key;
  struct {
    short eventNum;
    int trackingNum;
    int userData;
  } tracking;
  struct {
    short subtype;
    union {
      float F[2];
      long L[2];
      short S[4];
      char C[8];
    } misc;
  } compound;
} NXEventData;


/* NXEvent */

typedef struct _NXEvent {
  int type;
  NXPoint location;
  long time;
  int flags;
  unsigned int window;
  NXEventData data;
/*  DPSContext ctxt; // DPS Context not yet defined */
  void  *ctxt; 
} NXEvent, *NXEventPtr;

/*
 * Macros for compatiblility with original release.   Can be removed when
 * all use of them has been removed
 */
#endif  _GNUSTEP_DPSCLIENT_EVENT_H_

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.