/* gadget stuff */

#include "aib.h"
#include "extern.h"

/* defines... */

/* prototypes */
void gad_opts (struct Gadget *, UWORD);
void prepare_newgad (void);
void locate_gadget(int);

/* globals */


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

void gad_opts (struct Gadget *gad, UWORD code)
{
 	switch (gad->GadgetID) {

/** init menu... */
case G1_user:
	strcpy(currgad->name,((struct StringInfo*)gad->SpecialInfo)->Buffer);
	break;

case G1_left:
	currgad->l=((struct StringInfo *)gad->SpecialInfo)->LongInt;
	break;

case G1_top:
	currgad->t=((struct StringInfo *)gad->SpecialInfo)->LongInt;
	break;

case G1_widt:
	currgad->w=((struct StringInfo *)gad->SpecialInfo)->LongInt;
	break;

case G1_height:
	currgad->h=((struct StringInfo *)gad->SpecialInfo)->LongInt;
	break;

case G1_text:
	strcpy(currgad->text,((struct StringInfo*)gad->SpecialInfo)->Buffer);
	break;	

case GA_disa:
	currgad->dis = (currgad->dis)?FALSE:TRUE;
	break;

case GT_Under:
	strcpy(currgad->under,((struct StringInfo*)gad->SpecialInfo)->Buffer);
	break;	

case G1_chfont:
	currgad->cfont = (currgad->cfont)?FALSE:TRUE;
	break;

case G1_type:	
	currgad->type=code;
	break;

/* parameters menu... */

  }
}


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


void locate_gadget (int index)
{

 struct maingad *temp = topgad;

 while (temp->id != index && temp->next) temp = temp->next;
 currgad = temp;

}


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

 
void prepare_newgad (void)
{
 struct maingad *temp=topgad; 

 if (!topgad) {
  	currgad=topgad=(struct maingad *)calloc(sizeof(struct maingad),1);
	currgad->prev = NULL;
 	currgad->id = 0 ;
	}
else {
 	while(temp->next) temp=temp->next;
	temp->next = (struct maingad *)calloc(sizeof(struct maingad),1);
	currgad=temp->next;
	currgad->id = temp->id+1;
	currgad->prev = temp;
      }

currgad->next = NULL;
currgad->text[0] = NULL;
currgad->name[0] = NULL;
currgad->under = NULL;
currgad->type = 0;
}
