Welcome to the Haiku Book¶
Below you will find documentation on the Application Programming Interface (API) of the Haiku operating system. This API describes the internals of the operating system, allowing developers to write native C++ applications and device drivers. See the online version for the most updated version of this document. If you would like to help contributing to the documentation effort, contact the documentation mailing list. For guidance on how to help document the API, see the [Documenting the API <>][documenting the api <>] page. A list of contributors can be found in the Credits. Documenting the API is an ongoing process, so contributions are greatly appreciated.
The Haiku API is based on the BeOS R5 API, but changes and additions have been included where appropriate. Important compatibility differences are detailed on the Application Level API Incompatibilities with BeOS page. New classes and methods and incompatible API changes to the BeOS R5 API are noted in the appropriate sections.
Kits and Servers¶
The API is split into several kits and servers, each detailing a different aspect of the operating system.
The Application Kit is the starting point for developing applications and includes classes for messaging and for interacting with the rest of the system.
The Device Kit ???
The Game Kit provides classes for producing game sounds and working with full screen apps.
The Input Server
The Interface Kit is used to create responsive and attractive graphical user interfaces, building on the messaging facilities provided by the Application Kit.
The Layout API is a new addition to the Interface Kit, in which Haiku provides resources to layout your application flexibly and easily.
The Kernel Kit ???
The Locale Kit includes classes to localize your application to different languages, timezones, number formatting conventions and much more.
The Mail Kit includes classes to work with e-mail files, folders, protocols, and filters as part of Haiku’s unique mail handling system.
The Media Kit provides a unified and consistent interface for media streams and applications to intercommunicate.
The MIDI 2Kit describes an interface to generating, processing, and playing music in MIDI format. For reference documentation on the old MIDI Kit (libmidi.so) is also included.
The Network Kit handles everything network related, from interface IP address settings to HTTP connections.
The OpenGL Kit
The Storage Kit is a collection of classes that deal with storing and retrieving information from disk.
The Support Kit contains support classes to use in your application including resources for thread safety, IO, and serialization.
The Translation Kit provides a framework for converting data streams between media formats.
Classes and Methods¶
Classes And Methods
The Device Kit
The Game Kit
The Input Server
The Kernel Kit
The Mail Kit
The Network Kit
The OpenGL Kit
The Storage Kit
The Support Kit
The Translation Kit
System Overview¶
The Application Kit¶
The Device Kit¶
The Game Kit¶
The Input Server¶
The Interface Kit¶
The Kernel Kit¶
The Mail Kit¶
The Media Kit¶
The Network Kit¶
The OpenGL Kit¶
The Storage Kit¶
The Translation Kit¶
Special Topics¶
C, POSIX, GNU and BSD functions
Device Drivers¶
The Deskbar¶
The Keyboard¶
The Tracker¶
Other Topics¶
JSON Handling
Experimental Network Services Support
Appendices
About This Book
Revision History
Class Index
Function Index
Constant Index
Type Index
Acknowledgements¶
We want to express out gratitude to ACCESS Co. for showing their support for the Haiku Project by allowing the distribution and modification of the Be Book and the Be Newsletters. The Haiku Book is the successor of the Be Book, updated with additional APIs and the refresh of existing API documentation.
Not only do the Be Book and the Be Newsletters hold historical value, but these documents are also a very valuable reference resource for all Haiku developers. We also want to thank Simon Kennedy for his work on formatting these documents.
Legal Notice
Indices and tables¶
- BApplication
- BApplication Overview
- BClipboard
- BCursor
- BHandler
- The Application Kit
- BInvoker
- BLooper
- Constructor and Destructor
- Hook Functions
- Member Functions
- AddCommonFilter
- RemoveCommonFilter
- SetCommonFilterList
- CommonFilterList
- AddHandler
- RemoveHandler
- HandlerAt
- CountHandlers
- IndexOf
- CurrentMessage
- DetachCurrentMessage
- Lock
- LockWithTimeout
- Unlock
- LockingThread
- IsLocked
- CountLocks
- CountLockRequests
- Sem
- MessageReceived
- MessageQueue
- PostMessage
- Quit
- Run
- SetPreferredHandler
- PreferredHandler
- Thread
- Team
- Static Functions
- Constants
- BMessage
- Data Members
- Constructor and Destructor
- Member Functions
- AddData
- AddBool
- AddInt8
- AddInt16
- AddInt32
- AddInt64
- AddFloat
- AddDouble
- AddString
- AddPoint
- AddRect
- AddRef
- AddMessage
- AddMessenger
- AddPointer
- AddFlat
- AddSpecifier
- CountNames
- FindData
- FindBool
- FindInt8
- FindInt16
- FindInt32
- FindInt64
- FindFloat
- FindDouble
- FindString
- FindPoint
- FindRect
- FindRef
- FindMessage
- FindMessenger
- FindPointer
- FindFlat
- Flatten
- Unflatten
- FlattenedSize
- GetCurrentSpecifier
- PopSpecifier
- GetInfo
- HasSpecifiers
- IsSystem
- MakeEmpty
- IsEmpty
- PrintToStream
- RemoveName
- RemoveData
- ReplaceData
- ReplaceBool
- ReplaceInt8
- ReplaceInt16
- ReplaceInt32
- ReplaceInt64
- ReplaceFloat
- ReplaceDouble
- ReplaceString
- ReplacePoint
- ReplaceRect
- ReplaceRef
- ReplaceMessage
- ReplaceMessenger
- ReplacePointer
- ReplaceFlat
- ReturnAddress
- SendReply
- WasDelivered
- IsSourceRemote
- IsSourceWaiting
- IsReply
- Previous
- WasDropped
- DropPoint
- Operators
- Constants
- Message Constants
- BMessageFilter
- BMessageQueue
- BMessenger
- BPropertyInfo
- BRoster
- BJoystick
- BSerialPort
- Constants
- Defined Types
- BDirectWindow
- BFileGameSound
- Global Functions
- Graphics Card Hook Functions
- define_cursor()Index: 0
- move_cursor()Index: 1
- show_cursor()Index: 2
- draw_line_with_8_bit_depth()Index: 3
- draw_line_with_32_bit_depth()Index: 4
- draw_rect_with_8_bit_depth()Index: 5
- draw_rect_with_32_bit_depth()Index: 6
- blit()Index: 7
- draw_array_with_8_bit_depth(), indexed_color_lineIndex: 8
- draw_array_with_32_bit_depth(), rgb_color_lineIndex: 9
- sync()Index: 10
- invert_rect()Index: 11
- draw_line_with_16_bit_depth()Index: 12
- draw_rect_with_16_bit_depth()Index: 13
- Introduction
- Low-Level Graphics Access
- High-Performance Audio
- BPushGameSound
- BSimpleGameSound
- BStreamingGameSound
- BWindowScreen
- Functions
- BInputDevice
- BInputServerDevice
- BInputServerFilter
- BInputServerMethod
- The Input Server
- Drivers and Input Devices
- Input Server and You
- Supporting Input Methods in Views
- App and Input Events
- Message Constants
- BAlert
- BBitmap
- BBox
- BButton
- BCheckBox
- BCheckBox
- BColorControl
- BControl
- BDragger
- BFont
- Constructor and Destructor
- Member Functions
- Blocks
- BoundingBox
- Direction
- FileFormat
- GetBoundingBoxesAsGlyphs
- GetBoundingBoxesAsString
- GetBoundingBoxesForStrings
- GetEscapements
- GetEdges
- GetGlyphShapes
- GetHasGlyphs
- GetHeight
- GetTruncatedStrings
- TruncateString
- GetTunedInfo
- CountTuned
- IsFixed
- IsFullAndHalfFixed
- PrintToStream
- SetEncoding
- Encoding
- SetFace
- Face
- SetFamilyAndFace
- SetFamilyAndStyle
- GetFamilyAndStyle
- FamilyAndStyle
- SetFlags
- Flags
- SetRotation
- Rotation
- SetShear
- Shear
- SetSize
- Size
- SetSpacing
- Spacing
- StringWidth
- GetStringWidths
- Operators
- Global Variables
- Constants
- Defined Types
- Functions
- activate_workspace(), current_workspace()
- bitmaps_support_space()
- get_deskbar_frame()
- get_font_family(), count_font_families(), get_font_style(), count_font_styles()
- get_pixel_size_for()
- idle_time()
- keyboard_navigation_color()
- run_add_printer_panel(), run_select_printer_panel()
- set_menu_info(), get_menu_info()
- set_screen_space()
- set_scroll_bar_info(), get_scroll_bar_info()
- set_workspace_count(), count_workspaces()
- system_colors()
- tint_color()
- ui_color()
- update_font_families()
- General Constants
- alignment Constants
- border_style Constants
- Character Constants
- color_space
- Control Values
- Cursor Transit Constants
- Dead-Key Mapping
- drawing_mode Constants
- Function Key Constants
- Interface Messages
- list_view_type Constants
- Main Screen
- menu_bar_border Constants
- menu_layout Constants
- Modifier States
- Mouse Buttons
- Orientation Constants
- Pattern Constants
- Resizing Modes
- Screen Spaces
- ScrollBar Constants
- String Truncation Constants
- tint_color() Constants
- Transparency Constants
- color_which Constants
- View Flags
- Window Flags
- window_type Constants
- Workspace Constants
- The Interface Kit
- BListItem
- BMenu
- Constructor and Destructor
- Hook Functions
- Member Functions
- AddItem
- AddSeparatorItem
- Archive
- CountItems
- FindItem
- FindMarked
- Hide
- Show
- IndexOf
- InvalidateLayout
- ItemAt
- SubmenuAt
- Layout
- RemoveItem
- ScreenLocation
- SetEnabled
- IsEnabled
- SetItemMargins
- GetItemMargins
- SetLabelFromMarked
- IsLabelFromMarked
- SetMaxContentWidth
- MaxContentWidth
- SetRadioMode
- IsRadioMode
- SetTargetForItems
- SetTriggersEnabled
- AreTriggersEnabled
- Superitem
- Supermenu
- Track
- Static Functions
- Scripting Support
- Archived Fields
- BMenuBar
- BMenuField
- BMenuItem
- Message Constants
- BOutlineListView
- Constructor and Destructor
- Hook Functions
- Member Functions
- AddItem
- AddUnder
- AddList
- Archive
- Collapse
- Expand
- CountItemsUnder
- EachItemUnder
- FullListCountItems
- FullListCurrentSelection
- FullListFirstItem
- FullListLastItem
- FullListIndexOf
- FullListItemAt
- FullListHasItem
- FullListIsEmpty
- FullListDoForEach
- FullListSortItems
- IsExpanded
- ItemUnderAt
- MakeEmpty
- RemoveItem
- RemoveItems
- SortItemsUnder
- Superitem
- Static Functions
- BPicture
- BPictureButton
- BPoint
- BPolygon
- BPopUpMenu
- BPrintJob
- BRadioButton
- BRect
- BRegion
- BScreen
- BScrollBar
- BScrollView
- BSeparatorItem
- BShape
- BShapeIterator
- BShelf
- BSlider
- Constructor and Destructor
- Hook Functions
- Member Functions
- Archive
- OffscreenView
- SetBarColor
- BarColor
- SetBarThickness
- BarThickness
- SetFont
- SetHashMarks
- HashMarks
- SetHashMarkCount
- HashMarkCount
- SetKeyIncrementValue
- KeyIncrementValue
- SetLimitLabels
- MinLimitLabel
- MaxLimitLabel
- SetModificationMessage
- ModificationMessage
- SetOrientation
- Orientation
- SetPosition
- Position
- SetSnoozeAmount
- SnoozeAmount
- SetStyle
- Style
- SetValue
- Value
- ValueForPoint
- UpdateText
- UseFillColor
- FillColor
- Static Functions
- Archived Fields
- BStatusBar
- BStringItem
- BStringView
- BTab
- BTabView
- BTextView
- Constructor and Destructor
- Hook Functions
- Member Functions
- AcceptsDrop
- AcceptsPaste
- Archive
- CanEndLine
- Cut
- Copy
- Paste
- Clear
- DisallowChar
- AllowChar
- FindWord
- GetDragParameters
- GetSelection
- GetTextRegion
- GoToLine
- CurrentLine
- CountLines
- HideTyping
- IsTypingHidden
- Highlight
- Insert
- Delete
- InsertText
- DeleteText
- LineAt
- PointAt
- OffsetAt
- LineHeight
- TextHeight
- LineWidth
- MakeEditable
- IsEditable
- MakeFocus
- MakeResizable
- IsResizable
- MakeSelectable
- IsSelectable
- ResolveSpecifier()
- ScrollToOffset
- ScrollToSelection
- Select
- SelectAll
- SetAlignment
- Alignment
- SetAutoindent
- DoesAutoindent
- SetColorSpace
- ColorSpace
- SetDoesUndo
- DoesUndo
- UndoState
- Undo
- SetFontAndColor
- GetFontAndColor
- SetMaxBytes
- MaxBytes
- SetRunArray
- RunArray
- SetStylable
- IsStylable
- SetTabWidth
- TabWidth
- SetText
- SetTextRect
- TextRect
- SetWordWrap
- DoesWordWrap
- Text
- GetText
- ByteAt
- TextLength
- Static Functions
- Scripting Support
- Archived Fields
- BView
- Constructor and Destructor
- Hook Functions
- General Functions
- View Hierarchy Functions
- Input Related Functions
- Graphics State Functions
- MovePenBy
- MovePenTo
- PenLocation
- PushState
- PopState
- SetLineMode
- LineCapMode
- LineJoinMode
- LineMiterLimit
- SetScale
- SetPenSize
- PenSize
- SetHighColor
- HighColor
- SetLowColor
- LowColor
- SetViewColor
- ViewColor
- SetBlendingMode
- GetBlendingMode
- SetDrawingMode
- DrawingMode
- ForceFontAliasing
- GetFontHeight
- SetFont
- GetFont
- SetFontSize
- StringWidth
- GetStringWidths
- TruncateString
- ClipToPicture
- ClipInverseToPicture
- ConstrainClippingRegion
- GetClippingRegion
- Drawing Related Functions
- DrawBitmap
- DrawBitmapAsync
- DrawChar
- DrawString
- FillRegion
- StrokeBezier
- FillBezier
- StrokeEllipse
- FillEllipse
- StrokeArc
- FillArc
- StrokeArc
- StrokePolygon
- FillPolygon
- StrokeRect
- FillRect
- StrokeRoundRect
- FillRoundRect
- StrokeShape
- FillShape
- StrokeTriangle
- FillTriangle
- BeginLineArray
- AddLine
- EndLineArray
- BeginPicture
- AppendToPicture
- EndPicture
- CopyBits
- DrawPicture
- DrawPictureAsync
- Flush
- Sync
- Invalidate
- InvertRect
- SetViewBitmap
- ClearViewBitmap
- SetViewOverlay
- ClearViewOverlay
- Static Functions
- Scripting Support
- Archived Fields
- BWindow
- Constructor and Destructor
- Hook Functions
- Member Functions
- Activate
- IsActive
- AddChild
- RemoveChild
- ChildAt
- CountChildren
- AddShortcut
- RemoveShortcut
- AddToSubset
- RemoveFromSubset
- Archive
- Bounds
- Frame
- ConvertToScreen
- ConvertFromScreen
- CurrentFocus
- DisableUpdates
- EnableUpdates
- DispatchMessage()
- FindView
- Flush
- Sync
- GetSupportedSuites
- IsFront
- IsFloating
- IsModal
- LastMouseMovedView
- MoveBy
- MoveTo
- NeedsUpdate
- OpenViewTransaction
- CommitViewTransaction
- Quit
- ResizeBy
- ResizeTo
- ResolveSpecifier
- SendBehind
- SetDefaultButton
- DefaultButton
- SetFeel
- Feel
- SetFlags
- Flags
- SetKeyMenuBar
- KeyMenuBar
- SetLook
- Look
- SetPulseRate
- PulseRate
- SetSizeLimits
- GetSizeLimits
- SetZoomLimits
- SetTitle
- Title
- SetType
- Type
- SetWindowAlignment
- GetWindowAlignment
- SetWorkspaces
- Workspaces
- Show
- Hide
- IsHidden
- Minimize
- IsMinimized
- UpdateIfNeeded
- Static Functions
- Constants and Defined Types
- Scripting Support
- Archived Fields
- Areas
- Images
- Miscellaneous Functions And Constants
- Ports
- Semaphores
- System Information
- Threads And Teams
- Thread and Team Functions
- estimate_max_scheduling_latency
- exit_thread
- kill_thread
- kill_team
- find_thread
- get_team_info
- get_next_team_info
- get_thread_info
- get_next_thread_info
- rename_thread
- resume_thread
- receive_data
- send_data
- has_data
- set_thread_priority
- suggest_thread_priority
- snooze
- snooze_until
- spawn_thread
- suspend_thread
- wait_for_thread
- Thread and Team Structures and Types
- Thread and Team Constants
- Thread and Team Functions
- Time Information
- The Mail Daemon Functions
- BMailMessage
- BBuffer
- BBufferConsumer
- BBufferGroup
- BBufferProducer
- Constructor and Destructor
- Member Functions
- AdditionalBufferRequested
- ChangeFormat
- ClipDataToRegion
- Connect
- Disconnect
- DisposeOutputCookie
- EnableOutput
- FindLatencyFor
- FindSeekTag
- FormatChangeRequested
- FormatProposal
- FormatSuggestionRequested
- GetLatency
- GetNextOutput
- HandleMessage
- LatencyChanged
- LateNoticeReceived
- PrepareToConnect
- ProducerType
- ProposeFormatChange
- SendBuffer
- SendDataStatus
- SetBufferGroup
- SetInitialLatency
- SetPlayRate
- VideoClippingChanged
- Constants
- BContinuousParameter
- BControllable
- BDiscreteParameter
- BFileInterface
- BMediaAddOn
- BMediaBufferDecoder
- BMediaBufferEncoder
- BMediaDecoder
- BMediaEncoder
- BMediaEventLooper
- BMediaFile
- BMediaFiles
- BMediaFormats
- BMediaNode
- BMediaRoster
- Constructor and Destructor
- Member Functions
- AudioBufferSizeFor
- Connect
- Disconnect
- GetAllInputsFor
- GetAllOutputsFor
- GetAudioInput
- GetVideoInput
- GetAudioOutput
- GetVideoOutput
- GetAudioMixer
- GetConnectedInputsFor
- GetFreeInputsFor
- GetConnectedOutputsFor
- GetFreeOutputsFor
- GetDormantFlavorInfoFor
- GetDormantNodes
- GetFileFormatsFor
- GetFormatFor
- GetInitialLatencyFor
- GetInstancesFor
- GetLatencyFor
- GetLiveNodes
- GetNodeAttributesFor
- GetNodeFor
- GetParameterWebFor
- GetReadFileFormatList
- GetWriteFileFormatList
- GetRealtimeFlags
- SetRealtimeFlags
- GetStartLatencyFor
- GetSystemTimeSource
- GetTimeSource
- MakeTimeSourceFor
- InstantiateDormantNode
- MediaFlags
- NodeIDFor
- PrerollNode
- RegisterNode
- UnregisterNode
- ReleaseNode
- RollNode
- Roster
- CurrentRoster
- SeekNode
- SeekTimeSource
- SetAudioInput
- SetVideoInput
- SetAudioOutput
- SetVideoOutput
- SetProducerRate
- SetProducerRunModeDelay
- SetRefFor
- GetRefFor
- SetRunModeNode
- SetTimeSourceFor
- SniffRef
- SniffRefFor
- StartControlPanel
- StartNode
- StartTimeSource
- StopTimeSource
- StartWatching
- StopWatching
- SyncToNode
- Constants
- BMediaTheme
- BMediaTrack
- Constructor and Destructor
- Member Functions
- AddCopyright
- AddTrackInfo
- CountFrames
- CurrentFrame
- CurrentTime
- DecodedFormat
- Duration
- EncodedFormat
- FindKeyFrameForTime
- FindKeyFrameForFrame
- Flush
- GetCodecInfo
- GetEncodeParameters
- SetEncodeParameters
- GetParameterView
- InitCheck
- ReadChunk
- ReadFrames
- ReplaceFrames
- SeekToFrame
- SeekToTime
- SetParameterValue
- GetParameterValue
- SetQuality
- GetQuality
- Web
- WriteChunk
- WriteFrames
- Constants
- BNullParameter
- BParameter
- BParameterGroup
- BParameterWeb
- BSmallBuffer
- BSoundPlayer
- BTimeCode
- BTimeSource
- BTimedEventQueue
- BNetAddress
- BNetBuffer
- Constructor and Destructor
- Member Functions
- AppendInt8
- AppendUint8
- AppendInt16
- AppendUint16
- AppendInt32
- AppendUint32
- AppendInt64
- Appenduint64
- AppendFloat
- AppendDouble
- AppendString
- AppendData
- AppendMessage
- Data
- Size
- BytesRemaining
- RemoveInt8
- RemoveUint8
- RemoveInt16
- RemoveUint16
- RemoveInt32
- RemoveUint32
- RemoveInt64
- Removeuint64
- RemoveFloat
- RemoveDouble
- RemoveString
- RemoveData
- RemoveMessage
- Operators
- BNetDebug
- BNetEndpoint
- Network Sockets
- BGLView
- BAppFileInfo
- BDirectory
- BEntry
- BEntryList
- BFile
- BFilePanel
- BMimeType
- Constructor and Destructor
- Member Functions
- Contains
- GetAppHint
- SetAppHint
- GetAttrInfo
- SetAttrInfo
- GetFileExtensions
- SetFileExtensions
- GetIcon
- SetIcon
- GetIconForType
- SetIconForType
- GetInstalledTypes
- GetInstalledSupertypes
- GetLongDescription
- SetLongDescription
- GetShortDescription
- SetShortDescription
- GetPreferredApp
- SetPreferredApp
- GetSupportingApps
- GetWildcardApps
- InitCheck
- Install
- Delete
- IsInstalled
- IsValid
- IsSupertypeOnly
- SetTo
- Unset
- StartWatching
- StopWatching
- Type
- GetSupertype
- Operators
- BNode
- BNodeInfo
- BPath
- BQuery
- BRefFilter
- BResources
- BStatable
- BSymLink
- The Node Monitor
- BVolume
- BVolumeRoster
- BArchivable
- BAutolock
- BBlockCache
- BDataIO
- BFlattenable
- Functions and Macros
- BList
- BLocker
- BMallocIO
- BMemoryIO
- BPositionIO
- BStopWatch
- BString
- Constructor and Destructor
- Member Functions
- Append
- Prepend
- Insert
- CharacterEscape
- CharacterDeescape
- Compare
- ICompare
- CopyInto
- MoveInto
- CountChars
- Length
- FindFirst
- FindLast
- IFindFirst
- IFindLast
- LockBuffer
- UnlockBuffer
- Remove
- RemoveFirst
- RemoveLast
- RemoveAll
- RemoveSet
- Replace
- ReplaceFirst
- ReplaceLast
- ReplaceAll
- ReplaceSet
- IReplace
- IReplaceFirst
- IReplaceLast
- IReplaceAll
- IReplaceSet
- SetTo
- Adopt
- String
- ByteAt
- ToLower
- ToUpper
- Capitalize
- CapitalizeEachWord
- Truncate
- Operators
- BBitmapStream
- Introduction
- Media Formats
- BTranslationUtils
- BTranslator
- BTranslatorRoster
- BDeskbar
- The area_malloc Module
- Constants And Defined Types
- Driver Settings API
- Kernel Functions
- acquire_spinlock(), release_spinlock(), spinlock
- add_timer(), cancel_timer(), timer_hook, qent, timer
- call_all_cpus()
- disable_interrupts(), restore_interrupts(), cpu_status
- dprintf(), set_dprintf_enabled(), panic()
- get_memory_map(), physical_entry
- has_signals_pending()
- install_io_interrupt_handler(), remove_io_interrupt_handler()
- kernel_debugger(), add_debugger_command(), remove_debugger_command(), load_driver_symbols(), kprintf(), parse_expression()
- lock_memory(), unlock_memory()
- map_physical_memory()
- motherboard_version(), io_card_version()
- platform()
- register_kernel_daemon(), unregister_kernel_daemon()
- send_signal_etc()
- spawn_kernel_thread()
- spin()
- Introduction
- Message Constants
- Using Modules
- Writing Drivers
- Writing Modules
- Character Constants
- Definitions
- Introduction
- Journey Of A Keystroke
- Key Codes
- Key States
- More On Keyboard Mapping
- Keyboard Messages
- Modifier Keys
- Haiku Package File Format
- Add-on Protocol
- Background Images
- Scripting
- BApplication
- BApplication Overview
- BClipboard
- The System Clipboard
- The Clipboard Message
- Writing to the Clipboard
- Reading from the Clipboard
- Persistence
- BCursor
- Cursor Data Format
- BHandler
- The Handler List
- Targets
- Filtering
- Notifiers and Observers
- BInvoker
- BLooper
- Messages and Handlers
- Locking
- Allocation
- BMessage
- Preparatory Reading
- Types of Functions
- BMessage Ownership
- BMessageFilter
- BMessageQueue
- BMessageRunner
- BMessenger
- BPropertyInfo
- BRoster
- BClipboard
- BCursor
- BHandler
- The Application Kit
- Introduction
- BInvoker
- BLooper
- BMessage
- BMessageFilter
- BMessageQueue
- Messaging
- Features of the Fundamental Classes
- The BLooper Class
- BMessenger
- BPropertyInfo
- BRoster
- Scripting
- Basics
- Creating and Sending Scripting Messages
- Making Objects Scriptable
- BJoystick
- BSerialPort
- BDirectWindow
- BFileGameSound
- BPushGameSound
- BSimpleGameSound
- BStreamingGameSound
- BWindowScreen
- BInputDevice
- BInputServerDevice
- BInputServerFilter
- BInputServerMethod
- BAlert
- BBitmap
- BBox
- BButton
- BCheckBox
- BAlert
- BBitmap
- BBox
- BButton
- BCheckBox
- BColorControl
- BControl
- BDragger
- BMenu
- BMenuBar
- BMenuField
- BMenuItem
- BPictureButton
- BPoint
- BPolygon
- BPopUpMenu
- BRadioButton
- BRegion
- BScreen
- BScrollView
- BSeparatorItem
- BShape
- BShapeIterator
- BShelf
- BStatusBar
- BStringItem
- BStringView
- BTab
- BTabView
- BTextControl
- BTextView
- BView
- BWindow
- BColorControl
- BControl
- Drag And Drop
- Prerequisites
- Simple vs. Negotiated Drag’n’Drop
- Basics of Drag and Drop
- Example: Simple Drag’n’Drop
- BMessage Formats in Negotiated Drag’n’Drop
- Handling Drops from ‘Old’ Applications
- Summary of the Negotiated Drag’n’Drop Protocol
- BDragger
- Drawing
- BFont
- The Application Kit
- Introduction
- Framework for the User Interface
- BWindow Objects
- BView Objects
- The View Hierarchy
- Introduction
- Framework for the User Interface
- BListItem
- BMenu
- BMenuBar
- BMenuField
- BMenuItem
- BOutlineListView
- BPicture
- BPictureButton
- BPoint
- BPolygon
- BPopUpMenu
- BPrintJob
- BRadioButton
- BRect
- BRegion
- BScreen
- BScrollBar
- BScrollView
- BSeparatorItem
- BShape
- BShapeIterator
- BShelf
- BSlider
- BStatusBar
- BStringItem
- BStringView
- BTab
- BTabView
- BTextView
- BView
- BWindow
- Areas
- Images
- Ports
- Semaphores
- Threads and Teams
- BMailMessage
- BBuffer
- BBufferConsumer
- BBufferGroup
- BBufferProducer
- BContinuousParameter
- BControllable
- BDiscreteParameter
- BFileInterface
- BMediaAddOn
- BMediaEventLooper
- BMediaFile
- BMediaFiles
- BMediaFormats
- BMediaNode
- BMediaRoster
- BMediaTheme
- BMediaTrack
- BNullParameter
- BParameter
- BParameterGroup
- BParameterWeb
- BSmallBuffer
- BSoundPlayer
- BTimeCode
- BTimeSource
- BTimedEventQueue
- BNetAddress
- BNetBuffer
- BNetDebug
- BNetEndpoint
- BGLView
- BAppFileInfo
- BDirectory
- BEntry
- BEntryList
- BFile
- BFilePanel
- BMimeType
- BNode
- BNodeInfo
- BPath
- BQuery
- BRefFilter
- BResources
- BStatable
- BSymLink
- BVolume
- BVolumeRoster
- BTranslationUtils
- BTranslator
- LICENSE
- Generating the Class API
- bebook
- install
- remaining issues
- Introduction