home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
200-299
/
ff280.lzh
/
Graph
/
uio.h
< prev
Wrap
C/C++ Source or Header
|
1989-11-20
|
3KB
|
103 lines
/*
* GRAPH, Version 1.00 - 4 August 1989
*
* Copyright 1989, David Gay. All Rights Reserved.
* This software is freely redistrubatable.
*/
/* User interface routines (windows, menus, requesters, etc) */
#ifndef UIO_H
#define UIO_H
#include "list.h"
#define FONTLEN 30 /* font name length */
#define NBLEN 25
#define INTLEN 11
/* A gadget handler routine, called for every gadget event when a requester is
present */
typedef int gadgevent(struct Gadget *gadg, ULONG class, struct Requester *req,
struct graph *g);
/* All possible commands */
enum commands {none, reqgone, /* internal */
close, /* window closed */
/* menu functions */
_new_graph, _load_graph, _save_graph, print_graph, iff_graph, lo
ad_vars, save_vars, quit,
limits, axes, zoom, zoom_out, center,
add_function, add_label,
edit, improve, del_object, edit_vars
};
/* Description of selected command, union depends on command */
struct cmd {
enum commands command;
struct graph *g;
union {
struct function *f;
struct object *o;
double zoom_out;
struct {
double x0, y0, x1, y1;
} zoom_in;
struct {
double x, y;
} pt;
} data;
};
extern tlist flist; /* List of available font names */
int make_font_list(void); /* (Re)make flist */
char *addfont(char *fname); /* Add/Remove ".font" from font names */
char *remfont(char *fname);
/* Display requester(in graph g), wait for it to leave */
/* handle will be called for every gadget event */
int DoRequest(struct Requester *r, struct graph *g, gadgevent *handle);
/* The default gadget handler (switches between text gadgets) */
int std_ghandler(struct Gadget *gg, ULONG class, struct Requester *req, struct
graph *g);
int getfile(char *file, char *msg); /* File requester
*/
struct Requester *abort_request(struct graph *g, char *msg); /* Setup an abort
requester */
void set_abort_msg(struct Requester *req, char *msg); /* Change abort ms
g */
void end_abort_request(struct Requester *req); /* Clear abort req
*/
int aborted(struct Requester *req); /* Did user abort
? */
void message(struct graph *g, ...); /* Display a messa
ge (in a graph) */
void alert(struct Window *win, char *msg1, char *msg2); /* Use when no gra
ph available */
void nomem(struct Window *win); /* Standard no mem
ory alert */
struct cmd next_command(void); /* Return next selected command */
/* String utility functions, convert numbers to strings */
char *double2str(char *to, double x);
double str2double(char *from);
char *int2str(char *to, int x);
int str2int(char *from);
char *strip(char *name); /* Strip leading & trailing blanks */
/* Enable/Disable various menus */
void disable_rect_menus(struct graph *g); /* Menus for 'pos' object */
void enable_rect_menus(struct graph *g);
void disable_object_menus(struct graph *g); /* For selected objects */
void enable_object_menus(struct graph *g);
int init_user(void);
void cleanup_user(void);
int init_uio(struct graph *g); /* Setup/Cleanup interface for each graph *
/
void cleanup_uio(struct graph *g);
#endif