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; }
}; |