/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*  CHKBK.H                            Alan C. Partis                        */
/*                                     Copyright (C) AP MicroSystems, 1991   */
/*                                                                           */
/*  Description:   General header file for the CHKBK program.  Contains      */
/*       global constant definitions, function prototypes, and global data   */
/*       structures.  Also contains definitions for screens text messages.   */
/*                                                                           */
/*  Date      Initials  Comments                                             */
/*  -----------------------------------------------------------------------  */
/*  05-10-91  ACP       initial creation                                     */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef  _CHKBK_H
#define  _CHKBK_H

#include <conio.h>                     
#include "window.h"
#include "check.h"

#define  DOWN           0              // indicates to page down
#define  SZ_PATH        80             // maximum path/filename size
#define  UP             1              // indicates to page up

//
// colors used by various objects
//
    // ----- colors for fields
#define  FG_LABEL       BLACK          // needed for color defines used here
#define  BG_LABEL       LIGHTGRAY      //   BLACK 
#define  FG_FIELD       BLACK          //   BLUE 
#define  BG_FIELD       CYAN           //   GREEN
#define  FG_FKEYLABEL   WHITE          //   CYAN
#define  BG_FKEYLABEL   BLUE           //   RED
#define  FG_FKEY        BLUE           //   MAGENTA
#define  BG_FKEY        LIGHTGRAY      //   BROWN
#define  FG_MESSAGE     LIGHTGREEN     //   LIGHTGRAY
#define  BG_MESSAGE     BLUE           //   DARKGRAY     foreground only
#define  FG_LIST        GREEN          //   LIGHTBLUE
#define  BG_LIST        BLACK          //   LIGHTGREEN
#define  FG_LIST_BROWSE WHITE          //   LIGHTCYAN
#define  BG_LIST_BROWSE RED            //   LIGHTRED
#define  FG_HILIGHT     WHITE          //   LIGHTMAGENTA
#define  BG_HILIGHT     BLUE           //   YELLOW
                                       //   WHITE
    // ----- colors for windows
#define  FG_DESK        WHITE          
#define  BG_DESK        BLUE           
#define  FG_XACT        BLACK          
#define  BG_XACT        LIGHTGRAY      
#define  FG_MESS        BLACK          
#define  BG_MESS        LIGHTGRAY
#define  FG_REG         BLACK
#define  BG_REG         LIGHTGRAY
#define  FG_HELP        LIGHTGREEN
#define  BG_HELP        MAGENTA

//
// Field ID for entry fields
//
#define  FID_NUMBER     1
#define  FID_DATE       2
#define  FID_DESC       3
#define  FID_CHECK      4
#define  FID_DEPOSIT    5


//
// Fields used in the transaction window
//
charField        L1    (2,  1,  3,  "No.",         FG_LABEL, BG_LABEL, LABEL,           (Field *)NULL);
charField        L2    (7,  1,  4,  "Date",        FG_LABEL, BG_LABEL, LABEL,           &L1);
charField        L3    (16, 1,  11, "Description", FG_LABEL, BG_LABEL, LABEL,           &L2);
charField        L4    (57, 1,  5,  "Check",       FG_LABEL, BG_LABEL, LABEL,           &L3);
charField        L5    (66, 1,  7,  "Deposit",     FG_LABEL, BG_LABEL, LABEL,           &L4);
charField        Number(2,  2,  4,  "",            FG_FIELD, BG_FIELD, DISPLAY | ENTRY, &L5,     FID_NUMBER);
dateField        Date  (7,  2,                     FG_FIELD, BG_FIELD, DISPLAY | ENTRY, &Number, FID_DATE);
charField        Desc  (16, 2,  40, "",            FG_FIELD, BG_FIELD, DISPLAY | ENTRY, &Date,   FID_DESC);
currencyField    Chk   (57, 2,  8,  0.0,           FG_FIELD, BG_FIELD, DISPLAY | ENTRY, &Desc,   FID_CHECK);
currencyField    Dep   (66, 2,  8,  0.0,           FG_FIELD, BG_FIELD, DISPLAY | ENTRY, &Chk,    FID_DEPOSIT);
charField        L6    (2,  4,  8,  "Cleared:",    FG_LABEL, BG_LABEL, LABEL,           &Dep);
charField        Clr   (10, 4,  3,  "",            FG_FIELD, BG_FIELD, DISPLAY,         &L6);
charField        L7    (58, 4,  8,  "Balance:",    FG_LABEL, BG_LABEL, LABEL,           &Clr);
currencyField    Bal   (66, 4,  8,  0.0,           FG_FIELD, BG_FIELD, DISPLAY,         &L7);


