summaryrefslogtreecommitdiff
path: root/xfa/fwl
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fwl')
-rw-r--r--xfa/fwl/basewidget/fwl_barcodeimp.cpp3
-rw-r--r--xfa/fwl/basewidget/fwl_barcodeimp.h6
-rw-r--r--xfa/fwl/basewidget/fwl_caretimp.cpp5
-rw-r--r--xfa/fwl/basewidget/fwl_caretimp.h2
-rw-r--r--xfa/fwl/basewidget/fwl_checkboximp.cpp7
-rw-r--r--xfa/fwl/basewidget/fwl_checkboximp.h3
-rw-r--r--xfa/fwl/basewidget/fwl_comboboximp.cpp7
-rw-r--r--xfa/fwl/basewidget/fwl_datetimepickerimp.cpp5
-rw-r--r--xfa/fwl/basewidget/fwl_datetimepickerimp.h9
-rw-r--r--xfa/fwl/basewidget/fwl_editimp.cpp9
-rw-r--r--xfa/fwl/basewidget/fwl_editimp.h6
-rw-r--r--xfa/fwl/basewidget/fwl_listboximp.cpp6
-rw-r--r--xfa/fwl/basewidget/fwl_listboximp.h11
-rw-r--r--xfa/fwl/basewidget/fwl_monthcalendarimp.cpp7
-rw-r--r--xfa/fwl/basewidget/fwl_monthcalendarimp.h3
-rw-r--r--xfa/fwl/basewidget/fwl_pushbuttonimp.cpp6
-rw-r--r--xfa/fwl/basewidget/fwl_pushbuttonimp.h4
-rw-r--r--xfa/fwl/basewidget/fwl_scrollbarimp.cpp7
-rw-r--r--xfa/fwl/basewidget/fwl_scrollbarimp.h2
-rw-r--r--xfa/fwl/basewidget/fwl_spinbuttonimp.cpp10
-rw-r--r--xfa/fwl/basewidget/fwl_spinbuttonimp.h6
-rw-r--r--xfa/fwl/basewidget/fwl_tooltipctrlimp.cpp8
-rw-r--r--xfa/fwl/basewidget/fwl_tooltipctrlimp.h2
-rw-r--r--xfa/fwl/basewidget/fxmath_barcodeimp.h2
-rw-r--r--xfa/fwl/basewidget/ifwl_barcode.h63
-rw-r--r--xfa/fwl/basewidget/ifwl_caret.h33
-rw-r--r--xfa/fwl/basewidget/ifwl_checkbox.h85
-rw-r--r--xfa/fwl/basewidget/ifwl_combobox.h152
-rw-r--r--xfa/fwl/basewidget/ifwl_datetimepicker.h115
-rw-r--r--xfa/fwl/basewidget/ifwl_edit.h178
-rw-r--r--xfa/fwl/basewidget/ifwl_listbox.h142
-rw-r--r--xfa/fwl/basewidget/ifwl_monthcalendar.h139
-rw-r--r--xfa/fwl/basewidget/ifwl_picturebox.h59
-rw-r--r--xfa/fwl/basewidget/ifwl_pushbutton.h61
-rw-r--r--xfa/fwl/basewidget/ifwl_scrollbar.h77
-rw-r--r--xfa/fwl/basewidget/ifwl_spinbutton.h44
-rw-r--r--xfa/fwl/basewidget/ifwl_tooltip.h49
-rw-r--r--xfa/fwl/basewidget/ifx_barcode.h62
-rw-r--r--xfa/fwl/core/cfwl_event.h145
-rw-r--r--xfa/fwl/core/cfwl_message.h159
-rw-r--r--xfa/fwl/core/cfwl_note.h67
-rw-r--r--xfa/fwl/core/cfwl_themebackground.h25
-rw-r--r--xfa/fwl/core/cfwl_themepart.h31
-rw-r--r--xfa/fwl/core/cfwl_themetext.h23
-rw-r--r--xfa/fwl/core/cfwl_widgetimpproperties.h43
-rw-r--r--xfa/fwl/core/fwl_appimp.cpp6
-rw-r--r--xfa/fwl/core/fwl_contentimp.cpp2
-rw-r--r--xfa/fwl/core/fwl_error.h22
-rw-r--r--xfa/fwl/core/fwl_formimp.cpp12
-rw-r--r--xfa/fwl/core/fwl_formimp.h6
-rw-r--r--xfa/fwl/core/fwl_gridimp.cpp2
-rw-r--r--xfa/fwl/core/fwl_gridimp.h6
-rw-r--r--xfa/fwl/core/fwl_noteimp.cpp30
-rw-r--r--xfa/fwl/core/fwl_noteimp.h30
-rw-r--r--xfa/fwl/core/fwl_panelimp.cpp9
-rw-r--r--xfa/fwl/core/fwl_sdadapterimp.cpp8
-rw-r--r--xfa/fwl/core/fwl_sdadapterimp.h89
-rw-r--r--xfa/fwl/core/fwl_targetimp.h2
-rw-r--r--xfa/fwl/core/fwl_threadimp.cpp1
-rw-r--r--xfa/fwl/core/fwl_threadimp.h3
-rw-r--r--xfa/fwl/core/fwl_timerimp.cpp8
-rw-r--r--xfa/fwl/core/fwl_widgetdef.h249
-rw-r--r--xfa/fwl/core/fwl_widgetimp.cpp28
-rw-r--r--xfa/fwl/core/fwl_widgetimp.h8
-rw-r--r--xfa/fwl/core/fwl_widgetmgrimp.cpp9
-rw-r--r--xfa/fwl/core/fwl_widgetmgrimp.h4
-rw-r--r--xfa/fwl/core/ifwl_adapternative.h24
-rw-r--r--xfa/fwl/core/ifwl_adapterthreadmgr.h27
-rw-r--r--xfa/fwl/core/ifwl_adapterwidgetmgr.h81
-rw-r--r--xfa/fwl/core/ifwl_app.h45
-rw-r--r--xfa/fwl/core/ifwl_content.h30
-rw-r--r--xfa/fwl/core/ifwl_custom.h26
-rw-r--r--xfa/fwl/core/ifwl_custompanel.h28
-rw-r--r--xfa/fwl/core/ifwl_dataprovider.h22
-rw-r--r--xfa/fwl/core/ifwl_form.h97
-rw-r--r--xfa/fwl/core/ifwl_grid.h93
-rw-r--r--xfa/fwl/core/ifwl_notedriver.h58
-rw-r--r--xfa/fwl/core/ifwl_noteloop.h22
-rw-r--r--xfa/fwl/core/ifwl_notethread.h19
-rw-r--r--xfa/fwl/core/ifwl_panel.h30
-rw-r--r--xfa/fwl/core/ifwl_proxy.h21
-rw-r--r--xfa/fwl/core/ifwl_target.h52
-rw-r--r--xfa/fwl/core/ifwl_themeprovider.h58
-rw-r--r--xfa/fwl/core/ifwl_thread.h48
-rw-r--r--xfa/fwl/core/ifwl_timer.h24
-rw-r--r--xfa/fwl/core/ifwl_tooltiptarget.h37
-rw-r--r--xfa/fwl/core/ifwl_widget.h69
-rw-r--r--xfa/fwl/core/ifwl_widgetdelegate.h26
-rw-r--r--xfa/fwl/core/ifwl_widgetmgr.h51
-rw-r--r--xfa/fwl/core/ifwl_widgetmgrdelegate.h33
-rw-r--r--xfa/fwl/core/include/ifwl_adaptertimermgr.h25
-rw-r--r--xfa/fwl/lightwidget/app.cpp4
-rw-r--r--xfa/fwl/lightwidget/caret.cpp2
-rw-r--r--xfa/fwl/lightwidget/checkbox.cpp2
-rw-r--r--xfa/fwl/lightwidget/combobox.cpp4
-rw-r--r--xfa/fwl/lightwidget/datetimepicker.cpp7
-rw-r--r--xfa/fwl/lightwidget/edit.cpp2
-rw-r--r--xfa/fwl/lightwidget/scrollbar.cpp2
-rw-r--r--xfa/fwl/lightwidget/theme.cpp3
-rw-r--r--xfa/fwl/lightwidget/widget.cpp5
-rw-r--r--xfa/fwl/theme/barcodetp.cpp6
-rw-r--r--xfa/fwl/theme/carettp.cpp5
-rw-r--r--xfa/fwl/theme/checkboxtp.cpp6
-rw-r--r--xfa/fwl/theme/comboboxtp.cpp6
-rw-r--r--xfa/fwl/theme/datetimepickertp.cpp3
-rw-r--r--xfa/fwl/theme/edittp.cpp5
-rw-r--r--xfa/fwl/theme/formtp.cpp8
-rw-r--r--xfa/fwl/theme/listboxtp.cpp5
-rw-r--r--xfa/fwl/theme/monthcalendartp.cpp7
-rw-r--r--xfa/fwl/theme/pictureboxtp.cpp6
-rw-r--r--xfa/fwl/theme/pushbuttontp.cpp6
-rw-r--r--xfa/fwl/theme/scrollbartp.cpp6
-rw-r--r--xfa/fwl/theme/widgettp.cpp6
113 files changed, 3427 insertions, 147 deletions
diff --git a/xfa/fwl/basewidget/fwl_barcodeimp.cpp b/xfa/fwl/basewidget/fwl_barcodeimp.cpp
index 97ac8e4acb..1ee731399f 100644
--- a/xfa/fwl/basewidget/fwl_barcodeimp.cpp
+++ b/xfa/fwl/basewidget/fwl_barcodeimp.cpp
@@ -7,10 +7,11 @@
#include "xfa/fwl/basewidget/fwl_barcodeimp.h"
#include "xfa/fwl/basewidget/fwl_editimp.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
// static
IFWL_Barcode* IFWL_Barcode::Create(const CFWL_WidgetImpProperties& properties) {
diff --git a/xfa/fwl/basewidget/fwl_barcodeimp.h b/xfa/fwl/basewidget/fwl_barcodeimp.h
index bf7ad91050..2f12782c69 100644
--- a/xfa/fwl/basewidget/fwl_barcodeimp.h
+++ b/xfa/fwl/basewidget/fwl_barcodeimp.h
@@ -8,9 +8,9 @@
#define XFA_FWL_BASEWIDGET_FWL_BARCODEIMP_H_
#include "xfa/fwl/basewidget/fwl_editimp.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/fwl/basewidget/ifwl_barcode.h"
+#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
+#include "xfa/fwl/basewidget/ifx_barcode.h"
class CFWL_WidgetImpProperties;
class CFWL_BarcodeImpDelegate;
diff --git a/xfa/fwl/basewidget/fwl_caretimp.cpp b/xfa/fwl/basewidget/fwl_caretimp.cpp
index ea7402e029..cc0f548392 100644
--- a/xfa/fwl/basewidget/fwl_caretimp.cpp
+++ b/xfa/fwl/basewidget/fwl_caretimp.cpp
@@ -6,11 +6,12 @@
#include "xfa/fwl/basewidget/fwl_caretimp.h"
+#include "xfa/fwl/basewidget/ifwl_caret.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/basewidget/fwl_caret.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
// static
IFWL_Caret* IFWL_Caret::Create(const CFWL_WidgetImpProperties& properties,
diff --git a/xfa/fwl/basewidget/fwl_caretimp.h b/xfa/fwl/basewidget/fwl_caretimp.h
index dee4dd855d..c4b6015c01 100644
--- a/xfa/fwl/basewidget/fwl_caretimp.h
+++ b/xfa/fwl/basewidget/fwl_caretimp.h
@@ -8,8 +8,8 @@
#define XFA_FWL_BASEWIDGET_FWL_CARETIMP_H_
#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_timer.h"
#include "xfa/fxgraphics/cfx_color.h"
-#include "xfa/include/fwl/core/fwl_timer.h"
class CFWL_WidgetImpProperties;
class IFWL_Widget;
diff --git a/xfa/fwl/basewidget/fwl_checkboximp.cpp b/xfa/fwl/basewidget/fwl_checkboximp.cpp
index 5912d0e17c..8ab75562b9 100644
--- a/xfa/fwl/basewidget/fwl_checkboximp.cpp
+++ b/xfa/fwl/basewidget/fwl_checkboximp.cpp
@@ -9,12 +9,15 @@
#include <algorithm>
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_checkbox.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#include "xfa/include/fwl/basewidget/fwl_checkbox.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#define FWL_CKB_CaptionMargin 5
diff --git a/xfa/fwl/basewidget/fwl_checkboximp.h b/xfa/fwl/basewidget/fwl_checkboximp.h
index 1f6f5f3f7c..b5d0d153a7 100644
--- a/xfa/fwl/basewidget/fwl_checkboximp.h
+++ b/xfa/fwl/basewidget/fwl_checkboximp.h
@@ -9,9 +9,10 @@
#include "xfa/fwl/core/fwl_widgetimp.h"
+class CFWL_CheckBoxImpDelegate;
+class CFWL_MsgMouse;
class CFWL_WidgetImpProperties;
class IFWL_Widget;
-class CFWL_CheckBoxImpDelegate;
class CFWL_CheckBoxImp : public CFWL_WidgetImp {
public:
diff --git a/xfa/fwl/basewidget/fwl_comboboximp.cpp b/xfa/fwl/basewidget/fwl_comboboximp.cpp
index 7aae6d5a97..5404777e73 100644
--- a/xfa/fwl/basewidget/fwl_comboboximp.cpp
+++ b/xfa/fwl/basewidget/fwl_comboboximp.cpp
@@ -11,6 +11,10 @@
#include "xfa/fwl/basewidget/fwl_formproxyimp.h"
#include "xfa/fwl/basewidget/fwl_listboximp.h"
#include "xfa/fwl/basewidget/fwl_scrollbarimp.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_formimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
@@ -19,7 +23,8 @@
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_notethread.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
// static
IFWL_ComboBox* IFWL_ComboBox::Create(
diff --git a/xfa/fwl/basewidget/fwl_datetimepickerimp.cpp b/xfa/fwl/basewidget/fwl_datetimepickerimp.cpp
index cd82dde5ac..70f76c607b 100644
--- a/xfa/fwl/basewidget/fwl_datetimepickerimp.cpp
+++ b/xfa/fwl/basewidget/fwl_datetimepickerimp.cpp
@@ -9,13 +9,16 @@
#include "xfa/fwl/basewidget/fwl_editimp.h"
#include "xfa/fwl/basewidget/fwl_formproxyimp.h"
#include "xfa/fwl/basewidget/fwl_monthcalendarimp.h"
+#include "xfa/fwl/basewidget/ifwl_spinbutton.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
#include "xfa/fwl/core/fwl_formimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_panelimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#include "xfa/include/fwl/basewidget/fwl_spinbutton.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#define FWL_DTP_WIDTH 100
#define FWL_DTP_HEIGHT 20
diff --git a/xfa/fwl/basewidget/fwl_datetimepickerimp.h b/xfa/fwl/basewidget/fwl_datetimepickerimp.h
index 4c0ebc5cc5..9a4b920aed 100644
--- a/xfa/fwl/basewidget/fwl_datetimepickerimp.h
+++ b/xfa/fwl/basewidget/fwl_datetimepickerimp.h
@@ -11,11 +11,10 @@
#include "xfa/fwl/basewidget/fwl_editimp.h"
#include "xfa/fwl/basewidget/fwl_monthcalendarimp.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/include/fwl/core/fwl_form.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/basewidget/ifwl_datetimepicker.h"
+#include "xfa/fwl/basewidget/ifwl_edit.h"
+#include "xfa/fwl/basewidget/ifwl_monthcalendar.h"
+#include "xfa/fwl/core/ifwl_form.h"
class CFWL_WidgetImp;
class CFWL_WidgetImpProperties;
diff --git a/xfa/fwl/basewidget/fwl_editimp.cpp b/xfa/fwl/basewidget/fwl_editimp.cpp
index a0d707438e..73c7fa31e1 100644
--- a/xfa/fwl/basewidget/fwl_editimp.cpp
+++ b/xfa/fwl/basewidget/fwl_editimp.cpp
@@ -15,16 +15,19 @@
#include "xfa/fwl/basewidget/fwl_caretimp.h"
#include "xfa/fwl/basewidget/fwl_comboboximp.h"
#include "xfa/fwl/basewidget/fwl_scrollbarimp.h"
+#include "xfa/fwl/basewidget/ifwl_caret.h"
+#include "xfa/fwl/basewidget/ifwl_datetimepicker.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_caret.h"
-#include "xfa/include/fwl/basewidget/fwl_datetimepicker.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
// static
IFWL_Edit* IFWL_Edit::Create(const CFWL_WidgetImpProperties& properties,
diff --git a/xfa/fwl/basewidget/fwl_editimp.h b/xfa/fwl/basewidget/fwl_editimp.h
index 6693b8d187..3dcf48e1ae 100644
--- a/xfa/fwl/basewidget/fwl_editimp.h
+++ b/xfa/fwl/basewidget/fwl_editimp.h
@@ -11,9 +11,13 @@
#include <vector>
#include "xfa/fee/ifde_txtedtengine.h"
+#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/basewidget/fwl_scrollbar.h"
+#include "xfa/fxgraphics/cfx_path.h"
+class CFWL_MsgActivate;
+class CFWL_MsgDeactivate;
+class CFWL_MsgMouse;
class CFWL_WidgetImpProperties;
class CFWL_WidgetImpDelegate;
class IFWL_Caret;
diff --git a/xfa/fwl/basewidget/fwl_listboximp.cpp b/xfa/fwl/basewidget/fwl_listboximp.cpp
index a7481165bf..ad5800142c 100644
--- a/xfa/fwl/basewidget/fwl_listboximp.cpp
+++ b/xfa/fwl/basewidget/fwl_listboximp.cpp
@@ -9,10 +9,14 @@
#include "xfa/fde/tto/fde_textout.h"
#include "xfa/fwl/basewidget/fwl_comboboximp.h"
#include "xfa/fwl/basewidget/fwl_scrollbarimp.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#define FWL_LISTBOX_ItemTextMargin 2
diff --git a/xfa/fwl/basewidget/fwl_listboximp.h b/xfa/fwl/basewidget/fwl_listboximp.h
index a78faf3d13..a4f9188b4d 100644
--- a/xfa/fwl/basewidget/fwl_listboximp.h
+++ b/xfa/fwl/basewidget/fwl_listboximp.h
@@ -9,13 +9,16 @@
#include <memory>
+#include "xfa/fwl/basewidget/ifwl_combobox.h"
+#include "xfa/fwl/basewidget/ifwl_edit.h"
+#include "xfa/fwl/basewidget/ifwl_listbox.h"
+#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#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"
class CFWL_ListBoxImpDelegate;
+class CFWL_MsgKillFocus;
+class CFWL_MsgMouse;
+class CFWL_MsgMouseWheel;
class CFWL_ListBoxImp : public CFWL_WidgetImp {
public:
diff --git a/xfa/fwl/basewidget/fwl_monthcalendarimp.cpp b/xfa/fwl/basewidget/fwl_monthcalendarimp.cpp
index e6dad35481..7106601b68 100644
--- a/xfa/fwl/basewidget/fwl_monthcalendarimp.cpp
+++ b/xfa/fwl/basewidget/fwl_monthcalendarimp.cpp
@@ -9,11 +9,14 @@
#include <algorithm>
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_monthcalendar.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/basewidget/fwl_monthcalendar.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#define MONTHCAL_HSEP_HEIGHT 1
#define MONTHCAL_VSEP_WIDTH 1
diff --git a/xfa/fwl/basewidget/fwl_monthcalendarimp.h b/xfa/fwl/basewidget/fwl_monthcalendarimp.h
index c9542cb599..f1c12b5302 100644
--- a/xfa/fwl/basewidget/fwl_monthcalendarimp.h
+++ b/xfa/fwl/basewidget/fwl_monthcalendarimp.h
@@ -10,9 +10,10 @@
#include "xfa/fgas/localization/fgas_datetime.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
+class CFWL_MonthCalendarImpDelegate;
+class CFWL_MsgMouse;
class CFWL_WidgetImpProperties;
class IFWL_Widget;
-class CFWL_MonthCalendarImpDelegate;
extern uint8_t FX_DaysInMonth(int32_t iYear, uint8_t iMonth);
diff --git a/xfa/fwl/basewidget/fwl_pushbuttonimp.cpp b/xfa/fwl/basewidget/fwl_pushbuttonimp.cpp
index ac0055b215..cb6f99de7c 100644
--- a/xfa/fwl/basewidget/fwl_pushbuttonimp.cpp
+++ b/xfa/fwl/basewidget/fwl_pushbuttonimp.cpp
@@ -7,10 +7,14 @@
#include "xfa/fwl/basewidget/fwl_pushbuttonimp.h"
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_pushbutton.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/basewidget/fwl_pushbutton.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
// static
IFWL_PushButton* IFWL_PushButton::Create(
diff --git a/xfa/fwl/basewidget/fwl_pushbuttonimp.h b/xfa/fwl/basewidget/fwl_pushbuttonimp.h
index 32d8f6c4e2..8c0d5f3395 100644
--- a/xfa/fwl/basewidget/fwl_pushbuttonimp.h
+++ b/xfa/fwl/basewidget/fwl_pushbuttonimp.h
@@ -9,9 +9,10 @@
#include "xfa/fwl/core/fwl_widgetimp.h"
+class CFWL_MsgMouse;
class CFWL_WidgetImpProperties;
-class IFWL_Widget;
class CFWL_PushButtonImpDelegate;
+class IFWL_Widget;
class CFWL_PushButtonImp : public CFWL_WidgetImp {
public:
@@ -44,6 +45,7 @@ class CFWL_PushButtonImp : public CFWL_WidgetImp {
int32_t m_iTTOAlign;
friend class CFWL_PushButtonImpDelegate;
};
+
class CFWL_PushButtonImpDelegate : public CFWL_WidgetImpDelegate {
public:
CFWL_PushButtonImpDelegate(CFWL_PushButtonImp* pOwner);
diff --git a/xfa/fwl/basewidget/fwl_scrollbarimp.cpp b/xfa/fwl/basewidget/fwl_scrollbarimp.cpp
index 6bab12be53..ad41d82be2 100644
--- a/xfa/fwl/basewidget/fwl_scrollbarimp.cpp
+++ b/xfa/fwl/basewidget/fwl_scrollbarimp.cpp
@@ -6,11 +6,14 @@
#include "xfa/fwl/basewidget/fwl_scrollbarimp.h"
+#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/basewidget/fwl_scrollbar.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#define FWL_SCROLLBAR_Elapse 500
#define FWL_SCROLLBAR_MinThumb 5
diff --git a/xfa/fwl/basewidget/fwl_scrollbarimp.h b/xfa/fwl/basewidget/fwl_scrollbarimp.h
index 2e378a677c..a06e47aada 100644
--- a/xfa/fwl/basewidget/fwl_scrollbarimp.h
+++ b/xfa/fwl/basewidget/fwl_scrollbarimp.h
@@ -8,7 +8,7 @@
#define XFA_FWL_BASEWIDGET_FWL_SCROLLBARIMP_H_
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/core/fwl_timer.h"
+#include "xfa/fwl/core/ifwl_timer.h"
class CFWL_WidgetImpProperties;
class IFWL_Widget;
diff --git a/xfa/fwl/basewidget/fwl_spinbuttonimp.cpp b/xfa/fwl/basewidget/fwl_spinbuttonimp.cpp
index 9493cbbc7d..bc11d8fdf1 100644
--- a/xfa/fwl/basewidget/fwl_spinbuttonimp.cpp
+++ b/xfa/fwl/basewidget/fwl_spinbuttonimp.cpp
@@ -6,12 +6,16 @@
#include "xfa/fwl/basewidget/fwl_spinbuttonimp.h"
+#include "xfa/fwl/basewidget/ifwl_spinbutton.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.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/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_timer.h"
#define FWL_SPN_MinWidth 18
#define FWL_SPN_MinHeight 32
diff --git a/xfa/fwl/basewidget/fwl_spinbuttonimp.h b/xfa/fwl/basewidget/fwl_spinbuttonimp.h
index d8eb5963dc..7f04ae5c1c 100644
--- a/xfa/fwl/basewidget/fwl_spinbuttonimp.h
+++ b/xfa/fwl/basewidget/fwl_spinbuttonimp.h
@@ -8,10 +8,12 @@
#define XFA_FWL_BASEWIDGET_FWL_SPINBUTTONIMP_H_
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/core/fwl_timer.h"
+#include "xfa/fwl/core/ifwl_timer.h"
+#include "xfa/fwl/core/ifwl_widget.h"
-class CFWL_WidgetImpProperties;
+class CFWL_MsgMouse;
class CFWL_SpinButtonImpDelegate;
+class CFWL_WidgetImpProperties;
class CFWL_SpinButtonImp : public CFWL_WidgetImp, public IFWL_Timer {
public:
diff --git a/xfa/fwl/basewidget/fwl_tooltipctrlimp.cpp b/xfa/fwl/basewidget/fwl_tooltipctrlimp.cpp
index 3d545e66fe..584e6c3ae8 100644
--- a/xfa/fwl/basewidget/fwl_tooltipctrlimp.cpp
+++ b/xfa/fwl/basewidget/fwl_tooltipctrlimp.cpp
@@ -7,13 +7,17 @@
#include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h"
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_tooltip.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_formimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_panelimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/basewidget/fwl_tooltipctrl.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_tooltiptarget.h"
// static
IFWL_ToolTip* IFWL_ToolTip::Create(const CFWL_WidgetImpProperties& properties,
diff --git a/xfa/fwl/basewidget/fwl_tooltipctrlimp.h b/xfa/fwl/basewidget/fwl_tooltipctrlimp.h
index 42fe276fb9..121f302572 100644
--- a/xfa/fwl/basewidget/fwl_tooltipctrlimp.h
+++ b/xfa/fwl/basewidget/fwl_tooltipctrlimp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/core/fwl_formimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/core/fwl_timer.h"
+#include "xfa/fwl/core/ifwl_timer.h"
class CFWL_WidgetImpProperties;
class IFWL_Widget;
diff --git a/xfa/fwl/basewidget/fxmath_barcodeimp.h b/xfa/fwl/basewidget/fxmath_barcodeimp.h
index 30fe400ca1..bcad0489e6 100644
--- a/xfa/fwl/basewidget/fxmath_barcodeimp.h
+++ b/xfa/fwl/basewidget/fxmath_barcodeimp.h
@@ -9,8 +9,8 @@
#include "core/fxcrt/include/fx_string.h"
#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/basewidget/ifx_barcode.h"
#include "xfa/fxbarcode/include/BC_Library.h"
-#include "xfa/include/fwl/basewidget/fxmath_barcode.h"
class CBC_CodeBase;
diff --git a/xfa/fwl/basewidget/ifwl_barcode.h b/xfa/fwl/basewidget/ifwl_barcode.h
new file mode 100644
index 0000000000..250e608da7
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_barcode.h
@@ -0,0 +1,63 @@
+// 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_FWL_BASEWIDGET_IFWL_BARCODE_H_
+#define XFA_FWL_BASEWIDGET_IFWL_BARCODE_H_
+
+#include "xfa/fxbarcode/include/BC_Library.h"
+#include "xfa/fwl/basewidget/ifwl_edit.h"
+
+class CFWL_WidgetImpProperties;
+
+#define FWL_CLASS_Barcode L"FWL_BARCODE"
+#define FWL_CLASSHASH_Barcode 366886968
+#define FWL_BCDATTRIBUTE_CHARENCODING (1L << 0)
+#define FWL_BCDATTRIBUTE_MODULEHEIGHT (1L << 1)
+#define FWL_BCDATTRIBUTE_MODULEWIDTH (1L << 2)
+#define FWL_BCDATTRIBUTE_DATALENGTH (1L << 3)
+#define FWL_BCDATTRIBUTE_CALCHECKSUM (1L << 4)
+#define FWL_BCDATTRIBUTE_PRINTCHECKSUM (1L << 5)
+#define FWL_BCDATTRIBUTE_TEXTLOCATION (1L << 6)
+#define FWL_BCDATTRIBUTE_WIDENARROWRATIO (1L << 7)
+#define FWL_BCDATTRIBUTE_STARTCHAR (1L << 8)
+#define FWL_BCDATTRIBUTE_ENDCHAR (1L << 9)
+#define FWL_BCDATTRIBUTE_VERSION (1L << 10)
+#define FWL_BCDATTRIBUTE_ECLEVEL (1L << 11)
+#define FWL_BCDATTRIBUTE_TRUNCATED (1L << 12)
+#define FWL_PART_BCD_Border 1
+#define FWL_PART_BCD_Edge 2
+#define FWL_PART_BCD_Background 3
+#define FWL_BCUPDATECMD_Data FWL_WGTUPDATECMD_User
+
+class IFWL_BarcodeDP : public IFWL_EditDP {
+ public:
+ virtual BC_CHAR_ENCODING GetCharEncoding() = 0;
+ virtual int32_t GetModuleHeight() = 0;
+ virtual int32_t GetModuleWidth() = 0;
+ virtual int32_t GetDataLength() = 0;
+ virtual int32_t GetCalChecksum() = 0;
+ virtual FX_BOOL GetPrintChecksum() = 0;
+ virtual BC_TEXT_LOC GetTextLocation() = 0;
+ virtual int32_t GetWideNarrowRatio() = 0;
+ virtual FX_CHAR GetStartChar() = 0;
+ virtual FX_CHAR GetEndChar() = 0;
+ virtual int32_t GetVersion() = 0;
+ virtual int32_t GetErrorCorrectionLevel() = 0;
+ virtual FX_BOOL GetTruncated() = 0;
+ virtual FX_DWORD GetBarcodeAttributeMask() = 0;
+};
+
+class IFWL_Barcode : public IFWL_Edit {
+ public:
+ static IFWL_Barcode* Create(const CFWL_WidgetImpProperties& properties);
+ void SetType(BC_TYPE type);
+ FX_BOOL IsProtectedType();
+
+ protected:
+ IFWL_Barcode();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_BARCODE_H_
diff --git a/xfa/fwl/basewidget/ifwl_caret.h b/xfa/fwl/basewidget/ifwl_caret.h
new file mode 100644
index 0000000000..5b0138f6ce
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_caret.h
@@ -0,0 +1,33 @@
+// 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_FWL_BASEWIDGET_IFWL_CARET_H_
+#define XFA_FWL_BASEWIDGET_IFWL_CARET_H_
+
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+
+#define FWL_CLASS_Caret L"FWL_CARET"
+#define FWL_CLASSHASH_Caret 671181879
+#define FWL_STATE_CAT_HightLight 1
+#define FWL_PART_CAT_Background 1
+#define FWL_PARTSTATE_CAT_HightLight 1
+
+class IFWL_Caret : public IFWL_Widget {
+ public:
+ static IFWL_Caret* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FWL_ERR ShowCaret(FX_BOOL bFlag = TRUE);
+ FWL_ERR GetFrequency(FX_DWORD& elapse);
+ FWL_ERR SetFrequency(FX_DWORD elapse);
+ FWL_ERR SetColor(CFX_Color crFill);
+
+ protected:
+ IFWL_Caret();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_CARET_H_
diff --git a/xfa/fwl/basewidget/ifwl_checkbox.h b/xfa/fwl/basewidget/ifwl_checkbox.h
new file mode 100644
index 0000000000..3b634553d0
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_checkbox.h
@@ -0,0 +1,85 @@
+// 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_FWL_BASEWIDGET_IFWL_CHECKBOX_H_
+#define XFA_FWL_BASEWIDGET_IFWL_CHECKBOX_H_
+
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/cfwl_event.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+
+#define FWL_CLASS_CheckBox L"FWL_CHECKBOX"
+#define FWL_CLASSHASH_CheckBox 4107183823
+#define FWL_STYLEEXT_CKB_Left (0L << 0)
+#define FWL_STYLEEXT_CKB_Center (1L << 0)
+#define FWL_STYLEEXT_CKB_Right (2L << 0)
+#define FWL_STYLEEXT_CKB_Top (0L << 2)
+#define FWL_STYLEEXT_CKB_VCenter (1L << 2)
+#define FWL_STYLEEXT_CKB_Bottom (2L << 2)
+#define FWL_STYLEEXT_CKB_LeftText (1L << 4)
+#define FWL_STYLEEXT_CKB_MultiLine (1L << 5)
+#define FWL_STYLEEXT_CKB_3State (1L << 6)
+#define FWL_STYLEEXT_CKB_RadioButton (1L << 7)
+#define FWL_STYLEEXT_CKB_ShapeSolidSquare (0L << 8)
+#define FWL_STYLEEXT_CKB_ShapeSunkenSquare (1L << 8)
+#define FWL_STYLEEXT_CKB_ShapeSolidCircle (2L << 8)
+#define FWL_STYLEEXT_CKB_ShapeSunkenCircle (3L << 8)
+#define FWL_STYLEEXT_CKB_SignShapeCheck (0L << 10)
+#define FWL_STYLEEXT_CKB_SignShapeCircle (1L << 10)
+#define FWL_STYLEEXT_CKB_SignShapeCross (2L << 10)
+#define FWL_STYLEEXT_CKB_SignShapeDiamond (3L << 10)
+#define FWL_STYLEEXT_CKB_SignShapeSquare (4L << 10)
+#define FWL_STYLEEXT_CKB_SignShapeStar (5L << 10)
+#define FWL_STYLEEXT_CKB_HLayoutMask (3L << 0)
+#define FWL_STYLEEXT_CKB_VLayoutMask (3L << 2)
+#define FWL_STYLEEXT_CKB_ShapeMask (3L << 8)
+#define FWL_STYLEEXT_CKB_SignShapeMask (7L << 10)
+#define FWL_STATE_CKB_Hovered (1 << FWL_WGTSTATE_MAX)
+#define FWL_STATE_CKB_Pressed (1 << (FWL_WGTSTATE_MAX + 1))
+#define FWL_STATE_CKB_Unchecked (0 << (FWL_WGTSTATE_MAX + 2))
+#define FWL_STATE_CKB_Checked (1 << (FWL_WGTSTATE_MAX + 2))
+#define FWL_STATE_CKB_Neutral (2 << (FWL_WGTSTATE_MAX + 2))
+#define FWL_STATE_CKB_CheckMask (3L << (FWL_WGTSTATE_MAX + 2))
+#define FWL_PART_CKB_Border 1
+#define FWL_PART_CKB_Edge 2
+#define FWL_PART_CKB_Background 3
+#define FWL_PART_CKB_CheckBox 4
+#define FWL_PART_CKB_Caption 5
+#define FWL_PARTSTATE_CKB_Normal (0L << 0)
+#define FWL_PARTSTATE_CKB_Pressed (1L << 0)
+#define FWL_PARTSTATE_CKB_Hovered (2L << 0)
+#define FWL_PARTSTATE_CKB_Disabled (3L << 0)
+#define FWL_PARTSTATE_CKB_UnChecked (0L << 2)
+#define FWL_PARTSTATE_CKB_Checked (1L << 2)
+#define FWL_PARTSTATE_CKB_Neutral (2L << 2)
+#define FWL_PARTSTATE_CKB_Focused (1L << 4)
+#define FWL_PARTSTATE_CKB_Mask1 (3L << 0)
+#define FWL_PARTSTATE_CKB_Mask2 (3L << 2)
+#define FWL_EVT_CKB_CheckStateChanged L"FWL_EVENT_CKB_CheckStateChanged"
+#define FWL_EVTHASH_CKB_CheckStateChanged 2503252963
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCkbCheckStateChanged,
+ FWL_EVTHASH_CKB_CheckStateChanged)
+END_FWL_EVENT_DEF
+
+class IFWL_CheckBoxDP : public IFWL_DataProvider {
+ public:
+ virtual FX_FLOAT GetBoxSize(IFWL_Widget* pWidget) = 0;
+};
+
+class IFWL_CheckBox : public IFWL_Widget {
+ public:
+ static IFWL_CheckBox* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+ int32_t GetCheckState();
+ FWL_ERR SetCheckState(int32_t iCheck);
+
+ protected:
+ IFWL_CheckBox();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_CHECKBOX_H_
diff --git a/xfa/fwl/basewidget/ifwl_combobox.h b/xfa/fwl/basewidget/ifwl_combobox.h
new file mode 100644
index 0000000000..93efe287b2
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_combobox.h
@@ -0,0 +1,152 @@
+// 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_FWL_BASEWIDGET_IFWL_COMBOBOX_H_
+#define XFA_FWL_BASEWIDGET_IFWL_COMBOBOX_H_
+
+#include "xfa/fwl/basewidget/ifwl_listbox.h"
+#include "xfa/fxgraphics/include/cfx_graphics.h"
+
+class CFWL_WidgetImpProperties;
+class IFWL_ComboBox;
+
+#define FWL_CLASS_ComboBox L"FWL_COMBOBOX"
+#define FWL_CLASSHASH_ComboBox 602353697
+#define FWL_STYLEEXT_CMB_DropList (0L << 0)
+#define FWL_STYLEEXT_CMB_DropDown (1L << 0)
+#define FWL_STYLEEXT_CMB_Sort (1L << 1)
+#define FWL_STYLEEXT_CMB_ListDrag (1L << 2)
+#define FWL_STYLEEXT_CMB_OwnerDraw (1L << 3)
+#define FWL_STYLEEXT_CMB_EditHNear (0L << 4)
+#define FWL_STYLEEXT_CMB_EditHCenter (1L << 4)
+#define FWL_STYLEEXT_CMB_EditHFar (2L << 4)
+#define FWL_STYLEEXT_CMB_EditVNear (0L << 6)
+#define FWL_STYLEEXT_CMB_EditVCenter (1L << 6)
+#define FWL_STYLEEXT_CMB_EditVFar (2L << 6)
+#define FWL_STYLEEXT_CMB_EditJustified (1L << 8)
+#define FWL_STYLEEXT_CMB_EditDistributed (2L << 8)
+#define FWL_STYLEEXT_CMB_EditHAlignMask (3L << 4)
+#define FWL_STYLEEXT_CMB_EditVAlignMask (3L << 6)
+#define FWL_STYLEEXT_CMB_EditHAlignModeMask (3L << 8)
+#define FWL_STYLEEXT_CMB_ListItemLeftAlign (0L << 10)
+#define FWL_STYLEEXT_CMB_ListItemCenterAlign (1L << 10)
+#define FWL_STYLEEXT_CMB_ListItemRightAlign (2L << 10)
+#define FWL_STYLEEXT_CMB_ListItemText (0L << 12)
+#define FWL_STYLEEXT_CMB_ListItemIconText (1L << 12)
+#define FWL_STYLEEXT_CMB_ListItemAlignMask (3L << 12)
+#define FWL_STYLEEXT_CMB_ReadOnly (1L << 13)
+#define FWL_PART_CMB_Border 1
+#define FWL_PART_CMB_Edge 2
+#define FWL_PART_CMB_Background 3
+#define FWL_PART_CMB_DropDownButton 4
+#define FWL_PART_CMB_Caption 5
+#define FWL_PART_CMB_StretcgHandler 6
+#define FWL_PARTSTATE_CMB_Normal (0L << 0)
+#define FWL_PARTSTATE_CMB_Hovered (1L << 0)
+#define FWL_PARTSTATE_CMB_Pressed (2L << 0)
+#define FWL_PARTSTATE_CMB_Disabled (3L << 0)
+#define FWL_PARTSTATE_CMB_Selected (1L << 2)
+#define FWL_WGTCAPACITY_CMB_ComboFormHandler (FWL_WGTCAPACITY_MAX + 7)
+#define FWL_EVT_CMB_DropDown L"FWL_EVENT_CMB_PreDropDown"
+#define FWL_EVT_CMB_PostDropDown L"FWL_EVENT_CMB_PostDropDown"
+#define FWL_EVT_CMB_CloseUp L"FWL_EVENT_CMB_CloseUp"
+#define FWL_EVT_CMB_EditChanged L"FWL_EVENT_CMB_EditChanged"
+#define FWL_EVT_CMB_SelChanged L"FWL_EVENT_CMB_SelChanged"
+#define FWL_EVT_CMB_HoverChanged L"FWL_EVENT_CMB_HoverChanged"
+#define FWL_EVT_CMB_DrawItem L"FWL_EVENT_CMB_DrawItem"
+#define FWL_EVTHASH_CMB_PreDropDown 1357646798
+#define FWL_EVTHASH_CMB_PostDropDown 3677010285
+#define FWL_EVTHASH_CMB_CloseUp 2871271190
+#define FWL_EVTHASH_CMB_EditChanged 1527034762
+#define FWL_EVTHASH_CMB_SelChanged 2923227784
+#define FWL_EVTHASH_CMB_HoverChanged 944325448
+#define FWL_EVTHASH_CMB_DrawItem 917354551
+
+enum FWL_CMB_TEXTCHANGED {
+ FWL_CMB_TEXTCHANGED_Insert = 0,
+ FWL_CMB_TEXTCHANGED_Delete,
+ FWL_CMB_TEXTCHANGED_Replace,
+};
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbPreDropDown, FWL_EVTHASH_CMB_PreDropDown)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbPostDropDown, FWL_EVTHASH_CMB_PostDropDown)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbCloseUp, FWL_EVTHASH_CMB_CloseUp)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbEditChanged, FWL_EVTHASH_CMB_EditChanged)
+int32_t nChangeType;
+CFX_WideString wsInsert;
+CFX_WideString wsDelete;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbSelChanged, FWL_EVTHASH_CMB_SelChanged)
+CFX_Int32Array iArraySels;
+FX_BOOL bLButtonUp;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbHoverChanged, FWL_EVTHASH_CMB_HoverChanged)
+int32_t m_iCurHover;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtCmbDrawItem, FWL_EVTHASH_CMB_DrawItem)
+CFX_Graphics* m_pGraphics;
+CFX_Matrix m_matrix;
+int32_t m_index;
+CFX_RectF m_rtItem;
+END_FWL_EVENT_DEF
+
+class IFWL_ComboBoxDP : public IFWL_ListBoxDP {
+ public:
+ virtual FX_FLOAT GetListHeight(IFWL_Widget* pWidget) = 0;
+};
+
+class IFWL_ComboBox : public IFWL_Widget {
+ public:
+ static IFWL_ComboBox* Create(const CFWL_WidgetImpProperties& properties);
+
+ int32_t GetCurSel();
+ FWL_ERR SetCurSel(int32_t iSel);
+ FWL_ERR SetEditText(const CFX_WideString& wsText);
+ int32_t GetEditTextLength() const;
+ FWL_ERR GetEditText(CFX_WideString& wsText,
+ int32_t nStart = 0,
+ int32_t nCount = -1) const;
+ FWL_ERR SetEditSelRange(int32_t nStart, int32_t nCount = -1);
+ int32_t GetEditSelRange(int32_t nIndex, int32_t& nStart);
+ int32_t GetEditLimit();
+ FWL_ERR SetEditLimit(int32_t nLimit);
+ FWL_ERR EditDoClipboard(int32_t iCmd);
+ FX_BOOL EditRedo(const CFX_ByteStringC& bsRecord);
+ FX_BOOL EditUndo(const CFX_ByteStringC& bsRecord);
+ IFWL_ListBox* GetListBoxt();
+ FX_BOOL AfterFocusShowDropList();
+ FX_ERR OpenDropDownList(FX_BOOL bActivate);
+ FX_BOOL EditCanUndo();
+ FX_BOOL EditCanRedo();
+ FX_BOOL EditUndo();
+ FX_BOOL EditRedo();
+ FX_BOOL EditCanCopy();
+ FX_BOOL EditCanCut();
+ FX_BOOL EditCanSelectAll();
+ FX_BOOL EditCopy(CFX_WideString& wsCopy);
+ FX_BOOL EditCut(CFX_WideString& wsCut);
+ FX_BOOL EditPaste(const CFX_WideString& wsPaste);
+ FX_BOOL EditSelectAll();
+ FX_BOOL EditDelete();
+ FX_BOOL EditDeSelect();
+ FWL_ERR GetBBox(CFX_RectF& rect);
+ FWL_ERR EditModifyStylesEx(FX_DWORD dwStylesExAdded,
+ FX_DWORD dwStylesExRemoved);
+
+ protected:
+ IFWL_ComboBox();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_COMBOBOX_H_
diff --git a/xfa/fwl/basewidget/ifwl_datetimepicker.h b/xfa/fwl/basewidget/ifwl_datetimepicker.h
new file mode 100644
index 0000000000..25c69682a9
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_datetimepicker.h
@@ -0,0 +1,115 @@
+// 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_FWL_BASEWIDGET_IFWL_DATETIMEPICKER_H_
+#define XFA_FWL_BASEWIDGET_IFWL_DATETIMEPICKER_H_
+
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/cfwl_event.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+
+#define FWL_CLASS_DateTimePicker L"FWL_DATETIMEPICKER"
+#define FWL_CLASSHASH_DateTimePicker 3851176257
+#define FWL_STYLEEXT_DTP_AllowEdit (1L << 0)
+#define FWL_STYLEEXT_DTP_LongDateFormat (0L << 1)
+#define FWL_STYLEEXT_DTP_ShortDateFormat (1L << 1)
+#define FWL_STYLEEXT_DTP_TimeFormat (2L << 1)
+#define FWL_STYLEEXT_DTP_Spin (1L << 3)
+#define FWL_STYLEEXT_DTP_EditHNear (0L << 4)
+#define FWL_STYLEEXT_DTP_EditHCenter (1L << 4)
+#define FWL_STYLEEXT_DTP_EditHFar (2L << 4)
+#define FWL_STYLEEXT_DTP_EditVNear (0L << 6)
+#define FWL_STYLEEXT_DTP_EditVCenter (1L << 6)
+#define FWL_STYLEEXT_DTP_EditVFar (2L << 6)
+#define FWL_STYLEEXT_DTP_EditJustified (1L << 8)
+#define FWL_STYLEEXT_DTP_EditDistributed (2L << 8)
+#define FWL_STYLEEXT_DTP_EditHAlignMask (3L << 4)
+#define FWL_STYLEEXT_DTP_EditVAlignMask (3L << 6)
+#define FWL_STYLEEXT_DTP_EditHAlignModeMask (3L << 8)
+#define FWL_PART_DTP_Border 1
+#define FWL_PART_DTP_Edge 2
+#define FWL_PART_DTP_Background 3
+#define FWL_PART_DTP_DropDownButton 4
+#define FWL_PARTSTATE_DTP_Normal (0L << 0)
+#define FWL_PARTSTATE_DTP_Hovered (1L << 0)
+#define FWL_PARTSTATE_DTP_Pressed (2L << 0)
+#define FWL_PARTSTATE_DTP_Disabled (3L << 0)
+#define FWL_EVT_DTP_DropDown L"FWL_EVENT_DTP_DropDown"
+#define FWL_EVTHASH_DTP_DropDown 264728733
+#define FWL_EVT_DTP_CloseUp L"FWL_EVENT_DTP_CloseUp"
+#define FWL_EVTHASH_DTP_CloseUp 4280973803
+#define FWL_EVT_DTP_EditChanged L"FWL_EVENT_DTP_EditChanged"
+#define FWL_EVTHASH_DTP_EditChanged 4009610944
+#define FWL_EVT_DTP_HoverChanged L"FWL_EVENT_DTP_HoverChanged"
+#define FWL_EVTHASH_DTP_HoverChanged 686674750
+#define FWL_EVT_DTP_SelectChanged L"FWL_EVENT_DTP_SelectChanged"
+#define FWL_EVTHASH_DTP_SelectChanged 1589616858
+
+BEGIN_FWL_EVENT_DEF(CFWL_Event_DtpDropDown, FWL_EVTHASH_DTP_DropDown)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_Event_DtpCloseUp, FWL_EVTHASH_DTP_CloseUp)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_Event_DtpEditChanged, FWL_EVTHASH_DTP_EditChanged)
+CFX_WideString m_wsText;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_Event_DtpHoverChanged, FWL_EVTHASH_DTP_HoverChanged)
+int32_t hoverday;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_Event_DtpSelectChanged, FWL_EVTHASH_DTP_SelectChanged)
+int32_t iYear;
+int32_t iMonth;
+int32_t iDay;
+END_FWL_EVENT_DEF
+
+class IFWL_DateTimePickerDP : public IFWL_DataProvider {
+ public:
+ virtual FWL_ERR GetToday(IFWL_Widget* pWidget,
+ int32_t& iYear,
+ int32_t& iMonth,
+ int32_t& iDay) = 0;
+};
+
+class IFWL_DateTimePicker : public IFWL_Widget {
+ public:
+ static IFWL_DateTimePicker* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FWL_ERR GetCurSel(int32_t& iYear, int32_t& iMonth, int32_t& iDay);
+ FWL_ERR SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay);
+ FWL_ERR SetEditText(const CFX_WideString& wsText);
+ FWL_ERR GetEditText(CFX_WideString& wsText,
+ int32_t nStart = 0,
+ int32_t nCount = -1) const;
+ int32_t CountSelRanges();
+ int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
+ FX_BOOL CanUndo();
+ FX_BOOL CanRedo();
+ FX_BOOL Undo();
+ FX_BOOL Redo();
+ FX_BOOL CanCopy();
+ FX_BOOL CanCut();
+ FX_BOOL CanSelectAll();
+ FX_BOOL Copy(CFX_WideString& wsCopy);
+ FX_BOOL Cut(CFX_WideString& wsCut);
+ FX_BOOL Paste(const CFX_WideString& wsPaste);
+ FX_BOOL SelectAll();
+ FX_BOOL Delete();
+ FX_BOOL DeSelect();
+ FWL_ERR GetBBox(CFX_RectF& rect);
+ FWL_ERR SetEditLimit(int32_t nLimit);
+ FWL_ERR ModifyEditStylesEx(FX_DWORD dwStylesExAdded,
+ FX_DWORD dwStylesExRemoved);
+
+ protected:
+ IFWL_DateTimePicker();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_DATETIMEPICKER_H_
diff --git a/xfa/fwl/basewidget/ifwl_edit.h b/xfa/fwl/basewidget/ifwl_edit.h
new file mode 100644
index 0000000000..74b66e8779
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_edit.h
@@ -0,0 +1,178 @@
+// 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_FWL_BASEWIDGET_IFWL_EDIT_H_
+#define XFA_FWL_BASEWIDGET_IFWL_EDIT_H_
+
+#include <vector>
+
+#include "xfa/include/fwl/lightwidget/widget.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+
+#define FWL_CLASS_Edit L"FWL_EDIT"
+#define FWL_CLASSHASH_Edit 2893987822
+#define FWL_STYLEEXT_EDT_ReadOnly (1L << 0)
+#define FWL_STYLEEXT_EDT_MultiLine (1L << 1)
+#define FWL_STYLEEXT_EDT_WantReturn (1L << 2)
+#define FWL_STYLEEXT_EDT_NoHideSel (1L << 3)
+#define FWL_STYLEEXT_EDT_AutoHScroll (1L << 4)
+#define FWL_STYLEEXT_EDT_AutoVScroll (1L << 5)
+#define FWL_STYLEEXT_EDT_NoRedoUndo (1L << 6)
+#define FWL_STYLEEXT_EDT_Validate (1L << 7)
+#define FWL_STYLEEXT_EDT_Password (1L << 8)
+#define FWL_STYLEEXT_EDT_Number (1L << 9)
+#define FWL_STYLEEXT_EDT_HSelfAdaption (1L << 10)
+#define FWL_STYLEEXT_EDT_VSelfAdaption (1L << 11)
+#define FWL_STYLEEXT_EDT_VerticalLayout (1L << 12)
+#define FWL_STYLEEXT_EDT_VerticalChars (1L << 13)
+#define FWL_STYLEEXT_EDT_ReverseLine (1L << 14)
+#define FWL_STYLEEXT_EDT_ArabicShapes (1L << 15)
+#define FWL_STYLEEXT_EDT_ExpandTab (1L << 16)
+#define FWL_STYLEEXT_EDT_CombText (1L << 17)
+#define FWL_STYLEEXT_EDT_HNear (0L << 18)
+#define FWL_STYLEEXT_EDT_HCenter (1L << 18)
+#define FWL_STYLEEXT_EDT_HFar (2L << 18)
+#define FWL_STYLEEXT_EDT_VNear (0L << 20)
+#define FWL_STYLEEXT_EDT_VCenter (1L << 20)
+#define FWL_STYLEEXT_EDT_VFar (2L << 20)
+#define FWL_STYLEEXT_EDT_Justified (1L << 22)
+#define FWL_STYLEEXT_EDT_Distributed (2L << 22)
+#define FWL_STYLEEXT_EDT_HAlignMask (3L << 18)
+#define FWL_STYLEEXT_EDT_VAlignMask (3L << 20)
+#define FWL_STYLEEXT_EDT_HAlignModeMask (3L << 22)
+#define FWL_STYLEEXT_EDT_InnerCaret (1L << 24)
+#define FWL_STYLEEXT_EDT_ShowScrollbarFocus (1L << 25)
+#define FWL_STYLEEXT_EDT_OuterScrollbar (1L << 26)
+#define FWL_STYLEEXT_EDT_LastLineHeight (1L << 27)
+#define FWL_STATE_EDT_Editing (1 << FWL_WGTSTATE_MAX)
+#define FWL_PART_EDT_Border 1
+#define FWL_PART_EDT_Edge 2
+#define FWL_PART_EDT_Background 3
+#define FWL_PART_EDT_CombTextLine 4
+#define FWL_PARTDATA_EDT_Background 0
+#define FWL_PARTDATA_EDT_StaticBackground 1
+#define FWL_PARTSTATE_EDT_Normal (0L << 0)
+#define FWL_PARTSTATE_EDT_ReadOnly (1L << 0)
+#define FWL_PARTSTATE_EDT_Disable (2L << 0)
+#define FWL_EVT_EDT_TextChanged L"FWL_EVENT_EDT_TextChanged"
+#define FWL_EVTHASH_EDT_TextChanged 1064022132
+#define FWL_EVT_EDT_PreSelfAdaption L"FWL_EVENT_PreSelfAdaption"
+#define FWL_EVTHASH_EDT_PreSelfAdaption 1001979178
+#define FWL_EVT_EDT_Validate L"FWL_EVTHASH_EDT_Validate"
+#define FWL_EVTHASH_EDT_Validate 3373308608
+#define FWL_EVT_EDT_CheckWord L"FWL_EVTHASH_EDT_CheckWord"
+#define FWL_EVTHASH_EDT_CheckWord 2897181520
+#define FWL_EVT_EDT_GetSuggestWords L"FWL_EVTHASH_EDT_GetSuggestWords"
+#define FWL_EVTHASH_EDT_GetSuggestWords 315782791
+#define FWL_EVT_EDT_TextFull L"FWL_EVTHASH_EDT_TextFull"
+#define FWL_EVTHASH_EDT_TextFull 2158580174
+#define FWL_EDT_FIND_FLAGS_Prev (0L << 0)
+#define FWL_EDT_FIND_FLAGS_Next (1L << 0)
+#define FWL_EDT_FIND_FLAGS_WholeWord (1L << 1)
+#define FWL_EDT_FIND_FLAGS_NoCase (1L << 2)
+
+typedef struct FWL_HEDTFIND_ { void* pData; } * FWL_HEDTFIND;
+
+enum FWL_EDT_TEXTCHANGED {
+ FWL_EDT_TEXTCHANGED_Insert = 0,
+ FWL_EDT_TEXTCHANGED_Delete,
+ FWL_EDT_TEXTCHANGED_Replace,
+};
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtEdtTextChanged, FWL_EVTHASH_EDT_TextChanged)
+int32_t nChangeType;
+CFX_WideString wsInsert;
+CFX_WideString wsDelete;
+CFX_WideString wsPrevText;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtEdtTextFull, FWL_EVTHASH_EDT_TextFull)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtEdtPreSelfAdaption, FWL_EVTHASH_EDT_PreSelfAdaption)
+FX_BOOL bHSelfAdaption;
+FX_BOOL bVSelfAdaption;
+CFX_RectF rtAfterChange;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtEdtValidate, FWL_EVTHASH_EDT_Validate)
+IFWL_Widget* pDstWidget;
+CFX_WideString wsInsert;
+FX_BOOL bValidate;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtEdtCheckWord, FWL_EVTHASH_EDT_CheckWord)
+CFX_ByteString bsWord;
+FX_BOOL bCheckWord;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtEdtGetSuggestWords, FWL_EVTHASH_EDT_GetSuggestWords)
+FX_BOOL bSuggestWords;
+CFX_ByteString bsWord;
+std::vector<CFX_ByteString> bsArraySuggestWords;
+END_FWL_EVENT_DEF
+
+class CFWL_WidgetImpProperties;
+
+class IFWL_EditDP : public IFWL_DataProvider {};
+
+class IFWL_Edit : public IFWL_Widget {
+ public:
+ static IFWL_Edit* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+ static IFWL_Edit* CreateComboEdit(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FWL_ERR SetText(const CFX_WideString& wsText);
+ int32_t GetTextLength() const;
+ FWL_ERR GetText(CFX_WideString& wsText,
+ int32_t nStart = 0,
+ int32_t nCount = -1) const;
+ FWL_ERR ClearText();
+ int32_t GetCaretPos() const;
+ int32_t SetCaretPos(int32_t nIndex, FX_BOOL bBefore = TRUE);
+ FWL_ERR AddSelRange(int32_t nStart, int32_t nCount = -1);
+ int32_t CountSelRanges();
+ int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
+ FWL_ERR ClearSelections();
+ int32_t GetLimit();
+ FWL_ERR SetLimit(int32_t nLimit);
+ FWL_ERR SetAliasChar(FX_WCHAR wAlias);
+ FWL_ERR SetFormatString(const CFX_WideString& wsFormat);
+ FWL_ERR Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLen);
+ FWL_ERR DeleteSelections();
+ FWL_ERR DeleteRange(int32_t nStart, int32_t nCount = -1);
+ FWL_ERR ReplaceSelections(const CFX_WideStringC& wsReplace);
+ FWL_ERR Replace(int32_t nStart,
+ int32_t nLen,
+ const CFX_WideStringC& wsReplace);
+ FWL_ERR DoClipboard(int32_t iCmd);
+ FX_BOOL Copy(CFX_WideString& wsCopy);
+ FX_BOOL Cut(CFX_WideString& wsCut);
+ FX_BOOL Paste(const CFX_WideString& wsPaste);
+ FX_BOOL Delete();
+ FX_BOOL Redo(const CFX_ByteStringC& bsRecord);
+ FX_BOOL Undo(const CFX_ByteStringC& bsRecord);
+ FX_BOOL Undo();
+ FX_BOOL Redo();
+ FX_BOOL CanUndo();
+ FX_BOOL CanRedo();
+ FWL_ERR SetTabWidth(FX_FLOAT fTabWidth, FX_BOOL bEquidistant);
+ FWL_ERR SetOuter(IFWL_Widget* pOuter);
+ FWL_ERR SetNumberRange(int32_t iMin, int32_t iMax);
+ FWL_ERR SetBackColor(FX_DWORD dwColor);
+ FWL_ERR SetFont(const CFX_WideString& wsFont, FX_FLOAT fSize);
+ void SetScrollOffset(FX_FLOAT fScrollOffset);
+ FX_BOOL GetSuggestWords(CFX_PointF pointf,
+ std::vector<CFX_ByteString>& sSuggest);
+ FX_BOOL ReplaceSpellCheckWord(CFX_PointF pointf,
+ const CFX_ByteStringC& bsReplace);
+
+ protected:
+ IFWL_Edit();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_EDIT_H_
diff --git a/xfa/fwl/basewidget/ifwl_listbox.h b/xfa/fwl/basewidget/ifwl_listbox.h
new file mode 100644
index 0000000000..7bec4edd18
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_listbox.h
@@ -0,0 +1,142 @@
+// 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_FWL_BASEWIDGET_IFWL_LISTBOX_H_
+#define XFA_FWL_BASEWIDGET_IFWL_LISTBOX_H_
+
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/cfwl_event.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+
+#define FWL_CLASS_ListBox L"FWL_LISTBOX"
+#define FWL_CLASSHASH_ListBox 1777358317
+#define FWL_STYLEEXT_LTB_MultiSelection (1L << 0)
+#define FWL_STYLEEXT_LTB_Sort (1L << 1)
+#define FWL_STYLEEXT_LTB_ShowScrollBarAlaways (1L << 2)
+#define FWL_STYLEEXT_LTB_MultiColumn (1L << 3)
+#define FWL_STYLEEXT_LTB_LeftAlign (0L << 4)
+#define FWL_STYLEEXT_LTB_CenterAlign (1L << 4)
+#define FWL_STYLEEXT_LTB_RightAlign (2L << 4)
+#define FWL_STYLEEXT_LTB_MultiLine (1L << 6)
+#define FWL_STYLEEXT_LTB_OwnerDraw (1L << 7)
+#define FWL_STYLEEXT_LTB_Icon (1L << 8)
+#define FWL_STYLEEXT_LTB_Check (1L << 9)
+#define FWL_STYLEEXT_LTB_AlignMask (3L << 4)
+#define FWL_STYLEEXT_LTB_ShowScrollBarFocus (1L << 10)
+#define FWL_ITEMSTATE_LTB_Selected (1L << 0)
+#define FWL_ITEMSTATE_LTB_Focused (1L << 1)
+#define FWL_ITEMSTATE_LTB_Checked (1L << 2)
+#define FWL_PART_LTB_Border 1
+#define FWL_PART_LTB_Edge 2
+#define FWL_PART_LTB_Background 3
+#define FWL_PART_LTB_ListItem 4
+#define FWL_PART_LTB_Check 5
+#define FWL_PART_LTB_Icon 6
+#define FWL_PARTSTATE_LTB_Normal (0L << 0)
+#define FWL_PARTSTATE_LTB_Selected (1L << 0)
+#define FWL_PARTSTATE_LTB_Disabled (2L << 0)
+#define FWL_PARTSTATE_LTB_Focused (1L << 2)
+#define FWL_PARTSTATE_LTB_UnChecked (0L << 3)
+#define FWL_PARTSTATE_LTB_Checked (1L << 3)
+#define FWL_PARTSTATE_LTB_Mask (3L << 0)
+#define FWL_WGTHITTEST_LTB_Item FWL_WGTHITTEST_MAX + 1
+#define FWL_WGTHITTEST_LTB_HScrollBar FWL_WGTHITTEST_MAX + 2
+#define FWL_WGTHITTEST_LTB_VScrollBar FWL_WGTHITTEST_MAX + 3
+#define FWL_EVT_LTB_SelChanged L"FWL_EVENT_LTB_SelChanged"
+#define FWL_EVT_LTB_DrawItem L"FWL_EVENT_LTB_DrawItem"
+#define FWL_EVTHASH_LTB_SelChanged 1701781688
+#define FWL_EVTHASH_LTB_DrawItem 1050853991
+
+typedef struct FWL_HLISTITEM_ { void* pData; } * FWL_HLISTITEM;
+
+class CFX_DIBitmap;
+class IFWL_ListBoxDP;
+
+struct FWL_ListBoxItemData {
+ IFWL_ListBoxDP* pDataProvider;
+ int32_t iIndex;
+};
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtLtbSelChanged, FWL_EVTHASH_LTB_SelChanged)
+CFX_Int32Array iarraySels;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtLtbDrawItem, FWL_EVTHASH_LTB_DrawItem)
+CFX_Graphics* m_pGraphics;
+CFX_Matrix m_matrix;
+int32_t m_index;
+CFX_RectF m_rect;
+END_FWL_EVENT_DEF
+
+class IFWL_ListBoxDP : public IFWL_DataProvider {
+ public:
+ virtual int32_t CountItems(IFWL_Widget* pWidget) = 0;
+ virtual FWL_HLISTITEM GetItem(IFWL_Widget* pWidget, int32_t nIndex) = 0;
+ virtual int32_t GetItemIndex(IFWL_Widget* pWidget, FWL_HLISTITEM hItem) = 0;
+ virtual FX_BOOL SetItemIndex(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ int32_t nIndex) = 0;
+ virtual FX_DWORD GetItemStyles(IFWL_Widget* pWidget, FWL_HLISTITEM hItem) = 0;
+ virtual FWL_ERR GetItemText(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ CFX_WideString& wsText) = 0;
+ virtual FWL_ERR GetItemRect(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ CFX_RectF& rtItem) = 0;
+ virtual void* GetItemData(IFWL_Widget* pWidget, FWL_HLISTITEM hItem) = 0;
+ virtual FWL_ERR SetItemStyles(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ FX_DWORD dwStyle) = 0;
+ virtual FWL_ERR SetItemText(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ const FX_WCHAR* pszText) = 0;
+ virtual FWL_ERR SetItemRect(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ const CFX_RectF& rtItem) = 0;
+ virtual FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) = 0;
+ virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem) = 0;
+ virtual FWL_ERR GetItemCheckRect(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ CFX_RectF& rtCheck) = 0;
+ virtual FWL_ERR SetItemCheckRect(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ const CFX_RectF& rtCheck) = 0;
+ virtual FX_DWORD GetItemCheckState(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem) = 0;
+ virtual FWL_ERR SetItemCheckState(IFWL_Widget* pWidget,
+ FWL_HLISTITEM hItem,
+ FX_DWORD dwCheckState) = 0;
+};
+
+class IFWL_ListBoxCompare {
+ public:
+ virtual ~IFWL_ListBoxCompare() {}
+ virtual int32_t Compare(FWL_HLISTITEM hLeft, FWL_HLISTITEM hRight) = 0;
+};
+
+class IFWL_ListBox : public IFWL_Widget {
+ public:
+ static IFWL_ListBox* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+ static IFWL_ListBox* CreateComboList(
+ const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ int32_t CountSelItems();
+ FWL_HLISTITEM GetSelItem(int32_t nIndexSel);
+ int32_t GetSelIndex(int32_t nIndex);
+ FWL_ERR SetSelItem(FWL_HLISTITEM hItem, FX_BOOL bSelect = TRUE);
+ FWL_ERR GetItemText(FWL_HLISTITEM hItem, CFX_WideString& wsText);
+ FWL_ERR GetScrollPos(FX_FLOAT& fPos, FX_BOOL bVert = TRUE);
+ FWL_ERR* Sort(IFWL_ListBoxCompare* pCom);
+
+ protected:
+ IFWL_ListBox();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_LISTBOX_H_
diff --git a/xfa/fwl/basewidget/ifwl_monthcalendar.h b/xfa/fwl/basewidget/ifwl_monthcalendar.h
new file mode 100644
index 0000000000..8f9ab9ae3e
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_monthcalendar.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_FWL_BASEWIDGET_IFWL_MONTHCALENDAR_H_
+#define XFA_FWL_BASEWIDGET_IFWL_MONTHCALENDAR_H_
+
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/cfwl_event.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+
+#define FWL_CLASS_MonthCalendar L"FWL_MONTHCALENDAR"
+#define FWL_CLASSHASH_MonthCalendar 2733931374
+#define FWL_STYLEEXT_MCD_MultiSelect (1L << 0)
+#define FWL_STYLEEXT_MCD_NoToday (1L << 1)
+#define FWL_STYLEEXT_MCD_NoTodayCircle (1L << 2)
+#define FWL_STYLEEXT_MCD_WeekNumbers (1L << 3)
+#define FWL_WGTCAPACITY_MC_HEADER_WIDTH 12
+#define FWL_WGTCAPACITY_MC_HEADER_Height 13
+#define FWL_WGTCAPACITY_MC_HEADER_BTN_WIDTH 14
+#define FWL_WGTCAPACITY_MC_HEADER_BTN_HEIGHT 15
+#define FWL_WGTCAPACITY_MC_HEADER_BTN_HMARGIN 16
+#define FWL_WGTCAPACITY_MC_HEADER_BTN_VMARGIN 17
+#define FWL_WGTCAPACITY_MC_HEADER_TEXTWIDHT 18
+#define FWL_WGTCAPACITY_MC_HEADER_TEXTHEIGHT 19
+#define FWL_WGTCAPACITY_MC_HEADER_TEXT_HMARGIN 20
+#define FWL_WGTCAPACITY_MC_HEADER_TEXT_VMARGIN 21
+#define FWL_WGTCAPACITY_MC_HSEP_WIDTH 22
+#define FWL_WGTCAPACITY_MC_HSEP_HEIGHT 23
+#define FWL_WGTCAPACITY_MC_VSEP_WIDTH 24
+#define FWL_WGTCAPACITY_MC_VSEP_HEIGHT 25
+#define FWL_WGTCAPACITY_MC_WEEKNUM_WIDTH 26
+#define FWL_WGTCAPACITY_MC_SEP_DOFFSET 40
+#define FWL_WGTCAPACITY_MC_SEP_X 27
+#define FWL_WGTCAPACITY_MC_SEP_Y 28
+#define FWL_WGTCAPACITY_MC_WEEKNUM_HEIGHT 29
+#define FWL_WGTCAPACITY_MC_WEEK_WIDTH 30
+#define FWL_WGTCAPACITY_MC_WEEK_HEIGHT 31
+#define FWL_WGTCAPACITY_MC_DATES_CELL_WIDTH 32
+#define FWL_WGTCAPACITY_MC_DATES_CELL_HEIGHT 33
+#define FWL_WGTCAPACITY_MC_TODAY_WIDHT 34
+#define FWL_WGTCAPACITY_MC_TODAY_HEIGHT 35
+#define FWL_WGTCAPACITY_MC_TODAY_FLAG_WIDHT 36
+#define FWL_WGTCAPACITY_MC_WIDTH 37
+#define FWL_WGTCAPACITY_MC_HEIGHT 38
+#define FWL_ITEMSTATE_MCD_Nomal (0L << 0)
+#define FWL_ITEMSTATE_MCD_Flag (1L << 0)
+#define FWL_ITEMSTATE_MCD_Selected (1L << 1)
+#define FWL_ITEMSTATE_MCD_Focused (1L << 2)
+#define FWL_PART_MCD_Border 1
+#define FWL_PART_MCD_Edge 2
+#define FWL_PART_MCD_Background 3
+#define FWL_PART_MCD_LBtn 4
+#define FWL_PART_MCD_RBtn 5
+#define FWL_PART_MCD_HSeparator 6
+#define FWL_PART_MCD_VSeparator 7
+#define FWL_PART_MCD_TodayCircle 8
+#define FWL_PART_MCD_DateInCircle 9
+#define FWL_PART_MCD_DateInBK 10
+#define FWL_PART_MCD_Caption 9
+#define FWL_PART_MCD_DatesIn 10
+#define FWL_PART_MCD_DatesOut 11
+#define FWL_PART_MCD_Week 12
+#define FWL_PART_MCD_Today 13
+#define FWL_PART_MCD_Header 14
+#define FWL_PART_MCD_WeekNum 15
+#define FWL_PART_MCD_WeekNumSep 16
+#define FWL_PARTSTATE_MCD_Normal (0L << 0)
+#define FWL_PARTSTATE_MCD_Pressed (1L << 0)
+#define FWL_PARTSTATE_MCD_Hovered (2L << 0)
+#define FWL_PARTSTATE_MCD_Selected (3L << 0)
+#define FWL_PARTSTATE_MCD_LSelected (1L << 2)
+#define FWL_PARTSTATE_MCD_RSelected (2L << 2)
+#define FWL_PARTSTATE_MCD_Flagged (1L << 3)
+#define FWL_PARTSTATE_MCD_Focused (1L << 4)
+#define FWL_MCCAPACITY_Sun FWL_WGTCAPACITY_MAX + 5
+#define FWL_MCCAPACITY_Mon FWL_WGTCAPACITY_MAX + 6
+#define FWL_MCCAPACITY_Tue FWL_WGTCAPACITY_MAX + 7
+#define FWL_MCCAPACITY_Wed FWL_WGTCAPACITY_MAX + 8
+#define FWL_MCCAPACITY_Thu FWL_WGTCAPACITY_MAX + 9
+#define FWL_MCCAPACITY_Fri FWL_WGTCAPACITY_MAX + 10
+#define FWL_MCCAPACITY_Sat FWL_WGTCAPACITY_MAX + 11
+#define FWL_MCCAPACITY_January FWL_WGTCAPACITY_MAX + 12
+#define FWL_MCCAPACITY_February FWL_WGTCAPACITY_MAX + 13
+#define FWL_MCCAPACITY_March FWL_WGTCAPACITY_MAX + 14
+#define FWL_MCCAPACITY_April FWL_WGTCAPACITY_MAX + 15
+#define FWL_MCCAPACITY_May FWL_WGTCAPACITY_MAX + 16
+#define FWL_MCCAPACITY_June FWL_WGTCAPACITY_MAX + 17
+#define FWL_MCCAPACITY_July FWL_WGTCAPACITY_MAX + 18
+#define FWL_MCCAPACITY_August FWL_WGTCAPACITY_MAX + 19
+#define FWL_MCCAPACITY_September FWL_WGTCAPACITY_MAX + 20
+#define FWL_MCCAPACITY_October FWL_WGTCAPACITY_MAX + 21
+#define FWL_MCCAPACITY_November FWL_WGTCAPACITY_MAX + 22
+#define FWL_MCCAPACITY_December FWL_WGTCAPACITY_MAX + 23
+#define FWL_MCCAPACITY_Today FWL_WGTCAPACITY_MAX + 24
+#define FWL_EVENT_MCD_DATESELECTED L"FWL_EVENT_MCD_DateSelected"
+#define FWL_EVT_MCD_DateChanged L"FWL_EVENT_MCD_DateChanged"
+#define FWL_NOTEHASH_MCD_DATASELECTED 1085596932
+#define FWL_EVTHASH_MCD_DateChanged 54212227
+
+BEGIN_FWL_EVENT_DEF(CFWL_Event_McdDateSelected, FWL_NOTEHASH_MCD_DATASELECTED)
+int32_t m_iStartDay;
+int32_t m_iEndDay;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EventMcdDateChanged, FWL_EVTHASH_MCD_DateChanged)
+int32_t m_iOldYear;
+int32_t m_iOldMonth;
+int32_t m_iStartDay;
+int32_t m_iEndDay;
+END_FWL_EVENT_DEF
+
+class IFWL_MonthCalendarDP : public IFWL_DataProvider {
+ public:
+ virtual int32_t GetCurDay(IFWL_Widget* pWidget) = 0;
+ virtual int32_t GetCurMonth(IFWL_Widget* pWidget) = 0;
+ virtual int32_t GetCurYear(IFWL_Widget* pWidget) = 0;
+};
+
+class IFWL_MonthCalendar : public IFWL_Widget {
+ public:
+ static IFWL_MonthCalendar* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ int32_t CountSelect();
+ FX_BOOL GetSelect(int32_t& iYear,
+ int32_t& iMonth,
+ int32_t& iDay,
+ int32_t nIndex = 0);
+ FX_BOOL SetSelect(int32_t iYear, int32_t iMonth, int32_t iDay);
+
+ protected:
+ IFWL_MonthCalendar();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_MONTHCALENDAR_H_
diff --git a/xfa/fwl/basewidget/ifwl_picturebox.h b/xfa/fwl/basewidget/ifwl_picturebox.h
new file mode 100644
index 0000000000..acc34f78d4
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_picturebox.h
@@ -0,0 +1,59 @@
+// 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_FWL_BASEWIDGET_IFWL_PICTUREBOX_H_
+#define XFA_FWL_BASEWIDGET_IFWL_PICTUREBOX_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_CLASS_PictureBox L"FWL_PICTUREBOX"
+#define FWL_CLASSHASH_PictureBox 2974721741
+#define FWL_STYLEEXT_PTB_Left 0L << 0
+#define FWL_STYLEEXT_PTB_Center 1L << 0
+#define FWL_STYLEEXT_PTB_Right 2L << 0
+#define FWL_STYLEEXT_PTB_Top 0L << 2
+#define FWL_STYLEEXT_PTB_Vcenter 1L << 2
+#define FWL_STYLEEXT_PTB_Bottom 2L << 2
+#define FWL_STYLEEXT_PTB_Normal 0L << 4
+#define FWL_STYLEEXT_PTB_AutoSize 1L << 4
+#define FWL_STYLEEXT_PTB_StretchImage 2L << 4
+#define FWL_STYLEEXT_PTB_StretchHImage 3L << 4
+#define FWL_STYLEEXT_PTB_StretchVImage 4L << 4
+#define FWL_STYLEEXT_PTB_HAlignMask 3L << 0
+#define FWL_STYLEEXT_PTB_VAlignMask 3L << 2
+#define FWL_STYLEEXT_PTB_StretchAlignMask 7L << 4
+#define FWL_PART_PTB_Border 1
+#define FWL_PART_PTB_Edge 2
+#define FWL_PART_PTB_Image 3
+#define FWL_PARTSTATE_PTB_Normal (0L << 0)
+#define FWL_PARTSTATE_PTB_Disabled (1L << 0)
+
+class CFX_DIBitmap;
+
+class IFWL_PictureBoxDP : public IFWL_DataProvider {
+ public:
+ virtual CFX_DIBitmap* GetPicture(IFWL_Widget* pWidget) = 0;
+ virtual CFX_DIBitmap* GetErrorPicture(IFWL_Widget* pWidget) = 0;
+ virtual CFX_DIBitmap* GetInitialPicture(IFWL_Widget* pWidget) = 0;
+ virtual int32_t GetOpacity(IFWL_Widget* pWidget) = 0;
+ virtual int32_t GetFlipMode(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR GetMatrix(IFWL_Widget* pWidget, CFX_Matrix& matrix) = 0;
+};
+
+class IFWL_PictureBox : public IFWL_Widget {
+ public:
+ static IFWL_PictureBox* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ protected:
+ IFWL_PictureBox();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_PICTUREBOX_H_
diff --git a/xfa/fwl/basewidget/ifwl_pushbutton.h b/xfa/fwl/basewidget/ifwl_pushbutton.h
new file mode 100644
index 0000000000..400b0c1b38
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_pushbutton.h
@@ -0,0 +1,61 @@
+// 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_FWL_BASEWIDGET_IFWL_PUSHBUTTON_H_
+#define XFA_FWL_BASEWIDGET_IFWL_PUSHBUTTON_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+
+#define FWL_CLASS_PushButton L"FWL_PUSHBUTTON"
+#define FWL_CLASSHASH_PushButton 3521614244
+#define FWL_STYLEEXT_PSB_Left (0L << 0)
+#define FWL_STYLEEXT_PSB_Center (1L << 0)
+#define FWL_STYLEEXT_PSB_Right (2L << 0)
+#define FWL_STYLEEXT_PSB_Top (0L << 2)
+#define FWL_STYLEEXT_PSB_VCenter (1L << 2)
+#define FWL_STYLEEXT_PSB_Bottom (2L << 2)
+#define FWL_STYLEEXT_PSB_TextOnly (0L << 4)
+#define FWL_STYLEEXT_PSB_IconOnly (1L << 4)
+#define FWL_STYLEEXT_PSB_TextIcon (2L << 4)
+#define FWL_STYLEEXT_PSB_HLayoutMask (3L << 0)
+#define FWL_STYLEEXT_PSB_VLayoutMask (3L << 2)
+#define FWL_STYLEEXT_PSB_ModeMask (3L << 4)
+#define FWL_STATE_PSB_Hovered (1 << FWL_WGTSTATE_MAX)
+#define FWL_STATE_PSB_Pressed (1 << (FWL_WGTSTATE_MAX + 1))
+#define FWL_STATE_PSB_Default (1 << (FWL_WGTSTATE_MAX + 2))
+#define FWL_WGTCAPACITY_PSB_Margin (FWL_WGTCAPACITY_MAX + 1)
+#define FWL_PART_PSB_Border 1
+#define FWL_PART_PSB_Edge 2
+#define FWL_PART_PSB_Background 3
+#define FWL_PART_PSB_Caption 4
+#define FWL_PARTSTATE_PSB_Normal (0L << 0)
+#define FWL_PARTSTATE_PSB_Pressed (1L << 0)
+#define FWL_PARTSTATE_PSB_Hovered (2L << 0)
+#define FWL_PARTSTATE_PSB_Default (3L << 0)
+#define FWL_PARTSTATE_PSB_Disabled (4L << 0)
+#define FWL_PARTSTATE_PSB_Focused (1L << 3)
+#define FWL_PARTSTATE_PSB_Mask (7L << 0)
+
+class CFX_DIBitmap;
+
+class IFWL_PushButtonDP : public IFWL_DataProvider {
+ public:
+ virtual CFX_DIBitmap* GetPicture(IFWL_Widget* pWidget) = 0;
+};
+
+class IFWL_PushButton : public IFWL_Widget {
+ public:
+ static IFWL_PushButton* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ protected:
+ IFWL_PushButton();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_PUSHBUTTON_H_
diff --git a/xfa/fwl/basewidget/ifwl_scrollbar.h b/xfa/fwl/basewidget/ifwl_scrollbar.h
new file mode 100644
index 0000000000..c481332132
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_scrollbar.h
@@ -0,0 +1,77 @@
+// 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_FWL_BASEWIDGET_IFWL_SCROLLBAR_H_
+#define XFA_FWL_BASEWIDGET_IFWL_SCROLLBAR_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_CLASS_ScrollBar L"FWL_SCROLLBAR"
+#define FWL_CLASSHASH_ScrollBar 2826584844
+#define FWL_STYLEEXT_SCB_Horz (0L << 0)
+#define FWL_STYLEEXT_SCB_Vert (1L << 0)
+#define FWL_PART_SCB_Border 1
+#define FWL_PART_SCB_Edge 2
+#define FWL_PART_SCB_Background 3
+#define FWL_PART_SCB_ForeArrow 4
+#define FWL_PART_SCB_BackArrow 5
+#define FWL_PART_SCB_Thumb 6
+#define FWL_PART_SCB_LowerTrack 7
+#define FWL_PART_SCB_UpperTrack 8
+#define FWL_PARTSTATE_SCB_Normal (0L << 0)
+#define FWL_PARTSTATE_SCB_Hovered (1L << 0)
+#define FWL_PARTSTATE_SCB_Pressed (2L << 0)
+#define FWL_PARTSTATE_SCB_Disabled (3L << 0)
+#define FWL_WGTHITTEST_SCB_ForeArrow FWL_WGTHITTEST_MAX + 1
+#define FWL_WGTHITTEST_SCB_BackArrow FWL_WGTHITTEST_MAX + 2
+#define FWL_WGTHITTEST_SCB_LowerTrack FWL_WGTHITTEST_MAX + 3
+#define FWL_WGTHITTEST_SCB_UpperTrack FWL_WGTHITTEST_MAX + 4
+#define FWL_WGTHITTEST_SCB_Thumb FWL_WGTHITTEST_MAX + 5
+#define FWL_CAPACITY_SCB_Size FWL_WGTCAPACITY_MAX
+
+enum FWL_SCBCODE {
+ FWL_SCBCODE_None = 1,
+ FWL_SCBCODE_Min,
+ FWL_SCBCODE_Max,
+ FWL_SCBCODE_PageBackward,
+ FWL_SCBCODE_PageForward,
+ FWL_SCBCODE_StepBackward,
+ FWL_SCBCODE_StepForward,
+ FWL_SCBCODE_Pos,
+ FWL_SCBCODE_TrackPos,
+ FWL_SCBCODE_EndScroll,
+};
+
+class IFWL_ScrollBarDP : public IFWL_DataProvider {};
+
+class IFWL_ScrollBar : public IFWL_Widget {
+ public:
+ static IFWL_ScrollBar* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FX_BOOL IsVertical();
+ FWL_ERR GetRange(FX_FLOAT& fMin, FX_FLOAT& fMax);
+ FWL_ERR SetRange(FX_FLOAT fMin, FX_FLOAT fMax);
+ FX_FLOAT GetPageSize();
+ FWL_ERR SetPageSize(FX_FLOAT fPageSize);
+ FX_FLOAT GetStepSize();
+ FWL_ERR SetStepSize(FX_FLOAT fStepSize);
+ FX_FLOAT GetPos();
+ FWL_ERR SetPos(FX_FLOAT fPos);
+ FX_FLOAT GetTrackPos();
+ FWL_ERR SetTrackPos(FX_FLOAT fTrackPos);
+ FX_BOOL DoScroll(FX_DWORD dwCode, FX_FLOAT fPos = 0.0f);
+
+ protected:
+ IFWL_ScrollBar();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_SCROLLBAR_H_
diff --git a/xfa/fwl/basewidget/ifwl_spinbutton.h b/xfa/fwl/basewidget/ifwl_spinbutton.h
new file mode 100644
index 0000000000..f68ab0f251
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_spinbutton.h
@@ -0,0 +1,44 @@
+// 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_FWL_BASEWIDGET_IFWL_SPINBUTTON_H_
+#define XFA_FWL_BASEWIDGET_IFWL_SPINBUTTON_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+
+#define FWL_CLASS_SpinButton L"FWL_SPINBUTTON"
+#define FWL_CLASSHASH_SpinButton 3793043646
+#define FWL_STYLEEXE_SPB_Vert (1L << 0)
+#define FWL_PART_SPB_Border 1
+#define FWL_PART_SPB_Edge 2
+#define FWL_PART_SPB_UpButton 3
+#define FWL_PART_SPB_DownButton 4
+#define FWL_PARTSTATE_SPB_Normal (0L << 0)
+#define FWL_PARTSTATE_SPB_Hovered (1L << 0)
+#define FWL_PARTSTATE_SPB_Pressed (2L << 0)
+#define FWL_PARTSTATE_SPB_Disabled (3L << 0)
+#define FWL_WGTHITTEST_SPB_UpButton (FWL_WGTHITTEST_MAX + 1)
+#define FWL_WGTHITTEST_SPB_DownButton (FWL_WGTHITTEST_MAX + 2)
+#define FWL_EVT_SPB_Click L"FWL_EVENT_SPB_Click"
+#define FWL_EVTHASH_SPB_Click 2927651187
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtSpbClick, FWL_EVTHASH_SPB_Click)
+FX_BOOL m_bUp;
+END_FWL_EVENT_DEF
+
+class IFWL_SpinButton : public IFWL_Widget {
+ public:
+ static IFWL_SpinButton* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FWL_ERR EnableButton(FX_BOOL bEnable, FX_BOOL bUp = TRUE);
+ FX_BOOL IsButtonEnable(FX_BOOL bUp = TRUE);
+
+ protected:
+ IFWL_SpinButton();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_SPINBUTTON_H_
diff --git a/xfa/fwl/basewidget/ifwl_tooltip.h b/xfa/fwl/basewidget/ifwl_tooltip.h
new file mode 100644
index 0000000000..278544b459
--- /dev/null
+++ b/xfa/fwl/basewidget/ifwl_tooltip.h
@@ -0,0 +1,49 @@
+// 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_FWL_BASEWIDGET_IFWL_TOOLTIP_H_
+#define XFA_FWL_BASEWIDGET_IFWL_TOOLTIP_H_
+
+#include "xfa/fwl/core/ifwl_form.h"
+
+class CFWL_WidgetImpProperties;
+class IFWL_ToolTip;
+
+#define FWL_CLASS_ToolTip L"FWL_TOOLTIP"
+#define FWL_CLASSHASH_ToolTip 1111984755
+#define FWL_STYLEEXT_TTP_Rectangle (0L << 3)
+#define FWL_STYLEEXT_TTP_RoundCorner (1L << 3)
+#define FWL_STYLEEXT_TTP_Balloon (1L << 4)
+#define FWL_STYLEEXT_TTP_Multiline (1L << 5)
+#define FWL_STYLEEXT_TTP_NoAnchor (1L << 6)
+#define FWL_PART_TTP_Border 1
+#define FWL_PART_TTP_Background 2
+#define FWL_PART_TTP_Caption 3
+
+class IFWL_ToolTipDP : public IFWL_DataProvider {
+ public:
+ virtual FWL_ERR GetCaption(IFWL_Widget* pWidget,
+ CFX_WideString& wsCaption) = 0;
+ virtual int32_t GetInitialDelay(IFWL_Widget* pWidget) = 0;
+ virtual int32_t GetAutoPopDelay(IFWL_Widget* pWidget) = 0;
+ virtual CFX_DIBitmap* GetToolTipIcon(IFWL_Widget* pWidget) = 0;
+ virtual CFX_SizeF GetToolTipIconSize(IFWL_Widget* pWidget) = 0;
+};
+
+class IFWL_ToolTip : public IFWL_Form {
+ public:
+ static IFWL_ToolTip* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FWL_ERR SetAnchor(const CFX_RectF& rtAnchor);
+ FWL_ERR Show();
+ FWL_ERR Hide();
+
+ protected:
+ IFWL_ToolTip();
+};
+
+#endif // XFA_FWL_BASEWIDGET_IFWL_TOOLTIP_H_
diff --git a/xfa/fwl/basewidget/ifx_barcode.h b/xfa/fwl/basewidget/ifx_barcode.h
new file mode 100644
index 0000000000..a44a01ba8d
--- /dev/null
+++ b/xfa/fwl/basewidget/ifx_barcode.h
@@ -0,0 +1,62 @@
+// 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_FWL_BASEWIDGET_IFX_BARCODE_H_
+#define XFA_FWL_BASEWIDGET_IFX_BARCODE_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "core/include/fxge/fx_dib.h"
+#include "xfa/fxbarcode/include/BC_Library.h"
+
+class CFX_Font;
+class CFX_Matrix;
+class CFX_RenderDevice;
+
+class IFX_Barcode {
+ public:
+ virtual ~IFX_Barcode() {}
+
+ virtual void Release() = 0;
+
+ virtual BC_TYPE GetType() = 0;
+ virtual FX_BOOL Encode(const CFX_WideStringC& contents,
+ FX_BOOL isDevice,
+ int32_t& e) = 0;
+ virtual FX_BOOL RenderDevice(CFX_RenderDevice* device,
+ const CFX_Matrix* matirx,
+ int32_t& e) = 0;
+ virtual FX_BOOL RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) = 0;
+ virtual CFX_WideString Decode(uint8_t* buf,
+ int32_t width,
+ int32_t height,
+ int32_t& errorCode) = 0;
+ virtual CFX_WideString Decode(CFX_DIBitmap* pBitmap, int32_t& errorCode) = 0;
+ virtual FX_BOOL SetCharEncoding(BC_CHAR_ENCODING encoding) = 0;
+ virtual FX_BOOL SetModuleHeight(int32_t moduleHeight) = 0;
+ virtual FX_BOOL SetModuleWidth(int32_t moduleWidth) = 0;
+ virtual FX_BOOL SetHeight(int32_t height) = 0;
+ virtual FX_BOOL SetWidth(int32_t width) = 0;
+ virtual FX_BOOL CheckContentValidity(const CFX_WideStringC& contents) = 0;
+ virtual FX_BOOL SetPrintChecksum(FX_BOOL checksum) = 0;
+ virtual FX_BOOL SetDataLength(int32_t length) = 0;
+ virtual FX_BOOL SetCalChecksum(int32_t state) = 0;
+ virtual FX_BOOL SetFont(CFX_Font* pFont) = 0;
+ virtual FX_BOOL SetFontSize(FX_FLOAT size) = 0;
+ virtual FX_BOOL SetFontStyle(int32_t style) = 0;
+ virtual FX_BOOL SetFontColor(FX_ARGB color) = 0;
+ virtual FX_BOOL SetTextLocation(BC_TEXT_LOC location) = 0;
+ virtual FX_BOOL SetWideNarrowRatio(int32_t ratio) = 0;
+ virtual FX_BOOL SetStartChar(FX_CHAR start) = 0;
+ virtual FX_BOOL SetEndChar(FX_CHAR end) = 0;
+ virtual FX_BOOL SetVersion(int32_t version) = 0;
+ virtual FX_BOOL SetErrorCorrectionLevel(int32_t level) = 0;
+ virtual FX_BOOL SetTruncated(FX_BOOL truncated) = 0;
+};
+
+IFX_Barcode* FX_Barcode_Create(BC_TYPE type);
+
+#endif // XFA_FWL_BASEWIDGET_IFX_BARCODE_H_
diff --git a/xfa/fwl/core/cfwl_event.h b/xfa/fwl/core/cfwl_event.h
new file mode 100644
index 0000000000..97ca1d31a1
--- /dev/null
+++ b/xfa/fwl/core/cfwl_event.h
@@ -0,0 +1,145 @@
+// Copyright 2016 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_FWL_CORE_CFWL_EVENT_H_
+#define XFA_FWL_CORE_CFWL_EVENT_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/cfwl_note.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_EVT_Mouse L"FWL_EVENT_Mouse"
+#define FWL_EVT_MouseWheel L"FWL_EVENT_MouseWheel"
+#define FWL_EVT_Key L"FWL_EVENT_Key"
+#define FWL_EVT_SetFocus L"FWL_EVENT_SetFocus"
+#define FWL_EVT_KillFocus L"FWL_EVENT_KillFocus"
+#define FWL_EVT_Click L"FWL_EVENT_Click"
+#define FWL_EVT_Draw L"FWL_EVENT_Draw"
+#define FWL_EVT_Scroll L"FWL_EVENT_Scroll"
+#define FWL_EVT_Close L"FWL_EVENT_Close"
+#define FWL_EVT_ContextMenu L"FWL_EVENT_ContextMenu"
+#define FWL_EVT_MenuCommand L"FWL_EVENT_MenuCommand"
+#define FWL_EVT_SizeChanged L"FWL_EVENT_SizeChanged"
+
+#define FWL_EVTHASH_Mouse 1765258002
+#define FWL_EVTHASH_MouseWheel 3907114407
+#define FWL_EVTHASH_Key 2408354450
+#define FWL_EVTHASH_SetFocus 3909721269
+#define FWL_EVTHASH_KillFocus 1779363253
+#define FWL_EVTHASH_Draw 2430713303
+#define FWL_EVTHASH_Click 4026328783
+#define FWL_EVTHASH_Scroll 2965158968
+#define FWL_EVTHASH_Close 4036693599
+#define FWL_EVTHASH_ContextMenu 2717307715
+#define FWL_EVTHASH_MenuCommand 497763741
+#define FWL_EVTHASH_SizeChanged 3083958510
+#define FWL_EVTHASH_Idle 839546759
+
+typedef enum {
+ FWL_EVENT_MOUSE_MASK = 1 << 0,
+ FWL_EVENT_MOUSEWHEEL_MASK = 1 << 1,
+ FWL_EVENT_KEY_MASK = 1 << 2,
+ FWL_EVENT_FOCUSCHANGED_MASK = 1 << 3,
+ FWL_EVENT_DRAW_MASK = 1 << 4,
+ FWL_EVENT_CLOSE_MASK = 1 << 5,
+ FWL_EVENT_SIZECHANGED_MASK = 1 << 6,
+ FWL_EVENT_IDLE_MASK = 1 << 7,
+ FWL_EVENT_CONTROL_MASK = 1 << 8,
+ FWL_EVENT_ALL_MASK = 0xFF
+} FWLEventMask;
+
+class CFX_Graphics;
+class IFWL_Widget;
+
+class CFWL_Event : public CFWL_Note {
+ public:
+ CFWL_Event() : CFWL_Note(TRUE) {}
+ virtual ~CFWL_Event() {}
+};
+
+#define BEGIN_FWL_EVENT_DEF(classname, eventhashcode) \
+ class classname : public CFWL_Event { \
+ public: \
+ classname() : CFWL_Event() {} \
+ virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \
+ wsClass = L## #classname; \
+ return FWL_ERR_Succeeded; \
+ } \
+ virtual FX_DWORD GetClassID() const { return eventhashcode; }
+
+#define END_FWL_EVENT_DEF \
+ } \
+ ; // NOLINT
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtMouse, FWL_EVTHASH_Mouse)
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+FX_DWORD m_dwFlags;
+FX_DWORD m_dwCmd;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtMouseWheel, FWL_EVTHASH_MouseWheel)
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+FX_FLOAT m_fDeltaX;
+FX_FLOAT m_fDeltaY;
+FX_DWORD m_dwFlags;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, FWL_EVTHASH_Key)
+FX_DWORD m_dwKeyCode;
+FX_DWORD m_dwFlags;
+FX_DWORD m_dwCmd;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtSetFocus, FWL_EVTHASH_SetFocus)
+IFWL_Widget* m_pSetFocus;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtKillFocus, FWL_EVTHASH_KillFocus)
+IFWL_Widget* m_pKillFocus;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtDraw, FWL_EVTHASH_Draw)
+CFX_Graphics* m_pGraphics;
+IFWL_Widget* m_pWidget;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtClick, FWL_EVTHASH_Click)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtScroll, FWL_EVTHASH_Scroll)
+FX_DWORD m_iScrollCode;
+FX_FLOAT m_fPos;
+FX_BOOL* m_pRet;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtClose, FWL_EVTHASH_Close)
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtContextMenu, FWL_EVTHASH_ContextMenu)
+FX_FLOAT m_fPosX;
+FX_FLOAT m_fPosY;
+IFWL_Widget* m_pOwner;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtMenuCommand, FWL_EVTHASH_MenuCommand)
+int32_t m_iCommand;
+void* m_pData;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtSizeChanged, FWL_EVTHASH_SizeChanged)
+IFWL_Widget* m_pWidget;
+CFX_RectF m_rtOld;
+CFX_RectF m_rtNew;
+END_FWL_EVENT_DEF
+
+BEGIN_FWL_EVENT_DEF(CFWL_EvtIdle, FWL_EVTHASH_Idle)
+END_FWL_EVENT_DEF
+
+#endif // XFA_FWL_CORE_CFWL_EVENT_H_
diff --git a/xfa/fwl/core/cfwl_message.h b/xfa/fwl/core/cfwl_message.h
new file mode 100644
index 0000000000..f3e4a58602
--- /dev/null
+++ b/xfa/fwl/core/cfwl_message.h
@@ -0,0 +1,159 @@
+// Copyright 2016 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_FWL_CORE_CFWL_MESSAGE_H_
+#define XFA_FWL_CORE_CFWL_MESSAGE_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/cfwl_note.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_MSGHASH_Activate 2410369469
+#define FWL_MSGHASH_Deactivate 1184214790
+#define FWL_MSGHASH_SetFocus 4174512504
+#define FWL_MSGHASH_KillFocus 1557903832
+#define FWL_MSGHASH_Mouse 706128309
+#define FWL_MSGHASH_MouseWheel 893703466
+#define FWL_MSGHASH_Key 3751372405
+#define FWL_MSGHASH_Cursor 3182626218
+#define FWL_MSGHASH_Size 160077735
+#define FWL_MSGHASH_WindowMove 1032269377
+#define FWL_MSGHASH_DropFiles 2004165236
+#define FWL_MSGHASH_TaskClicked 3128231086
+#define FWL_MSGHASH_Close 2977563906
+#define FWL_MSGHASH_Post 1969633074
+#define FWL_MSGHASH_WindowWillMove 2229175763
+
+#define FWL_MSG_Activate L"FWL_MESSAGE_Activate"
+#define FWL_MSG_Deactivate L"FWL_MESSAGE_Deactivate"
+#define FWL_MSG_SetFocus L"FWL_MESSAGE_SetFocus"
+#define FWL_MSG_KillFocus L"FWL_MESSAGE_KillFocus"
+#define FWL_MSG_Mouse L"FWL_MESSAGE_Mouse"
+#define FWL_MSG_MouseWheel L"FWL_MESSAGE_MouseWheel"
+#define FWL_MSG_Key L"FWL_MESSAGE_Key"
+#define FWL_MSG_Cursor L"FWL_MESSAGE_Cursor"
+#define FWL_MSG_Size L"FWL_MESSAGE_Size"
+#define FWL_MSG_WindowMove L"FWL_MESSAGE_WindowMove"
+#define FWL_MSG_DropFiles L"FWL_MESSAGE_DropFiles"
+#define FWL_MSG_TaskClicked L"FWL_MESSAGE_TaskClicked"
+#define FWL_MSG_Close L"FWL_MESSAGE_Close"
+#define FWL_MSG_Post L"FWL_MESSAGE_Post"
+#define FWL_MSG_WindowWillMove L"FWL_MESSAGE_WindowWillMove"
+
+#define FWL_MSGMOUSECMD_LButtonDown 1
+#define FWL_MSGMOUSECMD_LButtonUp 2
+#define FWL_MSGMOUSECMD_LButtonDblClk 3
+#define FWL_MSGMOUSECMD_RButtonDown 4
+#define FWL_MSGMOUSECMD_RButtonUp 5
+#define FWL_MSGMOUSECMD_RButtonDblClk 6
+#define FWL_MSGMOUSECMD_MButtonDown 7
+#define FWL_MSGMOUSECMD_MButtonUp 8
+#define FWL_MSGMOUSECMD_MButtonDblClk 9
+#define FWL_MSGMOUSECMD_MouseMove 10
+#define FWL_MSGMOUSECMD_MouseEnter 11
+#define FWL_MSGMOUSECMD_MouseLeave 12
+#define FWL_MSGMOUSECMD_MouseHover 13
+#define FWL_MSGKEYCMD_KeyDown 1
+#define FWL_MSGKEYCMD_KeyUp 2
+#define FWL_MSGKEYCMD_Char 3
+
+class IFWL_Widget;
+
+class CFWL_Message : public CFWL_Note {
+ public:
+ CFWL_Message() : CFWL_Note(FALSE) {}
+ virtual ~CFWL_Message() {}
+};
+
+#define BEGIN_FWL_MESSAGE_DEF(classname, msghashcode) \
+ class classname : public CFWL_Message { \
+ public: \
+ classname() : CFWL_Message() {} \
+ virtual CFWL_Note* Clone() { return new classname(*this); } \
+ virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \
+ wsClass = L## #classname; \
+ return FWL_ERR_Succeeded; \
+ } \
+ virtual FX_DWORD GetClassID() const { return msghashcode; }
+
+#define END_FWL_MESSAGE_DEF \
+ } \
+ ; // NOLINT
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgActivate, FWL_MSGHASH_Activate)
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDeactivate, FWL_MSGHASH_Deactivate)
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouse, FWL_MSGHASH_Mouse)
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+FX_DWORD m_dwFlags;
+FX_DWORD m_dwCmd;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, FWL_MSGHASH_MouseWheel)
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+FX_FLOAT m_fDeltaX;
+FX_FLOAT m_fDeltaY;
+FX_DWORD m_dwFlags;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSetFocus, FWL_MSGHASH_SetFocus)
+IFWL_Widget* m_pKillFocus;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKillFocus, FWL_MSGHASH_KillFocus)
+IFWL_Widget* m_pSetFocus;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKey, FWL_MSGHASH_Key)
+FX_DWORD m_dwKeyCode;
+FX_DWORD m_dwFlags;
+FX_DWORD m_dwCmd;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgCursor, FWL_MSGHASH_Cursor)
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSize, FWL_MSGHASH_Size)
+int32_t m_iWidth;
+int32_t m_iHeight;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowMove, FWL_MSGHASH_WindowMove)
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDropFiles, FWL_MSGHASH_DropFiles)
+CFWL_MsgDropFiles(const CFWL_MsgDropFiles& copy) {
+ m_pDstTarget = copy.m_pDstTarget;
+ m_pSrcTarget = copy.m_pSrcTarget;
+ m_fx = copy.m_fx;
+ m_fy = copy.m_fy;
+ m_files.Append(copy.m_files);
+}
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+CFX_WideStringArray m_files;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgTaskClicked, FWL_MSGHASH_TaskClicked)
+FX_FLOAT m_fx;
+FX_FLOAT m_fy;
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgClose, FWL_MSGHASH_Close)
+END_FWL_MESSAGE_DEF
+
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowWillMove, FWL_MSGHASH_WindowWillMove)
+END_FWL_MESSAGE_DEF
+
+#endif // XFA_FWL_CORE_CFWL_MESSAGE_H_
diff --git a/xfa/fwl/core/cfwl_note.h b/xfa/fwl/core/cfwl_note.h
new file mode 100644
index 0000000000..c0f105388c
--- /dev/null
+++ b/xfa/fwl/core/cfwl_note.h
@@ -0,0 +1,67 @@
+// Copyright 2016 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_FWL_CORE_CFWL_NOTE_H_
+#define XFA_FWL_CORE_CFWL_NOTE_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class IFWL_Widget;
+
+// Separate hierarchy not related to IFWL_* hierarchy. These should not
+// get cast to IFWL_* types.
+class CFWL_Note {
+ public:
+ virtual FX_DWORD Release() {
+ m_dwRefCount--;
+ FX_DWORD dwRefCount = m_dwRefCount;
+ if (!m_dwRefCount)
+ delete this;
+ return dwRefCount;
+ }
+
+ virtual CFWL_Note* Retain() {
+ m_dwRefCount++;
+ return this;
+ }
+
+ virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const {
+ wsClass = L"CFWL_Note";
+ return FWL_ERR_Succeeded;
+ }
+
+ virtual FX_DWORD GetClassID() const { return 0; }
+
+ virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const {
+ return TRUE;
+ }
+
+ virtual CFWL_Note* Clone() { return NULL; }
+ FX_BOOL IsEvent() const { return m_bIsEvent; }
+
+ IFWL_Widget* m_pSrcTarget;
+ IFWL_Widget* m_pDstTarget;
+ FX_DWORD m_dwExtend;
+
+ protected:
+ CFWL_Note(FX_BOOL bIsEvent)
+ : m_pSrcTarget(NULL),
+ m_pDstTarget(NULL),
+ m_dwExtend(0),
+ m_dwRefCount(1),
+ m_bIsEvent(bIsEvent) {}
+
+ virtual ~CFWL_Note() {}
+ virtual FX_BOOL Initialize() { return TRUE; }
+ virtual int32_t Finalize() { return 0; }
+
+ FX_DWORD m_dwRefCount;
+ FX_BOOL m_bIsEvent;
+};
+
+#endif // XFA_FWL_CORE_CFWL_NOTE_H_
diff --git a/xfa/fwl/core/cfwl_themebackground.h b/xfa/fwl/core/cfwl_themebackground.h
new file mode 100644
index 0000000000..cdab5b2729
--- /dev/null
+++ b/xfa/fwl/core/cfwl_themebackground.h
@@ -0,0 +1,25 @@
+// Copyright 2016 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_FWL_CORE_CFWL_THEMEBACKGROUND_H_
+#define XFA_FWL_CORE_CFWL_THEMEBACKGROUND_H_
+
+#include "core/include/fxge/fx_dib.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+
+class CFX_DIBitmpa;
+class CFX_Graphics;
+class CFX_Path;
+
+class CFWL_ThemeBackground : public CFWL_ThemePart {
+ public:
+ CFWL_ThemeBackground() : m_pGraphics(NULL), m_pImage(NULL), m_pPath(NULL) {}
+ CFX_Graphics* m_pGraphics;
+ CFX_DIBitmap* m_pImage;
+ CFX_Path* m_pPath;
+};
+
+#endif // XFA_FWL_CORE_CFWL_THEMEBACKGROUND_H_
diff --git a/xfa/fwl/core/cfwl_themepart.h b/xfa/fwl/core/cfwl_themepart.h
new file mode 100644
index 0000000000..ddbdc321b2
--- /dev/null
+++ b/xfa/fwl/core/cfwl_themepart.h
@@ -0,0 +1,31 @@
+// Copyright 2016 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_FWL_CORE_CFWL_THEMEPART_H_
+#define XFA_FWL_CORE_CFWL_THEMEPART_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+
+class CFWL_ThemePart {
+ public:
+ CFWL_ThemePart()
+ : m_pWidget(NULL), m_iPart(0), m_dwStates(0), m_dwData(0), m_pData(NULL) {
+ m_rtPart.Reset();
+ m_matrix.SetIdentity();
+ }
+
+ CFX_Matrix m_matrix;
+ CFX_RectF m_rtPart;
+ IFWL_Widget* m_pWidget;
+ int32_t m_iPart;
+ FX_DWORD m_dwStates;
+ FX_DWORD m_dwData;
+ void* m_pData;
+};
+
+#endif // XFA_FWL_CORE_CFWL_THEMEPART_H_
diff --git a/xfa/fwl/core/cfwl_themetext.h b/xfa/fwl/core/cfwl_themetext.h
new file mode 100644
index 0000000000..e4c0e92ed1
--- /dev/null
+++ b/xfa/fwl/core/cfwl_themetext.h
@@ -0,0 +1,23 @@
+// Copyright 2016 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_FWL_CORE_CFWL_THEMETEXT_H_
+#define XFA_FWL_CORE_CFWL_THEMETEXT_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+
+class CFWL_ThemeText : public CFWL_ThemePart {
+ public:
+ CFWL_ThemeText() : m_pGraphics(NULL) {}
+ CFX_WideString m_wsText;
+ FX_DWORD m_dwTTOStyles;
+ int32_t m_iTTOAlign;
+ CFX_Graphics* m_pGraphics;
+};
+
+#endif // XFA_FWL_CORE_CFWL_THEMETEXT_H_
diff --git a/xfa/fwl/core/cfwl_widgetimpproperties.h b/xfa/fwl/core/cfwl_widgetimpproperties.h
new file mode 100644
index 0000000000..7a3bab603d
--- /dev/null
+++ b/xfa/fwl/core/cfwl_widgetimpproperties.h
@@ -0,0 +1,43 @@
+// Copyright 2016 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_FWL_CORE_CFWL_WIDGETIMPPROPERTIES_H_
+#define XFA_FWL_CORE_CFWL_WIDGETIMPPROPERTIES_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_widgetdef.h"
+
+class IFWL_DataProvider;
+class IFWL_ThemeProvider;
+class IFWL_Widget;
+
+class CFWL_WidgetImpProperties {
+ public:
+ CFWL_WidgetImpProperties()
+ : m_dwStyles(FWL_WGTSTYLE_Child),
+ m_dwStyleExes(0),
+ m_dwStates(0),
+ m_pThemeProvider(nullptr),
+ m_pDataProvider(nullptr),
+ m_pParent(nullptr),
+ m_pOwner(nullptr) {
+ m_ctmOnParent.SetIdentity();
+ m_rtWidget.Set(0, 0, 0, 0);
+ }
+
+ CFX_Matrix m_ctmOnParent;
+ CFX_RectF m_rtWidget;
+ FX_DWORD m_dwStyles;
+ FX_DWORD m_dwStyleExes;
+ FX_DWORD m_dwStates;
+ IFWL_ThemeProvider* m_pThemeProvider;
+ IFWL_DataProvider* m_pDataProvider;
+ IFWL_Widget* m_pParent;
+ IFWL_Widget* m_pOwner;
+};
+
+#endif // XFA_FWL_CORE_CFWL_WIDGETIMPPROPERTIES_H_
diff --git a/xfa/fwl/core/fwl_appimp.cpp b/xfa/fwl/core/fwl_appimp.cpp
index 31634860f4..2cff349f82 100644
--- a/xfa/fwl/core/fwl_appimp.cpp
+++ b/xfa/fwl/core/fwl_appimp.cpp
@@ -10,9 +10,9 @@
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.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/fwl/core/ifwl_adapterwidgetmgr.h"
+#include "xfa/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_widget.h"
IFWL_App* IFWL_App::Create(IFWL_AdapterNative* pAdapter) {
IFWL_App* pApp = new IFWL_App;
diff --git a/xfa/fwl/core/fwl_contentimp.cpp b/xfa/fwl/core/fwl_contentimp.cpp
index a38998f0cf..5bfac08df4 100644
--- a/xfa/fwl/core/fwl_contentimp.cpp
+++ b/xfa/fwl/core/fwl_contentimp.cpp
@@ -11,7 +11,7 @@
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#include "xfa/include/fwl/core/fwl_content.h"
+#include "xfa/fwl/core/ifwl_content.h"
FWL_ERR IFWL_Content::InsertWidget(IFWL_Widget* pChild, int32_t nIndex) {
return static_cast<CFWL_ContentImp*>(GetImpl())->InsertWidget(pChild, nIndex);
diff --git a/xfa/fwl/core/fwl_error.h b/xfa/fwl/core/fwl_error.h
new file mode 100644
index 0000000000..92a483f4e8
--- /dev/null
+++ b/xfa/fwl/core/fwl_error.h
@@ -0,0 +1,22 @@
+// 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_FWL_CORE_FWL_ERROR_H_
+#define XFA_FWL_CORE_FWL_ERROR_H_
+
+#include <stdint.h>
+
+typedef int32_t FWL_ERR;
+
+#define FWL_ERR_Succeeded 0
+#define FWL_ERR_Indefinite -1
+#define FWL_ERR_Parameter_Invalid -100
+#define FWL_ERR_Property_Invalid -200
+#define FWL_ERR_Intermediate_Value__Invalid -300
+#define FWL_ERR_Method_Not_Supported -400
+#define FWL_ERR_Out_Of_Memory -500
+
+#endif // XFA_FWL_CORE_FWL_ERROR_H_
diff --git a/xfa/fwl/core/fwl_formimp.cpp b/xfa/fwl/core/fwl_formimp.cpp
index a321431f6f..83176550eb 100644
--- a/xfa/fwl/core/fwl_formimp.cpp
+++ b/xfa/fwl/core/fwl_formimp.cpp
@@ -8,6 +8,10 @@
#include "xfa/fde/tto/fde_textout.h"
#include "xfa/fwl/basewidget/fwl_formproxyimp.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_panelimp.h"
@@ -15,10 +19,10 @@
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.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/fwl/core/ifwl_adapterwidgetmgr.h"
+#include "xfa/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_content.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
#define FWL_SYSBTNSIZE 21
#define FWL_SYSBTNMARGIN 5
diff --git a/xfa/fwl/core/fwl_formimp.h b/xfa/fwl/core/fwl_formimp.h
index eddc1d6032..e5c0f8022e 100644
--- a/xfa/fwl/core/fwl_formimp.h
+++ b/xfa/fwl/core/fwl_formimp.h
@@ -9,11 +9,13 @@
#include "xfa/fwl/core/fwl_panelimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
-#include "xfa/include/fwl/core/fwl_form.h"
+#include "xfa/fwl/core/ifwl_form.h"
+class CFWL_MsgMouse;
+class CFWL_MsgClose;
+class CFWL_MsgWindowMove;
class CFWL_NoteLoop;
class CFWL_WidgetImpProperties;
-class CFWL_MsgMouse;
class IFWL_Widget;
class IFWL_ThemeProvider;
class CFWL_SysBtn;
diff --git a/xfa/fwl/core/fwl_gridimp.cpp b/xfa/fwl/core/fwl_gridimp.cpp
index a898bea838..9ff1949b38 100644
--- a/xfa/fwl/core/fwl_gridimp.cpp
+++ b/xfa/fwl/core/fwl_gridimp.cpp
@@ -6,6 +6,8 @@
#include "xfa/fwl/core/fwl_gridimp.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
#include "xfa/fwl/core/fwl_contentimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
diff --git a/xfa/fwl/core/fwl_gridimp.h b/xfa/fwl/core/fwl_gridimp.h
index fda283f70c..3329cb779d 100644
--- a/xfa/fwl/core/fwl_gridimp.h
+++ b/xfa/fwl/core/fwl_gridimp.h
@@ -8,9 +8,9 @@
#define XFA_FWL_CORE_FWL_GRIDIMP_H_
#include "xfa/fwl/core/fwl_contentimp.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/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_content.h"
+#include "xfa/fwl/core/ifwl_grid.h"
class CFWL_GridLength {
public:
diff --git a/xfa/fwl/core/fwl_noteimp.cpp b/xfa/fwl/core/fwl_noteimp.cpp
index 6553454ff0..ecc13f082e 100644
--- a/xfa/fwl/core/fwl_noteimp.cpp
+++ b/xfa/fwl/core/fwl_noteimp.cpp
@@ -8,6 +8,8 @@
#include "core/fxcrt/include/fx_ext.h"
#include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h"
+#include "xfa/fwl/basewidget/ifwl_tooltip.h"
+#include "xfa/fwl/core/cfwl_message.h"
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_formimp.h"
#include "xfa/fwl/core/fwl_panelimp.h"
@@ -15,10 +17,10 @@
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.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/fwl/core/ifwl_adapterwidgetmgr.h"
+#include "xfa/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_grid.h"
+#include "xfa/fwl/core/ifwl_tooltiptarget.h"
CFWL_NoteLoop::CFWL_NoteLoop(CFWL_WidgetImp* pForm)
: m_pForm(pForm), m_bContinueModal(TRUE) {}
@@ -805,7 +807,7 @@ void CFWL_NoteDriver::ClearInvalidEventTargets(FX_BOOL bRemoveAll) {
}
}
}
-class CFWL_CoreToopTipDP : public IFWL_ToolTipDP {
+class CFWL_CoreToolTipDP : public IFWL_ToolTipDP {
public:
FWL_ERR GetCaption(IFWL_Widget* pWidget, CFX_WideString& wsCaption);
int32_t GetInitialDelay(IFWL_Widget* pWidget);
@@ -813,36 +815,36 @@ class CFWL_CoreToopTipDP : public IFWL_ToolTipDP {
CFX_DIBitmap* GetToolTipIcon(IFWL_Widget* pWidget);
CFX_SizeF GetToolTipIconSize(IFWL_Widget* pWidget);
CFX_RectF GetAnchor();
- CFWL_CoreToopTipDP();
+ CFWL_CoreToolTipDP();
CFX_WideString m_wsCaption;
int32_t m_nInitDelayTime;
int32_t m_nAutoPopDelayTime;
CFX_RectF m_fAnchor;
};
-CFWL_CoreToopTipDP::CFWL_CoreToopTipDP() {
+CFWL_CoreToolTipDP::CFWL_CoreToolTipDP() {
m_nInitDelayTime = 500;
m_nAutoPopDelayTime = 50000;
m_fAnchor.Set(0.0, 0.0, 0.0, 0.0);
}
-FWL_ERR CFWL_CoreToopTipDP::GetCaption(IFWL_Widget* pWidget,
+FWL_ERR CFWL_CoreToolTipDP::GetCaption(IFWL_Widget* pWidget,
CFX_WideString& wsCaption) {
wsCaption = m_wsCaption;
return FWL_ERR_Succeeded;
}
-int32_t CFWL_CoreToopTipDP::GetInitialDelay(IFWL_Widget* pWidget) {
+int32_t CFWL_CoreToolTipDP::GetInitialDelay(IFWL_Widget* pWidget) {
return m_nInitDelayTime;
}
-int32_t CFWL_CoreToopTipDP::GetAutoPopDelay(IFWL_Widget* pWidget) {
+int32_t CFWL_CoreToolTipDP::GetAutoPopDelay(IFWL_Widget* pWidget) {
return m_nAutoPopDelayTime;
}
-CFX_DIBitmap* CFWL_CoreToopTipDP::GetToolTipIcon(IFWL_Widget* pWidget) {
+CFX_DIBitmap* CFWL_CoreToolTipDP::GetToolTipIcon(IFWL_Widget* pWidget) {
return NULL;
}
-CFX_SizeF CFWL_CoreToopTipDP::GetToolTipIconSize(IFWL_Widget* pWidget) {
+CFX_SizeF CFWL_CoreToolTipDP::GetToolTipIconSize(IFWL_Widget* pWidget) {
return CFX_SizeF();
}
-CFX_RectF CFWL_CoreToopTipDP::GetAnchor() {
+CFX_RectF CFWL_CoreToolTipDP::GetAnchor() {
return m_fAnchor;
}
CFWL_EventTarget::~CFWL_EventTarget() {
@@ -930,7 +932,7 @@ CFWL_ToolTipContainer* CFWL_ToolTipContainer::s_pInstance = NULL;
CFWL_ToolTipContainer::CFWL_ToolTipContainer()
: pCurTarget(NULL), m_pToolTipImp(NULL) {
- m_ToolTipDp = new CFWL_CoreToopTipDP;
+ m_ToolTipDp = new CFWL_CoreToolTipDP;
m_ToolTipDp->m_nInitDelayTime = 0;
m_ToolTipDp->m_nAutoPopDelayTime = 2000;
}
diff --git a/xfa/fwl/core/fwl_noteimp.h b/xfa/fwl/core/fwl_noteimp.h
index e0f17bb278..7554082871 100644
--- a/xfa/fwl/core/fwl_noteimp.h
+++ b/xfa/fwl/core/fwl_noteimp.h
@@ -7,14 +7,24 @@
#ifndef XFA_FWL_CORE_FWL_NOTEIMP_H_
#define XFA_FWL_CORE_FWL_NOTEIMP_H_
-#include "xfa/include/fwl/core/fwl_note.h"
-
-class CFWL_WidgetImp;
+#include "xfa/fwl/core/ifwl_notedriver.h"
+#include "xfa/fwl/core/ifwl_noteloop.h"
+#include "xfa/fxgraphics/include/cfx_graphics.h"
+
+class CFWL_CoreToolTipDP;
+class CFWL_MsgActivate;
+class CFWL_MsgDeactivate;
+class CFWL_MsgDropFiles;
+class CFWL_MsgKey;
+class CFWL_MsgKillFocus;
+class CFWL_MsgMouse;
+class CFWL_MsgMouseWheel;
+class CFWL_MsgSetFocus;
+class CFWL_MsgSize;
+class CFWL_MsgWindowMove;
class CFWL_ToolTipImp;
-class CFWL_CoreToopTipDP;
-class CFWL_NoteDriver;
-class CFWL_EventTarget;
-class CFWL_ToolTipContainer;
+class CFWL_WidgetImp;
+class IFWL_ToolTipTarget;
class CFWL_NoteLoop : public IFWL_NoteLoop {
public:
@@ -37,6 +47,7 @@ class CFWL_NoteLoop : public IFWL_NoteLoop {
CFWL_WidgetImp* m_pForm;
FX_BOOL m_bContinueModal;
};
+
class CFWL_NoteDriver : public IFWL_NoteDriver {
public:
CFWL_NoteDriver();
@@ -105,7 +116,9 @@ class CFWL_NoteDriver : public IFWL_NoteDriver {
FWLMessageHookCallback m_hook;
void* m_hookInfo;
};
+
typedef CFX_MapPtrTemplate<void*, FX_DWORD> CFWL_EventSource;
+
class CFWL_EventTarget {
public:
CFWL_EventTarget(CFWL_NoteDriver* pNoteDriver, IFWL_Widget* pListener)
@@ -124,6 +137,7 @@ class CFWL_EventTarget {
CFWL_NoteDriver* m_pNoteDriver;
FX_BOOL m_bInvalid;
};
+
class CFWL_ToolTipContainer {
public:
static CFWL_ToolTipContainer* getInstance();
@@ -147,7 +161,7 @@ class CFWL_ToolTipContainer {
IFWL_ToolTipTarget* pCurTarget;
CFWL_ToolTipImp* m_pToolTipImp;
- CFWL_CoreToopTipDP* m_ToolTipDp;
+ CFWL_CoreToolTipDP* m_ToolTipDp;
CFX_PtrArray m_arrWidget;
private:
diff --git a/xfa/fwl/core/fwl_panelimp.cpp b/xfa/fwl/core/fwl_panelimp.cpp
index e24413368c..3d1bf9a84d 100644
--- a/xfa/fwl/core/fwl_panelimp.cpp
+++ b/xfa/fwl/core/fwl_panelimp.cpp
@@ -6,13 +6,16 @@
#include "xfa/fwl/core/fwl_panelimp.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.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/fwl/core/ifwl_content.h"
+#include "xfa/fwl/core/ifwl_custompanel.h"
+#include "xfa/fwl/core/ifwl_grid.h"
+#include "xfa/fwl/core/ifwl_panel.h"
+#include "xfa/fwl/core/ifwl_proxy.h"
// static
IFWL_Panel* IFWL_Panel::Create(CFWL_WidgetImpProperties& properties,
diff --git a/xfa/fwl/core/fwl_sdadapterimp.cpp b/xfa/fwl/core/fwl_sdadapterimp.cpp
index 550c4cc1ef..1d69defcac 100644
--- a/xfa/fwl/core/fwl_sdadapterimp.cpp
+++ b/xfa/fwl/core/fwl_sdadapterimp.cpp
@@ -4,16 +4,16 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-#include "xfa/include/fwl/adapter/fwl_sdadapterimp.h"
+#include "xfa/fwl/core/fwl_sdadapterimp.h"
#include "core/fxcrt/include/fx_system.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#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/fwl/core/ifwl_adapterthreadmgr.h"
+#include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
+#include "xfa/fwl/core/ifwl_app.h"
CFWL_SDAdapterWidgetMgr::CFWL_SDAdapterWidgetMgr() {}
CFWL_SDAdapterWidgetMgr::~CFWL_SDAdapterWidgetMgr() {}
diff --git a/xfa/fwl/core/fwl_sdadapterimp.h b/xfa/fwl/core/fwl_sdadapterimp.h
new file mode 100644
index 0000000000..0e8bd7f683
--- /dev/null
+++ b/xfa/fwl/core/fwl_sdadapterimp.h
@@ -0,0 +1,89 @@
+// 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_FWL_CORE_FWL_SDADAPTERIMP_H_
+#define XFA_FWL_CORE_FWL_SDADAPTERIMP_H_
+
+#include "xfa/fwl/core/ifwl_adapterthreadmgr.h"
+#include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
+
+class CFWL_SDAdapterWidgetMgr : public IFWL_AdapterWidgetMgr {
+ public:
+ CFWL_SDAdapterWidgetMgr();
+ ~CFWL_SDAdapterWidgetMgr();
+ virtual FWL_ERR CreateWidget(IFWL_Widget* pWidget,
+ IFWL_Widget* pParent = NULL);
+ virtual FWL_ERR DestroyWidget(IFWL_Widget* pWidget);
+ virtual FWL_ERR SetWidgetRect(IFWL_Widget* pWidget, const CFX_RectF& rect);
+ virtual FWL_ERR SetWidgetPosition(IFWL_Widget* pWidget,
+ FX_FLOAT fx,
+ FX_FLOAT fy);
+ virtual FWL_ERR SetParentWidget(IFWL_Widget* pWidget, IFWL_Widget* pParent);
+ virtual FWL_ERR ShowWidget(IFWL_Widget* pWidget);
+ virtual FWL_ERR HideWidget(IFWL_Widget* pWidget);
+ virtual FWL_ERR SetNormal(IFWL_Widget* pWidget);
+ virtual FWL_ERR SetMaximize(IFWL_Widget* pWidget);
+ virtual FWL_ERR SetMinimize(IFWL_Widget* pWidget);
+ virtual FWL_ERR RunWidget(IFWL_Widget* pWidget);
+ virtual FWL_ERR RepaintWidget(IFWL_Widget* pWidget, const CFX_RectF* pRect);
+ virtual FWL_ERR Exit(int32_t iExitCode);
+ virtual FWL_ERR CreateWidgetWithNativeId(IFWL_Widget* pWidget, void* vp);
+ virtual FX_BOOL GetPopupPos(IFWL_Widget* pWidget,
+ FX_FLOAT fMinHeight,
+ FX_FLOAT fMaxHeight,
+ const CFX_RectF& rtAnchor,
+ CFX_RectF& rtPopup);
+
+ public:
+ virtual FWL_ERR GetWidgetRect(IFWL_Widget* pWidget, CFX_RectF& rect);
+ virtual FWL_ERR SetWidgetIcon(IFWL_Widget* pWidget,
+ const CFX_DIBitmap* pIcon,
+ FX_BOOL bBig);
+ virtual FWL_ERR SetWidgetCaption(IFWL_Widget* pWidget,
+ const CFX_WideStringC& wsCaption);
+ virtual FWL_ERR SetBorderRegion(IFWL_Widget* pWidget, CFX_Path* pPath);
+ virtual FWL_ERR SetTransparent(IFWL_Widget* pWidget, FX_DWORD dwAlpha);
+ virtual FWL_ERR SetFullScreen(IFWL_Widget* pWidget, FX_BOOL bFullScreen);
+ virtual FX_BOOL CheckMessage();
+ virtual FX_BOOL IsIdleMessage();
+ virtual FWL_ERR DispatchMessage();
+ virtual FWL_ERR GetWidgetDC(IFWL_Widget* pWidget, void*& pDC);
+ virtual FWL_ERR ReleaseWidgetDC(IFWL_Widget* pWidget,
+ void* pDC,
+ CFX_RectF* pClip = 0);
+ virtual void* GetWindow(IFWL_Widget* pWidget);
+ virtual FX_DWORD GetKeyState(FX_DWORD dwVirtKey);
+ virtual FWL_ERR RunLoop(IFWL_Widget* widget);
+ virtual FWL_ERR EndLoop();
+ virtual FWL_ERR InitMenu(IFWL_Menu* pMenu, IFWL_MenuDP* pMenuData);
+ virtual FWL_ERR UpdateMenu(IFWL_Menu* pMenu,
+ const void* hItem,
+ int32_t iType);
+ virtual int32_t TrackPopupMenu(IFWL_Menu* pMenu, IFWL_MenuDP* pMenuData);
+ virtual FWL_ERR SetMessageHook(IFWL_AdapterMessageHook* hook);
+ virtual FWL_ERR GetSystemBorder(FX_FLOAT& l,
+ FX_FLOAT& t,
+ FX_FLOAT& r,
+ FX_FLOAT& b);
+};
+
+class CFWL_SDAdapterThreadMgr : public IFWL_AdapterThreadMgr {
+ public:
+ CFWL_SDAdapterThreadMgr();
+ ~CFWL_SDAdapterThreadMgr();
+
+ public:
+ virtual FWL_ERR Start(IFWL_Thread* pThread,
+ FWL_HTHREAD& hThread,
+ FX_BOOL bSuspended = FALSE);
+ virtual FWL_ERR Resume(FWL_HTHREAD hThread);
+ virtual FWL_ERR Suspend(FWL_HTHREAD hThread);
+ virtual FWL_ERR Kill(FWL_HTHREAD hThread, int32_t iExitCode);
+ virtual FWL_ERR Stop(FWL_HTHREAD hThread, int32_t iExitCode);
+ virtual IFWL_Thread* GetCurrentThread();
+};
+
+#endif // XFA_FWL_CORE_FWL_SDADAPTERIMP_H_
diff --git a/xfa/fwl/core/fwl_targetimp.h b/xfa/fwl/core/fwl_targetimp.h
index 616c1acd01..69946fbf14 100644
--- a/xfa/fwl/core/fwl_targetimp.h
+++ b/xfa/fwl/core/fwl_targetimp.h
@@ -8,7 +8,7 @@
#define XFA_FWL_CORE_FWL_TARGETIMP_H_
#include "core/fxcrt/include/fx_basic.h"
-#include "xfa/include/fwl/core/fwl_target.h"
+#include "xfa/fwl/core/ifwl_target.h"
class CFWL_TargetImp {
public:
diff --git a/xfa/fwl/core/fwl_threadimp.cpp b/xfa/fwl/core/fwl_threadimp.cpp
index e0ec0b01e7..66c57ebee6 100644
--- a/xfa/fwl/core/fwl_threadimp.cpp
+++ b/xfa/fwl/core/fwl_threadimp.cpp
@@ -9,6 +9,7 @@
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
+#include "xfa/fwl/core/ifwl_notethread.h"
void IFWL_Thread::Release() {
delete m_pImpl;
diff --git a/xfa/fwl/core/fwl_threadimp.h b/xfa/fwl/core/fwl_threadimp.h
index 591849bc08..3806f3ca4b 100644
--- a/xfa/fwl/core/fwl_threadimp.h
+++ b/xfa/fwl/core/fwl_threadimp.h
@@ -7,10 +7,11 @@
#ifndef XFA_FWL_CORE_FWL_THREADIMP_H_
#define XFA_FWL_CORE_FWL_THREADIMP_H_
-#include "xfa/include/fwl/core/fwl_thread.h" // For FWL_HTHREAD.
+#include "xfa/fwl/core/ifwl_thread.h"
class CFWL_NoteDriver;
class IFWL_NoteDriver;
+class IFWL_NoteThread;
class CFWL_ThreadImp {
public:
diff --git a/xfa/fwl/core/fwl_timerimp.cpp b/xfa/fwl/core/fwl_timerimp.cpp
index d9741f6fd4..b9cb478a18 100644
--- a/xfa/fwl/core/fwl_timerimp.cpp
+++ b/xfa/fwl/core/fwl_timerimp.cpp
@@ -7,10 +7,10 @@
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_threadimp.h"
-#include "xfa/include/fwl/adapter/fwl_adapternative.h"
-#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/fwl/core/ifwl_adapternative.h"
+#include "xfa/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_timer.h"
+#include "xfa/fwl/core/include/ifwl_adaptertimermgr.h"
FWL_HTIMER FWL_StartTimer(IFWL_Timer* pTimer,
FX_DWORD dwElapse,
diff --git a/xfa/fwl/core/fwl_widgetdef.h b/xfa/fwl/core/fwl_widgetdef.h
new file mode 100644
index 0000000000..849ba6fc7b
--- /dev/null
+++ b/xfa/fwl/core/fwl_widgetdef.h
@@ -0,0 +1,249 @@
+// 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_FWL_CORE_FWL_WIDGETDEF_H_
+#define XFA_FWL_CORE_FWL_WIDGETDEF_H_
+
+#define FWL_WGTSTYLE_OverLapper (0L << 0)
+#define FWL_WGTSTYLE_Popup (1L << 0)
+#define FWL_WGTSTYLE_Child (2L << 0)
+#define FWL_WGTSTYLE_Border (1L << 2)
+#define FWL_WGTSTYLE_Caption (1L << 3)
+#define FWL_WGTSTYLE_NarrowCaption (1L << 4)
+#define FWL_WGTSTYLE_Icon (1L << 5)
+#define FWL_WGTSTYLE_MinimizeBox (1L << 6)
+#define FWL_WGTSTYLE_MaximizeBox (1L << 7)
+#define FWL_WGTSTYLE_CloseBox (1L << 8)
+#define FWL_WGTSTYLE_HScroll (1L << 9)
+#define FWL_WGTSTYLE_VScroll (1L << 11)
+#define FWL_WGTSTYLE_LeftScrollbar (1L << 12)
+#define FWL_WGTSTYLE_LeftAlignment (0L << 13)
+#define FWL_WGTSTYLE_CenterAlignment (1L << 13)
+#define FWL_WGTSTYLE_RightAlignment (2L << 13)
+#define FWL_WGTSTYLE_TopAlignment (0L << 15)
+#define FWL_WGTSTYLE_VCenterAlignment (1L << 15)
+#define FWL_WGTSTYLE_BottomAlignment (2L << 15)
+#define FWL_WGTSTYLE_RTLReading (1L << 17)
+#define FWL_WGTSTYLE_RTLLayout (1L << 18)
+#define FWL_WGTSTYLE_EdgeNone (0L << 19)
+#define FWL_WGTSTYLE_EdgeFlat (1L << 19)
+#define FWL_WGTSTYLE_EdgeRaised (2L << 19)
+#define FWL_WGTSTYLE_EdgeSunken (3L << 19)
+#define FWL_WGTSTYLE_EdgeMask (3L << 19)
+#define FWL_WGTSTYLE_Shadow (3L << 21)
+#define FWL_WGTSTYLE_Group (1L << 22)
+#define FWL_WGTSTYLE_TabStop (1L << 23)
+#define FWL_WGTSTYLE_Offscreen (1L << 24)
+#define FWL_WGTSTYLE_DragAcceptFiles (1L << 25)
+#define FWL_WGTSTYLE_TopMost (1L << 26)
+#define FWL_WGTSTYLE_TransParent (1L << 27)
+#define FWL_WGTSTYLE_NoBackground (1L << 28)
+#define FWL_WGTSTYLE_WindowTypeMask (3L << 0)
+#define FWL_WGTSTATE_Restored (0L << 0)
+#define FWL_WGTSTATE_Minimized (1L << 0)
+#define FWL_WGTSTATE_Maximized (2L << 0)
+#define FWL_WGTSTATE_Disabled (1L << 2)
+#define FWL_WGTSTATE_Deactivated (1L << 3)
+#define FWL_WGTSTATE_Focused (1L << 4)
+#define FWL_WGTSTATE_Invisible (1L << 5)
+#define FWL_WGTSTATE_MAX (6)
+#define FWL_WGTHITTEST_Unknown 0
+#define FWL_WGTHITTEST_Client 1
+#define FWL_WGTHITTEST_Left 2
+#define FWL_WGTHITTEST_Top 3
+#define FWL_WGTHITTEST_Right 4
+#define FWL_WGTHITTEST_Bottom 5
+#define FWL_WGTHITTEST_LeftTop 6
+#define FWL_WGTHITTEST_RightTop 7
+#define FWL_WGTHITTEST_LeftBottom 8
+#define FWL_WGTHITTEST_RightBottom 9
+#define FWL_WGTHITTEST_Icon 10
+#define FWL_WGTHITTEST_Titlebar 11
+#define FWL_WGTHITTEST_MinBox 12
+#define FWL_WGTHITTEST_MaxBox 13
+#define FWL_WGTHITTEST_CloseBox 14
+#define FWL_WGTHITTEST_HScrollBar 15
+#define FWL_WGTHITTEST_VScrollBar 16
+#define FWL_WGTHITTEST_Border 17
+#define FWL_WGTHITTEST_Edge 18
+#define FWL_WGTHITTEST_Edit 19
+#define FWL_WGTHITTEST_HyperLink 20
+#define FWL_WGTHITTEST_MAX 21
+#define FWL_VKEY_LButton 0x01
+#define FWL_VKEY_RButton 0x02
+#define FWL_VKEY_MButton 0x04
+#define FWL_VKEY_Back 0x08
+#define FWL_VKEY_Tab 0x09
+#define FWL_VKEY_Clear 0x0C
+#define FWL_VKEY_Return 0x0D
+#define FWL_VKEY_Shift 0x10
+#define FWL_VKEY_Control 0x11
+#define FWL_VKEY_Menu 0x12
+#define FWL_VKEY_Pause 0x13
+#define FWL_VKEY_Capital 0x14
+#define FWL_VKEY_Kana 0x15
+#define FWL_VKEY_Hangul 0x15
+#define FWL_VKEY_Junja 0x17
+#define FWL_VKEY_Final 0x18
+#define FWL_VKEY_Hanja 0x19
+#define FWL_VKEY_Kanji 0x19
+#define FWL_VKEY_Escape 0x1B
+#define FWL_VKEY_Convert 0x1C
+#define FWL_VKEY_NonConvert 0x1D
+#define FWL_VKEY_Accept 0x1E
+#define FWL_VKEY_ModeChange 0x1F
+#define FWL_VKEY_Space 0x20
+#define FWL_VKEY_Prior 0x21
+#define FWL_VKEY_Next 0x22
+#define FWL_VKEY_End 0x23
+#define FWL_VKEY_Home 0x24
+#define FWL_VKEY_Left 0x25
+#define FWL_VKEY_Up 0x26
+#define FWL_VKEY_Right 0x27
+#define FWL_VKEY_Down 0x28
+#define FWL_VKEY_Select 0x29
+#define FWL_VKEY_Print 0x2A
+#define FWL_VKEY_Execute 0x2B
+#define FWL_VKEY_Snapshot 0x2C
+#define FWL_VKEY_Insert 0x2D
+#define FWL_VKEY_Delete 0x2E
+#define FWL_VKEY_Help 0x2F
+#define FWL_VKEY_0 0x30
+#define FWL_VKEY_1 0x31
+#define FWL_VKEY_2 0x32
+#define FWL_VKEY_3 0x33
+#define FWL_VKEY_4 0x34
+#define FWL_VKEY_5 0x35
+#define FWL_VKEY_6 0x36
+#define FWL_VKEY_7 0x37
+#define FWL_VKEY_8 0x38
+#define FWL_VKEY_9 0x39
+#define FWL_VKEY_A 0x41
+#define FWL_VKEY_B 0x42
+#define FWL_VKEY_C 0x43
+#define FWL_VKEY_D 0x44
+#define FWL_VKEY_E 0x45
+#define FWL_VKEY_F 0x46
+#define FWL_VKEY_G 0x47
+#define FWL_VKEY_H 0x48
+#define FWL_VKEY_I 0x49
+#define FWL_VKEY_J 0x4A
+#define FWL_VKEY_K 0x4B
+#define FWL_VKEY_L 0x4C
+#define FWL_VKEY_M 0x4D
+#define FWL_VKEY_N 0x4E
+#define FWL_VKEY_O 0x4F
+#define FWL_VKEY_P 0x50
+#define FWL_VKEY_Q 0x51
+#define FWL_VKEY_R 0x52
+#define FWL_VKEY_S 0x53
+#define FWL_VKEY_T 0x54
+#define FWL_VKEY_U 0x55
+#define FWL_VKEY_V 0x56
+#define FWL_VKEY_W 0x57
+#define FWL_VKEY_X 0x58
+#define FWL_VKEY_Y 0x59
+#define FWL_VKEY_Z 0x5A
+#define FWL_VKEY_LWin 0x5B
+#define FWL_VKEY_Command 0x5B
+#define FWL_VKEY_RWin 0x5C
+#define FWL_VKEY_Apps 0x5D
+#define FWL_VKEY_Sleep 0x5F
+#define FWL_VKEY_NumPad0 0x60
+#define FWL_VKEY_NumPad1 0x61
+#define FWL_VKEY_NumPad2 0x62
+#define FWL_VKEY_NumPad3 0x63
+#define FWL_VKEY_NumPad4 0x64
+#define FWL_VKEY_NumPad5 0x65
+#define FWL_VKEY_NumPad6 0x66
+#define FWL_VKEY_NumPad7 0x67
+#define FWL_VKEY_NumPad8 0x68
+#define FWL_VKEY_NumPad9 0x69
+#define FWL_VKEY_Multiply 0x6A
+#define FWL_VKEY_Add 0x6B
+#define FWL_VKEY_Separator 0x6C
+#define FWL_VKEY_Subtract 0x6D
+#define FWL_VKEY_Decimal 0x6E
+#define FWL_VKEY_Divide 0x6F
+#define FWL_VKEY_F1 0x70
+#define FWL_VKEY_F2 0x71
+#define FWL_VKEY_F3 0x72
+#define FWL_VKEY_F4 0x73
+#define FWL_VKEY_F5 0x74
+#define FWL_VKEY_F6 0x75
+#define FWL_VKEY_F7 0x76
+#define FWL_VKEY_F8 0x77
+#define FWL_VKEY_F9 0x78
+#define FWL_VKEY_F10 0x79
+#define FWL_VKEY_F11 0x7A
+#define FWL_VKEY_F12 0x7B
+#define FWL_VKEY_F13 0x7C
+#define FWL_VKEY_F14 0x7D
+#define FWL_VKEY_F15 0x7E
+#define FWL_VKEY_F16 0x7F
+#define FWL_VKEY_F17 0x80
+#define FWL_VKEY_F18 0x81
+#define FWL_VKEY_F19 0x82
+#define FWL_VKEY_F20 0x83
+#define FWL_VKEY_F21 0x84
+#define FWL_VKEY_F22 0x85
+#define FWL_VKEY_F23 0x86
+#define FWL_VKEY_F24 0x87
+#define FWL_VKEY_NunLock 0x90
+#define FWL_VKEY_Scroll 0x91
+#define FWL_VKEY_LShift 0xA0
+#define FWL_VKEY_RShift 0xA1
+#define FWL_VKEY_LControl 0xA2
+#define FWL_VKEY_RControl 0xA3
+#define FWL_VKEY_LMenu 0xA4
+#define FWL_VKEY_RMenu 0xA5
+#define FWL_VKEY_BROWSER_Back 0xA6
+#define FWL_VKEY_BROWSER_Forward 0xA7
+#define FWL_VKEY_BROWSER_Refresh 0xA8
+#define FWL_VKEY_BROWSER_Stop 0xA9
+#define FWL_VKEY_BROWSER_Search 0xAA
+#define FWL_VKEY_BROWSER_Favorites 0xAB
+#define FWL_VKEY_BROWSER_Home 0xAC
+#define FWL_VKEY_VOLUME_Mute 0xAD
+#define FWL_VKEY_VOLUME_Down 0xAE
+#define FWL_VKEY_VOLUME_Up 0xAF
+#define FWL_VKEY_MEDIA_NEXT_Track 0xB0
+#define FWL_VKEY_MEDIA_PREV_Track 0xB1
+#define FWL_VKEY_MEDIA_Stop 0xB2
+#define FWL_VKEY_MEDIA_PLAY_Pause 0xB3
+#define FWL_VKEY_MEDIA_LAUNCH_Mail 0xB4
+#define FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select 0xB5
+#define FWL_VKEY_MEDIA_LAUNCH_APP1 0xB6
+#define FWL_VKEY_MEDIA_LAUNCH_APP2 0xB7
+#define FWL_VKEY_OEM_1 0xBA
+#define FWL_VKEY_OEM_Plus 0xBB
+#define FWL_VKEY_OEM_Comma 0xBC
+#define FWL_VKEY_OEM_Minus 0xBD
+#define FWL_VKEY_OEM_Period 0xBE
+#define FWL_VKEY_OEM_2 0xBF
+#define FWL_VKEY_OEM_3 0xC0
+#define FWL_VKEY_OEM_4 0xDB
+#define FWL_VKEY_OEM_5 0xDC
+#define FWL_VKEY_OEM_6 0xDD
+#define FWL_VKEY_OEM_7 0xDE
+#define FWL_VKEY_OEM_8 0xDF
+#define FWL_VKEY_OEM_102 0xE2
+#define FWL_VKEY_ProcessKey 0xE5
+#define FWL_VKEY_Packet 0xE7
+#define FWL_VKEY_Attn 0xF6
+#define FWL_VKEY_Crsel 0xF7
+#define FWL_VKEY_Exsel 0xF8
+#define FWL_VKEY_Ereof 0xF9
+#define FWL_VKEY_Play 0xFA
+#define FWL_VKEY_Zoom 0xFB
+#define FWL_VKEY_NoName 0xFC
+#define FWL_VKEY_PA1 0xFD
+#define FWL_VKEY_OEM_Clear 0xFE
+#define FWL_VKEY_Unknown 0
+#define FWL_VKEYSTATE_Toggled 0x0001
+#define FWL_VKEYSTATE_Down 0x0100
+
+#endif // XFA_FWL_CORE_FWL_WIDGETDEF_H_
diff --git a/xfa/fwl/core/fwl_widgetimp.cpp b/xfa/fwl/core/fwl_widgetimp.cpp
index 18429681c5..fdc192756d 100644
--- a/xfa/fwl/core/fwl_widgetimp.cpp
+++ b/xfa/fwl/core/fwl_widgetimp.cpp
@@ -9,21 +9,29 @@
#include <algorithm>
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_combobox.h"
+#include "xfa/fwl/basewidget/ifwl_datetimepicker.h"
+#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#include "xfa/include/fwl/adapter/fwl_adapternative.h"
-#include "xfa/include/fwl/adapter/fwl_adapterthreadmgr.h"
-#include "xfa/include/fwl/adapter/fwl_adapterwidgetmgr.h"
-#include "xfa/include/fwl/basewidget/fwl_combobox.h"
-#include "xfa/include/fwl/basewidget/fwl_datetimepicker.h"
-#include "xfa/include/fwl/basewidget/fwl_menu.h"
-#include "xfa/include/fwl/core/fwl_app.h"
-#include "xfa/include/fwl/core/fwl_content.h"
-#include "xfa/include/fwl/core/fwl_form.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
+#include "xfa/fwl/core/ifwl_adapternative.h"
+#include "xfa/fwl/core/ifwl_adapterthreadmgr.h"
+#include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
+#include "xfa/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_content.h"
+#include "xfa/fwl/core/ifwl_custom.h"
+#include "xfa/fwl/core/ifwl_form.h"
+#include "xfa/fwl/core/ifwl_proxy.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+
+#define FWL_CLASSHASH_Menu 3957949655
+#define FWL_STYLEEXT_MNU_Vert (1L << 0)
FWL_ERR IFWL_Widget::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
return static_cast<CFWL_WidgetImp*>(GetImpl())
diff --git a/xfa/fwl/core/fwl_widgetimp.h b/xfa/fwl/core/fwl_widgetimp.h
index 0aa7beb2fb..718268fd31 100644
--- a/xfa/fwl/core/fwl_widgetimp.h
+++ b/xfa/fwl/core/fwl_widgetimp.h
@@ -7,16 +7,20 @@
#ifndef XFA_FWL_CORE_FWL_WIDGETIMP_H_
#define XFA_FWL_CORE_FWL_WIDGETIMP_H_
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/fwl_targetimp.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
+#include "xfa/fwl/core/ifwl_widgetdelegate.h"
+class CFWL_MsgKey;
class CFWL_NoteThreadImp;
class CFWL_WidgetImpProperties;
class CFWL_WidgetMgr;
class IFWL_DataProvider;
+class IFWL_NoteThread;
class IFWL_ThemeProvider;
class IFWL_Widget;
-class IFWL_WidgetDelegate;
class CFWL_WidgetImp : public CFWL_TargetImp {
public:
diff --git a/xfa/fwl/core/fwl_widgetmgrimp.cpp b/xfa/fwl/core/fwl_widgetmgrimp.cpp
index ab507c221a..9a9b2d6f24 100644
--- a/xfa/fwl/core/fwl_widgetmgrimp.cpp
+++ b/xfa/fwl/core/fwl_widgetmgrimp.cpp
@@ -6,15 +6,16 @@
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
+#include "xfa/fwl/core/cfwl_message.h"
#include "xfa/fwl/core/fwl_appimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_threadimp.h"
#include "xfa/fwl/core/fwl_widgetimp.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/fwl/core/ifwl_adapternative.h"
+#include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
+#include "xfa/fwl/core/ifwl_app.h"
+#include "xfa/fwl/core/ifwl_form.h"
FX_BOOL FWL_UseOffscreen(IFWL_Widget* pWidget) {
#if (_FX_OS_ == _FX_MACOSX_)
diff --git a/xfa/fwl/core/fwl_widgetmgrimp.h b/xfa/fwl/core/fwl_widgetmgrimp.h
index c29045d055..76e4425555 100644
--- a/xfa/fwl/core/fwl_widgetmgrimp.h
+++ b/xfa/fwl/core/fwl_widgetmgrimp.h
@@ -7,7 +7,9 @@
#ifndef XFA_FWL_CORE_FWL_WIDGETMGRIMP_H_
#define XFA_FWL_CORE_FWL_WIDGETMGRIMP_H_
-#include "xfa/include/fwl/core/fwl_widgetmgr.h"
+#include "xfa/fwl/core/ifwl_widgetmgr.h"
+#include "xfa/fwl/core/ifwl_widgetmgrdelegate.h"
+#include "xfa/fxgraphics/include/cfx_graphics.h"
class IFWL_Widget;
class IFWL_AdapterWidgetMgr;
diff --git a/xfa/fwl/core/ifwl_adapternative.h b/xfa/fwl/core/ifwl_adapternative.h
new file mode 100644
index 0000000000..6c6d8019ff
--- /dev/null
+++ b/xfa/fwl/core/ifwl_adapternative.h
@@ -0,0 +1,24 @@
+// 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_FWL_CORE_IFWL_ADAPTERNATIVE_H_
+#define XFA_FWL_CORE_IFWL_ADAPTERNATIVE_H_
+
+class IFWL_WidgetMgrDelegate;
+class IFWL_AdapterWidgetMgr;
+class IFWL_AdapterThreadMgr;
+class IFWL_AdapterTimerMgr;
+
+class IFWL_AdapterNative {
+ public:
+ virtual ~IFWL_AdapterNative() {}
+ virtual IFWL_AdapterWidgetMgr* GetWidgetMgr(
+ IFWL_WidgetMgrDelegate* pDelegate) = 0;
+ virtual IFWL_AdapterThreadMgr* GetThreadMgr() = 0;
+ virtual IFWL_AdapterTimerMgr* GetTimerMgr() = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_ADAPTERNATIVE_H_
diff --git a/xfa/fwl/core/ifwl_adapterthreadmgr.h b/xfa/fwl/core/ifwl_adapterthreadmgr.h
new file mode 100644
index 0000000000..821ced3164
--- /dev/null
+++ b/xfa/fwl/core/ifwl_adapterthreadmgr.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_FWL_CORE_IFWL_ADAPTERTHREADMGR_H_
+#define XFA_FWL_CORE_IFWL_ADAPTERTHREADMGR_H_
+
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_thread.h"
+
+class IFWL_AdapterThreadMgr {
+ public:
+ virtual ~IFWL_AdapterThreadMgr() {}
+ virtual FWL_ERR Start(IFWL_Thread* pThread,
+ FWL_HTHREAD& hThread,
+ FX_BOOL bSuspended = FALSE) = 0;
+ virtual FWL_ERR Resume(FWL_HTHREAD hThread) = 0;
+ virtual FWL_ERR Suspend(FWL_HTHREAD hThread) = 0;
+ virtual FWL_ERR Kill(FWL_HTHREAD hThread, int32_t iExitCode) = 0;
+ virtual FWL_ERR Stop(FWL_HTHREAD hThread, int32_t iExitCode) = 0;
+ virtual IFWL_Thread* GetCurrentThread() = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_ADAPTERTHREADMGR_H_
diff --git a/xfa/fwl/core/ifwl_adapterwidgetmgr.h b/xfa/fwl/core/ifwl_adapterwidgetmgr.h
new file mode 100644
index 0000000000..80dbfd9bf5
--- /dev/null
+++ b/xfa/fwl/core/ifwl_adapterwidgetmgr.h
@@ -0,0 +1,81 @@
+// 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_FWL_CORE_IFWL_ADAPTERWIDGETMGR_H_
+#define XFA_FWL_CORE_IFWL_ADAPTERWIDGETMGR_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class IFWL_Widget;
+class IFWL_Menu;
+class IFWL_MenuDP;
+class CFX_Path;
+class CFX_DIBitmap;
+class IFWL_AdapterMessageHook;
+
+class IFWL_AdapterWidgetMgr {
+ public:
+ virtual ~IFWL_AdapterWidgetMgr() {}
+ virtual FWL_ERR CreateWidget(IFWL_Widget* pWidget,
+ IFWL_Widget* pParent = NULL) = 0;
+ virtual FWL_ERR DestroyWidget(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR GetWidgetRect(IFWL_Widget* pWidget, CFX_RectF& rect) = 0;
+ virtual FWL_ERR SetWidgetRect(IFWL_Widget* pWidget,
+ const CFX_RectF& rect) = 0;
+ virtual FWL_ERR SetWidgetPosition(IFWL_Widget* pWidget,
+ FX_FLOAT fx,
+ FX_FLOAT fy) = 0;
+ virtual FWL_ERR SetParentWidget(IFWL_Widget* pWidget,
+ IFWL_Widget* pParent) = 0;
+ virtual FWL_ERR SetWidgetIcon(IFWL_Widget* pWidget,
+ const CFX_DIBitmap* pIcon,
+ FX_BOOL bBig) = 0;
+ virtual FWL_ERR SetWidgetCaption(IFWL_Widget* pWidget,
+ const CFX_WideStringC& wsCaption) = 0;
+ virtual FWL_ERR SetBorderRegion(IFWL_Widget* pWidget, CFX_Path* pPath) = 0;
+ virtual FWL_ERR SetTransparent(IFWL_Widget* pWidget, FX_DWORD dwAlpha) = 0;
+ virtual FWL_ERR ShowWidget(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR HideWidget(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR SetNormal(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR SetMaximize(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR SetMinimize(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR SetFullScreen(IFWL_Widget* pWidget, FX_BOOL bFullScreen) = 0;
+ virtual FX_BOOL CheckMessage() = 0;
+ virtual FX_BOOL IsIdleMessage() = 0;
+ virtual FWL_ERR DispatchMessage() = 0;
+ virtual FWL_ERR RepaintWidget(IFWL_Widget* pWidget,
+ const CFX_RectF* pRect) = 0;
+ virtual FWL_ERR Exit(int32_t iExitCode) = 0;
+ virtual FWL_ERR CreateWidgetWithNativeId(IFWL_Widget* pWidget,
+ void* UserData) = 0;
+ virtual FWL_ERR GetWidgetDC(IFWL_Widget* pWidget, void*& pDC) = 0;
+ virtual FWL_ERR ReleaseWidgetDC(IFWL_Widget* pWidget,
+ void* pDC,
+ CFX_RectF* pClip = 0) = 0;
+ virtual void* GetWindow(IFWL_Widget* pWidget) = 0;
+ virtual FX_DWORD GetKeyState(FX_DWORD dwVirtKey) = 0;
+ virtual FWL_ERR RunLoop(IFWL_Widget* widget) = 0;
+ virtual FWL_ERR EndLoop() = 0;
+ virtual FWL_ERR InitMenu(IFWL_Menu* pMenu, IFWL_MenuDP* pMenuData) = 0;
+ virtual FWL_ERR UpdateMenu(IFWL_Menu* pMenu,
+ const void* hItem,
+ int32_t iType) = 0;
+ virtual int32_t TrackPopupMenu(IFWL_Menu* pMenu, IFWL_MenuDP* pMenuData) = 0;
+ virtual FWL_ERR SetMessageHook(IFWL_AdapterMessageHook* hook) = 0;
+ virtual FWL_ERR GetSystemBorder(FX_FLOAT& l,
+ FX_FLOAT& t,
+ FX_FLOAT& r,
+ FX_FLOAT& b) = 0;
+ virtual FX_BOOL GetPopupPos(IFWL_Widget* pWidget,
+ FX_FLOAT fMinHeight,
+ FX_FLOAT fMaxHeight,
+ const CFX_RectF& rtAnchor,
+ CFX_RectF& rtPopup) = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_ADAPTERWIDGETMGR_H_
diff --git a/xfa/fwl/core/ifwl_app.h b/xfa/fwl/core/ifwl_app.h
new file mode 100644
index 0000000000..ed1fd673b2
--- /dev/null
+++ b/xfa/fwl/core/ifwl_app.h
@@ -0,0 +1,45 @@
+// 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_FWL_CORE_IFWL_APP_H_
+#define XFA_FWL_CORE_IFWL_APP_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "xfa/fwl/core/ifwl_notethread.h"
+
+class IFWL_AdapterNative;
+class IFWL_Widget;
+class IFWL_WidgetMgr;
+class IFWL_ThemeProvider;
+class IFWL_AdapterWidgetMgr;
+
+class IFWL_App : public IFWL_NoteThread {
+ public:
+ static IFWL_App* Create(IFWL_AdapterNative* pAdapter);
+
+ FWL_ERR Initialize();
+ FWL_ERR Finalize();
+ IFWL_AdapterNative* GetAdapterNative();
+ IFWL_WidgetMgr* GetWidgetMgr();
+ IFWL_ThemeProvider* GetThemeProvider();
+ FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider);
+ FWL_ERR Exit(int32_t iExitCode);
+
+ private:
+ IFWL_App() {}
+};
+
+IFWL_App* FWL_GetApp();
+void FWL_SetApp(IFWL_App* pApp);
+IFWL_AdapterNative* FWL_GetAdapterNative();
+IFWL_AdapterWidgetMgr* FWL_GetAdapterWidgetMgr();
+IFWL_ThemeProvider* FWL_GetThemeProvider();
+extern FWL_ERR FWL_Execute(const CFX_WideStringC& wsExecutable,
+ const CFX_WideStringC& wsParameters);
+FWL_ERR FWL_SetFullScreen(IFWL_Widget* pWidget, FX_BOOL bFullScreen);
+FX_BOOL FWL_AppIsActived();
+
+#endif // XFA_FWL_CORE_IFWL_APP_H_
diff --git a/xfa/fwl/core/ifwl_content.h b/xfa/fwl/core/ifwl_content.h
new file mode 100644
index 0000000000..76292a609c
--- /dev/null
+++ b/xfa/fwl/core/ifwl_content.h
@@ -0,0 +1,30 @@
+// 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_FWL_CORE_IFWL_CONTENT_H_
+#define XFA_FWL_CORE_IFWL_CONTENT_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class IFWL_Content : public IFWL_Widget {
+ public:
+ static IFWL_Content* Create();
+ FWL_ERR InsertWidget(IFWL_Widget* pChild, int32_t nIndex = -1);
+ FWL_ERR RemoveWidget(IFWL_Widget* pWidget);
+ 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:
+ IFWL_Content();
+};
+
+#endif // XFA_FWL_CORE_IFWL_CONTENT_H_
diff --git a/xfa/fwl/core/ifwl_custom.h b/xfa/fwl/core/ifwl_custom.h
new file mode 100644
index 0000000000..d7f1b40923
--- /dev/null
+++ b/xfa/fwl/core/ifwl_custom.h
@@ -0,0 +1,26 @@
+// Copyright 2016 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_FWL_CORE_IFWL_CUSTOM_H_
+#define XFA_FWL_CORE_IFWL_CUSTOM_H_
+
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+
+class IFWL_Proxy;
+
+class IFWL_Custom : public IFWL_Widget {
+ public:
+ static IFWL_Custom* Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ FWL_ERR SetProxy(IFWL_Proxy* pProxy);
+
+ protected:
+ IFWL_Custom();
+};
+
+#endif // XFA_FWL_CORE_IFWL_CUSTOM_H_
diff --git a/xfa/fwl/core/ifwl_custompanel.h b/xfa/fwl/core/ifwl_custompanel.h
new file mode 100644
index 0000000000..3491227af0
--- /dev/null
+++ b/xfa/fwl/core/ifwl_custompanel.h
@@ -0,0 +1,28 @@
+// Copyright 2016 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_FWL_CORE_IFWL_CUSTOMPANEL_H_
+#define XFA_FWL_CORE_IFWL_CUSTOMPANEL_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+
+class IFWL_Proxy;
+
+class IFWL_CustomPanel : public IFWL_Widget {
+ public:
+ static IFWL_CustomPanel* Create(CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ IFWL_Content* GetContent();
+ FWL_ERR SetContent(IFWL_Content* pContent);
+ FWL_ERR SetProxy(IFWL_Proxy* pProxy);
+
+ protected:
+ IFWL_CustomPanel();
+};
+
+#endif // XFA_FWL_CORE_IFWL_CUSTOMPANEL_H_
diff --git a/xfa/fwl/core/ifwl_dataprovider.h b/xfa/fwl/core/ifwl_dataprovider.h
new file mode 100644
index 0000000000..271edb7ac8
--- /dev/null
+++ b/xfa/fwl/core/ifwl_dataprovider.h
@@ -0,0 +1,22 @@
+// Copyright 2016 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_FWL_CORE_IFWL_DATAPROVIDER_H_
+#define XFA_FWL_CORE_IFWL_DATAPROVIDER_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class IFWL_Widget;
+
+class IFWL_DataProvider {
+ public:
+ virtual ~IFWL_DataProvider() {}
+ virtual FWL_ERR GetCaption(IFWL_Widget* pWidget,
+ CFX_WideString& wsCaption) = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_DATAPROVIDER_H_
diff --git a/xfa/fwl/core/ifwl_form.h b/xfa/fwl/core/ifwl_form.h
new file mode 100644
index 0000000000..66391692a9
--- /dev/null
+++ b/xfa/fwl/core/ifwl_form.h
@@ -0,0 +1,97 @@
+// 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_FWL_CORE_IFWL_FORM_H_
+#define XFA_FWL_CORE_IFWL_FORM_H_
+
+#include "xfa/fwl/core/ifwl_panel.h"
+#include "xfa/fwl/core/ifwl_dataprovider.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/cfwl_widgetimpproperties.h"
+
+#define FWL_CLASS_Form L"FWL_FORM"
+#define FWL_CLASSHASH_Form 881567292
+#define FWL_CLASS_FormProxy L"FWL_FORMPROXY"
+#define FWL_CLASSHASH_FormProxy 881567291
+#define FWL_STYLEEXT_FRM_Resize (1L << 0)
+#define FWL_STYLEEXT_FRM_NativeBorder (1L << 1)
+#define FWL_STYLEEXT_FRM_RoundCorner (2L << 1)
+#define FWL_STYLEEXT_FRM_RoundCorner4 (3L << 1)
+#define FWL_STYLEEXT_FRM_NoDrawClient (1L << 3)
+#define FWL_STYLEEXT_FRM_BorderCornerMask (3L << 1)
+#define FWL_STYLEEXT_FRM_Max (3)
+
+#if (_FX_OS_ == _FX_MACOSX_)
+#define FWL_UseMacSystemBorder
+#endif
+
+#define FWL_WGTCAPACITY_FRM_CYCaption (FWL_WGTCAPACITY_MAX + 1)
+#define FWL_WGTCAPACITY_FRM_CYNarrowCaption (FWL_WGTCAPACITY_MAX + 2)
+#define FWL_WGTCAPACITY_FRM_BigIcon (FWL_WGTCAPACITY_MAX + 3)
+#define FWL_WGTCAPACITY_FRM_SmallIcon (FWL_WGTCAPACITY_MAX + 4)
+#define FWL_PART_FRM_Border 1
+#define FWL_PART_FRM_Edge 2
+#define FWL_PART_FRM_Background 3
+#define FWL_PART_FRM_Caption 4
+#define FWL_PART_FRM_NarrowCaption 5
+#define FWL_PART_FRM_CloseBox 6
+#define FWL_PART_FRM_MinimizeBox 7
+#define FWL_PART_FRM_MaximizeBox 8
+#define FWL_PART_FRM_HeadText 9
+#define FWL_PART_FRM_Icon 10
+#define FWL_PARTSTATE_FRM_Normal 1
+#define FWL_PARTSTATE_FRM_Hover 2
+#define FWL_PARTSTATE_FRM_Pressed 3
+#define FWL_PARTSTATE_FRM_Inactive 4
+#define FWL_PARTSTATE_FRM_Disabled 5
+
+enum FWL_FORMSIZE {
+ FWL_FORMSIZE_Manual = 0,
+ FWL_FORMSIZE_Width,
+ FWL_FORMSIZE_Height,
+ FWL_FORMSIZE_All,
+};
+
+enum FWL_COMMANDID {
+ FWL_COMMANDID_Close = 0,
+ FWL_COMMANDID_Ok,
+ FWL_COMMANDID_Cancel,
+ FWL_COMMANDID_Abort,
+ FWL_COMMANDID_Retry,
+ FWL_COMMANDID_Ignore,
+ FWL_COMMANDID_Yes,
+ FWL_COMMANDID_No,
+};
+
+class CFX_DIBitmap;
+class CFX_WideString;
+class CFX_Path;
+class IFWL_Widget;
+class IFWL_Form;
+
+class IFWL_FormDP : public IFWL_DataProvider {
+ public:
+ virtual CFX_DIBitmap* GetIcon(IFWL_Widget* pWidget, FX_BOOL bBig) = 0;
+};
+
+class IFWL_Form : public IFWL_Panel {
+ public:
+ static IFWL_Form* CreateFormProxy(CFWL_WidgetImpProperties& properties,
+ CFX_WideString* classname,
+ IFWL_Widget* pOuter);
+
+ FWL_FORMSIZE GetFormSize();
+ FWL_ERR SetFormSize(FWL_FORMSIZE eFormSize);
+ IFWL_Widget* DoModal();
+ IFWL_Widget* DoModal(FX_DWORD& dwCommandID);
+ FWL_ERR EndDoModal();
+ FWL_ERR SetBorderRegion(CFX_Path* pPath);
+
+ protected:
+ IFWL_Form();
+};
+
+#endif // XFA_FWL_CORE_IFWL_FORM_H_
diff --git a/xfa/fwl/core/ifwl_grid.h b/xfa/fwl/core/ifwl_grid.h
new file mode 100644
index 0000000000..f1ef57f912
--- /dev/null
+++ b/xfa/fwl/core/ifwl_grid.h
@@ -0,0 +1,93 @@
+// 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_FWL_CORE_IFWL_GRID_H_
+#define XFA_FWL_CORE_IFWL_GRID_H_
+
+#include "xfa/fwl/core/ifwl_content.h"
+
+class IFWL_Widget;
+
+#define FWL_CLASS_Grid L"FWL_GRID"
+#define FWL_CLASSHASH_Grid 3150298670
+#define FWL_GRIDSTYLEEXT_ShowGridLines (1L << 0)
+
+struct FWL_LAYOUTDATA {
+ FX_FLOAT fWidth;
+ FX_FLOAT fHeight;
+};
+
+enum FWL_GRIDUNIT {
+ FWL_GRIDUNIT_Auto = 0,
+ FWL_GRIDUNIT_Fixed,
+ FWL_GRIDUNIT_Scaled,
+ FWL_GRIDUNIT_Infinity,
+};
+
+enum FWL_GRIDMARGIN {
+ FWL_GRIDMARGIN_Left = 0,
+ FWL_GRIDMARGIN_Top,
+ FWL_GRIDMARGIN_Right,
+ FWL_GRIDMARGIN_Bottom,
+};
+
+enum FWL_GRIDSIZE {
+ FWL_GRIDSIZE_Width = 0,
+ FWL_GRIDSIZE_Height,
+ FWL_GRIDSIZE_MinWidth,
+ FWL_GRIDSIZE_MinHeight,
+ FWL_GRIDSIZE_MaxWidth,
+ FWL_GRIDSIZE_MaxHeight,
+};
+
+typedef struct FWL_HGRIDCOLROW_ { void* pData; } * FWL_HGRIDCOLROW;
+
+class IFWL_Grid : public IFWL_Content {
+ public:
+ static IFWL_Grid* Create(const CFWL_WidgetImpProperties& properties);
+
+ FWL_HGRIDCOLROW InsertColRow(FX_BOOL bColumn, int32_t nIndex = -1);
+ int32_t CountColRows(FX_BOOL bColumn);
+ FWL_HGRIDCOLROW GetColRow(FX_BOOL bColumn, int32_t nIndex);
+ int32_t GetIndex(FWL_HGRIDCOLROW hColRow);
+ FX_FLOAT GetSize(FWL_HGRIDCOLROW hColRow, FWL_GRIDUNIT& eUnit);
+ 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);
+ FX_BOOL DeleteColRow(FWL_HGRIDCOLROW hColRow);
+ FX_BOOL IsColumn(FWL_HGRIDCOLROW hColRow);
+ int32_t GetWidgetPos(IFWL_Widget* pWidget, FX_BOOL bColumn);
+ FWL_ERR SetWidgetPos(IFWL_Widget* pWidget, int32_t iPos, FX_BOOL bColumn);
+ int32_t GetWidgetSpan(IFWL_Widget* pWidget, FX_BOOL bColumn);
+ FWL_ERR SetWidgetSpan(IFWL_Widget* pWidget, int32_t iSpan, FX_BOOL bColumn);
+ FX_FLOAT GetWidgetSize(IFWL_Widget* pWidget,
+ FWL_GRIDSIZE eSize,
+ FWL_GRIDUNIT& eUnit);
+ FWL_ERR SetWidgetSize(IFWL_Widget* pWidget,
+ FWL_GRIDSIZE eSize,
+ FX_FLOAT fSize,
+ FWL_GRIDUNIT eUit);
+ FX_BOOL GetWidgetMargin(IFWL_Widget* pWidget,
+ FWL_GRIDMARGIN eMargin,
+ FX_FLOAT& fMargin);
+ FWL_ERR SetWidgetMargin(IFWL_Widget* pWidget,
+ FWL_GRIDMARGIN eMargin,
+ FX_FLOAT fMargin);
+ FWL_ERR RemoveWidgetMargin(IFWL_Widget* pWidget, FWL_GRIDMARGIN eMargin);
+ FX_FLOAT GetGridSize(FWL_GRIDSIZE eSize, FWL_GRIDUNIT& eUnit);
+ FWL_ERR SetGridSize(FWL_GRIDSIZE eSize, FX_FLOAT fSize, FWL_GRIDUNIT eUit);
+
+ protected:
+ IFWL_Grid();
+};
+
+#endif // XFA_FWL_CORE_IFWL_GRID_H_
diff --git a/xfa/fwl/core/ifwl_notedriver.h b/xfa/fwl/core/ifwl_notedriver.h
new file mode 100644
index 0000000000..cdedd6f0c9
--- /dev/null
+++ b/xfa/fwl/core/ifwl_notedriver.h
@@ -0,0 +1,58 @@
+// Copyright 2016 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_FWL_CORE_IFWL_NOTEDRIVER_H_
+#define XFA_FWL_CORE_IFWL_NOTEDRIVER_H_
+
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/cfwl_event.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_KEYFLAG_Ctrl (1 << 0)
+#define FWL_KEYFLAG_Alt (1 << 1)
+#define FWL_KEYFLAG_Shift (1 << 2)
+#define FWL_KEYFLAG_Command (1 << 3)
+#define FWL_KEYFLAG_LButton (1 << 4)
+#define FWL_KEYFLAG_RButton (1 << 5)
+#define FWL_KEYFLAG_MButton (1 << 6)
+
+class CFWL_Message;
+class CFWL_Note;
+class IFWL_NoteLoop;
+class IFWL_NoteThread;
+class IFWL_Widget;
+
+class IFWL_NoteDriver {
+ public:
+ virtual ~IFWL_NoteDriver() {}
+
+ virtual FX_BOOL SendNote(CFWL_Note* pNote) = 0;
+ virtual FX_BOOL PostMessage(CFWL_Message* pMessage) = 0;
+ virtual FWL_ERR RegisterEventTarget(
+ IFWL_Widget* pListener,
+ IFWL_Widget* pEventSource = NULL,
+ FX_DWORD dwFilter = FWL_EVENT_ALL_MASK) = 0;
+ virtual FWL_ERR UnregisterEventTarget(IFWL_Widget* pListener) = 0;
+ virtual void ClearEventTargets(FX_BOOL bRemoveAll) = 0;
+ virtual int32_t GetQueueMaxSize() const = 0;
+ virtual FWL_ERR SetQueueMaxSize(const int32_t size) = 0;
+ virtual IFWL_NoteThread* GetOwnerThread() const = 0;
+ virtual FWL_ERR PushNoteLoop(IFWL_NoteLoop* pNoteLoop) = 0;
+ virtual IFWL_NoteLoop* PopNoteLoop() = 0;
+ virtual IFWL_Widget* GetFocus() = 0;
+ virtual FX_BOOL SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify = FALSE) = 0;
+ virtual void SetGrab(IFWL_Widget* pGrab, FX_BOOL bSet) = 0;
+ virtual FWL_ERR Run() = 0;
+};
+
+IFWL_Widget* FWL_GetCurrentThreadModalWidget(IFWL_NoteThread* pNoteThread);
+
+typedef FX_BOOL (*FWLMessageHookCallback)(CFWL_Message* msg, void* info);
+FWL_ERR FWL_SetHook(IFWL_NoteDriver* driver,
+ FWLMessageHookCallback callback,
+ void* info);
+
+#endif // XFA_FWL_CORE_IFWL_NOTEDRIVER_H_
diff --git a/xfa/fwl/core/ifwl_noteloop.h b/xfa/fwl/core/ifwl_noteloop.h
new file mode 100644
index 0000000000..a56d880b4a
--- /dev/null
+++ b/xfa/fwl/core/ifwl_noteloop.h
@@ -0,0 +1,22 @@
+// Copyright 2016 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_FWL_CORE_IFWL_NOTELOOP_H_
+#define XFA_FWL_CORE_IFWL_NOTELOOP_H_
+
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class CFWL_Message;
+
+class IFWL_NoteLoop {
+ public:
+ virtual ~IFWL_NoteLoop() {}
+ virtual FX_BOOL PreProcessMessage(CFWL_Message* pMessage) = 0;
+ virtual FWL_ERR Idle(int32_t count) = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_NOTELOOP_H_
diff --git a/xfa/fwl/core/ifwl_notethread.h b/xfa/fwl/core/ifwl_notethread.h
new file mode 100644
index 0000000000..30a29b5a9c
--- /dev/null
+++ b/xfa/fwl/core/ifwl_notethread.h
@@ -0,0 +1,19 @@
+// Copyright 2016 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_FWL_CORE_IFWL_NOTETHREAD_H_
+#define XFA_FWL_CORE_IFWL_NOTETHREAD_H_
+
+#include "xfa/fwl/core/ifwl_thread.h"
+
+class IFWL_NoteDriver;
+
+class IFWL_NoteThread : public IFWL_Thread {
+ public:
+ IFWL_NoteDriver* GetNoteDriver();
+};
+
+#endif // XFA_FWL_CORE_IFWL_NOTETHREAD_H_
diff --git a/xfa/fwl/core/ifwl_panel.h b/xfa/fwl/core/ifwl_panel.h
new file mode 100644
index 0000000000..ec9b02d3f7
--- /dev/null
+++ b/xfa/fwl/core/ifwl_panel.h
@@ -0,0 +1,30 @@
+// 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_FWL_CORE_IFWL_PANEL_H_
+#define XFA_FWL_CORE_IFWL_PANEL_H_
+
+#include "xfa/fwl/core/fwl_widgetimp.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+
+class IFWL_Content;
+
+#define FWL_CLASS_Panel L"FWL_Panel"
+#define FWL_CLASSHASH_Panel 881567292
+
+class IFWL_Panel : public IFWL_Widget {
+ public:
+ static IFWL_Panel* Create(CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter);
+
+ IFWL_Content* GetContent();
+ FWL_ERR SetContent(IFWL_Content* pContent);
+
+ protected:
+ IFWL_Panel();
+};
+
+#endif // XFA_FWL_CORE_IFWL_PANEL_H_
diff --git a/xfa/fwl/core/ifwl_proxy.h b/xfa/fwl/core/ifwl_proxy.h
new file mode 100644
index 0000000000..80393c5382
--- /dev/null
+++ b/xfa/fwl/core/ifwl_proxy.h
@@ -0,0 +1,21 @@
+// Copyright 2016 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_FWL_CORE_IFWL_PROXY_H_
+#define XFA_FWL_CORE_IFWL_PROXY_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class IFWL_Proxy {
+ public:
+ virtual ~IFWL_Proxy() {}
+ virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE) = 0;
+ virtual FWL_ERR Update() = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_PROXY_H_
diff --git a/xfa/fwl/core/ifwl_target.h b/xfa/fwl/core/ifwl_target.h
new file mode 100644
index 0000000000..fd6410e16c
--- /dev/null
+++ b/xfa/fwl/core/ifwl_target.h
@@ -0,0 +1,52 @@
+// 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_FWL_CORE_IFWL_TARGET_H_
+#define XFA_FWL_CORE_IFWL_TARGET_H_
+
+#include "core/fxcrt/include/fx_basic.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+// FWL contains three parallel inheritance hierarchies, which reference each
+// other via pointers as follows:
+//
+// m_pImpl
+// (nonesuch) IFWL_Target ----------> CFWL_TargetImp
+// | |
+// A A
+// m_pIface | |
+// CFWL_Widget ----------> IFWL_Widget CFWL_WidgetImp
+// | | |
+// A A A
+// | | |
+// CFWL_... IFWL_... CFWL_...Imp
+//
+
+class CFWL_TargetImp;
+
+class IFWL_Target {
+ public:
+ IFWL_Target() : m_pImpl(nullptr) {}
+ virtual ~IFWL_Target();
+
+ // These call into equivalent polymorphic methods of m_pImpl. There
+ // should be no need to override these in subclasses.
+ FWL_ERR GetClassName(CFX_WideString& wsClass) const;
+ FX_DWORD GetClassID() const;
+ FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const;
+ FWL_ERR Initialize();
+ FWL_ERR Finalize();
+
+ CFWL_TargetImp* GetImpl() const { return m_pImpl; }
+
+ protected:
+ void SetImpl(CFWL_TargetImp* pImpl) { m_pImpl = pImpl; }
+
+ private:
+ CFWL_TargetImp* m_pImpl;
+};
+
+#endif // XFA_FWL_CORE_IFWL_TARGET_H_
diff --git a/xfa/fwl/core/ifwl_themeprovider.h b/xfa/fwl/core/ifwl_themeprovider.h
new file mode 100644
index 0000000000..2bdacd5947
--- /dev/null
+++ b/xfa/fwl/core/ifwl_themeprovider.h
@@ -0,0 +1,58 @@
+// 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_FWL_CORE_IFWL_THEMEPROVIDER_H_
+#define XFA_FWL_CORE_IFWL_THEMEPROVIDER_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_WGTCAPACITY_CXBorder 1
+#define FWL_WGTCAPACITY_CYBorder 2
+#define FWL_WGTCAPACITY_ScrollBarWidth 3
+#define FWL_WGTCAPACITY_EdgeFlat 4
+#define FWL_WGTCAPACITY_EdgeRaised 5
+#define FWL_WGTCAPACITY_EdgeSunken 6
+#define FWL_WGTCAPACITY_Font 7
+#define FWL_WGTCAPACITY_FontSize 8
+#define FWL_WGTCAPACITY_TextColor 9
+#define FWL_WGTCAPACITY_TextSelColor 10
+#define FWL_WGTCAPACITY_LineHeight 11
+#define FWL_WGTCAPACITY_UIMargin 12
+#define FWL_WGTCAPACITY_SpaceAboveBelow 13
+#define FWL_WGTCAPACITY_MAX 65535
+
+class CFWL_ThemeBackground;
+class CFWL_ThemePart;
+class CFWL_ThemeText;
+class IFWL_Widget;
+
+class IFWL_ThemeProvider {
+ public:
+ virtual ~IFWL_ThemeProvider() {}
+ virtual FX_BOOL IsValidWidget(IFWL_Widget* pWidget) = 0;
+ virtual FX_DWORD GetThemeID(IFWL_Widget* pWidget) = 0;
+ virtual FX_DWORD SetThemeID(IFWL_Widget* pWidget,
+ FX_DWORD dwThemeID,
+ FX_BOOL bChildren = TRUE) = 0;
+ virtual FWL_ERR GetThemeMatrix(IFWL_Widget* pWidget, CFX_Matrix& matrix) = 0;
+ virtual FWL_ERR SetThemeMatrix(IFWL_Widget* pWidget,
+ const CFX_Matrix& matrix) = 0;
+ virtual FX_BOOL DrawBackground(CFWL_ThemeBackground* pParams) = 0;
+ virtual FX_BOOL DrawText(CFWL_ThemeText* pParams) = 0;
+ virtual void* GetCapacity(CFWL_ThemePart* pThemePart,
+ FX_DWORD dwCapacity) = 0;
+ virtual FX_BOOL IsCustomizedLayout(IFWL_Widget* pWidget) = 0;
+ virtual FWL_ERR GetPartRect(CFWL_ThemePart* pThemePart,
+ CFX_RectF& rtPart) = 0;
+ virtual FX_BOOL IsInPart(CFWL_ThemePart* pThemePart,
+ FX_FLOAT fx,
+ FX_FLOAT fy) = 0;
+ virtual FX_BOOL CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_THEMEPROVIDER_H_
diff --git a/xfa/fwl/core/ifwl_thread.h b/xfa/fwl/core/ifwl_thread.h
new file mode 100644
index 0000000000..c6f0c445d1
--- /dev/null
+++ b/xfa/fwl/core/ifwl_thread.h
@@ -0,0 +1,48 @@
+// 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_FWL_CORE_IFWL_THREAD_H_
+#define XFA_FWL_CORE_IFWL_THREAD_H_
+
+// The FWL thread/app code contains three parallel inheritance hierarchies,
+// which reference each other via pointers as follows:
+//
+// m_pImpl
+// (nonesuch) IFWL_Thread ----------> CFWL_ThreadImp
+// | <---------- |
+// A m_pIface A
+// | |
+// (nonesuch) IFWL_NoteThread CFWL_NoteThreadImp
+// | |
+// A A
+// m_pIface | |
+// CFWL_App --------------> IFWL_App CFWL_AppImp
+//
+
+#include "xfa/fwl/core/fwl_error.h"
+
+class CFWL_ThreadImp;
+class IFWL_NoteDriver;
+
+typedef struct FWL_HTHREAD_ { void* pData; } * FWL_HTHREAD;
+
+class IFWL_Thread {
+ public:
+ // These call into polymorphic methods in the impl; no need to override.
+ void Release();
+ FWL_ERR Run(FWL_HTHREAD hThread);
+
+ CFWL_ThreadImp* GetImpl() const { return m_pImpl; }
+ void SetImpl(CFWL_ThreadImp* pImpl) { m_pImpl = pImpl; }
+
+ protected:
+ virtual ~IFWL_Thread() {}
+
+ private:
+ CFWL_ThreadImp* m_pImpl;
+};
+
+#endif // XFA_FWL_CORE_IFWL_THREAD_H_
diff --git a/xfa/fwl/core/ifwl_timer.h b/xfa/fwl/core/ifwl_timer.h
new file mode 100644
index 0000000000..42fc84be17
--- /dev/null
+++ b/xfa/fwl/core/ifwl_timer.h
@@ -0,0 +1,24 @@
+// 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_FWL_CORE_IFWL_TIMER_H_
+#define XFA_FWL_CORE_IFWL_TIMER_H_
+
+#include "core/fxcrt/include/fx_system.h"
+
+typedef struct FWL_HTIMER_ { void* pData; } * FWL_HTIMER;
+
+class IFWL_Timer {
+ public:
+ virtual ~IFWL_Timer() {}
+ virtual int32_t Run(FWL_HTIMER hTimer) = 0;
+};
+FWL_HTIMER FWL_StartTimer(IFWL_Timer* pTimer,
+ FX_DWORD dwElapse,
+ FX_BOOL bImmediately = TRUE);
+int32_t FWL_StopTimer(FWL_HTIMER hTimer);
+
+#endif // XFA_FWL_CORE_IFWL_TIMER_H_
diff --git a/xfa/fwl/core/ifwl_tooltiptarget.h b/xfa/fwl/core/ifwl_tooltiptarget.h
new file mode 100644
index 0000000000..b0bbe44a7a
--- /dev/null
+++ b/xfa/fwl/core/ifwl_tooltiptarget.h
@@ -0,0 +1,37 @@
+// Copyright 2016 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_FWL_CORE_IFWL_TOOLTIPTARGET_H_
+#define XFA_FWL_CORE_IFWL_TOOLTIPTARGET_H_
+
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+class CFX_Graphics;
+class IFWL_Widget;
+
+class IFWL_ToolTipTarget {
+ public:
+ virtual ~IFWL_ToolTipTarget() {}
+ virtual IFWL_Widget* GetWidget() = 0;
+ virtual FX_BOOL IsShowed() = 0;
+ virtual FWL_ERR DrawToolTip(CFX_Graphics* pGraphics,
+ const CFX_Matrix* pMatrix,
+ IFWL_Widget* pToolTip) = 0;
+ virtual FX_BOOL UseDefaultTheme() = 0;
+ virtual FWL_ERR GetCaption(CFX_WideString& wsCaption) = 0;
+ virtual FWL_ERR GetToolTipSize(CFX_SizeF& sz) = 0;
+ virtual FWL_ERR GetToolTipPos(CFX_PointF& pt) { return FWL_ERR_Indefinite; }
+};
+
+FWL_ERR FWL_AddToolTipTarget(IFWL_ToolTipTarget* pTarget);
+FWL_ERR FWL_RemoveToolTipTarget(IFWL_ToolTipTarget* pTarget);
+FWL_ERR FWL_SetToolTipInitialDelay(int32_t iDelayTime);
+FWL_ERR FWL_SetToolTipAutoPopDelay(int32_t iDelayTime);
+
+#endif // XFA_FWL_CORE_IFWL_TOOLTIPTARGET_H_
diff --git a/xfa/fwl/core/ifwl_widget.h b/xfa/fwl/core/ifwl_widget.h
new file mode 100644
index 0000000000..06e4bebc1c
--- /dev/null
+++ b/xfa/fwl/core/ifwl_widget.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_FWL_CORE_IFWL_WIDGET_H_
+#define XFA_FWL_CORE_IFWL_WIDGET_H_
+
+#include "xfa/fwl/core/fwl_error.h"
+#include "core/fxcrt/include/fx_coordinates.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "core/fxcrt/include/fx_basic.h"
+#include "xfa/fwl/core/ifwl_target.h"
+
+class CFX_Graphics;
+class IFWL_DataProvider;
+class IFWL_Form;
+class IFWL_NoteThread;
+class IFWL_ThemeProvider;
+class IFWL_WidgetDelegate;
+
+class IFWL_Widget : public IFWL_Target {
+ public:
+ FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE);
+ FWL_ERR GetGlobalRect(CFX_RectF& rect);
+ FWL_ERR SetWidgetRect(const CFX_RectF& rect);
+ FWL_ERR GetClientRect(CFX_RectF& rect);
+ IFWL_Widget* GetParent();
+ FWL_ERR SetParent(IFWL_Widget* pParent);
+ IFWL_Widget* GetOwner();
+ FWL_ERR SetOwner(IFWL_Widget* pOwner);
+ IFWL_Widget* GetOuter();
+ FX_DWORD GetStyles();
+ FWL_ERR ModifyStyles(FX_DWORD dwStylesAdded, FX_DWORD dwStylesRemoved);
+ FX_DWORD GetStylesEx();
+ FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded, FX_DWORD dwStylesExRemoved);
+ FX_DWORD GetStates();
+ FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE);
+ FWL_ERR SetPrivateData(void* module_id,
+ void* pData,
+ PD_CALLBACK_FREEDATA callback);
+ void* GetPrivateData(void* module_id);
+ FWL_ERR Update();
+ FWL_ERR LockUpdate();
+ FWL_ERR UnlockUpdate();
+ FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy);
+ FWL_ERR TransformTo(IFWL_Widget* pWidget, FX_FLOAT& fx, FX_FLOAT& fy);
+ FWL_ERR TransformTo(IFWL_Widget* pWidget, CFX_RectF& rt);
+ FWL_ERR GetMatrix(CFX_Matrix& matrix, FX_BOOL bGlobal = FALSE);
+ FWL_ERR SetMatrix(const CFX_Matrix& matrix);
+ FWL_ERR DrawWidget(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix = NULL);
+ IFWL_ThemeProvider* GetThemeProvider();
+ FWL_ERR SetThemeProvider(IFWL_ThemeProvider* pThemeProvider);
+ FWL_ERR SetDataProvider(IFWL_DataProvider* pDataProvider);
+ IFWL_WidgetDelegate* SetDelegate(IFWL_WidgetDelegate* pDelegate);
+ IFWL_NoteThread* GetOwnerThread() const;
+ CFX_SizeF GetOffsetFromParent(IFWL_Widget* pParent);
+};
+
+typedef CFX_MapPtrTemplate<FX_DWORD, FX_DWORD> CFX_MapAccelerators;
+
+FWL_ERR FWL_Accelerator_SetApp(CFX_MapAccelerators* pMapAccel);
+FWL_ERR FWL_Accelerator_SetThread(CFX_MapAccelerators* pMapAccel);
+FWL_ERR FWL_Accelerator_SetForm(IFWL_Form* pFrom,
+ CFX_MapAccelerators* pMapAccel);
+FWL_ERR FWL_EnabelWidget(IFWL_Widget* widget, FX_BOOL bEnable);
+
+#endif // XFA_FWL_CORE_IFWL_WIDGET_H_
diff --git a/xfa/fwl/core/ifwl_widgetdelegate.h b/xfa/fwl/core/ifwl_widgetdelegate.h
new file mode 100644
index 0000000000..eeca68e8bc
--- /dev/null
+++ b/xfa/fwl/core/ifwl_widgetdelegate.h
@@ -0,0 +1,26 @@
+// Copyright 2016 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_FWL_CORE_IFWL_WIDGETDELEGATE_H_
+#define XFA_FWL_CORE_IFWL_WIDGETDELEGATE_H_
+
+#include "xfa/fwl/core/fwl_error.h"
+
+class CFWL_Event;
+class CFWL_Message;
+class CFX_Graphics;
+class CFX_Matrix;
+
+class IFWL_WidgetDelegate {
+ public:
+ virtual ~IFWL_WidgetDelegate() {}
+ virtual int32_t OnProcessMessage(CFWL_Message* pMessage) = 0;
+ virtual FWL_ERR OnProcessEvent(CFWL_Event* pEvent) = 0;
+ virtual FWL_ERR OnDrawWidget(CFX_Graphics* pGraphics,
+ const CFX_Matrix* pMatrix = NULL) = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_WIDGETDELEGATE_H_
diff --git a/xfa/fwl/core/ifwl_widgetmgr.h b/xfa/fwl/core/ifwl_widgetmgr.h
new file mode 100644
index 0000000000..5ff11f3592
--- /dev/null
+++ b/xfa/fwl/core/ifwl_widgetmgr.h
@@ -0,0 +1,51 @@
+// 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_FWL_CORE_IFWL_WIDGETMGR_H_
+#define XFA_FWL_CORE_IFWL_WIDGETMGR_H_
+
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+#include "core/fxcrt/include/fx_coordinates.h"
+
+class CFX_WideString;
+class CFX_Matrix;
+class IFWL_Widget;
+
+enum FWL_WGTRELATION {
+ FWL_WGTRELATION_Parent = 0,
+ FWL_WGTRELATION_Owner,
+ FWL_WGTRELATION_FirstSibling,
+ FWL_WGTRELATION_PriorSibling,
+ FWL_WGTRELATION_NextSibling,
+ FWL_WGTRELATION_LastSibling,
+ FWL_WGTRELATION_FirstChild,
+ FWL_WGTRELATION_LastChild,
+ FWL_WGTRELATION_SystemForm
+};
+
+class IFWL_WidgetMgr {
+ public:
+ virtual ~IFWL_WidgetMgr() {}
+ virtual int32_t CountWidgets(IFWL_Widget* pParent = NULL) = 0;
+ virtual IFWL_Widget* GetWidget(int32_t nIndex,
+ IFWL_Widget* pParent = NULL) = 0;
+ virtual IFWL_Widget* GetWidget(IFWL_Widget* pWidget,
+ FWL_WGTRELATION eRelation) = 0;
+ virtual int32_t GetWidgetIndex(IFWL_Widget* pWidget) = 0;
+ virtual FX_BOOL SetWidgetIndex(IFWL_Widget* pWidget, int32_t nIndex) = 0;
+ virtual FWL_ERR RepaintWidget(IFWL_Widget* pWidget,
+ const CFX_RectF* pRect = NULL) = 0;
+ virtual FX_DWORD GetCapability() = 0;
+};
+
+IFWL_WidgetMgr* FWL_GetWidgetMgr();
+FX_BOOL FWL_WidgetIsChild(IFWL_Widget* parent, IFWL_Widget* find);
+FWL_ERR FWL_WidgetMgrSnapshot(IFWL_Widget* pWidget,
+ const CFX_WideString* saveFile,
+ const CFX_Matrix* pMatrix = NULL);
+
+#endif // XFA_FWL_CORE_IFWL_WIDGETMGR_H_
diff --git a/xfa/fwl/core/ifwl_widgetmgrdelegate.h b/xfa/fwl/core/ifwl_widgetmgrdelegate.h
new file mode 100644
index 0000000000..620495722a
--- /dev/null
+++ b/xfa/fwl/core/ifwl_widgetmgrdelegate.h
@@ -0,0 +1,33 @@
+// Copyright 2016 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_FWL_CORE_IFWL_WIDGETMGRDELEGATE_H_
+#define XFA_FWL_CORE_IFWL_WIDGETMGRDELEGATE_H_
+
+#include "core/fxcrt/include/fx_system.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+#define FWL_WGTMGR_DisableThread 0x00000001
+#define FWL_WGTMGR_DisableForm 0x00000002
+
+class CFWL_Message;
+class CFX_Graphics;
+class CFX_Matrix;
+class IFWL_Widget;
+
+class IFWL_WidgetMgrDelegate {
+ public:
+ virtual ~IFWL_WidgetMgrDelegate() {}
+
+ virtual FWL_ERR OnSetCapability(
+ FX_DWORD dwCapability = FWL_WGTMGR_DisableThread) = 0;
+ virtual int32_t OnProcessMessageToForm(CFWL_Message* pMessage) = 0;
+ virtual FWL_ERR OnDrawWidget(IFWL_Widget* pWidget,
+ CFX_Graphics* pGraphics,
+ const CFX_Matrix* pMatrix = nullptr) = 0;
+};
+
+#endif // XFA_FWL_CORE_IFWL_WIDGETMGRDELEGATE_H_
diff --git a/xfa/fwl/core/include/ifwl_adaptertimermgr.h b/xfa/fwl/core/include/ifwl_adaptertimermgr.h
new file mode 100644
index 0000000000..7c776704e1
--- /dev/null
+++ b/xfa/fwl/core/include/ifwl_adaptertimermgr.h
@@ -0,0 +1,25 @@
+// 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_FWL_CORE_INCLUDE_IFWL_ADAPTERTIMERMGR_H_
+#define XFA_FWL_CORE_INCLUDE_IFWL_ADAPTERTIMERMGR_H_
+
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_timer.h"
+
+class IFWL_Timer;
+
+class IFWL_AdapterTimerMgr {
+ public:
+ virtual ~IFWL_AdapterTimerMgr() {}
+ virtual FWL_ERR Start(IFWL_Timer* pTimer,
+ FX_DWORD dwElapse,
+ FWL_HTIMER& hTimer,
+ FX_BOOL bImmediately = TRUE) = 0;
+ virtual FWL_ERR Stop(FWL_HTIMER hTimer) = 0;
+};
+
+#endif // XFA_FWL_CORE_INCLUDE_IFWL_ADAPTERTIMERMGR_H_
diff --git a/xfa/fwl/lightwidget/app.cpp b/xfa/fwl/lightwidget/app.cpp
index ca6462a2a6..1d5b7d6f8f 100644
--- a/xfa/fwl/lightwidget/app.cpp
+++ b/xfa/fwl/lightwidget/app.cpp
@@ -7,8 +7,8 @@
#include "xfa/include/fwl/lightwidget/app.h"
#include "core/fxcrt/include/fx_coordinates.h"
-#include "xfa/include/fwl/core/fwl_app.h"
-#include "xfa/include/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_app.h"
#include "xfa/include/fwl/lightwidget/theme.h"
CFWL_App::CFWL_App() : m_pIface(IFWL_App::Create(nullptr)), m_pTheme(nullptr) {}
diff --git a/xfa/fwl/lightwidget/caret.cpp b/xfa/fwl/lightwidget/caret.cpp
index b81c6c2b08..5415aa5560 100644
--- a/xfa/fwl/lightwidget/caret.cpp
+++ b/xfa/fwl/lightwidget/caret.cpp
@@ -8,9 +8,9 @@
#include <memory>
+#include "xfa/fwl/basewidget/ifwl_caret.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fxgraphics/cfx_color.h"
-#include "xfa/include/fwl/basewidget/fwl_caret.h"
#include "xfa/include/fwl/lightwidget/edit.h"
CFWL_Caret* CFWL_Caret::Create() {
diff --git a/xfa/fwl/lightwidget/checkbox.cpp b/xfa/fwl/lightwidget/checkbox.cpp
index 6b7a370973..1d921993d6 100644
--- a/xfa/fwl/lightwidget/checkbox.cpp
+++ b/xfa/fwl/lightwidget/checkbox.cpp
@@ -8,7 +8,7 @@
#include <memory>
-#include "xfa/include/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/fwl_error.h"
CFWL_CheckBox* CFWL_CheckBox::Create() {
return new CFWL_CheckBox;
diff --git a/xfa/fwl/lightwidget/combobox.cpp b/xfa/fwl/lightwidget/combobox.cpp
index aadb0d5ab6..7ea1370341 100644
--- a/xfa/fwl/lightwidget/combobox.cpp
+++ b/xfa/fwl/lightwidget/combobox.cpp
@@ -8,8 +8,8 @@
#include <utility>
-#include "xfa/include/fwl/core/fwl_error.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_widget.h"
CFWL_ComboBox* CFWL_ComboBox::Create() {
return new CFWL_ComboBox;
diff --git a/xfa/fwl/lightwidget/datetimepicker.cpp b/xfa/fwl/lightwidget/datetimepicker.cpp
index bf1d976d90..3372c53829 100644
--- a/xfa/fwl/lightwidget/datetimepicker.cpp
+++ b/xfa/fwl/lightwidget/datetimepicker.cpp
@@ -8,10 +8,9 @@
#include <memory>
-#include "xfa/include/fwl/basewidget/fwl_datetimepicker.h"
-#include "xfa/include/fwl/core/fwl_error.h"
-#include "xfa/include/fwl/core/fwl_note.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
+#include "xfa/fwl/basewidget/ifwl_datetimepicker.h"
+#include "xfa/fwl/core/fwl_error.h"
+#include "xfa/fwl/core/ifwl_widget.h"
CFWL_DateTimePicker* CFWL_DateTimePicker::Create() {
return new CFWL_DateTimePicker;
diff --git a/xfa/fwl/lightwidget/edit.cpp b/xfa/fwl/lightwidget/edit.cpp
index 303943a8f6..612d5a4ac2 100644
--- a/xfa/fwl/lightwidget/edit.cpp
+++ b/xfa/fwl/lightwidget/edit.cpp
@@ -9,7 +9,7 @@
#include <memory>
#include <vector>
-#include "xfa/include/fwl/basewidget/fwl_edit.h"
+#include "xfa/fwl/basewidget/ifwl_edit.h"
CFWL_Edit* CFWL_Edit::Create() {
return new CFWL_Edit;
diff --git a/xfa/fwl/lightwidget/scrollbar.cpp b/xfa/fwl/lightwidget/scrollbar.cpp
index cc927e724e..a070483183 100644
--- a/xfa/fwl/lightwidget/scrollbar.cpp
+++ b/xfa/fwl/lightwidget/scrollbar.cpp
@@ -8,7 +8,7 @@
#include <memory>
-#include "xfa/include/fwl/basewidget/fwl_scrollbar.h"
+#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
CFWL_ScrollBar* CFWL_ScrollBar::Create() {
return new CFWL_ScrollBar;
diff --git a/xfa/fwl/lightwidget/theme.cpp b/xfa/fwl/lightwidget/theme.cpp
index fe9f55928b..950d70e944 100644
--- a/xfa/fwl/lightwidget/theme.cpp
+++ b/xfa/fwl/lightwidget/theme.cpp
@@ -8,6 +8,9 @@
#include <algorithm>
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/include/fwl/theme/barcodetp.h"
#include "xfa/include/fwl/theme/carettp.h"
#include "xfa/include/fwl/theme/checkboxtp.h"
diff --git a/xfa/fwl/lightwidget/widget.cpp b/xfa/fwl/lightwidget/widget.cpp
index daaab3c300..ae1f147502 100644
--- a/xfa/fwl/lightwidget/widget.cpp
+++ b/xfa/fwl/lightwidget/widget.cpp
@@ -7,13 +7,14 @@
#include "xfa/include/fwl/lightwidget/widget.h"
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_noteimp.h"
#include "xfa/fwl/core/fwl_targetimp.h"
#include "xfa/fwl/core/fwl_widgetimp.h"
#include "xfa/fwl/core/fwl_widgetmgrimp.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
-#include "xfa/include/fwl/core/fwl_thread.h"
+#include "xfa/fwl/core/ifwl_notethread.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
CFWL_WidgetImpProperties CFWL_WidgetProperties::MakeWidgetImpProperties(
IFWL_DataProvider* pDataProvider) const {
diff --git a/xfa/fwl/theme/barcodetp.cpp b/xfa/fwl/theme/barcodetp.cpp
index 477ce99d9b..da10d7a344 100644
--- a/xfa/fwl/theme/barcodetp.cpp
+++ b/xfa/fwl/theme/barcodetp.cpp
@@ -6,9 +6,9 @@
#include "xfa/include/fwl/theme/barcodetp.h"
-#include "xfa/include/fwl/basewidget/fwl_barcode.h"
-#include "xfa/include/fwl/core/fwl_theme.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
+#include "xfa/fwl/basewidget/ifwl_barcode.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_widget.h"
CFWL_BarcodeTP::CFWL_BarcodeTP() {}
CFWL_BarcodeTP::~CFWL_BarcodeTP() {}
diff --git a/xfa/fwl/theme/carettp.cpp b/xfa/fwl/theme/carettp.cpp
index 7b165f9b68..b1cf5ef65a 100644
--- a/xfa/fwl/theme/carettp.cpp
+++ b/xfa/fwl/theme/carettp.cpp
@@ -6,10 +6,11 @@
#include "xfa/include/fwl/theme/carettp.h"
+#include "xfa/fwl/basewidget/ifwl_caret.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_caret.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
CFWL_CaretTP::CFWL_CaretTP() {}
CFWL_CaretTP::~CFWL_CaretTP() {}
diff --git a/xfa/fwl/theme/checkboxtp.cpp b/xfa/fwl/theme/checkboxtp.cpp
index b039609826..e7d206a1a0 100644
--- a/xfa/fwl/theme/checkboxtp.cpp
+++ b/xfa/fwl/theme/checkboxtp.cpp
@@ -7,10 +7,12 @@
#include "xfa/include/fwl/theme/checkboxtp.h"
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_checkbox.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_checkbox.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
#define CHECKBOX_SIZE_SIGNMARGIN 3
#define CHECKBOX_SIZE_SIGNBORDER 2
diff --git a/xfa/fwl/theme/comboboxtp.cpp b/xfa/fwl/theme/comboboxtp.cpp
index c3824ec703..23b1320fe3 100644
--- a/xfa/fwl/theme/comboboxtp.cpp
+++ b/xfa/fwl/theme/comboboxtp.cpp
@@ -6,10 +6,12 @@
#include "xfa/include/fwl/theme/comboboxtp.h"
+#include "xfa/fwl/basewidget/ifwl_combobox.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_combobox.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
#define FWLTHEME_CAPACITY_ComboFormHandler 8.0f
diff --git a/xfa/fwl/theme/datetimepickertp.cpp b/xfa/fwl/theme/datetimepickertp.cpp
index 5efe0b850e..99c5ccb448 100644
--- a/xfa/fwl/theme/datetimepickertp.cpp
+++ b/xfa/fwl/theme/datetimepickertp.cpp
@@ -6,7 +6,8 @@
#include "xfa/include/fwl/theme/datetimepickertp.h"
-#include "xfa/include/fwl/basewidget/fwl_datetimepicker.h"
+#include "xfa/fwl/basewidget/ifwl_datetimepicker.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
CFWL_DateTimePickerTP::CFWL_DateTimePickerTP() {
m_pThemeData = new DTPThemeData;
diff --git a/xfa/fwl/theme/edittp.cpp b/xfa/fwl/theme/edittp.cpp
index 61a28ef78a..a99b2146d1 100644
--- a/xfa/fwl/theme/edittp.cpp
+++ b/xfa/fwl/theme/edittp.cpp
@@ -6,10 +6,11 @@
#include "xfa/include/fwl/theme/edittp.h"
+#include "xfa/fwl/basewidget/ifwl_edit.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_edit.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
CFWL_EditTP::CFWL_EditTP() {}
CFWL_EditTP::~CFWL_EditTP() {}
diff --git a/xfa/fwl/theme/formtp.cpp b/xfa/fwl/theme/formtp.cpp
index d07902d2c7..67ef025f7e 100644
--- a/xfa/fwl/theme/formtp.cpp
+++ b/xfa/fwl/theme/formtp.cpp
@@ -7,10 +7,14 @@
#include "xfa/include/fwl/theme/formtp.h"
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
+#include "xfa/fwl/core/ifwl_form.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/core/fwl_form.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
#define FWLTHEME_CAPACITY_CXFormBorder 3
#define FWLTHEME_CAPACITY_CYFormBorder 3
diff --git a/xfa/fwl/theme/listboxtp.cpp b/xfa/fwl/theme/listboxtp.cpp
index 72979db02c..0022e06f50 100644
--- a/xfa/fwl/theme/listboxtp.cpp
+++ b/xfa/fwl/theme/listboxtp.cpp
@@ -6,10 +6,11 @@
#include "xfa/include/fwl/theme/listboxtp.h"
+#include "xfa/fwl/basewidget/ifwl_listbox.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_listbox.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
CFWL_ListBoxTP::CFWL_ListBoxTP() {}
CFWL_ListBoxTP::~CFWL_ListBoxTP() {}
diff --git a/xfa/fwl/theme/monthcalendartp.cpp b/xfa/fwl/theme/monthcalendartp.cpp
index 5a2f3afe4d..832adde73a 100644
--- a/xfa/fwl/theme/monthcalendartp.cpp
+++ b/xfa/fwl/theme/monthcalendartp.cpp
@@ -7,10 +7,13 @@
#include "xfa/include/fwl/theme/monthcalendartp.h"
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/basewidget/ifwl_monthcalendar.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_monthcalendar.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
#define FWL_THEMECAPACITY_MC_HEADER_WIDTH 200
#define FWL_THEMECAPACITY_MC_HEADER_HEIGHT 30
diff --git a/xfa/fwl/theme/pictureboxtp.cpp b/xfa/fwl/theme/pictureboxtp.cpp
index 5d7c079e86..ab5cd02246 100644
--- a/xfa/fwl/theme/pictureboxtp.cpp
+++ b/xfa/fwl/theme/pictureboxtp.cpp
@@ -6,10 +6,12 @@
#include "xfa/include/fwl/theme/pictureboxtp.h"
-#include "xfa/include/fwl/basewidget/fwl_picturebox.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
+#include "xfa/fwl/basewidget/ifwl_picturebox.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_widget.h"
CFWL_PictureBoxTP::CFWL_PictureBoxTP() {}
+
CFWL_PictureBoxTP::~CFWL_PictureBoxTP() {}
FX_BOOL CFWL_PictureBoxTP::IsValidWidget(IFWL_Widget* pWidget) {
diff --git a/xfa/fwl/theme/pushbuttontp.cpp b/xfa/fwl/theme/pushbuttontp.cpp
index 456199e877..091375094e 100644
--- a/xfa/fwl/theme/pushbuttontp.cpp
+++ b/xfa/fwl/theme/pushbuttontp.cpp
@@ -6,10 +6,12 @@
#include "xfa/include/fwl/theme/pushbuttontp.h"
+#include "xfa/fwl/basewidget/ifwl_pushbutton.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_pushbutton.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
#define PUSHBUTTON_SIZE_Corner 2
diff --git a/xfa/fwl/theme/scrollbartp.cpp b/xfa/fwl/theme/scrollbartp.cpp
index 7a794050cb..2c7bed02da 100644
--- a/xfa/fwl/theme/scrollbartp.cpp
+++ b/xfa/fwl/theme/scrollbartp.cpp
@@ -6,10 +6,12 @@
#include "xfa/include/fwl/theme/scrollbartp.h"
+#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-#include "xfa/include/fwl/basewidget/fwl_scrollbar.h"
-#include "xfa/include/fwl/core/fwl_widget.h"
#define FWL_SCROLL_PawLen 12.5f
diff --git a/xfa/fwl/theme/widgettp.cpp b/xfa/fwl/theme/widgettp.cpp
index 7d3f4626f6..2eda644838 100644
--- a/xfa/fwl/theme/widgettp.cpp
+++ b/xfa/fwl/theme/widgettp.cpp
@@ -9,10 +9,14 @@
#include <algorithm>
#include "xfa/fde/tto/fde_textout.h"
+#include "xfa/fwl/core/cfwl_themebackground.h"
+#include "xfa/fwl/core/cfwl_themepart.h"
+#include "xfa/fwl/core/cfwl_themetext.h"
+#include "xfa/fwl/core/ifwl_themeprovider.h"
+#include "xfa/fwl/core/ifwl_widgetmgr.h"
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
#include "xfa/fxgraphics/cfx_shading.h"
-#include "xfa/include/fwl/core/fwl_widgetmgr.h"
static void FWL_SetChildThemeID(IFWL_Widget* pParent, FX_DWORD dwThemeID) {
IFWL_WidgetMgr* pWidgetMgr = FWL_GetWidgetMgr();