FX_BOOL CPWL_EditCtrl::OnChar(FX_WORD nChar, FX_DWORD nFlag) { if (m_bMouseDown) return TRUE; CPWL_Wnd::OnChar(nChar,nFlag); //FILTER switch (nChar) { case 0x0A: case 0x1B: return FALSE; default: break; } FX_BOOL bCtrl = IsCTRLpressed(nFlag); FX_BOOL bAlt = IsALTpressed(nFlag); FX_BOOL bShift = IsSHIFTpressed(nFlag); FX_WORD word = nChar; if (bCtrl && !bAlt) { switch (nChar) { case 'C' - 'A' + 1: CopyText(); return TRUE; case 'V' - 'A' + 1: PasteText(); return TRUE; case 'X' - 'A' + 1: CutText(); return TRUE; case 'A' - 'A' + 1: SelectAll(); return TRUE; case 'Z' - 'A' + 1: if (bShift) Redo(); else Undo(); return TRUE; default: if (nChar < 32) return FALSE; } } if (IsReadOnly()) return TRUE; if (m_pEdit->IsSelected() && word == FWL_VKEY_Back) word = FWL_VKEY_Unknown; Clear(); switch (word) { case FWL_VKEY_Back: Backspace(); break; case FWL_VKEY_Return: InsertReturn(); break; case FWL_VKEY_Unknown: break; default: if (IsINSERTpressed(nFlag)) Delete(); InsertWord(word, GetCharSet()); break; } return TRUE; }
void RichEditHdrFtr::PageCount() { PasteText(ParseQTF("{:VALUE:PAGECOUNT:}")); EvaluateFields(); }
FX_BOOL CPWL_EditCtrl::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) { if (m_bMouseDown) return TRUE; FX_BOOL bRet = CPWL_Wnd::OnKeyDown(nChar,nFlag); //FILTER switch (nChar) { default: return FALSE; case FWL_VKEY_Delete: case FWL_VKEY_Up: case FWL_VKEY_Down: case FWL_VKEY_Left: case FWL_VKEY_Right: case FWL_VKEY_Home: case FWL_VKEY_End: case FWL_VKEY_Insert: case 'C': case 'V': case 'X': case 'A': case 'Z': case 'c': case 'v': case 'x': case 'a': case 'z': break; } if (nChar == FWL_VKEY_Delete) { if (m_pEdit->IsSelected()) nChar = FWL_VKEY_Unknown; } switch (nChar) { case FWL_VKEY_Delete: Delete(); return TRUE; case FWL_VKEY_Insert: if (IsSHIFTpressed(nFlag)) PasteText(); return TRUE; case FWL_VKEY_Up: m_pEdit->OnVK_UP(IsSHIFTpressed(nFlag),FALSE); return TRUE; case FWL_VKEY_Down: m_pEdit->OnVK_DOWN(IsSHIFTpressed(nFlag),FALSE); return TRUE; case FWL_VKEY_Left: m_pEdit->OnVK_LEFT(IsSHIFTpressed(nFlag),FALSE); return TRUE; case FWL_VKEY_Right: m_pEdit->OnVK_RIGHT(IsSHIFTpressed(nFlag),FALSE); return TRUE; case FWL_VKEY_Home: m_pEdit->OnVK_HOME(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)); return TRUE; case FWL_VKEY_End: m_pEdit->OnVK_END(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)); return TRUE; case FWL_VKEY_Unknown: if (!IsSHIFTpressed(nFlag)) Clear(); else CutText(); return TRUE; default: break; } return bRet; }
void RichEditHdrFtr::PageNumber() { PasteText(ParseQTF("{:VALUE:PAGENUMBER:}")); EvaluateFields(); }
FX_BOOL CPWL_Edit::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) { if (m_bMouseDown) return FALSE; CPWL_Wnd::OnRButtonUp(point, nFlag); if (!HasFlag(PES_TEXTOVERFLOW) && !ClientHitTest(point)) return TRUE; IFX_SystemHandler* pSH = GetSystemHandler(); if (!pSH) return FALSE; SetFocus(); CPVT_WordRange wrLatin = GetLatinWordsRange(point); CFX_WideString swLatin = m_pEdit->GetRangeText(wrLatin); FX_HMENU hPopup = pSH->CreatePopupMenu(); if (!hPopup) return FALSE; CFX_ByteStringArray sSuggestWords; CPDF_Point ptPopup = point; if (!IsReadOnly()) { if (HasFlag(PES_SPELLCHECK) && !swLatin.IsEmpty()) { if (m_pSpellCheck) { CFX_ByteString sLatin = CFX_ByteString::FromUnicode(swLatin); if (!m_pSpellCheck->CheckWord(sLatin)) { m_pSpellCheck->SuggestWords(sLatin, sSuggestWords); int32_t nSuggest = sSuggestWords.GetSize(); for (int32_t nWord = 0; nWord < nSuggest; nWord++) { pSH->AppendMenuItem(hPopup, WM_PWLEDIT_SUGGEST + nWord, sSuggestWords[nWord].UTF8Decode()); } if (nSuggest > 0) pSH->AppendMenuItem(hPopup, 0, L""); ptPopup = GetWordRightBottomPoint(wrLatin.EndPos); } } } } IPWL_Provider* pProvider = GetProvider(); if (HasFlag(PES_UNDO)) { pSH->AppendMenuItem( hPopup, WM_PWLEDIT_UNDO, pProvider ? pProvider->LoadPopupMenuString(0) : L"&Undo"); pSH->AppendMenuItem( hPopup, WM_PWLEDIT_REDO, pProvider ? pProvider->LoadPopupMenuString(1) : L"&Redo"); pSH->AppendMenuItem(hPopup, 0, L""); if (!m_pEdit->CanUndo()) pSH->EnableMenuItem(hPopup, WM_PWLEDIT_UNDO, FALSE); if (!m_pEdit->CanRedo()) pSH->EnableMenuItem(hPopup, WM_PWLEDIT_REDO, FALSE); } pSH->AppendMenuItem(hPopup, WM_PWLEDIT_CUT, pProvider ? pProvider->LoadPopupMenuString(2) : L"Cu&t"); pSH->AppendMenuItem(hPopup, WM_PWLEDIT_COPY, pProvider ? pProvider->LoadPopupMenuString(3) : L"&Copy"); pSH->AppendMenuItem( hPopup, WM_PWLEDIT_PASTE, pProvider ? pProvider->LoadPopupMenuString(4) : L"&Paste"); pSH->AppendMenuItem( hPopup, WM_PWLEDIT_DELETE, pProvider ? pProvider->LoadPopupMenuString(5) : L"&Delete"); CFX_WideString swText = pSH->GetClipboardText(GetAttachedHWnd()); if (swText.IsEmpty()) pSH->EnableMenuItem(hPopup, WM_PWLEDIT_PASTE, FALSE); if (!m_pEdit->IsSelected()) { pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE); pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE); pSH->EnableMenuItem(hPopup, WM_PWLEDIT_DELETE, FALSE); } if (IsReadOnly()) { pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE); pSH->EnableMenuItem(hPopup, WM_PWLEDIT_DELETE, FALSE); pSH->EnableMenuItem(hPopup, WM_PWLEDIT_PASTE, FALSE); } if (HasFlag(PES_PASSWORD)) { pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE); pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE); } if (HasFlag(PES_NOREAD)) { pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE); pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE); } pSH->AppendMenuItem(hPopup, 0, L""); pSH->AppendMenuItem( hPopup, WM_PWLEDIT_SELECTALL, pProvider ? pProvider->LoadPopupMenuString(6) : L"&Select All"); if (m_pEdit->GetTotalWords() == 0) { pSH->EnableMenuItem(hPopup, WM_PWLEDIT_SELECTALL, FALSE); } int32_t x, y; PWLtoWnd(ptPopup, x, y); pSH->ClientToScreen(GetAttachedHWnd(), x, y); pSH->SetCursor(FXCT_ARROW); int32_t nCmd = pSH->TrackPopupMenu(hPopup, x, y, GetAttachedHWnd()); switch (nCmd) { case WM_PWLEDIT_UNDO: Undo(); break; case WM_PWLEDIT_REDO: Redo(); break; case WM_PWLEDIT_CUT: CutText(); break; case WM_PWLEDIT_COPY: CopyText(); break; case WM_PWLEDIT_PASTE: PasteText(); break; case WM_PWLEDIT_DELETE: Clear(); break; case WM_PWLEDIT_SELECTALL: SelectAll(); break; case WM_PWLEDIT_SUGGEST + 0: SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos), m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos)); ReplaceSel(sSuggestWords[0].UTF8Decode().c_str()); break; case WM_PWLEDIT_SUGGEST + 1: SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos), m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos)); ReplaceSel(sSuggestWords[1].UTF8Decode().c_str()); break; case WM_PWLEDIT_SUGGEST + 2: SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos), m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos)); ReplaceSel(sSuggestWords[2].UTF8Decode().c_str()); break; case WM_PWLEDIT_SUGGEST + 3: SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos), m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos)); ReplaceSel(sSuggestWords[3].UTF8Decode().c_str()); break; case WM_PWLEDIT_SUGGEST + 4: SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos), m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos)); ReplaceSel(sSuggestWords[4].UTF8Decode().c_str()); break; default: break; } pSH->DestroyMenu(hPopup); return TRUE; }
bool CPWL_EditCtrl::OnChar(uint16_t nChar, uint32_t nFlag) { if (m_bMouseDown) return true; CPWL_Wnd::OnChar(nChar, nFlag); // FILTER switch (nChar) { case 0x0A: case 0x1B: return false; default: break; } bool bCtrl = IsCTRLpressed(nFlag); bool bAlt = IsALTpressed(nFlag); bool bShift = IsSHIFTpressed(nFlag); uint16_t word = nChar; if (bCtrl && !bAlt) { switch (nChar) { case 'C' - 'A' + 1: CopyText(); return true; case 'V' - 'A' + 1: PasteText(); return true; case 'X' - 'A' + 1: CutText(); return true; case 'A' - 'A' + 1: SelectAll(); return true; case 'Z' - 'A' + 1: if (bShift) Redo(); else Undo(); return true; default: if (nChar < 32) return false; } } if (IsReadOnly()) return true; if (m_pEdit->IsSelected() && word == FWL_VKEY_Back) word = FWL_VKEY_Unknown; Clear(); switch (word) { case FWL_VKEY_Back: Backspace(); break; case FWL_VKEY_Return: InsertReturn(); break; case FWL_VKEY_Unknown: break; default: InsertWord(word, GetCharSet()); break; } return true; }
bool CPWL_EditCtrl::OnKeyDown(uint16_t nChar, uint32_t nFlag) { if (m_bMouseDown) return true; bool bRet = CPWL_Wnd::OnKeyDown(nChar, nFlag); // FILTER switch (nChar) { default: return false; case FWL_VKEY_Delete: case FWL_VKEY_Up: case FWL_VKEY_Down: case FWL_VKEY_Left: case FWL_VKEY_Right: case FWL_VKEY_Home: case FWL_VKEY_End: case FWL_VKEY_Insert: case 'C': case 'V': case 'X': case 'A': case 'Z': case 'c': case 'v': case 'x': case 'a': case 'z': break; } if (nChar == FWL_VKEY_Delete && m_pEdit->IsSelected()) nChar = FWL_VKEY_Unknown; switch (nChar) { case FWL_VKEY_Delete: Delete(); return true; case FWL_VKEY_Insert: if (IsSHIFTpressed(nFlag)) PasteText(); return true; case FWL_VKEY_Up: m_pEdit->OnVK_UP(IsSHIFTpressed(nFlag), false); return true; case FWL_VKEY_Down: m_pEdit->OnVK_DOWN(IsSHIFTpressed(nFlag), false); return true; case FWL_VKEY_Left: m_pEdit->OnVK_LEFT(IsSHIFTpressed(nFlag), false); return true; case FWL_VKEY_Right: m_pEdit->OnVK_RIGHT(IsSHIFTpressed(nFlag), false); return true; case FWL_VKEY_Home: m_pEdit->OnVK_HOME(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)); return true; case FWL_VKEY_End: m_pEdit->OnVK_END(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)); return true; case FWL_VKEY_Unknown: if (!IsSHIFTpressed(nFlag)) Clear(); else CutText(); return true; default: break; } return bRet; }
void IconDes::ColorChanged() { cursor_image = MakeIconDesCursor(IconDesImg::Arrow(), IconDesImg::ArrowColor()); fill_cursor = MakeIconDesCursor(IconDesImg::Fill(), IconDesImg::FillColor()); PasteText(); }