@DATABASE "dopus/gui.h"
@MASTER   "opussdk:include/dopus/gui.h"
@REMARK   (c) Dr Greg Perry and Jonathan Potter, GPSoftware 1996
@REMARK   This file was initially created by ADtoHT 2.1 on 07-Sep-96 18:20:14
@REMARK   ADtoHT is © 1993-1995 Christian Stieber

@NODE MAIN "dopus/gui.h"
@TOC "DopusSDK/MAIN"

@{"dopus/gui.h" LINK File}


@{b}#defines@{ub}

@{"SCRI_LORES" LINK "dopus/gui.h/File" 12}  @{"SCROLL_HORIZ" LINK "dopus/gui.h/File" 41}  @{"SCROLL_NOIDCMP" LINK "dopus/gui.h/File" 39}  @{"SCROLL_VERT" LINK "dopus/gui.h/File" 40}

@ENDNODE
@NODE File "dopus/gui.h"
#ifndef _DOPUS_GUI
#define _DOPUS_GUI

/*****************************************************************************

 GUI support

 *****************************************************************************/

// Screen Info

#define SCRI_LORES      (1<<0)

ULONG ScreenInfo(struct Screen *);


// Drawing
void DrawBox(struct RastPort *,struct Rectangle *,struct DrawInfo *,BOOL);
void DrawFieldBox(struct RastPort *,struct Rectangle *,struct DrawInfo *);


// Palette
void LoadPalette32(struct ViewPort *,unsigned long *);
void GetPalette32(struct ViewPort *,unsigned long *,unsigned short,short);


// BOOPSI
struct Gadget *FindBOOPSIGadget(struct List *,USHORT);
void BOOPSIFree(struct List *);


// Gadgets
struct Gadget *AddScrollBars(struct Window *,struct List *,struct DrawInfo *,short);
struct Gadget *CreateTitleGadget(struct Screen *,struct List *,BOOL,short,short,unsigned short);
struct Gadget *FindGadgetType(struct Gadget *,UWORD);
void FixTitleGadgets(struct Window *);
void ActivateStrGad(struct Gadget *,struct Window *);

#define SCROLL_NOIDCMP  (1<<0)          // Don't send IDCMPUPDATE messages
#define SCROLL_VERT     (1<<1)          // Vertical scroller
#define SCROLL_HORIZ    (1<<2)          // Horizontal scroller

enum
{
        GAD_VERT_SCROLLER=2,    // Vertical scroller
        GAD_VERT_ARROW_UP,
        GAD_VERT_ARROW_DOWN,

        GAD_HORIZ_SCROLLER,     // Horizontal scroller
        GAD_HORIZ_ARROW_LEFT,
        GAD_HORIZ_ARROW_RIGHT,
};


// Bitmap routines
struct BitMap *NewBitMap(ULONG,ULONG,ULONG,ULONG,struct BitMap *);
void DisposeBitMap(struct BitMap *);


// Find public screen node
struct PubScreenNode *FindPubScreen(struct Screen *,BOOL);


// Set busy pointer in a window
void SetBusyPointer(struct Window *);

#endif
@ENDNODE
