#ifndef riscoswimp_H
#define riscoswimp_H

#ifdef wimp_H
extern wimp_w ScreenW;
extern wimp_t our_task;
#endif
extern bool hiresmode;
extern char StoryName[1024];
extern bool grab_fkeys;
extern bool showcaret;
extern bool warn_overwrite;
extern bool pauseexit;
extern bool smartquotes;
extern bool line_editing;
extern bool command_recall;
extern bool line_editing;
extern int log2bpp;
#ifdef toolbox_H
extern toolbox_o mainmenu;
#endif
extern int last_menu, last_item;
extern int have_input_focus;
extern int caret_enabled;
extern int default_fg, default_bg;

#define action_GameMenu 16

#define key_CTRL_U 0x100
#define key_CTRL_LEFT 0x101
#define key_CTRL_RIGHT 0x102
#define key_SHIFT_LEFT 0x103
#define key_SHIFT_RIGHT 0x104
#define key_COPY 0x105
#define key_CTRL_COPY 0x106

int NextKey(void);
void initialise_wimp(void);
void do_update_window(os_box *area);
void setup_mouse(int use_mouse);
#ifdef wimp_H
int modechange_handler(wimp_message *message, void *handle);
int palettechange_handler(wimp_message *message, void *handle);
void poll(wimp_event_no *event_code, wimp_block *poll_block,
      void *poll_word);
void poll_idle(wimp_event_no *event_code, wimp_block *poll_block,
      os_t earliest, void *poll_word);
#endif
void SetTitle(void);
const char *GameTitle(void);
void pre_initialise_wimp(void);

int claim_null_events(void);
int release_null_events(void);

#endif
