Add ability to log click events reaching PDFium
Adds in logging statement to related API methods and a build flag to
control enabling the feature. This is meant to be used in conjunction
with Chromium.
A developer can enable this flag, load a test PDF, and then click on
elements to determine appropriate coordinates for an .evt file.
BUG=pdfium:1057
Change-Id: I956c39f545297872a61affdb621a412b3c407ff5
Reviewed-on: https://pdfium-review.googlesource.com/34010
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index d88c1d6..3422b81 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -30,6 +30,10 @@
defines += [ "PDF_ENABLE_V8" ]
}
+ if (pdf_enable_click_logging) {
+ defines += [ "PDF_ENABLE_CLICK_LOGGING" ]
+ }
+
if (pdf_enable_xfa) {
defines += [ "PDF_ENABLE_XFA" ]
if (pdf_enable_xfa_bmp) {
diff --git a/fpdfsdk/fpdf_formfill.cpp b/fpdfsdk/fpdf_formfill.cpp
index 62d2c00..de2bf4d 100644
--- a/fpdfsdk/fpdf_formfill.cpp
+++ b/fpdfsdk/fpdf_formfill.cpp
@@ -362,6 +362,10 @@
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+ fprintf(stderr, "mousedown,left,%d,%d\n", static_cast<int>(round(page_x)),
+ static_cast<int>(round(page_y)));
+#endif // PDF_ENABLE_CLICK_LOGGING
return pPageView->OnLButtonDown(CFX_PointF(page_x, page_y), modifier);
}
@@ -373,6 +377,10 @@
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+ fprintf(stderr, "mouseup,left,%d,%d\n", static_cast<int>(round(page_x)),
+ static_cast<int>(round(page_y)));
+#endif // PDF_ENABLE_CLICK_LOGGING
return pPageView->OnLButtonUp(CFX_PointF(page_x, page_y), modifier);
}
@@ -385,6 +393,10 @@
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+ fprintf(stderr, "mousedown,right,%d,%d\n", static_cast<int>(round(page_x)),
+ static_cast<int>(round(page_y)));
+#endif // PDF_ENABLE_CLICK_LOGGING
return pPageView->OnRButtonDown(CFX_PointF(page_x, page_y), modifier);
}
@@ -396,6 +408,10 @@
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return false;
+#ifdef PDF_ENABLE_CLICK_LOGGING
+ fprintf(stderr, "mouseup,right,%d,%d\n", static_cast<int>(round(page_x)),
+ static_cast<int>(round(page_y)));
+#endif // PDF_ENABLE_CLICK_LOGGING
return pPageView->OnRButtonUp(CFX_PointF(page_x, page_y), modifier);
}
#endif // PDF_ENABLE_XFA
diff --git a/pdfium.gni b/pdfium.gni
index 237d7c7..2b34cbc 100644
--- a/pdfium.gni
+++ b/pdfium.gni
@@ -15,6 +15,9 @@
# //build/config/freetype.
pdf_bundle_freetype = pdf_bundle_freetype_override
+ # Generate logging messages for click events that reach PDFium
+ pdf_enable_click_logging = false
+
# Build PDFium either with or without v8 support.
pdf_enable_v8 = pdf_enable_v8_override