//
// Fields used in the desktop window
//
charField    LF1  (6,  1, 6, "  F1",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   (Field *)NULL);
charField    LF2  (13, 1, 6, "  F2",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF1);
charField    LF3  (20, 1, 6, "  F3",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF2);
charField    LF4  (27, 1, 6, "  F4",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF3);
charField    LF5  (34, 1, 6, "  F5",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF4);
charField    LF6  (41, 1, 6, "  F6",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF5);
charField    LF7  (48, 1, 6, "  F7",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF6);
charField    LF8  (55, 1, 6, "  F8",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF7);
charField    LF9  (62, 1, 6, "  F9",  FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF8);
charField    LF10 (69, 1, 6, "  F10", FG_FKEYLABEL, BG_FKEYLABEL, LABEL,   &LF9);
charField    F1   (6,  2, 6, " Help", FG_FKEY,      BG_FKEY,      DISPLAY, &LF9);
charField    F2   (13, 2, 6, " Save", FG_FKEY,      BG_FKEY,      DISPLAY, &F1);
charField    F3   (20, 2, 6, " Quit", FG_FKEY,      BG_FKEY,      DISPLAY, &F2);
charField    F4   (27, 2, 6, " Done", FG_FKEY,      BG_FKEY,      DISPLAY, &F3);
charField    F5   (34, 2, 6, "     ", FG_FKEY,      BG_FKEY,      DISPLAY, &F4);
charField    F6   (41, 2, 6, " Stmt", FG_FKEY,      BG_FKEY,      DISPLAY, &F5);
charField    F7   (48, 2, 6, "Br Rt", FG_FKEY,      BG_FKEY,      DISPLAY, &F6);
charField    F8   (55, 2, 6, " Del",  FG_FKEY,      BG_FKEY,      DISPLAY, &F7);
charField    F9   (62, 2, 6, "Clear", FG_FKEY,      BG_FKEY,      DISPLAY, &F8);
charField    F10  (69, 2, 6, " New",  FG_FKEY,      BG_FKEY,      DISPLAY, &F9);


//
// Fields used in the message window
//
charField     LM1     (31,1,  14, "ChkBk Messages", FG_MESSAGE, BG_MESS,    LABEL, (Field *)NULL);
charField     MessMess(9, 2,  60, "",               FG_MESSAGE, BG_MESSAGE, DISPLAY, &LM1);
charField     LM2     (2, 4,  6,  "Record",         FG_MESS,    BG_MESS,    LABEL,   &MessMess);
charField     LM3     (14,4,  2,  "of",             FG_MESS,    BG_MESS,    LABEL,   &LM2);
charField     LM4     (56,4,  13, "Browse Record",  FG_MESS,    BG_MESS,    LABEL,   &LM3);
charField     MessRec (9, 4,  4,  "",               FG_MESSAGE, BG_MESS,    DISPLAY, &LM4);
charField     MessRecs(17,4,  4,  "",               FG_MESSAGE, BG_MESS,    DISPLAY, &MessRec);
charField     MessBrws(70,4,  4,  "",               FG_MESSAGE, BG_MESS,    DISPLAY, &MessRecs);

//
// Fields in the register window
//
#define       SZ_REG_LIST    5
#define       SZ_REG_ITEMS   6
charField     Lr1(27, 1,  21, "Browse ChkBk Register", FG_REG, BG_REG, LABEL, (Field *)NULL);
charField     r1 (2,  2,  72, "", FG_LIST, BG_LIST, DISPLAY, &Lr1);
charField     r2 (2,  3,  72, "", FG_LIST, BG_LIST, DISPLAY, &r1);
charField     r3 (2,  4,  72, "", FG_LIST, BG_LIST, DISPLAY, &r2);
charField     r4 (2,  5,  72, "", FG_LIST, BG_LIST, DISPLAY, &r3);
charField     r5 (2,  6,  72, "", FG_LIST, BG_LIST, DISPLAY, &r4);


entryWindow   win_desk(1, 1,  80, 25, FG_DESK, BG_DESK, &LF1);
entryWindow   win_xact(4, 4,  77, 8,  FG_XACT, BG_XACT, &L1);
entryWindow   win_mess(4, 11, 77, 14, FG_MESS, BG_MESS, &MessMess);
listWindow    win_reg;
listWindow    win_help;

//
// message window strings
//
#define  PLS_WAIT       "Saving Checkbook to file.  Please wait . . ."
#define  STMT_BAL       "Balance as it appears on the statement:"

//
// client code function prototypes
//
int      EditField(Check *current, Field *curfield);
void     FillRegisterWin(Check *check, charField *headfield);
void     FillXactWin(Check *, XACT *);
void     GetRegister(char *filename, Check*& head, Check*& tail);
int      Page(int flag, Check*& Browse);
void     ReleaseRegister(char *filename, Check*& head);
void     RestoreWin(Window *win, void *buffer);
void     ShareWareBanner(void);
void    *SaveWin(Window *win);
void     StatementBalance(Check *head, charField *output);

#endif


  Copyright © Thundernet Development Group Inc., 2003.
All rights reserved.