plan9fox/sys/src/cmd/spred/dat.h
2014-07-31 11:36:24 +02:00

99 lines
1.3 KiB
C

typedef struct Ident Ident;
typedef struct Win Win;
typedef struct Wintab Wintab;
typedef struct Pal Pal;
typedef struct Spr Spr;
typedef struct File File;
enum {
BORDSIZ = 5,
MINSIZ = 3 * BORDSIZ,
SELSIZ = 2,
SCRBSIZ = 11,
SCRTSIZ = 14,
RUNEBLK = 4096,
};
enum {
DISB = NCOL,
NCOLS
};
enum {
CMD,
PAL,
SPR,
NTYPES
};
struct Wintab {
int (*init)(Win *);
void (*die)(Win *);
void (*click)(Win *, Mousectl *);
void (*menu)(Win *, Mousectl *);
int (*rmb)(Win *, Mousectl *);
void (*key)(Win *, Rune);
void (*draw)(Win *);
void (*zerox)(Win *, Win *);
u32int hexcols[NCOLS];
Image *cols[NCOLS];
};
struct Win {
Rectangle entire;
Rectangle inner;
Image *im;
Win *next, *prev;
Win *wnext, *wprev;
int type;
Wintab *tab;
Frame fr;
Rune *runes;
int nrunes, arunes, opoint;
int toprune;
int zoom;
Point scr;
File *f;
Rectangle sprr;
};
struct Ident {
uint type, dev;
Qid;
};
struct File {
int type;
Ref;
File *next, *prev;
char *name;
int change;
Ident id;
Win wins;
};
struct Pal {
File;
int ncol;
u32int *cols;
Image **ims;
int sel;
};
struct Spr {
File;
Pal *pal;
int w, h;
u32int *data;
char *palfile;
};
extern Win wlist;
extern File flist;
extern Win *actw, *actf, *cmdw;
extern Screen *scr;
extern Image *invcol;
extern int quitok;