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