From VCMI Project Wiki
VCMI provides a set of controls a window can be build from. We have already written basic counterparts of most of standard controls like buttons, labels etc. Here is a list of them:
- AdventureMapButton - standard button class for general use (its name is after its first application). Optimized for buttons having standard .DEF graphics. When it's pressed, all functions from its callback field are called.
- CHighlightableButton - basically a checkbox. Has two callbacks: one for selecting and one for deselecting. It inherits from AdventureMapButton because most of graphics handling is common/
- CHighlightableButtonsGroup - a radio button group. It consist of many CHighlightableButtons. Functions from onChange are called when selection is changed (the parameter is the ID of selected button).
- CSlider - a typical slider.
- CLabel - a label with custom font and color. It does nothing interesting.
- CTextBox - a multi-line label with optional scrolling
- CPicture - any bitmap.
- CTextInput - a textbox.
- CGStatusBar - a statusbar for general use.
- CListBox - a list view which creates several objects via passed functor and display them in list.
- CTabbedInt - tabs. A set of multiple objects, behavior similar to list box.