/***************************************************************************
* prefs.c: Voreinstellungen des Programmes verändern			   *
*	   - Bildverhältnis						   *
*	   - Icons fuer IFF-Datein ja/nein				   *
*	   - Screen-Titel-Zeile ja/nein 				   *
*									   *
* created: 02-Apr-91 Mtwx						   *
* updated: 13-Jun-91 Mtwx						   *
***************************************************************************/


/* ------------------------------- Includes ----------------------------- */
#include <libraries/arpbase.h>
#include <proto/intuition.h>
#include <math.h>
#include "chem_defs.h"
#include "prefs.h"
#include "messages.h"

/* ------------------------------- Defines ------------------------------ */

/* ------------------------------- external references ------------------ */

extern USHORT GadgetID;
extern struct Border StringGBorder2;
extern struct Window *Window1;
extern struct Screen *FirstScreen;

extern void SimpleRequest(char*,...);

/* ---------------------------------------------------------------------- */

void prefs(struct ChemPrefs *ChemPrefs)
{
  int ende=0;
  SHORT SGVec2[]={ 0,11,35,11,35,0 };
  SHORT SGVec1[]={ 0,10,0,0,34,0 };
  struct Border LocalSGBorder1;
  struct Border LocalSGBorder2;
  struct Window *PrefsWindow=NULL;

  LocalSGBorder1=StringGBorder1;
  LocalSGBorder2=StringGBorder2;
  LocalSGBorder1.NextBorder=&LocalSGBorder2;
  LocalSGBorder1.XY=SGVec1;
  LocalSGBorder2.XY=SGVec2;
  BVGadget.GadgetRender=(APTR)&LocalSGBorder1;
  PrefsFenster.Screen = FirstScreen;
  sprintf(BVBuffer,"%3.1f",ChemPrefs->bv);

  if (!(PrefsWindow = OpenWindow(&PrefsFenster)))
  {
    SimpleRequest(NO_PREFS_WIN);
    return;
  }
  Print(PrefsWindow,YXREL_TEXT,1,0,10,26);
  Print(PrefsWindow,ICONCREAIFF_TEXT,1,0,10,48);
  Print(PrefsWindow,TITLE_TEXT,1,0,10,68);
  while(!ende)
  {
    switch(Nachricht(PrefsWindow))
    {
      case CLOSEWINDOW:
	CloseWindowSafely(PrefsWindow,TRUE);
	ende++;
	break;
      case GADGETUP:
	switch(GadgetID)
	{
	  case BVERH:
	    ChemPrefs->bv=atof(BVBuffer);
	    break;
	  case ICONCREAIFF:
	    if(IconCreaIFFGadget.Flags & SELECTED)
	      ChemPrefs->IconCreaIFF=TRUE;
	    else
	      ChemPrefs->IconCreaIFF=FALSE;
	    break;
	  case TITEL:
	    if(TitleGadget.Flags & SELECTED)
	      ChemPrefs->Title=TRUE;
	    else
	      ChemPrefs->Title=FALSE;
	    ShowTitle(FirstScreen,ChemPrefs->Title);
	    break;
	}
	break;
    }
  }
  return;
}
