home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
text
/
editors
/
'liner_451
/
source
/
gadtools.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-02-06
|
3KB
|
156 lines
/*Source for gadtools.lib V0.20.*/
/*Provides a library of routines to help with creating gadgets with*/
/*gadtools.library*/
/*Kinds currently supported:*/
/*BUTTON*/
/*STRING*/
/*CHECK*/
#include "graphics/displayinfo.h"
#include "libraries/gadtools.h"
#include <proto/gadtools.h>
/* Prototypes for functions defined in gadtools.c */
struct Gadget *MakeButtonGadgets(struct Gadget *Header,
struct NewGadget *Buttons,
APTR VisInfo,
struct TextAttr *Font,
UWORD NumOfGadgets,
UWORD Add);
struct Gadget *MakeStringGadgets(struct Gadget *Header,
struct NewGadget *New,
APTR VisInfo,
struct TextAttr *Font,
UWORD NumOfGadgets,
struct StrStrings *StrInfo,
UWORD Add);
struct Gadget *MakeCheckGadgets(struct Gadget *Header,
struct NewGadget *New,
APTR VisInfo,
struct TextAttr *Font,
UWORD NumOfGadgets,
BOOL *States,
UWORD Add);
struct TagItem StringTag[] =
{
{GTST_String,NULL},
{GTST_MaxChars,79},
{TAG_DONE,NULL}
};
struct TagItem ButtonTag[] =
{
{TAG_DONE,NULL}
};
struct TagItem CheckTag[] =
{
{GTCB_Checked,FALSE},
{TAG_DONE,NULL}
};
struct Gadget *MakeButtonGadgets();
struct Gadget *MakeStringGadgets();
struct Gadget *MakeCheckGadgets();
/*Create gadgets based on the NewGadget BUTTON_KIND*/
struct Gadget *MakeButtonGadgets(Header,Buttons,VisInfo,Font,NumOfGadgets,
Add)
struct Gadget *Header;
struct NewGadget Buttons[];
APTR VisInfo;
struct TextAttr *Font;
UWORD NumOfGadgets;
UWORD Add;
{
register UWORD gad;
register struct Gadget *Cur=(struct Gadget *)Header;
for(gad=0;gad<NumOfGadgets;gad++)
{
Buttons[gad].ng_VisualInfo=(APTR)VisInfo;
Buttons[gad].ng_TextAttr=(struct TextAttr *)Font;
Buttons[gad].ng_TopEdge+=Add;
Cur=(struct Gadget *)CreateGadgetA(BUTTON_KIND,Cur,&Buttons[gad],
ButtonTag);
Buttons[gad].ng_TopEdge-=Add;
}
return(Cur);
}
struct StrStrings
{
char *String;
UWORD Length;
};
/*Create gadgets based on the NewGadget STRING_KIND*/
struct Gadget *MakeStringGadgets(Header,New,VisInfo,Font,NumOfGadgets,
StrInfo,Add)
struct Gadget *Header;
struct NewGadget New[];
APTR VisInfo;
struct TextAttr *Font;
UWORD NumOfGadgets;
struct StrStrings *StrInfo;
UWORD Add;
{
register UWORD gad;
register struct Gadget *Cur=(struct Gadget *)Header;
for(gad=0;gad<NumOfGadgets;gad++)
{
New[gad].ng_VisualInfo=(APTR)VisInfo;
New[gad].ng_TextAttr=(struct TextAttr *)Font;
New[gad].ng_TopEdge+=Add;
StringTag[0].ti_Data=StrInfo[gad].String;
StringTag[1].ti_Data=StrInfo[gad].Length;
Cur=(struct Gadget *)CreateGadgetA(STRING_KIND,Cur,&New[gad],
StringTag);
New[gad].ng_TopEdge-=Add;
}
return(Cur);
}
/*Create gadgets based on the NewGadget CHECKBOX_KIND*/
struct Gadget *MakeCheckGadgets(Header,New,VisInfo,Font,NumOfGadgets,
States,Add)
struct Gadget *Header;
struct NewGadget New[];
APTR VisInfo;
struct TextAttr *Font;
UWORD NumOfGadgets;
BOOL States[];
UWORD Add;
{
register UWORD gad;
register struct Gadget *Cur=(struct Gadget *)Header;
for(gad=0;gad<NumOfGadgets;gad++)
{
New[gad].ng_VisualInfo=(APTR)VisInfo;
New[gad].ng_TextAttr=(struct TextAttr *)Font;
New[gad].ng_TopEdge+=Add;
CheckTag[0].ti_Data=States[gad];
Cur=(struct Gadget *)CreateGadgetA(CHECKBOX_KIND,Cur,&New[gad],
CheckTag);
New[gad].ng_TopEdge-=Add;
}
return(Cur);
}