API for displaying a graphical user interface. More...
Modules | |
Layout API | |
Provides classes for automatically laying out UIs. | |
Files | |
file | AffineTransform.h |
Undocumented file. | |
file | Alert.h |
BAlert class definition and support enums. | |
file | Alignment.h |
Undocumented file. | |
file | Bitmap.h |
Defines the BBitmap class and global operators and functions for handling bitmaps. | |
file | Box.h |
Defines the BBox class. | |
file | Button.h |
Describes the BButton class. | |
file | CardLayout.h |
Provides the BCardLayout class. | |
file | ChannelControl.h |
Undocumented file. | |
file | ChannelSlider.h |
Undocumented file. | |
file | CheckBox.h |
Defines the BCheckBox class. | |
file | ColorControl.h |
BColorControl class definition and support enums. | |
file | Control.h |
BControl class definition and support enums. | |
file | Deskbar.h |
Undocumented file. | |
file | Dragger.h |
Provides the BDragger class. | |
file | Font.h |
BFont class definition, unicode_block class definition, and font-related struct and enum definitions. | |
file | GraphicsDefs.h |
Graphics-related functions and variables used by the Interface Kit. | |
file | GroupView.h |
Provides the BGroupView class. | |
file | IconUtils.h |
Vector icon handling utility class. | |
file | Input.h |
Undocumented file. | |
file | InterfaceDefs.h |
Defines standard interface definitions for controls. | |
file | ListItem.h |
ListItem class definition. | |
file | ListView.h |
ListView class definition. | |
file | Menu.h |
BMenu class definition and support structures. | |
file | MenuBar.h |
BMenuBar class definition and support structures. | |
file | MenuField.h |
BMenuField class definition and support structures. | |
file | MenuItem.h |
BMenuItem class definition. | |
file | OptionControl.h |
Undocumented file. | |
file | OptionPopUp.h |
BOptionPopUp class definition. | |
file | OutlineListView.h |
Provides the BOutlineListView class. | |
file | Picture.h |
BPicture class definition. | |
file | PictureButton.h |
BPictureButton class definition and support structures. | |
file | Point.h |
BPoint class definition. | |
file | Polygon.h |
BPolygon class definition. | |
file | PopUpMenu.h |
BPopUpMenu class definition and support structures. | |
file | RadioButton.h |
BRadioButton class definition. | |
file | Rect.h |
BRect class definition. | |
file | Region.h |
BRegion class definition. | |
file | Screen.h |
Defines the BScreen class and support structures. | |
file | ScrollBar.h |
BScrollBar class definition. | |
file | ScrollView.h |
BScrollView class definition. | |
file | SeparatorItem.h |
BSeparatorItem class definition. | |
file | SeparatorView.h |
Undocumented file. | |
file | Shape.h |
BShape and BShapeIterator class definitions. | |
file | Size.h |
BSize class definition and related enum definition. | |
file | StatusBar.h |
Undocumented file. | |
file | StringItem.h |
BStringItem class definition. | |
file | StringView.h |
BStringView class definition. | |
file | TabView.h |
Provides the BTab and BTabView classes. | |
file | TextControl.h |
Provides the BTextControl class. | |
file | TextView.h |
Provides the BTextView class and associated structs. | |
file | View.h |
BView class definition and support data structures. | |
file | Window.h |
BWindow class definition and support data structures. | |
Classes | |
class | BAffineTransform |
Undocumented class. More... | |
class | BAlert |
The BAlert class defines a modal alert dialog which displays a short message and provides a set of labeled buttons that allow the user to respond. More... | |
class | BAlignment |
Undocumented class. More... | |
class | BBitmap |
Access and manipulate digital images commonly known as bitmaps. More... | |
class | BBox |
A rectangular view with a border and an optional label to group related subviews visually. More... | |
class | BButton |
A control used to initiate an action. More... | |
class | BChannelControl |
BChannelControl is the base class for controls that have several. More... | |
class | BChannelSlider |
Undocumented class. More... | |
class | BCheckBox |
A user interface element used to make a binary decision. More... | |
class | BColorControl |
BColorControl displays an on-screen color picker. More... | |
class | BControl |
BControl is the base class for user-event handling objects. More... | |
class | BDeskbar |
Undocumented class. More... | |
class | BDragger |
A view that allows the user drag and drop a target view. More... | |
class | BFont |
Represents a typeface including its family, style and size. More... | |
class | BGroupView |
Container view for a collection of views organized in a horizontal or vertical row. More... | |
class | BIconUtils |
The BIconUtils class provide utility methods for managing and drawing vector icons. More... | |
class | BInputDevice |
Undocumented class. More... | |
class | BListItem |
A list item, a member of a BListView or BOutlineListView. More... | |
class | BListView |
Displays a list of items that the user can select and invoke. More... | |
class | BMenu |
Displays a list of menu items including additional menus arranged hierarchically. More... | |
class | BMenuBar |
A window's root menu. More... | |
class | BMenuField |
A labeled pop-up menu. More... | |
class | BMenuItem |
Display item for the BMenu class. More... | |
class | BOptionControl |
Undocumented class. More... | |
class | BOptionPopUp |
A BMenuField based BControl implementation. More... | |
class | BOutlineListView |
Expands upon BListView to display a hierarchical list of items. More... | |
class | BPicture |
Records a series of drawing instructions that can be "replayed" later. More... | |
class | BPictureButton |
A button draw with a BPicture image instead of a text label. More... | |
class | BPoint |
A point on a two-dimensional Cartesian coordinate system. More... | |
class | BPolygon |
A closed, many-sided figure which defines an area in a two-dimensional Cartesian coordinate system. More... | |
class | BPopUpMenu |
Displays a pop-up menu. More... | |
class | BRadioButton |
A user interface control used to select between a set of mutually exclusive options. More... | |
class | BRect |
Defines a rectangular area aligned along pixel dimensions. More... | |
class | BRegion |
An area composed of rectangles. More... | |
class | BScreen |
The BScreen class provides methods to retrieve and change display settings. More... | |
class | BScrollBar |
User interface element used to scroll a target view vertically or horizontally. More... | |
class | BScrollView |
A convenience class used to add scrolling to a target view. More... | |
class | BSeparatorItem |
Display separator item for BMenu class. More... | |
class | BSeparatorView |
Undocumented class. More... | |
class | BShape |
Encapsulates a Postscript-style "path". More... | |
class | BShapeIterator |
Allows you to iterate through BShape operations. More... | |
class | BSize |
A two-dimensional size. More... | |
class | BStatusBar |
Undocumented class. More... | |
class | BStringItem |
A list item of a text string used as a member of a BListView or BOutlineListView. More... | |
class | BStringView |
Draws a non-editable single-line text string, most commonly used as a label. More... | |
class | BTab |
A tab that goes in a BTabView. More... | |
class | BTabView |
A container for BTab objects to display all tabs. More... | |
class | BTextControl |
Displays a labeled text view control. More... | |
class | BTextView |
Displays and manipulates styled text. More... | |
class | BView |
View base class. More... | |
class | BWindow |
Window base class. More... | |
struct | edge_info |
The distance that a character outline is inset from its escapement boundaries. More... | |
struct | escapement_delta |
A struct that allows you to specify extra horizontal space to surround each character with. More... | |
struct | font_cache_info |
Font cache parameters. More... | |
struct | font_height |
The amount of vertical space surrounding a character. More... | |
struct | menu_info |
Information about a menu such as font size and family, background color, and flags. More... | |
struct | pattern |
A pattern to use when drawing. More... | |
struct | rgb_color |
Structure representing a 32 bit RGBA color. More... | |
struct | text_run |
text run struct More... | |
struct | text_run_array |
text run array struct More... | |
struct | tuned_font_info |
Tuning information of fonts used to make it look better when displayed on-screen. More... | |
class | unicode_block |
Describes the blocks of Unicode characters supported by a font. More... | |
API for displaying a graphical user interface.
The Interface Kit holds all the classes you'll need to develop a GUI. Building on the messaging facilities provided by the Application Kit, the Interface Kit can be used to create a responsive and attractive graphical user interface.
The most important class in the Interface Kit is the BView class, which handles drawing and user interaction. Pointer and keyboard events are processed in this class.
Another important class is the BWindow class, which holds BViews and makes them visible to the user. The BWindow class also handles BView focusing and BMessage dispatching, among other things.
A new addition Haiku has added over the BeOS API is the Layout API, which is based around the BLayoutItem and BLayout classes. These classes will take care of making sure all your GUI widgets end up where you want them, with enough space to be useful. You can start learning the Layout API by reading the Introduction to the Layout API.
All APIs using coordinates (such as BRect or BPoint) refer to a specific space where these coordinates are interpreted. BView and BWindow provide various conversion function to translate coordinates between different spaces, as needed, or provide separate methods such as BView Bounds() and Frame(), returning results in different spaces as needed.
The initial coordinate space, from which all others are derived, is the screen space. Its origin is at the center of the screen's top-left pixel. Coordinates can be converted between this and a specific window or view space using the ConvertToScreen and ConvertFromScreen methods of the corresponding object.
Each BWindow has its own coordinate space. Its origin is at the center of the top-left pixel of the window client area (just inside the window border). Root level views added to the window have their frame rectangle defined in this space.
Each BView also gets its own coordinate space. The origin is initially at the top left of the view, but this can be changed by scrolling the view (programatically using ScrollBy or ScrollTo, or by the user acting on a scrollbar).
Additionally, each BView also has a drawing space. This is further transformed from the BView coordinate space by calls to SetOrigin, SetScale, SetTransform, ScaleBy, RotateBy, and TranslateBy. The effects of the first two of these methods are independant from the other four, and it's not recommended to mix the two types of transformations in the same BView. Note that this is the only space that can be scaled and rotated, and translated by non-integer units. All other coordinate spaces are only translations of the screen one and remain aligned on pixels.
All drawing operations in a BView use coordinates specified in the drawing space. However, the update rect passed to the Draw method (or passed to the Invalidate method) is in the BView base coordinate space. Conversion between the two can be done using the affine transform returned by BView::TransformTo.