Part III. GTK Widgets and Objects
Table of Contents
Object Hierarchy
Widget Gallery
GListModel support
GtkBitset
— Sets of integers
GtkExpression
— Expressions to values
GtkFilterListModel
— A list model that filters its items
GtkFilter
— Filtering items
GtkCustomFilter
— Filtering with callbacks
GtkMultiFilter
— Combining multiple filters
GtkBoolFilter
— Filtering by boolean expressions
GtkStringFilter
— Filtering by strings
GtkFileFilter
— Filtering files
GtkFlattenListModel
— A list model that flattens a list of lists
GtkMapListModel
— A list model that transforms its items
GtkSliceListModel
— A list model that presents a slice out of a larger list
GtkSortListModel
— A list model that sorts its items
GtkSorter
— Sorting items
GtkCustomSorter
— Sorting with a callbacks
GtkMultiSorter
— Combining multiple sorters
GtkStringSorter
— Sort by comparing strings
GtkNumericSorter
— Sort by comparing numbers
GtkSelectionModel
— An extension of the list model interface that handles selections
GtkNoSelection
— A selection model that does not allow selecting anything
GtkSingleSelection
— A selection model that allows selecting a single item
GtkMultiSelection
— A selection model that allows selecting multiple items
GtkSelectionFilterModel
— A list model that turns a selection in a model
GtkBookmarkList
— A list model for recently used files
GtkDirectoryList
— A list model for directory listings
GtkStringList
— A list model for strings
List-based Widgets
List Widget Overview
Terminology
Behind the scenes
Choosing the right model
Displaying trees
List styles
Comparison to GtkTreeView
GtkListItem
— Object used to represent items of a list model
GtkListItemFactory
— Mapping list items to widgets
GtkSignalListItemFactory
— A listitem factory providing signals
GtkBuilderListItemFactory
— A listitem factory using ui files
GtkListView
— A widget for displaying lists
GtkGridView
— A widget for displaying grids
GtkColumnView
— A widget for displaying lists in multiple columns
GtkColumnViewColumn
— The column added to GtkColumnView
GtkDropDown
— Choose an item from a list
Tree support
GtkTreeListModel
— A list model that can create child models on demand
GtkTreeListRow
— A row in a GtkTreeListModel
GtkTreeListRowSorter
— Sort trees by levels
GtkTreeExpander
— An indenting expander button for use in a tree list
Application support
GtkApplication
— Application class
GtkApplicationWindow
— GtkWindow subclass with GtkApplication support
GtkActionable
— An interface for widgets that can be associated with actions
Interface builder
GtkBuilder
— Build an interface from an XML UI definition
GtkBuildable
— Interface for objects that can be built by GtkBuilder
GtkBuilderScope
— Bindings for GtkBuilder
Windows
GtkRoot
— Interface for root widgets
GtkNative
— Interface for widgets having surfaces
GtkWindow
— Toplevel which can contain other widgets
GtkDialog
— Create popup windows
GtkMessageDialog
— A convenient message window
GtkAboutDialog
— Display information about an application
GtkAssistant
— A widget used to guide users through multi-step operations
GtkWindowGroup
— Limit the effect of grabs
GtkNativeDialog
— Integrate with native dialogs
Layout Containers
GtkBox
— A container for packing widgets in a single row or column
GtkCenterBox
— A centering container
GtkGrid
— Pack widgets in rows and columns
GtkRevealer
— Hide and show with animation
GtkListBox
— A list container
GtkFlowBox
— A container that allows reflowing its children
GtkStack
— A stacking container
GtkStackSwitcher
— A controller for GtkStack
GtkStackSidebar
— An automatic sidebar widget
GtkActionBar
— A full width bar for presenting contextual actions
GtkHeaderBar
— A box with a centered child
GtkOverlay
— A container which overlays widgets on top of each other
GtkPaned
— A widget with two adjustable panes
GtkNotebook
— A tabbed notebook container
GtkExpander
— A container which can hide its child
GtkOrientable
— An interface for flippable widgets
GtkAspectFrame
— A frame that constrains its child to a particular aspect ratio
GtkFixed
— A container which allows you to position widgets at fixed coordinates
Layout Managers
GtkLayoutManager
— Base class for layout manager
GtkLayoutChild
— An object containing layout properties
GtkBinLayout
— A layout manager for bin-like widgets
GtkBoxLayout
— Layout manager for placing all children in a single row or column
GtkCenterLayout
— A centering layout
GtkFixedLayout
— A layout manager that allows positioning at fixed coordinates
GtkGridLayout
— Layout manager for grid-like widgets
GtkOverlayLayout
— Layout manager that places widgets as overlays
GtkCustomLayout
— A convenience layout manager
GtkConstraintLayout
— A layout manager using constraints
GtkConstraint
— The description of a constraint
GtkConstraintGuide
— An invisible constraint target
Display Widgets
GtkLabel
— A widget that displays a small to medium amount of text
GtkImage
— A widget displaying an image
GtkPicture
— A widget displaying a
GdkPaintable
GtkSpinner
— Show a spinner animation
GtkInfoBar
— Report important messages to the user
GtkProgressBar
— A widget which indicates progress visually
GtkLevelBar
— A bar that can used as a level indicator
GtkStatusbar
— Report messages of minor importance to the user
GtkCalendar
— Displays a calendar and allows the user to select a date
Media Support
GtkVideo
— A widget for displaying video
GtkMediaControls
— A widget showing controls for a media stream
GtkMediaStream
— Display media in GTK
GtkMediaFile
— Open media files for use in GTK
Buttons and Toggles
GtkButton
— A widget that emits a signal when clicked on
GtkCheckButton
— Create widgets with a discrete toggle button
GtkToggleButton
— Create buttons which retain their state
GtkLinkButton
— Create buttons bound to a URL
GtkMenuButton
— A widget that shows a popup when clicked on
GtkSwitch
— A “light switch” style toggle
GtkScaleButton
— A button which pops up a scale
GtkVolumeButton
— A button which pops up a volume control
GtkLockButton
— A widget to unlock or lock privileged operations
Numeric and Text Data Entry
GtkEditable
— Interface for text-editing widgets
GtkEntryBuffer
— Text buffer for GtkEntry
GtkText
— A simple single-line text entry field
GtkEntry
— A single line text entry field
GtkEntryCompletion
— Completion functionality for GtkEntry
GtkPasswordEntry
— An entry for secrets
GtkScale
— A slider widget for selecting a value from a range
GtkSpinButton
— Retrieve an integer or floating-point number from the user
GtkSearchEntry
— An entry which shows a search icon
GtkSearchBar
— A toolbar to integrate a search entry with
GtkEditableLabel
— A label that can be edited
Multiline Text Editor
Text Widget Overview
Simple Example
Example of Changing Text Attributes
GtkTextIter
— Text buffer iterator
GtkTextMark
— A position in the buffer preserved across buffer modifications
GtkTextBuffer
— Stores attributed text for display in a GtkTextView
GtkTextTag
— A tag that can be applied to text in a GtkTextBuffer
GtkTextTagTable
— Collection of tags that can be used together
GtkTextView
— Widget that displays a GtkTextBuffer
Tree, List and Icon Grid Widgets
Tree and List Widget Overview
Creating a model
Creating the view component
Columns and cell renderers
Selection handling
Simple Example
GtkTreeModel
— The tree interface used by GtkTreeView
GtkTreeSelection
— The selection object for GtkTreeView
GtkTreeViewColumn
— A visible column in a GtkTreeView widget
GtkTreeView
— A widget for displaying both trees and lists
GtkTreeView drag-and-drop
— Interfaces for drag-and-drop support in GtkTreeView
GtkCellView
— A widget displaying a single row of a GtkTreeModel
GtkIconView
— A widget which displays a list of icons in a grid
GtkTreeSortable
— The interface for sortable models used by GtkTreeView
GtkTreeModelSort
— A GtkTreeModel which makes an underlying tree model sortable
GtkTreeModelFilter
— A GtkTreeModel which hides parts of an underlying tree model
GtkCellLayout
— An interface for packing cells
GtkCellArea
— An abstract class for laying out GtkCellRenderers
GtkCellAreaBox
— A cell area that renders GtkCellRenderers into a row or a column
GtkCellAreaContext
— Stores geometrical information for a series of rows in a GtkCellArea
GtkCellRenderer
— An object for rendering a single cell
GtkCellEditable
— Interface for widgets that can be used for editing cells
GtkCellRendererAccel
— Renders a keyboard accelerator in a cell
GtkCellRendererCombo
— Renders a combobox in a cell
GtkCellRendererPixbuf
— Renders a pixbuf in a cell
GtkCellRendererProgress
— Renders numbers as progress bars
GtkCellRendererSpin
— Renders a spin button in a cell
GtkCellRendererText
— Renders text in a cell
GtkCellRendererToggle
— Renders a toggle button in a cell
GtkCellRendererSpinner
— Renders a spinning animation in a cell
GtkListStore
— A list-like data structure that can be used with the GtkTreeView
GtkTreeStore
— A tree-like data structure that can be used with the GtkTreeView
Menus, Combo Box
GtkComboBox
— A widget used to choose from a list of items
GtkComboBoxText
— A simple, text-only combo box
GtkPopover
— Context dependent bubbles
GtkPopoverMenu
— Popovers to use as menus
GtkPopoverMenuBar
— A menu bar with popovers
GtkDropDown
— Choose an item from a list
Selector Widgets and Dialogs
GtkColorChooser
— Interface implemented by widgets for choosing colors
GtkColorButton
— A button to launch a color selection dialog
GtkColorChooserWidget
— A widget for choosing colors
GtkColorChooserDialog
— A dialog for choosing colors
GtkFileChooser
— File chooser interface used by GtkFileChooserWidget and GtkFileChooserDialog
GtkFileChooserButton
— A button to launch a file chooser dialog
GtkFileChooserNative
— A native file chooser dialog, suitable for “File Open” or “File Save” commands
GtkFileChooserDialog
— A file chooser dialog, suitable for “File Open” or “File Save” commands
GtkFileChooserWidget
— A file chooser widget
GtkFontChooser
— Interface implemented by widgets displaying fonts
GtkFontButton
— A button to launch a font chooser dialog
GtkFontChooserWidget
— A widget for selecting fonts
GtkFontChooserDialog
— A dialog for selecting fonts
GtkEmojiChooser
— A popover to choose an Emoji character
Widgets for custom drawing
GtkDrawingArea
— A simple widget for drawing with cairo
GtkGLArea
— A widget for custom drawing with OpenGL
Ornaments
GtkFrame
— A widget with a decorative frame and optional label
GtkSeparator
— A separator widget
Scrolling
GtkScrollbar
— A Scrollbar
GtkScrolledWindow
— Adds scrollbars to its child widget
GtkScrollable
— An interface for scrollable widgets
GtkViewport
— An adapter which makes widgets scrollable
Printing
GtkPrintOperation
— High-level Printing API
GtkPrintContext
— Encapsulates context for drawing pages
GtkPrintSettings
— Stores print settings
GtkPageSetup
— Stores page setup information
GtkPaperSize
— Support for named paper sizes
GtkPrinter
— Represents a printer
GtkPrintJob
— Represents a print job
GtkPrintUnixDialog
— A print dialog
GtkPageSetupUnixDialog
— A page setup dialog
Shortcuts Overview
GtkShortcutsWindow
— Toplevel which shows help for shortcuts
GtkShortcutsSection
— Represents an application mode in a GtkShortcutsWindow
GtkShortcutsGroup
— Represents a group of shortcuts in a GtkShortcutsWindow
GtkShortcutsShortcut
— Represents a keyboard shortcut in a GtkShortcutsWindow
GtkShortcutLabel
— Displays a keyboard shortcut
Accessibility
GTK Accessibility
The standard accessibility interface
Accessible roles and attributes
Application development rules
Implementations
GtkAccessible
— Accessible interface
GtkATContext
— An object communicating to Assistive Technologies
Miscellaneous
GtkAdjustment
— A representation of an adjustable bounded value
GtkIMContextSimple
— An input method context supporting table-based input methods
GtkIMMulticontext
— An input method context supporting multiple, loadable input methods
GtkSizeGroup
— Grouping widgets so they request the same size
GtkSnapshot
— Auxiliary object for snapshots
GtkTooltip
— Add tips to your widgets
GtkWidgetPaintable
— Drawing a widget elsewhere
GtkWindowControls
— A widget displaying window buttons
GtkWindowHandle
— A titlebar area widget
Abstract Base Classes
GtkWidget
— Base class for all widgets
GtkRange
— Base class for widgets which visualize an adjustment
GtkIMContext
— Base class for input method contexts
GtkNativeDialog
— Integrate with native dialogs
GtkAccessible
— Accessible interface
Recently Used Documents
GtkRecentManager
— Managing recently used files
Choosing from installed applications
GtkAppChooser
— Interface implemented by widgets for choosing an application
GtkAppChooserButton
— A button to launch an application chooser dialog
GtkAppChooserDialog
— An application chooser dialog
GtkAppChooserWidget
— Application chooser widget that can be embedded in other widgets
Gestures and event handling
GtkEventController
— Self-contained handler of series of events
GtkEventControllerKey
— Event controller for key events
GtkEventControllerFocus
— Event controller for focus
GtkEventControllerLegacy
— Event controller for miscellaneous events
GtkEventControllerScroll
— Event controller for scroll events
GtkEventControllerMotion
— Event controller for motion events
GtkGesture
— Base class for gestures
GtkGestureSingle
— Base class for mouse/single-touch gestures
GtkGestureDrag
— Drag gesture
GtkGestureLongPress
— "Press and Hold" gesture
GtkGestureClick
— Multipress gesture
GtkGesturePan
— Pan gesture
GtkGestureSwipe
— Swipe gesture
GtkGestureRotate
— Rotate gesture
GtkGestureZoom
— Zoom gesture
GtkGestureStylus
— Gesture for stylus input
GtkPadController
— Controller for drawing tablet pads
GtkShortcutController
— Event controller for shortcuts
Keyboard shortcuts
Keyboard Accelerators
— Utilities for accelerators
GtkShortcut
— An object describing a keyboard shortcut
GtkShortcutTrigger
— Triggers to track if shortcuts should be activated
GtkShortcutAction
— Tracking if shortcuts should be activated
GtkShortcutManager
— Interface for managing shortcuts
Data exchange, clipboards and Drag-and-Drop
GtkDragSource
— Event controller to initiate DND operations
GtkDragIcon
— A toplevel to use as drag icon
GtkDropTarget
— Event controller to receive DND drops
GtkDropTargetAsync
— Event controller to receive DND drops
GtkDropControllerMotion
— Event controller for motion events during a drop