| Index: fpdfsdk/cfx_systemhandler.cpp
|
| diff --git a/fpdfsdk/cfx_systemhandler.cpp b/fpdfsdk/cfx_systemhandler.cpp
|
| index 784ed4ebd96b544b4f7020e5cf2c82fd4e92e6c4..08d9743993691f6e4cf12df74a00d87f302f7311 100644
|
| --- a/fpdfsdk/cfx_systemhandler.cpp
|
| +++ b/fpdfsdk/cfx_systemhandler.cpp
|
| @@ -17,6 +17,7 @@
|
| #include "fpdfsdk/include/cpdfsdk_document.h"
|
| #include "fpdfsdk/include/cpdfsdk_environment.h"
|
| #include "fpdfsdk/include/cpdfsdk_pageview.h"
|
| +#include "fpdfsdk/include/cpdfsdk_widget.h"
|
|
|
| namespace {
|
|
|
| @@ -34,42 +35,43 @@ int CharSet2CP(int charset) {
|
|
|
| } // namespace
|
|
|
| -void CFX_SystemHandler::SetCursor(int32_t nCursorType) {
|
| - m_pEnv->SetCursor(nCursorType);
|
| -}
|
| -
|
| -void CFX_SystemHandler::InvalidateRect(FX_HWND hWnd, FX_RECT rect) {
|
| - CPDFSDK_Annot* pSDKAnnot = (CPDFSDK_Annot*)hWnd;
|
| - CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView();
|
| - UnderlyingPageType* pPage = pSDKAnnot->GetUnderlyingPage();
|
| +void CFX_SystemHandler::InvalidateRect(CPDFSDK_Widget* widget, FX_RECT rect) {
|
| + CPDFSDK_PageView* pPageView = widget->GetPageView();
|
| + UnderlyingPageType* pPage = widget->GetUnderlyingPage();
|
| if (!pPage || !pPageView)
|
| return;
|
|
|
| CFX_Matrix page2device;
|
| pPageView->GetCurrentMatrix(page2device);
|
| +
|
| CFX_Matrix device2page;
|
| device2page.SetReverse(page2device);
|
| - FX_FLOAT left, top, right, bottom;
|
| - device2page.Transform((FX_FLOAT)rect.left, (FX_FLOAT)rect.top, left, top);
|
| - device2page.Transform((FX_FLOAT)rect.right, (FX_FLOAT)rect.bottom, right,
|
| - bottom);
|
| +
|
| + FX_FLOAT left;
|
| + FX_FLOAT top;
|
| + FX_FLOAT right;
|
| + FX_FLOAT bottom;
|
| + device2page.Transform(static_cast<FX_FLOAT>(rect.left),
|
| + static_cast<FX_FLOAT>(rect.top), left, top);
|
| + device2page.Transform(static_cast<FX_FLOAT>(rect.right),
|
| + static_cast<FX_FLOAT>(rect.bottom), right, bottom);
|
| CFX_FloatRect rcPDF(left, bottom, right, top);
|
| rcPDF.Normalize();
|
|
|
| m_pEnv->Invalidate(pPage, rcPDF.left, rcPDF.top, rcPDF.right, rcPDF.bottom);
|
| }
|
|
|
| -void CFX_SystemHandler::OutputSelectedRect(void* pFormFiller,
|
| +void CFX_SystemHandler::OutputSelectedRect(CFFL_FormFiller* pFormFiller,
|
| CFX_FloatRect& rect) {
|
| - CFFL_FormFiller* pFFL = (CFFL_FormFiller*)pFormFiller;
|
| - if (!pFFL)
|
| + if (!pFormFiller)
|
| return;
|
|
|
| CFX_FloatPoint leftbottom = CFX_FloatPoint(rect.left, rect.bottom);
|
| CFX_FloatPoint righttop = CFX_FloatPoint(rect.right, rect.top);
|
| - CFX_FloatPoint ptA = pFFL->PWLtoFFL(leftbottom);
|
| - CFX_FloatPoint ptB = pFFL->PWLtoFFL(righttop);
|
| - CPDFSDK_Annot* pAnnot = pFFL->GetSDKAnnot();
|
| + CFX_FloatPoint ptA = pFormFiller->PWLtoFFL(leftbottom);
|
| + CFX_FloatPoint ptB = pFormFiller->PWLtoFFL(righttop);
|
| +
|
| + CPDFSDK_Annot* pAnnot = pFormFiller->GetSDKAnnot();
|
| UnderlyingPageType* pPage = pAnnot->GetUnderlyingPage();
|
| ASSERT(pPage);
|
|
|
| @@ -77,12 +79,15 @@ void CFX_SystemHandler::OutputSelectedRect(void* pFormFiller,
|
| }
|
|
|
| bool CFX_SystemHandler::IsSelectionImplemented() const {
|
| - if (m_pEnv) {
|
| - FPDF_FORMFILLINFO* pInfo = m_pEnv->GetFormFillInfo();
|
| - if (pInfo && pInfo->FFI_OutputSelectedRect)
|
| - return true;
|
| - }
|
| - return false;
|
| + if (!m_pEnv)
|
| + return false;
|
| +
|
| + FPDF_FORMFILLINFO* pInfo = m_pEnv->GetFormFillInfo();
|
| + return pInfo && pInfo->FFI_OutputSelectedRect;
|
| +}
|
| +
|
| +void CFX_SystemHandler::SetCursor(int32_t nCursorType) {
|
| + m_pEnv->SetCursor(nCursorType);
|
| }
|
|
|
| bool CFX_SystemHandler::FindNativeTrueTypeFont(CFX_ByteString sFontFaceName) {
|
| @@ -101,7 +106,6 @@ bool CFX_SystemHandler::FindNativeTrueTypeFont(CFX_ByteString sFontFaceName) {
|
| if (font.Compare(sFontFaceName.AsStringC()))
|
| return true;
|
| }
|
| -
|
| return false;
|
| }
|
|
|
| @@ -126,10 +130,6 @@ void CFX_SystemHandler::KillTimer(int32_t nID) {
|
| m_pEnv->KillTimer(nID);
|
| }
|
|
|
| -FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() {
|
| - return m_pEnv->GetLocalTime();
|
| -}
|
| -
|
| bool CFX_SystemHandler::IsSHIFTKeyDown(uint32_t nFlag) const {
|
| return !!m_pEnv->IsSHIFTKeyDown(nFlag);
|
| }
|
|
|