flexcontrols.hpp

来自「FlexGraphics是一套创建矢量图形的VCL组件」· HPP 代码 · 共 628 行 · 第 1/2 页

HPP
628
字号
// CodeGear C++Builder
// Copyright (c) 1995, 2008 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Flexcontrols.pas' rev: 20.00

#ifndef FlexcontrolsHPP
#define FlexcontrolsHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit
#include <Flexbase.hpp>	// Pascal unit
#include <Flexprops.hpp>	// Pascal unit
#include <Flexutils.hpp>	// Pascal unit
#include <Flexpath.hpp>	// Pascal unit
#include <Flexhistory.hpp>	// Pascal unit
#include <Flexactions.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Flexcontrols
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TFlexBox;
class PASCALIMPLEMENTATION TFlexBox : public Flexbase::TFlexControl
{
	typedef Flexbase::TFlexControl inherited;
	
private:
	bool FAlwaysFilled;
	Flexprops::TBrushProp* FBrushProp;
	Flexprops::TPenProp* FPenProp;
	Flexprops::TIntProp* FRoundnessProp;
	
protected:
	virtual void __fastcall CreateProperties(void);
	virtual void __fastcall ControlCreate(void);
	virtual void __fastcall ControlTranslate(const Flexutils::TTranslateInfo &TranslateInfo);
	virtual Flexbase::TFlexControl* __fastcall CreateCurveControl(void);
	HRGN __fastcall CreateBoxRegion(const Types::TRect &PaintRect, bool Inflate = false);
	virtual void __fastcall Paint(Graphics::TCanvas* Canvas, Types::TRect &PaintRect);
	virtual Types::TPoint __fastcall GetAnchorPoint();
	virtual Types::TRect __fastcall GetRefreshRect(int RefreshX, int RefreshY);
	virtual void __fastcall PropChanged(System::TObject* Sender, Flexprops::TCustomProp* Prop);
	virtual void __fastcall PropStored(System::TObject* Sender, Flexprops::TCustomProp* Prop, bool &IsStored, const System::UnicodeString PropName = L"");
	virtual Types::TPoint __fastcall GetDefaultLinkPoint(int Index);
	virtual int __fastcall GetDefaultLinkPointCount(void);
	
public:
	__classmethod virtual Controls::TCursor __fastcall CursorInCreate();
	virtual bool __fastcall IsPointInside(int PaintX, int PaintY);
	__property Flexprops::TBrushProp* BrushProp = {read=FBrushProp};
	__property Flexprops::TPenProp* PenProp = {read=FPenProp};
	__property Flexprops::TIntProp* RoundnessProp = {read=FRoundnessProp};
public:
	/* TFlexControl.Create */ inline __fastcall virtual TFlexBox(Flexbase::TFlexPanel* AOwner, Flexbase::TFlexControl* AParent, Flexbase::TFlexLayer* ALayer) : Flexbase::TFlexControl(AOwner, AParent, ALayer) { }
	/* TFlexControl.Destroy */ inline __fastcall virtual ~TFlexBox(void) { }
	
};


