Jump to content

VCL Widgets

From The Document Foundation Wiki

Introduction

VCL works on top of different GUI toolkits including GTK3, GTK4, Qt and many others, which have different sets of widgets. GTK has more than 200 different widgets, and Qt also has a huge set of widgets and related classes. Not each of these widgets are supported. VCL can only provide support for a subset of these widgets. But, the good news is that those widgets can be used across different GUI toolkits. One can choose at runtime, which supported GUI toolkit to use.

VCL widget classes

Widget classes in use can be extracted from the .ui files in the LibreOffice core repository.

Widgets used in .ui files  

$ git grep -h class= "*.ui"|awk -F\" {'print $2'}|sort -u|awk '{print NR  ". " $s}'
1. AtkObject
2. GtkAdjustment
3. GtkAlignment
4. GtkAssistant
5. GtkBox
6. GtkButton
7. GtkButtonBox
8. GtkCalendar
9. GtkCellRendererPixbuf
10. GtkCellRendererText
11. GtkCellRendererToggle
12. GtkCheckButton
13. GtkCheckMenuItem
14. GtkComboBox
15. GtkComboBoxText
16. GtkDialog
17. GtkDrawingArea
18. GtkEntry
19. GtkExpander
20. GtkFrame
21. GtkGrid
22. GtkIconView
23. GtkImage
24. GtkLabel
25. GtkLevelBar
26. GtkLinkButton
27. GtkListStore
28. GtkMenu
29. GtkMenuButton
30. GtkMenuItem
31. GtkMenuToolButton
32. GtkMessageDialog
33. GtkNotebook
34. GtkOverlay
35. GtkPaned
36. GtkPopover
37. GtkProgressBar
38. GtkRadioButton
39. GtkRadioMenuItem
40. GtkRadioToolButton
41. GtkScale
42. GtkScrollbar
43. GtkScrolledWindow
44. GtkSeparator
45. GtkSeparatorMenuItem
46. GtkSeparatorToolItem
47. GtkSizeGroup
48. GtkSpinButton
49. GtkSpinner
50. GtkStatusbar
51. GtkTextBuffer
52. GtkTextView
53. GtkToggleButton
54. GtkToggleToolButton
55. GtkToolButton
56. GtkToolItem
57. GtkToolbar
58. GtkTreeSelection
59. GtkTreeStore
60. GtkTreeView
61. GtkTreeViewColumn
62. GtkViewport
63. GtkWindow
64. NotebookBarAddonsMenuMergePoint
65. NotebookBarAddonsToolMergePoint
66. VclOptionalBox
67. sfxlo-ContextVBox
68. sfxlo-DropdownBox
69. sfxlo-NotebookbarTabControl
70. sfxlo-NotebookbarToolBox
71. sfxlo-PriorityHBox
72. sfxlo-PriorityMergedHBox
73. svtlo-ManagedMenuButton

These are not usually directly used, but rather via abstract classes like weld::*. This the list of classes from weld namespace, which can be also extracted from the header include/vcl/weld.hxx.

All public classes used in weld namespace  

$ grep "^class VCL_DLLPUBLIC" include/vcl/weld.hxx|awk {'print $3'}|sort -u|awk '{print NR  ". " $s}'
1. Assistant
2. AssistantController
3. Box
4. Builder
5. Button
6. Calendar
7. CheckButton
8. ColorChooserDialog
9. ComboBox
10. Container
11. Dialog
12. DialogController
13. DrawingArea
14. Entry
15. EntryTreeView
16. Expander
17. FormattedSpinButton
18. Frame
19. GenericDialogController
20. Grid
21. IconView
22. Image
23. Label
24. LevelBar
25. LinkButton
26. Menu
27. MenuButton
28. MessageDialog
29. MessageDialogController
30. MetricSpinButton
31. Notebook
32. Paned
33. Popover
34. ProgressBar
35. RadioButton
36. Scale
37. ScreenShotEntry
38. Scrollbar
39. ScrolledWindow
40. SizeGroup
41. SpinButton
42. Spinner
43. TextView
44. Toggleable
45. ToggleButton
46. Toolbar
47. TreeIter
48. TreeView
49. WaitObject
50. Widget
51. Window

Description of widgets

Here are some of the widgets with descriptions:

Here are some of the layouts with descriptions:

Links