home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Otherware
/
Otherware_1_SB_Development.iso
/
amiga
/
programm
/
libs
/
lib_coll.lha
/
TOOLLIBR.ZOO
/
ToolLibrary
/
Tool.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-11-02
|
11KB
|
315 lines
#include <exec/types.h>
#include <intuition/intuition.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/mathieeedoubbas.h>
#include <proto/mathieeedoubtrans.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <math.h>
#define E 2.718281828
#define PPI 3.14159265358979323846
#define Mul(a,b) NewMul(a,b)
#define Add(a,b) NewAdd(a,b)
#define Sub(a,b) NewSub(a,b)
#define Div(a,b) NewDiv(a,b)
#define Flt(a) NewFlt(a)
#define Fix(a) NewFix(a)
#define Cmp(a,b) NewCmp(a,b)
#define Abs(a) NewAbs(a)
#define Neg(a) NewNeg(a)
#define Pow(a,b) NewPow(a,b)
#define Tst(a) NewTst(a)
#define Log10(a) NewLog10(a)
#define Floor(a) NewFloor(a)
#define ACos(a) NewAcos(a)
#define ASin(a) NewAsin(a)
#define ATan(a) NewAtan(a)
#define Sin(a) NewSin(a)
#define Cos(a) NewCos(a)
#define Tan(a) NewTan(a)
#define Log(a) NewLog(a)
#define Sqr(a) NewSqr(a)
double NewSub(double a,
double b);
double NewSqr(double a);
double NewSin(double a);
double NewCos(double a);
double NewTan(double a);
double NewPow(double a,
double b);
double NewNeg(double a);
double NewMul(double a,
double b);
double NewLog10(double a);
double NewLog(double a);
double NewFlt(LONG a);
LONG NewFix(DOUBLE a);
double NewFloor(double a);
double NewDiv(double a,
double b);
double NewCos(double a);
LONG NewCmp(double a,
double b);
double NewCeil(double a);
double NewAtan(double a);
double NewAsin(double a);
double NewAdd(double a,
double b);
double NewAcos(double a);
double NewAbs(double a);
LONG NewTst(DOUBLE a);
struct info
{
USHORT code;
struct IntuiMessage *Nachricht;
ULONG NachrichtenArt;
APTR IAddress;
SHORT MouseX,MouseY;
};
struct ToolBase
{
struct Library Node;
LONG SegList;
struct Library *SysBase;
struct GfxBase *GfxBase;
struct IntuitionBase *IntuitionBase;
struct Library *MathIeeeDoubBasBase;
struct Library *MathIeeeDoubTransBase;
};
struct Block
{
LONG Links,Rechts;
LONG RechenArt,Valid;
LONG Konstante;
LONG Fehler;
char *String;
DOUBLE Wert;
struct Block *Left,*Right;
};
struct Konstanten
{
DOUBLE k1,k2,k3,k4;
};
/* Fehlercodes */
#define DIVBYZERO 1 /* Es wurde durch 0 geteilt */
#define LOGNEG 2 /* Es wurde von Zahl <= 0 der Log gebildet */
#define SQRTNEG 4 /* Es wurde von Zahl <0 die Wurzel gebildet */
#define ATRIG 8 /* Es wurde von Zahl >1 oder <-1 asin/acos gebildet */
#define UNPAKLAM 16 /* Unpaarige Klammern */
#define TEST 32
#define NOFUNC 64 /* Keine Funktion eingegeben */
#define NO_KONST 128 /* Keine solche Konstante */
#define NO_MEM 256 /* Kein Speicher fⁿr weiteren Block */
#define POWERROR 512 /* Negative Zahl hoch Bruch wurde versucht */
#define NO_FUNC 1024 /* Keine Funktion gefunden */
/* Rechenarten */
#define ADDI 1
#define SUBT 2
#define MULT 3
#define DIVI 4
#define POWE 5
#define SINU 6
#define COSI 7
#define TANG 8
#define ASIN 9
#define ACOS 10
#define ATAN 11
#define LOG1 12
#define LNAT 13
#define ABSO 14
#define SIGU 15
#define SQRT 16
#define FLOO 17
#define X 18
#define MKON 19 /* Math. Konstante */
#define UKON 20 /* User Konstante */
#define ZIFF 21 /* Ziffern */
#define KLAM 22
VOID Print(struct RastPort *RP,
char *text,
LONG col,
LONG xpos,
LONG ypos);
ULONG EventAbfrage(struct Window *Window,
struct info *MsgInfo);
LONG request(char *JaPointer,
char *NeinPointer,
char *BodyPointer);
VOID Fak(DOUBLE *Ziel, LONG i);
VOID NuK(DOUBLE *Ziel,LONG n,LONG k);
VOID Free_Block(struct Block *First);
VOID Free_Konst(APTR Zeiger);
APTR Init_Konst(VOID);
LONG Set_Konst_P(APTR Zeiger,LONG Nummer,DOUBLE *Wert_P);
struct Block *Init_Mem(char *string);
LONG Init_Block(struct Block *Zeiger);
LONG check(LONG z1,LONG z2,
LONG l, LONG r,
char *string);
LONG checkback(LONG z1,LONG z2,
LONG l, LONG r,
char *string);
VOID copy(LONG i, LONG Anzahl,
char *Ziel,char *Source);
LONG PreCalc(struct Block *Zeiger,APTR Konst);
VOID GetKonst_P(DOUBLE *Ziel,APTR Konst,LONG Nummer);
DOUBLE GetKonst(APTR Konst,LONG Nummer);
LONG Calc_P(DOUBLE *Ziel,
struct Block *Zeiger,
DOUBLE *x);
LONG AnzahlKlammern(char *string);
VOID berechnen(DOUBLE *Ziel,
UBYTE *string,
DOUBLE *var,
struct Konstanten *kon,
LONG *Fehler);
VOID left(char *Ziel,
char *string,
LONG Anzahl);
VOID right(char *Ziel,
char *string,
LONG Anzahl);
VOID mid(char *Ziel,
char *string,
LONG Anfang,
LONG Anzahl);
VOID UmwStoF(DOUBLE *Ziel,
char *string);
VOID UmwFtoS(char *Ziel,
DOUBLE *Zahl1,
LONG Nachkomma);
LONG NewRequest(struct Window *AktWindow,
char *JaPointer,
char *NeinPointer,
char *BodyPointer);
VOID Box(struct RastPort *RastPort, /* Der RastPort */
LONG xs, /* Start: X */
LONG ys, /* Start: Y */
LONG xe, /* Ende : X */
LONG ye); /* Ende : Y */
VOID Center(struct Window *Window, /* Das Fenster */
char *string, /* Der Text */
LONG Color, /* Die Farbe */
LONG y_Pos); /* Die Y-Pos. */
VOID Gadget_On(struct Gadget *Gadget, /* Das Gadget */
struct Window *Window); /* Das Fenster */
VOID Gadget_Off(struct Gadget *Gadget, /* Das Gadget */
struct Window *Window); /* Das Fenster */
LONG GetPropPosH(struct Gadget *Gadget,/* Das Gadget */
LONG MaxPos); /* Max. Pos. */
LONG GetPropPosV(struct Gadget *Gadget,/* Das Gadget */
LONG MaxPos); /* Max. Pos. */
VOID SetPropPosH(struct Gadget *Gadget,/* Das Gadget */
struct Window *Window,
LONG MaxPos, /* Die MaxPos */
LONG Schrittweite, /* Schrittweite */
LONG NewPos); /* Neue Posit. */
VOID SetPropPosV(struct Gadget *Gadget,/* Das Gadget */
struct Window *Window,
LONG MaxPos, /* Die MaxPos */
LONG Schrittweite, /* Schrittweite */
LONG NewPos); /* Neue Posit. */
LONG PrepareTmpRas(struct RastPort *RP);/* Der RastPort */
VOID ClearTmpRas(struct RastPort *RP); /* Der RastPort */
LONG PrepareArea(struct RastPort *RP,
LONG MaxPoints);
VOID ClearArea(struct RastPort *RP);
struct Menu *LastMenu(struct Menu *menu);
struct MenuItem *LastItem(struct Menu *menu);
struct MenuItem *LastSub(struct Menu *menu);
struct Menu *AddMenu(struct Menu *menu,
char *Titel,
USHORT Flags);
struct Item *AddItem(struct Menu *menu,
char *Titel,
USHORT Flags,
char HotKey);
struct Item *AddSub(struct Menu *menu,
char *Titel,
USHORT Flags,
char HotKey);
struct MenuItem *GetItem(struct Menu *menu,
char *Titel,
USHORT Flags,
char HotKey);
VOID ClearMenu(struct Menu *menu);
struct MenuItem *FreeItem(struct MenuItem *item);
struct Menu *FreeMenu(struct Menu *menu);
VOID NewSetMenuStrip(struct Window *Window,
struct Menu *menu);
#pragma libcall ToolBase left 1e 9803
#pragma libcall ToolBase right 24 9803
#pragma libcall ToolBase mid 2a 109804
#pragma libcall ToolBase UmwFtoS 30 9803
#pragma libcall ToolBase copy 36 321004
#pragma libcall ToolBase check 3c 8321005
#pragma libcall ToolBase checkback 42 8321005
#pragma libcall ToolBase AnzahlKlammern 48 801
#pragma libcall ToolBase request 4e 21003
#pragma libcall ToolBase NewRequest 54 210804
#pragma libcall ToolBase EventAbfrage 5a 9802
#pragma libcall ToolBase Print 60 2108905
#pragma libcall ToolBase Box 66 3210905
#pragma libcall ToolBase Center 6c 108904
#pragma libcall ToolBase Gadget_On 72 9802
#pragma libcall ToolBase Gadget_Off 78 9802
#pragma libcall ToolBase GetPropPosH 7e 802
#pragma libcall ToolBase GetPropPosV 84 802
#pragma libcall ToolBase SetPropPosH 8a 2109805
#pragma libcall ToolBase SetPropPosV 90 2109805
#pragma libcall ToolBase PrepareTmpRas 96 901
#pragma libcall ToolBase ClearTmpRas 9c 901
#pragma libcall ToolBase PrepareArea a2 902
#pragma libcall ToolBase ClearArea a8 901
#pragma libcall ToolBase UmwStoF ae 9802
#pragma libcall ToolBase Fak b4 802
#pragma libcall ToolBase NuK ba 10803
#pragma libcall ToolBase berechnen c0 3210805
#pragma libcall ToolBase Init_Konst c6 0
#pragma libcall ToolBase Init_Mem cc 801
#pragma libcall ToolBase Init_Block d2 801
#pragma libcall ToolBase Set_Konst_P d8 10803
#pragma libcall ToolBase GetKonst_P de 19803
#pragma libcall ToolBase PreCalc e4 1002
#pragma libcall ToolBase Calc_P ea a9803
#pragma libcall ToolBase Free_Konst f0 801
#pragma libcall ToolBase Free_Block f6 801
#pragma libcall ToolBase CreatePort fc 802
#pragma libcall ToolBase DeletePort 102 801
#pragma libcall ToolBase CreateExtIO 108 802
#pragma libcall ToolBase DeleteExtIO 10e 802
#pragma libcall ToolBase CreateStdIO 114 801
#pragma libcall ToolBase DeleteStdIO 11a 801
#pragma libcall ToolBase LastMenu 120 801
#pragma libcall ToolBase LastItem 126 801
#pragma libcall ToolBase LastSub 12c 801
#pragma libcall ToolBase AddMenu 132 9803
#pragma libcall ToolBase AddItem 138 109804
#pragma libcall ToolBase AddSub 13e 109804
#pragma libcall ToolBase GetItem 144 109804
#pragma libcall ToolBase ClearMenu 14a 801
#pragma libcall ToolBase FreeItem 150 801
#pragma libcall ToolBase FreeMenu 156 801
#pragma libcall ToolBase NewSetMenuStrip 15c 8902