README.md
1 xfa/fwl is a Widget Library for XFA Forms.
2
3 CFWL_Widget is the base class that widget classes extend. The derived widget
4 classes 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
26 These CFWL widgets are instantiated by and closely related to the CXFA classes
27 in the xfa/fxfa directory. See xfa/fxfa/README.md.
28
29 CFWL_Widget implements IFWL_WidgetDelegate through which it receives messages,
30 events and draw calls.
31
32 Messages consist of user input for a widget to handle. Each type of message is
33 identified by an enum value in Message::Type and has its own class derived from
34 the base CFWL_Message.
35
36 * CFWL_Message
37 * CFWL_MessageKey
38 * CFWL_MessageKillFocus
39 * CFWL_MessageMouse
40 * CFWL_MessageMouseWheel
41 * CFWL_MessageSetFocus
42
43 Events are originated in the widgets and are then handled by other CFWL_Widget
44 and 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
54 The widgets use IFWL_ThemeProvider for rendering everything, calling
55 DrawBackground() and DrawText() and passing many options in their parameters,
56 respectively of types CFWL_ThemeBackground and CFWL_ThemeText. See
57 xfa/fwl/theme/README.md.
58
59