 
#ifndef __dl_wimpswis_h
#define __dl_wimpswis_h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __dl_core_h
#include "Core.h"
#endif
#ifndef __dl_wimp_h
#include "Wimp.h"
#endif
extern os_error *Wimp_Initialise(unsigned int *version,
char *name,
task_handle *task,
int *messages);
extern os_error *Wimp_CloseDown(task_handle task);
extern os_error *Wimp_StartTask(char *command);
extern os_error *Wimp_StartTask3(char *command, task_handle *newtask);
extern os_error *Wimp_SlotSize(int *currentslot, int *nextslot, int *freepool);
extern os_error *Wimp_TransferBlock(task_handle sourcetask,
void *sourcebuffer,
task_handle desttask,
void *destbuffer,
unsigned int length);
extern os_error *Wimp_ReportError(os_error *error, int flags, char *name);
extern int Wimp_ReportErrorR(os_error *error, int flags, char *name);
extern os_error *Wimp_SendMessage (event_type eventtype,
message_block *message,
message_destinee destinee,
icon_handle icon);
extern os_error *Wimp_OpenTemplate(char *name);
extern os_error *Wimp_CloseTemplate(void);
extern os_error *Wimp_LoadTemplate(template_block *wtemplate);
extern os_error *Wimp_CreateWindow(window_block *block, window_handle *window);
extern os_error *Wimp_OpenWindow(window_openblock *block);
extern os_error *Wimp_CloseWindow(window_handle window);
extern os_error *Wimp_DeleteWindow(window_handle window);
extern os_error *Wimp_RedrawWindow(window_redrawblock *block, BOOL *more);
extern os_error *Wimp_UpdateWindow(window_redrawblock *block, BOOL *more);
extern os_error *Wimp_GetRectangle(window_redrawblock *block, BOOL *more);
extern os_error *Wimp_GetWindowState(window_handle window,window_state *state);
extern os_error *Wimp_GetWindowInfo(window_info *info);
extern os_error *Wimp_GetWindowInfoNoIcons(window_info *info);
extern os_error *Wimp_GetWindowOutline(window_outline *outline);
extern os_error *Wimp_SetExtent(window_handle window, wimp_box *newextent);
extern os_error *Wimp_ForceRedraw(window_redrawblock *block);
extern os_error *Wimp_CreateIcon(icon_createblock *block, icon_handle *icon);
extern os_error *Wimp_DeleteIcon(window_handle window, icon_handle icon);
extern os_error *Wimp_SetIconState(window_handle window,
icon_handle icon,
int value,
int mask);
extern os_error *Wimp_GetIconState(window_handle window,
icon_handle icon,
icon_block *iconinfo);
extern os_error *Wimp_WhichIcon(window_handle window,
icon_handle *icons,
int mask,
int settings);
extern os_error *Wimp_PlotIcon(icon_block *fakeicon);
#define Wimp_Poll(mask, evt) Wimp_Poll3(mask, evt, 0)
#define Wimp_PollIdle(mask, evt, time) Wimp_PollIdle3(mask, evt, time, 0)
extern os_error *Wimp_Poll3(event_pollmask mask, event_pollblock *event,
void *pollword);
extern os_error *Wimp_PollIdle3(event_pollmask mask, event_pollblock *block,
int earliest, void *pollword);
#ifdef _DeskLib_SDLS
extern event_type _dll_wimpPoll( 
event_pollmask mask, 
event_data *data, 
int dummy, 
void *pollword
);
extern event_type _dll_wimpPollIdle( 
event_pollmask mask, 
event_data *data, 
int earliest, 
void *pollword
);
extern os_error *Wimp_Poll3_DLL( event_pollmask mask, event_pollblock *event,
void *pollword);
extern os_error *Wimp_PollIdle3_DLL( event_pollmask mask, event_pollblock *block,
int earliest, void *pollword);
#define Wimp_Poll3 Wimp_Poll3_DLL
#define Wimp_PollIdle3 Wimp_PollIdle3_DLL
#endif
extern os_error *Wimp_SaveFPStateOnPoll(void);
extern os_error *Wimp_CorruptFPStateOnPoll(void);
extern os_error *Wimp_GetPointerInfo(mouse_block *ptrinfo);
extern os_error *Wimp_SetPointerShape(pointer_shapeblock *shape);
extern os_error *Wimp_DragBox(drag_block *draginfo);
extern os_error *Wimp_SetCaretPosition(caret_block *caret);
extern os_error *Wimp_GetCaretPosition(caret_block *caret);
extern os_error *Wimp_CreateMenu(menu_ptr menu, int xpos, int ypos);
extern os_error *Wimp_CreateSubMenu(menu_ptr menu, int xpos, int ypos);
extern os_error *Wimp_DecodeMenu(menu_ptr menu,
int *selections,
char *result);
extern os_error *Wimp_ProcessKey(int character);
extern os_error *Wimp_SetMode(int mode);
extern os_error *Wimp_SetColour(int colour);
extern os_error *Wimp_ReadPalette(palette_block *palette);
extern os_error *Wimp_SetPalette(palette_block *palette);
extern os_error *Wimp_ReadPixTrans(int areaindex,
void *area,
void *sprite,
scale_block *scaleblock,
char *transblock);
extern os_error *Wimp_SetFontColours(int foreground, int background);
extern os_error *Wimp_SpriteOp( int r[10]);
extern os_error *Wimp_BaseOfSprites(void **rom_base, void **ram_base);
extern os_error *Wimp_BlockCopy(window_handle window, wimp_box *source,
int x, int y);
extern os_error *Wimp_CommandWindow(int);
#ifdef __cplusplus
}
#endif
#endif