class DELPHICLASS TFlexEllipse;
class PASCALIMPLEMENTATION TFlexEllipse : public Flexbase::TFlexControl
{
	typedef Flexbase::TFlexControl inherited;
	
private:
	Types::TPoint __fastcall GetCeneter();
	
protected:
	Flexprops::TBrushProp* FBrushProp;
	Flexprops::TPenProp* FPenProp;
	Flexprops::TIntProp* FBeginAngleProp;
	Flexprops::TIntProp* FEndAngleProp;
	Flexprops::TStrProp* FArcAxesProp;
	Flexpath::TPointArray FPoints;
	bool FEditing;
	Flexpath::TPointTypeArray FPointTypes;
	Flexpath::TPathInfo FPathInfo;
	bool FUseAxes;
	bool FArcOldFormatNeedCheck;
	bool FArcOldFormatNeedReset;
	bool FArcOldFormat;
	Types::TPoint FArcOfs;
	Types::TPoint FArcSize;
	bool FArcResizing;
	Types::TRect FArcResizingBounds;
	HRGN __fastcall CreateEllipseRegion(const Types::TRect &PaintRect);
	virtual void __fastcall CreateProperties(void);
	virtual void __fastcall ControlCreate(void);
	virtual void __fastcall ControlTranslate(const Flexutils::TTranslateInfo &TranslateInfo);
	virtual void __fastcall MirrorInResize(bool HMirror, bool VMirror);
	virtual Flexbase::TFlexControl* __fastcall CreateCurveControl(void);
	virtual Types::TPoint __fastcall GetPoint(int Index);
	virtual int __fastcall GetPointCount(void);
	virtual Flexpath::PPathInfo __fastcall GetPointsInfo(void);
	virtual void __fastcall SetPoint(int Index, const Types::TPoint &Value);
	void __fastcall MakeArc(HDC DC, const Types::TRect &R, const Flexpath::TPointArray Pt);
	virtual void __fastcall Paint(Graphics::TCanvas* Canvas, Types::TRect &PaintRect);
	virtual Types::TRect __fastcall GetRefreshRect(int RefreshX, int RefreshY);
	virtual Types::TPoint __fastcall GetAnchorPoint();
	virtual Types::TPoint __fastcall GetDefaultLinkPoint(int Index);
	virtual int __fastcall GetDefaultLinkPointCount(void);
	virtual void __fastcall PropStored(System::TObject* Sender, Flexprops::TCustomProp* Prop, bool &IsStored, const System::UnicodeString PropName = L"");
	virtual void __fastcall PropChanged(System::TObject* Sender, Flexprops::TCustomProp* Prop);
	virtual void __fastcall PropHistoryAction(System::TObject* Sender, Flexprops::TCustomProp* Prop, Flexhistory::THistoryActionClass &ActionClass);
	virtual void __fastcall DoNotify(Flexutils::TFlexNotify Notify);
	virtual void __fastcall StartResizing(const Types::TRect &SelRect);
	void __fastcall SetPointsByAngles(void);
	void __fastcall SetAnglesByPoints(void);
	bool __fastcall GetIsPie(void);
	virtual bool __fastcall IsPropUpdatePoints(Flexprops::TCustomProp* Prop);
	bool __fastcall GetIsNeedHistoryPointsAction(void);
	virtual void __fastcall UpdateArcBoundsByPoints(void);
	virtual void __fastcall SetUseAxes(bool Value);
	virtual void __fastcall GetArcAxes(System::TObject* Sender, /* out */ System::UnicodeString &s);
	virtual void __fastcall SetArcAxes(const System::UnicodeString s);
	__property bool UseAxes = {read=FUseAxes, write=SetUseAxes, nodefault};
	
public:
	__classmethod virtual Controls::TCursor __fastcall CursorInCreate();
	virtual bool __fastcall IsPointInside(int PaintX, int PaintY);
	virtual bool __fastcall EditPoints(Flexpath::TPathEditFunc Func, const Flexpath::TSelectedArray Selected, Flexpath::PPathEditParams Params = (void *)(0x0));
	virtual Flexpath::TPathEditFuncs __fastcall EditPointsCaps(const Flexpath::TSelectedArray Selected);
	__property Types::TPoint Center = {read=GetCeneter};
	__property bool IsPie = {read=GetIsPie, nodefault};
	__property bool IsNeedHistoryPointsAction = {read=GetIsNeedHistoryPointsAction, nodefault};
	__property Flexprops::TBrushProp* BrushProp = {read=FBrushProp};
	__property Flexprops::TPenProp* PenProp = {read=FPenProp};
	__property Flexprops::TIntProp* BeginAngleProp = {read=FBeginAngleProp};
	__property Flexprops::TIntProp* EndAngleProp = {read=FEndAngleProp};
public:
	/* TFlexControl.Create */ inline __fastcall virtual TFlexEllipse(Flexbase::TFlexPanel* AOwner, Flexbase::TFlexControl* AParent, Flexbase::TFlexLayer* ALayer) : Flexbase::TFlexControl(AOwner, AParent, ALayer) { }
	/* TFlexControl.Destroy */ inline __fastcall virtual ~TFlexEllipse(void) { }
	
};


class DELPHICLASS TFlexArc;
class PASCALIMPLEMENTATION TFlexArc : public TFlexEllipse
{
	typedef TFlexEllipse inherited;
	
public:
	/* TFlexControl.Create */ inline __fastcall virtual TFlexArc(Flexbase::TFlexPanel* AOwner, Flexbase::TFlexControl* AParent, Flexbase::TFlexLayer* ALayer) : TFlexEllipse(AOwner, AParent, ALayer) { }
	/* TFlexControl.Destroy */ inline __fastcall virtual ~TFlexArc(void) { }
	
};


