From a44cbb591ec1fb60d6da907db63b69d0b7bd0c39 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 8 Mar 2016 08:51:21 -0500 Subject: Remove extraneous xfa/src/fwl/src include/ directories. This CL collapses the xfa/src/fwl/src/core/include and xfa/src/fwl/src/basewidget/include up one level. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1770273002 . --- BUILD.gn | 50 ++--- xfa.gyp | 50 ++--- xfa/include/fwl/basewidget/fwl_picturebox.h | 2 +- xfa/include/fwl/basewidget/fwl_pushbutton.h | 2 +- xfa/include/fwl/basewidget/fwl_scrollbar.h | 2 +- xfa/include/fwl/basewidget/fwl_spinbutton.h | 2 +- xfa/include/fwl/core/fwl_content.h | 2 +- xfa/include/fwl/core/fwl_panel.h | 2 +- xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp | 10 +- xfa/src/fwl/src/basewidget/fwl_barcodeimp.h | 54 +++++ xfa/src/fwl/src/basewidget/fwl_caretimp.cpp | 8 +- xfa/src/fwl/src/basewidget/fwl_caretimp.h | 67 ++++++ xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp | 10 +- xfa/src/fwl/src/basewidget/fwl_checkboximp.h | 64 ++++++ xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp | 26 +-- xfa/src/fwl/src/basewidget/fwl_comboboximp.h | 237 ++++++++++++++++++++ .../fwl/src/basewidget/fwl_datetimepickerimp.cpp | 20 +- xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h | 235 ++++++++++++++++++++ xfa/src/fwl/src/basewidget/fwl_editimp.cpp | 20 +- xfa/src/fwl/src/basewidget/fwl_editimp.h | 208 ++++++++++++++++++ xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp | 12 +- xfa/src/fwl/src/basewidget/fwl_formproxyimp.h | 42 ++++ xfa/src/fwl/src/basewidget/fwl_listboximp.cpp | 12 +- xfa/src/fwl/src/basewidget/fwl_listboximp.h | 121 ++++++++++ .../fwl/src/basewidget/fwl_monthcalendarimp.cpp | 8 +- xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h | 243 +++++++++++++++++++++ xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp | 8 +- xfa/src/fwl/src/basewidget/fwl_pictureboximp.h | 53 +++++ xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp | 8 +- xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h | 65 ++++++ xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp | 8 +- xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h | 139 ++++++++++++ xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp | 8 +- xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h | 69 ++++++ xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp | 12 +- xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h | 86 ++++++++ xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp | 2 +- xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h | 56 +++++ .../fwl/src/basewidget/include/fwl_barcodeimp.h | 54 ----- xfa/src/fwl/src/basewidget/include/fwl_caretimp.h | 67 ------ .../fwl/src/basewidget/include/fwl_checkboximp.h | 64 ------ .../fwl/src/basewidget/include/fwl_comboboximp.h | 237 -------------------- .../src/basewidget/include/fwl_datetimepickerimp.h | 235 -------------------- xfa/src/fwl/src/basewidget/include/fwl_editimp.h | 208 ------------------ .../fwl/src/basewidget/include/fwl_formproxyimp.h | 42 ---- .../fwl/src/basewidget/include/fwl_listboximp.h | 121 ---------- .../src/basewidget/include/fwl_monthcalendarimp.h | 243 --------------------- .../fwl/src/basewidget/include/fwl_pictureboximp.h | 53 ----- .../fwl/src/basewidget/include/fwl_pushbuttonimp.h | 65 ------ .../fwl/src/basewidget/include/fwl_scrollbarimp.h | 139 ------------ .../fwl/src/basewidget/include/fwl_spinbuttonimp.h | 69 ------ .../src/basewidget/include/fwl_tooltipctrlimp.h | 86 -------- .../fwl/src/basewidget/include/fxmath_barcodeimp.h | 56 ----- xfa/src/fwl/src/core/fwl_appimp.cpp | 10 +- xfa/src/fwl/src/core/fwl_appimp.h | 38 ++++ xfa/src/fwl/src/core/fwl_contentimp.cpp | 12 +- xfa/src/fwl/src/core/fwl_contentimp.h | 35 +++ xfa/src/fwl/src/core/fwl_formimp.cpp | 18 +- xfa/src/fwl/src/core/fwl_formimp.h | 193 ++++++++++++++++ xfa/src/fwl/src/core/fwl_gridimp.cpp | 12 +- xfa/src/fwl/src/core/fwl_gridimp.h | 197 +++++++++++++++++ xfa/src/fwl/src/core/fwl_noteimp.cpp | 18 +- xfa/src/fwl/src/core/fwl_noteimp.h | 157 +++++++++++++ xfa/src/fwl/src/core/fwl_panelimp.cpp | 10 +- xfa/src/fwl/src/core/fwl_panelimp.h | 32 +++ xfa/src/fwl/src/core/fwl_sdadapterimp.cpp | 8 +- xfa/src/fwl/src/core/fwl_targetimp.cpp | 2 +- xfa/src/fwl/src/core/fwl_targetimp.h | 27 +++ xfa/src/fwl/src/core/fwl_threadimp.cpp | 8 +- xfa/src/fwl/src/core/fwl_threadimp.h | 40 ++++ xfa/src/fwl/src/core/fwl_timerimp.cpp | 6 +- xfa/src/fwl/src/core/fwl_widgetimp.cpp | 12 +- xfa/src/fwl/src/core/fwl_widgetimp.h | 162 ++++++++++++++ xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp | 12 +- xfa/src/fwl/src/core/fwl_widgetmgrimp.h | 170 ++++++++++++++ xfa/src/fwl/src/core/include/fwl_appimp.h | 38 ---- xfa/src/fwl/src/core/include/fwl_contentimp.h | 35 --- xfa/src/fwl/src/core/include/fwl_formimp.h | 193 ---------------- xfa/src/fwl/src/core/include/fwl_gridimp.h | 197 ----------------- xfa/src/fwl/src/core/include/fwl_noteimp.h | 157 ------------- xfa/src/fwl/src/core/include/fwl_panelimp.h | 32 --- xfa/src/fwl/src/core/include/fwl_targetimp.h | 27 --- xfa/src/fwl/src/core/include/fwl_threadimp.h | 40 ---- xfa/src/fwl/src/core/include/fwl_widgetimp.h | 162 -------------- xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h | 170 -------------- xfa/src/fwl/src/lightwidget/caret.cpp | 2 +- xfa/src/fwl/src/lightwidget/tooltipctrl.cpp | 12 +- xfa/src/fwl/src/lightwidget/widget.cpp | 10 +- 88 files changed, 3008 insertions(+), 3008 deletions(-) create mode 100644 xfa/src/fwl/src/basewidget/fwl_barcodeimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_caretimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_checkboximp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_comboboximp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_editimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_formproxyimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_listboximp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_pictureboximp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h create mode 100644 xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h create mode 100644 xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_caretimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_editimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_listboximp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h delete mode 100644 xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h create mode 100644 xfa/src/fwl/src/core/fwl_appimp.h create mode 100644 xfa/src/fwl/src/core/fwl_contentimp.h create mode 100644 xfa/src/fwl/src/core/fwl_formimp.h create mode 100644 xfa/src/fwl/src/core/fwl_gridimp.h create mode 100644 xfa/src/fwl/src/core/fwl_noteimp.h create mode 100644 xfa/src/fwl/src/core/fwl_panelimp.h create mode 100644 xfa/src/fwl/src/core/fwl_targetimp.h create mode 100644 xfa/src/fwl/src/core/fwl_threadimp.h create mode 100644 xfa/src/fwl/src/core/fwl_widgetimp.h create mode 100644 xfa/src/fwl/src/core/fwl_widgetmgrimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_appimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_contentimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_formimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_gridimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_noteimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_panelimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_targetimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_threadimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_widgetimp.h delete mode 100644 xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h diff --git a/BUILD.gn b/BUILD.gn index acb6307643..d3c6c73a6e 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -931,57 +931,57 @@ if (pdf_enable_xfa) { "xfa/src/fgas/src/xml/fx_sax_imp.cpp", "xfa/src/fgas/src/xml/fx_sax_imp.h", "xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_barcodeimp.h", "xfa/src/fwl/src/basewidget/fwl_caretimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_caretimp.h", "xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_checkboximp.h", "xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_comboboximp.h", "xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h", "xfa/src/fwl/src/basewidget/fwl_editimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_editimp.h", "xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_formproxyimp.h", "xfa/src/fwl/src/basewidget/fwl_listboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_listboximp.h", "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h", "xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_pictureboximp.h", "xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h", "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h", "xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h", "xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h", "xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp", - "xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_caretimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_editimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_listboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h", - "xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h", + "xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h", "xfa/src/fwl/src/core/fwl_appimp.cpp", + "xfa/src/fwl/src/core/fwl_appimp.h", "xfa/src/fwl/src/core/fwl_contentimp.cpp", + "xfa/src/fwl/src/core/fwl_contentimp.h", "xfa/src/fwl/src/core/fwl_formimp.cpp", + "xfa/src/fwl/src/core/fwl_formimp.h", "xfa/src/fwl/src/core/fwl_gridimp.cpp", + "xfa/src/fwl/src/core/fwl_gridimp.h", "xfa/src/fwl/src/core/fwl_noteimp.cpp", + "xfa/src/fwl/src/core/fwl_noteimp.h", "xfa/src/fwl/src/core/fwl_panelimp.cpp", + "xfa/src/fwl/src/core/fwl_panelimp.h", "xfa/src/fwl/src/core/fwl_sdadapterimp.cpp", "xfa/src/fwl/src/core/fwl_targetimp.cpp", + "xfa/src/fwl/src/core/fwl_targetimp.h", "xfa/src/fwl/src/core/fwl_threadimp.cpp", + "xfa/src/fwl/src/core/fwl_threadimp.h", "xfa/src/fwl/src/core/fwl_timerimp.cpp", "xfa/src/fwl/src/core/fwl_widgetimp.cpp", + "xfa/src/fwl/src/core/fwl_widgetimp.h", "xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp", - "xfa/src/fwl/src/core/include/fwl_appimp.h", - "xfa/src/fwl/src/core/include/fwl_contentimp.h", - "xfa/src/fwl/src/core/include/fwl_formimp.h", - "xfa/src/fwl/src/core/include/fwl_gridimp.h", - "xfa/src/fwl/src/core/include/fwl_noteimp.h", - "xfa/src/fwl/src/core/include/fwl_panelimp.h", - "xfa/src/fwl/src/core/include/fwl_targetimp.h", - "xfa/src/fwl/src/core/include/fwl_threadimp.h", - "xfa/src/fwl/src/core/include/fwl_widgetimp.h", - "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h", + "xfa/src/fwl/src/core/fwl_widgetmgrimp.h", "xfa/src/fwl/src/lightwidget/app.cpp", "xfa/src/fwl/src/lightwidget/barcode.cpp", "xfa/src/fwl/src/lightwidget/caret.cpp", diff --git a/xfa.gyp b/xfa.gyp index ea66d945ad..125009f165 100644 --- a/xfa.gyp +++ b/xfa.gyp @@ -205,57 +205,57 @@ "xfa/src/fgas/src/xml/fx_sax_imp.cpp", "xfa/src/fgas/src/xml/fx_sax_imp.h", "xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_barcodeimp.h", "xfa/src/fwl/src/basewidget/fwl_caretimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_caretimp.h", "xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_checkboximp.h", "xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_comboboximp.h", "xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h", "xfa/src/fwl/src/basewidget/fwl_editimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_editimp.h", "xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_formproxyimp.h", "xfa/src/fwl/src/basewidget/fwl_listboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_listboximp.h", "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h", "xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp", + "xfa/src/fwl/src/basewidget/fwl_pictureboximp.h", "xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h", "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h", "xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h", "xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp", + "xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h", "xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp", - "xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_caretimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_editimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_listboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h", - "xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h", - "xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h", - "xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h", + "xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h", "xfa/src/fwl/src/core/fwl_appimp.cpp", + "xfa/src/fwl/src/core/fwl_appimp.h", "xfa/src/fwl/src/core/fwl_contentimp.cpp", + "xfa/src/fwl/src/core/fwl_contentimp.h", "xfa/src/fwl/src/core/fwl_formimp.cpp", + "xfa/src/fwl/src/core/fwl_formimp.h", "xfa/src/fwl/src/core/fwl_gridimp.cpp", + "xfa/src/fwl/src/core/fwl_gridimp.h", "xfa/src/fwl/src/core/fwl_noteimp.cpp", + "xfa/src/fwl/src/core/fwl_noteimp.h", "xfa/src/fwl/src/core/fwl_panelimp.cpp", + "xfa/src/fwl/src/core/fwl_panelimp.h", "xfa/src/fwl/src/core/fwl_sdadapterimp.cpp", "xfa/src/fwl/src/core/fwl_targetimp.cpp", + "xfa/src/fwl/src/core/fwl_targetimp.h", "xfa/src/fwl/src/core/fwl_threadimp.cpp", + "xfa/src/fwl/src/core/fwl_threadimp.h", "xfa/src/fwl/src/core/fwl_timerimp.cpp", "xfa/src/fwl/src/core/fwl_widgetimp.cpp", + "xfa/src/fwl/src/core/fwl_widgetimp.h", "xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp", - "xfa/src/fwl/src/core/include/fwl_appimp.h", - "xfa/src/fwl/src/core/include/fwl_contentimp.h", - "xfa/src/fwl/src/core/include/fwl_formimp.h", - "xfa/src/fwl/src/core/include/fwl_gridimp.h", - "xfa/src/fwl/src/core/include/fwl_noteimp.h", - "xfa/src/fwl/src/core/include/fwl_panelimp.h", - "xfa/src/fwl/src/core/include/fwl_targetimp.h", - "xfa/src/fwl/src/core/include/fwl_threadimp.h", - "xfa/src/fwl/src/core/include/fwl_widgetimp.h", - "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h", + "xfa/src/fwl/src/core/fwl_widgetmgrimp.h", "xfa/src/fwl/src/lightwidget/app.cpp", "xfa/src/fwl/src/lightwidget/barcode.cpp", "xfa/src/fwl/src/lightwidget/caret.cpp", diff --git a/xfa/include/fwl/basewidget/fwl_picturebox.h b/xfa/include/fwl/basewidget/fwl_picturebox.h index 2a27da4912..05336d062e 100644 --- a/xfa/include/fwl/basewidget/fwl_picturebox.h +++ b/xfa/include/fwl/basewidget/fwl_picturebox.h @@ -7,7 +7,7 @@ #ifndef XFA_INCLUDE_FWL_BASEWIDGET_FWL_PICTUREBOX_H_ #define XFA_INCLUDE_FWL_BASEWIDGET_FWL_PICTUREBOX_H_ -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_CLASS_PictureBox L"FWL_PICTUREBOX" #define FWL_CLASSHASH_PictureBox 2974721741 diff --git a/xfa/include/fwl/basewidget/fwl_pushbutton.h b/xfa/include/fwl/basewidget/fwl_pushbutton.h index 3e5acd11b0..18eacd4426 100644 --- a/xfa/include/fwl/basewidget/fwl_pushbutton.h +++ b/xfa/include/fwl/basewidget/fwl_pushbutton.h @@ -8,7 +8,7 @@ #define XFA_INCLUDE_FWL_BASEWIDGET_FWL_PUSHBUTTON_H_ #include "xfa/include/fwl/core/fwl_theme.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_CLASS_PushButton L"FWL_PUSHBUTTON" #define FWL_CLASSHASH_PushButton 3521614244 diff --git a/xfa/include/fwl/basewidget/fwl_scrollbar.h b/xfa/include/fwl/basewidget/fwl_scrollbar.h index 6a6df77087..e742759873 100644 --- a/xfa/include/fwl/basewidget/fwl_scrollbar.h +++ b/xfa/include/fwl/basewidget/fwl_scrollbar.h @@ -7,7 +7,7 @@ #ifndef XFA_INCLUDE_FWL_BASEWIDGET_FWL_SCROLLBAR_H_ #define XFA_INCLUDE_FWL_BASEWIDGET_FWL_SCROLLBAR_H_ -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_CLASS_ScrollBar L"FWL_SCROLLBAR" #define FWL_CLASSHASH_ScrollBar 2826584844 diff --git a/xfa/include/fwl/basewidget/fwl_spinbutton.h b/xfa/include/fwl/basewidget/fwl_spinbutton.h index 4d27fb4827..b227a0c312 100644 --- a/xfa/include/fwl/basewidget/fwl_spinbutton.h +++ b/xfa/include/fwl/basewidget/fwl_spinbutton.h @@ -7,7 +7,7 @@ #ifndef XFA_INCLUDE_FWL_BASEWIDGET_FWL_SPINBUTTON_H_ #define XFA_INCLUDE_FWL_BASEWIDGET_FWL_SPINBUTTON_H_ -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_CLASS_SpinButton L"FWL_SPINBUTTON" #define FWL_CLASSHASH_SpinButton 3793043646 diff --git a/xfa/include/fwl/core/fwl_content.h b/xfa/include/fwl/core/fwl_content.h index 3ffb1a8dec..687392e101 100644 --- a/xfa/include/fwl/core/fwl_content.h +++ b/xfa/include/fwl/core/fwl_content.h @@ -7,7 +7,7 @@ #ifndef XFA_INCLUDE_FWL_CORE_FWL_CONTENT_H_ #define XFA_INCLUDE_FWL_CORE_FWL_CONTENT_H_ -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" class IFWL_Content : public IFWL_Widget { public: diff --git a/xfa/include/fwl/core/fwl_panel.h b/xfa/include/fwl/core/fwl_panel.h index 51e3d4caaa..6e785ba98d 100644 --- a/xfa/include/fwl/core/fwl_panel.h +++ b/xfa/include/fwl/core/fwl_panel.h @@ -7,7 +7,7 @@ #ifndef XFA_INCLUDE_FWL_CORE_FWL_PANEL_H_ #define XFA_INCLUDE_FWL_CORE_FWL_PANEL_H_ -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" class IFWL_Content; diff --git a/xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp b/xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp index 839a4bf120..93bd2bee22 100644 --- a/xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_barcodeimp.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_barcodeimp.h" #include "xfa/include/fwl/core/fwl_theme.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" // static IFWL_Barcode* IFWL_Barcode::Create(const CFWL_WidgetImpProperties& properties) { diff --git a/xfa/src/fwl/src/basewidget/fwl_barcodeimp.h b/xfa/src/fwl/src/basewidget/fwl_barcodeimp.h new file mode 100644 index 0000000000..9426a7f928 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_barcodeimp.h @@ -0,0 +1,54 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_BARCODEIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_BARCODEIMP_H_ + +#include "xfa/include/fwl/basewidget/fwl_barcode.h" +#include "xfa/include/fwl/basewidget/fwl_scrollbar.h" +#include "xfa/include/fwl/basewidget/fxmath_barcode.h" +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" + +class CFWL_WidgetImpProperties; +class CFWL_BarcodeImpDelegate; +class IFWL_Widget; + +#define XFA_BCS_NeedUpdate 0x0001 +#define XFA_BCS_EncodeSuccess 0x0002 + +class CFWL_BarcodeImp : public CFWL_EditImp { + public: + CFWL_BarcodeImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_BarcodeImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FWL_ERR SetText(const CFX_WideString& wsText); + virtual void SetType(BC_TYPE type); + FX_BOOL IsProtectedType(); + + protected: + void GenerateBarcodeImageCache(); + void CreateBarcodeEngine(); + void ReleaseBarcodeEngine(); + IFX_Barcode* m_pBarcodeEngine; + FX_DWORD m_dwStatus; + BC_TYPE m_type; + friend class CFWL_BarcodeImpDelegate; +}; + +class CFWL_BarcodeImpDelegate : public CFWL_EditImpDelegate { + public: + CFWL_BarcodeImpDelegate(CFWL_BarcodeImp* pOwner); + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_BARCODEIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_caretimp.cpp b/xfa/src/fwl/src/basewidget/fwl_caretimp.cpp index 559d4b69f1..e414b32630 100644 --- a/xfa/src/fwl/src/basewidget/fwl_caretimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_caretimp.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_caretimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_caretimp.h" #include "xfa/include/fwl/basewidget/fwl_caret.h" #include "xfa/include/fwl/core/fwl_theme.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" // static IFWL_Caret* IFWL_Caret::Create(const CFWL_WidgetImpProperties& properties, diff --git a/xfa/src/fwl/src/basewidget/fwl_caretimp.h b/xfa/src/fwl/src/basewidget/fwl_caretimp.h new file mode 100644 index 0000000000..ae334e944b --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_caretimp.h @@ -0,0 +1,67 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_CARETIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_CARETIMP_H_ + +#include "xfa/include/fwl/core/fwl_timer.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_CaretImpDelegate; + +class CFWL_CaretImp : public CFWL_WidgetImp { + public: + CFWL_CaretImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_CaretImp(); + + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + + virtual FWL_ERR ShowCaret(FX_BOOL bFlag = TRUE); + virtual FWL_ERR GetFrequency(FX_DWORD& elapse); + virtual FWL_ERR SetFrequency(FX_DWORD elapse); + virtual FWL_ERR SetColor(CFX_Color crFill); + + protected: + FX_BOOL DrawCaretBK(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + class CFWL_CaretTimer : public IFWL_Timer { + public: + explicit CFWL_CaretTimer(CFWL_CaretImp* pCaret); + ~CFWL_CaretTimer() override {} + int32_t Run(FWL_HTIMER hTimer) override; + CFWL_CaretImp* const m_pCaret; + }; + CFWL_CaretTimer* m_pTimer; + FWL_HTIMER m_hTimer; + FX_DWORD m_dwElapse; + CFX_Color m_crFill; + FX_BOOL m_bSetColor; + friend class CFWL_CaretImpDelegate; + friend class CFWL_CaretTimer; +}; +class CFWL_CaretImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_CaretImpDelegate(CFWL_CaretImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + CFWL_CaretImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_CARETIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp index 2165e20864..b167b6fff3 100644 --- a/xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_checkboximp.cpp @@ -4,17 +4,17 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_checkboximp.h" #include #include "xfa/include/fwl/basewidget/fwl_checkbox.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" #define FWL_CKB_CaptionMargin 5 diff --git a/xfa/src/fwl/src/basewidget/fwl_checkboximp.h b/xfa/src/fwl/src/basewidget/fwl_checkboximp.h new file mode 100644 index 0000000000..c1ce80dcda --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_checkboximp.h @@ -0,0 +1,64 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_CHECKBOXIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_CHECKBOXIMP_H_ + +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_CheckBoxImpDelegate; + +class CFWL_CheckBoxImp : public CFWL_WidgetImp { + public: + CFWL_CheckBoxImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_CheckBoxImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual int32_t GetCheckState(); + virtual FWL_ERR SetCheckState(int32_t iCheck); + + protected: + void Layout(); + FX_DWORD GetPartStates(); + void UpdateTextOutStyles(); + void NextStates(); + CFX_RectF m_rtClient; + CFX_RectF m_rtBox; + CFX_RectF m_rtCaption; + CFX_RectF m_rtFocus; + FX_DWORD m_dwTTOStyles; + int32_t m_iTTOAlign; + FX_BOOL m_bBtnDown; + friend class CFWL_CheckBoxImpDelegate; +}; +class CFWL_CheckBoxImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_CheckBoxImpDelegate(CFWL_CheckBoxImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnActivate(CFWL_Message* pMsg); + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + void OnKeyDown(CFWL_MsgKey* pMsg); + CFWL_CheckBoxImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_CHECKBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp index 2a33c6e720..d9f6220a1c 100644 --- a/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp @@ -4,22 +4,22 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_comboboximp.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_listboximp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_formproxyimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_listboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" // static IFWL_ComboBox* IFWL_ComboBox::Create( diff --git a/xfa/src/fwl/src/basewidget/fwl_comboboximp.h b/xfa/src/fwl/src/basewidget/fwl_comboboximp.h new file mode 100644 index 0000000000..f215367491 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_comboboximp.h @@ -0,0 +1,237 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_COMBOBOXIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_COMBOBOXIMP_H_ + +#include + +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_listboximp.h" + +class CFWL_WidgetImp; +class CFWL_WidgetImpProperties; +class CFWL_WidgetImpDelegate; +class CFWL_ListBoxImp; +class CFWL_ListBoxImpDelegate; +class CFWL_FormProxyImp; +class IFWL_Widget; +class CFWL_ComboEditImp; +class CFWL_ComboEditImpDelegate; +class CFWL_ComboListImp; +class CFWL_ComboListImpDelegate; +class CFWL_ComboBoxImp; +class CFWL_ComboBoxImpDelegate; +class CFWL_ComboProxyImpDelegate; +class CFWL_ComboEditImp : public CFWL_EditImp { + public: + CFWL_ComboEditImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + + void ClearSelected(); + void SetSelected(); + void EndCaret(); + void FlagFocus(FX_BOOL bSet); + + protected: + void SetComboBoxFocus(FX_BOOL bSet); + CFWL_ComboBoxImp* m_pOuter; + friend class CFWL_ComboEditImpDelegate; +}; +class CFWL_ComboEditImpDelegate : public CFWL_EditImpDelegate { + public: + CFWL_ComboEditImpDelegate(CFWL_ComboEditImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + + protected: + CFWL_ComboEditImp* m_pOwner; +}; +class CFWL_ComboListImp : public CFWL_ListBoxImp { + public: + CFWL_ComboListImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + int32_t MatchItem(const CFX_WideString& wsMatch); + void ChangeSelected(int32_t iSel); + int32_t CountItems(); + void GetItemRect(int32_t nIndex, CFX_RectF& rtItem); + void ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy); + void SetFocus(FX_BOOL bSet); + FX_BOOL m_bNotifyOwner; + friend class CFWL_ComboListImpDelegate; + friend class CFWL_ComboBoxImp; +}; +class CFWL_ComboListImpDelegate : public CFWL_ListBoxImpDelegate { + public: + CFWL_ComboListImpDelegate(CFWL_ComboListImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + + protected: + void OnDropListFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + int32_t OnDropListMouseMove(CFWL_MsgMouse* pMsg); + int32_t OnDropListLButtonDown(CFWL_MsgMouse* pMsg); + int32_t OnDropListLButtonUp(CFWL_MsgMouse* pMsg); + int32_t OnDropListKey(CFWL_MsgKey* pKey); + void OnDropListKeyDown(CFWL_MsgKey* pKey); + CFWL_ComboListImp* m_pOwner; +}; +class CFWL_ComboBoxImp : public CFWL_WidgetImp { + public: + CFWL_ComboBoxImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_ComboBoxImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded, + FX_DWORD dwStylesExRemoved); + virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); + virtual FWL_ERR Update(); + virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); + virtual int32_t GetCurSel(); + virtual FWL_ERR SetCurSel(int32_t iSel); + virtual FWL_ERR SetEditText(const CFX_WideString& wsText); + virtual int32_t GetEditTextLength() const; + virtual FWL_ERR GetEditText(CFX_WideString& wsText, + int32_t nStart = 0, + int32_t nCount = -1) const; + virtual FWL_ERR SetEditSelRange(int32_t nStart, int32_t nCount = -1); + virtual int32_t GetEditSelRange(int32_t nIndex, int32_t& nStart); + virtual int32_t GetEditLimit(); + virtual FWL_ERR SetEditLimit(int32_t nLimit); + virtual FWL_ERR EditDoClipboard(int32_t iCmd); + virtual FX_BOOL EditRedo(const CFX_ByteStringC& bsRecord); + virtual FX_BOOL EditUndo(const CFX_ByteStringC& bsRecord); + virtual IFWL_ListBox* GetListBoxt(); + virtual FX_BOOL AfterFocusShowDropList(); + virtual FX_ERR OpenDropDownList(FX_BOOL bActivate); + virtual FX_BOOL EditCanUndo(); + virtual FX_BOOL EditCanRedo(); + virtual FX_BOOL EditUndo(); + virtual FX_BOOL EditRedo(); + virtual FX_BOOL EditCanCopy(); + virtual FX_BOOL EditCanCut(); + virtual FX_BOOL EditCanSelectAll(); + virtual FX_BOOL EditCopy(CFX_WideString& wsCopy); + virtual FX_BOOL EditCut(CFX_WideString& wsCut); + virtual FX_BOOL EditPaste(const CFX_WideString& wsPaste); + virtual FX_BOOL EditSelectAll(); + virtual FX_BOOL EditDelete(); + virtual FX_BOOL EditDeSelect(); + virtual FWL_ERR GetBBox(CFX_RectF& rect); + virtual FWL_ERR EditModifyStylesEx(FX_DWORD dwStylesExAdded, + FX_DWORD dwStylesExRemoved); + + protected: + void DrawStretchHandler(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix); + FX_FLOAT GetListHeight(); + void ShowDropList(FX_BOOL bActivate); + FX_BOOL IsDropListShowed(); + FX_BOOL IsDropDownStyle() const; + void MatchEditText(); + void SynchrEditText(int32_t iListItem); + void Layout(); + void ReSetTheme(); + void ReSetEditAlignment(); + void ReSetListItemAlignment(); + void ProcessSelChanged(FX_BOOL bLButtonUp); + void InitProxyForm(); + FWL_ERR DisForm_Initialize(); + void DisForm_InitComboList(); + void DisForm_InitComboEdit(); + void DisForm_ShowDropList(FX_BOOL bActivate); + FX_BOOL DisForm_IsDropListShowed(); + FWL_ERR DisForm_ModifyStylesEx(FX_DWORD dwStylesExAdded, + FX_DWORD dwStylesExRemoved); + FWL_ERR DisForm_Update(); + FX_DWORD DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy); + FWL_ERR DisForm_DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + FWL_ERR DisForm_GetBBox(CFX_RectF& rect); + void DisForm_Layout(); + + CFX_RectF m_rtClient; + CFX_RectF m_rtContent; + CFX_RectF m_rtBtn; + CFX_RectF m_rtList; + CFX_RectF m_rtProxy; + CFX_RectF m_rtHandler; + std::unique_ptr m_pEdit; + std::unique_ptr m_pListBox; + IFWL_Form* m_pForm; + FX_BOOL m_bLButtonDown; + FX_BOOL m_bUpFormHandler; + int32_t m_iCurSel; + int32_t m_iBtnState; + FX_FLOAT m_fComboFormHandler; + FX_FLOAT m_fItemHeight; + FX_BOOL m_bNeedShowList; + CFWL_FormProxyImp* m_pProxy; + CFWL_ComboProxyImpDelegate* m_pListProxyDelegate; + + friend class CFWL_ComboListImp; + friend class CFWL_ComboEditImp; + friend class CFWL_ComboEditImpDelegate; + friend class CFWL_ComboListImpDelegate; + friend class CFWL_ComboBoxImpDelegate; + friend class CFWL_ComboProxyImpDelegate; +}; +class CFWL_ComboBoxImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_ComboBoxImpDelegate(CFWL_ComboBoxImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + void OnKey(CFWL_MsgKey* pMsg); + void DoSubCtrlKey(CFWL_MsgKey* pMsg); + + protected: + int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage); + void DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg); + void DisForm_OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void DisForm_OnKey(CFWL_MsgKey* pMsg); + + protected: + CFWL_ComboBoxImp* m_pOwner; + friend class CFWL_ComboEditImpDelegate; + friend class CFWL_ComboListImpDelegate; +}; +class CFWL_ComboProxyImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_ComboProxyImpDelegate(IFWL_Form* pForm, CFWL_ComboBoxImp* pComboBox); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + void Reset() { m_bLButtonUpSelf = FALSE; } + + protected: + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnDeactive(CFWL_MsgDeactivate* pMsg); + void OnFocusChanged(CFWL_MsgKillFocus* pMsg, FX_BOOL bSet); + FX_BOOL m_bLButtonDown; + FX_BOOL m_bLButtonUpSelf; + FX_FLOAT m_fStartPos; + IFWL_Form* m_pForm; + CFWL_ComboBoxImp* m_pComboBox; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_COMBOBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp b/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp index 19b6820dbf..fb04dd1cbe 100644 --- a/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp @@ -4,18 +4,18 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h" #include "xfa/include/fwl/basewidget/fwl_spinbutton.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h" -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_formproxyimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" #define FWL_DTP_WIDTH 100 #define FWL_DTP_HEIGHT 20 diff --git a/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h b/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h new file mode 100644 index 0000000000..b1b7207104 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.h @@ -0,0 +1,235 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_DATETIMEPICKERIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_DATETIMEPICKERIMP_H_ + +#include + +#include "xfa/include/fwl/core/fwl_form.h" +#include "xfa/include/fwl/core/fwl_theme.h" +#include "xfa/include/fwl/basewidget/fwl_datetimepicker.h" +#include "xfa/include/fwl/basewidget/fwl_edit.h" +#include "xfa/include/fwl/basewidget/fwl_monthcalendar.h" +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h" + +class CFWL_WidgetImp; +class CFWL_WidgetImpProperties; +class CFWL_WidgetImpDelegate; +class CFWL_DateTimeEdit; +class CFWL_DateTimeEditImpDelegate; +class CFWL_DateTimeCalendar; +class CFWL_DateTimeCalendarImpDelegate; +class CFWL_DateTimePickerImp; +class CFWL_DateTimePickerImpDelegate; + +class IFWL_DateTimeForm : public IFWL_Form { + public: + static IFWL_DateTimeForm* Create(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + + protected: + IFWL_DateTimeForm() {} +}; + +class IFWL_DateTimeCalender : public IFWL_MonthCalendar { + public: + static IFWL_DateTimeCalender* Create( + const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + + protected: + IFWL_DateTimeCalender() {} +}; + +class IFWL_DateTimeEdit : public IFWL_Edit { + public: + static IFWL_DateTimeEdit* Create(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + + protected: + IFWL_DateTimeEdit() {} +}; + +class CFWL_DateTimeEdit : public CFWL_EditImp { + public: + CFWL_DateTimeEdit(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + + protected: + friend class CFWL_DateTimeEditImpDelegate; +}; +class CFWL_DateTimeEditImpDelegate : public CFWL_EditImpDelegate { + public: + CFWL_DateTimeEditImpDelegate(CFWL_DateTimeEdit* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + + private: + int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage); + + protected: + CFWL_DateTimeEdit* m_pOwner; +}; +class CFWL_DateTimeCalendar : public CFWL_MonthCalendarImp { + public: + CFWL_DateTimeCalendar(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + + protected: + friend class CFWL_DateTimeCalendarImpDelegate; +}; +class CFWL_DateTimeCalendarImpDelegate : public CFWL_MonthCalendarImpDelegate { + public: + CFWL_DateTimeCalendarImpDelegate(CFWL_DateTimeCalendar* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + + void OnLButtonDownEx(CFWL_MsgMouse* pMsg); + void OnLButtonUpEx(CFWL_MsgMouse* pMsg); + void OnMouseMoveEx(CFWL_MsgMouse* pMsg); + + private: + int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage); + void DisForm_OnLButtonUpEx(CFWL_MsgMouse* pMsg); + + protected: + CFWL_DateTimeCalendar* m_pOwner; + FX_BOOL m_bFlag; +}; +class CFWL_DateTimePickerImp : public CFWL_WidgetImp { + public: + CFWL_DateTimePickerImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_DateTimePickerImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pTP); + virtual FWL_ERR GetCurSel(int32_t& iYear, int32_t& iMonth, int32_t& iDay); + virtual FWL_ERR SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay); + virtual FWL_ERR SetEditText(const CFX_WideString& wsText); + virtual FWL_ERR GetEditText(CFX_WideString& wsText, + int32_t nStart = 0, + int32_t nCount = -1) const; + + public: + virtual FX_BOOL CanUndo(); + virtual FX_BOOL CanRedo(); + virtual FX_BOOL Undo(); + virtual FX_BOOL Redo(); + virtual FX_BOOL CanCopy(); + virtual FX_BOOL CanCut(); + virtual FX_BOOL CanSelectAll(); + virtual FX_BOOL Copy(CFX_WideString& wsCopy); + virtual FX_BOOL Cut(CFX_WideString& wsCut); + virtual FX_BOOL Paste(const CFX_WideString& wsPaste); + virtual FX_BOOL SelectAll(); + virtual FX_BOOL Delete(); + virtual FX_BOOL DeSelect(); + virtual FWL_ERR GetBBox(CFX_RectF& rect); + virtual FWL_ERR SetEditLimit(int32_t nLimit); + virtual FWL_ERR ModifyEditStylesEx(FX_DWORD dwStylesExAdded, + FX_DWORD dwStylesExRemoved); + + public: + IFWL_DateTimeEdit* GetDataTimeEdit(); + + protected: + void DrawDropDownButton(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void FormatDateString(int32_t iYear, + int32_t iMonth, + int32_t iDay, + CFX_WideString& wsText); + void ShowMonthCalendar(FX_BOOL bActivate); + FX_BOOL IsMonthCalendarShowed(); + void ReSetEditAlignment(); + void InitProxyForm(); + void ProcessSelChanged(int32_t iYear, int32_t iMonth, int32_t iDay); + + private: + FWL_ERR DisForm_Initialize(); + void DisForm_InitDateTimeCalendar(); + void DisForm_InitDateTimeEdit(); + FX_BOOL DisForm_IsMonthCalendarShowed(); + void DisForm_ShowMonthCalendar(FX_BOOL bActivate); + FX_DWORD DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy); + FX_BOOL DisForm_IsNeedShowButton(); + FWL_ERR DisForm_Update(); + FWL_ERR DisForm_GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + FWL_ERR DisForm_GetBBox(CFX_RectF& rect); + FWL_ERR DisForm_DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + + protected: + CFX_RectF m_rtBtn; + CFX_RectF m_rtClient; + int32_t m_iBtnState; + int32_t m_iYear; + int32_t m_iMonth; + int32_t m_iDay; + FX_BOOL m_bLBtnDown; + std::unique_ptr m_pEdit; + std::unique_ptr m_pMonthCal; + std::unique_ptr m_pForm; + FX_FLOAT m_fBtn; + class CFWL_MonthCalendarImpDP : public IFWL_MonthCalendarDP { + public: + CFWL_MonthCalendarImpDP() { + m_iCurYear = 2010; + m_iCurMonth = 3; + m_iCurDay = 29; + } + virtual FWL_ERR GetCaption(IFWL_Widget* pWidget, + CFX_WideString& wsCaption) { + return FWL_ERR_Succeeded; + } + virtual int32_t GetCurDay(IFWL_Widget* pWidget) { return m_iCurDay; } + virtual int32_t GetCurMonth(IFWL_Widget* pWidget) { return m_iCurMonth; } + virtual int32_t GetCurYear(IFWL_Widget* pWidget) { return m_iCurYear; } + int32_t m_iCurDay; + int32_t m_iCurYear; + int32_t m_iCurMonth; + }; + + CFWL_MonthCalendarImpDP m_MonthCalendarDP; + friend class CFWL_DateTimeEditImpDelegate; + friend class CFWL_DateTimeCalendar; + friend class CFWL_DateTimeCalendarImpDelegate; + friend class CFWL_DateTimePickerImpDelegate; +}; +class CFWL_DateTimePickerImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_DateTimePickerImpDelegate(CFWL_DateTimePickerImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + + CFWL_DateTimePickerImp* m_pOwner; + + private: + void DisForm_OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_DATETIMEPICKERIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_editimp.cpp b/xfa/src/fwl/src/basewidget/fwl_editimp.cpp index 66852d0815..8e876ed67d 100644 --- a/xfa/src/fwl/src/basewidget/fwl_editimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_editimp.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_editimp.h" #include @@ -14,15 +14,15 @@ #include "xfa/src/fdp/include/fde_rdr.h" #include "xfa/src/fdp/include/fde_rdv.h" #include "xfa/src/fee/include/ifde_txtedtpage.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_caretimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_caretimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_comboboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" // static IFWL_Edit* IFWL_Edit::Create(const CFWL_WidgetImpProperties& properties, diff --git a/xfa/src/fwl/src/basewidget/fwl_editimp.h b/xfa/src/fwl/src/basewidget/fwl_editimp.h new file mode 100644 index 0000000000..bec5c89f83 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_editimp.h @@ -0,0 +1,208 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_EDITIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_EDITIMP_H_ + +#include +#include + +#include "xfa/include/fwl/basewidget/fwl_scrollbar.h" +#include "xfa/src/fee/include/ifde_txtedtengine.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class CFWL_WidgetImpDelegate; +class IFWL_Caret; +class CFWL_EditImp; +class CFWL_EditImpDelegate; + +class CFWL_EditImp : public CFWL_WidgetImp, public IFDE_TxtEdtEventSink { + public: + CFWL_EditImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); + ~CFWL_EditImp() override; + + // CFWL_WidgetImp: + FWL_ERR GetClassName(CFX_WideString& wsClass) const override; + FX_DWORD GetClassID() const override; + FWL_ERR Initialize() override; + FWL_ERR Finalize() override; + FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE) override; + FWL_ERR SetWidgetRect(const CFX_RectF& rect) override; + FWL_ERR Update() override; + FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy) override; + FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE) override; + FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) override; + + virtual FWL_ERR SetText(const CFX_WideString& wsText); + virtual int32_t GetTextLength() const; + virtual FWL_ERR GetText(CFX_WideString& wsText, + int32_t nStart = 0, + int32_t nCount = -1) const; + virtual FWL_ERR ClearText(); + virtual int32_t GetCaretPos() const; + virtual int32_t SetCaretPos(int32_t nIndex, FX_BOOL bBefore = TRUE); + virtual FWL_ERR AddSelRange(int32_t nStart, int32_t nCount = -1); + virtual int32_t CountSelRanges(); + virtual int32_t GetSelRange(int32_t nIndex, int32_t& nStart); + virtual FWL_ERR ClearSelections(); + virtual int32_t GetLimit(); + virtual FWL_ERR SetLimit(int32_t nLimit); + virtual FWL_ERR SetAliasChar(FX_WCHAR wAlias); + virtual FWL_ERR Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLen); + virtual FWL_ERR DeleteSelections(); + virtual FWL_ERR DeleteRange(int32_t nStart, int32_t nCount = -1); + virtual FWL_ERR ReplaceSelections(const CFX_WideStringC& wsReplace); + virtual FWL_ERR Replace(int32_t nStart, + int32_t nLen, + const CFX_WideStringC& wsReplace); + virtual FWL_ERR DoClipboard(int32_t iCmd); + virtual FX_BOOL Copy(CFX_WideString& wsCopy); + virtual FX_BOOL Cut(CFX_WideString& wsCut); + virtual FX_BOOL Paste(const CFX_WideString& wsPaste); + virtual FX_BOOL Delete(); + virtual FX_BOOL Redo(const CFX_ByteStringC& bsRecord); + virtual FX_BOOL Undo(const CFX_ByteStringC& bsRecord); + virtual FX_BOOL Undo(); + virtual FX_BOOL Redo(); + virtual FX_BOOL CanUndo(); + virtual FX_BOOL CanRedo(); + virtual FWL_ERR SetTabWidth(FX_FLOAT fTabWidth, FX_BOOL bEquidistant); + virtual FWL_ERR SetOuter(IFWL_Widget* pOuter); + virtual FWL_ERR SetNumberRange(int32_t iMin, int32_t iMax); + void On_CaretChanged(IFDE_TxtEdtEngine* pEdit, + int32_t nPage, + FX_BOOL bVisible = true) override; + void On_TextChanged(IFDE_TxtEdtEngine* pEdit, + FDE_TXTEDT_TEXTCHANGE_INFO& ChangeInfo) override; + void On_PageCountChanged(IFDE_TxtEdtEngine* pEdit) override {} + void On_SelChanged(IFDE_TxtEdtEngine* pEdit) override; + FX_BOOL On_PageLoad(IFDE_TxtEdtEngine* pEdit, + int32_t nPageIndex, + int32_t nPurpose) override; + FX_BOOL On_PageUnload(IFDE_TxtEdtEngine* pEdit, + int32_t nPageIndex, + int32_t nPurpose) override; + FX_BOOL On_PageChange(IFDE_TxtEdtEngine* pEdit, int32_t nPageIndex) override { + return TRUE; + } + void On_AddDoRecord(IFDE_TxtEdtEngine* pEdit, + const CFX_ByteStringC& bsDoRecord) override; + FX_BOOL On_ValidateField(IFDE_TxtEdtEngine* pEdit, + int32_t nBlockIndex, + int32_t nFieldIndex, + const CFX_WideString& wsFieldText, + int32_t nCharIndex) override; + FX_BOOL On_ValidateBlock(IFDE_TxtEdtEngine* pEdit, + int32_t nBlockIndex) override; + FX_BOOL On_GetBlockFormatText(IFDE_TxtEdtEngine* pEdit, + int32_t nBlockIndex, + CFX_WideString& wsBlockText) override; + FX_BOOL On_Validate(IFDE_TxtEdtEngine* pEdit, + CFX_WideString& wsText) override; + virtual FWL_ERR SetBackgroundColor(FX_DWORD color); + virtual FWL_ERR SetFont(const CFX_WideString& wsFont, FX_FLOAT fSize); + void SetScrollOffset(FX_FLOAT fScrollOffset); + FX_BOOL GetSuggestWords(CFX_PointF pointf, + std::vector& sSuggest); + FX_BOOL ReplaceSpellCheckWord(CFX_PointF pointf, + const CFX_ByteStringC& bsReplace); + + protected: + void DrawTextBk(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void DrawContent(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void UpdateEditEngine(); + void UpdateEditParams(); + void UpdateEditLayout(); + FX_BOOL UpdateOffset(); + FX_BOOL UpdateOffset(IFWL_ScrollBar* pScrollBar, FX_FLOAT fPosChanged); + void UpdateVAlignment(); + void UpdateCaret(); + IFWL_ScrollBar* UpdateScroll(); + void Layout(); + void LayoutScrollBar(); + void DeviceToEngine(CFX_PointF& pt); + void InitScrollBar(FX_BOOL bVert = TRUE); + void InitEngine(); + virtual void ShowCaret(FX_BOOL bVisible, CFX_RectF* pRect = NULL); + FX_BOOL ValidateNumberChar(FX_WCHAR cNum); + void InitCaret(); + void ClearRecord(); + FX_BOOL IsShowScrollBar(FX_BOOL bVert); + FX_BOOL IsContentHeightOverflow(); + int32_t AddDoRecord(const CFX_ByteStringC& bsDoRecord); + void ProcessInsertError(int32_t iError); + + void DrawSpellCheck(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + void AddSpellCheckObj(CFX_Path& PathData, + int32_t nStart, + int32_t nCount, + FX_FLOAT fOffSetX, + FX_FLOAT fOffSetY); + int32_t GetWordAtPoint(CFX_PointF pointf, int32_t& nCount); + CFX_RectF m_rtClient; + CFX_RectF m_rtEngine; + CFX_RectF m_rtStatic; + FX_FLOAT m_fVAlignOffset; + FX_FLOAT m_fScrollOffsetX; + FX_FLOAT m_fScrollOffsetY; + IFDE_TxtEdtEngine* m_pEdtEngine; + FX_BOOL m_bLButtonDown; + int32_t m_nSelStart; + int32_t m_nLimit; + FX_FLOAT m_fSpaceAbove; + FX_FLOAT m_fSpaceBelow; + FX_FLOAT m_fFontSize; + FX_ARGB m_argbSel; + FX_BOOL m_bSetRange; + int32_t m_iMin; + int32_t m_iMax; + std::unique_ptr m_pVertScrollBar; + std::unique_ptr m_pHorzScrollBar; + std::unique_ptr m_pCaret; + CFX_WideString m_wsCache; + friend class CFWL_TxtEdtEventSink; + friend class CFWL_EditImpDelegate; + FX_DWORD m_backColor; + FX_BOOL m_updateBackColor; + CFX_WideString m_wsFont; + CFX_ByteStringArray m_RecordArr; + int32_t m_iCurRecord; + int32_t m_iMaxRecord; +}; + +class CFWL_EditImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_EditImpDelegate(CFWL_EditImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void DoActivate(CFWL_MsgActivate* pMsg); + void DoDeactivate(CFWL_MsgDeactivate* pMsg); + void DoButtonDown(CFWL_MsgMouse* pMsg); + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnButtonDblClk(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnKeyDown(CFWL_MsgKey* pMsg); + void OnChar(CFWL_MsgKey* pMsg); + FX_BOOL OnScroll(IFWL_ScrollBar* pScrollBar, FX_DWORD dwCode, FX_FLOAT fPos); + void DoCursor(CFWL_MsgMouse* pMsg); + CFWL_EditImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_EDITIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp b/xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp index 558866a1b4..5035a3ba30 100644 --- a/xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_formproxyimp.h" -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" CFWL_FormProxyImp::CFWL_FormProxyImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter) diff --git a/xfa/src/fwl/src/basewidget/fwl_formproxyimp.h b/xfa/src/fwl/src/basewidget/fwl_formproxyimp.h new file mode 100644 index 0000000000..6b7cc822ff --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_formproxyimp.h @@ -0,0 +1,42 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_FORMPROXYIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_FORMPROXYIMP_H_ + +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class CFWL_FormProxyImpDelegate; + +class CFWL_FormProxyImp : public CFWL_FormImp { + public: + CFWL_FormProxyImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_FormProxyImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + + protected: + friend class CFWL_FormProxyImpDelegate; +}; +class CFWL_FormProxyImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_FormProxyImpDelegate(CFWL_FormProxyImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + + protected: + CFWL_FormProxyImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_FORMPROXYIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp index f218e709da..dc7c33f2c6 100644 --- a/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp @@ -4,15 +4,15 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_listboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_listboximp.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_comboboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_LISTBOX_ItemTextMargin 2 diff --git a/xfa/src/fwl/src/basewidget/fwl_listboximp.h b/xfa/src/fwl/src/basewidget/fwl_listboximp.h new file mode 100644 index 0000000000..ae86e7359c --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_listboximp.h @@ -0,0 +1,121 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_LISTBOXIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_LISTBOXIMP_H_ + +#include + +#include "xfa/include/fwl/basewidget/fwl_combobox.h" +#include "xfa/include/fwl/basewidget/fwl_edit.h" +#include "xfa/include/fwl/basewidget/fwl_listbox.h" +#include "xfa/include/fwl/basewidget/fwl_scrollbar.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_ListBoxImpDelegate; + +class CFWL_ListBoxImp : public CFWL_WidgetImp { + public: + CFWL_ListBoxImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_ListBoxImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); + virtual int32_t CountSelItems(); + virtual FWL_HLISTITEM GetSelItem(int32_t nIndexSel); + virtual int32_t GetSelIndex(int32_t nIndex); + virtual FWL_ERR SetSelItem(FWL_HLISTITEM hItem, FX_BOOL bSelect = TRUE); + virtual FWL_ERR GetItemText(FWL_HLISTITEM hItem, CFX_WideString& wsText); + virtual FWL_ERR GetScrollPos(FX_FLOAT& fPos, FX_BOOL bVert = TRUE); + virtual FWL_ERR* Sort(IFWL_ListBoxCompare* pCom); + + protected: + FWL_HLISTITEM GetItem(FWL_HLISTITEM hItem, FX_DWORD dwKeyCode); + void SetSelection(FWL_HLISTITEM hStart, + FWL_HLISTITEM hEnd, + FX_BOOL bSelected); + void SetSelectionDirect(FWL_HLISTITEM hItem, FX_BOOL bSelect); + FX_BOOL IsItemSelected(FWL_HLISTITEM hItem); + void ClearSelection(); + void SelectAll(); + FWL_HLISTITEM GetFocusedItem(); + void SetFocusItem(FWL_HLISTITEM hItem); + FWL_HLISTITEM GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy); + FX_BOOL GetItemCheckRect(FWL_HLISTITEM hItem, CFX_RectF& rtCheck); + FX_BOOL SetItemChecked(FWL_HLISTITEM hItem, FX_BOOL bChecked); + FX_BOOL GetItemChecked(FWL_HLISTITEM hItem); + FX_BOOL ScrollToVisible(FWL_HLISTITEM hItem); + void DrawBkground(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void DrawItems(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void DrawItem(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + FWL_HLISTITEM hItem, + int32_t Index, + const CFX_RectF& rtItem, + const CFX_Matrix* pMatrix = NULL); + void DrawStatic(CFX_Graphics* pGraphics, IFWL_ThemeProvider* pTheme); + CFX_SizeF CalcSize(FX_BOOL bAutoSize = FALSE); + void GetItemSize(CFX_SizeF& size, + FWL_HLISTITEM hItem, + FX_FLOAT fWidth, + FX_FLOAT fHeight, + FX_BOOL bAutoSize = FALSE); + FX_FLOAT GetMaxTextWidth(); + FX_FLOAT GetScrollWidth(); + FX_FLOAT GetItemHeigt(); + void InitScrollBar(FX_BOOL bVert = TRUE); + void SortItem(); + FX_BOOL IsShowScrollBar(FX_BOOL bVert); + void ProcessSelChanged(); + + protected: + CFX_RectF m_rtClient; + CFX_RectF m_rtStatic; + CFX_RectF m_rtConent; + std::unique_ptr m_pHorzScrollBar; + std::unique_ptr m_pVertScrollBar; + FX_DWORD m_dwTTOStyles; + int32_t m_iTTOAligns; + FWL_HLISTITEM m_hAnchor; + FX_FLOAT m_fItemHeight; + FX_FLOAT m_fScorllBarWidth; + FX_BOOL m_bLButtonDown; + IFWL_ThemeProvider* m_pScrollBarTP; + friend class CFWL_ListBoxImpDelegate; +}; +class CFWL_ListBoxImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_ListBoxImpDelegate(CFWL_ListBoxImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseWheel(CFWL_MsgMouseWheel* pMsg); + void OnKeyDown(CFWL_MsgKey* pMsg); + void OnVK(FWL_HLISTITEM hItem, FX_BOOL bShift, FX_BOOL bCtrl); + FX_BOOL OnScroll(IFWL_ScrollBar* pScrollBar, FX_DWORD dwCode, FX_FLOAT fPos); + void DispatchSelChangedEv(); + CFWL_ListBoxImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_LISTBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp b/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp index b3dea6ee7b..3a7589e319 100644 --- a/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp @@ -4,16 +4,16 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h" #include #include "xfa/include/fwl/basewidget/fwl_monthcalendar.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define MONTHCAL_HSEP_HEIGHT 1 #define MONTHCAL_VSEP_WIDTH 1 diff --git a/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h b/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h new file mode 100644 index 0000000000..5832f2e35c --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.h @@ -0,0 +1,243 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_MONTHCALENDARIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_MONTHCALENDARIMP_H_ + +#include "xfa/src/fgas/include/fx_datetime.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_MonthCalendarImpDelegate; + +extern uint8_t FX_DaysInMonth(int32_t iYear, uint8_t iMonth); + +class CFWL_MonthCalendarImp : public CFWL_WidgetImp { + public: + CFWL_MonthCalendarImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_MonthCalendarImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual int32_t CountSelect(); + virtual FX_BOOL GetSelect(int32_t& iYear, + int32_t& iMonth, + int32_t& iDay, + int32_t nIndex = 0); + virtual FX_BOOL SetSelect(int32_t iYear, int32_t iMonth, int32_t iDay); + + protected: + struct DATE { + DATE() : iYear(0), iMonth(0), iDay(0) {} + DATE(int32_t year, int32_t month, int32_t day) + : iYear(year), iMonth(month), iDay(day) {} + FX_BOOL operator<(const DATE& right) { + if (iYear < right.iYear) { + return TRUE; + } else if (iYear == right.iYear) { + if (iMonth < right.iMonth) { + return TRUE; + } else if (iMonth == right.iMonth) { + return iDay < right.iDay; + } + } + return FALSE; + } + FX_BOOL operator>(const DATE& right) { + if (iYear > right.iYear) { + return TRUE; + } else if (iYear == right.iYear) { + if (iMonth > right.iMonth) { + return TRUE; + } else if (iMonth == right.iMonth) { + return iDay > right.iDay; + } + } + return FALSE; + } + int32_t iYear; + int32_t iMonth; + int32_t iDay; + }; + + void DrawBkground(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawHeadBK(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawLButton(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawRButton(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawCaption(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawSeperator(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawDatesInBK(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawWeek(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawWeekNumber(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawWeekNumberSep(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawToday(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawDatesIn(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawDatesOut(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawDatesInCircle(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawTodayCircle(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + CFX_SizeF CalcSize(FX_BOOL bAutoSize = FALSE); + void LayOut(); + void CalcHeadSize(); + void CalcTodaySize(); + void CalDateItem(); + void GetCapValue(); + int32_t CalWeekNumber(int32_t iYear, int32_t iMonth, int32_t iDay); + FX_BOOL GetMinDate(int32_t& iYear, int32_t& iMonth, int32_t& iDay); + FX_BOOL SetMinDate(int32_t iYear, int32_t iMonth, int32_t iDay); + FX_BOOL GetMaxDate(int32_t& iYear, int32_t& iMonth, int32_t& iDay); + FX_BOOL SetMaxDate(int32_t iYear, int32_t iMonth, int32_t iDay); + FX_BOOL InitDate(); + void ClearDateItem(); + void ReSetDateItem(); + FX_BOOL NextMonth(); + FX_BOOL PrevMonth(); + void ChangeToMonth(int32_t iYear, int32_t iMonth); + FX_BOOL RemoveSelDay(int32_t iDay, FX_BOOL bAll = FALSE); + FX_BOOL AddSelDay(int32_t iDay); + FX_BOOL JumpToToday(); + void GetHeadText(int32_t iYear, int32_t iMonth, CFX_WideString& wsHead); + void GetTodayText(int32_t iYear, + int32_t iMonth, + int32_t iDay, + CFX_WideString& wsToday); + int32_t GetDayAtPoint(FX_FLOAT x, FX_FLOAT y); + FX_BOOL GetDayRect(int32_t iDay, CFX_RectF& rtDay); + + FX_BOOL m_bInit; + CFX_RectF m_rtHead; + CFX_RectF m_rtWeek; + CFX_RectF m_rtLBtn; + CFX_RectF m_rtRBtn; + CFX_RectF m_rtDates; + CFX_RectF m_rtHSep; + CFX_RectF m_rtHeadText; + CFX_RectF m_rtToday; + CFX_RectF m_rtTodayFlag; + CFX_RectF m_rtWeekNum; + CFX_RectF m_rtWeekNumSep; + CFX_RectF m_rtTemp; + CFX_WideString m_wsHead; + CFX_WideString m_wsToday; + CFX_DateTime* m_pDateTime; + CFX_PtrArray m_arrDates; + int32_t m_iCurYear; + int32_t m_iCurMonth; + int32_t m_iYear; + int32_t m_iMonth; + int32_t m_iDay; + int32_t m_iHovered; + int32_t m_iLBtnPartStates; + int32_t m_iRBtnPartStates; + DATE m_dtMin; + DATE m_dtMax; + CFX_SizeF m_szHead; + CFX_SizeF m_szCell; + CFX_SizeF m_szToday; + CFX_ArrayTemplate m_arrSelDays; + int32_t m_iMaxSel; + CFX_RectF m_rtClient; + FX_FLOAT m_fHeadWid; + FX_FLOAT m_fHeadHei; + FX_FLOAT m_fHeadBtnWid; + FX_FLOAT m_fHeadBtnHei; + FX_FLOAT m_fHeadBtnHMargin; + FX_FLOAT m_fHeadBtnVMargin; + FX_FLOAT m_fHeadTextWid; + FX_FLOAT m_fHeadTextHei; + FX_FLOAT m_fHeadTextHMargin; + FX_FLOAT m_fHeadTextVMargin; + FX_FLOAT m_fHSepWid; + FX_FLOAT m_fHSepHei; + FX_FLOAT m_fWeekNumWid; + FX_FLOAT m_fSepDOffset; + FX_FLOAT m_fSepX; + FX_FLOAT m_fSepY; + FX_FLOAT m_fWeekNumHeigh; + FX_FLOAT m_fWeekWid; + FX_FLOAT m_fWeekHei; + FX_FLOAT m_fDateCellWid; + FX_FLOAT m_fDateCellHei; + FX_FLOAT m_fTodayWid; + FX_FLOAT m_fTodayHei; + FX_FLOAT m_fTodayFlagWid; + FX_FLOAT m_fMCWid; + FX_FLOAT m_fMCHei; + friend class CFWL_MonthCalendarImpDelegate; +}; + +struct FWL_DATEINFO { + FWL_DATEINFO(int32_t day, + int32_t dayofweek, + FX_DWORD dwSt, + CFX_RectF rc, + CFX_WideString& wsday) + : iDay(day), + iDayOfWeek(dayofweek), + dwStates(dwSt), + rect(rc), + wsDay(wsday) {} + int32_t iDay; + int32_t iDayOfWeek; + FX_DWORD dwStates; + CFX_RectF rect; + CFX_WideString wsDay; +}; + +class CFWL_MonthCalendarImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_MonthCalendarImpDelegate(CFWL_MonthCalendarImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnActivate(CFWL_Message* pMsg); + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + CFWL_MonthCalendarImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_MONTHCALENDARIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp index 4bfae5369c..9e41143371 100644 --- a/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp @@ -4,12 +4,12 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h" +#include "xfa/src/fwl/src/basewidget/fwl_pictureboximp.h" #include "xfa/include/fwl/lightwidget/picturebox.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" // static IFWL_PictureBox* IFWL_PictureBox::Create( diff --git a/xfa/src/fwl/src/basewidget/fwl_pictureboximp.h b/xfa/src/fwl/src/basewidget/fwl_pictureboximp.h new file mode 100644 index 0000000000..aa2fa25799 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_pictureboximp.h @@ -0,0 +1,53 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_PICTUREBOXIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_PICTUREBOXIMP_H_ + +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_PictureBoxImpDelegate; + +class CFWL_PictureBoxImp : public CFWL_WidgetImp { + public: + CFWL_PictureBoxImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_PictureBoxImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + + protected: + void DrawBkground(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + FX_BOOL VStyle(FX_BOOL dwStyle); + CFX_RectF m_rtClient; + CFX_RectF m_rtImage; + CFX_Matrix m_matrix; + FX_BOOL m_bTop; + FX_BOOL m_bVCenter; + FX_BOOL m_bButton; + friend class CFWL_PictureBoxImpDelegate; +}; +class CFWL_PictureBoxImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_PictureBoxImpDelegate(CFWL_PictureBoxImp* pOwner); + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + CFWL_PictureBoxImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_PICTUREBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp b/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp index 3abb22e2ab..a91fb0413e 100644 --- a/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h" #include "xfa/include/fwl/basewidget/fwl_pushbutton.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" // static IFWL_PushButton* IFWL_PushButton::Create( diff --git a/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h b/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h new file mode 100644 index 0000000000..96139e1385 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_pushbuttonimp.h @@ -0,0 +1,65 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_PUSHBUTTONIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_PUSHBUTTONIMP_H_ + +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_PushButtonImpDelegate; + +class CFWL_PushButtonImp : public CFWL_WidgetImp { + public: + CFWL_PushButtonImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_PushButtonImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + + protected: + void DrawBkground(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawText(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + FX_DWORD GetPartStates(); + void UpdateTextOutStyles(); + CFX_RectF m_rtClient; + CFX_RectF m_rtCaption; + FX_BOOL m_bBtnDown; + FX_DWORD m_dwTTOStyles; + int32_t m_iTTOAlign; + friend class CFWL_PushButtonImpDelegate; +}; +class CFWL_PushButtonImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_PushButtonImpDelegate(CFWL_PushButtonImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + void OnKeyDown(CFWL_MsgKey* pMsg); + CFWL_PushButtonImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_PUSHBUTTONIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp b/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp index 16271c93b8..81f4cad0a2 100644 --- a/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h" #include "xfa/include/fwl/basewidget/fwl_scrollbar.h" #include "xfa/include/fwl/core/fwl_theme.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_SCROLLBAR_Elapse 500 #define FWL_SCROLLBAR_MinThumb 5 diff --git a/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h b/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h new file mode 100644 index 0000000000..5bc3d0677f --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_scrollbarimp.h @@ -0,0 +1,139 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_SCROLLBARIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_SCROLLBARIMP_H_ + +#include "xfa/include/fwl/core/fwl_timer.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_ScrollBarImpDelegate; + +class CFWL_ScrollBarImp : public CFWL_WidgetImp, public IFWL_Timer { + public: + CFWL_ScrollBarImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_ScrollBarImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FX_BOOL IsVertical(); + virtual FWL_ERR GetRange(FX_FLOAT& fMin, FX_FLOAT& fMax); + virtual FWL_ERR SetRange(FX_FLOAT fMin, FX_FLOAT fMax); + virtual FX_FLOAT GetPageSize(); + virtual FWL_ERR SetPageSize(FX_FLOAT fPageSize); + virtual FX_FLOAT GetStepSize(); + virtual FWL_ERR SetStepSize(FX_FLOAT fStepSize); + virtual FX_FLOAT GetPos(); + virtual FWL_ERR SetPos(FX_FLOAT fPos); + virtual FX_FLOAT GetTrackPos(); + virtual FWL_ERR SetTrackPos(FX_FLOAT fTrackPos); + virtual FX_BOOL DoScroll(FX_DWORD dwCode, FX_FLOAT fPos = 0.0f); + virtual FWL_ERR SetOuter(IFWL_Widget* pOuter); + virtual int32_t Run(FWL_HTIMER hTimer); + + protected: + void DrawTrack(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + FX_BOOL bLower = TRUE, + const CFX_Matrix* pMatrix = NULL); + void DrawArrowBtn(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + FX_BOOL bMinBtn = TRUE, + const CFX_Matrix* pMatrix = NULL); + void DrawThumb(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void Layout(); + void CalcButtonLen(); + void CalcMinButtonRect(CFX_RectF& rect); + void CalcMaxButtonRect(CFX_RectF& rect); + void CalcThumbButtonRect(CFX_RectF& rect); + void CalcMinTrackRect(CFX_RectF& rect); + void CalcMaxTrackRect(CFX_RectF& rect); + FX_FLOAT GetTrackPointPos(FX_FLOAT fx, FX_FLOAT fy); + void GetTrackRect(CFX_RectF& rect, FX_BOOL bLower = TRUE); + FX_BOOL SendEvent(); + FX_BOOL OnScroll(FX_DWORD dwCode, FX_FLOAT fPos); + + FWL_HTIMER m_hTimer; + FX_FLOAT m_fRangeMin; + FX_FLOAT m_fRangeMax; + FX_FLOAT m_fPageSize; + FX_FLOAT m_fStepSize; + FX_FLOAT m_fPos; + FX_FLOAT m_fTrackPos; + int32_t m_iMinButtonState; + int32_t m_iMaxButtonState; + int32_t m_iThumbButtonState; + int32_t m_iMinTrackState; + int32_t m_iMaxTrackState; + FX_FLOAT m_fLastTrackPos; + FX_FLOAT m_cpTrackPointX; + FX_FLOAT m_cpTrackPointY; + int32_t m_iMouseWheel; + FX_BOOL m_bTrackMouseLeave; + FX_BOOL m_bMouseHover; + FX_BOOL m_bMouseDown; + FX_BOOL m_bRepaintThumb; + FX_FLOAT m_fButtonLen; + FX_BOOL m_bMinSize; + CFX_RectF m_rtClient; + CFX_RectF m_rtThumb; + CFX_RectF m_rtMinBtn; + CFX_RectF m_rtMaxBtn; + CFX_RectF m_rtMinTrack; + CFX_RectF m_rtMaxTrack; + FX_BOOL m_bCustomLayout; + FX_FLOAT m_fMinThumb; + friend class CFWL_ScrollBarImpDelegate; +}; +class CFWL_ScrollBarImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_ScrollBarImpDelegate(CFWL_ScrollBarImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnLButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy); + void OnLButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy); + void OnMouseMove(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy); + void OnMouseLeave(); + void OnMouseWheel(FX_FLOAT fx, + FX_FLOAT fy, + FX_DWORD dwFlags, + FX_FLOAT fDeltaX, + FX_FLOAT fDeltaY); + void DoMouseDown(int32_t iItem, + const CFX_RectF& rtItem, + int32_t& iState, + FX_FLOAT fx, + FX_FLOAT fy); + void DoMouseUp(int32_t iItem, + const CFX_RectF& rtItem, + int32_t& iState, + FX_FLOAT fx, + FX_FLOAT fy); + void DoMouseMove(int32_t iItem, + const CFX_RectF& rtItem, + int32_t& iState, + FX_FLOAT fx, + FX_FLOAT fy); + void DoMouseLeave(int32_t iItem, const CFX_RectF& rtItem, int32_t& iState); + void DoMouseHover(int32_t iItem, const CFX_RectF& rtItem, int32_t& iState); + + CFWL_ScrollBarImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_SCROLLBARIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp b/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp index 5b914afc17..037e7ccf36 100644 --- a/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.cpp @@ -4,14 +4,14 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h" #include "xfa/include/fwl/basewidget/fwl_spinbutton.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/include/fwl/core/fwl_timer.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #define FWL_SPN_MinWidth 18 #define FWL_SPN_MinHeight 32 diff --git a/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h b/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h new file mode 100644 index 0000000000..6da9a603d3 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_spinbuttonimp.h @@ -0,0 +1,69 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_SPINBUTTONIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_SPINBUTTONIMP_H_ + +#include "xfa/include/fwl/core/fwl_timer.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class CFWL_SpinButtonImpDelegate; + +class CFWL_SpinButtonImp : public CFWL_WidgetImp, public IFWL_Timer { + public: + CFWL_SpinButtonImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + ~CFWL_SpinButtonImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual int32_t Run(FWL_HTIMER hTimer); + FWL_ERR EnableButton(FX_BOOL bEnable, FX_BOOL bUp = TRUE); + FX_BOOL IsButtonEnable(FX_BOOL bUp = TRUE); + + protected: + void DrawUpButton(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawDownButton(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + CFX_RectF m_rtClient; + CFX_RectF m_rtUpButton; + CFX_RectF m_rtDnButton; + FX_DWORD m_dwUpState; + FX_DWORD m_dwDnState; + int32_t m_iButtonIndex; + FX_BOOL m_bLButtonDwn; + FWL_HTIMER m_hTimer; + friend class CFWL_SpinButtonImpDelegate; +}; +class CFWL_SpinButtonImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_SpinButtonImpDelegate(CFWL_SpinButtonImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + void OnKeyDown(CFWL_MsgKey* pMsg); + CFWL_SpinButtonImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_SPINBUTTONIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp b/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp index d58657b7ab..89efc42866 100644 --- a/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp +++ b/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.cpp @@ -4,16 +4,16 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h" #include "xfa/include/fwl/basewidget/fwl_tooltipctrl.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" // static IFWL_ToolTip* IFWL_ToolTip::Create(const CFWL_WidgetImpProperties& properties, diff --git a/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h b/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h new file mode 100644 index 0000000000..f72e57a68d --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h @@ -0,0 +1,86 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FWL_TOOLTIPCTRLIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FWL_TOOLTIPCTRLIMP_H_ + +#include "xfa/include/fwl/core/fwl_timer.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class CFWL_ToolTipImpDelegate; + +class CFWL_ToolTipImp : public CFWL_FormImp { + public: + CFWL_ToolTipImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_ToolTipImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet); + virtual FWL_ERR GetClientRect(CFX_RectF& rect); + FWL_ERR SetAnchor(const CFX_RectF& rtAnchor); + FWL_ERR Show(); + FWL_ERR Hide(); + + protected: + void DrawBkground(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void DrawText(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix); + void UpdateTextOutStyles(); + void RefreshToolTipPos(); + class CFWL_ToolTipTimer : public IFWL_Timer { + public: + CFWL_ToolTipTimer() {} + ~CFWL_ToolTipTimer() {} + CFWL_ToolTipTimer(CFWL_ToolTipImp* pToolTip); + virtual int32_t Run(FWL_HTIMER hTimer); + CFWL_ToolTipImp* m_pToolTip; + }; + CFX_RectF m_rtClient; + CFX_RectF m_rtCaption; + FX_BOOL m_bBtnDown; + FX_DWORD m_dwTTOStyles; + int32_t m_iTTOAlign; + CFX_RectF m_rtAnchor; + FWL_HTIMER m_hTimerShow; + FWL_HTIMER m_hTimerHide; + CFWL_ToolTipTimer* m_pTimer; + CFWL_ToolTipTimer m_TimerShow; + CFWL_ToolTipTimer m_TimerHide; + friend class CFWL_ToolTipImpDelegate; + friend class CFWL_ToolTipTimer; +}; +class CFWL_ToolTipImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_ToolTipImpDelegate(CFWL_ToolTipImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + void OnKeyDown(CFWL_MsgKey* pMsg); + CFWL_ToolTipImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FWL_TOOLTIPCTRLIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp b/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp index 536d7d6d38..19aff16250 100644 --- a/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp +++ b/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h" +#include "xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h" static CBC_CodeBase* FX_Barcode_CreateBarCodeEngineObject(BC_TYPE type) { switch (type) { diff --git a/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h b/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h new file mode 100644 index 0000000000..1942d7ff64 --- /dev/null +++ b/xfa/src/fwl/src/basewidget/fxmath_barcodeimp.h @@ -0,0 +1,56 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_FXMATH_BARCODEIMP_H_ +#define XFA_SRC_FWL_SRC_BASEWIDGET_FXMATH_BARCODEIMP_H_ + +#include "xfa/include/fwl/basewidget/fxmath_barcode.h" + +class CFX_Barcode : public IFX_Barcode { + public: + CFX_Barcode(); + ~CFX_Barcode(); + FX_BOOL Crreate(BC_TYPE type); + virtual void Release(); + virtual BC_TYPE GetType(); + virtual FX_BOOL Encode(const CFX_WideStringC& contents, + FX_BOOL isDevice, + int32_t& e); + virtual FX_BOOL RenderDevice(CFX_RenderDevice* device, + const CFX_Matrix* matirx, + int32_t& e); + virtual FX_BOOL RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e); + virtual CFX_WideString Decode(uint8_t* buf, + int32_t width, + int32_t height, + int32_t& errorCode); + virtual CFX_WideString Decode(CFX_DIBitmap* pBitmap, int32_t& errorCode); + virtual FX_BOOL SetCharEncoding(BC_CHAR_ENCODING encoding); + virtual FX_BOOL SetModuleHeight(int32_t moduleHeight); + virtual FX_BOOL SetModuleWidth(int32_t moduleWidth); + virtual FX_BOOL SetHeight(int32_t height); + virtual FX_BOOL SetWidth(int32_t width); + virtual FX_BOOL CheckContentValidity(const CFX_WideStringC& contents); + virtual FX_BOOL SetPrintChecksum(FX_BOOL checksum); + virtual FX_BOOL SetDataLength(int32_t length); + virtual FX_BOOL SetCalChecksum(int32_t state); + virtual FX_BOOL SetFont(CFX_Font* pFont); + virtual FX_BOOL SetFontSize(FX_FLOAT size); + virtual FX_BOOL SetFontStyle(int32_t style); + virtual FX_BOOL SetFontColor(FX_ARGB color); + virtual FX_BOOL SetTextLocation(BC_TEXT_LOC location); + virtual FX_BOOL SetWideNarrowRatio(int32_t ratio); + virtual FX_BOOL SetStartChar(FX_CHAR start); + virtual FX_BOOL SetEndChar(FX_CHAR end); + virtual FX_BOOL SetVersion(int32_t version); + virtual FX_BOOL SetErrorCorrectionLevel(int32_t level); + virtual FX_BOOL SetTruncated(FX_BOOL truncated); + + protected: + CBC_CodeBase* m_pBCEngine; +}; + +#endif // XFA_SRC_FWL_SRC_BASEWIDGET_FXMATH_BARCODEIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h b/xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h deleted file mode 100644 index 1425f6b3b5..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_barcodeimp.h +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_BARCODEIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_BARCODEIMP_H_ - -#include "xfa/include/fwl/basewidget/fwl_barcode.h" -#include "xfa/include/fwl/basewidget/fwl_scrollbar.h" -#include "xfa/include/fwl/basewidget/fxmath_barcode.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" - -class CFWL_WidgetImpProperties; -class CFWL_BarcodeImpDelegate; -class IFWL_Widget; - -#define XFA_BCS_NeedUpdate 0x0001 -#define XFA_BCS_EncodeSuccess 0x0002 - -class CFWL_BarcodeImp : public CFWL_EditImp { - public: - CFWL_BarcodeImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_BarcodeImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_ERR SetText(const CFX_WideString& wsText); - virtual void SetType(BC_TYPE type); - FX_BOOL IsProtectedType(); - - protected: - void GenerateBarcodeImageCache(); - void CreateBarcodeEngine(); - void ReleaseBarcodeEngine(); - IFX_Barcode* m_pBarcodeEngine; - FX_DWORD m_dwStatus; - BC_TYPE m_type; - friend class CFWL_BarcodeImpDelegate; -}; - -class CFWL_BarcodeImpDelegate : public CFWL_EditImpDelegate { - public: - CFWL_BarcodeImpDelegate(CFWL_BarcodeImp* pOwner); - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_BARCODEIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_caretimp.h b/xfa/src/fwl/src/basewidget/include/fwl_caretimp.h deleted file mode 100644 index 867efe545c..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_caretimp.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_CARETIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_CARETIMP_H_ - -#include "xfa/include/fwl/core/fwl_timer.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_CaretImpDelegate; - -class CFWL_CaretImp : public CFWL_WidgetImp { - public: - CFWL_CaretImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_CaretImp(); - - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - - virtual FWL_ERR ShowCaret(FX_BOOL bFlag = TRUE); - virtual FWL_ERR GetFrequency(FX_DWORD& elapse); - virtual FWL_ERR SetFrequency(FX_DWORD elapse); - virtual FWL_ERR SetColor(CFX_Color crFill); - - protected: - FX_BOOL DrawCaretBK(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - class CFWL_CaretTimer : public IFWL_Timer { - public: - explicit CFWL_CaretTimer(CFWL_CaretImp* pCaret); - ~CFWL_CaretTimer() override {} - int32_t Run(FWL_HTIMER hTimer) override; - CFWL_CaretImp* const m_pCaret; - }; - CFWL_CaretTimer* m_pTimer; - FWL_HTIMER m_hTimer; - FX_DWORD m_dwElapse; - CFX_Color m_crFill; - FX_BOOL m_bSetColor; - friend class CFWL_CaretImpDelegate; - friend class CFWL_CaretTimer; -}; -class CFWL_CaretImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_CaretImpDelegate(CFWL_CaretImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - CFWL_CaretImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_CARETIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h b/xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h deleted file mode 100644 index 3167f9466e..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_checkboximp.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_CHECKBOXIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_CHECKBOXIMP_H_ - -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_CheckBoxImpDelegate; - -class CFWL_CheckBoxImp : public CFWL_WidgetImp { - public: - CFWL_CheckBoxImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_CheckBoxImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual int32_t GetCheckState(); - virtual FWL_ERR SetCheckState(int32_t iCheck); - - protected: - void Layout(); - FX_DWORD GetPartStates(); - void UpdateTextOutStyles(); - void NextStates(); - CFX_RectF m_rtClient; - CFX_RectF m_rtBox; - CFX_RectF m_rtCaption; - CFX_RectF m_rtFocus; - FX_DWORD m_dwTTOStyles; - int32_t m_iTTOAlign; - FX_BOOL m_bBtnDown; - friend class CFWL_CheckBoxImpDelegate; -}; -class CFWL_CheckBoxImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_CheckBoxImpDelegate(CFWL_CheckBoxImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnActivate(CFWL_Message* pMsg); - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - void OnKeyDown(CFWL_MsgKey* pMsg); - CFWL_CheckBoxImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_CHECKBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h b/xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h deleted file mode 100644 index 68514262a1..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_comboboximp.h +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_COMBOBOXIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_COMBOBOXIMP_H_ - -#include - -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_listboximp.h" - -class CFWL_WidgetImp; -class CFWL_WidgetImpProperties; -class CFWL_WidgetImpDelegate; -class CFWL_ListBoxImp; -class CFWL_ListBoxImpDelegate; -class CFWL_FormProxyImp; -class IFWL_Widget; -class CFWL_ComboEditImp; -class CFWL_ComboEditImpDelegate; -class CFWL_ComboListImp; -class CFWL_ComboListImpDelegate; -class CFWL_ComboBoxImp; -class CFWL_ComboBoxImpDelegate; -class CFWL_ComboProxyImpDelegate; -class CFWL_ComboEditImp : public CFWL_EditImp { - public: - CFWL_ComboEditImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - - void ClearSelected(); - void SetSelected(); - void EndCaret(); - void FlagFocus(FX_BOOL bSet); - - protected: - void SetComboBoxFocus(FX_BOOL bSet); - CFWL_ComboBoxImp* m_pOuter; - friend class CFWL_ComboEditImpDelegate; -}; -class CFWL_ComboEditImpDelegate : public CFWL_EditImpDelegate { - public: - CFWL_ComboEditImpDelegate(CFWL_ComboEditImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - - protected: - CFWL_ComboEditImp* m_pOwner; -}; -class CFWL_ComboListImp : public CFWL_ListBoxImp { - public: - CFWL_ComboListImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - int32_t MatchItem(const CFX_WideString& wsMatch); - void ChangeSelected(int32_t iSel); - int32_t CountItems(); - void GetItemRect(int32_t nIndex, CFX_RectF& rtItem); - void ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy); - void SetFocus(FX_BOOL bSet); - FX_BOOL m_bNotifyOwner; - friend class CFWL_ComboListImpDelegate; - friend class CFWL_ComboBoxImp; -}; -class CFWL_ComboListImpDelegate : public CFWL_ListBoxImpDelegate { - public: - CFWL_ComboListImpDelegate(CFWL_ComboListImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - - protected: - void OnDropListFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - int32_t OnDropListMouseMove(CFWL_MsgMouse* pMsg); - int32_t OnDropListLButtonDown(CFWL_MsgMouse* pMsg); - int32_t OnDropListLButtonUp(CFWL_MsgMouse* pMsg); - int32_t OnDropListKey(CFWL_MsgKey* pKey); - void OnDropListKeyDown(CFWL_MsgKey* pKey); - CFWL_ComboListImp* m_pOwner; -}; -class CFWL_ComboBoxImp : public CFWL_WidgetImp { - public: - CFWL_ComboBoxImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_ComboBoxImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded, - FX_DWORD dwStylesExRemoved); - virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); - virtual FWL_ERR Update(); - virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); - virtual int32_t GetCurSel(); - virtual FWL_ERR SetCurSel(int32_t iSel); - virtual FWL_ERR SetEditText(const CFX_WideString& wsText); - virtual int32_t GetEditTextLength() const; - virtual FWL_ERR GetEditText(CFX_WideString& wsText, - int32_t nStart = 0, - int32_t nCount = -1) const; - virtual FWL_ERR SetEditSelRange(int32_t nStart, int32_t nCount = -1); - virtual int32_t GetEditSelRange(int32_t nIndex, int32_t& nStart); - virtual int32_t GetEditLimit(); - virtual FWL_ERR SetEditLimit(int32_t nLimit); - virtual FWL_ERR EditDoClipboard(int32_t iCmd); - virtual FX_BOOL EditRedo(const CFX_ByteStringC& bsRecord); - virtual FX_BOOL EditUndo(const CFX_ByteStringC& bsRecord); - virtual IFWL_ListBox* GetListBoxt(); - virtual FX_BOOL AfterFocusShowDropList(); - virtual FX_ERR OpenDropDownList(FX_BOOL bActivate); - virtual FX_BOOL EditCanUndo(); - virtual FX_BOOL EditCanRedo(); - virtual FX_BOOL EditUndo(); - virtual FX_BOOL EditRedo(); - virtual FX_BOOL EditCanCopy(); - virtual FX_BOOL EditCanCut(); - virtual FX_BOOL EditCanSelectAll(); - virtual FX_BOOL EditCopy(CFX_WideString& wsCopy); - virtual FX_BOOL EditCut(CFX_WideString& wsCut); - virtual FX_BOOL EditPaste(const CFX_WideString& wsPaste); - virtual FX_BOOL EditSelectAll(); - virtual FX_BOOL EditDelete(); - virtual FX_BOOL EditDeSelect(); - virtual FWL_ERR GetBBox(CFX_RectF& rect); - virtual FWL_ERR EditModifyStylesEx(FX_DWORD dwStylesExAdded, - FX_DWORD dwStylesExRemoved); - - protected: - void DrawStretchHandler(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix); - FX_FLOAT GetListHeight(); - void ShowDropList(FX_BOOL bActivate); - FX_BOOL IsDropListShowed(); - FX_BOOL IsDropDownStyle() const; - void MatchEditText(); - void SynchrEditText(int32_t iListItem); - void Layout(); - void ReSetTheme(); - void ReSetEditAlignment(); - void ReSetListItemAlignment(); - void ProcessSelChanged(FX_BOOL bLButtonUp); - void InitProxyForm(); - FWL_ERR DisForm_Initialize(); - void DisForm_InitComboList(); - void DisForm_InitComboEdit(); - void DisForm_ShowDropList(FX_BOOL bActivate); - FX_BOOL DisForm_IsDropListShowed(); - FWL_ERR DisForm_ModifyStylesEx(FX_DWORD dwStylesExAdded, - FX_DWORD dwStylesExRemoved); - FWL_ERR DisForm_Update(); - FX_DWORD DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy); - FWL_ERR DisForm_DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - FWL_ERR DisForm_GetBBox(CFX_RectF& rect); - void DisForm_Layout(); - - CFX_RectF m_rtClient; - CFX_RectF m_rtContent; - CFX_RectF m_rtBtn; - CFX_RectF m_rtList; - CFX_RectF m_rtProxy; - CFX_RectF m_rtHandler; - std::unique_ptr m_pEdit; - std::unique_ptr m_pListBox; - IFWL_Form* m_pForm; - FX_BOOL m_bLButtonDown; - FX_BOOL m_bUpFormHandler; - int32_t m_iCurSel; - int32_t m_iBtnState; - FX_FLOAT m_fComboFormHandler; - FX_FLOAT m_fItemHeight; - FX_BOOL m_bNeedShowList; - CFWL_FormProxyImp* m_pProxy; - CFWL_ComboProxyImpDelegate* m_pListProxyDelegate; - - friend class CFWL_ComboListImp; - friend class CFWL_ComboEditImp; - friend class CFWL_ComboEditImpDelegate; - friend class CFWL_ComboListImpDelegate; - friend class CFWL_ComboBoxImpDelegate; - friend class CFWL_ComboProxyImpDelegate; -}; -class CFWL_ComboBoxImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_ComboBoxImpDelegate(CFWL_ComboBoxImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - void OnKey(CFWL_MsgKey* pMsg); - void DoSubCtrlKey(CFWL_MsgKey* pMsg); - - protected: - int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage); - void DisForm_OnLButtonDown(CFWL_MsgMouse* pMsg); - void DisForm_OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void DisForm_OnKey(CFWL_MsgKey* pMsg); - - protected: - CFWL_ComboBoxImp* m_pOwner; - friend class CFWL_ComboEditImpDelegate; - friend class CFWL_ComboListImpDelegate; -}; -class CFWL_ComboProxyImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_ComboProxyImpDelegate(IFWL_Form* pForm, CFWL_ComboBoxImp* pComboBox); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - void Reset() { m_bLButtonUpSelf = FALSE; } - - protected: - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnDeactive(CFWL_MsgDeactivate* pMsg); - void OnFocusChanged(CFWL_MsgKillFocus* pMsg, FX_BOOL bSet); - FX_BOOL m_bLButtonDown; - FX_BOOL m_bLButtonUpSelf; - FX_FLOAT m_fStartPos; - IFWL_Form* m_pForm; - CFWL_ComboBoxImp* m_pComboBox; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_COMBOBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h b/xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h deleted file mode 100644 index 48556aee7d..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_datetimepickerimp.h +++ /dev/null @@ -1,235 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_DATETIMEPICKERIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_DATETIMEPICKERIMP_H_ - -#include - -#include "xfa/include/fwl/core/fwl_form.h" -#include "xfa/include/fwl/core/fwl_theme.h" -#include "xfa/include/fwl/basewidget/fwl_datetimepicker.h" -#include "xfa/include/fwl/basewidget/fwl_edit.h" -#include "xfa/include/fwl/basewidget/fwl_monthcalendar.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_editimp.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h" - -class CFWL_WidgetImp; -class CFWL_WidgetImpProperties; -class CFWL_WidgetImpDelegate; -class CFWL_DateTimeEdit; -class CFWL_DateTimeEditImpDelegate; -class CFWL_DateTimeCalendar; -class CFWL_DateTimeCalendarImpDelegate; -class CFWL_DateTimePickerImp; -class CFWL_DateTimePickerImpDelegate; - -class IFWL_DateTimeForm : public IFWL_Form { - public: - static IFWL_DateTimeForm* Create(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - - protected: - IFWL_DateTimeForm() {} -}; - -class IFWL_DateTimeCalender : public IFWL_MonthCalendar { - public: - static IFWL_DateTimeCalender* Create( - const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - - protected: - IFWL_DateTimeCalender() {} -}; - -class IFWL_DateTimeEdit : public IFWL_Edit { - public: - static IFWL_DateTimeEdit* Create(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - - protected: - IFWL_DateTimeEdit() {} -}; - -class CFWL_DateTimeEdit : public CFWL_EditImp { - public: - CFWL_DateTimeEdit(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - - protected: - friend class CFWL_DateTimeEditImpDelegate; -}; -class CFWL_DateTimeEditImpDelegate : public CFWL_EditImpDelegate { - public: - CFWL_DateTimeEditImpDelegate(CFWL_DateTimeEdit* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - - private: - int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage); - - protected: - CFWL_DateTimeEdit* m_pOwner; -}; -class CFWL_DateTimeCalendar : public CFWL_MonthCalendarImp { - public: - CFWL_DateTimeCalendar(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - - protected: - friend class CFWL_DateTimeCalendarImpDelegate; -}; -class CFWL_DateTimeCalendarImpDelegate : public CFWL_MonthCalendarImpDelegate { - public: - CFWL_DateTimeCalendarImpDelegate(CFWL_DateTimeCalendar* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - - void OnLButtonDownEx(CFWL_MsgMouse* pMsg); - void OnLButtonUpEx(CFWL_MsgMouse* pMsg); - void OnMouseMoveEx(CFWL_MsgMouse* pMsg); - - private: - int32_t DisForm_OnProcessMessage(CFWL_Message* pMessage); - void DisForm_OnLButtonUpEx(CFWL_MsgMouse* pMsg); - - protected: - CFWL_DateTimeCalendar* m_pOwner; - FX_BOOL m_bFlag; -}; -class CFWL_DateTimePickerImp : public CFWL_WidgetImp { - public: - CFWL_DateTimePickerImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_DateTimePickerImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pTP); - virtual FWL_ERR GetCurSel(int32_t& iYear, int32_t& iMonth, int32_t& iDay); - virtual FWL_ERR SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay); - virtual FWL_ERR SetEditText(const CFX_WideString& wsText); - virtual FWL_ERR GetEditText(CFX_WideString& wsText, - int32_t nStart = 0, - int32_t nCount = -1) const; - - public: - virtual FX_BOOL CanUndo(); - virtual FX_BOOL CanRedo(); - virtual FX_BOOL Undo(); - virtual FX_BOOL Redo(); - virtual FX_BOOL CanCopy(); - virtual FX_BOOL CanCut(); - virtual FX_BOOL CanSelectAll(); - virtual FX_BOOL Copy(CFX_WideString& wsCopy); - virtual FX_BOOL Cut(CFX_WideString& wsCut); - virtual FX_BOOL Paste(const CFX_WideString& wsPaste); - virtual FX_BOOL SelectAll(); - virtual FX_BOOL Delete(); - virtual FX_BOOL DeSelect(); - virtual FWL_ERR GetBBox(CFX_RectF& rect); - virtual FWL_ERR SetEditLimit(int32_t nLimit); - virtual FWL_ERR ModifyEditStylesEx(FX_DWORD dwStylesExAdded, - FX_DWORD dwStylesExRemoved); - - public: - IFWL_DateTimeEdit* GetDataTimeEdit(); - - protected: - void DrawDropDownButton(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void FormatDateString(int32_t iYear, - int32_t iMonth, - int32_t iDay, - CFX_WideString& wsText); - void ShowMonthCalendar(FX_BOOL bActivate); - FX_BOOL IsMonthCalendarShowed(); - void ReSetEditAlignment(); - void InitProxyForm(); - void ProcessSelChanged(int32_t iYear, int32_t iMonth, int32_t iDay); - - private: - FWL_ERR DisForm_Initialize(); - void DisForm_InitDateTimeCalendar(); - void DisForm_InitDateTimeEdit(); - FX_BOOL DisForm_IsMonthCalendarShowed(); - void DisForm_ShowMonthCalendar(FX_BOOL bActivate); - FX_DWORD DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy); - FX_BOOL DisForm_IsNeedShowButton(); - FWL_ERR DisForm_Update(); - FWL_ERR DisForm_GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - FWL_ERR DisForm_GetBBox(CFX_RectF& rect); - FWL_ERR DisForm_DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - - protected: - CFX_RectF m_rtBtn; - CFX_RectF m_rtClient; - int32_t m_iBtnState; - int32_t m_iYear; - int32_t m_iMonth; - int32_t m_iDay; - FX_BOOL m_bLBtnDown; - std::unique_ptr m_pEdit; - std::unique_ptr m_pMonthCal; - std::unique_ptr m_pForm; - FX_FLOAT m_fBtn; - class CFWL_MonthCalendarImpDP : public IFWL_MonthCalendarDP { - public: - CFWL_MonthCalendarImpDP() { - m_iCurYear = 2010; - m_iCurMonth = 3; - m_iCurDay = 29; - } - virtual FWL_ERR GetCaption(IFWL_Widget* pWidget, - CFX_WideString& wsCaption) { - return FWL_ERR_Succeeded; - } - virtual int32_t GetCurDay(IFWL_Widget* pWidget) { return m_iCurDay; } - virtual int32_t GetCurMonth(IFWL_Widget* pWidget) { return m_iCurMonth; } - virtual int32_t GetCurYear(IFWL_Widget* pWidget) { return m_iCurYear; } - int32_t m_iCurDay; - int32_t m_iCurYear; - int32_t m_iCurMonth; - }; - - CFWL_MonthCalendarImpDP m_MonthCalendarDP; - friend class CFWL_DateTimeEditImpDelegate; - friend class CFWL_DateTimeCalendar; - friend class CFWL_DateTimeCalendarImpDelegate; - friend class CFWL_DateTimePickerImpDelegate; -}; -class CFWL_DateTimePickerImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_DateTimePickerImpDelegate(CFWL_DateTimePickerImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - - CFWL_DateTimePickerImp* m_pOwner; - - private: - void DisForm_OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_DATETIMEPICKERIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_editimp.h b/xfa/src/fwl/src/basewidget/include/fwl_editimp.h deleted file mode 100644 index a19dd055d0..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_editimp.h +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_EDITIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_EDITIMP_H_ - -#include -#include - -#include "xfa/include/fwl/basewidget/fwl_scrollbar.h" -#include "xfa/src/fee/include/ifde_txtedtengine.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class CFWL_WidgetImpDelegate; -class IFWL_Caret; -class CFWL_EditImp; -class CFWL_EditImpDelegate; - -class CFWL_EditImp : public CFWL_WidgetImp, public IFDE_TxtEdtEventSink { - public: - CFWL_EditImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); - ~CFWL_EditImp() override; - - // CFWL_WidgetImp: - FWL_ERR GetClassName(CFX_WideString& wsClass) const override; - FX_DWORD GetClassID() const override; - FWL_ERR Initialize() override; - FWL_ERR Finalize() override; - FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE) override; - FWL_ERR SetWidgetRect(const CFX_RectF& rect) override; - FWL_ERR Update() override; - FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy) override; - FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE) override; - FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) override; - - virtual FWL_ERR SetText(const CFX_WideString& wsText); - virtual int32_t GetTextLength() const; - virtual FWL_ERR GetText(CFX_WideString& wsText, - int32_t nStart = 0, - int32_t nCount = -1) const; - virtual FWL_ERR ClearText(); - virtual int32_t GetCaretPos() const; - virtual int32_t SetCaretPos(int32_t nIndex, FX_BOOL bBefore = TRUE); - virtual FWL_ERR AddSelRange(int32_t nStart, int32_t nCount = -1); - virtual int32_t CountSelRanges(); - virtual int32_t GetSelRange(int32_t nIndex, int32_t& nStart); - virtual FWL_ERR ClearSelections(); - virtual int32_t GetLimit(); - virtual FWL_ERR SetLimit(int32_t nLimit); - virtual FWL_ERR SetAliasChar(FX_WCHAR wAlias); - virtual FWL_ERR Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLen); - virtual FWL_ERR DeleteSelections(); - virtual FWL_ERR DeleteRange(int32_t nStart, int32_t nCount = -1); - virtual FWL_ERR ReplaceSelections(const CFX_WideStringC& wsReplace); - virtual FWL_ERR Replace(int32_t nStart, - int32_t nLen, - const CFX_WideStringC& wsReplace); - virtual FWL_ERR DoClipboard(int32_t iCmd); - virtual FX_BOOL Copy(CFX_WideString& wsCopy); - virtual FX_BOOL Cut(CFX_WideString& wsCut); - virtual FX_BOOL Paste(const CFX_WideString& wsPaste); - virtual FX_BOOL Delete(); - virtual FX_BOOL Redo(const CFX_ByteStringC& bsRecord); - virtual FX_BOOL Undo(const CFX_ByteStringC& bsRecord); - virtual FX_BOOL Undo(); - virtual FX_BOOL Redo(); - virtual FX_BOOL CanUndo(); - virtual FX_BOOL CanRedo(); - virtual FWL_ERR SetTabWidth(FX_FLOAT fTabWidth, FX_BOOL bEquidistant); - virtual FWL_ERR SetOuter(IFWL_Widget* pOuter); - virtual FWL_ERR SetNumberRange(int32_t iMin, int32_t iMax); - void On_CaretChanged(IFDE_TxtEdtEngine* pEdit, - int32_t nPage, - FX_BOOL bVisible = true) override; - void On_TextChanged(IFDE_TxtEdtEngine* pEdit, - FDE_TXTEDT_TEXTCHANGE_INFO& ChangeInfo) override; - void On_PageCountChanged(IFDE_TxtEdtEngine* pEdit) override {} - void On_SelChanged(IFDE_TxtEdtEngine* pEdit) override; - FX_BOOL On_PageLoad(IFDE_TxtEdtEngine* pEdit, - int32_t nPageIndex, - int32_t nPurpose) override; - FX_BOOL On_PageUnload(IFDE_TxtEdtEngine* pEdit, - int32_t nPageIndex, - int32_t nPurpose) override; - FX_BOOL On_PageChange(IFDE_TxtEdtEngine* pEdit, int32_t nPageIndex) override { - return TRUE; - } - void On_AddDoRecord(IFDE_TxtEdtEngine* pEdit, - const CFX_ByteStringC& bsDoRecord) override; - FX_BOOL On_ValidateField(IFDE_TxtEdtEngine* pEdit, - int32_t nBlockIndex, - int32_t nFieldIndex, - const CFX_WideString& wsFieldText, - int32_t nCharIndex) override; - FX_BOOL On_ValidateBlock(IFDE_TxtEdtEngine* pEdit, - int32_t nBlockIndex) override; - FX_BOOL On_GetBlockFormatText(IFDE_TxtEdtEngine* pEdit, - int32_t nBlockIndex, - CFX_WideString& wsBlockText) override; - FX_BOOL On_Validate(IFDE_TxtEdtEngine* pEdit, - CFX_WideString& wsText) override; - virtual FWL_ERR SetBackgroundColor(FX_DWORD color); - virtual FWL_ERR SetFont(const CFX_WideString& wsFont, FX_FLOAT fSize); - void SetScrollOffset(FX_FLOAT fScrollOffset); - FX_BOOL GetSuggestWords(CFX_PointF pointf, - std::vector& sSuggest); - FX_BOOL ReplaceSpellCheckWord(CFX_PointF pointf, - const CFX_ByteStringC& bsReplace); - - protected: - void DrawTextBk(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void DrawContent(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void UpdateEditEngine(); - void UpdateEditParams(); - void UpdateEditLayout(); - FX_BOOL UpdateOffset(); - FX_BOOL UpdateOffset(IFWL_ScrollBar* pScrollBar, FX_FLOAT fPosChanged); - void UpdateVAlignment(); - void UpdateCaret(); - IFWL_ScrollBar* UpdateScroll(); - void Layout(); - void LayoutScrollBar(); - void DeviceToEngine(CFX_PointF& pt); - void InitScrollBar(FX_BOOL bVert = TRUE); - void InitEngine(); - virtual void ShowCaret(FX_BOOL bVisible, CFX_RectF* pRect = NULL); - FX_BOOL ValidateNumberChar(FX_WCHAR cNum); - void InitCaret(); - void ClearRecord(); - FX_BOOL IsShowScrollBar(FX_BOOL bVert); - FX_BOOL IsContentHeightOverflow(); - int32_t AddDoRecord(const CFX_ByteStringC& bsDoRecord); - void ProcessInsertError(int32_t iError); - - void DrawSpellCheck(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - void AddSpellCheckObj(CFX_Path& PathData, - int32_t nStart, - int32_t nCount, - FX_FLOAT fOffSetX, - FX_FLOAT fOffSetY); - int32_t GetWordAtPoint(CFX_PointF pointf, int32_t& nCount); - CFX_RectF m_rtClient; - CFX_RectF m_rtEngine; - CFX_RectF m_rtStatic; - FX_FLOAT m_fVAlignOffset; - FX_FLOAT m_fScrollOffsetX; - FX_FLOAT m_fScrollOffsetY; - IFDE_TxtEdtEngine* m_pEdtEngine; - FX_BOOL m_bLButtonDown; - int32_t m_nSelStart; - int32_t m_nLimit; - FX_FLOAT m_fSpaceAbove; - FX_FLOAT m_fSpaceBelow; - FX_FLOAT m_fFontSize; - FX_ARGB m_argbSel; - FX_BOOL m_bSetRange; - int32_t m_iMin; - int32_t m_iMax; - std::unique_ptr m_pVertScrollBar; - std::unique_ptr m_pHorzScrollBar; - std::unique_ptr m_pCaret; - CFX_WideString m_wsCache; - friend class CFWL_TxtEdtEventSink; - friend class CFWL_EditImpDelegate; - FX_DWORD m_backColor; - FX_BOOL m_updateBackColor; - CFX_WideString m_wsFont; - CFX_ByteStringArray m_RecordArr; - int32_t m_iCurRecord; - int32_t m_iMaxRecord; -}; - -class CFWL_EditImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_EditImpDelegate(CFWL_EditImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void DoActivate(CFWL_MsgActivate* pMsg); - void DoDeactivate(CFWL_MsgDeactivate* pMsg); - void DoButtonDown(CFWL_MsgMouse* pMsg); - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnButtonDblClk(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnKeyDown(CFWL_MsgKey* pMsg); - void OnChar(CFWL_MsgKey* pMsg); - FX_BOOL OnScroll(IFWL_ScrollBar* pScrollBar, FX_DWORD dwCode, FX_FLOAT fPos); - void DoCursor(CFWL_MsgMouse* pMsg); - CFWL_EditImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_EDITIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h b/xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h deleted file mode 100644 index c26d65a227..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_FORMPROXYIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_FORMPROXYIMP_H_ - -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class CFWL_FormProxyImpDelegate; - -class CFWL_FormProxyImp : public CFWL_FormImp { - public: - CFWL_FormProxyImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_FormProxyImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - - protected: - friend class CFWL_FormProxyImpDelegate; -}; -class CFWL_FormProxyImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_FormProxyImpDelegate(CFWL_FormProxyImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - - protected: - CFWL_FormProxyImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_FORMPROXYIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_listboximp.h b/xfa/src/fwl/src/basewidget/include/fwl_listboximp.h deleted file mode 100644 index fa1dd21a10..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_listboximp.h +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_LISTBOXIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_LISTBOXIMP_H_ - -#include - -#include "xfa/include/fwl/basewidget/fwl_combobox.h" -#include "xfa/include/fwl/basewidget/fwl_edit.h" -#include "xfa/include/fwl/basewidget/fwl_listbox.h" -#include "xfa/include/fwl/basewidget/fwl_scrollbar.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_ListBoxImpDelegate; - -class CFWL_ListBoxImp : public CFWL_WidgetImp { - public: - CFWL_ListBoxImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_ListBoxImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); - virtual int32_t CountSelItems(); - virtual FWL_HLISTITEM GetSelItem(int32_t nIndexSel); - virtual int32_t GetSelIndex(int32_t nIndex); - virtual FWL_ERR SetSelItem(FWL_HLISTITEM hItem, FX_BOOL bSelect = TRUE); - virtual FWL_ERR GetItemText(FWL_HLISTITEM hItem, CFX_WideString& wsText); - virtual FWL_ERR GetScrollPos(FX_FLOAT& fPos, FX_BOOL bVert = TRUE); - virtual FWL_ERR* Sort(IFWL_ListBoxCompare* pCom); - - protected: - FWL_HLISTITEM GetItem(FWL_HLISTITEM hItem, FX_DWORD dwKeyCode); - void SetSelection(FWL_HLISTITEM hStart, - FWL_HLISTITEM hEnd, - FX_BOOL bSelected); - void SetSelectionDirect(FWL_HLISTITEM hItem, FX_BOOL bSelect); - FX_BOOL IsItemSelected(FWL_HLISTITEM hItem); - void ClearSelection(); - void SelectAll(); - FWL_HLISTITEM GetFocusedItem(); - void SetFocusItem(FWL_HLISTITEM hItem); - FWL_HLISTITEM GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy); - FX_BOOL GetItemCheckRect(FWL_HLISTITEM hItem, CFX_RectF& rtCheck); - FX_BOOL SetItemChecked(FWL_HLISTITEM hItem, FX_BOOL bChecked); - FX_BOOL GetItemChecked(FWL_HLISTITEM hItem); - FX_BOOL ScrollToVisible(FWL_HLISTITEM hItem); - void DrawBkground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void DrawItems(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void DrawItem(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - FWL_HLISTITEM hItem, - int32_t Index, - const CFX_RectF& rtItem, - const CFX_Matrix* pMatrix = NULL); - void DrawStatic(CFX_Graphics* pGraphics, IFWL_ThemeProvider* pTheme); - CFX_SizeF CalcSize(FX_BOOL bAutoSize = FALSE); - void GetItemSize(CFX_SizeF& size, - FWL_HLISTITEM hItem, - FX_FLOAT fWidth, - FX_FLOAT fHeight, - FX_BOOL bAutoSize = FALSE); - FX_FLOAT GetMaxTextWidth(); - FX_FLOAT GetScrollWidth(); - FX_FLOAT GetItemHeigt(); - void InitScrollBar(FX_BOOL bVert = TRUE); - void SortItem(); - FX_BOOL IsShowScrollBar(FX_BOOL bVert); - void ProcessSelChanged(); - - protected: - CFX_RectF m_rtClient; - CFX_RectF m_rtStatic; - CFX_RectF m_rtConent; - std::unique_ptr m_pHorzScrollBar; - std::unique_ptr m_pVertScrollBar; - FX_DWORD m_dwTTOStyles; - int32_t m_iTTOAligns; - FWL_HLISTITEM m_hAnchor; - FX_FLOAT m_fItemHeight; - FX_FLOAT m_fScorllBarWidth; - FX_BOOL m_bLButtonDown; - IFWL_ThemeProvider* m_pScrollBarTP; - friend class CFWL_ListBoxImpDelegate; -}; -class CFWL_ListBoxImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_ListBoxImpDelegate(CFWL_ListBoxImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseWheel(CFWL_MsgMouseWheel* pMsg); - void OnKeyDown(CFWL_MsgKey* pMsg); - void OnVK(FWL_HLISTITEM hItem, FX_BOOL bShift, FX_BOOL bCtrl); - FX_BOOL OnScroll(IFWL_ScrollBar* pScrollBar, FX_DWORD dwCode, FX_FLOAT fPos); - void DispatchSelChangedEv(); - CFWL_ListBoxImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_LISTBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h b/xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h deleted file mode 100644 index 57db256baf..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_monthcalendarimp.h +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_MONTHCALENDARIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_MONTHCALENDARIMP_H_ - -#include "xfa/src/fgas/include/fx_datetime.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_MonthCalendarImpDelegate; - -extern uint8_t FX_DaysInMonth(int32_t iYear, uint8_t iMonth); - -class CFWL_MonthCalendarImp : public CFWL_WidgetImp { - public: - CFWL_MonthCalendarImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_MonthCalendarImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual int32_t CountSelect(); - virtual FX_BOOL GetSelect(int32_t& iYear, - int32_t& iMonth, - int32_t& iDay, - int32_t nIndex = 0); - virtual FX_BOOL SetSelect(int32_t iYear, int32_t iMonth, int32_t iDay); - - protected: - struct DATE { - DATE() : iYear(0), iMonth(0), iDay(0) {} - DATE(int32_t year, int32_t month, int32_t day) - : iYear(year), iMonth(month), iDay(day) {} - FX_BOOL operator<(const DATE& right) { - if (iYear < right.iYear) { - return TRUE; - } else if (iYear == right.iYear) { - if (iMonth < right.iMonth) { - return TRUE; - } else if (iMonth == right.iMonth) { - return iDay < right.iDay; - } - } - return FALSE; - } - FX_BOOL operator>(const DATE& right) { - if (iYear > right.iYear) { - return TRUE; - } else if (iYear == right.iYear) { - if (iMonth > right.iMonth) { - return TRUE; - } else if (iMonth == right.iMonth) { - return iDay > right.iDay; - } - } - return FALSE; - } - int32_t iYear; - int32_t iMonth; - int32_t iDay; - }; - - void DrawBkground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawHeadBK(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawLButton(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawRButton(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawCaption(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawSeperator(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawDatesInBK(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawWeek(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawWeekNumber(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawWeekNumberSep(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawToday(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawDatesIn(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawDatesOut(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawDatesInCircle(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawTodayCircle(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - CFX_SizeF CalcSize(FX_BOOL bAutoSize = FALSE); - void LayOut(); - void CalcHeadSize(); - void CalcTodaySize(); - void CalDateItem(); - void GetCapValue(); - int32_t CalWeekNumber(int32_t iYear, int32_t iMonth, int32_t iDay); - FX_BOOL GetMinDate(int32_t& iYear, int32_t& iMonth, int32_t& iDay); - FX_BOOL SetMinDate(int32_t iYear, int32_t iMonth, int32_t iDay); - FX_BOOL GetMaxDate(int32_t& iYear, int32_t& iMonth, int32_t& iDay); - FX_BOOL SetMaxDate(int32_t iYear, int32_t iMonth, int32_t iDay); - FX_BOOL InitDate(); - void ClearDateItem(); - void ReSetDateItem(); - FX_BOOL NextMonth(); - FX_BOOL PrevMonth(); - void ChangeToMonth(int32_t iYear, int32_t iMonth); - FX_BOOL RemoveSelDay(int32_t iDay, FX_BOOL bAll = FALSE); - FX_BOOL AddSelDay(int32_t iDay); - FX_BOOL JumpToToday(); - void GetHeadText(int32_t iYear, int32_t iMonth, CFX_WideString& wsHead); - void GetTodayText(int32_t iYear, - int32_t iMonth, - int32_t iDay, - CFX_WideString& wsToday); - int32_t GetDayAtPoint(FX_FLOAT x, FX_FLOAT y); - FX_BOOL GetDayRect(int32_t iDay, CFX_RectF& rtDay); - - FX_BOOL m_bInit; - CFX_RectF m_rtHead; - CFX_RectF m_rtWeek; - CFX_RectF m_rtLBtn; - CFX_RectF m_rtRBtn; - CFX_RectF m_rtDates; - CFX_RectF m_rtHSep; - CFX_RectF m_rtHeadText; - CFX_RectF m_rtToday; - CFX_RectF m_rtTodayFlag; - CFX_RectF m_rtWeekNum; - CFX_RectF m_rtWeekNumSep; - CFX_RectF m_rtTemp; - CFX_WideString m_wsHead; - CFX_WideString m_wsToday; - CFX_DateTime* m_pDateTime; - CFX_PtrArray m_arrDates; - int32_t m_iCurYear; - int32_t m_iCurMonth; - int32_t m_iYear; - int32_t m_iMonth; - int32_t m_iDay; - int32_t m_iHovered; - int32_t m_iLBtnPartStates; - int32_t m_iRBtnPartStates; - DATE m_dtMin; - DATE m_dtMax; - CFX_SizeF m_szHead; - CFX_SizeF m_szCell; - CFX_SizeF m_szToday; - CFX_ArrayTemplate m_arrSelDays; - int32_t m_iMaxSel; - CFX_RectF m_rtClient; - FX_FLOAT m_fHeadWid; - FX_FLOAT m_fHeadHei; - FX_FLOAT m_fHeadBtnWid; - FX_FLOAT m_fHeadBtnHei; - FX_FLOAT m_fHeadBtnHMargin; - FX_FLOAT m_fHeadBtnVMargin; - FX_FLOAT m_fHeadTextWid; - FX_FLOAT m_fHeadTextHei; - FX_FLOAT m_fHeadTextHMargin; - FX_FLOAT m_fHeadTextVMargin; - FX_FLOAT m_fHSepWid; - FX_FLOAT m_fHSepHei; - FX_FLOAT m_fWeekNumWid; - FX_FLOAT m_fSepDOffset; - FX_FLOAT m_fSepX; - FX_FLOAT m_fSepY; - FX_FLOAT m_fWeekNumHeigh; - FX_FLOAT m_fWeekWid; - FX_FLOAT m_fWeekHei; - FX_FLOAT m_fDateCellWid; - FX_FLOAT m_fDateCellHei; - FX_FLOAT m_fTodayWid; - FX_FLOAT m_fTodayHei; - FX_FLOAT m_fTodayFlagWid; - FX_FLOAT m_fMCWid; - FX_FLOAT m_fMCHei; - friend class CFWL_MonthCalendarImpDelegate; -}; - -struct FWL_DATEINFO { - FWL_DATEINFO(int32_t day, - int32_t dayofweek, - FX_DWORD dwSt, - CFX_RectF rc, - CFX_WideString& wsday) - : iDay(day), - iDayOfWeek(dayofweek), - dwStates(dwSt), - rect(rc), - wsDay(wsday) {} - int32_t iDay; - int32_t iDayOfWeek; - FX_DWORD dwStates; - CFX_RectF rect; - CFX_WideString wsDay; -}; - -class CFWL_MonthCalendarImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_MonthCalendarImpDelegate(CFWL_MonthCalendarImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnActivate(CFWL_Message* pMsg); - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - CFWL_MonthCalendarImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_MONTHCALENDARIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h b/xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h deleted file mode 100644 index a77f73dc98..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_PICTUREBOXIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_PICTUREBOXIMP_H_ - -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_PictureBoxImpDelegate; - -class CFWL_PictureBoxImp : public CFWL_WidgetImp { - public: - CFWL_PictureBoxImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_PictureBoxImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - - protected: - void DrawBkground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - FX_BOOL VStyle(FX_BOOL dwStyle); - CFX_RectF m_rtClient; - CFX_RectF m_rtImage; - CFX_Matrix m_matrix; - FX_BOOL m_bTop; - FX_BOOL m_bVCenter; - FX_BOOL m_bButton; - friend class CFWL_PictureBoxImpDelegate; -}; -class CFWL_PictureBoxImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_PictureBoxImpDelegate(CFWL_PictureBoxImp* pOwner); - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - CFWL_PictureBoxImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_PICTUREBOXIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h b/xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h deleted file mode 100644 index 73ee0fe899..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_pushbuttonimp.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_PUSHBUTTONIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_PUSHBUTTONIMP_H_ - -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_PushButtonImpDelegate; - -class CFWL_PushButtonImp : public CFWL_WidgetImp { - public: - CFWL_PushButtonImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_PushButtonImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - - protected: - void DrawBkground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawText(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - FX_DWORD GetPartStates(); - void UpdateTextOutStyles(); - CFX_RectF m_rtClient; - CFX_RectF m_rtCaption; - FX_BOOL m_bBtnDown; - FX_DWORD m_dwTTOStyles; - int32_t m_iTTOAlign; - friend class CFWL_PushButtonImpDelegate; -}; -class CFWL_PushButtonImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_PushButtonImpDelegate(CFWL_PushButtonImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - void OnKeyDown(CFWL_MsgKey* pMsg); - CFWL_PushButtonImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_PUSHBUTTONIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h b/xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h deleted file mode 100644 index 265c22d806..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_scrollbarimp.h +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_SCROLLBARIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_SCROLLBARIMP_H_ - -#include "xfa/include/fwl/core/fwl_timer.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_ScrollBarImpDelegate; - -class CFWL_ScrollBarImp : public CFWL_WidgetImp, public IFWL_Timer { - public: - CFWL_ScrollBarImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_ScrollBarImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FX_BOOL IsVertical(); - virtual FWL_ERR GetRange(FX_FLOAT& fMin, FX_FLOAT& fMax); - virtual FWL_ERR SetRange(FX_FLOAT fMin, FX_FLOAT fMax); - virtual FX_FLOAT GetPageSize(); - virtual FWL_ERR SetPageSize(FX_FLOAT fPageSize); - virtual FX_FLOAT GetStepSize(); - virtual FWL_ERR SetStepSize(FX_FLOAT fStepSize); - virtual FX_FLOAT GetPos(); - virtual FWL_ERR SetPos(FX_FLOAT fPos); - virtual FX_FLOAT GetTrackPos(); - virtual FWL_ERR SetTrackPos(FX_FLOAT fTrackPos); - virtual FX_BOOL DoScroll(FX_DWORD dwCode, FX_FLOAT fPos = 0.0f); - virtual FWL_ERR SetOuter(IFWL_Widget* pOuter); - virtual int32_t Run(FWL_HTIMER hTimer); - - protected: - void DrawTrack(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - FX_BOOL bLower = TRUE, - const CFX_Matrix* pMatrix = NULL); - void DrawArrowBtn(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - FX_BOOL bMinBtn = TRUE, - const CFX_Matrix* pMatrix = NULL); - void DrawThumb(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void Layout(); - void CalcButtonLen(); - void CalcMinButtonRect(CFX_RectF& rect); - void CalcMaxButtonRect(CFX_RectF& rect); - void CalcThumbButtonRect(CFX_RectF& rect); - void CalcMinTrackRect(CFX_RectF& rect); - void CalcMaxTrackRect(CFX_RectF& rect); - FX_FLOAT GetTrackPointPos(FX_FLOAT fx, FX_FLOAT fy); - void GetTrackRect(CFX_RectF& rect, FX_BOOL bLower = TRUE); - FX_BOOL SendEvent(); - FX_BOOL OnScroll(FX_DWORD dwCode, FX_FLOAT fPos); - - FWL_HTIMER m_hTimer; - FX_FLOAT m_fRangeMin; - FX_FLOAT m_fRangeMax; - FX_FLOAT m_fPageSize; - FX_FLOAT m_fStepSize; - FX_FLOAT m_fPos; - FX_FLOAT m_fTrackPos; - int32_t m_iMinButtonState; - int32_t m_iMaxButtonState; - int32_t m_iThumbButtonState; - int32_t m_iMinTrackState; - int32_t m_iMaxTrackState; - FX_FLOAT m_fLastTrackPos; - FX_FLOAT m_cpTrackPointX; - FX_FLOAT m_cpTrackPointY; - int32_t m_iMouseWheel; - FX_BOOL m_bTrackMouseLeave; - FX_BOOL m_bMouseHover; - FX_BOOL m_bMouseDown; - FX_BOOL m_bRepaintThumb; - FX_FLOAT m_fButtonLen; - FX_BOOL m_bMinSize; - CFX_RectF m_rtClient; - CFX_RectF m_rtThumb; - CFX_RectF m_rtMinBtn; - CFX_RectF m_rtMaxBtn; - CFX_RectF m_rtMinTrack; - CFX_RectF m_rtMaxTrack; - FX_BOOL m_bCustomLayout; - FX_FLOAT m_fMinThumb; - friend class CFWL_ScrollBarImpDelegate; -}; -class CFWL_ScrollBarImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_ScrollBarImpDelegate(CFWL_ScrollBarImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnLButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy); - void OnLButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy); - void OnMouseMove(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy); - void OnMouseLeave(); - void OnMouseWheel(FX_FLOAT fx, - FX_FLOAT fy, - FX_DWORD dwFlags, - FX_FLOAT fDeltaX, - FX_FLOAT fDeltaY); - void DoMouseDown(int32_t iItem, - const CFX_RectF& rtItem, - int32_t& iState, - FX_FLOAT fx, - FX_FLOAT fy); - void DoMouseUp(int32_t iItem, - const CFX_RectF& rtItem, - int32_t& iState, - FX_FLOAT fx, - FX_FLOAT fy); - void DoMouseMove(int32_t iItem, - const CFX_RectF& rtItem, - int32_t& iState, - FX_FLOAT fx, - FX_FLOAT fy); - void DoMouseLeave(int32_t iItem, const CFX_RectF& rtItem, int32_t& iState); - void DoMouseHover(int32_t iItem, const CFX_RectF& rtItem, int32_t& iState); - - CFWL_ScrollBarImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_SCROLLBARIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h b/xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h deleted file mode 100644 index c77905fb17..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_spinbuttonimp.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_SPINBUTTONIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_SPINBUTTONIMP_H_ - -#include "xfa/include/fwl/core/fwl_timer.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class CFWL_SpinButtonImpDelegate; - -class CFWL_SpinButtonImp : public CFWL_WidgetImp, public IFWL_Timer { - public: - CFWL_SpinButtonImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - ~CFWL_SpinButtonImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual int32_t Run(FWL_HTIMER hTimer); - FWL_ERR EnableButton(FX_BOOL bEnable, FX_BOOL bUp = TRUE); - FX_BOOL IsButtonEnable(FX_BOOL bUp = TRUE); - - protected: - void DrawUpButton(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawDownButton(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - CFX_RectF m_rtClient; - CFX_RectF m_rtUpButton; - CFX_RectF m_rtDnButton; - FX_DWORD m_dwUpState; - FX_DWORD m_dwDnState; - int32_t m_iButtonIndex; - FX_BOOL m_bLButtonDwn; - FWL_HTIMER m_hTimer; - friend class CFWL_SpinButtonImpDelegate; -}; -class CFWL_SpinButtonImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_SpinButtonImpDelegate(CFWL_SpinButtonImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - void OnKeyDown(CFWL_MsgKey* pMsg); - CFWL_SpinButtonImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_SPINBUTTONIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h b/xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h deleted file mode 100644 index e80f33ec9a..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_TOOLTIPCTRLIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_TOOLTIPCTRLIMP_H_ - -#include "xfa/include/fwl/core/fwl_timer.h" -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class CFWL_ToolTipImpDelegate; - -class CFWL_ToolTipImp : public CFWL_FormImp { - public: - CFWL_ToolTipImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_ToolTipImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet); - virtual FWL_ERR GetClientRect(CFX_RectF& rect); - FWL_ERR SetAnchor(const CFX_RectF& rtAnchor); - FWL_ERR Show(); - FWL_ERR Hide(); - - protected: - void DrawBkground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void DrawText(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix); - void UpdateTextOutStyles(); - void RefreshToolTipPos(); - class CFWL_ToolTipTimer : public IFWL_Timer { - public: - CFWL_ToolTipTimer() {} - ~CFWL_ToolTipTimer() {} - CFWL_ToolTipTimer(CFWL_ToolTipImp* pToolTip); - virtual int32_t Run(FWL_HTIMER hTimer); - CFWL_ToolTipImp* m_pToolTip; - }; - CFX_RectF m_rtClient; - CFX_RectF m_rtCaption; - FX_BOOL m_bBtnDown; - FX_DWORD m_dwTTOStyles; - int32_t m_iTTOAlign; - CFX_RectF m_rtAnchor; - FWL_HTIMER m_hTimerShow; - FWL_HTIMER m_hTimerHide; - CFWL_ToolTipTimer* m_pTimer; - CFWL_ToolTipTimer m_TimerShow; - CFWL_ToolTipTimer m_TimerHide; - friend class CFWL_ToolTipImpDelegate; - friend class CFWL_ToolTipTimer; -}; -class CFWL_ToolTipImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_ToolTipImpDelegate(CFWL_ToolTipImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnFocusChanged(CFWL_Message* pMsg, FX_BOOL bSet = TRUE); - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - void OnKeyDown(CFWL_MsgKey* pMsg); - CFWL_ToolTipImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FWL_TOOLTIPCTRLIMP_H_ diff --git a/xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h b/xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h deleted file mode 100644 index 86f7245542..0000000000 --- a/xfa/src/fwl/src/basewidget/include/fxmath_barcodeimp.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FXMATH_BARCODEIMP_H_ -#define XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FXMATH_BARCODEIMP_H_ - -#include "xfa/include/fwl/basewidget/fxmath_barcode.h" - -class CFX_Barcode : public IFX_Barcode { - public: - CFX_Barcode(); - ~CFX_Barcode(); - FX_BOOL Crreate(BC_TYPE type); - virtual void Release(); - virtual BC_TYPE GetType(); - virtual FX_BOOL Encode(const CFX_WideStringC& contents, - FX_BOOL isDevice, - int32_t& e); - virtual FX_BOOL RenderDevice(CFX_RenderDevice* device, - const CFX_Matrix* matirx, - int32_t& e); - virtual FX_BOOL RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e); - virtual CFX_WideString Decode(uint8_t* buf, - int32_t width, - int32_t height, - int32_t& errorCode); - virtual CFX_WideString Decode(CFX_DIBitmap* pBitmap, int32_t& errorCode); - virtual FX_BOOL SetCharEncoding(BC_CHAR_ENCODING encoding); - virtual FX_BOOL SetModuleHeight(int32_t moduleHeight); - virtual FX_BOOL SetModuleWidth(int32_t moduleWidth); - virtual FX_BOOL SetHeight(int32_t height); - virtual FX_BOOL SetWidth(int32_t width); - virtual FX_BOOL CheckContentValidity(const CFX_WideStringC& contents); - virtual FX_BOOL SetPrintChecksum(FX_BOOL checksum); - virtual FX_BOOL SetDataLength(int32_t length); - virtual FX_BOOL SetCalChecksum(int32_t state); - virtual FX_BOOL SetFont(CFX_Font* pFont); - virtual FX_BOOL SetFontSize(FX_FLOAT size); - virtual FX_BOOL SetFontStyle(int32_t style); - virtual FX_BOOL SetFontColor(FX_ARGB color); - virtual FX_BOOL SetTextLocation(BC_TEXT_LOC location); - virtual FX_BOOL SetWideNarrowRatio(int32_t ratio); - virtual FX_BOOL SetStartChar(FX_CHAR start); - virtual FX_BOOL SetEndChar(FX_CHAR end); - virtual FX_BOOL SetVersion(int32_t version); - virtual FX_BOOL SetErrorCorrectionLevel(int32_t level); - virtual FX_BOOL SetTruncated(FX_BOOL truncated); - - protected: - CBC_CodeBase* m_pBCEngine; -}; - -#endif // XFA_SRC_FWL_SRC_BASEWIDGET_INCLUDE_FXMATH_BARCODEIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_appimp.cpp b/xfa/src/fwl/src/core/fwl_appimp.cpp index c14f1859d3..9ee4d54310 100644 --- a/xfa/src/fwl/src/core/fwl_appimp.cpp +++ b/xfa/src/fwl/src/core/fwl_appimp.cpp @@ -4,15 +4,15 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" #include "xfa/include/fwl/adapter/fwl_adapterwidgetmgr.h" #include "xfa/include/fwl/core/fwl_app.h" #include "xfa/include/fwl/core/fwl_widget.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" IFWL_App* IFWL_App::Create(IFWL_AdapterNative* pAdapter) { IFWL_App* pApp = new IFWL_App; diff --git a/xfa/src/fwl/src/core/fwl_appimp.h b/xfa/src/fwl/src/core/fwl_appimp.h new file mode 100644 index 0000000000..1a046ed738 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_appimp.h @@ -0,0 +1,38 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_APPIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_APPIMP_H_ + +#include + +#include "xfa/src/fwl/src/core/fwl_threadimp.h" + +class CFWL_WidgetMgr; +class IFWL_AdapterNative; +class IFWL_WidgetMgr; +class IFWL_ThemeProvider; +class IFWL_App; + +class CFWL_AppImp : public CFWL_NoteThreadImp { + public: + CFWL_AppImp(IFWL_App* pIface, IFWL_AdapterNative* pAdapter); + virtual ~CFWL_AppImp(); + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual IFWL_AdapterNative* GetAdapterNative() const; + virtual IFWL_WidgetMgr* GetWidgetMgr() const; + virtual IFWL_ThemeProvider* GetThemeProvider() const; + virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); + virtual FWL_ERR Exit(int32_t iExitCode = 0); + + protected: + IFWL_AdapterNative* const m_pAdapterNative; + std::unique_ptr m_pWidgetMgr; + IFWL_ThemeProvider* m_pThemeProvider; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_APPIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_contentimp.cpp b/xfa/src/fwl/src/core/fwl_contentimp.cpp index df39d39630..e73f9cdd3e 100644 --- a/xfa/src/fwl/src/core/fwl_contentimp.cpp +++ b/xfa/src/fwl/src/core/fwl_contentimp.cpp @@ -4,14 +4,14 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_contentimp.h" +#include "xfa/src/fwl/src/core/fwl_contentimp.h" #include "xfa/include/fwl/core/fwl_content.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" FWL_ERR IFWL_Content::InsertWidget(IFWL_Widget* pChild, int32_t nIndex) { return static_cast(GetImpl())->InsertWidget(pChild, nIndex); diff --git a/xfa/src/fwl/src/core/fwl_contentimp.h b/xfa/src/fwl/src/core/fwl_contentimp.h new file mode 100644 index 0000000000..3ad800c2a0 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_contentimp.h @@ -0,0 +1,35 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_CONTENTIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_CONTENTIMP_H_ + +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class IFWL_Widget; + +class CFWL_ContentImp : public CFWL_WidgetImp { + public: + CFWL_ContentImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + + virtual ~CFWL_ContentImp(); + virtual FWL_ERR InsertWidget(IFWL_Widget* pChild, int32_t nIndex = -1); + virtual FWL_ERR RemoveWidget(IFWL_Widget* pWidget); + virtual FWL_ERR RemoveAllWidgets(); + FWL_ERR GetMinSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight); + FWL_ERR SetMinSize(FX_FLOAT fWidth, FX_FLOAT fHeight); + FWL_ERR GetMaxSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight); + FWL_ERR SetMaxSize(FX_FLOAT fWidth, FX_FLOAT fHeight); + + protected: + FX_FLOAT m_fWidthMin; + FX_FLOAT m_fWidthMax; + FX_FLOAT m_fHeightMin; + FX_FLOAT m_fHeightMax; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_CONTENTIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_formimp.cpp b/xfa/src/fwl/src/core/fwl_formimp.cpp index df2f4db39a..2c4fe749a8 100644 --- a/xfa/src/fwl/src/core/fwl_formimp.cpp +++ b/xfa/src/fwl/src/core/fwl_formimp.cpp @@ -4,21 +4,21 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" #include "xfa/include/fwl/adapter/fwl_adapterwidgetmgr.h" #include "xfa/include/fwl/core/fwl_app.h" #include "xfa/include/fwl/core/fwl_content.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_formproxyimp.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_formproxyimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" #define FWL_SYSBTNSIZE 21 #define FWL_SYSBTNMARGIN 5 diff --git a/xfa/src/fwl/src/core/fwl_formimp.h b/xfa/src/fwl/src/core/fwl_formimp.h new file mode 100644 index 0000000000..c8875b0ee7 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_formimp.h @@ -0,0 +1,193 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_FORMIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_FORMIMP_H_ + +#include "xfa/include/fwl/core/fwl_form.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_NoteLoop; +class CFWL_WidgetImpProperties; +class CFWL_MsgMouse; +class IFWL_Widget; +class IFWL_ThemeProvider; +class CFWL_SysBtn; +class CFWL_FormImp; +class CFWL_FormImpDelegate; + +#define FWL_SYSBUTTONSTATE_Hover 0x0001 +#define FWL_SYSBUTTONSTATE_Pressed 0x0002 +#define FWL_SYSBUTTONSTATE_Disabled 0x0010 +class CFWL_SysBtn { + public: + CFWL_SysBtn() { + m_rtBtn.Set(0, 0, 0, 0); + m_dwState = 0; + } + + FX_BOOL IsHover() { return m_dwState & FWL_SYSBUTTONSTATE_Hover; } + FX_BOOL IsPressed() { return m_dwState & FWL_SYSBUTTONSTATE_Pressed; } + FX_BOOL IsDisabled() { return m_dwState & FWL_SYSBUTTONSTATE_Disabled; } + void SetNormal() { m_dwState &= 0xFFF0; } + void SetPressed() { + SetNormal(); + m_dwState |= FWL_SYSBUTTONSTATE_Pressed; + } + void SetHover() { + SetNormal(); + m_dwState |= FWL_SYSBUTTONSTATE_Hover; + } + void SetDisabled(FX_BOOL bDisabled) { + bDisabled ? m_dwState |= FWL_SYSBUTTONSTATE_Disabled + : m_dwState &= ~FWL_SYSBUTTONSTATE_Disabled; + } + int32_t GetPartState() { + return (IsDisabled() ? FWL_PARTSTATE_FRM_Disabled : (m_dwState + 1)); + } + + CFX_RectF m_rtBtn; + FX_DWORD m_dwState; +}; +enum FORM_RESIZETYPE { + FORM_RESIZETYPE_None = 0, + FORM_RESIZETYPE_Cap, + FORM_RESIZETYPE_Left, + FORM_RESIZETYPE_Top, + FORM_RESIZETYPE_Right, + FORM_RESIZETYPE_Bottom, + FORM_RESIZETYPE_LeftTop, + FORM_RESIZETYPE_LeftBottom, + FORM_RESIZETYPE_RightTop, + FORM_RESIZETYPE_RightBottom +}; +typedef struct RestoreResizeInfo { + CFX_PointF m_ptStart; + CFX_SizeF m_szStart; +} RestoreInfo; +class CFWL_FormImp : public CFWL_PanelImp { + public: + CFWL_FormImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); + virtual ~CFWL_FormImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR GetClientRect(CFX_RectF& rect); + virtual FWL_ERR Update(); + virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual FWL_FORMSIZE GetFormSize(); + virtual FWL_ERR SetFormSize(FWL_FORMSIZE eFormSize); + virtual IFWL_Widget* DoModal(); + virtual IFWL_Widget* DoModal(FX_DWORD& dwCommandID); + virtual FWL_ERR EndDoModal(); + virtual FWL_ERR SetBorderRegion(CFX_Path* pPath); + virtual void DrawBackground(CFX_Graphics* pGraphics, + IFWL_ThemeProvider* pTheme); + CFWL_WidgetImp* GetSubFocus(); + void SetSubFocus(CFWL_WidgetImp* pWidget); + CFX_MapAccelerators& GetAccelerator(); + void SetAccelerator(CFX_MapAccelerators* pAccelerators); + + protected: + void ShowChildWidget(IFWL_Widget* pParent); + void RemoveSysButtons(); + void CalcContentRect(CFX_RectF& rtContent); + CFWL_SysBtn* GetSysBtnAtPoint(FX_FLOAT fx, FX_FLOAT fy); + CFWL_SysBtn* GetSysBtnByState(FX_DWORD dwState); + CFWL_SysBtn* GetSysBtnByIndex(int32_t nIndex); + int32_t GetSysBtnIndex(CFWL_SysBtn* pBtn); + FX_FLOAT GetCaptionHeight(); + void DrawCaptionText(CFX_Graphics* pGs, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void DrawIconImage(CFX_Graphics* pGs, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void GetEdgeRect(CFX_RectF& rtEdge); + void SetWorkAreaRect(); + void SetCursor(FX_FLOAT fx, FX_FLOAT fy); + void Layout(); + void ReSetSysBtn(); + void RegisterForm(); + void UnRegisterForm(); + FX_BOOL IsDoModal(); + void SetThemeData(); + FX_BOOL HasIcon(); + void UpdateIcon(); + void UpdateCaption(); + void DoWidthLimit(FX_FLOAT& fLeft, + FX_FLOAT& fWidth, + FX_FLOAT fCurX, + FX_FLOAT fSpace, + FX_FLOAT fLimitMin, + FX_FLOAT fLimitMax, + FX_BOOL bLeft); + void DoHeightLimit(FX_FLOAT& fTop, + FX_FLOAT& fHeight, + FX_FLOAT fCurY, + FX_FLOAT fSpace, + FX_FLOAT fLimitMin, + FX_FLOAT fLimitMax, + FX_BOOL bTop); + CFX_MapAccelerators m_mapAccelerators; + CFX_RectF m_rtRestore; + CFX_RectF m_rtCaptionText; + CFX_RectF m_rtRelative; + CFX_RectF m_rtCaption; + CFX_RectF m_rtIcon; + CFWL_SysBtn* m_pCloseBox; + CFWL_SysBtn* m_pMinBox; + CFWL_SysBtn* m_pMaxBox; + CFWL_SysBtn* m_pCaptionBox; + CFWL_NoteLoop* m_pNoteLoop; + CFWL_WidgetImp* m_pSubFocus; + RestoreInfo m_InfoStart; + FX_FLOAT m_fCXBorder; + FX_FLOAT m_fCYBorder; + int32_t m_iCaptureBtn; + int32_t m_iSysBox; + int32_t m_eResizeType; + FX_BOOL m_bLButtonDown; + FX_BOOL m_bMaximized; + FX_BOOL m_bSetMaximize; + FX_BOOL m_bCustomizeLayout; + FWL_FORMSIZE m_eFormSize; + FX_BOOL m_bDoModalFlag; + FX_FLOAT m_fSmallIconSz; + FX_FLOAT m_fBigIconSz; + CFX_DIBitmap* m_pBigIcon; + CFX_DIBitmap* m_pSmallIcon; + FX_BOOL m_bMouseIn; + friend class CFWL_FormImpDelegate; +}; +class CFWL_FormImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_FormImpDelegate(CFWL_FormImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + void OnLButtonDown(CFWL_MsgMouse* pMsg); + void OnLButtonUp(CFWL_MsgMouse* pMsg); + void OnMouseMove(CFWL_MsgMouse* pMsg); + void OnMouseHover(CFWL_MsgMouse* pMsg); + void OnMouseLeave(CFWL_MsgMouse* pMsg); + void OnLButtonDblClk(CFWL_MsgMouse* pMsg); + void OnWindowMove(CFWL_MsgWindowMove* pMsg); + void OnClose(CFWL_MsgClose* pMsg); + CFWL_FormImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_FORMIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_gridimp.cpp b/xfa/src/fwl/src/core/fwl_gridimp.cpp index 4a2c52eaac..91e39b4dde 100644 --- a/xfa/src/fwl/src/core/fwl_gridimp.cpp +++ b/xfa/src/fwl/src/core/fwl_gridimp.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_gridimp.h" +#include "xfa/src/fwl/src/core/fwl_gridimp.h" -#include "xfa/src/fwl/src/core/include/fwl_contentimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_contentimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" // static IFWL_Grid* IFWL_Grid::Create(const CFWL_WidgetImpProperties& properties) { diff --git a/xfa/src/fwl/src/core/fwl_gridimp.h b/xfa/src/fwl/src/core/fwl_gridimp.h new file mode 100644 index 0000000000..092b489cbb --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_gridimp.h @@ -0,0 +1,197 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_GRIDIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_GRIDIMP_H_ + +#include "xfa/include/fwl/core/fwl_app.h" +#include "xfa/include/fwl/core/fwl_content.h" +#include "xfa/include/fwl/core/fwl_grid.h" +#include "xfa/src/fwl/src/core/fwl_contentimp.h" + +class CFWL_GridLength { + public: + CFWL_GridLength() : fLength(0), eUnit(FWL_GRIDUNIT_Fixed) {} + CFWL_GridLength(FX_FLOAT fValue, FWL_GRIDUNIT e) + : fLength(fValue), eUnit(e) {} + FX_FLOAT fLength; + FWL_GRIDUNIT eUnit; +}; + +class CFWL_GridColRow { + public: + CFWL_GridColRow() + : m_Size(1, FWL_GRIDUNIT_Scaled), + m_MinSize(0, FWL_GRIDUNIT_Fixed), + m_MaxSize(0, FWL_GRIDUNIT_Infinity), + m_fActualSize(0), + m_fActualPos(0) {} + CFWL_GridLength m_Size; + CFWL_GridLength m_MinSize; + CFWL_GridLength m_MaxSize; + FX_FLOAT m_fActualSize; + FX_FLOAT m_fActualPos; +}; + +class CFWL_GridWidgetInfo { + public: + CFWL_GridWidgetInfo() + : m_iColumn(0), + m_iColumnSpan(1), + m_iRow(0), + m_iRowSpan(1), + m_dwMarginFlag(0), + m_fActualWidth(0), + m_fActualHeight(0) { + m_Size[FWL_GRIDSIZE_Width].eUnit = FWL_GRIDUNIT_Auto; + m_Size[FWL_GRIDSIZE_Width].fLength = 0; + m_Size[FWL_GRIDSIZE_Height].eUnit = FWL_GRIDUNIT_Auto; + m_Size[FWL_GRIDSIZE_Height].fLength = 0; + m_Size[FWL_GRIDSIZE_MinWidth].eUnit = FWL_GRIDUNIT_Fixed; + m_Size[FWL_GRIDSIZE_MinWidth].fLength = 0; + m_Size[FWL_GRIDSIZE_MaxWidth].eUnit = FWL_GRIDUNIT_Infinity; + m_Size[FWL_GRIDSIZE_MaxWidth].fLength = 0; + m_Size[FWL_GRIDSIZE_MinHeight].eUnit = FWL_GRIDUNIT_Fixed; + m_Size[FWL_GRIDSIZE_MinHeight].fLength = 0; + m_Size[FWL_GRIDSIZE_MaxHeight].eUnit = FWL_GRIDUNIT_Infinity; + m_Size[FWL_GRIDSIZE_MaxHeight].fLength = 0; + m_Margin[0] = m_Margin[1] = m_Margin[2] = m_Margin[3] = 0; + } + int32_t m_iColumn; + int32_t m_iColumnSpan; + int32_t m_iRow; + int32_t m_iRowSpan; + CFWL_GridLength m_Size[6]; + FX_DWORD m_dwMarginFlag; + FX_FLOAT m_Margin[4]; + FX_FLOAT m_fActualWidth; + FX_FLOAT m_fActualHeight; +}; + +class CFWL_GridImp : public CFWL_ContentImp { + public: + CFWL_GridImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); + virtual ~CFWL_GridImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR SetWidgetRect(const CFX_RectF& rect); + virtual FWL_ERR Update(); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + + virtual FWL_ERR InsertWidget(IFWL_Widget* pChild, int32_t nIndex = -1); + virtual FWL_ERR RemoveWidget(IFWL_Widget* pWidget); + virtual FWL_HGRIDCOLROW InsertColRow(FX_BOOL bColumn, int32_t nIndex = -1); + virtual int32_t CountColRows(FX_BOOL bColumn); + virtual FWL_HGRIDCOLROW GetColRow(FX_BOOL bColumn, int32_t nIndex); + virtual int32_t GetIndex(FWL_HGRIDCOLROW hColRow); + virtual FX_FLOAT GetSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit); + virtual FWL_ERR SetSize(FWL_HGRIDCOLROW hColRow, + FX_FLOAT fSize, + FWL_GRIDUNIT eUnit); + FX_FLOAT GetMinSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit); + FWL_ERR SetMinSize(FWL_HGRIDCOLROW hColRow, + FX_FLOAT fSize, + FWL_GRIDUNIT eUnit); + FX_FLOAT GetMaxSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit); + FWL_ERR SetMaxSize(FWL_HGRIDCOLROW hColRow, + FX_FLOAT fSize, + FWL_GRIDUNIT eUnit); + virtual FX_BOOL DeleteColRow(FWL_HGRIDCOLROW hColRow); + virtual FX_BOOL IsColumn(FWL_HGRIDCOLROW hColRow); + virtual int32_t GetWidgetPos(IFWL_Widget* pWidget, FX_BOOL bColumn); + virtual FWL_ERR SetWidgetPos(IFWL_Widget* pWidget, + int32_t iPos, + FX_BOOL bColumn); + virtual int32_t GetWidgetSpan(IFWL_Widget* pWidget, FX_BOOL bColumn); + virtual FWL_ERR SetWidgetSpan(IFWL_Widget* pWidget, + int32_t iSpan, + FX_BOOL bColumn); + virtual FX_FLOAT GetWidgetSize(IFWL_Widget* pWidget, + FWL_GRIDSIZE eSize, + FWL_GRIDUNIT& eUnit); + virtual FWL_ERR SetWidgetSize(IFWL_Widget* pWidget, + FWL_GRIDSIZE eSize, + FX_FLOAT fSize, + FWL_GRIDUNIT eUit); + virtual FX_BOOL GetWidgetMargin(IFWL_Widget* pWidget, + FWL_GRIDMARGIN eMargin, + FX_FLOAT& fMargin); + virtual FWL_ERR SetWidgetMargin(IFWL_Widget* pWidget, + FWL_GRIDMARGIN eMargin, + FX_FLOAT fMargin); + virtual FWL_ERR RemoveWidgetMargin(IFWL_Widget* pWidget, + FWL_GRIDMARGIN eMargin); + virtual FX_FLOAT GetGridSize(FWL_GRIDSIZE eSize, FWL_GRIDUNIT& eUnit); + virtual FWL_ERR SetGridSize(FWL_GRIDSIZE eSize, + FX_FLOAT fSize, + FWL_GRIDUNIT eUit); + + protected: + CFWL_GridWidgetInfo* GetWidgetInfo(IFWL_Widget* pWidget); + void ProcFixedColRow(CFWL_GridColRow* pColRow, + int32_t nIndex, + FX_FLOAT fColRowSize, + FX_BOOL bColumn); + void ProcAutoColRow(CFWL_GridColRow* pColRow, + int32_t nIndex, + FX_BOOL bColumn); + void ProcScaledColRow(CFWL_GridColRow* pColRow, + int32_t nIndex, + FX_FLOAT fColRowSize, + FX_BOOL bColumn); + void CalcWidgetWidth(IFWL_Widget* pWidget, + CFWL_GridWidgetInfo* pInfo, + FX_FLOAT fColunmWidth); + void CalcWidgetHeigt(IFWL_Widget* pWidget, + CFWL_GridWidgetInfo* pInfo, + FX_FLOAT fRowHeigt); + FX_FLOAT CalcAutoColumnWidgetWidth(IFWL_Widget* pWidget, + CFWL_GridWidgetInfo* pInfo); + FX_FLOAT CalcAutoColumnWidgetHeight(IFWL_Widget* pWidget, + CFWL_GridWidgetInfo* pInfo); + FX_FLOAT ProcessColumns(FX_FLOAT fWidth); + FX_FLOAT ProcessRows(FX_FLOAT fHeight); + FX_FLOAT ProcessUnCertainColumns(); + FX_FLOAT ProcessUnCertainRows(); + FX_BOOL SetColRowActualSize(CFWL_GridColRow* pColRow, + FX_FLOAT fSize, + FX_BOOL bSetBeyond = FALSE); + FX_FLOAT SetWidgetActualWidth(CFWL_GridWidgetInfo* pInfo, FX_FLOAT fWidth); + FX_FLOAT SetWidgetActualHeight(CFWL_GridWidgetInfo* pInfo, FX_FLOAT fHeight); + void SetAllWidgetsRect(); + FX_BOOL IsGrid(IFWL_Widget* pWidget); + void SetSpanAutoColRowSize(const CFX_PtrArray& spanAutos, + FX_FLOAT fTotalSize); + void SetSpanScaledColRowSize(const CFX_PtrArray& spanScaleds, + FX_FLOAT fTotalSize, + FX_FLOAT fTotalScaledNum); + void SetScaledColRowsSize(const CFX_PtrArray& spanScaleds, + FX_FLOAT fTotalSize, + FX_FLOAT fTotalScaledNum); + CFX_PtrArray m_Rows; + CFX_PtrArray m_Columns; + CFX_PtrArray m_Widgets; + CFX_MapPtrToPtr m_mapWidgetInfo; + CFWL_GridLength m_Size[6]; + friend class CFWL_GridImpDelegate; +}; + +class CFWL_GridImpDelegate : public CFWL_WidgetImpDelegate { + public: + CFWL_GridImpDelegate(CFWL_GridImp* pOwner); + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; + + protected: + CFWL_GridImp* m_pOwner; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_GRIDIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_noteimp.cpp b/xfa/src/fwl/src/core/fwl_noteimp.cpp index 0ddfaf8f25..a4ff5cfb5b 100644 --- a/xfa/src/fwl/src/core/fwl_noteimp.cpp +++ b/xfa/src/fwl/src/core/fwl_noteimp.cpp @@ -4,21 +4,21 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" #include "core/include/fxcrt/fx_ext.h" #include "xfa/include/fwl/adapter/fwl_adapterwidgetmgr.h" #include "xfa/include/fwl/basewidget/fwl_tooltipctrl.h" #include "xfa/include/fwl/core/fwl_app.h" #include "xfa/include/fwl/core/fwl_grid.h" -#include "xfa/src/fwl/src/basewidget/include/fwl_tooltipctrlimp.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/basewidget/fwl_tooltipctrlimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" CFWL_NoteLoop::CFWL_NoteLoop(CFWL_WidgetImp* pForm) : m_pForm(pForm), m_bContinueModal(TRUE) {} diff --git a/xfa/src/fwl/src/core/fwl_noteimp.h b/xfa/src/fwl/src/core/fwl_noteimp.h new file mode 100644 index 0000000000..d824208625 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_noteimp.h @@ -0,0 +1,157 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_NOTEIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_NOTEIMP_H_ + +#include "xfa/include/fwl/core/fwl_note.h" + +class CFWL_WidgetImp; +class CFWL_ToolTipImp; +class CFWL_CoreToopTipDP; +class CFWL_NoteDriver; +class CFWL_EventTarget; +class CFWL_ToolTipContainer; + +class CFWL_NoteLoop : public IFWL_NoteLoop { + public: + CFWL_NoteLoop(CFWL_WidgetImp* pForm = NULL); + + // IFWL_NoteLoop: + ~CFWL_NoteLoop() override {} + FX_BOOL PreProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR Idle(int32_t count) override; + + CFWL_WidgetImp* GetForm(); + FX_BOOL ContinueModal(); + FWL_ERR EndModalLoop(); + FX_BOOL TranslateAccelerator(CFWL_Message* pMessage); + FWL_ERR SetMainForm(CFWL_WidgetImp* pForm); + + protected: + void GenerateCommondEvent(FX_DWORD dwCommand); + + CFWL_WidgetImp* m_pForm; + FX_BOOL m_bContinueModal; +}; +class CFWL_NoteDriver : public IFWL_NoteDriver { + public: + CFWL_NoteDriver(); + ~CFWL_NoteDriver() override; + + // IFWL_NoteDriver: + FX_BOOL SendNote(CFWL_Note* pNote) override; + FX_BOOL PostMessage(CFWL_Message* pMessage) override; + FWL_ERR RegisterEventTarget(IFWL_Widget* pListener, + IFWL_Widget* pEventSource = NULL, + FX_DWORD dwFilter = FWL_EVENT_ALL_MASK) override; + FWL_ERR UnregisterEventTarget(IFWL_Widget* pListener) override; + void ClearEventTargets(FX_BOOL bRemoveAll) override; + int32_t GetQueueMaxSize() const override; + FWL_ERR SetQueueMaxSize(const int32_t size) override; + IFWL_NoteThread* GetOwnerThread() const override; + FWL_ERR PushNoteLoop(IFWL_NoteLoop* pNoteLoop) override; + IFWL_NoteLoop* PopNoteLoop() override; + IFWL_Widget* GetFocus() override; + FX_BOOL SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify = FALSE) override; + void SetGrab(IFWL_Widget* pGrab, FX_BOOL bSet) override; + FWL_ERR Run() override; + + IFWL_Widget* GetHover(); + void SetHover(IFWL_Widget* pHover); + void NotifyTargetHide(IFWL_Widget* pNoteTarget); + void NotifyTargetDestroy(IFWL_Widget* pNoteTarget); + void NotifyFullScreenMode(IFWL_Widget* pNoteTarget, FX_BOOL bFullScreen); + FWL_ERR RegisterForm(CFWL_WidgetImp* pForm); + FWL_ERR UnRegisterForm(CFWL_WidgetImp* pForm); + FX_BOOL QueueMessage(CFWL_Message* pMessage); + FX_BOOL UnqueueMessage(CFWL_NoteLoop* pNoteLoop); + CFWL_NoteLoop* GetTopLoop(); + int32_t CountLoop(); + void SetHook(FWLMessageHookCallback callback, void* info); + FX_BOOL ProcessMessage(CFWL_Message* pMessage); + + protected: + FX_BOOL DispatchMessage(CFWL_Message* pMessage, IFWL_Widget* pMessageForm); + FX_BOOL DoActivate(CFWL_MsgActivate* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoDeactivate(CFWL_MsgDeactivate* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoSetFocus(CFWL_MsgSetFocus* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoKillFocus(CFWL_MsgKillFocus* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoKey(CFWL_MsgKey* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoMouse(CFWL_MsgMouse* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoWheel(CFWL_MsgMouseWheel* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoSize(CFWL_MsgSize* pMsg); + FX_BOOL DoWindowMove(CFWL_MsgWindowMove* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoDragFiles(CFWL_MsgDropFiles* pMsg, IFWL_Widget* pMessageForm); + FX_BOOL DoMouseEx(CFWL_MsgMouse* pMsg, IFWL_Widget* pMessageForm); + void MouseSecondary(CFWL_MsgMouse* pMsg); + FX_BOOL IsValidMessage(CFWL_Message* pMessage); + IFWL_Widget* GetMessageForm(IFWL_Widget* pDstTarget); + void ClearInvalidEventTargets(FX_BOOL bRemoveAll); + CFX_PtrArray m_forms; + CFX_PtrArray m_noteQueue; + CFX_PtrArray m_noteLoopQueue; + CFX_MapPtrToPtr m_eventTargets; + int32_t m_sendEventCalled; + int32_t m_maxSize; + FX_BOOL m_bFullScreen; + IFWL_Widget* m_pHover; + IFWL_Widget* m_pFocus; + IFWL_Widget* m_pGrab; + CFWL_NoteLoop* m_pNoteLoop; + FWLMessageHookCallback m_hook; + void* m_hookInfo; +}; +typedef CFX_MapPtrTemplate CFWL_EventSource; +class CFWL_EventTarget { + public: + CFWL_EventTarget(CFWL_NoteDriver* pNoteDriver, IFWL_Widget* pListener) + : m_pListener(pListener), m_pNoteDriver(pNoteDriver), m_bInvalid(FALSE) {} + ~CFWL_EventTarget(); + int32_t SetEventSource(IFWL_Widget* pSource, + FX_DWORD dwFilter = FWL_EVENT_ALL_MASK); + FX_BOOL ProcessEvent(CFWL_Event* pEvent); + FX_BOOL IsFilterEvent(CFWL_Event* pEvent, FX_DWORD dwFilter); + FX_BOOL IsInvalid() { return m_bInvalid; } + void FlagInvalid() { m_bInvalid = TRUE; } + + protected: + CFWL_EventSource m_eventSources; + IFWL_Widget* m_pListener; + CFWL_NoteDriver* m_pNoteDriver; + FX_BOOL m_bInvalid; +}; +class CFWL_ToolTipContainer { + public: + static CFWL_ToolTipContainer* getInstance(); + static void DeleteInstance(); + + FX_ERR AddToolTipTarget(IFWL_ToolTipTarget* pTarget); + FX_ERR RemoveToolTipTarget(IFWL_ToolTipTarget* pTarget); + IFWL_ToolTipTarget* GetCurrentToolTipTarget(); + + FX_BOOL HasToolTip(IFWL_Widget* pWidget); + + FX_BOOL ProcessEnter(CFWL_EvtMouse* pEvt, IFWL_Widget* pOwner); + FX_BOOL ProcessLeave(CFWL_EvtMouse* pEvt); + + FX_ERR SetToolTipInitialDelay(int32_t iDelayTime); + FX_ERR SetToolTipAutoPopDelay(int32_t iDelayTime); + + protected: + CFWL_ToolTipContainer(); + virtual ~CFWL_ToolTipContainer(); + + IFWL_ToolTipTarget* pCurTarget; + CFWL_ToolTipImp* m_pToolTipImp; + CFWL_CoreToopTipDP* m_ToolTipDp; + CFX_PtrArray m_arrWidget; + + private: + static CFWL_ToolTipContainer* s_pInstance; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_NOTEIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_panelimp.cpp b/xfa/src/fwl/src/core/fwl_panelimp.cpp index 1b6c777ad2..f4d774e8fb 100644 --- a/xfa/src/fwl/src/core/fwl_panelimp.cpp +++ b/xfa/src/fwl/src/core/fwl_panelimp.cpp @@ -4,15 +4,15 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" #include "xfa/include/fwl/core/fwl_content.h" #include "xfa/include/fwl/core/fwl_grid.h" #include "xfa/include/fwl/core/fwl_panel.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" // static IFWL_Panel* IFWL_Panel::Create(CFWL_WidgetImpProperties& properties, diff --git a/xfa/src/fwl/src/core/fwl_panelimp.h b/xfa/src/fwl/src/core/fwl_panelimp.h new file mode 100644 index 0000000000..c6f6fdc03f --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_panelimp.h @@ -0,0 +1,32 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_PANELIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_PANELIMP_H_ + +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" + +class CFWL_WidgetImpProperties; +class IFWL_Widget; +class IFWL_Content; + +class CFWL_PanelImp : public CFWL_WidgetImp { + public: + CFWL_PanelImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_PanelImp(); + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual IFWL_Content* GetContent(); + virtual FWL_ERR SetContent(IFWL_Content* pContent); + + protected: + IFWL_Content* m_pContent; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_PANELIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_sdadapterimp.cpp b/xfa/src/fwl/src/core/fwl_sdadapterimp.cpp index 4ece3e881f..020bd54749 100644 --- a/xfa/src/fwl/src/core/fwl_sdadapterimp.cpp +++ b/xfa/src/fwl/src/core/fwl_sdadapterimp.cpp @@ -10,10 +10,10 @@ #include "xfa/include/fwl/adapter/fwl_adapterthreadmgr.h" #include "xfa/include/fwl/adapter/fwl_adapterwidgetmgr.h" #include "xfa/include/fwl/core/fwl_app.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" CFWL_SDAdapterWidgetMgr::CFWL_SDAdapterWidgetMgr() {} CFWL_SDAdapterWidgetMgr::~CFWL_SDAdapterWidgetMgr() {} diff --git a/xfa/src/fwl/src/core/fwl_targetimp.cpp b/xfa/src/fwl/src/core/fwl_targetimp.cpp index 6898588515..57d39e3a9e 100644 --- a/xfa/src/fwl/src/core/fwl_targetimp.cpp +++ b/xfa/src/fwl/src/core/fwl_targetimp.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" FWL_ERR IFWL_Target::GetClassName(CFX_WideString& wsClass) const { return m_pImpl->GetClassName(wsClass); diff --git a/xfa/src/fwl/src/core/fwl_targetimp.h b/xfa/src/fwl/src/core/fwl_targetimp.h new file mode 100644 index 0000000000..0cc2729e27 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_targetimp.h @@ -0,0 +1,27 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_TARGETIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_TARGETIMP_H_ + +#include "core/include/fxcrt/fx_basic.h" +#include "xfa/include/fwl/core/fwl_target.h" + +class CFWL_TargetImp { + public: + virtual ~CFWL_TargetImp(); + + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; + virtual FX_DWORD GetClassID() const; + virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + + protected: + CFWL_TargetImp(); +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_TARGETIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_threadimp.cpp b/xfa/src/fwl/src/core/fwl_threadimp.cpp index de48068a3c..2adb4af07c 100644 --- a/xfa/src/fwl/src/core/fwl_threadimp.cpp +++ b/xfa/src/fwl/src/core/fwl_threadimp.cpp @@ -4,11 +4,11 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" void IFWL_Thread::Release() { delete m_pImpl; diff --git a/xfa/src/fwl/src/core/fwl_threadimp.h b/xfa/src/fwl/src/core/fwl_threadimp.h new file mode 100644 index 0000000000..ead224ae12 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_threadimp.h @@ -0,0 +1,40 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_THREADIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_THREADIMP_H_ + +#include "xfa/include/fwl/core/fwl_thread.h" // For FWL_HTHREAD. + +class CFWL_NoteDriver; +class IFWL_NoteDriver; + +class CFWL_ThreadImp { + public: + virtual ~CFWL_ThreadImp() {} + IFWL_Thread* GetInterface() const { return m_pIface; } + virtual FWL_ERR Run(FWL_HTHREAD hThread); + + protected: + CFWL_ThreadImp(IFWL_Thread* pIface) : m_pIface(pIface) {} + + private: + IFWL_Thread* const m_pIface; +}; + +class CFWL_NoteThreadImp : public CFWL_ThreadImp { + public: + CFWL_NoteThreadImp(IFWL_NoteThread* pIface); + virtual ~CFWL_NoteThreadImp(); + + FWL_ERR Run(FWL_HTHREAD hThread) override; + virtual IFWL_NoteDriver* GetNoteDriver(); + + protected: + CFWL_NoteDriver* const m_pNoteDriver; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_THREADIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_timerimp.cpp b/xfa/src/fwl/src/core/fwl_timerimp.cpp index 19ab582340..0aec1357a4 100644 --- a/xfa/src/fwl/src/core/fwl_timerimp.cpp +++ b/xfa/src/fwl/src/core/fwl_timerimp.cpp @@ -8,9 +8,9 @@ #include "xfa/include/fwl/adapter/fwl_adaptertimermgr.h" #include "xfa/include/fwl/core/fwl_app.h" #include "xfa/include/fwl/core/fwl_timer.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" FWL_HTIMER FWL_StartTimer(IFWL_Timer* pTimer, FX_DWORD dwElapse, diff --git a/xfa/src/fwl/src/core/fwl_widgetimp.cpp b/xfa/src/fwl/src/core/fwl_widgetimp.cpp index 7100f193c9..4e74d7b4f6 100644 --- a/xfa/src/fwl/src/core/fwl_widgetimp.cpp +++ b/xfa/src/fwl/src/core/fwl_widgetimp.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" #include @@ -19,11 +19,11 @@ #include "xfa/include/fwl/core/fwl_form.h" #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" FWL_ERR IFWL_Widget::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { return static_cast(GetImpl()) diff --git a/xfa/src/fwl/src/core/fwl_widgetimp.h b/xfa/src/fwl/src/core/fwl_widgetimp.h new file mode 100644 index 0000000000..376294da13 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_widgetimp.h @@ -0,0 +1,162 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_WIDGETIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_WIDGETIMP_H_ + +#include "xfa/include/fwl/core/fwl_widget.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" + +class CFWL_NoteThreadImp; +class CFWL_WidgetImpProperties; +class CFWL_WidgetMgr; +class IFWL_DataProvider; +class IFWL_ThemeProvider; +class IFWL_Widget; +class IFWL_WidgetDelegate; + +class CFWL_WidgetImp : public CFWL_TargetImp { + public: + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR GetGlobalRect(CFX_RectF& rect); + virtual FWL_ERR SetWidgetRect(const CFX_RectF& rect); + virtual FWL_ERR GetClientRect(CFX_RectF& rect); + virtual IFWL_Widget* GetParent(); + virtual FWL_ERR SetParent(IFWL_Widget* pParent); + virtual IFWL_Widget* GetOwner(); + virtual FWL_ERR SetOwner(IFWL_Widget* pOwner); + virtual IFWL_Widget* GetOuter(); + virtual FX_DWORD GetStyles(); + virtual FWL_ERR ModifyStyles(FX_DWORD dwStylesAdded, + FX_DWORD dwStylesRemoved); + virtual FX_DWORD GetStylesEx(); + virtual FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded, + FX_DWORD dwStylesExRemoved); + virtual FX_DWORD GetStates(); + virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); + virtual FWL_ERR SetPrivateData(void* module_id, + void* pData, + PD_CALLBACK_FREEDATA callback); + virtual void* GetPrivateData(void* module_id); + virtual FWL_ERR Update(); + virtual FWL_ERR LockUpdate(); + virtual FWL_ERR UnlockUpdate(); + virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + virtual FWL_ERR TransformTo(IFWL_Widget* pWidget, FX_FLOAT& fx, FX_FLOAT& fy); + virtual FWL_ERR TransformTo(IFWL_Widget* pWidget, CFX_RectF& rt); + virtual FWL_ERR GetMatrix(CFX_Matrix& matrix, FX_BOOL bGlobal = FALSE); + virtual FWL_ERR SetMatrix(const CFX_Matrix& matrix); + virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL); + virtual IFWL_ThemeProvider* GetThemeProvider(); + virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); + virtual FWL_ERR SetDataProvider(IFWL_DataProvider* pDataProvider); + virtual IFWL_WidgetDelegate* SetDelegate(IFWL_WidgetDelegate* pDelegate); + virtual IFWL_NoteThread* GetOwnerThread() const; + FWL_ERR SetOwnerThread(CFWL_NoteThreadImp* pOwnerThread); + IFWL_Widget* GetInterface() const; + void SetInterface(IFWL_Widget* pInterface); + CFX_SizeF GetOffsetFromParent(IFWL_Widget* pParent); + + protected: + CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_WidgetImp(); + FX_BOOL IsEnabled() const; + FX_BOOL IsVisible() const; + FX_BOOL IsActive() const; + FX_BOOL IsOverLapper() const; + FX_BOOL IsPopup() const; + FX_BOOL IsChild() const; + FX_BOOL IsLocked() const; + FX_BOOL IsOffscreen() const; + FX_BOOL HasBorder() const; + FX_BOOL HasEdge() const; + void GetEdgeRect(CFX_RectF& rtEdge); + FX_FLOAT GetBorderSize(FX_BOOL bCX = TRUE); + FX_FLOAT GetEdgeWidth(); + void GetRelativeRect(CFX_RectF& rect); + void* GetThemeCapacity(FX_DWORD dwCapacity); + IFWL_ThemeProvider* GetAvailableTheme(); + CFWL_WidgetImp* GetRootOuter(); + CFX_SizeF CalcTextSize(const CFX_WideString& wsText, + IFWL_ThemeProvider* pTheme, + FX_BOOL bMultiLine = FALSE, + int32_t iLineWidth = -1); + void CalcTextRect(const CFX_WideString& wsText, + IFWL_ThemeProvider* pTheme, + FX_DWORD dwTTOStyles, + int32_t iTTOAlign, + CFX_RectF& rect); + void SetFocus(FX_BOOL bFocus); + void SetGrab(FX_BOOL bSet); + FX_BOOL GetPopupPos(FX_FLOAT fMinHeight, + FX_FLOAT fMaxHeight, + const CFX_RectF& rtAnchor, + CFX_RectF& rtPopup); + FX_BOOL GetPopupPosMenu(FX_FLOAT fMinHeight, + FX_FLOAT fMaxHeight, + const CFX_RectF& rtAnchor, + CFX_RectF& rtPopup); + FX_BOOL GetPopupPosComboBox(FX_FLOAT fMinHeight, + FX_FLOAT fMaxHeight, + const CFX_RectF& rtAnchor, + CFX_RectF& rtPopup); + FX_BOOL GetPopupPosGeneral(FX_FLOAT fMinHeight, + FX_FLOAT fMaxHeight, + const CFX_RectF& rtAnchor, + CFX_RectF& rtPopup); + FX_BOOL GetScreenSize(FX_FLOAT& fx, FX_FLOAT& fy); + void RegisterEventTarget(IFWL_Widget* pEventSource = NULL, + FX_DWORD dwFilter = FWL_EVENT_ALL_MASK); + void UnregisterEventTarget(); + void DispatchKeyEvent(CFWL_MsgKey* pNote); + void DispatchEvent(CFWL_Event* pEvent); + void Repaint(const CFX_RectF* pRect = NULL); + void DrawBackground(CFX_Graphics* pGraphics, + int32_t iPartBk, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void DrawBorder(CFX_Graphics* pGraphics, + int32_t iPartBorder, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void DrawEdge(CFX_Graphics* pGraphics, + int32_t iPartEdge, + IFWL_ThemeProvider* pTheme, + const CFX_Matrix* pMatrix = NULL); + void NotifyDriver(); + + FX_BOOL IsParent(IFWL_Widget* pParent); + CFWL_WidgetMgr* m_pWidgetMgr; + CFWL_NoteThreadImp* m_pOwnerThread; + CFWL_WidgetImpProperties* m_pProperties; + CFX_PrivateData* m_pPrivateData; + IFWL_WidgetDelegate* m_pDelegate; + IFWL_WidgetDelegate* m_pCurDelegate; + IFWL_Widget* m_pOuter; + IFWL_Widget* m_pInterface; + int32_t m_iLock; + friend class CFWL_WidgetImpDelegate; + friend void FWL_SetWidgetRect(IFWL_Widget* widget, const CFX_RectF& rect); + friend void FWL_SetWidgetStates(IFWL_Widget* widget, FX_DWORD dwStates); + friend void FWL_SetWidgetStyles(IFWL_Widget* widget, FX_DWORD dwStyles); +}; + +class CFWL_WidgetImpDelegate : public IFWL_WidgetDelegate { + public: + CFWL_WidgetImpDelegate(); + ~CFWL_WidgetImpDelegate() override {} + int32_t OnProcessMessage(CFWL_Message* pMessage) override; + FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; + FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = NULL) override; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_WIDGETIMP_H_ diff --git a/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp b/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp index 9b6f695ee3..1237d9e0f8 100644 --- a/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp +++ b/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp @@ -4,17 +4,17 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" #include "xfa/include/fwl/adapter/fwl_adapternative.h" #include "xfa/include/fwl/adapter/fwl_adapterwidgetmgr.h" #include "xfa/include/fwl/core/fwl_app.h" #include "xfa/include/fwl/core/fwl_form.h" -#include "xfa/src/fwl/src/core/include/fwl_appimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_appimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" FX_BOOL FWL_UseOffscreen(IFWL_Widget* pWidget) { #if (_FX_OS_ == _FX_MACOSX_) diff --git a/xfa/src/fwl/src/core/fwl_widgetmgrimp.h b/xfa/src/fwl/src/core/fwl_widgetmgrimp.h new file mode 100644 index 0000000000..ef72448531 --- /dev/null +++ b/xfa/src/fwl/src/core/fwl_widgetmgrimp.h @@ -0,0 +1,170 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_SRC_FWL_SRC_CORE_FWL_WIDGETMGRIMP_H_ +#define XFA_SRC_FWL_SRC_CORE_FWL_WIDGETMGRIMP_H_ + +#include "xfa/include/fwl/core/fwl_widgetmgr.h" + +class IFWL_Widget; +class IFWL_AdapterWidgetMgr; +class CFWL_WidgetMgrDelegate; +class IFWL_AdapterNative; + +class CFWL_WidgetMgrItem { + public: + CFWL_WidgetMgrItem() + : pParent(NULL), + pOwner(NULL), + pChild(NULL), + pPrevious(NULL), + pNext(NULL), + pWidget(NULL), + pOffscreen(NULL), + iRedrawCounter(0) +#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) + , + bOutsideChanged(FALSE) +#endif + { + } + ~CFWL_WidgetMgrItem() { + if (pOffscreen) { + delete pOffscreen; + pOffscreen = NULL; + } + } + CFWL_WidgetMgrItem* pParent; + CFWL_WidgetMgrItem* pOwner; + CFWL_WidgetMgrItem* pChild; + CFWL_WidgetMgrItem* pPrevious; + CFWL_WidgetMgrItem* pNext; + IFWL_Widget* pWidget; + CFX_Graphics* pOffscreen; + int32_t iRedrawCounter; +#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) + FX_BOOL bOutsideChanged; +#endif +}; + +class CFWL_WidgetMgr : public IFWL_WidgetMgr { + public: + CFWL_WidgetMgr(IFWL_AdapterNative* pAdapterNative); + ~CFWL_WidgetMgr() override; + + // IFWL_WidgetMgr: + int32_t CountWidgets(IFWL_Widget* pParent = NULL) override; + IFWL_Widget* GetWidget(int32_t nIndex, IFWL_Widget* pParent = NULL) override; + IFWL_Widget* GetWidget(IFWL_Widget* pWidget, + FWL_WGTRELATION eRelation) override; + int32_t GetWidgetIndex(IFWL_Widget* pWidget) override; + FX_BOOL SetWidgetIndex(IFWL_Widget* pWidget, int32_t nIndex) override; + FWL_ERR RepaintWidget(IFWL_Widget* pWidget, + const CFX_RectF* pRect = NULL) override; + FX_DWORD GetCapability() override { return m_dwCapability; } + + void AddWidget(IFWL_Widget* pWidget); + void InsertWidget(IFWL_Widget* pParent, + IFWL_Widget* pChild, + int32_t nIndex = -1); + void RemoveWidget(IFWL_Widget* pWidget); + void SetOwner(IFWL_Widget* pOwner, IFWL_Widget* pOwned); + void SetParent(IFWL_Widget* pParent, IFWL_Widget* pChild); + FX_BOOL IsChild(IFWL_Widget* pChild, IFWL_Widget* pParent); + FWL_ERR CreateWidget_Native(IFWL_Widget* pWidget); + FWL_ERR DestroyWidget_Native(IFWL_Widget* pWidget); + FWL_ERR GetWidgetRect_Native(IFWL_Widget* pWidget, CFX_RectF& rect); + FWL_ERR SetWidgetRect_Native(IFWL_Widget* pWidget, const CFX_RectF& rect); + FWL_ERR SetWidgetPosition_Native(IFWL_Widget* pWidget, + FX_FLOAT fx, + FX_FLOAT fy); + FWL_ERR SetWidgetIcon_Native(IFWL_Widget* pWidget, + const CFX_DIBitmap* pIcon, + FX_BOOL bBig); + FWL_ERR SetWidgetCaption_Native(IFWL_Widget* pWidget, + const CFX_WideStringC& wsCaption); + FWL_ERR SetBorderRegion_Native(IFWL_Widget* pWidget, CFX_Path* pPath); + FWL_ERR ShowWidget_Native(IFWL_Widget* pWidget); + FWL_ERR HideWidget_Native(IFWL_Widget* pWidget); + FWL_ERR SetNormal_Native(IFWL_Widget* pWidget); + FWL_ERR SetMaximize_Native(IFWL_Widget* pWidget); + FWL_ERR SetMinimize_Native(IFWL_Widget* pWidget); + FX_BOOL CheckMessage_Native(); + FWL_ERR DispatchMessage_Native(); + FX_BOOL IsIdleMessage_Native(); + FWL_ERR Exit_Native(int32_t iExitCode); + FWL_ERR CreateWidgetWithNativeId_Native(IFWL_Widget* pWidget, void* vp); + IFWL_Widget* GetWidgetAtPoint(IFWL_Widget* pParent, FX_FLOAT fx, FX_FLOAT fy); + void NotifySizeChanged(IFWL_Widget* pForm, FX_FLOAT fx, FX_FLOAT fy); + IFWL_Widget* nextTab(IFWL_Widget* parent, IFWL_Widget* focus, FX_BOOL& bFind); + int32_t CountRadioButtonGroup(IFWL_Widget* pFirst); + IFWL_Widget* GetSiblingRadioButton(IFWL_Widget* pWidget, FX_BOOL bNext); + IFWL_Widget* GetRadioButtonGroupHeader(IFWL_Widget* pRadioButton); + void GetSameGroupRadioButton(IFWL_Widget* pRadioButton, CFX_PtrArray& group); + IFWL_Widget* GetDefaultButton(IFWL_Widget* pParent); + void AddRedrawCounts(IFWL_Widget* pWidget); + void ResetRedrawCounts(IFWL_Widget* pWidget); + IFWL_AdapterWidgetMgr* GetAdapterWidgetMgr() { return m_pAdapter; } + CFWL_WidgetMgrDelegate* GetDelegate() { return m_pDelegate; } + CFWL_WidgetMgrItem* GetWidgetMgrItem(IFWL_Widget* pWidget); + FX_BOOL IsThreadEnabled(); + FX_BOOL IsFormDisabled(); + FX_BOOL GetAdapterPopupPos(IFWL_Widget* pWidget, + FX_FLOAT fMinHeight, + FX_FLOAT fMaxHeight, + const CFX_RectF& rtAnchor, + CFX_RectF& rtPopup); + + protected: + int32_t TravelWidgetMgr(CFWL_WidgetMgrItem* pParent, + int32_t* pIndex, + CFWL_WidgetMgrItem* pItem, + IFWL_Widget** pWidget = NULL); + FX_BOOL IsAbleNative(IFWL_Widget* pWidget); + CFX_MapPtrToPtr m_mapWidgetItem; + IFWL_AdapterWidgetMgr* m_pAdapter; + CFWL_WidgetMgrDelegate* m_pDelegate; + friend class CFWL_WidgetMgrDelegate; + FX_DWORD m_dwCapability; +#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) + CFX_RectF m_rtScreen; +#endif +}; + +class CFWL_WidgetMgrDelegate : public IFWL_WidgetMgrDelegate { + public: + CFWL_WidgetMgrDelegate(CFWL_WidgetMgr* pWidgetMgr); + ~CFWL_WidgetMgrDelegate() override {} + + // IFWL_WidgetMgrDelegate: + FWL_ERR OnSetCapability( + FX_DWORD dwCapability = FWL_WGTMGR_DisableThread) override; + int32_t OnProcessMessageToForm(CFWL_Message* pMessage) override; + FWL_ERR OnDrawWidget(IFWL_Widget* pWidget, + CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix) override; + + protected: + void DrawChild(IFWL_Widget* pParent, + const CFX_RectF& rtClip, + CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix); + CFX_Graphics* DrawWidgetBefore(IFWL_Widget* pWidget, + CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix); + void DrawWidgetAfter(IFWL_Widget* pWidget, + CFX_Graphics* pGraphics, + CFX_RectF& rtClip, + const CFX_Matrix* pMatrix); + FX_BOOL IsNeedRepaint(IFWL_Widget* pWidget, + CFX_Matrix* pMatrix, + const CFX_RectF& rtDirty); + FX_BOOL bUseOffscreenDirect(IFWL_Widget* pWidget); + + CFWL_WidgetMgr* m_pWidgetMgr; +}; + +#endif // XFA_SRC_FWL_SRC_CORE_FWL_WIDGETMGRIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_appimp.h b/xfa/src/fwl/src/core/include/fwl_appimp.h deleted file mode 100644 index d30c1b0aab..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_appimp.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_APPIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_APPIMP_H_ - -#include - -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" - -class CFWL_WidgetMgr; -class IFWL_AdapterNative; -class IFWL_WidgetMgr; -class IFWL_ThemeProvider; -class IFWL_App; - -class CFWL_AppImp : public CFWL_NoteThreadImp { - public: - CFWL_AppImp(IFWL_App* pIface, IFWL_AdapterNative* pAdapter); - virtual ~CFWL_AppImp(); - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual IFWL_AdapterNative* GetAdapterNative() const; - virtual IFWL_WidgetMgr* GetWidgetMgr() const; - virtual IFWL_ThemeProvider* GetThemeProvider() const; - virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); - virtual FWL_ERR Exit(int32_t iExitCode = 0); - - protected: - IFWL_AdapterNative* const m_pAdapterNative; - std::unique_ptr m_pWidgetMgr; - IFWL_ThemeProvider* m_pThemeProvider; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_APPIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_contentimp.h b/xfa/src/fwl/src/core/include/fwl_contentimp.h deleted file mode 100644 index a67d18da0a..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_contentimp.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_CONTENTIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_CONTENTIMP_H_ - -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class IFWL_Widget; - -class CFWL_ContentImp : public CFWL_WidgetImp { - public: - CFWL_ContentImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - - virtual ~CFWL_ContentImp(); - virtual FWL_ERR InsertWidget(IFWL_Widget* pChild, int32_t nIndex = -1); - virtual FWL_ERR RemoveWidget(IFWL_Widget* pWidget); - virtual FWL_ERR RemoveAllWidgets(); - FWL_ERR GetMinSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight); - FWL_ERR SetMinSize(FX_FLOAT fWidth, FX_FLOAT fHeight); - FWL_ERR GetMaxSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight); - FWL_ERR SetMaxSize(FX_FLOAT fWidth, FX_FLOAT fHeight); - - protected: - FX_FLOAT m_fWidthMin; - FX_FLOAT m_fWidthMax; - FX_FLOAT m_fHeightMin; - FX_FLOAT m_fHeightMax; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_CONTENTIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_formimp.h b/xfa/src/fwl/src/core/include/fwl_formimp.h deleted file mode 100644 index 25a5ebedb4..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_formimp.h +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_FORMIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_FORMIMP_H_ - -#include "xfa/include/fwl/core/fwl_form.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_NoteLoop; -class CFWL_WidgetImpProperties; -class CFWL_MsgMouse; -class IFWL_Widget; -class IFWL_ThemeProvider; -class CFWL_SysBtn; -class CFWL_FormImp; -class CFWL_FormImpDelegate; - -#define FWL_SYSBUTTONSTATE_Hover 0x0001 -#define FWL_SYSBUTTONSTATE_Pressed 0x0002 -#define FWL_SYSBUTTONSTATE_Disabled 0x0010 -class CFWL_SysBtn { - public: - CFWL_SysBtn() { - m_rtBtn.Set(0, 0, 0, 0); - m_dwState = 0; - } - - FX_BOOL IsHover() { return m_dwState & FWL_SYSBUTTONSTATE_Hover; } - FX_BOOL IsPressed() { return m_dwState & FWL_SYSBUTTONSTATE_Pressed; } - FX_BOOL IsDisabled() { return m_dwState & FWL_SYSBUTTONSTATE_Disabled; } - void SetNormal() { m_dwState &= 0xFFF0; } - void SetPressed() { - SetNormal(); - m_dwState |= FWL_SYSBUTTONSTATE_Pressed; - } - void SetHover() { - SetNormal(); - m_dwState |= FWL_SYSBUTTONSTATE_Hover; - } - void SetDisabled(FX_BOOL bDisabled) { - bDisabled ? m_dwState |= FWL_SYSBUTTONSTATE_Disabled - : m_dwState &= ~FWL_SYSBUTTONSTATE_Disabled; - } - int32_t GetPartState() { - return (IsDisabled() ? FWL_PARTSTATE_FRM_Disabled : (m_dwState + 1)); - } - - CFX_RectF m_rtBtn; - FX_DWORD m_dwState; -}; -enum FORM_RESIZETYPE { - FORM_RESIZETYPE_None = 0, - FORM_RESIZETYPE_Cap, - FORM_RESIZETYPE_Left, - FORM_RESIZETYPE_Top, - FORM_RESIZETYPE_Right, - FORM_RESIZETYPE_Bottom, - FORM_RESIZETYPE_LeftTop, - FORM_RESIZETYPE_LeftBottom, - FORM_RESIZETYPE_RightTop, - FORM_RESIZETYPE_RightBottom -}; -typedef struct RestoreResizeInfo { - CFX_PointF m_ptStart; - CFX_SizeF m_szStart; -} RestoreInfo; -class CFWL_FormImp : public CFWL_PanelImp { - public: - CFWL_FormImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); - virtual ~CFWL_FormImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR GetClientRect(CFX_RectF& rect); - virtual FWL_ERR Update(); - virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_FORMSIZE GetFormSize(); - virtual FWL_ERR SetFormSize(FWL_FORMSIZE eFormSize); - virtual IFWL_Widget* DoModal(); - virtual IFWL_Widget* DoModal(FX_DWORD& dwCommandID); - virtual FWL_ERR EndDoModal(); - virtual FWL_ERR SetBorderRegion(CFX_Path* pPath); - virtual void DrawBackground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme); - CFWL_WidgetImp* GetSubFocus(); - void SetSubFocus(CFWL_WidgetImp* pWidget); - CFX_MapAccelerators& GetAccelerator(); - void SetAccelerator(CFX_MapAccelerators* pAccelerators); - - protected: - void ShowChildWidget(IFWL_Widget* pParent); - void RemoveSysButtons(); - void CalcContentRect(CFX_RectF& rtContent); - CFWL_SysBtn* GetSysBtnAtPoint(FX_FLOAT fx, FX_FLOAT fy); - CFWL_SysBtn* GetSysBtnByState(FX_DWORD dwState); - CFWL_SysBtn* GetSysBtnByIndex(int32_t nIndex); - int32_t GetSysBtnIndex(CFWL_SysBtn* pBtn); - FX_FLOAT GetCaptionHeight(); - void DrawCaptionText(CFX_Graphics* pGs, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void DrawIconImage(CFX_Graphics* pGs, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void GetEdgeRect(CFX_RectF& rtEdge); - void SetWorkAreaRect(); - void SetCursor(FX_FLOAT fx, FX_FLOAT fy); - void Layout(); - void ReSetSysBtn(); - void RegisterForm(); - void UnRegisterForm(); - FX_BOOL IsDoModal(); - void SetThemeData(); - FX_BOOL HasIcon(); - void UpdateIcon(); - void UpdateCaption(); - void DoWidthLimit(FX_FLOAT& fLeft, - FX_FLOAT& fWidth, - FX_FLOAT fCurX, - FX_FLOAT fSpace, - FX_FLOAT fLimitMin, - FX_FLOAT fLimitMax, - FX_BOOL bLeft); - void DoHeightLimit(FX_FLOAT& fTop, - FX_FLOAT& fHeight, - FX_FLOAT fCurY, - FX_FLOAT fSpace, - FX_FLOAT fLimitMin, - FX_FLOAT fLimitMax, - FX_BOOL bTop); - CFX_MapAccelerators m_mapAccelerators; - CFX_RectF m_rtRestore; - CFX_RectF m_rtCaptionText; - CFX_RectF m_rtRelative; - CFX_RectF m_rtCaption; - CFX_RectF m_rtIcon; - CFWL_SysBtn* m_pCloseBox; - CFWL_SysBtn* m_pMinBox; - CFWL_SysBtn* m_pMaxBox; - CFWL_SysBtn* m_pCaptionBox; - CFWL_NoteLoop* m_pNoteLoop; - CFWL_WidgetImp* m_pSubFocus; - RestoreInfo m_InfoStart; - FX_FLOAT m_fCXBorder; - FX_FLOAT m_fCYBorder; - int32_t m_iCaptureBtn; - int32_t m_iSysBox; - int32_t m_eResizeType; - FX_BOOL m_bLButtonDown; - FX_BOOL m_bMaximized; - FX_BOOL m_bSetMaximize; - FX_BOOL m_bCustomizeLayout; - FWL_FORMSIZE m_eFormSize; - FX_BOOL m_bDoModalFlag; - FX_FLOAT m_fSmallIconSz; - FX_FLOAT m_fBigIconSz; - CFX_DIBitmap* m_pBigIcon; - CFX_DIBitmap* m_pSmallIcon; - FX_BOOL m_bMouseIn; - friend class CFWL_FormImpDelegate; -}; -class CFWL_FormImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_FormImpDelegate(CFWL_FormImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - void OnLButtonDown(CFWL_MsgMouse* pMsg); - void OnLButtonUp(CFWL_MsgMouse* pMsg); - void OnMouseMove(CFWL_MsgMouse* pMsg); - void OnMouseHover(CFWL_MsgMouse* pMsg); - void OnMouseLeave(CFWL_MsgMouse* pMsg); - void OnLButtonDblClk(CFWL_MsgMouse* pMsg); - void OnWindowMove(CFWL_MsgWindowMove* pMsg); - void OnClose(CFWL_MsgClose* pMsg); - CFWL_FormImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_FORMIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_gridimp.h b/xfa/src/fwl/src/core/include/fwl_gridimp.h deleted file mode 100644 index 54f4e5046d..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_gridimp.h +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_GRIDIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_GRIDIMP_H_ - -#include "xfa/include/fwl/core/fwl_app.h" -#include "xfa/include/fwl/core/fwl_content.h" -#include "xfa/include/fwl/core/fwl_grid.h" -#include "xfa/src/fwl/src/core/include/fwl_contentimp.h" - -class CFWL_GridLength { - public: - CFWL_GridLength() : fLength(0), eUnit(FWL_GRIDUNIT_Fixed) {} - CFWL_GridLength(FX_FLOAT fValue, FWL_GRIDUNIT e) - : fLength(fValue), eUnit(e) {} - FX_FLOAT fLength; - FWL_GRIDUNIT eUnit; -}; - -class CFWL_GridColRow { - public: - CFWL_GridColRow() - : m_Size(1, FWL_GRIDUNIT_Scaled), - m_MinSize(0, FWL_GRIDUNIT_Fixed), - m_MaxSize(0, FWL_GRIDUNIT_Infinity), - m_fActualSize(0), - m_fActualPos(0) {} - CFWL_GridLength m_Size; - CFWL_GridLength m_MinSize; - CFWL_GridLength m_MaxSize; - FX_FLOAT m_fActualSize; - FX_FLOAT m_fActualPos; -}; - -class CFWL_GridWidgetInfo { - public: - CFWL_GridWidgetInfo() - : m_iColumn(0), - m_iColumnSpan(1), - m_iRow(0), - m_iRowSpan(1), - m_dwMarginFlag(0), - m_fActualWidth(0), - m_fActualHeight(0) { - m_Size[FWL_GRIDSIZE_Width].eUnit = FWL_GRIDUNIT_Auto; - m_Size[FWL_GRIDSIZE_Width].fLength = 0; - m_Size[FWL_GRIDSIZE_Height].eUnit = FWL_GRIDUNIT_Auto; - m_Size[FWL_GRIDSIZE_Height].fLength = 0; - m_Size[FWL_GRIDSIZE_MinWidth].eUnit = FWL_GRIDUNIT_Fixed; - m_Size[FWL_GRIDSIZE_MinWidth].fLength = 0; - m_Size[FWL_GRIDSIZE_MaxWidth].eUnit = FWL_GRIDUNIT_Infinity; - m_Size[FWL_GRIDSIZE_MaxWidth].fLength = 0; - m_Size[FWL_GRIDSIZE_MinHeight].eUnit = FWL_GRIDUNIT_Fixed; - m_Size[FWL_GRIDSIZE_MinHeight].fLength = 0; - m_Size[FWL_GRIDSIZE_MaxHeight].eUnit = FWL_GRIDUNIT_Infinity; - m_Size[FWL_GRIDSIZE_MaxHeight].fLength = 0; - m_Margin[0] = m_Margin[1] = m_Margin[2] = m_Margin[3] = 0; - } - int32_t m_iColumn; - int32_t m_iColumnSpan; - int32_t m_iRow; - int32_t m_iRowSpan; - CFWL_GridLength m_Size[6]; - FX_DWORD m_dwMarginFlag; - FX_FLOAT m_Margin[4]; - FX_FLOAT m_fActualWidth; - FX_FLOAT m_fActualHeight; -}; - -class CFWL_GridImp : public CFWL_ContentImp { - public: - CFWL_GridImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); - virtual ~CFWL_GridImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR SetWidgetRect(const CFX_RectF& rect); - virtual FWL_ERR Update(); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - - virtual FWL_ERR InsertWidget(IFWL_Widget* pChild, int32_t nIndex = -1); - virtual FWL_ERR RemoveWidget(IFWL_Widget* pWidget); - virtual FWL_HGRIDCOLROW InsertColRow(FX_BOOL bColumn, int32_t nIndex = -1); - virtual int32_t CountColRows(FX_BOOL bColumn); - virtual FWL_HGRIDCOLROW GetColRow(FX_BOOL bColumn, int32_t nIndex); - virtual int32_t GetIndex(FWL_HGRIDCOLROW hColRow); - virtual FX_FLOAT GetSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit); - virtual FWL_ERR SetSize(FWL_HGRIDCOLROW hColRow, - FX_FLOAT fSize, - FWL_GRIDUNIT eUnit); - FX_FLOAT GetMinSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit); - FWL_ERR SetMinSize(FWL_HGRIDCOLROW hColRow, - FX_FLOAT fSize, - FWL_GRIDUNIT eUnit); - FX_FLOAT GetMaxSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit); - FWL_ERR SetMaxSize(FWL_HGRIDCOLROW hColRow, - FX_FLOAT fSize, - FWL_GRIDUNIT eUnit); - virtual FX_BOOL DeleteColRow(FWL_HGRIDCOLROW hColRow); - virtual FX_BOOL IsColumn(FWL_HGRIDCOLROW hColRow); - virtual int32_t GetWidgetPos(IFWL_Widget* pWidget, FX_BOOL bColumn); - virtual FWL_ERR SetWidgetPos(IFWL_Widget* pWidget, - int32_t iPos, - FX_BOOL bColumn); - virtual int32_t GetWidgetSpan(IFWL_Widget* pWidget, FX_BOOL bColumn); - virtual FWL_ERR SetWidgetSpan(IFWL_Widget* pWidget, - int32_t iSpan, - FX_BOOL bColumn); - virtual FX_FLOAT GetWidgetSize(IFWL_Widget* pWidget, - FWL_GRIDSIZE eSize, - FWL_GRIDUNIT& eUnit); - virtual FWL_ERR SetWidgetSize(IFWL_Widget* pWidget, - FWL_GRIDSIZE eSize, - FX_FLOAT fSize, - FWL_GRIDUNIT eUit); - virtual FX_BOOL GetWidgetMargin(IFWL_Widget* pWidget, - FWL_GRIDMARGIN eMargin, - FX_FLOAT& fMargin); - virtual FWL_ERR SetWidgetMargin(IFWL_Widget* pWidget, - FWL_GRIDMARGIN eMargin, - FX_FLOAT fMargin); - virtual FWL_ERR RemoveWidgetMargin(IFWL_Widget* pWidget, - FWL_GRIDMARGIN eMargin); - virtual FX_FLOAT GetGridSize(FWL_GRIDSIZE eSize, FWL_GRIDUNIT& eUnit); - virtual FWL_ERR SetGridSize(FWL_GRIDSIZE eSize, - FX_FLOAT fSize, - FWL_GRIDUNIT eUit); - - protected: - CFWL_GridWidgetInfo* GetWidgetInfo(IFWL_Widget* pWidget); - void ProcFixedColRow(CFWL_GridColRow* pColRow, - int32_t nIndex, - FX_FLOAT fColRowSize, - FX_BOOL bColumn); - void ProcAutoColRow(CFWL_GridColRow* pColRow, - int32_t nIndex, - FX_BOOL bColumn); - void ProcScaledColRow(CFWL_GridColRow* pColRow, - int32_t nIndex, - FX_FLOAT fColRowSize, - FX_BOOL bColumn); - void CalcWidgetWidth(IFWL_Widget* pWidget, - CFWL_GridWidgetInfo* pInfo, - FX_FLOAT fColunmWidth); - void CalcWidgetHeigt(IFWL_Widget* pWidget, - CFWL_GridWidgetInfo* pInfo, - FX_FLOAT fRowHeigt); - FX_FLOAT CalcAutoColumnWidgetWidth(IFWL_Widget* pWidget, - CFWL_GridWidgetInfo* pInfo); - FX_FLOAT CalcAutoColumnWidgetHeight(IFWL_Widget* pWidget, - CFWL_GridWidgetInfo* pInfo); - FX_FLOAT ProcessColumns(FX_FLOAT fWidth); - FX_FLOAT ProcessRows(FX_FLOAT fHeight); - FX_FLOAT ProcessUnCertainColumns(); - FX_FLOAT ProcessUnCertainRows(); - FX_BOOL SetColRowActualSize(CFWL_GridColRow* pColRow, - FX_FLOAT fSize, - FX_BOOL bSetBeyond = FALSE); - FX_FLOAT SetWidgetActualWidth(CFWL_GridWidgetInfo* pInfo, FX_FLOAT fWidth); - FX_FLOAT SetWidgetActualHeight(CFWL_GridWidgetInfo* pInfo, FX_FLOAT fHeight); - void SetAllWidgetsRect(); - FX_BOOL IsGrid(IFWL_Widget* pWidget); - void SetSpanAutoColRowSize(const CFX_PtrArray& spanAutos, - FX_FLOAT fTotalSize); - void SetSpanScaledColRowSize(const CFX_PtrArray& spanScaleds, - FX_FLOAT fTotalSize, - FX_FLOAT fTotalScaledNum); - void SetScaledColRowsSize(const CFX_PtrArray& spanScaleds, - FX_FLOAT fTotalSize, - FX_FLOAT fTotalScaledNum); - CFX_PtrArray m_Rows; - CFX_PtrArray m_Columns; - CFX_PtrArray m_Widgets; - CFX_MapPtrToPtr m_mapWidgetInfo; - CFWL_GridLength m_Size[6]; - friend class CFWL_GridImpDelegate; -}; - -class CFWL_GridImpDelegate : public CFWL_WidgetImpDelegate { - public: - CFWL_GridImpDelegate(CFWL_GridImp* pOwner); - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; - - protected: - CFWL_GridImp* m_pOwner; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_GRIDIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_noteimp.h b/xfa/src/fwl/src/core/include/fwl_noteimp.h deleted file mode 100644 index eeb86b6026..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_noteimp.h +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_NOTEIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_NOTEIMP_H_ - -#include "xfa/include/fwl/core/fwl_note.h" - -class CFWL_WidgetImp; -class CFWL_ToolTipImp; -class CFWL_CoreToopTipDP; -class CFWL_NoteDriver; -class CFWL_EventTarget; -class CFWL_ToolTipContainer; - -class CFWL_NoteLoop : public IFWL_NoteLoop { - public: - CFWL_NoteLoop(CFWL_WidgetImp* pForm = NULL); - - // IFWL_NoteLoop: - ~CFWL_NoteLoop() override {} - FX_BOOL PreProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR Idle(int32_t count) override; - - CFWL_WidgetImp* GetForm(); - FX_BOOL ContinueModal(); - FWL_ERR EndModalLoop(); - FX_BOOL TranslateAccelerator(CFWL_Message* pMessage); - FWL_ERR SetMainForm(CFWL_WidgetImp* pForm); - - protected: - void GenerateCommondEvent(FX_DWORD dwCommand); - - CFWL_WidgetImp* m_pForm; - FX_BOOL m_bContinueModal; -}; -class CFWL_NoteDriver : public IFWL_NoteDriver { - public: - CFWL_NoteDriver(); - ~CFWL_NoteDriver() override; - - // IFWL_NoteDriver: - FX_BOOL SendNote(CFWL_Note* pNote) override; - FX_BOOL PostMessage(CFWL_Message* pMessage) override; - FWL_ERR RegisterEventTarget(IFWL_Widget* pListener, - IFWL_Widget* pEventSource = NULL, - FX_DWORD dwFilter = FWL_EVENT_ALL_MASK) override; - FWL_ERR UnregisterEventTarget(IFWL_Widget* pListener) override; - void ClearEventTargets(FX_BOOL bRemoveAll) override; - int32_t GetQueueMaxSize() const override; - FWL_ERR SetQueueMaxSize(const int32_t size) override; - IFWL_NoteThread* GetOwnerThread() const override; - FWL_ERR PushNoteLoop(IFWL_NoteLoop* pNoteLoop) override; - IFWL_NoteLoop* PopNoteLoop() override; - IFWL_Widget* GetFocus() override; - FX_BOOL SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify = FALSE) override; - void SetGrab(IFWL_Widget* pGrab, FX_BOOL bSet) override; - FWL_ERR Run() override; - - IFWL_Widget* GetHover(); - void SetHover(IFWL_Widget* pHover); - void NotifyTargetHide(IFWL_Widget* pNoteTarget); - void NotifyTargetDestroy(IFWL_Widget* pNoteTarget); - void NotifyFullScreenMode(IFWL_Widget* pNoteTarget, FX_BOOL bFullScreen); - FWL_ERR RegisterForm(CFWL_WidgetImp* pForm); - FWL_ERR UnRegisterForm(CFWL_WidgetImp* pForm); - FX_BOOL QueueMessage(CFWL_Message* pMessage); - FX_BOOL UnqueueMessage(CFWL_NoteLoop* pNoteLoop); - CFWL_NoteLoop* GetTopLoop(); - int32_t CountLoop(); - void SetHook(FWLMessageHookCallback callback, void* info); - FX_BOOL ProcessMessage(CFWL_Message* pMessage); - - protected: - FX_BOOL DispatchMessage(CFWL_Message* pMessage, IFWL_Widget* pMessageForm); - FX_BOOL DoActivate(CFWL_MsgActivate* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoDeactivate(CFWL_MsgDeactivate* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoSetFocus(CFWL_MsgSetFocus* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoKillFocus(CFWL_MsgKillFocus* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoKey(CFWL_MsgKey* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoMouse(CFWL_MsgMouse* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoWheel(CFWL_MsgMouseWheel* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoSize(CFWL_MsgSize* pMsg); - FX_BOOL DoWindowMove(CFWL_MsgWindowMove* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoDragFiles(CFWL_MsgDropFiles* pMsg, IFWL_Widget* pMessageForm); - FX_BOOL DoMouseEx(CFWL_MsgMouse* pMsg, IFWL_Widget* pMessageForm); - void MouseSecondary(CFWL_MsgMouse* pMsg); - FX_BOOL IsValidMessage(CFWL_Message* pMessage); - IFWL_Widget* GetMessageForm(IFWL_Widget* pDstTarget); - void ClearInvalidEventTargets(FX_BOOL bRemoveAll); - CFX_PtrArray m_forms; - CFX_PtrArray m_noteQueue; - CFX_PtrArray m_noteLoopQueue; - CFX_MapPtrToPtr m_eventTargets; - int32_t m_sendEventCalled; - int32_t m_maxSize; - FX_BOOL m_bFullScreen; - IFWL_Widget* m_pHover; - IFWL_Widget* m_pFocus; - IFWL_Widget* m_pGrab; - CFWL_NoteLoop* m_pNoteLoop; - FWLMessageHookCallback m_hook; - void* m_hookInfo; -}; -typedef CFX_MapPtrTemplate CFWL_EventSource; -class CFWL_EventTarget { - public: - CFWL_EventTarget(CFWL_NoteDriver* pNoteDriver, IFWL_Widget* pListener) - : m_pListener(pListener), m_pNoteDriver(pNoteDriver), m_bInvalid(FALSE) {} - ~CFWL_EventTarget(); - int32_t SetEventSource(IFWL_Widget* pSource, - FX_DWORD dwFilter = FWL_EVENT_ALL_MASK); - FX_BOOL ProcessEvent(CFWL_Event* pEvent); - FX_BOOL IsFilterEvent(CFWL_Event* pEvent, FX_DWORD dwFilter); - FX_BOOL IsInvalid() { return m_bInvalid; } - void FlagInvalid() { m_bInvalid = TRUE; } - - protected: - CFWL_EventSource m_eventSources; - IFWL_Widget* m_pListener; - CFWL_NoteDriver* m_pNoteDriver; - FX_BOOL m_bInvalid; -}; -class CFWL_ToolTipContainer { - public: - static CFWL_ToolTipContainer* getInstance(); - static void DeleteInstance(); - - FX_ERR AddToolTipTarget(IFWL_ToolTipTarget* pTarget); - FX_ERR RemoveToolTipTarget(IFWL_ToolTipTarget* pTarget); - IFWL_ToolTipTarget* GetCurrentToolTipTarget(); - - FX_BOOL HasToolTip(IFWL_Widget* pWidget); - - FX_BOOL ProcessEnter(CFWL_EvtMouse* pEvt, IFWL_Widget* pOwner); - FX_BOOL ProcessLeave(CFWL_EvtMouse* pEvt); - - FX_ERR SetToolTipInitialDelay(int32_t iDelayTime); - FX_ERR SetToolTipAutoPopDelay(int32_t iDelayTime); - - protected: - CFWL_ToolTipContainer(); - virtual ~CFWL_ToolTipContainer(); - - IFWL_ToolTipTarget* pCurTarget; - CFWL_ToolTipImp* m_pToolTipImp; - CFWL_CoreToopTipDP* m_ToolTipDp; - CFX_PtrArray m_arrWidget; - - private: - static CFWL_ToolTipContainer* s_pInstance; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_NOTEIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_panelimp.h b/xfa/src/fwl/src/core/include/fwl_panelimp.h deleted file mode 100644 index 86a6a0f211..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_panelimp.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_PANELIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_PANELIMP_H_ - -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" - -class CFWL_WidgetImpProperties; -class IFWL_Widget; -class IFWL_Content; - -class CFWL_PanelImp : public CFWL_WidgetImp { - public: - CFWL_PanelImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_PanelImp(); - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR Update(); - virtual IFWL_Content* GetContent(); - virtual FWL_ERR SetContent(IFWL_Content* pContent); - - protected: - IFWL_Content* m_pContent; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_PANELIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_targetimp.h b/xfa/src/fwl/src/core/include/fwl_targetimp.h deleted file mode 100644 index e9c9aeb099..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_targetimp.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_TARGETIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_TARGETIMP_H_ - -#include "core/include/fxcrt/fx_basic.h" -#include "xfa/include/fwl/core/fwl_target.h" - -class CFWL_TargetImp { - public: - virtual ~CFWL_TargetImp(); - - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const; - virtual FX_DWORD GetClassID() const; - virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - - protected: - CFWL_TargetImp(); -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_TARGETIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_threadimp.h b/xfa/src/fwl/src/core/include/fwl_threadimp.h deleted file mode 100644 index 169de6a06d..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_threadimp.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_THREADIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_THREADIMP_H_ - -#include "xfa/include/fwl/core/fwl_thread.h" // For FWL_HTHREAD. - -class CFWL_NoteDriver; -class IFWL_NoteDriver; - -class CFWL_ThreadImp { - public: - virtual ~CFWL_ThreadImp() {} - IFWL_Thread* GetInterface() const { return m_pIface; } - virtual FWL_ERR Run(FWL_HTHREAD hThread); - - protected: - CFWL_ThreadImp(IFWL_Thread* pIface) : m_pIface(pIface) {} - - private: - IFWL_Thread* const m_pIface; -}; - -class CFWL_NoteThreadImp : public CFWL_ThreadImp { - public: - CFWL_NoteThreadImp(IFWL_NoteThread* pIface); - virtual ~CFWL_NoteThreadImp(); - - FWL_ERR Run(FWL_HTHREAD hThread) override; - virtual IFWL_NoteDriver* GetNoteDriver(); - - protected: - CFWL_NoteDriver* const m_pNoteDriver; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_THREADIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_widgetimp.h b/xfa/src/fwl/src/core/include/fwl_widgetimp.h deleted file mode 100644 index 65cd75e151..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_widgetimp.h +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_WIDGETIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_WIDGETIMP_H_ - -#include "xfa/include/fwl/core/fwl_widget.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" - -class CFWL_NoteThreadImp; -class CFWL_WidgetImpProperties; -class CFWL_WidgetMgr; -class IFWL_DataProvider; -class IFWL_ThemeProvider; -class IFWL_Widget; -class IFWL_WidgetDelegate; - -class CFWL_WidgetImp : public CFWL_TargetImp { - public: - virtual FWL_ERR Initialize(); - virtual FWL_ERR Finalize(); - - virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_ERR GetGlobalRect(CFX_RectF& rect); - virtual FWL_ERR SetWidgetRect(const CFX_RectF& rect); - virtual FWL_ERR GetClientRect(CFX_RectF& rect); - virtual IFWL_Widget* GetParent(); - virtual FWL_ERR SetParent(IFWL_Widget* pParent); - virtual IFWL_Widget* GetOwner(); - virtual FWL_ERR SetOwner(IFWL_Widget* pOwner); - virtual IFWL_Widget* GetOuter(); - virtual FX_DWORD GetStyles(); - virtual FWL_ERR ModifyStyles(FX_DWORD dwStylesAdded, - FX_DWORD dwStylesRemoved); - virtual FX_DWORD GetStylesEx(); - virtual FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded, - FX_DWORD dwStylesExRemoved); - virtual FX_DWORD GetStates(); - virtual FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); - virtual FWL_ERR SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback); - virtual void* GetPrivateData(void* module_id); - virtual FWL_ERR Update(); - virtual FWL_ERR LockUpdate(); - virtual FWL_ERR UnlockUpdate(); - virtual FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_ERR TransformTo(IFWL_Widget* pWidget, FX_FLOAT& fx, FX_FLOAT& fy); - virtual FWL_ERR TransformTo(IFWL_Widget* pWidget, CFX_RectF& rt); - virtual FWL_ERR GetMatrix(CFX_Matrix& matrix, FX_BOOL bGlobal = FALSE); - virtual FWL_ERR SetMatrix(const CFX_Matrix& matrix); - virtual FWL_ERR DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual IFWL_ThemeProvider* GetThemeProvider(); - virtual FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider); - virtual FWL_ERR SetDataProvider(IFWL_DataProvider* pDataProvider); - virtual IFWL_WidgetDelegate* SetDelegate(IFWL_WidgetDelegate* pDelegate); - virtual IFWL_NoteThread* GetOwnerThread() const; - FWL_ERR SetOwnerThread(CFWL_NoteThreadImp* pOwnerThread); - IFWL_Widget* GetInterface() const; - void SetInterface(IFWL_Widget* pInterface); - CFX_SizeF GetOffsetFromParent(IFWL_Widget* pParent); - - protected: - CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties, - IFWL_Widget* pOuter); - virtual ~CFWL_WidgetImp(); - FX_BOOL IsEnabled() const; - FX_BOOL IsVisible() const; - FX_BOOL IsActive() const; - FX_BOOL IsOverLapper() const; - FX_BOOL IsPopup() const; - FX_BOOL IsChild() const; - FX_BOOL IsLocked() const; - FX_BOOL IsOffscreen() const; - FX_BOOL HasBorder() const; - FX_BOOL HasEdge() const; - void GetEdgeRect(CFX_RectF& rtEdge); - FX_FLOAT GetBorderSize(FX_BOOL bCX = TRUE); - FX_FLOAT GetEdgeWidth(); - void GetRelativeRect(CFX_RectF& rect); - void* GetThemeCapacity(FX_DWORD dwCapacity); - IFWL_ThemeProvider* GetAvailableTheme(); - CFWL_WidgetImp* GetRootOuter(); - CFX_SizeF CalcTextSize(const CFX_WideString& wsText, - IFWL_ThemeProvider* pTheme, - FX_BOOL bMultiLine = FALSE, - int32_t iLineWidth = -1); - void CalcTextRect(const CFX_WideString& wsText, - IFWL_ThemeProvider* pTheme, - FX_DWORD dwTTOStyles, - int32_t iTTOAlign, - CFX_RectF& rect); - void SetFocus(FX_BOOL bFocus); - void SetGrab(FX_BOOL bSet); - FX_BOOL GetPopupPos(FX_FLOAT fMinHeight, - FX_FLOAT fMaxHeight, - const CFX_RectF& rtAnchor, - CFX_RectF& rtPopup); - FX_BOOL GetPopupPosMenu(FX_FLOAT fMinHeight, - FX_FLOAT fMaxHeight, - const CFX_RectF& rtAnchor, - CFX_RectF& rtPopup); - FX_BOOL GetPopupPosComboBox(FX_FLOAT fMinHeight, - FX_FLOAT fMaxHeight, - const CFX_RectF& rtAnchor, - CFX_RectF& rtPopup); - FX_BOOL GetPopupPosGeneral(FX_FLOAT fMinHeight, - FX_FLOAT fMaxHeight, - const CFX_RectF& rtAnchor, - CFX_RectF& rtPopup); - FX_BOOL GetScreenSize(FX_FLOAT& fx, FX_FLOAT& fy); - void RegisterEventTarget(IFWL_Widget* pEventSource = NULL, - FX_DWORD dwFilter = FWL_EVENT_ALL_MASK); - void UnregisterEventTarget(); - void DispatchKeyEvent(CFWL_MsgKey* pNote); - void DispatchEvent(CFWL_Event* pEvent); - void Repaint(const CFX_RectF* pRect = NULL); - void DrawBackground(CFX_Graphics* pGraphics, - int32_t iPartBk, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void DrawBorder(CFX_Graphics* pGraphics, - int32_t iPartBorder, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void DrawEdge(CFX_Graphics* pGraphics, - int32_t iPartEdge, - IFWL_ThemeProvider* pTheme, - const CFX_Matrix* pMatrix = NULL); - void NotifyDriver(); - - FX_BOOL IsParent(IFWL_Widget* pParent); - CFWL_WidgetMgr* m_pWidgetMgr; - CFWL_NoteThreadImp* m_pOwnerThread; - CFWL_WidgetImpProperties* m_pProperties; - CFX_PrivateData* m_pPrivateData; - IFWL_WidgetDelegate* m_pDelegate; - IFWL_WidgetDelegate* m_pCurDelegate; - IFWL_Widget* m_pOuter; - IFWL_Widget* m_pInterface; - int32_t m_iLock; - friend class CFWL_WidgetImpDelegate; - friend void FWL_SetWidgetRect(IFWL_Widget* widget, const CFX_RectF& rect); - friend void FWL_SetWidgetStates(IFWL_Widget* widget, FX_DWORD dwStates); - friend void FWL_SetWidgetStyles(IFWL_Widget* widget, FX_DWORD dwStyles); -}; - -class CFWL_WidgetImpDelegate : public IFWL_WidgetDelegate { - public: - CFWL_WidgetImpDelegate(); - ~CFWL_WidgetImpDelegate() override {} - int32_t OnProcessMessage(CFWL_Message* pMessage) override; - FWL_ERR OnProcessEvent(CFWL_Event* pEvent) override; - FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL) override; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_WIDGETIMP_H_ diff --git a/xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h b/xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h deleted file mode 100644 index 5c951777e8..0000000000 --- a/xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_WIDGETMGRIMP_H_ -#define XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_WIDGETMGRIMP_H_ - -#include "xfa/include/fwl/core/fwl_widgetmgr.h" - -class IFWL_Widget; -class IFWL_AdapterWidgetMgr; -class CFWL_WidgetMgrDelegate; -class IFWL_AdapterNative; - -class CFWL_WidgetMgrItem { - public: - CFWL_WidgetMgrItem() - : pParent(NULL), - pOwner(NULL), - pChild(NULL), - pPrevious(NULL), - pNext(NULL), - pWidget(NULL), - pOffscreen(NULL), - iRedrawCounter(0) -#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) - , - bOutsideChanged(FALSE) -#endif - { - } - ~CFWL_WidgetMgrItem() { - if (pOffscreen) { - delete pOffscreen; - pOffscreen = NULL; - } - } - CFWL_WidgetMgrItem* pParent; - CFWL_WidgetMgrItem* pOwner; - CFWL_WidgetMgrItem* pChild; - CFWL_WidgetMgrItem* pPrevious; - CFWL_WidgetMgrItem* pNext; - IFWL_Widget* pWidget; - CFX_Graphics* pOffscreen; - int32_t iRedrawCounter; -#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) - FX_BOOL bOutsideChanged; -#endif -}; - -class CFWL_WidgetMgr : public IFWL_WidgetMgr { - public: - CFWL_WidgetMgr(IFWL_AdapterNative* pAdapterNative); - ~CFWL_WidgetMgr() override; - - // IFWL_WidgetMgr: - int32_t CountWidgets(IFWL_Widget* pParent = NULL) override; - IFWL_Widget* GetWidget(int32_t nIndex, IFWL_Widget* pParent = NULL) override; - IFWL_Widget* GetWidget(IFWL_Widget* pWidget, - FWL_WGTRELATION eRelation) override; - int32_t GetWidgetIndex(IFWL_Widget* pWidget) override; - FX_BOOL SetWidgetIndex(IFWL_Widget* pWidget, int32_t nIndex) override; - FWL_ERR RepaintWidget(IFWL_Widget* pWidget, - const CFX_RectF* pRect = NULL) override; - FX_DWORD GetCapability() override { return m_dwCapability; } - - void AddWidget(IFWL_Widget* pWidget); - void InsertWidget(IFWL_Widget* pParent, - IFWL_Widget* pChild, - int32_t nIndex = -1); - void RemoveWidget(IFWL_Widget* pWidget); - void SetOwner(IFWL_Widget* pOwner, IFWL_Widget* pOwned); - void SetParent(IFWL_Widget* pParent, IFWL_Widget* pChild); - FX_BOOL IsChild(IFWL_Widget* pChild, IFWL_Widget* pParent); - FWL_ERR CreateWidget_Native(IFWL_Widget* pWidget); - FWL_ERR DestroyWidget_Native(IFWL_Widget* pWidget); - FWL_ERR GetWidgetRect_Native(IFWL_Widget* pWidget, CFX_RectF& rect); - FWL_ERR SetWidgetRect_Native(IFWL_Widget* pWidget, const CFX_RectF& rect); - FWL_ERR SetWidgetPosition_Native(IFWL_Widget* pWidget, - FX_FLOAT fx, - FX_FLOAT fy); - FWL_ERR SetWidgetIcon_Native(IFWL_Widget* pWidget, - const CFX_DIBitmap* pIcon, - FX_BOOL bBig); - FWL_ERR SetWidgetCaption_Native(IFWL_Widget* pWidget, - const CFX_WideStringC& wsCaption); - FWL_ERR SetBorderRegion_Native(IFWL_Widget* pWidget, CFX_Path* pPath); - FWL_ERR ShowWidget_Native(IFWL_Widget* pWidget); - FWL_ERR HideWidget_Native(IFWL_Widget* pWidget); - FWL_ERR SetNormal_Native(IFWL_Widget* pWidget); - FWL_ERR SetMaximize_Native(IFWL_Widget* pWidget); - FWL_ERR SetMinimize_Native(IFWL_Widget* pWidget); - FX_BOOL CheckMessage_Native(); - FWL_ERR DispatchMessage_Native(); - FX_BOOL IsIdleMessage_Native(); - FWL_ERR Exit_Native(int32_t iExitCode); - FWL_ERR CreateWidgetWithNativeId_Native(IFWL_Widget* pWidget, void* vp); - IFWL_Widget* GetWidgetAtPoint(IFWL_Widget* pParent, FX_FLOAT fx, FX_FLOAT fy); - void NotifySizeChanged(IFWL_Widget* pForm, FX_FLOAT fx, FX_FLOAT fy); - IFWL_Widget* nextTab(IFWL_Widget* parent, IFWL_Widget* focus, FX_BOOL& bFind); - int32_t CountRadioButtonGroup(IFWL_Widget* pFirst); - IFWL_Widget* GetSiblingRadioButton(IFWL_Widget* pWidget, FX_BOOL bNext); - IFWL_Widget* GetRadioButtonGroupHeader(IFWL_Widget* pRadioButton); - void GetSameGroupRadioButton(IFWL_Widget* pRadioButton, CFX_PtrArray& group); - IFWL_Widget* GetDefaultButton(IFWL_Widget* pParent); - void AddRedrawCounts(IFWL_Widget* pWidget); - void ResetRedrawCounts(IFWL_Widget* pWidget); - IFWL_AdapterWidgetMgr* GetAdapterWidgetMgr() { return m_pAdapter; } - CFWL_WidgetMgrDelegate* GetDelegate() { return m_pDelegate; } - CFWL_WidgetMgrItem* GetWidgetMgrItem(IFWL_Widget* pWidget); - FX_BOOL IsThreadEnabled(); - FX_BOOL IsFormDisabled(); - FX_BOOL GetAdapterPopupPos(IFWL_Widget* pWidget, - FX_FLOAT fMinHeight, - FX_FLOAT fMaxHeight, - const CFX_RectF& rtAnchor, - CFX_RectF& rtPopup); - - protected: - int32_t TravelWidgetMgr(CFWL_WidgetMgrItem* pParent, - int32_t* pIndex, - CFWL_WidgetMgrItem* pItem, - IFWL_Widget** pWidget = NULL); - FX_BOOL IsAbleNative(IFWL_Widget* pWidget); - CFX_MapPtrToPtr m_mapWidgetItem; - IFWL_AdapterWidgetMgr* m_pAdapter; - CFWL_WidgetMgrDelegate* m_pDelegate; - friend class CFWL_WidgetMgrDelegate; - FX_DWORD m_dwCapability; -#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) - CFX_RectF m_rtScreen; -#endif -}; - -class CFWL_WidgetMgrDelegate : public IFWL_WidgetMgrDelegate { - public: - CFWL_WidgetMgrDelegate(CFWL_WidgetMgr* pWidgetMgr); - ~CFWL_WidgetMgrDelegate() override {} - - // IFWL_WidgetMgrDelegate: - FWL_ERR OnSetCapability( - FX_DWORD dwCapability = FWL_WGTMGR_DisableThread) override; - int32_t OnProcessMessageToForm(CFWL_Message* pMessage) override; - FWL_ERR OnDrawWidget(IFWL_Widget* pWidget, - CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix) override; - - protected: - void DrawChild(IFWL_Widget* pParent, - const CFX_RectF& rtClip, - CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix); - CFX_Graphics* DrawWidgetBefore(IFWL_Widget* pWidget, - CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix); - void DrawWidgetAfter(IFWL_Widget* pWidget, - CFX_Graphics* pGraphics, - CFX_RectF& rtClip, - const CFX_Matrix* pMatrix); - FX_BOOL IsNeedRepaint(IFWL_Widget* pWidget, - CFX_Matrix* pMatrix, - const CFX_RectF& rtDirty); - FX_BOOL bUseOffscreenDirect(IFWL_Widget* pWidget); - - CFWL_WidgetMgr* m_pWidgetMgr; -}; - -#endif // XFA_SRC_FWL_SRC_CORE_INCLUDE_FWL_WIDGETMGRIMP_H_ diff --git a/xfa/src/fwl/src/lightwidget/caret.cpp b/xfa/src/fwl/src/lightwidget/caret.cpp index d9c3363ae1..cd37a3fe1e 100644 --- a/xfa/src/fwl/src/lightwidget/caret.cpp +++ b/xfa/src/fwl/src/lightwidget/caret.cpp @@ -10,7 +10,7 @@ #include "xfa/include/fwl/basewidget/fwl_caret.h" #include "xfa/include/fwl/lightwidget/edit.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" CFWL_Caret* CFWL_Caret::Create() { return new CFWL_Caret; diff --git a/xfa/src/fwl/src/lightwidget/tooltipctrl.cpp b/xfa/src/fwl/src/lightwidget/tooltipctrl.cpp index 05149709ef..71be73c433 100644 --- a/xfa/src/fwl/src/lightwidget/tooltipctrl.cpp +++ b/xfa/src/fwl/src/lightwidget/tooltipctrl.cpp @@ -8,12 +8,12 @@ #include -#include "xfa/src/fwl/src/core/include/fwl_formimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_panelimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_threadimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_formimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_panelimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_threadimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" CFWL_ToolTip* CFWL_ToolTip::Create() { return new CFWL_ToolTip; diff --git a/xfa/src/fwl/src/lightwidget/widget.cpp b/xfa/src/fwl/src/lightwidget/widget.cpp index 6603df7b57..dd2225637f 100644 --- a/xfa/src/fwl/src/lightwidget/widget.cpp +++ b/xfa/src/fwl/src/lightwidget/widget.cpp @@ -9,11 +9,11 @@ #include "xfa/include/fwl/core/fwl_theme.h" #include "xfa/include/fwl/core/fwl_thread.h" #include "xfa/src/fdp/include/fde_tto.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h" -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h" -#include "xfa/src/fwl/src/core/include/fwl_widgetmgrimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_noteimp.h" +#include "xfa/src/fwl/src/core/fwl_targetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetimp.h" +#include "xfa/src/fwl/src/core/fwl_widgetmgrimp.h" CFWL_WidgetImpProperties CFWL_WidgetProperties::MakeWidgetImpProperties( IFWL_DataProvider* pDataProvider) const { -- cgit v1.2.3