tree: ce2ba6ce452d926f94338e97a98fbadd7566c9b3 [path history] [tgz]
  1. README.md
  2. cfwl_app.cpp
  3. cfwl_app.h
  4. cfwl_barcode.cpp
  5. cfwl_barcode.h
  6. cfwl_caret.cpp
  7. cfwl_caret.h
  8. cfwl_checkbox.cpp
  9. cfwl_checkbox.h
  10. cfwl_combobox.cpp
  11. cfwl_combobox.h
  12. cfwl_comboboxproxy.cpp
  13. cfwl_comboboxproxy.h
  14. cfwl_comboedit.cpp
  15. cfwl_comboedit.h
  16. cfwl_combolist.cpp
  17. cfwl_combolist.h
  18. cfwl_datetimeedit.cpp
  19. cfwl_datetimeedit.h
  20. cfwl_datetimepicker.cpp
  21. cfwl_datetimepicker.h
  22. cfwl_edit.cpp
  23. cfwl_edit.h
  24. cfwl_edit_embeddertest.cpp
  25. cfwl_event.cpp
  26. cfwl_event.h
  27. cfwl_eventcheckword.cpp
  28. cfwl_eventcheckword.h
  29. cfwl_eventmouse.cpp
  30. cfwl_eventmouse.h
  31. cfwl_eventscroll.cpp
  32. cfwl_eventscroll.h
  33. cfwl_eventselectchanged.cpp
  34. cfwl_eventselectchanged.h
  35. cfwl_eventtarget.cpp
  36. cfwl_eventtarget.h
  37. cfwl_eventtextchanged.cpp
  38. cfwl_eventtextchanged.h
  39. cfwl_eventvalidate.cpp
  40. cfwl_eventvalidate.h
  41. cfwl_form.cpp
  42. cfwl_form.h
  43. cfwl_formproxy.cpp
  44. cfwl_formproxy.h
  45. cfwl_listbox.cpp
  46. cfwl_listbox.h
  47. cfwl_listitem.cpp
  48. cfwl_listitem.h
  49. cfwl_message.cpp
  50. cfwl_message.h
  51. cfwl_messagekey.cpp
  52. cfwl_messagekey.h
  53. cfwl_messagekillfocus.cpp
  54. cfwl_messagekillfocus.h
  55. cfwl_messagemouse.cpp
  56. cfwl_messagemouse.h
  57. cfwl_messagemousewheel.cpp
  58. cfwl_messagemousewheel.h
  59. cfwl_messagesetfocus.cpp
  60. cfwl_messagesetfocus.h
  61. cfwl_monthcalendar.cpp
  62. cfwl_monthcalendar.h
  63. cfwl_notedriver.cpp
  64. cfwl_notedriver.h
  65. cfwl_noteloop.cpp
  66. cfwl_noteloop.h
  67. cfwl_picturebox.cpp
  68. cfwl_picturebox.h
  69. cfwl_pushbutton.cpp
  70. cfwl_pushbutton.h
  71. cfwl_scrollbar.cpp
  72. cfwl_scrollbar.h
  73. cfwl_themebackground.h
  74. cfwl_themepart.cpp
  75. cfwl_themepart.h
  76. cfwl_themetext.h
  77. cfwl_timer.cpp
  78. cfwl_timer.h
  79. cfwl_timerinfo.cpp
  80. cfwl_timerinfo.h
  81. cfwl_widget.cpp
  82. cfwl_widget.h
  83. cfwl_widgetmgr.cpp
  84. cfwl_widgetmgr.h
  85. cfwl_widgetproperties.cpp
  86. cfwl_widgetproperties.h
  87. cfx_barcode.cpp
  88. cfx_barcode.h
  89. cfx_barcode_unittest.cpp
  90. fwl_widgetdef.h
  91. fwl_widgethit.h
  92. ifwl_adaptertimermgr.h
  93. ifwl_themeprovider.h
  94. ifwl_widgetdelegate.h
  95. theme/
xfa/fwl/README.md

xfa/fwl is a Widget Library for XFA Forms.

CFWL_Widget is the base class that widget classes extend. The derived widget classes are both controllers and renderers for each widget. The hierarchy is:

  • CFWL_Widget
    • CFWL_Form
      • CFWL_FormProxy
        • CFWL_ComboBoxProxy
    • CFWL_Caret
    • CFWL_CheckBox
    • CFWL_ComboBox
    • CFWL_DateTimePicker
    • CFWL_Edit
      • CFWL_Barcode
      • CFWL_ComboEdit
      • CFWL_DateTimeEdit
    • CFWL_ListBox
      • CFWL_ComboList
    • CFWL_MonthCalendar
    • CFWL_PictureBox
    • CFWL_PushButton
    • CFWL_ScrollBar
    • CFWL_SpinButton

These CFWL widgets are instantiated by and closely related to the CXFA classes in the xfa/fxfa directory. See xfa/fxfa/README.md.

CFWL_Widget implements IFWL_WidgetDelegate through which it receives messages, events and draw calls.

Messages consist of user input for a widget to handle. Each type of message is identified by an enum value in Message::Type and has its own class derived from the base CFWL_Message.

  • CFWL_Message
    • CFWL_MessageKey
    • CFWL_MessageKillFocus
    • CFWL_MessageMouse
    • CFWL_MessageMouseWheel
    • CFWL_MessageSetFocus

Events are originated in the widgets and are then handled by other CFWL_Widget and CXFA classes.

  • CFWL_Event
    • CFWL_EventCheckWord
    • CFWL_EventMouse
    • CFWL_EventScroll
    • CFWL_EventSelectChanged
    • CFWL_EventTextChanged
    • CFWL_EventValidate

The widgets use IFWL_ThemeProvider for rendering everything, calling DrawBackground() and DrawText() and passing many options in their parameters, respectively of types CFWL_ThemeBackground and CFWL_ThemeText. See xfa/fwl/theme/README.md.