C:\home\SVGCats_src\src\RECT.HPP
1|/*********************************************************************** 2| 1. <<< 矩形 C++部 (Rect) >>> 3|************************************************************************/ 4| 5|#ifndef __RECT_HPP 6|#define __RECT_HPP 7| 8| 9|/*-----------------------------------------------------------------*/ 10|/* 2. <<< Interface Area ---------------------------------------- >>> */ 11|/*-----------------------------------------------------------------*/ 12| 13|/*********************************************************************** 14| 3. <<< [Rect_Ex] 矩形・詳細(ディスプレイ表示用) >>> 15|【内部補足】 16|・m_ImgWorkPath は、m_bEmbedImg == true のとき有効、m_ImgPath が存在しない 17| ときの画像パス。内部でコピー。 18|************************************************************************/ 19|class Rect_Ex : public CadPrim { 20|public: 21| int m_id; 22| bool m_bInUndoBuf; 23| bool m_bHold; 24| bool m_bSelected; 25| CString m_URL; /* ""=リンクしない */ 26| CString m_Target; /* リンクターゲット、"" でターゲットなし、_blank で新規ウィンドウ */ 27| CString m_IdLabel; 28| 29| Rect m_Rect; 30| int m_RotateDegree; 31| 32| int m_BorderWidth; 33| int m_BorderColor; 34| int m_FillColor; 35| int m_NTrans; /* 非透過率 0〜100 */ 36| int m_HatchType; 37| int m_ShapeType; /* 形状 */ 38| 39| CString m_ImgPath; /* ユーザ公開の画像パス、or Rect_Ex_EmbedImg */ 40| CString m_ImgWorkPath; /* →内部補足 */ 41| WinX_DDBmp m_ddb; /* 拡大縮小などを考慮したビットマップ */ 42| bool m_bEmbedImg; 43| bool m_bNeedReadImgProp; /* m_ImgWidth などを元画像から取得する必要があるかどうか */ 44| int m_ImgWidth; 45| int m_ImgHeight; 46| 47| Rect_Ex(); 48| ~Rect_Ex(); 49| 50| void print( const char* title ); 51| int GetID(); 52| void SetID( int id ); 53| int GetTypeID(); 54| char* GetTypeNameJp(); 55| char* GetTypeNameEn(); 56| void SetBInUndoBuf( bool b ); 57| char* GetLinkURL(); 58| char* GetIdLabel(); 59| 60| void OutSVG( CadPrim_SaveParam* p ); 61| void Draw( CDC*, CadPrim_DrawParam* p ); 62| void DrawHandles( CDC*, CadPrim_DrawParam* p, COLORREF color, bool bDrawFrame ); 63| void copy( CadPrim*, ListX* prims ); 64| void copyStyle( CadPrim*, ListX* prims ); 65| bool isEqual( CadPrim* ); 66| CadPrim* GetNewCopy( ListX* prims ); 67| int GetSerializedSize(); 68| void CopyToSerial( void* a ); 69| void CopyFromSerial( void* a ); 70| 71| int GetHitHandleNum( int x, int y, int zoom, int mode, int* dx, int* dy, int* diff, int* arrow ); 72| void Move( int dx, int dy ); 73| void MoveByHandle( int iHandle, int x, int y, bool bShift, bool bRotate ); 74| void GetCenterOfHandle( int iHandle, int* x, int* y ); 75| void SetHold( bool ); 76| bool GetHold(); 77| bool IsHoldable(); 78| void SetSelected( bool ); 79| bool GetSelected(); 80| bool IsMultiSelect( Rect* rect ); 81| int GetForAlign( int iPos ); 82| void SetForAlign( int iPos, int value ); 83| int GetForFitSize( int iAttr ); 84| void SetForFitSize( int iAttr, int value ); 85| void OnCreated(); 86| 87| int GetNProp(); 88| int GetProp( int iProp, bool bJapanese, char* name, int name_size, char* value, int value_size, 89| const char* path, void** option ); 90| void SetProp( int iProp, const char* value, const char* path ); 91| bool IsNeedUnicode(); 92|}; 93| 94|#define Rect_Ex_TypeID 2 95|#define Rect_Ex_EmbedImg "embed:" 96| 97|/* 4. <<<[Rect_Ex::m_ShapeType]>>> */ 98|#define Rect_RectShape 1 99|#define Rect_RoundRectShape 2 100|#define Rect_CircleShape 3 101|#define Rect_DiamondShape 4 102|#define Rect_ImageShape 5 103|#define Rect_Parallelogram 6 104| 105| 106| 107|/*-----------------------------------------------------------------*/ 108|/* 5. <<< Mapping Area ------------------------------------------ >>> */ 109|/*-----------------------------------------------------------------*/ 110| 111| 112|#endif 113| 114|