• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1xfa/fwl is a Widget Library for XFA Forms.
2
3CFWL_Widget is the base class that widget classes extend. The derived widget
4classes are both controllers and renderers for each widget. The hierarchy is:
5
6* CFWL_Widget
7    * CFWL_Form
8        * CFWL_FormProxy
9            * CFWL_ComboBoxProxy
10    * CFWL_Caret
11    * CFWL_CheckBox
12    * CFWL_ComboBox
13    * CFWL_DateTimePicker
14    * CFWL_Edit
15        * CFWL_Barcode
16        * CFWL_ComboEdit
17        * CFWL_DateTimeEdit
18    * CFWL_ListBox
19        * CFWL_ComboList
20    * CFWL_MonthCalendar
21    * CFWL_PictureBox
22    * CFWL_PushButton
23    * CFWL_ScrollBar
24    * CFWL_SpinButton
25
26These CFWL widgets are instantiated by and closely related to the CXFA classes
27in the xfa/fxfa directory. See xfa/fxfa/README.md.
28
29CFWL_Widget implements IFWL_WidgetDelegate through which it receives messages,
30events and draw calls.
31
32Messages consist of user input for a widget to handle. Each type of message is
33identified by an enum value in Message::Type and has its own class derived from
34the base CFWL_Message.
35
36* CFWL_Message
37    * CFWL_MessageKey
38    * CFWL_MessageKillFocus
39    * CFWL_MessageMouse
40    * CFWL_MessageMouseWheel
41    * CFWL_MessageSetFocus
42
43Events are originated in the widgets and are then handled by other CFWL_Widget
44and CXFA classes.
45
46* CFWL_Event
47    * CFWL_EventCheckWord
48    * CFWL_EventMouse
49    * CFWL_EventScroll
50    * CFWL_EventSelectChanged
51    * CFWL_EventTextChanged
52    * CFWL_EventValidate
53
54The widgets use IFWL_ThemeProvider for rendering everything, calling
55DrawBackground() and DrawText() and passing many options in their parameters,
56respectively of types CFWL_ThemeBackground and CFWL_ThemeText. See
57xfa/fwl/theme/README.md.
58
59