| Index: fpdfsdk/src/pdfwindow/PWL_Note.cpp
|
| diff --git a/fpdfsdk/src/pdfwindow/PWL_Note.cpp b/fpdfsdk/src/pdfwindow/PWL_Note.cpp
|
| index 7ed1115a825a406116ee941414e77371e93ef91e..6b05dde3b8bde06616b90471fd51485a40139d48 100644
|
| --- a/fpdfsdk/src/pdfwindow/PWL_Note.cpp
|
| +++ b/fpdfsdk/src/pdfwindow/PWL_Note.cpp
|
| @@ -18,1753 +18,1598 @@
|
| #include "../../include/pdfwindow/PWL_Utils.h"
|
| #include "../../include/pdfwindow/PWL_Caret.h"
|
|
|
| -#define POPUP_ITEM_HEAD_BOTTOM 3.0f
|
| -#define POPUP_ITEM_BOTTOMWIDTH 1.0f
|
| -#define POPUP_ITEM_SIDEMARGIN 3.0f
|
| -#define POPUP_ITEM_SPACE 4.0f
|
| -#define POPUP_ITEM_TEXT_INDENT 2.0f
|
| -#define POPUP_ITEM_BORDERCOLOR CPWL_Color(COLORTYPE_RGB, 80/255.0f, 80/255.0f, 80/255.0f)
|
| +#define POPUP_ITEM_HEAD_BOTTOM 3.0f
|
| +#define POPUP_ITEM_BOTTOMWIDTH 1.0f
|
| +#define POPUP_ITEM_SIDEMARGIN 3.0f
|
| +#define POPUP_ITEM_SPACE 4.0f
|
| +#define POPUP_ITEM_TEXT_INDENT 2.0f
|
| +#define POPUP_ITEM_BORDERCOLOR \
|
| + CPWL_Color(COLORTYPE_RGB, 80 / 255.0f, 80 / 255.0f, 80 / 255.0f)
|
|
|
| -#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
|
| -#define IsFloatBigger(fa,fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
|
| -#define IsFloatSmaller(fa,fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
|
| -#define IsFloatEqual(fa,fb) IsFloatZero((fa)-(fb))
|
| +#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
|
| +#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
|
| +#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
|
| +#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
|
|
|
| +/* ------------------------------- CPWL_Note_Options
|
| + * ------------------------------- */
|
|
|
| -/* ------------------------------- CPWL_Note_Options ------------------------------- */
|
| +CPWL_Note_Options::CPWL_Note_Options() : m_pText(NULL) {}
|
|
|
| -CPWL_Note_Options::CPWL_Note_Options() : m_pText(NULL)
|
| -{
|
| -}
|
| -
|
| -CPWL_Note_Options::~CPWL_Note_Options()
|
| -{
|
| -}
|
| +CPWL_Note_Options::~CPWL_Note_Options() {}
|
|
|
| -void CPWL_Note_Options::SetTextColor(const CPWL_Color & color)
|
| -{
|
| - CPWL_Wnd::SetTextColor(color);
|
| +void CPWL_Note_Options::SetTextColor(const CPWL_Color& color) {
|
| + CPWL_Wnd::SetTextColor(color);
|
|
|
| - if (m_pText)
|
| - m_pText->SetTextColor(color);
|
| + if (m_pText)
|
| + m_pText->SetTextColor(color);
|
| }
|
|
|
| -void CPWL_Note_Options::RePosChildWnd()
|
| -{
|
| - if (IsValid())
|
| - {
|
| - ASSERT(m_pText != NULL);
|
| +void CPWL_Note_Options::RePosChildWnd() {
|
| + if (IsValid()) {
|
| + ASSERT(m_pText != NULL);
|
|
|
| - CPDF_Rect rcClient = GetClientRect();
|
| + CPDF_Rect rcClient = GetClientRect();
|
|
|
| - if (rcClient.Width() > 15.0f)
|
| - {
|
| - rcClient.right -= 15.0f;
|
| - m_pText->Move(rcClient, TRUE, FALSE);
|
| - m_pText->SetVisible(TRUE);
|
| - }
|
| - else
|
| - {
|
| - m_pText->Move(CPDF_Rect(0,0,0,0), TRUE, FALSE);
|
| - m_pText->SetVisible(FALSE);
|
| - }
|
| - }
|
| + if (rcClient.Width() > 15.0f) {
|
| + rcClient.right -= 15.0f;
|
| + m_pText->Move(rcClient, TRUE, FALSE);
|
| + m_pText->SetVisible(TRUE);
|
| + } else {
|
| + m_pText->Move(CPDF_Rect(0, 0, 0, 0), TRUE, FALSE);
|
| + m_pText->SetVisible(FALSE);
|
| + }
|
| + }
|
| }
|
|
|
| -void CPWL_Note_Options::CreateChildWnd(const PWL_CREATEPARAM & cp)
|
| -{
|
| - m_pText = new CPWL_Label;
|
| - PWL_CREATEPARAM tcp = cp;
|
| - tcp.pParentWnd = this;
|
| - tcp.dwFlags = PWS_CHILD | PWS_VISIBLE;
|
| - m_pText->Create(tcp);
|
| +void CPWL_Note_Options::CreateChildWnd(const PWL_CREATEPARAM& cp) {
|
| + m_pText = new CPWL_Label;
|
| + PWL_CREATEPARAM tcp = cp;
|
| + tcp.pParentWnd = this;
|
| + tcp.dwFlags = PWS_CHILD | PWS_VISIBLE;
|
| + m_pText->Create(tcp);
|
| }
|
|
|
| -void CPWL_Note_Options::SetText(const CFX_WideString& sText)
|
| -{
|
| - m_pText->SetText(sText.c_str());
|
| +void CPWL_Note_Options::SetText(const CFX_WideString& sText) {
|
| + m_pText->SetText(sText.c_str());
|
| }
|
|
|
| -void CPWL_Note_Options::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
|
| -{
|
| - CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
|
| +void CPWL_Note_Options::DrawThisAppearance(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device) {
|
| + CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
|
|
|
| - CPDF_Rect rcClient = GetClientRect();
|
| - rcClient.left = rcClient.right - 15.0f;
|
| + CPDF_Rect rcClient = GetClientRect();
|
| + rcClient.left = rcClient.right - 15.0f;
|
|
|
| - CPDF_Point ptCenter = CPDF_Point((rcClient.left + rcClient.right) * 0.5f, (rcClient.top + rcClient.bottom) * 0.5f);
|
| + CPDF_Point ptCenter = CPDF_Point((rcClient.left + rcClient.right) * 0.5f,
|
| + (rcClient.top + rcClient.bottom) * 0.5f);
|
|
|
| - CPDF_Point pt1(ptCenter.x - 2.0f, ptCenter.y + 2.0f * 0.5f);
|
| - CPDF_Point pt2(ptCenter.x + 2.0f, ptCenter.y + 2.0f * 0.5f);
|
| - CPDF_Point pt3(ptCenter.x, ptCenter.y - 3.0f * 0.5f);
|
| + CPDF_Point pt1(ptCenter.x - 2.0f, ptCenter.y + 2.0f * 0.5f);
|
| + CPDF_Point pt2(ptCenter.x + 2.0f, ptCenter.y + 2.0f * 0.5f);
|
| + CPDF_Point pt3(ptCenter.x, ptCenter.y - 3.0f * 0.5f);
|
|
|
| - CFX_PathData path;
|
| + CFX_PathData path;
|
|
|
| - path.SetPointCount(4);
|
| - path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
|
| - path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
|
| - path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
|
| - path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
|
| + path.SetPointCount(4);
|
| + path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
|
| + path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
|
| + path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
|
| + path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
|
|
|
| - pDevice->DrawPath(&path, pUser2Device, NULL,
|
| - CPWL_Utils::PWLColorToFXColor(GetTextColor(),GetTransparency()),
|
| - 0, FXFILL_ALTERNATE);
|
| + pDevice->DrawPath(
|
| + &path, pUser2Device, NULL,
|
| + CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 0,
|
| + FXFILL_ALTERNATE);
|
| }
|
|
|
| -CPDF_Rect CPWL_Note_Options::GetContentRect() const
|
| -{
|
| - ASSERT(m_pText != NULL);
|
| +CPDF_Rect CPWL_Note_Options::GetContentRect() const {
|
| + ASSERT(m_pText != NULL);
|
|
|
| - CPDF_Rect rcText = m_pText->GetContentRect();
|
| - rcText.right += 15.0f;
|
| - return rcText;
|
| + CPDF_Rect rcText = m_pText->GetContentRect();
|
| + rcText.right += 15.0f;
|
| + return rcText;
|
| }
|
|
|
| -/* ------------------------------- CPWL_Note_Edit ------------------------------ */
|
| +/* ------------------------------- CPWL_Note_Edit ------------------------------
|
| + */
|
|
|
| -CPWL_Note_Edit::CPWL_Note_Edit() : m_bEnableNotify(TRUE),
|
| - m_fOldItemHeight(0.0f),
|
| - m_bSizeChanged(FALSE),
|
| - m_fOldMin(0.0f),
|
| - m_fOldMax(0.0f)
|
| -{
|
| -}
|
| +CPWL_Note_Edit::CPWL_Note_Edit()
|
| + : m_bEnableNotify(TRUE),
|
| + m_fOldItemHeight(0.0f),
|
| + m_bSizeChanged(FALSE),
|
| + m_fOldMin(0.0f),
|
| + m_fOldMax(0.0f) {}
|
|
|
| -CPWL_Note_Edit::~CPWL_Note_Edit()
|
| -{
|
| +CPWL_Note_Edit::~CPWL_Note_Edit() {}
|
| +
|
| +void CPWL_Note_Edit::RePosChildWnd() {
|
| + m_bEnableNotify = FALSE;
|
| + CPWL_Edit::RePosChildWnd();
|
| + m_bEnableNotify = TRUE;
|
| +
|
| + m_fOldItemHeight = GetContentRect().Height();
|
| }
|
|
|
| -void CPWL_Note_Edit::RePosChildWnd()
|
| -{
|
| - m_bEnableNotify = FALSE;
|
| - CPWL_Edit::RePosChildWnd();
|
| - m_bEnableNotify = TRUE;
|
| +void CPWL_Note_Edit::SetText(const FX_WCHAR* csText) {
|
| + m_bEnableNotify = FALSE;
|
| + CPWL_Edit::SetText(csText);
|
| + m_bEnableNotify = TRUE;
|
| + m_fOldItemHeight = GetContentRect().Height();
|
| +}
|
|
|
| - m_fOldItemHeight = GetContentRect().Height();
|
| -}
|
| -
|
| -void CPWL_Note_Edit::SetText(const FX_WCHAR* csText)
|
| -{
|
| - m_bEnableNotify = FALSE;
|
| - CPWL_Edit::SetText(csText);
|
| - m_bEnableNotify = TRUE;
|
| - m_fOldItemHeight = GetContentRect().Height();
|
| -}
|
| -
|
| -void CPWL_Note_Edit::OnSetFocus()
|
| -{
|
| - m_bEnableNotify = FALSE;
|
| - CPWL_Edit::OnSetFocus();
|
| - m_bEnableNotify = TRUE;
|
| +void CPWL_Note_Edit::OnSetFocus() {
|
| + m_bEnableNotify = FALSE;
|
| + CPWL_Edit::OnSetFocus();
|
| + m_bEnableNotify = TRUE;
|
|
|
| - EnableSpellCheck(TRUE);
|
| + EnableSpellCheck(TRUE);
|
| }
|
|
|
| -void CPWL_Note_Edit::OnKillFocus()
|
| -{
|
| - EnableSpellCheck(FALSE);
|
| +void CPWL_Note_Edit::OnKillFocus() {
|
| + EnableSpellCheck(FALSE);
|
|
|
| - if (CPWL_Wnd* pParent = GetParentWindow())
|
| - {
|
| - if (CPWL_Wnd* pGrand = pParent->GetParentWindow())
|
| - {
|
| - ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + if (CPWL_Wnd* pGrand = pParent->GetParentWindow()) {
|
| + ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
|
|
|
| - CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pGrand;
|
| + CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pGrand;
|
|
|
| - pNoteItem->OnContentsValidate();
|
| - }
|
| - }
|
| + pNoteItem->OnContentsValidate();
|
| + }
|
| + }
|
|
|
| - CPWL_Edit::OnKillFocus();
|
| + CPWL_Edit::OnKillFocus();
|
| }
|
|
|
| -void CPWL_Note_Edit::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
|
| -{
|
| - if (m_bEnableNotify)
|
| - {
|
| - if (wParam == SBT_VSCROLL)
|
| - {
|
| - switch (msg)
|
| - {
|
| - case PNM_SETSCROLLINFO:
|
| - if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam)
|
| - {
|
| - if (!IsFloatEqual(pInfo->fContentMax, m_fOldMax) ||
|
| - !IsFloatEqual(pInfo->fContentMin, m_fOldMin))
|
| - {
|
| - m_bSizeChanged = TRUE;
|
| - if (CPWL_Wnd * pParent = GetParentWindow())
|
| - {
|
| - pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| - }
|
| +void CPWL_Note_Edit::OnNotify(CPWL_Wnd* pWnd,
|
| + FX_DWORD msg,
|
| + intptr_t wParam,
|
| + intptr_t lParam) {
|
| + if (m_bEnableNotify) {
|
| + if (wParam == SBT_VSCROLL) {
|
| + switch (msg) {
|
| + case PNM_SETSCROLLINFO:
|
| + if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam) {
|
| + if (!IsFloatEqual(pInfo->fContentMax, m_fOldMax) ||
|
| + !IsFloatEqual(pInfo->fContentMin, m_fOldMin)) {
|
| + m_bSizeChanged = TRUE;
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| + }
|
|
|
| - m_fOldMax = pInfo->fContentMax;
|
| - m_fOldMin = pInfo->fContentMin;
|
| - return;
|
| - }
|
| - }
|
| - }
|
| - }
|
| - }
|
| + m_fOldMax = pInfo->fContentMax;
|
| + m_fOldMin = pInfo->fContentMin;
|
| + return;
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }
|
|
|
| - CPWL_Edit::OnNotify(pWnd, msg, wParam, lParam);
|
| + CPWL_Edit::OnNotify(pWnd, msg, wParam, lParam);
|
|
|
| - if (m_bEnableNotify)
|
| - {
|
| - switch (msg)
|
| - {
|
| - case PNM_SETCARETINFO:
|
| - if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
|
| - {
|
| - PWL_CARET_INFO newInfo = *pInfo;
|
| - newInfo.bVisible = TRUE;
|
| - newInfo.ptHead = ChildToParent(pInfo->ptHead);
|
| - newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
|
| + if (m_bEnableNotify) {
|
| + switch (msg) {
|
| + case PNM_SETCARETINFO:
|
| + if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
|
| + PWL_CARET_INFO newInfo = *pInfo;
|
| + newInfo.bVisible = TRUE;
|
| + newInfo.ptHead = ChildToParent(pInfo->ptHead);
|
| + newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
|
|
|
| - if (CPWL_Wnd * pParent = GetParentWindow())
|
| - {
|
| - pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
|
| - }
|
| - }
|
| - break;
|
| - }
|
| - }
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
|
| + }
|
| + }
|
| + break;
|
| + }
|
| + }
|
| }
|
|
|
| -FX_FLOAT CPWL_Note_Edit::GetItemHeight(FX_FLOAT fLimitWidth)
|
| -{
|
| - if (fLimitWidth > 0)
|
| - {
|
| - if (!m_bSizeChanged)
|
| - return m_fOldItemHeight;
|
| +FX_FLOAT CPWL_Note_Edit::GetItemHeight(FX_FLOAT fLimitWidth) {
|
| + if (fLimitWidth > 0) {
|
| + if (!m_bSizeChanged)
|
| + return m_fOldItemHeight;
|
|
|
| - m_bSizeChanged = FALSE;
|
| + m_bSizeChanged = FALSE;
|
|
|
| - EnableNotify(FALSE);
|
| - EnableRefresh(FALSE);
|
| - m_pEdit->EnableNotify(FALSE);
|
| + EnableNotify(FALSE);
|
| + EnableRefresh(FALSE);
|
| + m_pEdit->EnableNotify(FALSE);
|
|
|
| - Move(CPDF_Rect(0,0,fLimitWidth,0), TRUE, FALSE);
|
| - FX_FLOAT fRet = GetContentRect().Height();
|
| + Move(CPDF_Rect(0, 0, fLimitWidth, 0), TRUE, FALSE);
|
| + FX_FLOAT fRet = GetContentRect().Height();
|
|
|
| - m_pEdit->EnableNotify(TRUE);
|
| - EnableNotify(TRUE);
|
| - EnableRefresh(TRUE);
|
| + m_pEdit->EnableNotify(TRUE);
|
| + EnableNotify(TRUE);
|
| + EnableRefresh(TRUE);
|
|
|
| - return fRet;
|
| - }
|
| + return fRet;
|
| + }
|
|
|
| - return 0;
|
| + return 0;
|
| }
|
|
|
| -FX_FLOAT CPWL_Note_Edit::GetItemLeftMargin()
|
| -{
|
| - return POPUP_ITEM_TEXT_INDENT;
|
| +FX_FLOAT CPWL_Note_Edit::GetItemLeftMargin() {
|
| + return POPUP_ITEM_TEXT_INDENT;
|
| }
|
|
|
| -FX_FLOAT CPWL_Note_Edit::GetItemRightMargin()
|
| -{
|
| - return POPUP_ITEM_TEXT_INDENT;
|
| +FX_FLOAT CPWL_Note_Edit::GetItemRightMargin() {
|
| + return POPUP_ITEM_TEXT_INDENT;
|
| }
|
|
|
| -/* -------------------------------- CPWL_Note_LBBox --------------------------------*/
|
| +/* -------------------------------- CPWL_Note_LBBox
|
| + * --------------------------------*/
|
|
|
| -CPWL_Note_LBBox::CPWL_Note_LBBox()
|
| -{
|
| -}
|
| +CPWL_Note_LBBox::CPWL_Note_LBBox() {}
|
|
|
| -CPWL_Note_LBBox::~CPWL_Note_LBBox()
|
| -{
|
| -}
|
| +CPWL_Note_LBBox::~CPWL_Note_LBBox() {}
|
|
|
| -void CPWL_Note_LBBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
|
| -{
|
| - CPDF_Rect rcClient = GetClientRect();
|
| +void CPWL_Note_LBBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device) {
|
| + CPDF_Rect rcClient = GetClientRect();
|
|
|
| - CFX_GraphStateData gsd;
|
| - gsd.m_LineWidth = 1.0f;
|
| + CFX_GraphStateData gsd;
|
| + gsd.m_LineWidth = 1.0f;
|
|
|
| - CFX_PathData pathCross;
|
| + CFX_PathData pathCross;
|
|
|
| - pathCross.SetPointCount(4);
|
| - pathCross.SetPoint(0, rcClient.left, rcClient.top, FXPT_MOVETO);
|
| - pathCross.SetPoint(1, rcClient.right, rcClient.bottom, FXPT_LINETO);
|
| - pathCross.SetPoint(2, rcClient.left, rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
|
| - pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f, rcClient.bottom, FXPT_LINETO);
|
| + pathCross.SetPointCount(4);
|
| + pathCross.SetPoint(0, rcClient.left, rcClient.top, FXPT_MOVETO);
|
| + pathCross.SetPoint(1, rcClient.right, rcClient.bottom, FXPT_LINETO);
|
| + pathCross.SetPoint(2, rcClient.left,
|
| + rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
|
| + pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f,
|
| + rcClient.bottom, FXPT_LINETO);
|
|
|
| - pDevice->DrawPath(&pathCross, pUser2Device, &gsd,
|
| - 0, CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), FXFILL_ALTERNATE);
|
| + pDevice->DrawPath(
|
| + &pathCross, pUser2Device, &gsd, 0,
|
| + CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
|
| + FXFILL_ALTERNATE);
|
| }
|
|
|
| -/* -------------------------------- CPWL_Note_RBBox --------------------------------*/
|
| +/* -------------------------------- CPWL_Note_RBBox
|
| + * --------------------------------*/
|
|
|
| -CPWL_Note_RBBox::CPWL_Note_RBBox()
|
| -{
|
| -}
|
| +CPWL_Note_RBBox::CPWL_Note_RBBox() {}
|
|
|
| -CPWL_Note_RBBox::~CPWL_Note_RBBox()
|
| -{
|
| -}
|
| +CPWL_Note_RBBox::~CPWL_Note_RBBox() {}
|
|
|
| -void CPWL_Note_RBBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
|
| -{
|
| - CPDF_Rect rcClient = GetClientRect();
|
| +void CPWL_Note_RBBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device) {
|
| + CPDF_Rect rcClient = GetClientRect();
|
|
|
| - CFX_GraphStateData gsd;
|
| - gsd.m_LineWidth = 1.0f;
|
| + CFX_GraphStateData gsd;
|
| + gsd.m_LineWidth = 1.0f;
|
|
|
| - CFX_PathData pathCross;
|
| + CFX_PathData pathCross;
|
|
|
| - pathCross.SetPointCount(4);
|
| - pathCross.SetPoint(0, rcClient.right, rcClient.top, FXPT_MOVETO);
|
| - pathCross.SetPoint(1, rcClient.left, rcClient.bottom, FXPT_LINETO);
|
| - pathCross.SetPoint(2, rcClient.right, rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
|
| - pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f, rcClient.bottom, FXPT_LINETO);
|
| + pathCross.SetPointCount(4);
|
| + pathCross.SetPoint(0, rcClient.right, rcClient.top, FXPT_MOVETO);
|
| + pathCross.SetPoint(1, rcClient.left, rcClient.bottom, FXPT_LINETO);
|
| + pathCross.SetPoint(2, rcClient.right,
|
| + rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
|
| + pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f,
|
| + rcClient.bottom, FXPT_LINETO);
|
|
|
| - pDevice->DrawPath(&pathCross, pUser2Device, &gsd,
|
| - 0, CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), FXFILL_ALTERNATE);
|
| + pDevice->DrawPath(
|
| + &pathCross, pUser2Device, &gsd, 0,
|
| + CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
|
| + FXFILL_ALTERNATE);
|
| }
|
|
|
| -/* --------------------------------- CPWL_Note_Icon ---------------------------------- */
|
| +/* --------------------------------- CPWL_Note_Icon
|
| + * ---------------------------------- */
|
|
|
| -CPWL_Note_Icon::CPWL_Note_Icon() : m_nType(0)
|
| -{
|
| -}
|
| +CPWL_Note_Icon::CPWL_Note_Icon() : m_nType(0) {}
|
|
|
| -CPWL_Note_Icon::~CPWL_Note_Icon()
|
| -{
|
| -}
|
| +CPWL_Note_Icon::~CPWL_Note_Icon() {}
|
|
|
| -void CPWL_Note_Icon::SetIconType(int32_t nType)
|
| -{
|
| - m_nType = nType;
|
| +void CPWL_Note_Icon::SetIconType(int32_t nType) {
|
| + m_nType = nType;
|
| }
|
|
|
| -void CPWL_Note_Icon::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
|
| -{
|
| - CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nType, GetClientRect(),
|
| - GetBackgroundColor(), PWL_DEFAULT_BLACKCOLOR, GetTransparency());
|
| +void CPWL_Note_Icon::DrawThisAppearance(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device) {
|
| + CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nType, GetClientRect(),
|
| + GetBackgroundColor(), PWL_DEFAULT_BLACKCOLOR,
|
| + GetTransparency());
|
| }
|
|
|
| -/* --------------------------------- CPWL_Note_CloseBox ---------------------------------- */
|
| +/* --------------------------------- CPWL_Note_CloseBox
|
| + * ---------------------------------- */
|
|
|
| -CPWL_Note_CloseBox::CPWL_Note_CloseBox() : m_bMouseDown(FALSE)
|
| -{
|
| -}
|
| +CPWL_Note_CloseBox::CPWL_Note_CloseBox() : m_bMouseDown(FALSE) {}
|
|
|
| -CPWL_Note_CloseBox::~CPWL_Note_CloseBox()
|
| -{
|
| -}
|
| +CPWL_Note_CloseBox::~CPWL_Note_CloseBox() {}
|
|
|
| -void CPWL_Note_CloseBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
|
| -{
|
| - CPWL_Button::DrawThisAppearance(pDevice, pUser2Device);
|
| +void CPWL_Note_CloseBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device) {
|
| + CPWL_Button::DrawThisAppearance(pDevice, pUser2Device);
|
|
|
| - CPDF_Rect rcClient = GetClientRect();
|
| - rcClient = CPWL_Utils::DeflateRect(rcClient, 2.0f);
|
| + CPDF_Rect rcClient = GetClientRect();
|
| + rcClient = CPWL_Utils::DeflateRect(rcClient, 2.0f);
|
|
|
| - CFX_GraphStateData gsd;
|
| - gsd.m_LineWidth = 1.0f;
|
| + CFX_GraphStateData gsd;
|
| + gsd.m_LineWidth = 1.0f;
|
|
|
| - CFX_PathData pathCross;
|
| + CFX_PathData pathCross;
|
|
|
| - if (m_bMouseDown)
|
| - {
|
| - rcClient.left += 0.5f;
|
| - rcClient.right += 0.5f;
|
| - rcClient.top -= 0.5f;
|
| - rcClient.bottom -= 0.5f;
|
| - }
|
| + if (m_bMouseDown) {
|
| + rcClient.left += 0.5f;
|
| + rcClient.right += 0.5f;
|
| + rcClient.top -= 0.5f;
|
| + rcClient.bottom -= 0.5f;
|
| + }
|
|
|
| - pathCross.SetPointCount(4);
|
| - pathCross.SetPoint(0, rcClient.left, rcClient.bottom, FXPT_MOVETO);
|
| - pathCross.SetPoint(1, rcClient.right, rcClient.top, FXPT_LINETO);
|
| - pathCross.SetPoint(2, rcClient.left, rcClient.top, FXPT_MOVETO);
|
| - pathCross.SetPoint(3, rcClient.right, rcClient.bottom, FXPT_LINETO);
|
| + pathCross.SetPointCount(4);
|
| + pathCross.SetPoint(0, rcClient.left, rcClient.bottom, FXPT_MOVETO);
|
| + pathCross.SetPoint(1, rcClient.right, rcClient.top, FXPT_LINETO);
|
| + pathCross.SetPoint(2, rcClient.left, rcClient.top, FXPT_MOVETO);
|
| + pathCross.SetPoint(3, rcClient.right, rcClient.bottom, FXPT_LINETO);
|
|
|
| - pDevice->DrawPath(&pathCross, pUser2Device, &gsd,
|
| - 0, CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), FXFILL_ALTERNATE);
|
| + pDevice->DrawPath(
|
| + &pathCross, pUser2Device, &gsd, 0,
|
| + CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
|
| + FXFILL_ALTERNATE);
|
| }
|
|
|
| -FX_BOOL CPWL_Note_CloseBox::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
|
| -{
|
| - SetBorderStyle(PBS_INSET);
|
| - InvalidateRect(NULL);
|
| +FX_BOOL CPWL_Note_CloseBox::OnLButtonDown(const CPDF_Point& point,
|
| + FX_DWORD nFlag) {
|
| + SetBorderStyle(PBS_INSET);
|
| + InvalidateRect(NULL);
|
|
|
| - m_bMouseDown = TRUE;
|
| + m_bMouseDown = TRUE;
|
|
|
| - return CPWL_Button::OnLButtonDown(point,nFlag);
|
| + return CPWL_Button::OnLButtonDown(point, nFlag);
|
| }
|
|
|
| -FX_BOOL CPWL_Note_CloseBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
|
| -{
|
| - m_bMouseDown = FALSE;
|
| +FX_BOOL CPWL_Note_CloseBox::OnLButtonUp(const CPDF_Point& point,
|
| + FX_DWORD nFlag) {
|
| + m_bMouseDown = FALSE;
|
|
|
| - SetBorderStyle(PBS_BEVELED);
|
| - InvalidateRect(NULL);
|
| + SetBorderStyle(PBS_BEVELED);
|
| + InvalidateRect(NULL);
|
|
|
| - return CPWL_Button::OnLButtonUp(point,nFlag);
|
| + return CPWL_Button::OnLButtonUp(point, nFlag);
|
| }
|
|
|
| -/* ------------------------------ CPWL_Note_Contents ------------------------------- */
|
| +/* ------------------------------ CPWL_Note_Contents
|
| + * ------------------------------- */
|
| +
|
| +CPWL_Note_Contents::CPWL_Note_Contents() : m_pEdit(NULL) {}
|
| +
|
| +CPWL_Note_Contents::~CPWL_Note_Contents() {}
|
|
|
| -CPWL_Note_Contents::CPWL_Note_Contents() : m_pEdit(NULL)
|
| -{
|
| +CFX_ByteString CPWL_Note_Contents::GetClassName() const {
|
| + return "CPWL_Note_Contents";
|
| }
|
|
|
| -CPWL_Note_Contents::~CPWL_Note_Contents()
|
| -{
|
| +void CPWL_Note_Contents::CreateChildWnd(const PWL_CREATEPARAM& cp) {
|
| + m_pEdit = new CPWL_Note_Edit;
|
| + PWL_CREATEPARAM ecp = cp;
|
| + ecp.pParentWnd = this;
|
| + ecp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_MULTILINE | PES_AUTORETURN |
|
| + PES_TEXTOVERFLOW | PES_UNDO | PES_SPELLCHECK;
|
| +
|
| + m_pEdit->EnableNotify(FALSE);
|
| + m_pEdit->Create(ecp);
|
| + m_pEdit->EnableNotify(TRUE);
|
| }
|
|
|
| -CFX_ByteString CPWL_Note_Contents::GetClassName() const
|
| -{
|
| - return "CPWL_Note_Contents";
|
| +void CPWL_Note_Contents::SetText(const CFX_WideString& sText) {
|
| + if (m_pEdit) {
|
| + m_pEdit->EnableNotify(FALSE);
|
| + m_pEdit->SetText(sText.c_str());
|
| + m_pEdit->EnableNotify(TRUE);
|
| + OnNotify(m_pEdit, PNM_NOTEEDITCHANGED, 0, 0);
|
| + }
|
| }
|
|
|
| -void CPWL_Note_Contents::CreateChildWnd(const PWL_CREATEPARAM & cp)
|
| -{
|
| - m_pEdit = new CPWL_Note_Edit;
|
| - PWL_CREATEPARAM ecp = cp;
|
| - ecp.pParentWnd = this;
|
| - ecp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_MULTILINE | PES_AUTORETURN | PES_TEXTOVERFLOW | PES_UNDO | PES_SPELLCHECK;
|
| +CFX_WideString CPWL_Note_Contents::GetText() const {
|
| + if (m_pEdit)
|
| + return m_pEdit->GetText();
|
| +
|
| + return L"";
|
| +}
|
| +
|
| +CPWL_NoteItem* CPWL_Note_Contents::CreateSubItem() {
|
| + CPWL_NoteItem* pNoteItem = new CPWL_NoteItem;
|
| + PWL_CREATEPARAM icp = GetCreationParam();
|
| + icp.pParentWnd = this;
|
| + icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
|
| + pNoteItem->Create(icp);
|
| +
|
| + pNoteItem->OnCreateNoteItem();
|
| +
|
| + pNoteItem->ResetSubjectName(m_aChildren.GetSize() - 1);
|
| +
|
| + FX_SYSTEMTIME st;
|
| + if (IFX_SystemHandler* pSH = GetSystemHandler())
|
| + st = pSH->GetLocalTime();
|
| + pNoteItem->SetDateTime(st);
|
| +
|
| + pNoteItem->SetContents(L"");
|
| +
|
| + OnNotify(pNoteItem, PNM_NOTEEDITCHANGED, 0, 0);
|
|
|
| - m_pEdit->EnableNotify(FALSE);
|
| - m_pEdit->Create(ecp);
|
| - m_pEdit->EnableNotify(TRUE);
|
| + return pNoteItem;
|
| }
|
|
|
| -void CPWL_Note_Contents::SetText(const CFX_WideString& sText)
|
| -{
|
| - if (m_pEdit)
|
| - {
|
| - m_pEdit->EnableNotify(FALSE);
|
| - m_pEdit->SetText(sText.c_str());
|
| - m_pEdit->EnableNotify(TRUE);
|
| - OnNotify(m_pEdit, PNM_NOTEEDITCHANGED, 0, 0);
|
| - }
|
| +int32_t CPWL_Note_Contents::CountSubItems() const {
|
| + return m_aChildren.GetSize() - 1;
|
| }
|
|
|
| -CFX_WideString CPWL_Note_Contents::GetText() const
|
| -{
|
| - if (m_pEdit)
|
| - return m_pEdit->GetText();
|
| +IPWL_NoteItem* CPWL_Note_Contents::GetSubItems(int32_t index) const {
|
| + int32_t nIndex = index + 1;
|
|
|
| - return L"";
|
| + if (nIndex > 0 && nIndex < m_aChildren.GetSize())
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(nIndex)) {
|
| + ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
|
| + CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
|
| + return pItem;
|
| + }
|
| + return NULL;
|
| }
|
|
|
| -CPWL_NoteItem* CPWL_Note_Contents::CreateSubItem()
|
| -{
|
| - CPWL_NoteItem* pNoteItem = new CPWL_NoteItem;
|
| - PWL_CREATEPARAM icp = GetCreationParam();
|
| - icp.pParentWnd = this;
|
| - icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
|
| - pNoteItem->Create(icp);
|
| +void CPWL_Note_Contents::DeleteSubItem(IPWL_NoteItem* pNoteItem) {
|
| + int32_t nIndex = GetItemIndex((CPWL_NoteItem*)pNoteItem);
|
|
|
| - pNoteItem->OnCreateNoteItem();
|
| + if (nIndex > 0) {
|
| + if (CPWL_NoteItem* pPWLNoteItem = (CPWL_NoteItem*)pNoteItem) {
|
| + pPWLNoteItem->KillFocus();
|
| + pPWLNoteItem->Destroy();
|
| + delete pPWLNoteItem;
|
| + }
|
|
|
| - pNoteItem->ResetSubjectName(m_aChildren.GetSize() - 1);
|
| + for (int32_t i = nIndex, sz = m_aChildren.GetSize(); i < sz; i++) {
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
|
| + ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
|
| + CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
|
| + pItem->ResetSubjectName(i);
|
| + }
|
| + }
|
|
|
| - FX_SYSTEMTIME st;
|
| - if (IFX_SystemHandler* pSH = GetSystemHandler())
|
| - st = pSH->GetLocalTime();
|
| - pNoteItem->SetDateTime(st);
|
| + OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| + }
|
| +}
|
| +
|
| +IPWL_NoteItem* CPWL_Note_Contents::GetHitNoteItem(const CPDF_Point& point) {
|
| + CPDF_Point pt = ParentToChild(point);
|
|
|
| - pNoteItem->SetContents(L"");
|
| + for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
|
| + if (pChild->GetClassName() == "CPWL_NoteItem") {
|
| + CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
|
| + if (IPWL_NoteItem* pRet = pNoteItem->GetHitNoteItem(pt))
|
| + return pRet;
|
| + }
|
| + }
|
| + }
|
| + return NULL;
|
| +}
|
| +
|
| +void CPWL_Note_Contents::OnNotify(CPWL_Wnd* pWnd,
|
| + FX_DWORD msg,
|
| + intptr_t wParam,
|
| + intptr_t lParam) {
|
| + switch (msg) {
|
| + case PNM_NOTEEDITCHANGED: {
|
| + int32_t nIndex = GetItemIndex(pWnd);
|
| + if (nIndex < 0)
|
| + nIndex = 0;
|
| +
|
| + m_pEdit->EnableNotify(FALSE);
|
| + ResetContent(nIndex);
|
| + m_pEdit->EnableNotify(TRUE);
|
| +
|
| + for (int32_t i = nIndex + 1, sz = m_aChildren.GetSize(); i < sz; i++) {
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| + pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + }
|
| +
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| + }
|
| + }
|
| + return;
|
| + case PNM_SCROLLWINDOW:
|
| + SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam));
|
| + ResetFace();
|
| + InvalidateRect(NULL);
|
| + return;
|
| + case PNM_SETCARETINFO:
|
| + if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
|
| + PWL_CARET_INFO newInfo = *pInfo;
|
| + newInfo.bVisible = TRUE;
|
| + newInfo.ptHead = ChildToParent(pInfo->ptHead);
|
| + newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
|
| +
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
|
| + }
|
| + }
|
| + return;
|
| + case PNM_NOTERESET: {
|
| + m_pEdit->EnableNotify(FALSE);
|
| + ResetContent(0);
|
| + m_pEdit->EnableNotify(TRUE);
|
| +
|
| + for (int32_t i = 1, sz = m_aChildren.GetSize(); i < sz; i++) {
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| + pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + }
|
| +
|
| + m_pEdit->EnableNotify(FALSE);
|
| + ResetContent(0);
|
| + m_pEdit->EnableNotify(TRUE);
|
| + }
|
| + return;
|
| + }
|
| +
|
| + CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
|
| +}
|
| +
|
| +FX_BOOL CPWL_Note_Contents::OnLButtonDown(const CPDF_Point& point,
|
| + FX_DWORD nFlag) {
|
| + if (CPWL_Wnd::OnLButtonDown(point, nFlag))
|
| + return TRUE;
|
| +
|
| + if (!m_pEdit->IsFocused()) {
|
| + m_pEdit->SetFocus();
|
| + }
|
| +
|
| + return TRUE;
|
| +}
|
| +
|
| +void CPWL_Note_Contents::SetEditFocus(FX_BOOL bLast) {
|
| + if (!m_pEdit->IsFocused()) {
|
| + m_pEdit->SetFocus();
|
| + m_pEdit->SetCaret(bLast ? m_pEdit->GetTotalWords() : 0);
|
| + }
|
| +}
|
| +
|
| +CPWL_Edit* CPWL_Note_Contents::GetEdit() const {
|
| + return m_pEdit;
|
| +}
|
| +
|
| +void CPWL_Note_Contents::EnableModify(FX_BOOL bEnabled) {
|
| + if (!bEnabled)
|
| + m_pEdit->AddFlag(PWS_READONLY);
|
| + else
|
| + m_pEdit->RemoveFlag(PWS_READONLY);
|
| +
|
| + for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
|
| + if (pChild->GetClassName() == "CPWL_NoteItem") {
|
| + CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
|
| + pNoteItem->EnableModify(bEnabled);
|
| + }
|
| + }
|
| + }
|
| +}
|
| +
|
| +void CPWL_Note_Contents::EnableRead(FX_BOOL bEnabled) {
|
| + if (!bEnabled)
|
| + m_pEdit->AddFlag(PES_NOREAD);
|
| + else
|
| + m_pEdit->RemoveFlag(PES_NOREAD);
|
| +
|
| + for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
|
| + if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
|
| + if (pChild->GetClassName() == "CPWL_NoteItem") {
|
| + CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
|
| + pNoteItem->EnableRead(bEnabled);
|
| + }
|
| + }
|
| + }
|
| +}
|
| +
|
| +/* ---------------------------------- CPWL_NoteItem
|
| + * ---------------------------------- */
|
| +
|
| +CPWL_NoteItem::CPWL_NoteItem()
|
| + : m_pSubject(NULL),
|
| + m_pDateTime(NULL),
|
| + m_pContents(NULL),
|
| + m_pPrivateData(NULL),
|
| + m_sAuthor(L""),
|
| + m_fOldItemHeight(0.0f),
|
| + m_bSizeChanged(FALSE),
|
| + m_bAllowModify(TRUE) {}
|
| +
|
| +CPWL_NoteItem::~CPWL_NoteItem() {}
|
| +
|
| +CFX_ByteString CPWL_NoteItem::GetClassName() const {
|
| + return "CPWL_NoteItem";
|
| +}
|
| +
|
| +void CPWL_NoteItem::CreateChildWnd(const PWL_CREATEPARAM& cp) {
|
| + CPWL_Color sTextColor;
|
| +
|
| + if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
|
| + sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| + else
|
| + sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| +
|
| + m_pSubject = new CPWL_Label;
|
| + PWL_CREATEPARAM scp = cp;
|
| + scp.pParentWnd = this;
|
| + scp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
|
| + scp.sTextColor = sTextColor;
|
| + m_pSubject->Create(scp);
|
| +
|
| + m_pDateTime = new CPWL_Label;
|
| + PWL_CREATEPARAM dcp = cp;
|
| + dcp.pParentWnd = this;
|
| + dcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_RIGHT | PES_TOP;
|
| + dcp.sTextColor = sTextColor;
|
| + m_pDateTime->Create(dcp);
|
| +
|
| + m_pContents = new CPWL_Note_Contents;
|
| + PWL_CREATEPARAM ccp = cp;
|
| + ccp.pParentWnd = this;
|
| + // ccp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
|
| + ccp.sBackgroundColor =
|
| + CPWL_Color(COLORTYPE_RGB, 240 / 255.0f, 240 / 255.0f, 240 / 255.0f);
|
| + ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BACKGROUND;
|
| + m_pContents->Create(ccp);
|
| + m_pContents->SetItemSpace(POPUP_ITEM_SPACE);
|
| + m_pContents->SetTopSpace(POPUP_ITEM_SPACE);
|
| + m_pContents->SetBottomSpace(POPUP_ITEM_SPACE);
|
| +}
|
| +
|
| +void CPWL_NoteItem::RePosChildWnd() {
|
| + if (IsValid()) {
|
| + ASSERT(m_pSubject != NULL);
|
| + ASSERT(m_pDateTime != NULL);
|
| + ASSERT(m_pContents != NULL);
|
| +
|
| + CPDF_Rect rcClient = GetClientRect();
|
| +
|
| + CPDF_Rect rcSubject = rcClient;
|
| + rcSubject.left += POPUP_ITEM_TEXT_INDENT;
|
| + rcSubject.top = rcClient.top;
|
| + rcSubject.right =
|
| + PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f,
|
| + rcClient.right);
|
| + rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
|
| + rcSubject.Normalize();
|
| + m_pSubject->Move(rcSubject, TRUE, FALSE);
|
| + m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
|
| +
|
| + CPDF_Rect rcDate = rcClient;
|
| + rcDate.right -= POPUP_ITEM_TEXT_INDENT;
|
| + rcDate.left =
|
| + PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f,
|
| + rcSubject.right);
|
| + rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
|
| + rcDate.Normalize();
|
| + m_pDateTime->Move(rcDate, TRUE, FALSE);
|
| + m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
|
| +
|
| + CPDF_Rect rcContents = rcClient;
|
| + rcContents.left += 1.0f;
|
| + rcContents.right -= 1.0f;
|
| + rcContents.top = rcDate.bottom - POPUP_ITEM_HEAD_BOTTOM;
|
| + rcContents.bottom += POPUP_ITEM_BOTTOMWIDTH;
|
| + rcContents.Normalize();
|
| + m_pContents->Move(rcContents, TRUE, FALSE);
|
| + m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
|
| + }
|
| +
|
| + SetClipRect(CPWL_Utils::InflateRect(GetWindowRect(), 1.0f));
|
| +}
|
| +
|
| +void CPWL_NoteItem::SetPrivateData(void* pData) {
|
| + m_pPrivateData = pData;
|
| +}
|
| +
|
| +void CPWL_NoteItem::SetBkColor(const CPWL_Color& color) {
|
| + CPWL_Color sBK = color;
|
| + SetBackgroundColor(sBK);
|
| +
|
| + CPWL_Color sTextColor;
|
| +
|
| + if (CPWL_Utils::IsBlackOrWhite(sBK))
|
| + sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| + else
|
| + sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
|
|
| - OnNotify(pNoteItem, PNM_NOTEEDITCHANGED, 0, 0);
|
| + SetTextColor(sTextColor);
|
| + if (m_pSubject)
|
| + m_pSubject->SetTextColor(sTextColor);
|
| + if (m_pDateTime)
|
| + m_pDateTime->SetTextColor(sTextColor);
|
|
|
| - return pNoteItem;
|
| + InvalidateRect(nullptr);
|
| +
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetBkColor(this);
|
| + }
|
| }
|
|
|
| -int32_t CPWL_Note_Contents::CountSubItems() const
|
| -{
|
| - return m_aChildren.GetSize() - 1;
|
| +void CPWL_NoteItem::SetSubjectName(const CFX_WideString& sName) {
|
| + if (m_pSubject) {
|
| + m_pSubject->SetText(sName.c_str());
|
| + }
|
| +
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetSubjectName(this);
|
| + }
|
| }
|
|
|
| -IPWL_NoteItem* CPWL_Note_Contents::GetSubItems(int32_t index) const
|
| -{
|
| - int32_t nIndex = index + 1;
|
| +void CPWL_NoteItem::SetAuthorName(const CFX_WideString& sName) {
|
| + m_sAuthor = sName;
|
| + ResetSubjectName(-1);
|
|
|
| - if (nIndex > 0 && nIndex < m_aChildren.GetSize())
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(nIndex))
|
| - {
|
| - ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
|
| - CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
|
| - return pItem;
|
| - }
|
| - return NULL;
|
| -}
|
| -
|
| -void CPWL_Note_Contents::DeleteSubItem(IPWL_NoteItem* pNoteItem)
|
| -{
|
| - int32_t nIndex = GetItemIndex((CPWL_NoteItem*)pNoteItem);
|
| -
|
| - if (nIndex > 0)
|
| - {
|
| - if (CPWL_NoteItem* pPWLNoteItem = (CPWL_NoteItem*)pNoteItem)
|
| - {
|
| - pPWLNoteItem->KillFocus();
|
| - pPWLNoteItem->Destroy();
|
| - delete pPWLNoteItem;
|
| - }
|
| -
|
| - for (int32_t i=nIndex,sz=m_aChildren.GetSize(); i<sz; i++)
|
| - {
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| - {
|
| - ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
|
| - CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
|
| - pItem->ResetSubjectName(i);
|
| - }
|
| - }
|
| -
|
| - OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| - }
|
| -}
|
| -
|
| -IPWL_NoteItem* CPWL_Note_Contents::GetHitNoteItem(const CPDF_Point& point)
|
| -{
|
| - CPDF_Point pt = ParentToChild(point);
|
| -
|
| - for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
|
| - {
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| - {
|
| - if (pChild->GetClassName() == "CPWL_NoteItem")
|
| - {
|
| - CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
|
| - if (IPWL_NoteItem* pRet = pNoteItem->GetHitNoteItem(pt))
|
| - return pRet;
|
| - }
|
| - }
|
| - }
|
| - return NULL;
|
| -}
|
| -
|
| -void CPWL_Note_Contents::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
|
| -{
|
| - switch (msg)
|
| - {
|
| - case PNM_NOTEEDITCHANGED:
|
| - {
|
| - int32_t nIndex = GetItemIndex(pWnd);
|
| - if (nIndex < 0) nIndex = 0;
|
| -
|
| - m_pEdit->EnableNotify(FALSE);
|
| - ResetContent(nIndex);
|
| - m_pEdit->EnableNotify(TRUE);
|
| -
|
| - for (int32_t i=nIndex+1, sz=m_aChildren.GetSize(); i<sz; i++)
|
| - {
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| - pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| - }
|
| -
|
| - if (CPWL_Wnd * pParent = GetParentWindow())
|
| - {
|
| - pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| - }
|
| - }
|
| - return;
|
| - case PNM_SCROLLWINDOW:
|
| - SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam));
|
| - ResetFace();
|
| - InvalidateRect(NULL);
|
| - return;
|
| - case PNM_SETCARETINFO:
|
| - if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
|
| - {
|
| - PWL_CARET_INFO newInfo = *pInfo;
|
| - newInfo.bVisible = TRUE;
|
| - newInfo.ptHead = ChildToParent(pInfo->ptHead);
|
| - newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
|
| -
|
| - if (CPWL_Wnd * pParent = GetParentWindow())
|
| - {
|
| - pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
|
| - }
|
| - }
|
| - return;
|
| - case PNM_NOTERESET:
|
| - {
|
| - m_pEdit->EnableNotify(FALSE);
|
| - ResetContent(0);
|
| - m_pEdit->EnableNotify(TRUE);
|
| -
|
| - for (int32_t i=1, sz=m_aChildren.GetSize(); i<sz; i++)
|
| - {
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| - pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| - }
|
| -
|
| - m_pEdit->EnableNotify(FALSE);
|
| - ResetContent(0);
|
| - m_pEdit->EnableNotify(TRUE);
|
| - }
|
| - return;
|
| - }
|
| -
|
| - CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
|
| -}
|
| -
|
| -FX_BOOL CPWL_Note_Contents::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
|
| -{
|
| - if (CPWL_Wnd::OnLButtonDown(point,nFlag)) return TRUE;
|
| -
|
| - if (!m_pEdit->IsFocused())
|
| - {
|
| - m_pEdit->SetFocus();
|
| - }
|
| -
|
| - return TRUE;
|
| -}
|
| -
|
| -void CPWL_Note_Contents::SetEditFocus(FX_BOOL bLast)
|
| -{
|
| - if (!m_pEdit->IsFocused())
|
| - {
|
| - m_pEdit->SetFocus();
|
| - m_pEdit->SetCaret(bLast ? m_pEdit->GetTotalWords() : 0);
|
| - }
|
| -}
|
| -
|
| -CPWL_Edit* CPWL_Note_Contents::GetEdit() const
|
| -{
|
| - return m_pEdit;
|
| -}
|
| -
|
| -void CPWL_Note_Contents::EnableModify(FX_BOOL bEnabled)
|
| -{
|
| - if (!bEnabled)
|
| - m_pEdit->AddFlag(PWS_READONLY);
|
| - else
|
| - m_pEdit->RemoveFlag(PWS_READONLY);
|
| -
|
| - for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
|
| - {
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| - {
|
| - if (pChild->GetClassName() == "CPWL_NoteItem")
|
| - {
|
| - CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
|
| - pNoteItem->EnableModify(bEnabled);
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -void CPWL_Note_Contents::EnableRead(FX_BOOL bEnabled)
|
| -{
|
| - if (!bEnabled)
|
| - m_pEdit->AddFlag(PES_NOREAD);
|
| - else
|
| - m_pEdit->RemoveFlag(PES_NOREAD);
|
| -
|
| - for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
|
| - {
|
| - if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
|
| - {
|
| - if (pChild->GetClassName() == "CPWL_NoteItem")
|
| - {
|
| - CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
|
| - pNoteItem->EnableRead(bEnabled);
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -/* ---------------------------------- CPWL_NoteItem ---------------------------------- */
|
| -
|
| -CPWL_NoteItem::CPWL_NoteItem() :
|
| - m_pSubject(NULL),
|
| - m_pDateTime(NULL),
|
| - m_pContents(NULL),
|
| - m_pPrivateData(NULL),
|
| - m_sAuthor(L""),
|
| - m_fOldItemHeight(0.0f),
|
| - m_bSizeChanged(FALSE),
|
| - m_bAllowModify(TRUE)
|
| -{
|
| -}
|
| -
|
| -CPWL_NoteItem::~CPWL_NoteItem()
|
| -{
|
| -}
|
| -
|
| -CFX_ByteString CPWL_NoteItem::GetClassName() const
|
| -{
|
| - return "CPWL_NoteItem";
|
| -}
|
| -
|
| -void CPWL_NoteItem::CreateChildWnd(const PWL_CREATEPARAM & cp)
|
| -{
|
| - CPWL_Color sTextColor;
|
| -
|
| - if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
|
| - sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| - else
|
| - sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| -
|
| - m_pSubject = new CPWL_Label;
|
| - PWL_CREATEPARAM scp = cp;
|
| - scp.pParentWnd = this;
|
| - scp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
|
| - scp.sTextColor = sTextColor;
|
| - m_pSubject->Create(scp);
|
| -
|
| - m_pDateTime = new CPWL_Label;
|
| - PWL_CREATEPARAM dcp = cp;
|
| - dcp.pParentWnd = this;
|
| - dcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_RIGHT | PES_TOP;
|
| - dcp.sTextColor = sTextColor;
|
| - m_pDateTime->Create(dcp);
|
| -
|
| - m_pContents = new CPWL_Note_Contents;
|
| - PWL_CREATEPARAM ccp = cp;
|
| - ccp.pParentWnd = this;
|
| - //ccp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
|
| - ccp.sBackgroundColor = CPWL_Color(COLORTYPE_RGB, 240/255.0f, 240/255.0f, 240/255.0f);
|
| - ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BACKGROUND;
|
| - m_pContents->Create(ccp);
|
| - m_pContents->SetItemSpace(POPUP_ITEM_SPACE);
|
| - m_pContents->SetTopSpace(POPUP_ITEM_SPACE);
|
| - m_pContents->SetBottomSpace(POPUP_ITEM_SPACE);
|
| -}
|
| -
|
| -void CPWL_NoteItem::RePosChildWnd()
|
| -{
|
| - if (IsValid())
|
| - {
|
| - ASSERT(m_pSubject != NULL);
|
| - ASSERT(m_pDateTime != NULL);
|
| - ASSERT(m_pContents != NULL);
|
| -
|
| - CPDF_Rect rcClient = GetClientRect();
|
| -
|
| - CPDF_Rect rcSubject = rcClient;
|
| - rcSubject.left += POPUP_ITEM_TEXT_INDENT;
|
| - rcSubject.top = rcClient.top;
|
| - rcSubject.right = PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f, rcClient.right);
|
| - rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
|
| - rcSubject.Normalize();
|
| - m_pSubject->Move(rcSubject, TRUE, FALSE);
|
| - m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
|
| -
|
| - CPDF_Rect rcDate = rcClient;
|
| - rcDate.right -= POPUP_ITEM_TEXT_INDENT;
|
| - rcDate.left = PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f, rcSubject.right);
|
| - rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
|
| - rcDate.Normalize();
|
| - m_pDateTime->Move(rcDate, TRUE, FALSE);
|
| - m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
|
| -
|
| - CPDF_Rect rcContents = rcClient;
|
| - rcContents.left += 1.0f;
|
| - rcContents.right -= 1.0f;
|
| - rcContents.top = rcDate.bottom - POPUP_ITEM_HEAD_BOTTOM;
|
| - rcContents.bottom += POPUP_ITEM_BOTTOMWIDTH;
|
| - rcContents.Normalize();
|
| - m_pContents->Move(rcContents, TRUE, FALSE);
|
| - m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
|
| - }
|
| -
|
| - SetClipRect(CPWL_Utils::InflateRect(GetWindowRect(),1.0f));
|
| -}
|
| -
|
| -void CPWL_NoteItem::SetPrivateData(void* pData)
|
| -{
|
| - m_pPrivateData = pData;
|
| -}
|
| -
|
| -void CPWL_NoteItem::SetBkColor(const CPWL_Color& color)
|
| -{
|
| - CPWL_Color sBK = color;
|
| - SetBackgroundColor(sBK);
|
| -
|
| - CPWL_Color sTextColor;
|
| -
|
| - if (CPWL_Utils::IsBlackOrWhite(sBK))
|
| - sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| - else
|
| - sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| -
|
| - SetTextColor(sTextColor);
|
| - if (m_pSubject)
|
| - m_pSubject->SetTextColor(sTextColor);
|
| - if (m_pDateTime)
|
| - m_pDateTime->SetTextColor(sTextColor);
|
| -
|
| - InvalidateRect(nullptr);
|
| -
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetBkColor(this);
|
| - }
|
| -}
|
| -
|
| -void CPWL_NoteItem::SetSubjectName(const CFX_WideString& sName)
|
| -{
|
| - if (m_pSubject)
|
| - {
|
| - m_pSubject->SetText(sName.c_str());
|
| - }
|
| -
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetSubjectName(this);
|
| - }
|
| -}
|
| -
|
| -void CPWL_NoteItem::SetAuthorName(const CFX_WideString& sName)
|
| -{
|
| - m_sAuthor = sName;
|
| - ResetSubjectName(-1);
|
| -
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetAuthorName(this);
|
| - }
|
| -}
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetAuthorName(this);
|
| + }
|
| +}
|
|
|
| -void CPWL_NoteItem::ResetSubjectName(int32_t nItemIndex)
|
| -{
|
| - if (nItemIndex < 0)
|
| - {
|
| - if (CPWL_Wnd* pParent = GetParentWindow())
|
| - {
|
| - ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
|
| +void CPWL_NoteItem::ResetSubjectName(int32_t nItemIndex) {
|
| + if (nItemIndex < 0) {
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
|
|
|
| - CPWL_Note_Contents* pContents = (CPWL_Note_Contents*)pParent;
|
| - nItemIndex = pContents->GetItemIndex(this);
|
| - }
|
| - }
|
| + CPWL_Note_Contents* pContents = (CPWL_Note_Contents*)pParent;
|
| + nItemIndex = pContents->GetItemIndex(this);
|
| + }
|
| + }
|
|
|
| - const CPWL_Note* pNote = GetNote();
|
| - ASSERT(pNote != NULL);
|
| + const CPWL_Note* pNote = GetNote();
|
| + ASSERT(pNote != NULL);
|
|
|
| - CFX_WideString sSubject;
|
| - sSubject.Format(pNote->GetReplyString().c_str(), nItemIndex);
|
| + CFX_WideString sSubject;
|
| + sSubject.Format(pNote->GetReplyString().c_str(), nItemIndex);
|
|
|
| - if (!m_sAuthor.IsEmpty())
|
| - {
|
| - sSubject += L" - ";
|
| - sSubject += m_sAuthor;
|
| - }
|
| - SetSubjectName(sSubject);
|
| - RePosChildWnd();
|
| + if (!m_sAuthor.IsEmpty()) {
|
| + sSubject += L" - ";
|
| + sSubject += m_sAuthor;
|
| + }
|
| + SetSubjectName(sSubject);
|
| + RePosChildWnd();
|
| }
|
|
|
| -void CPWL_NoteItem::SetDateTime(FX_SYSTEMTIME time)
|
| -{
|
| - m_dtNote = time;
|
| +void CPWL_NoteItem::SetDateTime(FX_SYSTEMTIME time) {
|
| + m_dtNote = time;
|
|
|
| - CFX_WideString swTime;
|
| - swTime.Format(L"%04d-%02d-%02d %02d:%02d:%02d", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
|
| - if (m_pDateTime)
|
| - {
|
| - m_pDateTime->SetText(swTime.c_str());
|
| - }
|
| + CFX_WideString swTime;
|
| + swTime.Format(L"%04d-%02d-%02d %02d:%02d:%02d", time.wYear, time.wMonth,
|
| + time.wDay, time.wHour, time.wMinute, time.wSecond);
|
| + if (m_pDateTime) {
|
| + m_pDateTime->SetText(swTime.c_str());
|
| + }
|
|
|
| - RePosChildWnd();
|
| + RePosChildWnd();
|
|
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetDateTime(this);
|
| - }
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetDateTime(this);
|
| + }
|
| }
|
|
|
| -void CPWL_NoteItem::SetContents(const CFX_WideString& sContents)
|
| -{
|
| - if (m_pContents)
|
| - {
|
| - m_pContents->SetText(sContents);
|
| - }
|
| +void CPWL_NoteItem::SetContents(const CFX_WideString& sContents) {
|
| + if (m_pContents) {
|
| + m_pContents->SetText(sContents);
|
| + }
|
|
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetContents(this);
|
| - }
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetContents(this);
|
| + }
|
| }
|
|
|
| -CPWL_NoteItem* CPWL_NoteItem::GetParentNoteItem() const
|
| -{
|
| - if (CPWL_Wnd* pParent = GetParentWindow())
|
| - {
|
| - if (CPWL_Wnd* pGrand = pParent->GetParentWindow())
|
| - {
|
| - ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
|
| - return (CPWL_NoteItem*)pGrand;
|
| - }
|
| - }
|
| +CPWL_NoteItem* CPWL_NoteItem::GetParentNoteItem() const {
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + if (CPWL_Wnd* pGrand = pParent->GetParentWindow()) {
|
| + ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
|
| + return (CPWL_NoteItem*)pGrand;
|
| + }
|
| + }
|
|
|
| - return NULL;
|
| + return NULL;
|
| }
|
|
|
| -IPWL_NoteItem* CPWL_NoteItem::GetParentItem() const
|
| -{
|
| - return GetParentNoteItem();
|
| +IPWL_NoteItem* CPWL_NoteItem::GetParentItem() const {
|
| + return GetParentNoteItem();
|
| }
|
|
|
| -CPWL_Edit* CPWL_NoteItem::GetEdit() const
|
| -{
|
| - if (m_pContents)
|
| - return m_pContents->GetEdit();
|
| - return NULL;
|
| +CPWL_Edit* CPWL_NoteItem::GetEdit() const {
|
| + if (m_pContents)
|
| + return m_pContents->GetEdit();
|
| + return NULL;
|
| }
|
|
|
| -void* CPWL_NoteItem::GetPrivateData() const
|
| -{
|
| - return m_pPrivateData;
|
| +void* CPWL_NoteItem::GetPrivateData() const {
|
| + return m_pPrivateData;
|
| }
|
|
|
| -CFX_WideString CPWL_NoteItem::GetAuthorName() const
|
| -{
|
| - return m_sAuthor;
|
| +CFX_WideString CPWL_NoteItem::GetAuthorName() const {
|
| + return m_sAuthor;
|
| }
|
|
|
| -CPWL_Color CPWL_NoteItem::GetBkColor() const
|
| -{
|
| - return GetBackgroundColor();
|
| +CPWL_Color CPWL_NoteItem::GetBkColor() const {
|
| + return GetBackgroundColor();
|
| }
|
|
|
| -CFX_WideString CPWL_NoteItem::GetContents() const
|
| -{
|
| - if (m_pContents)
|
| - return m_pContents->GetText();
|
| +CFX_WideString CPWL_NoteItem::GetContents() const {
|
| + if (m_pContents)
|
| + return m_pContents->GetText();
|
|
|
| - return L"";
|
| + return L"";
|
| }
|
|
|
| -FX_SYSTEMTIME CPWL_NoteItem::GetDateTime() const
|
| -{
|
| - return m_dtNote;
|
| +FX_SYSTEMTIME CPWL_NoteItem::GetDateTime() const {
|
| + return m_dtNote;
|
| }
|
|
|
| -CFX_WideString CPWL_NoteItem::GetSubjectName() const
|
| -{
|
| - if (m_pSubject)
|
| - return m_pSubject->GetText();
|
| +CFX_WideString CPWL_NoteItem::GetSubjectName() const {
|
| + if (m_pSubject)
|
| + return m_pSubject->GetText();
|
|
|
| - return L"";
|
| + return L"";
|
| }
|
|
|
| -CPWL_NoteItem* CPWL_NoteItem::CreateNoteItem()
|
| -{
|
| - if (m_pContents)
|
| - return m_pContents->CreateSubItem();
|
| +CPWL_NoteItem* CPWL_NoteItem::CreateNoteItem() {
|
| + if (m_pContents)
|
| + return m_pContents->CreateSubItem();
|
|
|
| - return NULL;
|
| + return NULL;
|
| }
|
|
|
| -IPWL_NoteItem* CPWL_NoteItem::CreateSubItem()
|
| -{
|
| - return CreateNoteItem();
|
| +IPWL_NoteItem* CPWL_NoteItem::CreateSubItem() {
|
| + return CreateNoteItem();
|
| }
|
|
|
| -int32_t CPWL_NoteItem::CountSubItems() const
|
| -{
|
| - if (m_pContents)
|
| - return m_pContents->CountSubItems();
|
| +int32_t CPWL_NoteItem::CountSubItems() const {
|
| + if (m_pContents)
|
| + return m_pContents->CountSubItems();
|
|
|
| - return 0;
|
| + return 0;
|
| }
|
|
|
| -IPWL_NoteItem* CPWL_NoteItem::GetSubItems(int32_t index) const
|
| -{
|
| - if (m_pContents)
|
| - return m_pContents->GetSubItems(index);
|
| +IPWL_NoteItem* CPWL_NoteItem::GetSubItems(int32_t index) const {
|
| + if (m_pContents)
|
| + return m_pContents->GetSubItems(index);
|
|
|
| - return NULL;
|
| + return NULL;
|
| }
|
|
|
| -void CPWL_NoteItem::DeleteSubItem(IPWL_NoteItem* pNoteItem)
|
| -{
|
| - KillFocus();
|
| +void CPWL_NoteItem::DeleteSubItem(IPWL_NoteItem* pNoteItem) {
|
| + KillFocus();
|
|
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnItemDelete(pNoteItem);
|
| - }
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnItemDelete(pNoteItem);
|
| + }
|
|
|
| - if (m_pContents)
|
| - m_pContents->DeleteSubItem(pNoteItem);
|
| + if (m_pContents)
|
| + m_pContents->DeleteSubItem(pNoteItem);
|
| }
|
|
|
| -IPWL_NoteItem* CPWL_NoteItem::GetHitNoteItem(const CPDF_Point& point)
|
| -{
|
| - CPDF_Point pt = ParentToChild(point);
|
| +IPWL_NoteItem* CPWL_NoteItem::GetHitNoteItem(const CPDF_Point& point) {
|
| + CPDF_Point pt = ParentToChild(point);
|
|
|
| - if (WndHitTest(pt))
|
| - {
|
| - if (m_pContents)
|
| - {
|
| - if (IPWL_NoteItem* pNoteItem = m_pContents->GetHitNoteItem(pt))
|
| - return pNoteItem;
|
| - }
|
| + if (WndHitTest(pt)) {
|
| + if (m_pContents) {
|
| + if (IPWL_NoteItem* pNoteItem = m_pContents->GetHitNoteItem(pt))
|
| + return pNoteItem;
|
| + }
|
|
|
| - return this;
|
| - }
|
| + return this;
|
| + }
|
|
|
| - return NULL;
|
| + return NULL;
|
| }
|
|
|
| -IPWL_NoteItem* CPWL_NoteItem::GetFocusedNoteItem() const
|
| -{
|
| - if (const CPWL_Wnd* pWnd = GetFocused())
|
| - {
|
| - if (pWnd->GetClassName() == "CPWL_Edit")
|
| - {
|
| - if (CPWL_Wnd* pParent = pWnd->GetParentWindow())
|
| - {
|
| - ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
|
| +IPWL_NoteItem* CPWL_NoteItem::GetFocusedNoteItem() const {
|
| + if (const CPWL_Wnd* pWnd = GetFocused()) {
|
| + if (pWnd->GetClassName() == "CPWL_Edit") {
|
| + if (CPWL_Wnd* pParent = pWnd->GetParentWindow()) {
|
| + ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
|
|
|
| - if (CPWL_Wnd* pGrand = pParent->GetParentWindow())
|
| - {
|
| - ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
|
| - return (CPWL_NoteItem*)pGrand;
|
| - }
|
| - }
|
| - }
|
| - }
|
| + if (CPWL_Wnd* pGrand = pParent->GetParentWindow()) {
|
| + ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
|
| + return (CPWL_NoteItem*)pGrand;
|
| + }
|
| + }
|
| + }
|
| + }
|
|
|
| - return NULL;
|
| + return NULL;
|
| }
|
|
|
| -FX_FLOAT CPWL_NoteItem::GetItemHeight(FX_FLOAT fLimitWidth)
|
| -{
|
| - if (fLimitWidth > 0)
|
| - {
|
| - if (!m_bSizeChanged)
|
| - return m_fOldItemHeight;
|
| +FX_FLOAT CPWL_NoteItem::GetItemHeight(FX_FLOAT fLimitWidth) {
|
| + if (fLimitWidth > 0) {
|
| + if (!m_bSizeChanged)
|
| + return m_fOldItemHeight;
|
| +
|
| + m_bSizeChanged = FALSE;
|
|
|
| - m_bSizeChanged = FALSE;
|
| + ASSERT(m_pSubject != NULL);
|
| + ASSERT(m_pDateTime != NULL);
|
| + ASSERT(m_pContents != NULL);
|
|
|
| - ASSERT(m_pSubject != NULL);
|
| - ASSERT(m_pDateTime != NULL);
|
| - ASSERT(m_pContents != NULL);
|
| + FX_FLOAT fRet = m_pDateTime->GetContentRect().Height();
|
| + FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
|
| + if (fLimitWidth > fBorderWidth * 2)
|
| + fRet += m_pContents->GetContentsHeight(fLimitWidth - fBorderWidth * 2);
|
| + fRet += POPUP_ITEM_HEAD_BOTTOM + POPUP_ITEM_BOTTOMWIDTH + fBorderWidth * 2;
|
|
|
| - FX_FLOAT fRet = m_pDateTime->GetContentRect().Height();
|
| - FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
|
| - if (fLimitWidth > fBorderWidth * 2)
|
| - fRet += m_pContents->GetContentsHeight(fLimitWidth - fBorderWidth * 2);
|
| - fRet += POPUP_ITEM_HEAD_BOTTOM + POPUP_ITEM_BOTTOMWIDTH + fBorderWidth * 2;
|
| + return m_fOldItemHeight = fRet;
|
| + }
|
|
|
| - return m_fOldItemHeight = fRet;
|
| - }
|
| + return 0;
|
| +}
|
|
|
| - return 0;
|
| +FX_FLOAT CPWL_NoteItem::GetItemLeftMargin() {
|
| + return POPUP_ITEM_SIDEMARGIN;
|
| }
|
|
|
| -FX_FLOAT CPWL_NoteItem::GetItemLeftMargin()
|
| -{
|
| - return POPUP_ITEM_SIDEMARGIN;
|
| +FX_FLOAT CPWL_NoteItem::GetItemRightMargin() {
|
| + return POPUP_ITEM_SIDEMARGIN;
|
| }
|
|
|
| -FX_FLOAT CPWL_NoteItem::GetItemRightMargin()
|
| -{
|
| - return POPUP_ITEM_SIDEMARGIN;
|
| +FX_BOOL CPWL_NoteItem::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
|
| + if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point))) {
|
| + SetNoteFocus(FALSE);
|
| + }
|
| +
|
| + CPWL_Wnd::OnLButtonDown(point, nFlag);
|
| +
|
| + return TRUE;
|
| +}
|
| +
|
| +FX_BOOL CPWL_NoteItem::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
|
| + if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point))) {
|
| + SetNoteFocus(FALSE);
|
| + PopupNoteItemMenu(point);
|
| +
|
| + return TRUE;
|
| + }
|
| +
|
| + return CPWL_Wnd::OnRButtonUp(point, nFlag);
|
| }
|
|
|
| -FX_BOOL CPWL_NoteItem::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag)
|
| -{
|
| - if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point)))
|
| - {
|
| - SetNoteFocus(FALSE);
|
| - }
|
| +void CPWL_NoteItem::OnNotify(CPWL_Wnd* pWnd,
|
| + FX_DWORD msg,
|
| + intptr_t wParam,
|
| + intptr_t lParam) {
|
| + switch (msg) {
|
| + case PNM_NOTEEDITCHANGED:
|
| + m_bSizeChanged = TRUE;
|
|
|
| - CPWL_Wnd::OnLButtonDown(point,nFlag);
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| + }
|
| + return;
|
| + case PNM_SETCARETINFO:
|
| + if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
|
| + PWL_CARET_INFO newInfo = *pInfo;
|
| + newInfo.bVisible = TRUE;
|
| + newInfo.ptHead = ChildToParent(pInfo->ptHead);
|
| + newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
|
|
|
| - return TRUE;
|
| + if (CPWL_Wnd* pParent = GetParentWindow()) {
|
| + pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
|
| + }
|
| + }
|
| + return;
|
| + case PNM_NOTERESET:
|
| + m_bSizeChanged = TRUE;
|
| + m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| +
|
| + return;
|
| + }
|
| +
|
| + CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
|
| }
|
|
|
| -FX_BOOL CPWL_NoteItem::OnRButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
|
| -{
|
| - if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point)))
|
| - {
|
| - SetNoteFocus(FALSE);
|
| - PopupNoteItemMenu(point);
|
| +void CPWL_NoteItem::PopupNoteItemMenu(const CPDF_Point& point) {
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + int32_t x, y;
|
| + PWLtoWnd(point, x, y);
|
| + if (IFX_SystemHandler* pSH = GetSystemHandler())
|
| + pSH->ClientToScreen(GetAttachedHWnd(), x, y);
|
| + pNotify->OnPopupMenu(this, x, y);
|
| + }
|
| +}
|
|
|
| - return TRUE;
|
| - }
|
| +const CPWL_Note* CPWL_NoteItem::GetNote() const {
|
| + if (const CPWL_Wnd* pRoot = GetRootWnd()) {
|
| + ASSERT(pRoot->GetClassName() == "CPWL_NoteItem");
|
| + CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pRoot;
|
| + if (pNoteItem->IsTopItem()) {
|
| + return (CPWL_Note*)pNoteItem;
|
| + }
|
| + }
|
|
|
| - return CPWL_Wnd::OnRButtonUp(point,nFlag);
|
| + return NULL;
|
| }
|
|
|
| -void CPWL_NoteItem::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
|
| -{
|
| - switch (msg)
|
| - {
|
| - case PNM_NOTEEDITCHANGED:
|
| - m_bSizeChanged = TRUE;
|
| +IPWL_NoteNotify* CPWL_NoteItem::GetNoteNotify() const {
|
| + if (const CPWL_Note* pNote = GetNote())
|
| + return pNote->GetNoteNotify();
|
|
|
| - if (CPWL_Wnd* pParent = GetParentWindow())
|
| - {
|
| - pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| - }
|
| - return;
|
| - case PNM_SETCARETINFO:
|
| - if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
|
| - {
|
| - PWL_CARET_INFO newInfo = *pInfo;
|
| - newInfo.bVisible = TRUE;
|
| - newInfo.ptHead = ChildToParent(pInfo->ptHead);
|
| - newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
|
| -
|
| - if (CPWL_Wnd * pParent = GetParentWindow())
|
| - {
|
| - pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
|
| - }
|
| - }
|
| - return;
|
| - case PNM_NOTERESET:
|
| - m_bSizeChanged = TRUE;
|
| - m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + return NULL;
|
| +}
|
|
|
| - return;
|
| - }
|
| +void CPWL_NoteItem::OnCreateNoteItem() {
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnItemCreate(this);
|
| + }
|
| +}
|
|
|
| - CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
|
| +void CPWL_NoteItem::OnContentsValidate() {
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetContents(this);
|
| + }
|
| }
|
|
|
| -void CPWL_NoteItem::PopupNoteItemMenu(const CPDF_Point& point)
|
| -{
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - int32_t x,y;
|
| - PWLtoWnd(point, x, y);
|
| - if (IFX_SystemHandler* pSH = GetSystemHandler())
|
| - pSH->ClientToScreen(GetAttachedHWnd(), x, y);
|
| - pNotify->OnPopupMenu(this, x, y);
|
| - }
|
| +void CPWL_NoteItem::SetNoteFocus(FX_BOOL bLast) {
|
| + m_pContents->SetEditFocus(bLast);
|
| }
|
|
|
| -const CPWL_Note* CPWL_NoteItem::GetNote() const
|
| -{
|
| - if (const CPWL_Wnd* pRoot = GetRootWnd())
|
| - {
|
| - ASSERT(pRoot->GetClassName() == "CPWL_NoteItem");
|
| - CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pRoot;
|
| - if (pNoteItem->IsTopItem())
|
| - {
|
| - return (CPWL_Note*)pNoteItem;
|
| - }
|
| - }
|
| +void CPWL_NoteItem::EnableModify(FX_BOOL bEnabled) {
|
| + m_pContents->EnableModify(bEnabled);
|
| + m_bAllowModify = bEnabled;
|
| +}
|
|
|
| - return NULL;
|
| +void CPWL_NoteItem::EnableRead(FX_BOOL bEnabled) {
|
| + m_pContents->EnableRead(bEnabled);
|
| }
|
|
|
| -IPWL_NoteNotify* CPWL_NoteItem::GetNoteNotify() const
|
| -{
|
| - if (const CPWL_Note* pNote = GetNote())
|
| - return pNote->GetNoteNotify();
|
| -
|
| - return NULL;
|
| -}
|
| -
|
| -void CPWL_NoteItem::OnCreateNoteItem()
|
| -{
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnItemCreate(this);
|
| - }
|
| -}
|
| -
|
| -void CPWL_NoteItem::OnContentsValidate()
|
| -{
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetContents(this);
|
| - }
|
| -}
|
| -
|
| -void CPWL_NoteItem::SetNoteFocus(FX_BOOL bLast)
|
| -{
|
| - m_pContents->SetEditFocus(bLast);
|
| -}
|
| -
|
| -void CPWL_NoteItem::EnableModify(FX_BOOL bEnabled)
|
| -{
|
| - m_pContents->EnableModify(bEnabled);
|
| - m_bAllowModify = bEnabled;
|
| -}
|
| -
|
| -void CPWL_NoteItem::EnableRead(FX_BOOL bEnabled)
|
| -{
|
| - m_pContents->EnableRead(bEnabled);
|
| -}
|
| -
|
| -/* ---------------------------------- CPWL_Note ---------------------------------- */
|
| -
|
| -CPWL_Note::CPWL_Note(IPopup_Note* pPopupNote, IPWL_NoteNotify* pNoteNotify, IPWL_NoteHandler* pNoteHandler) :
|
| - m_pAuthor(NULL),
|
| - m_pIcon(NULL),
|
| - m_pCloseBox(NULL),
|
| - m_pLBBox(NULL),
|
| - m_pRBBox(NULL),
|
| - m_pContentsBar(NULL),
|
| - m_pOptions(NULL),
|
| - m_pNoteNotify(pNoteNotify),
|
| - m_bResizing(FALSE),
|
| - m_rcCaption(0,0,0,0),
|
| - m_bEnalbleNotify(TRUE),
|
| - m_pPopupNote(pPopupNote)
|
| -{
|
| -}
|
| -
|
| -CPWL_Note::~CPWL_Note()
|
| -{
|
| -}
|
| -
|
| -IPWL_NoteItem* CPWL_Note::Reply()
|
| -{
|
| - return CreateNoteItem();
|
| -}
|
| -
|
| -void CPWL_Note::EnableNotify(FX_BOOL bEnabled)
|
| -{
|
| - m_bEnalbleNotify = bEnabled;
|
| -}
|
| -
|
| -void CPWL_Note::RePosChildWnd()
|
| -{
|
| - RePosNoteChildren();
|
| - m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| - ResetScrollBar();
|
| - m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| - OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| - if (const CPWL_Wnd* pWnd = GetFocused())
|
| - {
|
| - if (pWnd->GetClassName() == "CPWL_Edit")
|
| - {
|
| - CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
|
| - pEdit->SetCaret(pEdit->GetCaret());
|
| - }
|
| - }
|
| -}
|
| -
|
| -FX_BOOL CPWL_Note::ResetScrollBar()
|
| -{
|
| - FX_BOOL bScrollChanged = FALSE;
|
| -
|
| - if (ScrollBarShouldVisible())
|
| - {
|
| - if (!m_pContentsBar->IsVisible())
|
| - {
|
| - m_pContentsBar->SetVisible(TRUE);
|
| - if (m_pContentsBar->IsVisible())
|
| - {
|
| - m_pContentsBar->InvalidateRect(NULL);
|
| - bScrollChanged = TRUE;
|
| - }
|
| - }
|
| - }
|
| - else
|
| - {
|
| - if (m_pContentsBar->IsVisible())
|
| - {
|
| - m_pContentsBar->SetVisible(FALSE);
|
| - m_pContentsBar->InvalidateRect(NULL);
|
| -
|
| - bScrollChanged = TRUE;
|
| - }
|
| - }
|
| -
|
| - if (bScrollChanged)
|
| - {
|
| - CPDF_Rect rcNote = GetClientRect();
|
| - CPDF_Rect rcContents = m_pContents->GetWindowRect();
|
| - rcContents.right = rcNote.right - 3.0f;
|
| - if (m_pContentsBar->IsVisible())
|
| - rcContents.right -= PWL_SCROLLBAR_WIDTH;
|
| - m_pContents->Move(rcContents, TRUE, TRUE);
|
| - m_pContents->SetScrollPos(CPDF_Point(0.0f,0.0f));
|
| - m_pContents->InvalidateRect(NULL);
|
| - }
|
| -
|
| - return bScrollChanged;
|
| -}
|
| -
|
| -FX_BOOL CPWL_Note::ScrollBarShouldVisible()
|
| -{
|
| - CPDF_Rect rcContentsFact = m_pContents->GetScrollArea();
|
| - CPDF_Rect rcContentsClient = m_pContents->GetClientRect();
|
| -
|
| - return rcContentsFact.Height() > rcContentsClient.Height();
|
| -}
|
| -
|
| -void CPWL_Note::SetOptionsText(const CFX_WideString& sText)
|
| -{
|
| - if (m_pOptions)
|
| - m_pOptions->SetText(sText);
|
| -
|
| - RePosNoteChildren();
|
| -}
|
| -
|
| -void CPWL_Note::RePosNoteChildren()
|
| -{
|
| - if (m_bResizing) return;
|
| -
|
| - m_bResizing = TRUE;
|
| -
|
| - if (IsValid())
|
| - {
|
| - ASSERT(m_pSubject != NULL);
|
| - ASSERT(m_pDateTime != NULL);
|
| - ASSERT(m_pContents != NULL);
|
| - ASSERT(m_pAuthor != NULL);
|
| - ASSERT(m_pCloseBox != NULL);
|
| - ASSERT(m_pIcon != NULL);
|
| - ASSERT(m_pLBBox != NULL);
|
| - ASSERT(m_pRBBox != NULL);
|
| - ASSERT(m_pContentsBar != NULL);
|
| - ASSERT(m_pOptions != NULL);
|
| -
|
| - CPDF_Rect rcClient = GetClientRect();
|
| -
|
| - CPDF_Rect rcIcon = rcClient;
|
| - rcIcon.top -= 2.0f;
|
| - rcIcon.right = rcIcon.left + 14.0f;
|
| - rcIcon.bottom = rcIcon.top - 14.0f;
|
| - rcIcon.Normalize();
|
| - m_pIcon->Move(rcIcon, TRUE, FALSE);
|
| - m_pIcon->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcIcon));
|
| -
|
| - CPDF_Rect rcCloseBox = rcClient;
|
| - rcCloseBox.right -= 1.0f;
|
| - rcCloseBox.top -= 1.0f;
|
| - rcCloseBox.left = rcCloseBox.right - 14.0f;
|
| - rcCloseBox.bottom = rcCloseBox.top - 14.0f;
|
| - rcCloseBox.Normalize();
|
| - m_pCloseBox->Move(rcCloseBox, TRUE, FALSE);
|
| - m_pCloseBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcCloseBox));
|
| -
|
| - CPDF_Rect rcDate = rcClient;
|
| - rcDate.right = rcCloseBox.left - POPUP_ITEM_TEXT_INDENT;
|
| - rcDate.left = PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f, rcIcon.right + 1.0f);
|
| - rcDate.top = rcClient.top - 2.0f;
|
| - rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
|
| - rcDate.Normalize();
|
| - m_pDateTime->Move(rcDate, TRUE, FALSE);
|
| - m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
|
| -
|
| - CPDF_Rect rcSubject = rcClient;
|
| - rcSubject.top = rcClient.top - 2.0f;
|
| - rcSubject.left = rcIcon.right + POPUP_ITEM_TEXT_INDENT;
|
| - rcSubject.right = PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f, rcDate.left - 1.0f);
|
| - rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
|
| - rcSubject.Normalize();
|
| - m_pSubject->Move(rcSubject, TRUE, FALSE);
|
| - m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
|
| -
|
| - CPDF_Rect rcOptions = rcClient;
|
| - rcOptions.left = PWL_MAX(rcOptions.right - m_pOptions->GetContentRect().Width(), rcIcon.right + 1.0f);
|
| - rcOptions.top = rcSubject.bottom - 4.0f;
|
| - rcOptions.bottom = rcOptions.top - m_pOptions->GetContentRect().Height();
|
| - rcOptions.Normalize();
|
| - m_pOptions->Move(rcOptions, TRUE, FALSE);
|
| - m_pOptions->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcOptions));
|
| -
|
| - CPDF_Rect rcAuthor = rcClient;
|
| - rcAuthor.top = rcSubject.bottom - 4.0f;
|
| - rcAuthor.left = rcSubject.left;
|
| - rcAuthor.right = PWL_MIN(rcSubject.left + m_pAuthor->GetContentRect().Width() + 1.0f, rcOptions.left - 1.0f);
|
| - rcAuthor.bottom = rcAuthor.top - m_pAuthor->GetContentRect().Height();
|
| - rcAuthor.Normalize();
|
| - m_pAuthor->Move(rcAuthor, TRUE, FALSE);
|
| - m_pAuthor->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcAuthor));
|
| -
|
| - CPDF_Rect rcLBBox = rcClient;
|
| - rcLBBox.top = rcLBBox.bottom + 7.0f;
|
| - rcLBBox.right = rcLBBox.left + 7.0f;
|
| - rcLBBox.Normalize();
|
| - m_pLBBox->Move(rcLBBox, TRUE, FALSE);
|
| - m_pLBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcLBBox));
|
| -
|
| - CPDF_Rect rcRBBox = rcClient;
|
| - rcRBBox.top = rcRBBox.bottom + 7.0f;
|
| - rcRBBox.left = rcRBBox.right - 7.0f;
|
| - rcRBBox.Normalize();
|
| - m_pRBBox->Move(rcRBBox, TRUE, FALSE);
|
| - m_pRBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcRBBox));
|
| -
|
| - CPDF_Rect rcContents = rcClient;
|
| - rcContents.top = rcAuthor.bottom - POPUP_ITEM_HEAD_BOTTOM;
|
| - rcContents.left += 3.0f;
|
| - rcContents.right -= 3.0f;
|
| - if (m_pContentsBar->IsVisible())
|
| - rcContents.right -= PWL_SCROLLBAR_WIDTH;
|
| - rcContents.bottom += 14.0f;
|
| - rcContents.Normalize();
|
| - m_pContents->Move(rcContents, FALSE, FALSE);
|
| - m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
|
| -
|
| - CPDF_Rect rcContentsBar = rcContents;
|
| - rcContentsBar.right = rcClient.right - 3.0f;
|
| - rcContentsBar.left = rcContentsBar.right - PWL_SCROLLBAR_WIDTH;
|
| - rcContentsBar.Normalize();
|
| - m_pContentsBar->Move(rcContentsBar, TRUE, FALSE);
|
| -
|
| - m_rcCaption = rcClient;
|
| - m_rcCaption.bottom = rcContents.top;
|
| - }
|
| -
|
| - m_bResizing = FALSE;
|
| -}
|
| -
|
| -//0-normal / 1-caption / 2-leftbottom corner / 3-rightbottom corner / 4-close / 5-options
|
| -int32_t CPWL_Note::NoteHitTest(const CPDF_Point& point) const
|
| -{
|
| - ASSERT(m_pSubject != NULL);
|
| - ASSERT(m_pDateTime != NULL);
|
| - ASSERT(m_pContents != NULL);
|
| - ASSERT(m_pAuthor != NULL);
|
| - ASSERT(m_pIcon != NULL);
|
| - ASSERT(m_pContentsBar != NULL);
|
| -
|
| - ASSERT(m_pCloseBox != NULL);
|
| - ASSERT(m_pLBBox != NULL);
|
| - ASSERT(m_pRBBox != NULL);
|
| - ASSERT(m_pOptions != NULL);
|
| -
|
| - GetClientRect();
|
| -
|
| - if (m_pSubject->WndHitTest(m_pSubject->ParentToChild(point))) return 1;
|
| - if (m_pDateTime->WndHitTest(m_pDateTime->ParentToChild(point))) return 1;
|
| - if (m_pAuthor->WndHitTest(m_pAuthor->ParentToChild(point))) return 1;
|
| - if (m_pIcon->WndHitTest(m_pIcon->ParentToChild(point))) return 1;
|
| -
|
| - if (m_pContents->WndHitTest(m_pContents->ParentToChild(point))) return 0;
|
| - if (m_pContentsBar->WndHitTest(m_pContentsBar->ParentToChild(point))) return 0;
|
| -
|
| - if (m_pCloseBox->WndHitTest(m_pCloseBox->ParentToChild(point))) return 4;
|
| - if (m_pLBBox->WndHitTest(m_pLBBox->ParentToChild(point))) return 2;
|
| - if (m_pRBBox->WndHitTest(m_pRBBox->ParentToChild(point))) return 3;
|
| - if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point))) return 5;
|
| -
|
| - return 1;
|
| -}
|
| -
|
| -void CPWL_Note::CreateChildWnd(const PWL_CREATEPARAM & cp)
|
| -{
|
| - CPWL_NoteItem::CreateChildWnd(cp);
|
| -
|
| - CPWL_Color sTextColor;
|
| -
|
| - if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
|
| - sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| - else
|
| - sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| -
|
| - m_pAuthor = new CPWL_Label;
|
| - PWL_CREATEPARAM acp = cp;
|
| - acp.pParentWnd = this;
|
| - acp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
|
| - acp.sTextColor = sTextColor;
|
| - m_pAuthor->Create(acp);
|
| -
|
| - m_pCloseBox = new CPWL_Note_CloseBox;
|
| - PWL_CREATEPARAM ccp = cp;
|
| - ccp.pParentWnd = this;
|
| - ccp.dwBorderWidth = 2;
|
| - ccp.nBorderStyle = PBS_BEVELED;
|
| - ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER;
|
| - ccp.sTextColor = sTextColor;
|
| - m_pCloseBox->Create(ccp);
|
| -
|
| - m_pIcon = new CPWL_Note_Icon;
|
| - PWL_CREATEPARAM icp = cp;
|
| - icp.pParentWnd = this;
|
| - icp.dwFlags = PWS_VISIBLE | PWS_CHILD;
|
| - m_pIcon->Create(icp);
|
| -
|
| - m_pOptions = new CPWL_Note_Options;
|
| - PWL_CREATEPARAM ocp = cp;
|
| - ocp.pParentWnd = this;
|
| - ocp.dwFlags = PWS_CHILD | PWS_VISIBLE;
|
| - ocp.sTextColor = sTextColor;
|
| - m_pOptions->Create(ocp);
|
| -
|
| - m_pLBBox = new CPWL_Note_LBBox;
|
| - PWL_CREATEPARAM lcp = cp;
|
| - lcp.pParentWnd = this;
|
| - lcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
|
| - lcp.eCursorType = FXCT_NESW;
|
| - lcp.sTextColor = sTextColor;
|
| - m_pLBBox->Create(lcp);
|
| -
|
| - m_pRBBox = new CPWL_Note_RBBox;
|
| - PWL_CREATEPARAM rcp = cp;
|
| - rcp.pParentWnd = this;
|
| - rcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
|
| - rcp.eCursorType = FXCT_NWSE;
|
| - rcp.sTextColor = sTextColor;
|
| - m_pRBBox->Create(rcp);
|
| -
|
| - m_pContentsBar = new CPWL_ScrollBar(SBT_VSCROLL);
|
| - PWL_CREATEPARAM scp = cp;
|
| - scp.pParentWnd = this;
|
| - scp.sBackgroundColor = CPWL_Color(COLORTYPE_RGB, 240/255.0f, 240/255.0f, 240/255.0f);
|
| - scp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
|
| - m_pContentsBar->Create(scp);
|
| - m_pContentsBar->SetNotifyForever(TRUE);
|
| -}
|
| -
|
| -void CPWL_Note::SetSubjectName(const CFX_WideString& sName)
|
| -{
|
| - CPWL_NoteItem::SetSubjectName(sName);
|
| - RePosChildWnd();
|
| -}
|
| -
|
| -void CPWL_Note::SetAuthorName(const CFX_WideString& sName)
|
| -{
|
| - if (m_pAuthor)
|
| - {
|
| - m_pAuthor->SetText(sName.c_str());
|
| - RePosChildWnd();
|
| - }
|
| -
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - pNotify->OnSetAuthorName(this);
|
| - }
|
| -}
|
| -
|
| -CFX_WideString CPWL_Note::GetAuthorName() const
|
| -{
|
| - if (m_pAuthor)
|
| - return m_pAuthor->GetText();
|
| -
|
| - return L"";
|
| -}
|
| -
|
| -FX_BOOL CPWL_Note::OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag)
|
| -{
|
| - CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| - CPDF_Rect rcScroll = m_pContents->GetScrollArea();
|
| - CPDF_Rect rcContents = m_pContents->GetClientRect();
|
| -
|
| - if (rcScroll.top - rcScroll.bottom > rcContents.Height())
|
| - {
|
| - CPDF_Point ptNew = ptScroll;
|
| -
|
| - if (zDelta > 0)
|
| - ptNew.y += 30;
|
| - else
|
| - ptNew.y -= 30;
|
| -
|
| - if (ptNew.y > rcScroll.top)
|
| - ptNew.y = rcScroll.top;
|
| - if (ptNew.y < rcScroll.bottom + rcContents.Height())
|
| - ptNew.y = rcScroll.bottom + rcContents.Height();
|
| - if (ptNew.y < rcScroll.bottom)
|
| - ptNew.y = rcScroll.bottom;
|
| -
|
| - if (ptNew.y != ptScroll.y)
|
| - {
|
| - m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| - m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&ptNew.y);
|
| - m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptNew.y);
|
| -
|
| - return TRUE;
|
| - }
|
| - }
|
| -
|
| - return FALSE;
|
| -}
|
| -
|
| -void CPWL_Note::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
|
| -{
|
| - switch (msg)
|
| - {
|
| - case PNM_NOTEEDITCHANGED:
|
| - {
|
| - CPDF_Rect rcScroll = m_pContents->GetScrollArea();
|
| -
|
| -
|
| - PWL_SCROLL_INFO sInfo;
|
| - sInfo.fContentMin = rcScroll.bottom;
|
| - sInfo.fContentMax = rcScroll.top;
|
| - sInfo.fPlateWidth = m_pContents->GetClientRect().Height();
|
| - sInfo.fSmallStep = 13.0f;
|
| - sInfo.fBigStep = sInfo.fPlateWidth;
|
| -
|
| - if (FXSYS_memcmp(&m_OldScrollInfo, &sInfo, sizeof(PWL_SCROLL_INFO)) != 0)
|
| - {
|
| - FX_BOOL bScrollChanged = FALSE;
|
| -
|
| - if (lParam < 3) //·ÀÖ¹ËÀÑ»· mantis:15759
|
| - {
|
| - bScrollChanged = ResetScrollBar();
|
| - if (bScrollChanged)
|
| - {
|
| - lParam++;
|
| - m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| - OnNotify(this, PNM_NOTEEDITCHANGED, 0, lParam);
|
| - }
|
| - }
|
| -
|
| - if (!bScrollChanged)
|
| - {
|
| - if (m_pContentsBar->IsVisible())
|
| - {
|
| - m_pContentsBar->OnNotify(pWnd, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&sInfo);
|
| - m_OldScrollInfo = sInfo;
|
| -
|
| - CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| - CPDF_Point ptOld = ptScroll;
|
| -
|
| - if (ptScroll.y > sInfo.fContentMax)
|
| - ptScroll.y = sInfo.fContentMax;
|
| - if (ptScroll.y < sInfo.fContentMin + sInfo.fPlateWidth)
|
| - ptScroll.y = sInfo.fContentMin + sInfo.fPlateWidth;
|
| - if (ptScroll.y < sInfo.fContentMin)
|
| - ptScroll.y = sInfo.fContentMin;
|
| -
|
| - if (ptOld.y != ptScroll.y)
|
| - {
|
| - m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
|
| - m_pContentsBar->InvalidateRect(NULL);
|
| - m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&ptScroll.y);
|
| - }
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - m_pContents->InvalidateRect(NULL);
|
| -
|
| - return;
|
| - case PNM_SCROLLWINDOW:
|
| - if (m_pContents)
|
| - m_pContents->OnNotify(pWnd, msg, wParam, lParam);
|
| - return;
|
| - case PNM_SETSCROLLPOS:
|
| - if (m_pContentsBar)
|
| - m_pContentsBar->OnNotify(pWnd,PNM_SETSCROLLPOS,wParam,lParam);
|
| - return;
|
| - }
|
| -
|
| - if (msg == PNM_SETCARETINFO && IsValid())
|
| - {
|
| - if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
|
| - {
|
| - if (m_pContents)
|
| - {
|
| - CPDF_Rect rcClient = m_pContents->GetClientRect();
|
| - if (pInfo->ptHead.y > rcClient.top)
|
| - {
|
| - CPDF_Point pt = m_pContents->OutToIn(pInfo->ptHead);
|
| - m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&pt.y);
|
| -
|
| - CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| - m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
|
| -
|
| - return;
|
| - }
|
| -
|
| - if (pInfo->ptFoot.y < rcClient.bottom)
|
| - {
|
| - CPDF_Point pt = m_pContents->OutToIn(pInfo->ptFoot);
|
| - pt.y += rcClient.Height();
|
| - m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&pt.y);
|
| -
|
| - CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| - m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
|
| -
|
| - return;
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - CPWL_NoteItem::OnNotify(pWnd, msg, wParam, lParam);
|
| -}
|
| -
|
| -void CPWL_Note::SetBkColor(const CPWL_Color& color)
|
| -{
|
| - CPWL_NoteItem::SetBkColor(color);
|
| -
|
| - CPWL_Color sBK = color;
|
| - CPWL_Color sTextColor;
|
| - if (CPWL_Utils::IsBlackOrWhite(sBK))
|
| - sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| - else
|
| - sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| -
|
| - if (m_pCloseBox)
|
| - m_pCloseBox->SetTextColor(sTextColor);
|
| - if (m_pAuthor)
|
| - m_pAuthor->SetTextColor(sTextColor);
|
| - if (m_pOptions)
|
| - m_pOptions->SetTextColor(sTextColor);
|
| - if (m_pLBBox)
|
| - m_pLBBox->SetTextColor(sTextColor);
|
| - if (m_pRBBox)
|
| - m_pRBBox->SetTextColor(sTextColor);
|
| -}
|
| -
|
| -FX_BOOL CPWL_Note::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag)
|
| -{
|
| - if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point)))
|
| - {
|
| - if (IPWL_NoteNotify* pNotify = GetNoteNotify())
|
| - {
|
| - int32_t x, y;
|
| - PWLtoWnd(point, x, y);
|
| - if (IFX_SystemHandler* pSH = GetSystemHandler())
|
| - pSH->ClientToScreen(GetAttachedHWnd(), x, y);
|
| - KillFocus();
|
| - pNotify->OnPopupMenu(x, y);
|
| -
|
| - return TRUE;
|
| - }
|
| - }
|
| +/* ---------------------------------- CPWL_Note
|
| + * ---------------------------------- */
|
| +
|
| +CPWL_Note::CPWL_Note(IPopup_Note* pPopupNote,
|
| + IPWL_NoteNotify* pNoteNotify,
|
| + IPWL_NoteHandler* pNoteHandler)
|
| + : m_pAuthor(NULL),
|
| + m_pIcon(NULL),
|
| + m_pCloseBox(NULL),
|
| + m_pLBBox(NULL),
|
| + m_pRBBox(NULL),
|
| + m_pContentsBar(NULL),
|
| + m_pOptions(NULL),
|
| + m_pNoteNotify(pNoteNotify),
|
| + m_bResizing(FALSE),
|
| + m_rcCaption(0, 0, 0, 0),
|
| + m_bEnalbleNotify(TRUE),
|
| + m_pPopupNote(pPopupNote) {}
|
|
|
| - return CPWL_Wnd::OnLButtonDown(point,nFlag);
|
| +CPWL_Note::~CPWL_Note() {}
|
| +
|
| +IPWL_NoteItem* CPWL_Note::Reply() {
|
| + return CreateNoteItem();
|
| +}
|
| +
|
| +void CPWL_Note::EnableNotify(FX_BOOL bEnabled) {
|
| + m_bEnalbleNotify = bEnabled;
|
| }
|
|
|
| -FX_BOOL CPWL_Note::OnRButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
|
| -{
|
| - return CPWL_Wnd::OnRButtonUp(point,nFlag);
|
| +void CPWL_Note::RePosChildWnd() {
|
| + RePosNoteChildren();
|
| + m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + ResetScrollBar();
|
| + m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
|
| + if (const CPWL_Wnd* pWnd = GetFocused()) {
|
| + if (pWnd->GetClassName() == "CPWL_Edit") {
|
| + CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
|
| + pEdit->SetCaret(pEdit->GetCaret());
|
| + }
|
| + }
|
| +}
|
| +
|
| +FX_BOOL CPWL_Note::ResetScrollBar() {
|
| + FX_BOOL bScrollChanged = FALSE;
|
| +
|
| + if (ScrollBarShouldVisible()) {
|
| + if (!m_pContentsBar->IsVisible()) {
|
| + m_pContentsBar->SetVisible(TRUE);
|
| + if (m_pContentsBar->IsVisible()) {
|
| + m_pContentsBar->InvalidateRect(NULL);
|
| + bScrollChanged = TRUE;
|
| + }
|
| + }
|
| + } else {
|
| + if (m_pContentsBar->IsVisible()) {
|
| + m_pContentsBar->SetVisible(FALSE);
|
| + m_pContentsBar->InvalidateRect(NULL);
|
| +
|
| + bScrollChanged = TRUE;
|
| + }
|
| + }
|
| +
|
| + if (bScrollChanged) {
|
| + CPDF_Rect rcNote = GetClientRect();
|
| + CPDF_Rect rcContents = m_pContents->GetWindowRect();
|
| + rcContents.right = rcNote.right - 3.0f;
|
| + if (m_pContentsBar->IsVisible())
|
| + rcContents.right -= PWL_SCROLLBAR_WIDTH;
|
| + m_pContents->Move(rcContents, TRUE, TRUE);
|
| + m_pContents->SetScrollPos(CPDF_Point(0.0f, 0.0f));
|
| + m_pContents->InvalidateRect(NULL);
|
| + }
|
| +
|
| + return bScrollChanged;
|
| +}
|
| +
|
| +FX_BOOL CPWL_Note::ScrollBarShouldVisible() {
|
| + CPDF_Rect rcContentsFact = m_pContents->GetScrollArea();
|
| + CPDF_Rect rcContentsClient = m_pContents->GetClientRect();
|
| +
|
| + return rcContentsFact.Height() > rcContentsClient.Height();
|
| +}
|
| +
|
| +void CPWL_Note::SetOptionsText(const CFX_WideString& sText) {
|
| + if (m_pOptions)
|
| + m_pOptions->SetText(sText);
|
| +
|
| + RePosNoteChildren();
|
| +}
|
| +
|
| +void CPWL_Note::RePosNoteChildren() {
|
| + if (m_bResizing)
|
| + return;
|
| +
|
| + m_bResizing = TRUE;
|
| +
|
| + if (IsValid()) {
|
| + ASSERT(m_pSubject != NULL);
|
| + ASSERT(m_pDateTime != NULL);
|
| + ASSERT(m_pContents != NULL);
|
| + ASSERT(m_pAuthor != NULL);
|
| + ASSERT(m_pCloseBox != NULL);
|
| + ASSERT(m_pIcon != NULL);
|
| + ASSERT(m_pLBBox != NULL);
|
| + ASSERT(m_pRBBox != NULL);
|
| + ASSERT(m_pContentsBar != NULL);
|
| + ASSERT(m_pOptions != NULL);
|
| +
|
| + CPDF_Rect rcClient = GetClientRect();
|
| +
|
| + CPDF_Rect rcIcon = rcClient;
|
| + rcIcon.top -= 2.0f;
|
| + rcIcon.right = rcIcon.left + 14.0f;
|
| + rcIcon.bottom = rcIcon.top - 14.0f;
|
| + rcIcon.Normalize();
|
| + m_pIcon->Move(rcIcon, TRUE, FALSE);
|
| + m_pIcon->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcIcon));
|
| +
|
| + CPDF_Rect rcCloseBox = rcClient;
|
| + rcCloseBox.right -= 1.0f;
|
| + rcCloseBox.top -= 1.0f;
|
| + rcCloseBox.left = rcCloseBox.right - 14.0f;
|
| + rcCloseBox.bottom = rcCloseBox.top - 14.0f;
|
| + rcCloseBox.Normalize();
|
| + m_pCloseBox->Move(rcCloseBox, TRUE, FALSE);
|
| + m_pCloseBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcCloseBox));
|
| +
|
| + CPDF_Rect rcDate = rcClient;
|
| + rcDate.right = rcCloseBox.left - POPUP_ITEM_TEXT_INDENT;
|
| + rcDate.left =
|
| + PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f,
|
| + rcIcon.right + 1.0f);
|
| + rcDate.top = rcClient.top - 2.0f;
|
| + rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
|
| + rcDate.Normalize();
|
| + m_pDateTime->Move(rcDate, TRUE, FALSE);
|
| + m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
|
| +
|
| + CPDF_Rect rcSubject = rcClient;
|
| + rcSubject.top = rcClient.top - 2.0f;
|
| + rcSubject.left = rcIcon.right + POPUP_ITEM_TEXT_INDENT;
|
| + rcSubject.right =
|
| + PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f,
|
| + rcDate.left - 1.0f);
|
| + rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
|
| + rcSubject.Normalize();
|
| + m_pSubject->Move(rcSubject, TRUE, FALSE);
|
| + m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
|
| +
|
| + CPDF_Rect rcOptions = rcClient;
|
| + rcOptions.left =
|
| + PWL_MAX(rcOptions.right - m_pOptions->GetContentRect().Width(),
|
| + rcIcon.right + 1.0f);
|
| + rcOptions.top = rcSubject.bottom - 4.0f;
|
| + rcOptions.bottom = rcOptions.top - m_pOptions->GetContentRect().Height();
|
| + rcOptions.Normalize();
|
| + m_pOptions->Move(rcOptions, TRUE, FALSE);
|
| + m_pOptions->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcOptions));
|
| +
|
| + CPDF_Rect rcAuthor = rcClient;
|
| + rcAuthor.top = rcSubject.bottom - 4.0f;
|
| + rcAuthor.left = rcSubject.left;
|
| + rcAuthor.right =
|
| + PWL_MIN(rcSubject.left + m_pAuthor->GetContentRect().Width() + 1.0f,
|
| + rcOptions.left - 1.0f);
|
| + rcAuthor.bottom = rcAuthor.top - m_pAuthor->GetContentRect().Height();
|
| + rcAuthor.Normalize();
|
| + m_pAuthor->Move(rcAuthor, TRUE, FALSE);
|
| + m_pAuthor->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcAuthor));
|
| +
|
| + CPDF_Rect rcLBBox = rcClient;
|
| + rcLBBox.top = rcLBBox.bottom + 7.0f;
|
| + rcLBBox.right = rcLBBox.left + 7.0f;
|
| + rcLBBox.Normalize();
|
| + m_pLBBox->Move(rcLBBox, TRUE, FALSE);
|
| + m_pLBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcLBBox));
|
| +
|
| + CPDF_Rect rcRBBox = rcClient;
|
| + rcRBBox.top = rcRBBox.bottom + 7.0f;
|
| + rcRBBox.left = rcRBBox.right - 7.0f;
|
| + rcRBBox.Normalize();
|
| + m_pRBBox->Move(rcRBBox, TRUE, FALSE);
|
| + m_pRBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcRBBox));
|
| +
|
| + CPDF_Rect rcContents = rcClient;
|
| + rcContents.top = rcAuthor.bottom - POPUP_ITEM_HEAD_BOTTOM;
|
| + rcContents.left += 3.0f;
|
| + rcContents.right -= 3.0f;
|
| + if (m_pContentsBar->IsVisible())
|
| + rcContents.right -= PWL_SCROLLBAR_WIDTH;
|
| + rcContents.bottom += 14.0f;
|
| + rcContents.Normalize();
|
| + m_pContents->Move(rcContents, FALSE, FALSE);
|
| + m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
|
| +
|
| + CPDF_Rect rcContentsBar = rcContents;
|
| + rcContentsBar.right = rcClient.right - 3.0f;
|
| + rcContentsBar.left = rcContentsBar.right - PWL_SCROLLBAR_WIDTH;
|
| + rcContentsBar.Normalize();
|
| + m_pContentsBar->Move(rcContentsBar, TRUE, FALSE);
|
| +
|
| + m_rcCaption = rcClient;
|
| + m_rcCaption.bottom = rcContents.top;
|
| + }
|
| +
|
| + m_bResizing = FALSE;
|
| +}
|
| +
|
| +// 0-normal / 1-caption / 2-leftbottom corner / 3-rightbottom corner / 4-close /
|
| +// 5-options
|
| +int32_t CPWL_Note::NoteHitTest(const CPDF_Point& point) const {
|
| + ASSERT(m_pSubject != NULL);
|
| + ASSERT(m_pDateTime != NULL);
|
| + ASSERT(m_pContents != NULL);
|
| + ASSERT(m_pAuthor != NULL);
|
| + ASSERT(m_pIcon != NULL);
|
| + ASSERT(m_pContentsBar != NULL);
|
| +
|
| + ASSERT(m_pCloseBox != NULL);
|
| + ASSERT(m_pLBBox != NULL);
|
| + ASSERT(m_pRBBox != NULL);
|
| + ASSERT(m_pOptions != NULL);
|
| +
|
| + GetClientRect();
|
| +
|
| + if (m_pSubject->WndHitTest(m_pSubject->ParentToChild(point)))
|
| + return 1;
|
| + if (m_pDateTime->WndHitTest(m_pDateTime->ParentToChild(point)))
|
| + return 1;
|
| + if (m_pAuthor->WndHitTest(m_pAuthor->ParentToChild(point)))
|
| + return 1;
|
| + if (m_pIcon->WndHitTest(m_pIcon->ParentToChild(point)))
|
| + return 1;
|
| +
|
| + if (m_pContents->WndHitTest(m_pContents->ParentToChild(point)))
|
| + return 0;
|
| + if (m_pContentsBar->WndHitTest(m_pContentsBar->ParentToChild(point)))
|
| + return 0;
|
| +
|
| + if (m_pCloseBox->WndHitTest(m_pCloseBox->ParentToChild(point)))
|
| + return 4;
|
| + if (m_pLBBox->WndHitTest(m_pLBBox->ParentToChild(point)))
|
| + return 2;
|
| + if (m_pRBBox->WndHitTest(m_pRBBox->ParentToChild(point)))
|
| + return 3;
|
| + if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point)))
|
| + return 5;
|
| +
|
| + return 1;
|
| +}
|
| +
|
| +void CPWL_Note::CreateChildWnd(const PWL_CREATEPARAM& cp) {
|
| + CPWL_NoteItem::CreateChildWnd(cp);
|
| +
|
| + CPWL_Color sTextColor;
|
| +
|
| + if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
|
| + sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| + else
|
| + sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| +
|
| + m_pAuthor = new CPWL_Label;
|
| + PWL_CREATEPARAM acp = cp;
|
| + acp.pParentWnd = this;
|
| + acp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
|
| + acp.sTextColor = sTextColor;
|
| + m_pAuthor->Create(acp);
|
| +
|
| + m_pCloseBox = new CPWL_Note_CloseBox;
|
| + PWL_CREATEPARAM ccp = cp;
|
| + ccp.pParentWnd = this;
|
| + ccp.dwBorderWidth = 2;
|
| + ccp.nBorderStyle = PBS_BEVELED;
|
| + ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER;
|
| + ccp.sTextColor = sTextColor;
|
| + m_pCloseBox->Create(ccp);
|
| +
|
| + m_pIcon = new CPWL_Note_Icon;
|
| + PWL_CREATEPARAM icp = cp;
|
| + icp.pParentWnd = this;
|
| + icp.dwFlags = PWS_VISIBLE | PWS_CHILD;
|
| + m_pIcon->Create(icp);
|
| +
|
| + m_pOptions = new CPWL_Note_Options;
|
| + PWL_CREATEPARAM ocp = cp;
|
| + ocp.pParentWnd = this;
|
| + ocp.dwFlags = PWS_CHILD | PWS_VISIBLE;
|
| + ocp.sTextColor = sTextColor;
|
| + m_pOptions->Create(ocp);
|
| +
|
| + m_pLBBox = new CPWL_Note_LBBox;
|
| + PWL_CREATEPARAM lcp = cp;
|
| + lcp.pParentWnd = this;
|
| + lcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
|
| + lcp.eCursorType = FXCT_NESW;
|
| + lcp.sTextColor = sTextColor;
|
| + m_pLBBox->Create(lcp);
|
| +
|
| + m_pRBBox = new CPWL_Note_RBBox;
|
| + PWL_CREATEPARAM rcp = cp;
|
| + rcp.pParentWnd = this;
|
| + rcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
|
| + rcp.eCursorType = FXCT_NWSE;
|
| + rcp.sTextColor = sTextColor;
|
| + m_pRBBox->Create(rcp);
|
| +
|
| + m_pContentsBar = new CPWL_ScrollBar(SBT_VSCROLL);
|
| + PWL_CREATEPARAM scp = cp;
|
| + scp.pParentWnd = this;
|
| + scp.sBackgroundColor =
|
| + CPWL_Color(COLORTYPE_RGB, 240 / 255.0f, 240 / 255.0f, 240 / 255.0f);
|
| + scp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
|
| + m_pContentsBar->Create(scp);
|
| + m_pContentsBar->SetNotifyForever(TRUE);
|
| +}
|
| +
|
| +void CPWL_Note::SetSubjectName(const CFX_WideString& sName) {
|
| + CPWL_NoteItem::SetSubjectName(sName);
|
| + RePosChildWnd();
|
| +}
|
| +
|
| +void CPWL_Note::SetAuthorName(const CFX_WideString& sName) {
|
| + if (m_pAuthor) {
|
| + m_pAuthor->SetText(sName.c_str());
|
| + RePosChildWnd();
|
| + }
|
| +
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + pNotify->OnSetAuthorName(this);
|
| + }
|
| +}
|
| +
|
| +CFX_WideString CPWL_Note::GetAuthorName() const {
|
| + if (m_pAuthor)
|
| + return m_pAuthor->GetText();
|
| +
|
| + return L"";
|
| +}
|
| +
|
| +FX_BOOL CPWL_Note::OnMouseWheel(short zDelta,
|
| + const CPDF_Point& point,
|
| + FX_DWORD nFlag) {
|
| + CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| + CPDF_Rect rcScroll = m_pContents->GetScrollArea();
|
| + CPDF_Rect rcContents = m_pContents->GetClientRect();
|
| +
|
| + if (rcScroll.top - rcScroll.bottom > rcContents.Height()) {
|
| + CPDF_Point ptNew = ptScroll;
|
| +
|
| + if (zDelta > 0)
|
| + ptNew.y += 30;
|
| + else
|
| + ptNew.y -= 30;
|
| +
|
| + if (ptNew.y > rcScroll.top)
|
| + ptNew.y = rcScroll.top;
|
| + if (ptNew.y < rcScroll.bottom + rcContents.Height())
|
| + ptNew.y = rcScroll.bottom + rcContents.Height();
|
| + if (ptNew.y < rcScroll.bottom)
|
| + ptNew.y = rcScroll.bottom;
|
| +
|
| + if (ptNew.y != ptScroll.y) {
|
| + m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
|
| + (intptr_t)&ptNew.y);
|
| + m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
|
| + (intptr_t)&ptNew.y);
|
| +
|
| + return TRUE;
|
| + }
|
| + }
|
| +
|
| + return FALSE;
|
| +}
|
| +
|
| +void CPWL_Note::OnNotify(CPWL_Wnd* pWnd,
|
| + FX_DWORD msg,
|
| + intptr_t wParam,
|
| + intptr_t lParam) {
|
| + switch (msg) {
|
| + case PNM_NOTEEDITCHANGED: {
|
| + CPDF_Rect rcScroll = m_pContents->GetScrollArea();
|
| +
|
| + PWL_SCROLL_INFO sInfo;
|
| + sInfo.fContentMin = rcScroll.bottom;
|
| + sInfo.fContentMax = rcScroll.top;
|
| + sInfo.fPlateWidth = m_pContents->GetClientRect().Height();
|
| + sInfo.fSmallStep = 13.0f;
|
| + sInfo.fBigStep = sInfo.fPlateWidth;
|
| +
|
| + if (FXSYS_memcmp(&m_OldScrollInfo, &sInfo, sizeof(PWL_SCROLL_INFO)) !=
|
| + 0) {
|
| + FX_BOOL bScrollChanged = FALSE;
|
| +
|
| + if (lParam < 3) //·ÀÖ¹ËÀÑ»· mantis:15759
|
| + {
|
| + bScrollChanged = ResetScrollBar();
|
| + if (bScrollChanged) {
|
| + lParam++;
|
| + m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
|
| + OnNotify(this, PNM_NOTEEDITCHANGED, 0, lParam);
|
| + }
|
| + }
|
| +
|
| + if (!bScrollChanged) {
|
| + if (m_pContentsBar->IsVisible()) {
|
| + m_pContentsBar->OnNotify(pWnd, PNM_SETSCROLLINFO, SBT_VSCROLL,
|
| + (intptr_t)&sInfo);
|
| + m_OldScrollInfo = sInfo;
|
| +
|
| + CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| + CPDF_Point ptOld = ptScroll;
|
| +
|
| + if (ptScroll.y > sInfo.fContentMax)
|
| + ptScroll.y = sInfo.fContentMax;
|
| + if (ptScroll.y < sInfo.fContentMin + sInfo.fPlateWidth)
|
| + ptScroll.y = sInfo.fContentMin + sInfo.fPlateWidth;
|
| + if (ptScroll.y < sInfo.fContentMin)
|
| + ptScroll.y = sInfo.fContentMin;
|
| +
|
| + if (ptOld.y != ptScroll.y) {
|
| + m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
|
| + (intptr_t)&ptScroll.y);
|
| + m_pContentsBar->InvalidateRect(NULL);
|
| + m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
|
| + (intptr_t)&ptScroll.y);
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }
|
| +
|
| + m_pContents->InvalidateRect(NULL);
|
| +
|
| + return;
|
| + case PNM_SCROLLWINDOW:
|
| + if (m_pContents)
|
| + m_pContents->OnNotify(pWnd, msg, wParam, lParam);
|
| + return;
|
| + case PNM_SETSCROLLPOS:
|
| + if (m_pContentsBar)
|
| + m_pContentsBar->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam);
|
| + return;
|
| + }
|
| +
|
| + if (msg == PNM_SETCARETINFO && IsValid()) {
|
| + if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
|
| + if (m_pContents) {
|
| + CPDF_Rect rcClient = m_pContents->GetClientRect();
|
| + if (pInfo->ptHead.y > rcClient.top) {
|
| + CPDF_Point pt = m_pContents->OutToIn(pInfo->ptHead);
|
| + m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
|
| + (intptr_t)&pt.y);
|
| +
|
| + CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| + m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
|
| + (intptr_t)&ptScroll.y);
|
| +
|
| + return;
|
| + }
|
| +
|
| + if (pInfo->ptFoot.y < rcClient.bottom) {
|
| + CPDF_Point pt = m_pContents->OutToIn(pInfo->ptFoot);
|
| + pt.y += rcClient.Height();
|
| + m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
|
| + (intptr_t)&pt.y);
|
| +
|
| + CPDF_Point ptScroll = m_pContents->GetScrollPos();
|
| + m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
|
| + (intptr_t)&ptScroll.y);
|
| +
|
| + return;
|
| + }
|
| + }
|
| + }
|
| + }
|
| +
|
| + CPWL_NoteItem::OnNotify(pWnd, msg, wParam, lParam);
|
| +}
|
| +
|
| +void CPWL_Note::SetBkColor(const CPWL_Color& color) {
|
| + CPWL_NoteItem::SetBkColor(color);
|
| +
|
| + CPWL_Color sBK = color;
|
| + CPWL_Color sTextColor;
|
| + if (CPWL_Utils::IsBlackOrWhite(sBK))
|
| + sTextColor = PWL_DEFAULT_WHITECOLOR;
|
| + else
|
| + sTextColor = PWL_DEFAULT_BLACKCOLOR;
|
| +
|
| + if (m_pCloseBox)
|
| + m_pCloseBox->SetTextColor(sTextColor);
|
| + if (m_pAuthor)
|
| + m_pAuthor->SetTextColor(sTextColor);
|
| + if (m_pOptions)
|
| + m_pOptions->SetTextColor(sTextColor);
|
| + if (m_pLBBox)
|
| + m_pLBBox->SetTextColor(sTextColor);
|
| + if (m_pRBBox)
|
| + m_pRBBox->SetTextColor(sTextColor);
|
| }
|
|
|
| -const CPWL_Note* CPWL_Note::GetNote() const
|
| -{
|
| - return this;
|
| +FX_BOOL CPWL_Note::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
|
| + if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point))) {
|
| + if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
|
| + int32_t x, y;
|
| + PWLtoWnd(point, x, y);
|
| + if (IFX_SystemHandler* pSH = GetSystemHandler())
|
| + pSH->ClientToScreen(GetAttachedHWnd(), x, y);
|
| + KillFocus();
|
| + pNotify->OnPopupMenu(x, y);
|
| +
|
| + return TRUE;
|
| + }
|
| + }
|
| +
|
| + return CPWL_Wnd::OnLButtonDown(point, nFlag);
|
| }
|
|
|
| -IPWL_NoteNotify* CPWL_Note::GetNoteNotify() const
|
| -{
|
| - if (m_bEnalbleNotify)
|
| - return m_pNoteNotify;
|
| +FX_BOOL CPWL_Note::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
|
| + return CPWL_Wnd::OnRButtonUp(point, nFlag);
|
| +}
|
|
|
| - return NULL;
|
| +const CPWL_Note* CPWL_Note::GetNote() const {
|
| + return this;
|
| }
|
|
|
| -void CPWL_Note::SetIconType(int32_t nType)
|
| -{
|
| - if (m_pIcon)
|
| - m_pIcon->SetIconType(nType);
|
| +IPWL_NoteNotify* CPWL_Note::GetNoteNotify() const {
|
| + if (m_bEnalbleNotify)
|
| + return m_pNoteNotify;
|
| +
|
| + return NULL;
|
| }
|
|
|
| -void CPWL_Note::EnableModify(FX_BOOL bEnabled)
|
| -{
|
| - m_pContents->EnableModify(bEnabled);
|
| +void CPWL_Note::SetIconType(int32_t nType) {
|
| + if (m_pIcon)
|
| + m_pIcon->SetIconType(nType);
|
| }
|
|
|
| -void CPWL_Note::EnableRead(FX_BOOL bEnabled)
|
| -{
|
| - m_pContents->EnableRead(bEnabled);
|
| +void CPWL_Note::EnableModify(FX_BOOL bEnabled) {
|
| + m_pContents->EnableModify(bEnabled);
|
| }
|
|
|
| -CFX_WideString CPWL_Note::GetReplyString() const
|
| -{
|
| - return m_sReplyString;
|
| +void CPWL_Note::EnableRead(FX_BOOL bEnabled) {
|
| + m_pContents->EnableRead(bEnabled);
|
| }
|
|
|
| -void CPWL_Note::SetReplyString(const CFX_WideString& string)
|
| -{
|
| - m_sReplyString = string;
|
| +CFX_WideString CPWL_Note::GetReplyString() const {
|
| + return m_sReplyString;
|
| }
|
|
|
| +void CPWL_Note::SetReplyString(const CFX_WideString& string) {
|
| + m_sReplyString = string;
|
| +}
|
|
|