#pragma once #include "Markup.h" //alignment define static const int ALIGN_LEFT = DT_LEFT; //0 static const int ALIGN_CENTER = DT_CENTER; // static const int ALIGN_RIGHT = DT_RIGHT; // static const int ALIGN_TOP = DT_TOP; //0 static const int ALIGN_MIDDLE = DT_VCENTER; // static const int ALIGN_BOTTOM = DT_BOTTOM; // static const int ALIGN_MASK = ALIGN_LEFT | ALIGN_CENTER | ALIGN_RIGHT | ALIGN_TOP | ALIGN_MIDDLE | ALIGN_BOTTOM; class XTable; class XCell { friend class XTable; public: XCell(XTable* parent = NULL); ~XCell(void); XCell& operator = (XCell& cell); int ToXML (CMarkup& markup); int FromXML (CMarkup& markup); public: int rowSpan; int colSpan; CString text; COLORREF textColor; CFont* textFont; int textFontSize; CString textFontFace; CString label; COLORREF labelColor; CFont* labelFont; int labelFontSize; CString labelFontFace; int format; int leftMargin; int rightMargin; int backMode; COLORREF backColor; COLORREF borderColor; int borderStyle; bool overlap; XTable* table; public: int SetSpan(int rows, int cols); int SetText(CString str); CString GetText(); int SetTextColor(COLORREF color); COLORREF GetTextColor(); int SetTextFont(CFont* font); CFont* GetTextFont(); int SetTextFontSize(int size); int GetTextFontSize(); int SetLabel(CString str); CString GetLabel(); int SetLabelColor(COLORREF color); COLORREF GetLabelColor(); int SetLabelFont(CFont* font); CFont* GetLabelFont(); int SetLabelFontSize(int size); int GetLabelFontSize(); int SetFormat(int format); int GetFormat(); int SetLeftMargin(int pixels); int GetLeftMargin(); int SetRightMargin(int pixels); int GetRightMargin(); int SetBackMode(int mode); int GetBackMode(); int SetBackColor(COLORREF color); COLORREF GetBackColor(); int SetBorderSyle(int syle); int GetBorderSyle(); int SetOverlap (bool enable); bool GetOverlap (); int SetAlignment (int align); int GetAlignment (); int SetSingleLine (bool enable); bool GetSingleLine (); int SetWordbreak (bool enable); bool GetWordbreak (); int SetEllipsis (bool enable); bool GetEllipsis (); int CalcTextRect (CDC* pDC, RECT* rect); public: int Draw(CDC* pDC, RECT rect); int DrawText(CDC* pDC, RECT rect); int DrawLabel(CDC* pDC, RECT rect); int DrawBorder(CDC* pDC, RECT rect); int DrawBackground (CDC* pDC, RECT rect); int DrawHitBorder (CDC* pDC, RECT rect, COLORREF color); };