#ifndef TCLAWINDOW_H
#define TCLAWINDOW_H

#include <tcla/menu.h>

#define NEWSIZE_EVENT_INDEX	0
#define REFRESHWINDOW_EVENT_INDEX 1
#define MOUSEBUTTONS_EVENT_INDEX 2
#define MENUPICK_EVENT_INDEX 3
#define CLOSEWINDOW_EVENT_INDEX 4
#define VANILLAKEY_EVENT_INDEX 5
#define RAWKEY_EVENT_INDEX 6
#define INTUITICKS_EVENT_INDEX 7
#define ACTIVEWINDOW_EVENT_INDEX 8
#define INACTIVEWINDOW_EVENT_INDEX 9
#define NEWPREFS_EVENT_INDEX 10
#define DISKINSERTED_EVENT_INDEX 11
#define DISKREMOVED_EVENT_INDEX 12

#define NWINDOW_EVENTS 13

/* this is our window structure, it has a node so it can be in a list,
 * and it has a MenuPtr structure, so it can talk to Peter's ezmenu
 * stuff, and it has a struct window * to point to the actual window */
struct TclaWindow
{
	struct Node node;
	struct MenuPtr menudata;
	struct Window *this_window;
	struct List gadget_list;
	short flags;
	char *window_event_vectors[NWINDOW_EVENTS];
	long next_gadget_handle_number;
};

/* flag is set if close was requested while window events were being 
 * processed, to prevent gurus */
#define TCLA_WINDOW_DEFERRED_CLOSE_FLAG 1

#endif

