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
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
Authoring practices
Hiding UI elements from the accessible tree
Design patterns and custom widgets
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