#ifndef _TAppWin_H_ #define _TAppWin_H_ // INCLUDES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "stlex.h" #include "db/db.h" #include "db/datetest/validate.cpp" // ValiDate() #include "db/datetest/datetost.cpp" // DateToString() #include "db/datetest/stodate.cpp" // StringToDate() #include "tfindfld.cpp" // NAME: TAppWin.H // TYPE: C++ CLASS INTERFACE // DESCRIPTION: Interface for the TAppWindow class // SYNOPSIS: /***************************************************************** For an explanation of STLEx see readme.txt TAppWindow is derived from TWindow and encapsulates most of the functionality for the STLEx Program. In addition to the event and command handling functions the database and an iterator is encapsulated. *****************************************************************/ // EXAMPLES: // BUGS: // SEE ALSO: //---------------------------------------------------------------- enum states {BROWSING, EDITING, ADD_REC, IDLE }; enum fileStates {OPEN, CLOSED, NEW}; class TAppWindow : public TWindow { public: // construct TAppWindow(TWindow* parent); // destroy ~TAppWindow(); // edits TEdit *coNameEdit, *contEdit, *deptEdit, *addEdit, *cityEdit, *postEdit, *telEdit, *contDateEdit, *callOnEdit, *memoEdit, *calledEdit, *toCallEdit; // nav buttons TButton *nextBtn, *prevBtn, *firstBtn, *lastBtn, // file & database handling buttons *addBtn, *updateBtn, *clearBtn, *delBtn, // mode buttons *browseBtn, *editBtn; // labels TStatic *message, *debug1, *debug2; protected: // file handling TOpenSaveDialog::TData* FileData; void SetState( states ); // BROWSING, EDITING, ADD_REC, IDLE void SetFileState( fileStates ); // OPEN, CLOSED, NEW void SetIsDirty( bool ); // Override member functions of TWindow bool CanClose(); void SetupWindow(); // updates edits with data pointed to by iterator TDBIt& RefreshEdits( TDBIt& ); void ClearEdits(); void SetEditsReadOnly( bool ); bool IsEditsModified(); // Message response functions void CmFileNew(); void CmFileOpen(); void CmFileClose(); void CmFileSave(); void CmFileSaveAs(); void CmFind(); // finds coName void EvNextBnClicked(); // displays next record void EvPrevBnClicked(); // displays previous record void EvFirstBnClicked(); // displays first rec void EvLastBnClicked(); // displays last rec void EvAddBnClicked(); // adds a record void EvEditBnClicked(); // changes mode to editing void EvBrowseBnClicked(); // changes mode to browsing void EvUpdateBnClicked(); // saves edits void EvClearBnClicked(); // clears edits void EvDelBnClicked(); // deletes record // command-enabling functions void CeFileNew(TCommandEnabler&); void CeFileClose(TCommandEnabler&); void CeFileOpen(TCommandEnabler&); void CeFileSave(TCommandEnabler&); void CeFileSaveAs(TCommandEnabler&); void CeFind(TCommandEnabler&); void SaveFile(); void OpenFile(); // gets / sets iterator TDBIt* GetIt() { return ⁢ }; void SetIt(TDBIt* _it) { it = *_it; }; private: TDatabase* d; TDBIt it; int state; int fileState; bool IsDirty; DECLARE_RESPONSE_TABLE(TAppWindow); };// TAppWindow #endif // _TAppWin_H_