/****  Defines und Datenstrukturen für "Window.h" ****/

//+ "Log-Informationen"
/*
$Log: Button.h,v $
 * Revision 1.1  1995/12/21  12:31:05  herbert
 * Initial revision
 *
*/
//-

/****  Deklaration der für den User zugänglichen Routinen  ****/

__asm __saveds struct Button *XW_AddNormal(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton,
                                   register __d0 SHORT ButtonMode);
__asm __saveds struct Button *XW_AddImage(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton,
                                  register __d0 SHORT ButtonMode);
__asm __saveds struct Button *XW_AddString(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton);
__asm __saveds struct Button *XW_AddNumeric(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton);
__asm __saveds struct Button *XW_AddDNumeric(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton);
__asm __saveds struct Button *XW_AddScroll(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton,
                                   register __d0 SHORT ButtonMode);
__asm __saveds struct Button *XW_AddListView(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton);
__asm __saveds struct Button *XW_AddCycle(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton);
__asm __saveds struct Button *XW_AddCheck(register __a0 struct Box *Box, register __a1 struct NewButton *NewButton);

__asm __saveds SHORT XW_AddKeep(register __a0 struct Box *Box, register __a1 struct Button *Button);

__asm __saveds struct DropArea *XW_AddDropArea(register __a0 struct Box *Box, register __d0 LONG AreaID,
                                    register __d1 SHORT X, register __d2 SHORT Y, register __d3 SHORT Width, register __d4 SHORT Height);
__asm __saveds VOID XW_RemoveDropArea(register __a0 struct Box *Box, register __a1 struct DropArea *DropArea);

__asm __saveds void XW_RemoveButton(register __a0 struct Box *Box, register __a1 struct Button *Button);
__asm __saveds void XW_FreeButton(register __a0 struct Button *Button);

__asm __saveds char *XW_GetLVResult(register __a0 struct Button *ListView);

__asm __saveds short XW_AddLVEntry(register __a0 struct Box *Box, register __a1 struct Button *Button,
                           register __a2 char *Text, register __d0 UBYTE Color, register __d1 UBYTE Pri);
__asm __saveds void XW_RemoveLVEntry(register __a0 struct Box *Box, register __a1 struct Button *Button,
                             register __a2 char *Text);
__asm __saveds void XW_RemoveAllLVEntry(register __a0 struct Box *Box, register __a1 struct Button *Button);
__asm __saveds void XW_SortLV(register __a0 struct Box *Box, register __a1 struct Button *Button);

__asm __saveds void XW_SetNormal(register __a0 struct Box *Box, register __a1 struct Button *Button,
                         register __d0 BOOL Down);
__asm __saveds void XW_SetString(register __a0 struct Box *Box, register __a1 struct Button *Button,
                         register __a2 char *NewText);
__asm __saveds void XW_SetNumeric(register __a0 struct Box *Box, register __a1 struct Button *Button,
                          register __d0 LONG NewValue);
__asm __saveds void XW_SetDNumeric(register __a0 struct Box *Box, register __a1 struct Button *Button,
                           register __a2 double *NewValue);
__asm __saveds void XW_SetScroll(register __a0 struct Box *Box, register __a1 struct Button *Button,
                         register __d0 LONG NewValue);
__asm __saveds void XW_SetListView(register __a0 struct Box *Box, register __a1 struct Button *Button,
                                   register __d0 SHORT NewPos, register __d1 SHORT Mode);
__asm __saveds void XW_SetCycle(register __a0 struct Box *Box, register __a1 struct Button *Button,
                        register __d0 SHORT NewNum);
__asm __saveds void XW_SetCheck(register __a0 struct Box *Box, register __a1 struct Button *Button,
                        register __d0 BOOL Checked);

__asm __saveds void XW_RefreshButtons(register __a0 struct Box *Box);


/****  Routinen, die NUR für Window.c bestimmt sind  ****/

void RemoveButtonI(struct Box *Box, struct Button *Button);
void SetScrollI(struct Box *Box, struct Button *Button, LONG NewValue);

void DrawListView(struct Box *Box, struct Button *ListView, SHORT UpdateMod);
void ScrollListView(struct Box *Box, struct Button *ListView, struct ListView *NewTop);

SHORT AddBoxButtons(struct Box *Box);
void SetAllButtons(struct Box *Box);
void AdjustBoxButtons(struct Box *Box);
void SetButtonArray(struct Box *Box, struct Button *Button);
void AdjustSlider(struct Button *Button);

void RefreshButtonsI(struct Box *Box);


/****  Routinen, die NUR für Window_a.c / WinHandle_a.c (Amiga-Version) bestimmt sind  ****/

void DrawBoolButton(struct Box *Box, struct Button *Button, BOOL DoErase);
