/*
** Konfiguration des Rechnungsprogrammes
**
** Copyright (C) 1996 by Stefan Scherer.
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for non-commerical use and without fee is hereby granted,
** provided that the above copyright notice appear in all copies and that
** both that copyright notice and this permission notice appear in
** supporting documentation.  This software is provided "as is" without
** express or implied warranty.
*/

#ifndef CONFIG_H
#define CONFIG_H

#include <exec/types.h>


/* max. Puffergröße */

#define MAX_CONF_LEN 100


/* o-functions */

int CO_LoadConfig (void);
int CO_SaveConfig (void);

void CO_SetBankName (STRPTR s);
void CO_SetBLZ (STRPTR s);
void CO_SetKontonr (STRPTR s);
void CO_SetPhoneVorwahl (STRPTR s);
void CO_SetPhone (STRPTR s);
void CO_SetFaxVorwahl (STRPTR s);
void CO_SetFax (STRPTR s);
void CO_SetZeichen (STRPTR s);
void CO_SetFirma (STRPTR s);
void CO_SetInhaber (STRPTR s);
void CO_SetStrasse (STRPTR s);
void CO_SetOrt (STRPTR s);
void CO_SetMwSt1 (double n);
void CO_SetMwSt2 (double n);
void CO_SetMwSt1New (double n);
void CO_SetMwSt2New (double n);
void CO_SetOrderMode (LONG s);
void CO_SetInvoiceMode (LONG s);
void CO_SetLetterMode (LONG s);
void CO_SetArticleMwStMode (LONG s);
void CO_SetOrderMwStMode (LONG s);
void CO_SetInvoiceMwStMode (LONG s);

void CO_SetDVIprinter (STRPTR s);
void CO_SetDVIHoffset (LONG s);
void CO_SetDVIVoffset (LONG s);

void CO_SetKopf1 (STRPTR s);	/* zwei Zeilen */
void CO_SetKopf2 (STRPTR s);	/* zwei Zeilen */
void CO_SetFuss1 (STRPTR s);	/* vier Fußzeilen */
void CO_SetFuss2 (STRPTR s);	/* vier Fußzeilen */
void CO_SetFuss3 (STRPTR s);	/* vier Fußzeilen */
void CO_SetFuss4 (STRPTR s);	/* vier Fußzeilen */


/* v-functions */

STRPTR CO_GetBankName (void);
STRPTR CO_GetBLZ (void);
STRPTR CO_GetKontonr (void);
STRPTR CO_GetPhoneVorwahl (void);
STRPTR CO_GetPhone (void);
STRPTR CO_GetFaxVorwahl (void);
STRPTR CO_GetFax (void);
STRPTR CO_GetZeichen (void);
STRPTR CO_GetFirma (void);
STRPTR CO_GetInhaber (void);
STRPTR CO_GetStrasse (void);
STRPTR CO_GetOrt (void);
double CO_GetMwSt1 (void);
double CO_GetMwSt2 (void);
double CO_GetMwSt1New (void);
double CO_GetMwSt2New (void);
double CO_GetMwSt (UWORD preistab);
LONG CO_GetOrderMode (void);
LONG CO_GetInvoiceMode (void);
LONG CO_GetLetterMode (void);
LONG CO_GetArticleMwStMode (void);
LONG CO_GetOrderMwStMode (void);
LONG CO_GetInvoiceMwStMode (void);

LONG CO_GetBigArticles (void);
LONG CO_GetMoreInvoice (void);
LONG CO_GetIsNetto (void);

STRPTR CO_GetDVIprinter (void);
LONG CO_GetDVIHoffset (void);
LONG CO_GetDVIVoffset (void);

LONG CO_LabelLandscape (void);

STRPTR CO_GetKopf1 (void);	/* zwei Zeilen */
STRPTR CO_GetKopf2 (void);	/* zwei Zeilen */
STRPTR CO_GetFuss1 (void);	/* vier Fußzeilen */
STRPTR CO_GetFuss2 (void);	/* vier Fußzeilen */
STRPTR CO_GetFuss3 (void);	/* vier Fußzeilen */
STRPTR CO_GetFuss4 (void);	/* vier Fußzeilen */
STRPTR CO_GetErrorMsg (void);

STRPTR CO_GetFormatName (void);
STRPTR CO_GetTeXName (void);
STRPTR CO_GetPreviewName (void);
STRPTR CO_GetPrintName (void);

ULONG CO_GetLabelX (void);
ULONG CO_GetLabelY (void);

void ReadKeyfile (STRPTR buffer);

/* Fehlercodes */

enum
  {
    ERR_CONF_OK,		/* kein Fehler aufgetreten */
    ERR_CONF_LOAD,		/* allg. Filefehler */
    ERR_CONF_SAVE,		/* allg. Filefehler */
  };


/*
** im Keyfile steckt auch eine kleine Konfiguration mit drin.
** in 24 Bytes können Flags gesetzt werden.
** Default ist NULL in allen Flags
*/

struct FixConfig
  {
    ULONG LabelFlags;
    ULONG dummy1;		/* must be 0L */
    ULONG dummy2;		/* must be 0L */
    ULONG dummy3;		/* must be 0L */
    ULONG dummy4;		/* must be 0L */
    ULONG dummy5;		/* must be 0L */
  };

/* LabelFlags */

#define LF_BIGLABEL 1		/* große Etiketten (Bernd Hoffarth) */

extern struct FixConfig KeyConfig;	/* kommt aus Benutzer.a */

#endif /* CONFIG_H */
