home *** CD-ROM | disk | FTP | other *** search
-
- /* Headerfile for the db project */
-
- #include <exec/lists.h>
- #include <dos.h> /* FMSIZE and FNSIZE */
- #include <stdio.h> /* FILE */
- #include <exec/nodes.h>
- #include <exec/lists.h>
- #include <exec/types.h>
- #include <libraries/locale.h>
- #include <proto/locale.h>
-
- #define CATCOMP_NUMBERS
- #include "db_strings.h"
- #include "Select.h"
-
- /**********************************************************************/
- /* Defines */
- /**********************************************************************/
-
- #define TOGGLE_LED *(UBYTE *)0xbfe001 ^= 2
-
- /* Locale */
- #define GetAppStr(index) (GetString(&LocaleInfo,(index)))
-
- #define DSIZE 25
-
-
- #define TEXTFIELD_KIND 4711
-
-
- /* Rawkeycodes + 128 for upkey codes */
- #define RAW_TAB (0x42)
- #define RAW_ESC (0x45)
- #define RAW_HELP (0x5f)
-
- #define RAW_UP (0x4c)
- #define RAW_DOWN (0x4d)
- #define RAW_LEFT (0x4f)
- #define RAW_RIGHT (0x4e)
-
- #define RAW_F1 (0x50)
- #define RAW_F2 (0x51)
- #define RAW_F3 (0x52)
- #define RAW_F4 (0x53)
- #define RAW_F5 (0x54)
- #define RAW_F6 (0x55)
- #define RAW_F7 (0x56
- #define RAW_F8 (0x57)
- #define RAW_F9 (0x58)
- #define RAW_F10 (0x59)
-
- #define VANILLA_DEL (0x7f)
- #define VANILLA_ESC (0x1b)
-
- #define SEP_SPACE (' ')
- #define SEP_TAB ('\t')
-
- /* Layout defines */
- #define DEFTABSIZE 6
- #define STRGADFRAMESWIDTH 14
- #define STRGADFRAMESHEIGHT 6
-
-
- #define LATER NULL
-
- #define MODE_NORMAL 0
- #define MODE_FIND 1
- #define MODE_SORT 2
- #define MODE_FILTER 3
-
-
- /* Limits */
- #define FIELDNAMELENGTH 50
- #define LAYOUTNAMELENGTH 50
- #define WINDOWTITLELENGTH 80
- #define DEFMAXFLDLEN 200
-
- #define LOADBUFFERSIZE 65536 /* This restricts the recordlength */
-
- #define NOTMODIFIED 0
- #define RECMODIFIED 1
- #define PROMODIFIED 2
-
- /* For the ASL file requester */
- #define MYLEFTEDGE 50
- #define MYTOPEDGE 50
- #define MYWIDTH 300
- #define MYHEIGHT 300
-
- /* Savemodes for Save() */
- #define SAVE_PRO 0
- #define SAVE_VIEW 1
- #define SAVE_VIEW_WN 2
- #define SAVE_TAB_ASCII 3
- #define SAVE_COMMA_ASCII 4
-
- #define SORT_DIR_AZ 0
- #define SORT_DIR_ZA 1
-
- /* Codes returned by LoadField */
- #define BUFSIZE_ERR 0
- #define FLD_OK 1
- #define REC_OK 2
- #define END_OF_FILE 3
-
- /* Error codes from various functions */
- #define MEM_ERR -1
- #define RFF_ERR -2
- #define FILE_ERR -3
-
- #define GAD_ERR -4
- #define WIN_ERR -5
- #define MENU_ERR -6
- #define WINSIZE_ERR -7
-
- enum arguments { FILES, DEVICE, UNIT, DIALPREFIX, DIALPOSTFIX, AREACODE,
- PUBSCREEN, FONTNAME, FONTSIZE, NOICONS, NOSPEEDRENDER, NORETURNSTEP, NOSERIAL,
- HORIZBAR, ESCQUIT, TONEDIAL, TONEDIALSPEED, CCITT5, MAKEBACKUP, LOCALESORT,
- HIGHLABEL, NOBORDER, DEFPATTERN, DEFREXXPATTERN };
-
- enum serialerrors { OK, MSGPORTERR, IOEXTERR, DEVICEERR };
-
- typedef char loadreturncode;
-
- /**********************************************************************/
- /* externs */
- /**********************************************************************/
-
- extern char EmptyString[];
-
- extern struct Pro *CurrentPro;
-
- /* This is from the DataIcon.c file created by IconEdit */
- /* We will modify fields here before writing icons */
- extern struct DiskObject DataIcon;
-
- extern LONG MyArgArray[];
-
- extern struct MsgPort *AWPort;
- extern struct TextFont *UserTextFont;
- extern struct LocaleInfo LocaleInfo;
-
- extern LONG WinSig;
-
- extern struct Gadget *NextGad; /* MyStrHook() sets this if tabcycling */
-
- extern struct Library *RexxSysBase;
- extern struct Library *LocaleBase;
- extern struct Library *DiskfontBase;
- extern struct Library *IFFParseBase;
- extern struct Library *IconBase;
- extern struct Library *CxBase;
- extern struct Library *AslBase;
- extern struct GfxBase *GfxBase;
- extern struct IntuitionBase *IntuitionBase;
- extern struct Library *GadToolsBase;
- extern struct Library *UtilityBase;
- extern struct Library *WorkbenchBase; /* For AppWindow */
-
-
- /**********************************************************************/
- /* structs */
- /**********************************************************************/
-
- typedef char *Field;
-
- struct Space {
- UWORD XOffset;
- UWORD YOffset;
- WORD Width;
- WORD Height;
- };
-
- struct Rec {
- struct Rec *Next;
- struct Rec *Prev;
- Field *Fields;
- short FldSum;
- };
-
- struct FldInfo {
- struct FldInfo *Next;
- struct MinList FldTags;
- char Name[FIELDNAMELENGTH];
- int Len; /* Max length of field (excluding '\0') */
- char Type; /* String, Checkbox, Cycle.. */
- };
-
- struct VisFldInfo {
- struct VisFldInfo *Next;
- struct MinList VisTags;
- char Name[FIELDNAMELENGTH];
- struct Gadget *Gadget; /* Corresponding gadget in window */
- struct Space Pos; /* Gadget position */
- struct IntuiText Label; /* For textfield gadget */
- short Offset; /* Field offset in database */
- unsigned char VisLen; /* Visual length in chars */
- char Format; /* Visual format: Caps, ALL CAPS... */
- char FTyp; /* Fieldtype */
- int Code; /* Active choice in cyclegadget so we don't use v39 func. */
- char **CEnt; /* Pointer to Cyclechoices */
- char NEnt; /* Number of entries in cyclegad */
- char VisSep; /* Visual separator: Space, TAB or NewLine */
- };
-
- struct RxInfo { /* Rexx menu item data */
- struct RxInfo *Next;
- struct MinList RxTags;
- /* char Name[FIELDNAMELENGTH]; */
- };
-
- struct SR {
- struct SR *Next;
- APTR GadgetRender;
- };
-
- /*
- * Layout is the internal name for a View in db. (The name "View"is used by the OS)
- */
-
- struct Layout {
- struct Layout *NextLayout;
- struct MinList LayTags;
- char Name[LAYOUTNAMELENGTH];
- char Title[WINDOWTITLELENGTH]; /* WindowTitle */
- struct Window *Window;
- WORD XPos, YPos;
- struct AppWindow *AppWin;
- struct Gadget *GList;
- struct Gadget *DragGad;
- Select *Browser;
- struct SR *FirstSR; /* SpeedRender struct that holds gadget borders */
- struct VisFldInfo *FirstVisFldInfo;
- struct VisFldInfo *FirstUndoVisFldInfo;
- BOOL ComplexGadgets;
- };
-
- struct SoftMenu {
- struct MenuItem *Items; /* The variable menuitems */
- struct NewMenu *NewItems; /* Stores NewMenu structs for Items */
- int NewItemsNum; /* For deallocation */
- };
-
- struct Pro {
- struct Pro *NextPro;
- struct MinList ProTags;
- struct MinList UnknownLines;
- char Name[FNSIZE];
- char Drawer[FMSIZE];
- char Pattern[FMSIZE];
- char OutputName[FMSIZE];
- char OutputDrawer[FMSIZE];
- char ARexxName[FMSIZE];
- char ARexxDrawer[FMSIZE];
- char ARexxPattern[FMSIZE];
- struct Rec *FirstRec;
- int RecSum;
- struct Rec *CurrentRec;
- int RecNum;
- struct Rec *FindRec;
- struct Rec *SortRec;
- struct Rec **Recpp; /* Points to either CurrentRec, FindRec or SortRec */
- struct FldInfo *FirstFldInfo;
- struct RxInfo *FirstRxInfo; /* The rxmenu RFF line */
- struct Layout *FirstLayout;
- struct Layout *CurrentLayout;
- struct Menu *Menu; /* Same menustrip for the whole project */
- struct SoftMenu ViewMenu;
- struct SoftMenu ARexxMenu;
- char Mode;
- BOOL IsSorted;
- char Sep; /* Separator: ; , space or tab */
- char Modified; /* bit 0 = Record modified, bit 1 = project modified */
-
- BOOL Quiet; /* Rexx stuff. Don't update GUI */
- short CurrentFldOffset; /* Rexx stuff */
- };
-
- /**********************************************************************/
- /* functions */
- /**********************************************************************/
-
- STRPTR __asm GetString(register __a0 struct LocaleInfo *li,
- register __d0 LONG stringNum);
-
- int DoDial(char *phonenumber);
- int DB_CUT(void);
- int DB_COPY(void);
- int DB_PASTE(void);
- BOOL PasteFromClipboard(struct Pro *Pr, struct Rec *crp);
-
- int ChangeView(struct Layout *lay);
-
- void UpdateRecord(struct Pro *Pr);
- BOOL UpdateFld(struct Rec *crp, short offset, char *s);
- void UpdateWindow(struct Pro *Pr);
- void UpdateDragBar(struct Pro *Pr);
- void UpdateGadgets(struct Pro *Pr);
-
- struct Rec *FindRecord(struct Pro *Pr, int StartRec, int Dir);
- void DoSort(struct Pro *Pr, short offset);
- BOOL JumpList(struct Pro *Pr, int delta);
-
- char *ReadVisFld(struct Pro *Pr, struct VisFldInfo *vf);
- LONG EasyLocRequest(struct Window *w, struct EasyStruct *es, ULONG *idcmp,
- APTR arg1, ...);
-
- void SetProMode(struct Pro *Pr, char Mode);
- BOOL IsInputBlocked(void);
- BOOL BlockInput(struct Window *Win, BOOL Delay);
- void FreeInput(struct Window *Win);
- Field GetFld(struct Rec *crp, short Offset);
-
- extern void ShowError(int errnum, char *text);
-
- extern void RFFDelete(struct Pro *);
- extern struct RFFTag *FindTag(struct MinList *list, short int id);
- extern void DeleteTag(struct RFFTag *ot);
- extern void DeleteRFFLine(struct RFFLine *ol);
-
- extern struct VisFldInfo *GetVisFldInfo(struct Layout *Lay, struct Gadget *g);
-
- extern struct FldInfo *GetFldInfo(struct Pro *, short);
- extern BOOL SpeedRenderOn(struct Layout *Lay);
- extern void SpeedRenderOff(struct Layout *Lay);
- extern void ByeBye(void);
- extern struct Layout *NewLayout(struct Pro *Pr);
-
-
- /**********************************************************************/
- /* structures */
- /**********************************************************************/
-
- extern struct NewMenu DesignNewMenu[];
- extern Class *TextFieldClass;
-