Accounting Software
Small Business Software Estimating Software
Inventory SoftwareInventory Control SoftwareInventory Tracking SoftwareInventory Management SoftwareConstruction Management SoftwareProject Management SoftwareBusiness Management Software

Custom Layouts (Header)

Link to: source code | other data directory

Copyright Turtle Creek Software 1996-2006. All Rights Reserved.

This class manages custom layouts the Goldenseal job cost accounting software,
project management software, construction estimating software
and construction project estimating software.

class DB_Layout : public DB_PersistentObject // TCS changed inheritance 6/28/02
{
public:

typedef void (*NonMemberFieldFunc)(SInt32 fieldID,
const CTextString &fieldName,
const CTextString &description,...);

static CLASS_DESC *sDescriptor;
static DB_PersistentObject *MakeNew() { return TCS_NEW DB_Layout; }

DB_Layout();
virtual ~DB_Layout();

virtual DBid GetDBClassID(void) const { return id_Layout; }

virtual NeoSize GetFileLength(const CNeoFormat *aFormat) const;

virtual Boolean GetMemberValue(const TagType aTag, const TagType aType,
void *aValue) const;
virtual Boolean SetMemberValue(const TagType aTag, const TagType aType,
const void *aValue);
virtual void CopyFrom(DB_PersistentObject *source, const UInt8 copyFlags);

virtual void ReadObject(CNeoStream *aStream, const TagType aTag);
virtual void WriteObject(CNeoStream *aStream, const TagType aTag);

static CTextString GetButtonName(DB_ClassDescriptor *desc, SInt32 buttonID);
static CTextString GetLayoutName(const DBid layoutID, const DBid layoutClass = id_Layout,
const SInt32 layoutResType = cLayoutResType);

static TCS_Handle GetLayoutHandle(const SInt32 layoutObjClassID,
const SInt32 layoutID,
const Boolean resourceOnly = false);

static Boolean LayoutExists(const DBid inLayoutID,
const DBid inLayoutClassID = id_Layout,
const DBid inLayoutResourceID = cLayoutResType,
const Boolean lookInDB = true,
const Boolean lookInResource = true);
static Boolean LayoutResourceExists(const DBid inLayoutID,
const DBid inLayoutResourceID = cLayoutResType);
static ResIDT GetLayoutIDForForm(const DBid classID,
const SInt32 formType);

#if TCS_MULTIUSER
static Boolean LayoutExistsOnServer(const DBid inLayoutID, const DBid inLayoutClassID,
const DBid inLayoutResourceID, const Boolean lookInDB,
const Boolean lookInResource);
#endif

virtual void FinishNonViewerCreate();

virtual CTextString GetName() const { return mName; }
virtual CTextString GetMenuName() const { return mName; }

TCS_Handle GetLayoutHandle() const;
void SetLayoutHandle(const TCS_Handle inHandle);
void SetNewHandle();

void SetName(const CTextString inName)
{ // rev TCS 10/10/00
TCS_ASSERTMsg(!IsInDatabase(), TCS_GetErrString(errID_BadDatabaseChange));
mName = inName;
MakeDirty(); // TCS 1/31/01
}

virtual void FillDataReport(CTCS_Table *table, CNeoStream *stream) const;
protected:

// handle member
TCS_Handle mLayoutHandle; // TCS 6/28/02

// string member
CTextString mName;

// if we ever do a version 2, add creation date and last revised date

// calculated members
TagType mLayoutSafetyTag; // TCS 9/17/02

enum
{
cCopyFileLength = 0,
cFileLength = cCopyFileLength + 0
};
};