class DELPHICLASS TFlexPicture;
class PASCALIMPLEMENTATION TFlexPicture : public Flexbase::TFlexControl
{
	typedef Flexbase::TFlexControl inherited;
	
private:
	Flexprops::TBoolProp* FAutoSizeProp;
	Flexprops::TPictureProp* FPictureProp;
	Flexprops::TIntProp* FFrameIndexProp;
	
protected:
	virtual void __fastcall CreateProperties(void);
	virtual void __fastcall ControlCreate(void);
	virtual void __fastcall PropChanged(System::TObject* Sender, Flexprops::TCustomProp* Prop);
	virtual void __fastcall PropStored(System::TObject* Sender, Flexprops::TCustomProp* Prop, bool &IsStored, const System::UnicodeString PropName = L"");
	virtual void __fastcall Paint(Graphics::TCanvas* Canvas, Types::TRect &PaintRect);
	virtual void __fastcall PaintAll(Graphics::TCanvas* Canvas, int PaintX, int PaintY);
	virtual Types::TPoint __fastcall GetDefaultLinkPoint(int Index);
	virtual int __fastcall GetDefaultLinkPointCount(void);
	
public:
	__classmethod virtual Controls::TCursor __fastcall CursorInCreate();
	virtual bool __fastcall IsPointInside(int PaintX, int PaintY);
	__property Flexprops::TPictureProp* PictureProp = {read=FPictureProp};
	__property Flexprops::TIntProp* FrameIndexProp = {read=FFrameIndexProp};
	__property Flexprops::TBoolProp* AutoSizeProp = {read=FAutoSizeProp};
public:
	/* TFlexControl.Create */ inline __fastcall virtual TFlexPicture(Flexbase::TFlexPanel* AOwner, Flexbase::TFlexControl* AParent, Flexbase::TFlexLayer* ALayer) : Flexbase::TFlexControl(AOwner, AParent, ALayer) { }
	/* TFlexControl.Destroy */ inline __fastcall virtual ~TFlexPicture(void) { }
	
};


