Loading...
Searching...
No Matches
Modules | Files | Classes
Interface Kit

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...
 

Detailed Description

API for displaying a graphical user interface.

Introduction to the Interface Kit

Overview

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.

Coordinate spaces

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.