31class SOUI_EXP
SRichEdit :
public TPanelProxy<IRichEdit> {
32 friend class STextHost;
33 friend class SApplication;
36 DEF_SOBJECT(
SPanel, L
"richedit")
54 static void InitTextService();
59 static void UninitTextService();
67 STDMETHOD_(DWORD, SaveRtf)(THIS_ LPCTSTR pszFileName) OVERRIDE;
74 STDMETHOD_(DWORD, LoadRtf)(THIS_ LPCTSTR pszFileName) OVERRIDE;
82 STDMETHOD_(
void, SetSel)(THIS_
long nStartChar,
long nEndChar, BOOL bNoScroll) OVERRIDE;
89 STDMETHOD_(
void, ReplaceSel)(THIS_ LPCTSTR pszText, BOOL bCanUndo = TRUE) OVERRIDE;
95 STDMETHOD_(BOOL, GetWordWrap)(THIS) SCONST OVERRIDE;
101 STDMETHOD_(
void, SetWordWrap)(THIS_ BOOL fWordWrap) OVERRIDE;
107 STDMETHOD_(BOOL, GetReadOnly)(THIS) SCONST OVERRIDE;
114 STDMETHOD_(BOOL, SetReadOnly)(THIS_ BOOL bReadOnly) OVERRIDE;
120 STDMETHOD_(LONG, GetLimitText)(THIS) SCONST OVERRIDE;
127 STDMETHOD_(BOOL, SetLimitText)(THIS_
int nLength) OVERRIDE;
133 STDMETHOD_(WORD, GetDefaultAlign)(THIS) SCONST OVERRIDE;
139 STDMETHOD_(
void, SetDefaultAlign)(THIS_ WORD wNewAlign) OVERRIDE;
145 STDMETHOD_(BOOL, GetRichTextFlag)(THIS) SCONST OVERRIDE;
151 STDMETHOD_(
void, SetRichTextFlag)(THIS_ BOOL fRich) OVERRIDE;
157 STDMETHOD_(LONG, GetDefaultLeftIndent)(THIS) SCONST OVERRIDE;
163 STDMETHOD_(
void, SetDefaultLeftIndent)(THIS_ LONG lNewIndent) OVERRIDE;
170 STDMETHOD_(BOOL, SetSaveSelection)(THIS_ BOOL fSaveSelection) OVERRIDE;
177 STDMETHOD_(COLORREF, SetDefaultTextColor)(THIS_ COLORREF cr) OVERRIDE;
183 STDMETHOD_(
void, SetWindowText)(LPCTSTR lpszText) OVERRIDE;
192 STDMETHOD_(
int, GetWindowText)(THIS_ TCHAR *pBuf,
int nBufLen, BOOL bRawText) OVERRIDE;
202 STDMETHOD_(BOOL, SwndProc)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *lResult) OVERRIDE;
211 STDMETHOD_(BOOL, CreateCaret)(THIS_ HBITMAP pBmp,
int nWid,
int nHeight) OVERRIDE;
226 void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE);
232 int GetWindowTextLength()
const;
240 int OnCreate(LPVOID lpCreateStruct);
284 virtual BOOL
OnScroll(BOOL bVertical, UINT uCode,
int nPos);
308 BOOL IsRichScale()
const;
315 void OnEnable(BOOL bEnable, UINT nStatus);
323 HRESULT InitDefaultCharFormat(CHARFORMAT2W *pcf,
IFontS *pFont = NULL);
330 HRESULT InitDefaultParaFormat(PARAFORMAT2 *ppf);
338 virtual HRESULT OnTxNotify(DWORD iNotify, LPVOID pv);
375 BOOL
OnMouseWheel(UINT nFlags,
short zDelta, CPoint pt);
383 void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
392 LRESULT OnButtonClick(UINT uMsg, WPARAM wParam, LPARAM lParam);
400 void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
407 void OnSetFont(
IFontS *font, BOOL bRedraw);
416 LRESULT OnSetText(UINT uMsg, WPARAM wParam, LPARAM lParam);
425 LRESULT OnSetCharFormat(UINT uMsg, WPARAM wParam, LPARAM lParam);
434 LRESULT OnSetParaFormat(UINT uMsg, WPARAM wParam, LPARAM lParam);
443 LRESULT OnSetReadOnly(UINT uMsg, WPARAM wParam, LPARAM lParam);
452 LRESULT OnSetLimitText(UINT uMsg, WPARAM wParam, LPARAM lParam);
460 LRESULT
OnNcCalcSize(BOOL bCalcValidRects, LPARAM lParam);
466 void OnEnableDragDrop(BOOL bEnable);
475 LRESULT OnGetRect(UINT uMsg, WPARAM wp, LPARAM lp);
484 BOOL OnTxSetScrollPos(INT fnBar, INT nPos, BOOL fRedraw);
492 BOOL OnTxSetTimer(UINT idTimer, UINT uTimeout);
498 void OnTxKillTimer(UINT idTimer);
505 BOOL OnTimeout(IEvtArgs *e);
509 MSG_WM_CREATE(OnCreate)
510 MSG_WM_DESTROY(OnDestroy)
511 MSG_WM_PAINT_EX(OnPaint)
512 MSG_WM_NCCALCSIZE(OnNcCalcSize)
513 MSG_WM_SETFOCUS_EX(OnSetFocus)
514 MSG_WM_KILLFOCUS_EX(OnKillFocus)
515 MSG_WM_TIMER_EX(OnTimer)
516 MSG_WM_LBUTTONDOWN(OnLButtonDown)
517 MSG_WM_LBUTTONUP(OnLButtonUp)
518 MSG_WM_RBUTTONDOWN(OnRButtonDown)
519 MSG_WM_MOUSEMOVE(OnMouseMove)
520 MSG_WM_MOUSEWHEEL(OnMouseWheel)
521 MSG_WM_KEYDOWN(OnKeyDown)
523 MSG_WM_SETFONT_EX(OnSetFont)
524 MESSAGE_HANDLER_EX(WM_LBUTTONDBLCLK, OnButtonClick)
525 MESSAGE_HANDLER_EX(WM_SETTEXT, OnSetText)
526 MESSAGE_HANDLER_EX(EM_SETPARAFORMAT, OnSetParaFormat)
527 MESSAGE_HANDLER_EX(EM_SETCHARFORMAT, OnSetCharFormat)
528 MESSAGE_HANDLER_EX(EM_SETREADONLY, OnSetReadOnly)
529 MESSAGE_HANDLER_EX(EM_EXLIMITTEXT, OnSetLimitText)
530 MESSAGE_HANDLER_EX(EM_GETRECT, OnGetRect)
534#define ATTR_RE_STYLE(attr, style, txtBit, func) \
535 if (0 == strAttribName.CompareNoCase(attr)) \
537 hRet = func(strValue, style, txtBit, bLoading); \
547 HRESULT OnAttrTextColor(
const SStringW &strValue, BOOL bLoading);
555 HRESULT OnAttrRTF(
const SStringW &strValue, BOOL bLoading);
563 HRESULT OnAttrAlign(
const SStringW &strValue, BOOL bLoading);
574 HRESULT OnAttrNotifyChange(
const SStringW &strValue, BOOL bLoading);
585 HRESULT OnAttrPasswordChar(
const SStringW &strValue, BOOL bLoading);
596 HRESULT OnAttrEnableDragdrop(
const SStringW &strValue, BOOL bLoading);
609 HRESULT OnAttrReStyle(
const SStringW &strValue, DWORD dwStyle, DWORD txtBit, BOOL bLoading);
622 HRESULT OnAttrReStyle2(
const SStringW &strValue, DWORD dwStyle, DWORD txtBit, BOOL bLoading);
632 ATTR_INT(L
"style", m_dwStyle, TRUE)
635 ATTR_BOOL(L
"rich",
m_fRich, TRUE)
648 ATTR_RE_STYLE(L
"wantReturn", ES_WANTRETURN, 0,
OnAttrReStyle)
652 ATTR_RE_STYLE(L
"password", ES_PASSWORD, TXTBIT_USEPASSWORD,
OnAttrReStyle)
653 ATTR_RE_STYLE(L
"readOnly", ES_READONLY, TXTBIT_READONLY,
OnAttrReStyle)
654 ATTR_RE_STYLE(L
"multiLines", ES_MULTILINE, TXTBIT_MULTILINE,
OnAttrReStyle)
655 ATTR_RE_STYLE(L
"autoHscroll", ES_AUTOHSCROLL, TXTBIT_SCROLLBARCHANGE,
OnAttrReStyle2)
656 ATTR_RE_STYLE(L
"autoVscroll", ES_AUTOVSCROLL, TXTBIT_SCROLLBARCHANGE,
OnAttrReStyle2)
657 ATTR_RE_STYLE(L
"hscrollBar", WS_HSCROLL, TXTBIT_SCROLLBARCHANGE,
OnAttrReStyle2)
658 ATTR_RE_STYLE(L
"vscrollBar", WS_VSCROLL, TXTBIT_SCROLLBARCHANGE,
OnAttrReStyle2)