class DELPHICLASS TFlexCurve;
class PASCALIMPLEMENTATION TFlexCurve : public Flexbase::TFlexControl
{
	typedef Flexbase::TFlexControl inherited;
	
private:
	Flexprops::TBrushProp* FBrushProp;
	Flexprops::TPenProp* FPenProp;
	Flexprops::TLineCapProp* FBeginCapProp;
	Flexprops::TLineCapProp* FEndCapProp;
	Flexprops::TDataProp* FPointsProp;
	Flexprops::TDataProp* FPathPointsProp;
	Flexprops::TBoolProp* FIsSolidProp;
	
protected:
	Flexpath::TPointArray FPoints;
	bool FZeroPoints;
	Flexpath::TPointTypeArray FPointTypes;
	bool FChanging;
	Flexpath::TPathInfo FCurveInfo;
	bool FCurveInfoChanged;
	Flexpath::TPointArray FResizePoints;
	virtual void __fastcall CreateProperties(void);
	virtual void __fastcall ControlCreate(void);
	virtual void __fastcall ControlDestroy(void);
	virtual void __fastcall ControlTranslate(const Flexutils::TTranslateInfo &TranslateInfo);
	virtual void __fastcall CreateInDesign(Flexbase::TFlexCreateInDesignInfo &Info);
	virtual void __fastcall MirrorInResize(bool HMirror, bool VMirror);
	virtual bool __fastcall MovePathPoints(int PointIndex, Types::TPoint &Delta, Flexpath::TSelectedArray Selected, bool Smooth = false, bool Symmetric = false);
	virtual bool __fastcall MovePathSegment(int FirstIndex, int NextIndex, Types::TPoint &Delta, const double SegmentCurvePos);
	virtual Flexactions::TPointsHistoryAction* __fastcall RecordPointsAction(void);
	virtual Types::TPoint __fastcall GetPoint(int Index);
	virtual int __fastcall GetPointCount(void);
	virtual void __fastcall SetPoint(int Index, const Types::TPoint &Value);
	virtual Flexpath::TPointType __fastcall GetPointType(int Index);
	virtual void __fastcall SetPointType(int Index, const Flexpath::TPointType Value);
	virtual void __fastcall PointsChanged(void);
	virtual Types::TPoint __fastcall GetAnchorPoint();
	virtual void __fastcall StartResizing(const Types::TRect &SelRect);
	virtual void __fastcall FinishResizing(void);
	virtual void __fastcall Paint(Graphics::TCanvas* Canvas, Types::TRect &PaintRect);
	virtual void __fastcall DoNotify(Flexutils::TFlexNotify Notify);
	virtual void __fastcall PropChanged(System::TObject* Sender, Flexprops::TCustomProp* Prop);
	virtual void __fastcall PropStored(System::TObject* Sender, Flexprops::TCustomProp* Prop, bool &IsStored, const System::UnicodeString PropName = L"");
	void __fastcall GetPointsData(System::TObject* Sender, System::Variant &Value);
	void __fastcall SetPointsData(System::TObject* Sender, System::Variant &Value);
	void __fastcall GetPathPointsData(System::TObject* Sender, System::Variant &Value);
	void __fastcall SetPathPointsData(System::TObject* Sender, System::Variant &Value);
	virtual bool __fastcall GetIsPointsClosed(void);
	virtual void __fastcall SetIsPointsClosed(bool Value);
	virtual Types::TRect __fastcall GetRefreshRect(int RefreshX, int RefreshY);
	int __fastcall InternalInsertPoints(int Index, int Count);
	void __fastcall InternalDeletePoints(int Index, int Count);
	virtual Flexpath::PPathInfo __fastcall GetPointsInfo(void);
	virtual Types::TPoint __fastcall GetDefaultLinkPoint(int Index);
	virtual int __fastcall GetDefaultLinkPointCount(void);
	
public:
	virtual bool __fastcall EndUpdate(void);
	__classmethod virtual Controls::TCursor __fastcall CursorInCreate();
	virtual bool __fastcall IsPointInside(int PaintX, int PaintY);
	virtual int __fastcall InsertPoint(int Index, const Types::TPoint &Point);
	virtual int __fastcall InsertNearestPoint(const Types::TPoint &Point);
	virtual int __fastcall InsertCurvePoints(int Index, const Types::TPoint &Point, const Types::TPoint &CtrlPointA, const Types::TPoint &CtrlPointB);
	virtual void __fastcall DeletePoint(int Index);
	virtual void __fastcall SetPointsEx(const Flexpath::TPointArray APoints, const Flexpath::TPointTypeArray ATypes);
	virtual void __fastcall GetPointsEx(/* out */ Flexpath::TPointArray &APoints, /* out */ Flexpath::TPointTypeArray &ATypes);
	virtual bool __fastcall FlattenPoints(const float Curvature);
	virtual bool __fastcall FindNearestPoint(const Types::TPoint &Point, Flexpath::TNearestPoint &Nearest);
	virtual bool __fastcall FindNearestPathSegment(const Types::TPoint &Point, int &FirstIndex, int &NextIndex, Flexpath::PNearestPoint Nearest = (void *)(0x0), bool ForInsert = true, bool ForSelect = false);
	virtual bool __fastcall EditPoints(Flexpath::TPathEditFunc Func, const Flexpath::TSelectedArray Selected, Flexpath::PPathEditParams Params = (void *)(0x0));
	virtual Flexpath::TPathEditFuncs __fastcall EditPointsCaps(const Flexpath::TSelectedArray Selected);
	__property Flexprops::TBrushProp* BrushProp = {read=FBrushProp};
	__property Flexprops::TPenProp* PenProp = {read=FPenProp};
	__property Flexprops::TLineCapProp* BeginCapProp = {read=FBeginCapProp};
	__property Flexprops::TLineCapProp* EndCapProp = {read=FEndCapProp};
	__property Flexprops::TBoolProp* IsSolidProp = {read=FIsSolidProp};
public:
	/* TFlexControl.Create */ inline __fastcall virtual TFlexCurve(Flexbase::TFlexPanel* AOwner, Flexbase::TFlexControl* AParent, Flexbase::TFlexLayer* ALayer) : Flexbase::TFlexControl(AOwner, AParent, ALayer) { }
	/* TFlexControl.Destroy */ inline __fastcall virtual ~TFlexCurve(void) { }
	
};


typedef StaticArray<int, 256> TTextCharWidth;

typedef StaticArray<_ABC, 256> TTextCharABCs;

struct TTextWordInfo;
typedef TTextWordInfo *PTextWordInfo;

struct TTextWordInfo
{
	
public:
	int WordBegin;
	int WordEnd;
	int Size;
};


struct TTextLine;
typedef TTextLine *PTextLine;

struct TTextLine
{
	
public:
	System::WideChar *Text;
	int Length;
	int Pos;
};


typedef DynamicArray<TTextWordInfo> TTextWordInfoArray;

class DELPHICLASS TTextFormator;
class PASCALIMPLEMENTATION TTextFormator : public System::TObject
{

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?