Accounting Software
Small Business Software Estimating Software
Construction Estimating SoftwareBookkeeping SoftwareInventory SoftwareInventory Control SoftwareInventory Tracking SoftwareInventory Management SoftwareBusiness Management Software

Layout Views (Header)

Link to: source code | record viewer directory

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

This class manages general layout views for the Goldenseal accounting software,
small business management software, construction project management software and
construction estimating software.

class CLayoutView : public CEnclosingView
{
public:

enum
{
class_ID = 'LAYV',

cFrameNegLimit = -50, // furthest left or top for pane location
cFramePosLimit = 2400, // furthest right or bottom for pane location
cFrameMaxSize = 1600 // largest size for a layout pane
};

CLayoutView(const SPaneInfo &inPaneInfo, const SViewInfo &inViewInfo);
CLayoutView(LStream *inStream);
virtual ~CLayoutView() {}

static TCS_Rect GetLayoutSize(const DBid id);
static Boolean IsValidPageSize(const UInt8 inSize);

DBid GetLayoutID() const { return mLayoutID; }
virtual void SetLayoutID(const DBid layoutID) { mLayoutID = layoutID; }

virtual Boolean LoadLayout(const DBid layoutID, const Boolean /*resourceOnly*/ = false);
virtual void LoadLayoutHandle(TCS_Handle /*layoutH*/) {}

virtual DB_ClassDescriptor *GetCurrClassDesc() const;

virtual SInt32 GetLayoutClassID() const { return id_Layout; }

virtual UInt8 GetEnclosureDrawFormat() const { return drawformat_onscreen; }

virtual void StretchImageToFit();
virtual void StretchImageToFitMax(TCS_Rect limitRect);
virtual void ShrinkImageToFit(const SInt32 maxWidth, const SInt32 maxHeight);

virtual DBid GetPrintLayoutClassID(const DBid layoutID) const;
protected:

DBid mLayoutID;

virtual void ParseLayout(TCS_Handle layoutH, Boolean checkPositions = false,
SLayoutHeader *header = nil,
DB_ClassDescriptor *desc = nil,
const Boolean isPasting = false);
virtual void ReadFromLayoutHeader(const SLayoutHeader &header, const SInt32 format);
virtual void ParseHeader(CInputStream &stream, SLayoutHeader *header);

virtual LPane *CreateLayoutPane(CInputStream &stream, const SInt16 paneType,
const SPaneInfo &paneInfo, const SLayoutInfo &mdInfo,
Boolean &gaveWarning, DB_ClassDescriptor *desc = nil,
const Boolean isPasting = false);
virtual LPane *CreateGraphicPane(CInputStream &stream, const SInt16 paneType,
const SPaneInfo &paneInfo,
const SLayoutInfo &mdInfo);
virtual LPane *CreateFieldPane(CInputStream &/*stream*/, const SInt16 /*paneType*/,
const SPaneInfo &/*paneInfo*/, const SLayoutInfo &/*mdInfo*/,
Boolean &/*gaveWarning*/, DB_ClassDescriptor */*desc*/ = nil,
const Boolean /*isPasting*/ = false) { return nil; }
};