#define BASIC_IVIEW 0
typedef int ColorCode;
typedef enum {
MouseClick = 0,
MouseMove = 1
} MouseEventType;
typedef enum {
NoModifiers = 0,
ExtendModifier = 1,
OptionModifier = 2,
OptionExtendModifier = 3
} MouseClickModifier;
typedef enum {
pointInvisible,
pointNormal,
pointHilited,
pointSelected
} PointState;
typedef enum {
selecting,
brushing,
usermode
} MouseMode;
#ifdef MACINTOSH
#define thePort qd.thePort
#define arrow qd.arrow
#ifdef THINK_C
#define RETURNCHAR '\r'
#endif /* THINK_C */
#ifdef applec
#define RETURNCHAR '\n'
#endif /* applec */
#ifdef __MWERKS__
#define RETURNCHAR '\r'
#endif /* __MWERKS__ */
#else
#ifdef SUNVIEW
typedef struct {
int h, v;
} Point;
#else
typedef struct {
int h, v;
} Point;
typedef struct {
int left, right, width, height;
} Rect;
#endif /* SUNVIEW */
#endif /* MACINTOSH */
#ifdef MACINTOSH
#define IVIEW_WINDOW WindowPtr
#define IVIEW_MENU MenuHandle
#define InitialTop (20 + GetMBarHeight())
#define InitialLeft 10
#define MOUSE_TOLERANCE 0
# define gray qd.gray
# define black qd.black
# define thePort qd.thePort
# define screenBits qd.screenBits
# define arrow qd.arrow
# undef extend
#ifdef applec
VOID PtoCstr _((StringPtr s));
VOID CtoPstr _((char * s));
#endif /* applec */
typedef struct {
LVAL Object; /* elements of window_data */
int idleOn, frontOnly; /* elements of window_data */
int mouse_x, mouse_y; /* elements of window_data */
WindowPtr window;
void (*FreeMem) _((IVIEW_WINDOW));
ColorCode backColor, drawColor;
int canvasWidth, canvasHeight;
int lineType, drawMode, lineWidth;
long RefCon;
int use_color;
int hasHscroll, hasVscroll, view_h, view_v;
int v_scroll_inc[2], h_scroll_inc[2];
ControlHandle hscroll, vscroll;
int initialized;
int symbolMode;
int cursor;
Rect clip_rect;
int clipped;
} StGWWinInfo;
extern Rect scroll_bar_bounds();
#define GetWRefCon(w) (((WindowPeek)(w))->refCon)
#define BAG_RES 1800
#define GLASS_RES 1801
#define CAN_RES 1802
#define BRUSH_RES 1803
#define HAND_RES 1804
#define FINGER_RES 1805
#endif /* MACINTOSH */
#ifdef UNIX
#ifdef GNUPLOT
#define Window long
#define Menu long
#define StGWWinInfo VOID
#define StGWWinInfo VOID
#endif /* GNUPLOT */
#define IVIEW_WINDOW Window
#define IVIEW_MENU Menu
#endif /* UNIX */
#ifdef SUNVIEW
typedef struct {
long Object; /* elements of window_data */
int idleOn, frontOnly; /* elements of window_data */
int mouse_x, mouse_y; /* elements of window_data */
IVIEW_WINDOW window;
int (*FreeMem)();
IVIEW_MENU menu;
int (*MenuAction)(), (*MenuShow)(), (*MenuUpdate)();
ColorCode backColor, drawColor;
int canvasWidth, canvasHeight;
int lineType, drawMode, lineWidth;
Canvas content_canvas;
long RefCon;
int use_color;
int hasHscroll, hasVscroll, view_h, view_v;
int v_scroll_inc[2], h_scroll_inc[2];
/* ControlHandle hscroll, vscroll; +++ */
int initialized;
int symbolMode;
int cursor;
Rect clip_rect;
int clipped;
} StGWWinInfo;
#endif /* SUNVIEW */
#ifdef X11WINDOWS
typedef struct {
LVAL Object; /* elements of window_data */
int idleOn, frontOnly; /* elements of window_data */
int mouse_x, mouse_y; /* elements of window_data */
Window window, panel;
VOID (*FreeMem) _((IVIEW_WINDOW));
ColorCode backColor, drawColor;
int canvasWidth, canvasHeight;
int lineType, drawMode, lineWidth;
long RefCon;
int use_color;
int hasHscroll, hasVscroll, view_h, view_v;
int v_scroll_inc[2], h_scroll_inc[2];
Window hscroll, vscroll;
int initialized;
int symbolMode;
int cursor;
int clip_left, clip_top, clip_width, clip_height;
int clipped;
int frame_width, frame_height;
GC gc, erase_gc, xor_gc;
int go_away, has_menu_button;
} StGWWinInfo;
#endif /* X11WINDOWS */
#ifdef _Windows
#define IVIEW_WINDOW HWND
#define IVIEW_MENU HMENU
typedef struct {
LVAL Object; /* elements of window_data */
int idleOn; /* elements of window_data */
int mouse_x, mouse_y; /* elements of window_data */
IVIEW_WINDOW window;
void (*FreeMem)(HWND);
ColorCode backColor, drawColor;
int canvasWidth, canvasHeight;
int lineType, drawMode, lineWidth;
long RefCon;
int use_color;
int hasHscroll, hasVscroll, view_h, view_v;
int v_scroll_inc[2], h_scroll_inc[2];
int initialized;
int symbolMode;
int cursor;
RECT clip_rect;
int clipped;
LOGPEN drawPen;
int rect_offset;
int bPrinting;
int cxPrintPos, cyPrintPos;
} StGWWinInfo;
/* Access Defines */
#define SETWINOBJECT(w, d) SetWindowLong((HWND) (w), 0, (LONG) (d))
#define GETWINOBJECT(w) ((LVAL) GetWindowLong((HWND) (w), 0))
#define SETGWINFO(w, d) SetWindowLong((HWND) (w), 4, (LONG) (d))
#define GETGWINFO(w) ((StGWWinInfo *) GetWindowLong((HWND) (w), 4))
/* GDI defines */
#define GET_DC(w) (currentDC ? currentDC : GetDC((HWND) (w)))
#define RELEASE_DC(w, d) if (!currentDC) ReleaseDC((HWND) (w), (HDC) (d))
#define GET_DRAW_PEN(g) ((g)->drawPen)
#define RELEASE_PEN(p) DeleteObject(p);
#define SET_PEN(h,g) SelectObject(h, CreatePenIndirect(&GET_DRAW_PEN(g)))
#define RESTORE_PEN(h,p) RELEASE_PEN(SelectObject(h,p))
#define GET_DRAW_BRUSH(g) CreateSolidBrush(get_color((g)->drawColor))
#define GET_ERASE_BRUSH(g) CreateSolidBrush(get_color((g)->backColor))
#define SET_DRAW_BRUSH(h,g) SelectObject(h, GET_DRAW_BRUSH(g))
#define SET_ERASE_BRUSH(h,g) SelectObject(h, GET_ERASE_BRUSH(g))
#define RELEASE_BRUSH(b) DeleteObject(b)
#define RESTORE_BRUSH(h,b) RELEASE_BRUSH(SelectObject(h,b))
#endif /* _Windows */
extern StGWWinInfo *StGWObWinInfo _((LVAL object));
extern long StGWGetRefCon _((StGWWinInfo *));
extern long StGWGetColRefCon _((unsigned int index));
extern long StGWGetCursRefCon _((unsigned int index));
extern long StGWGetSymRefCon _((unsigned int index));
extern IVIEW_WINDOW IViewWindowNew _((LVAL object, int is_GW));
extern ColorCode StGWDrawColor _((StGWWinInfo *));
extern ColorCode StGWBackColor _((StGWWinInfo *));
extern LVAL IViewWindowGetObject _((IVIEW_WINDOW w));
StGWWinInfo *IViewWindowWinInfo _((IVIEW_WINDOW w));
extern IVIEW_WINDOW IViewNew _((LVAL object));
extern IVIEW_WINDOW IViewSpinNew _((LVAL object));
extern IVIEW_WINDOW IViewScatmatNew _((LVAL object));
extern IVIEW_WINDOW IViewListNew _((LVAL object));
extern IVIEW_WINDOW IViewHistNew _((LVAL object));
#define ARROW_CURSOR 0
#define WATCH_CURSOR 1
#define CROSS_CURSOR 2
#define BRUSH_CURSOR 3
#define HAND_CURSOR 4
#define FINGER_CURSOR 5
#define HOUR_GLASS_CURSOR 6
#define TRASH_BAG_CURSOR 7
#define TRASH_CAN_CURSOR 8
typedef char *IViewReallocData;
#ifdef MACINTOSH
#define Fixed Fixed_
#define FixRound FixRound_
#endif /* MACINTOSH */
typedef long Fixed;
typedef struct basic_points {
int num_points, num_variables;
double *scale, *location, **transformation;
IViewReallocData *data, *screen_data;
int recalculateScreenPoints, fixed;
} *IViewBasicPoints;
#define NOCOLOR 255
typedef unsigned char color_index;
typedef struct point_symbol {
int normal, highlighted;
} PointSymbol;
typedef struct point_info {
PointState state, screen_state;
char marked, masked;
color_index color;
PointSymbol symbol;
char *label;
} PointInfo;
typedef struct line_info {
int next, type;
char masked, width;
color_index color;
} LineInfo;
#ifdef USESTRINGS
typedef struct string_info {
char *string;
char masked, up, h, v;
color_index color;
} StringInfo;
#endif /* USESTRINGS */
typedef struct iview_data {
#ifdef USESTRINGS
IViewBasicPoints points, lines, strings;
IViewReallocData pointInfo, lineInfo, stringInfo;
#else
IViewBasicPoints points, lines;
IViewReallocData pointInfo, lineInfo;
#endif /* USESTRINGS */
double *mins, *maxes, *scale, *location;
int *screen_mins, *screen_maxes;
char **variableLabels;
int recalculateScreenPoints, transformed;
double **transformation;
} *IViewData;
#define IVIEW_WINDOW_NULL(w) (w == (IVIEW_WINDOW) 0)
syntax highlighted by Code2HTML, v. 0.9.1