-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Gtk 4.x bindings
--   
--   Bindings for Gtk 4.x, autogenerated by haskell-gi.
@package gi-gtk4
@version 4.0.12

-- | Build time configuration used during code generation.
module GI.Gtk.Config

-- | Overrides used when generating these bindings.
overrides :: Text

-- | Modules in this package
modules :: [Text]

module GI.Gtk.Constants

-- | Disables sorting in a TreeSortable.
--   
--   See also: treeSortableSetSortColumnId

-- | Deprecated: (Since version 4.20)There is no replacement
pattern TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID :: Int32

-- | Uses the default sort function in a TreeSortable.
--   
--   See also: treeSortableSetSortColumnId

-- | Deprecated: (Since version 4.20)There is no replacement
pattern TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID :: Int32

-- | The priority at which the text view validates onscreen lines in an
--   idle job in the background.
pattern TEXT_VIEW_PRIORITY_VALIDATE :: Int32

-- | The GtkSvgFeatures that are enabled by default.
--   
--   Since: 4.22
pattern SVG_DEFAULT_FEATURES :: Int32

-- | The priority used for the style information from
--   $XDG_CONFIG_HOME/gtk-4.0/gtk.css.
--   
--   You should not use priorities higher than this, to give the user the
--   last word.
pattern STYLE_PROVIDER_PRIORITY_USER :: Int32

-- | The priority used for style information provided by themes.
pattern STYLE_PROVIDER_PRIORITY_THEME :: Int32

-- | The priority used for style information provided via
--   GtkSettings.
--   
--   This priority is higher than STYLE_PROVIDER_PRIORITY_THEME to
--   let settings override themes.
pattern STYLE_PROVIDER_PRIORITY_SETTINGS :: Int32

-- | The priority used for default style information that is used in the
--   absence of themes.
--   
--   Note that this is not very useful for providing default styling for
--   custom style classes - themes are likely to override styling provided
--   at this priority with catch-all * {...} rules.
pattern STYLE_PROVIDER_PRIORITY_FALLBACK :: Int32

-- | A priority that can be used when adding a GtkStyleProvider
--   for application-specific style information.
pattern STYLE_PROVIDER_PRIORITY_APPLICATION :: Int32

-- | Use this priority for functionality related to size allocation.
--   
--   It is used internally by GTK+ to compute the sizes of widgets. This
--   priority is higher than PRIORITY_REDRAW to avoid resizing a
--   widget which was just redrawn.
pattern PRIORITY_RESIZE :: Int32

-- | The key used by the “Print to file” printer to store the 32-bit
--   Windows driver version.
pattern PRINT_SETTINGS_WIN32_DRIVER_VERSION :: Text

-- | The key used by the “Print to file” printer to store 32-bit Windows
--   extra driver.
pattern PRINT_SETTINGS_WIN32_DRIVER_EXTRA :: Text

-- | The key used by the “Print to file” printer to store whether to print
--   with colors.
pattern PRINT_SETTINGS_USE_COLOR :: Text

-- | The key used by the “Print to file” printer to store the scale.
pattern PRINT_SETTINGS_SCALE :: Text

-- | The key used by the “Print to file” printer to store whether to
--   reverse the order of the printed pages.
pattern PRINT_SETTINGS_REVERSE :: Text

-- | The key used by the “Print to file” printer to store the vertical
--   resolution in DPI.
pattern PRINT_SETTINGS_RESOLUTION_Y :: Text

-- | The key used by the “Print to file” printer to store the horizontal
--   resolution in DPI.
pattern PRINT_SETTINGS_RESOLUTION_X :: Text

-- | The key used by the “Print to file” printer to store the resolution in
--   DPI.
pattern PRINT_SETTINGS_RESOLUTION :: Text

-- | The key used by the “Print to file” printer to store the printing
--   quality.
pattern PRINT_SETTINGS_QUALITY :: Text

-- | The key used by the “Print to file” printer to store which pages to
--   print.
pattern PRINT_SETTINGS_PRINT_PAGES :: Text

-- | The key used by the “Print to file” printer to store the resolution in
--   lines per inch.
pattern PRINT_SETTINGS_PRINTER_LPI :: Text

-- | The key used by the “Print to file” printer to store the printer name.
pattern PRINT_SETTINGS_PRINTER :: Text

-- | The key used by the “Print to file” printer to store the paper width.
pattern PRINT_SETTINGS_PAPER_WIDTH :: Text

-- | The key used by the “Print to file” printer to store the page height.
pattern PRINT_SETTINGS_PAPER_HEIGHT :: Text

-- | The key used by the “Print to file” printer to store the page format.
pattern PRINT_SETTINGS_PAPER_FORMAT :: Text

-- | The key used by the “Print to file” printer to store the set of pages
--   to print.
pattern PRINT_SETTINGS_PAGE_SET :: Text

-- | The key used by the “Print to file” printer to store the array of page
--   ranges to print.
pattern PRINT_SETTINGS_PAGE_RANGES :: Text

-- | The key used by the “Print to file” printer to store the URI to which
--   the output should be written. GTK itself supports only “file://” URIs.
pattern PRINT_SETTINGS_OUTPUT_URI :: Text

-- | The key used by the “Print to file” printer to store the format of the
--   output. The supported values are “PS” and “PDF”.
pattern PRINT_SETTINGS_OUTPUT_FILE_FORMAT :: Text

-- | The key used by the “Print to file” printer to store the directory to
--   which the output should be written.
pattern PRINT_SETTINGS_OUTPUT_DIR :: Text

-- | The key used by the “Print to file” printer to store the output bin.
pattern PRINT_SETTINGS_OUTPUT_BIN :: Text

-- | The key used by the “Print to file” printer to store the file name of
--   the output without the path to the directory and the file extension.
pattern PRINT_SETTINGS_OUTPUT_BASENAME :: Text

-- | The key used by the “Print to file” printer to store the orientation.
pattern PRINT_SETTINGS_ORIENTATION :: Text

-- | The key used by the “Print to file” printer to store the number of
--   copies.
pattern PRINT_SETTINGS_N_COPIES :: Text

-- | The key used by the “Print to file” printer to store the number of
--   pages per sheet in number-up mode.
pattern PRINT_SETTINGS_NUMBER_UP_LAYOUT :: Text

-- | The key used by the “Print to file” printer to store the number of
--   pages per sheet.
pattern PRINT_SETTINGS_NUMBER_UP :: Text

-- | The key used by the “Print to file” printer to store the media type.
--   
--   The set of media types is defined in PWG 5101.1-2002 PWG.
pattern PRINT_SETTINGS_MEDIA_TYPE :: Text

-- | The key used by the “Print to file” printer to store the finishings.
pattern PRINT_SETTINGS_FINISHINGS :: Text

-- | The key used by the “Print to file” printer to store whether to print
--   the output in duplex.
pattern PRINT_SETTINGS_DUPLEX :: Text

-- | The key used by the “Print to file” printer to store the dither used.
pattern PRINT_SETTINGS_DITHER :: Text

-- | The key used by the “Print to file” printer to store the default
--   source.
pattern PRINT_SETTINGS_DEFAULT_SOURCE :: Text

-- | The key used by the “Print to file” printer to store whether to
--   collate the printed pages.
pattern PRINT_SETTINGS_COLLATE :: Text

-- | Name for the Letter paper size.
pattern PAPER_NAME_LETTER :: Text

-- | Name for the Legal paper size.
pattern PAPER_NAME_LEGAL :: Text

-- | Name for the Executive paper size.
pattern PAPER_NAME_EXECUTIVE :: Text

-- | Name for the B5 paper size.
pattern PAPER_NAME_B5 :: Text

-- | Name for the A5 paper size.
pattern PAPER_NAME_A5 :: Text

-- | Name for the A4 paper size.
pattern PAPER_NAME_A4 :: Text

-- | Name for the A3 paper size.
pattern PAPER_NAME_A3 :: Text

-- | Like [funcgetMinorVersion], but from the headers used
--   at application compile time, rather than from the library linked
--   against at application run time.
pattern MINOR_VERSION :: Int32

-- | Like [funcgetMicroVersion], but from the headers used
--   at application compile time, rather than from the library linked
--   against at application run time.
pattern MICRO_VERSION :: Int32

-- | The default extension point name for media file.
pattern MEDIA_FILE_EXTENSION_POINT_NAME :: Text

-- | Evaluates to the maximum length of a compose sequence.
--   
--   This macro is longer used by GTK.
pattern MAX_COMPOSE_LEN :: Int32

-- | Like [funcgetMajorVersion], but from the headers used
--   at application compile time, rather than from the library linked
--   against at application run time.
pattern MAJOR_VERSION :: Int32

-- | The name used for the stock low offset included by
--   GtkLevelBar.
pattern LEVEL_BAR_OFFSET_LOW :: Text

-- | The name used for the stock high offset included by
--   GtkLevelBar.
pattern LEVEL_BAR_OFFSET_HIGH :: Text

-- | The name used for the stock full offset included by
--   GtkLevelBar.
pattern LEVEL_BAR_OFFSET_FULL :: Text

-- | The value used to refer to a guaranteed invalid position in a
--   GListModel.
--   
--   This value may be returned from some functions, others may accept it
--   as input. Its interpretation may differ for different functions.
--   
--   Refer to each function's documentation for if this value is allowed
--   and what it does.
pattern INVALID_LIST_POSITION :: Word32

-- | Like [funcgetInterfaceAge], but from the headers used
--   at application compile time, rather than from the library linked
--   against at application run time.
pattern INTERFACE_AGE :: Int32

-- | Constant to return from a signal handler for the input signal
--   in case of conversion failure.
--   
--   See SpinButton::input.
pattern INPUT_ERROR :: Int32

-- | The default name of the extension point.
pattern IM_MODULE_EXTENSION_POINT_NAME :: Text

-- | Like [funcgetBinaryAge], but from the headers used at
--   application compile time, rather than from the library linked against
--   at application run time.
pattern BINARY_AGE :: Int32

-- | An undefined value. The accessible attribute is either unset, or its
--   value is undefined.
pattern ACCESSIBLE_VALUE_UNDEFINED :: Int32

-- | An attribute for the font weight.
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_WEIGHT :: Text

-- | The "unicase" variant value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT_UNICASE :: Text

-- | The "title caps" variant value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT_TITLE_CAPS :: Text

-- | The "small caps" variant value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT_SMALL_CAPS :: Text

-- | The "petite caps" variant value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT_PETITE_CAPS :: Text

-- | The "all small caps" variant value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT_ALL_SMALL_CAPS :: Text

-- | The "all petite caps" variant value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT_ALL_PETITE_CAPS :: Text

-- | An attribute for the font variant.
--   
--   Possible values are:
--   
--   
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT_SMALL_CAPS]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT_ALL_SMALL_CAPS]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT_PETITE_CAPS]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT_ALL_PETITE_CAPS]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT_UNICASE]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_VARIANT_TITLE_CAPS]
--   
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_VARIANT :: Text

-- | The "single" underline value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_UNDERLINE_SINGLE :: Text

-- | The "none" underline value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_UNDERLINE_NONE :: Text

-- | The "error" underline value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_UNDERLINE_ERROR :: Text

-- | The "double" underline value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_UNDERLINE_DOUBLE :: Text

-- | An attribute for the underline style.
--   
--   Possible values are:
--   
--   
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE_NONE]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE_SINGLE]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE_DOUBLE]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_UNDERLINE_ERROR]
--   
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_UNDERLINE :: Text

-- | The "oblique" style value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STYLE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STYLE_OBLIQUE :: Text

-- | The "normal" style value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STYLE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STYLE_NORMAL :: Text

-- | The "italic" style value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STYLE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STYLE_ITALIC :: Text

-- | An attribute for the font style.
--   
--   Possible values are:
--   
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STYLE_NORMAL]
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STYLE_OBLIQUE]
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STYLE_ITALIC]
--   
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STYLE :: Text

-- | An attribute for strikethrough text.
--   
--   Possible values are true or false.
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRIKETHROUGH :: Text

-- | The "ultra expanded" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_ULTRA_EXPANDED :: Text

-- | The "ultra condensed" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_ULTRA_CONDENSED :: Text

-- | The "semi expanded" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_SEMI_EXPANDED :: Text

-- | The "semi condensed" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_SEMI_CONDENSED :: Text

-- | The "normal" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_NORMAL :: Text

-- | The "extra expanded" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_EXTRA_EXPANDED :: Text

-- | The "extra condensed" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_EXTRA_CONDENSED :: Text

-- | The "expanded" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_EXPANDED :: Text

-- | The "condensed" stretch value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH_CONDENSED :: Text

-- | An attribute for the font stretch type.
--   
--   Possible values are:
--   
--   
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH_ULTRA_CONDENSED]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH_EXTRA_CONDENSED]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH_CONDENSED]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_STRETCH_SEMI_CONDENSED]
--   
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_STRETCH :: Text

-- | An attribute for the font size, expressed in points.
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_SIZE :: Text

-- | The "single" overline value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_OVERLINE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_OVERLINE_SINGLE :: Text

-- | The "none" overline value for
--   [constgtk.ACCESSIBLE_ATTRIBUTE_OVERLINE].
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_OVERLINE_NONE :: Text

-- | An attribute for the overline style.
--   
--   Possible values are:
--   
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_OVERLINE_NONE]
--   
--   
- [constgtk.ACCESSIBLE_ATTRIBUTE_OVERLINE_SINGLE]
--   
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_OVERLINE :: Text

-- | An attribute for the foreground color, expressed as an RGB value
--   encoded in a string using the format: {r8},{g8},{b8}.
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_FOREGROUND :: Text

-- | An attribute for the font family name.
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_FAMILY :: Text

-- | An attribute for the background color, expressed as an RGB value
--   encoded in a string using the format: {r8},{g8},{b8}.
--   
--   Since: 4.14
pattern ACCESSIBLE_ATTRIBUTE_BACKGROUND :: Text

module GI.Gtk.Enums

-- | The priority of an accessibility announcement.
--   
--   Since: 4.14
data AccessibleAnnouncementPriority

-- | The announcement is low priority, and might be read only on the user's
--   request.
AccessibleAnnouncementPriorityLow :: AccessibleAnnouncementPriority

-- | The announcement is of medium priority, and is usually spoken at the
--   next opportunity, such as at the end of speaking the current sentence
--   or when the user pauses typing.
AccessibleAnnouncementPriorityMedium :: AccessibleAnnouncementPriority

-- | The announcement is of high priority, and is usually spoken
--   immediately. Because an interruption might disorient users or cause
--   them to not complete their current task, authors SHOULD NOT use high
--   priority announcements unless the interruption is imperative. An
--   example would be a notification about a critical battery power level.
AccessibleAnnouncementPriorityHigh :: AccessibleAnnouncementPriority

-- | Catch-all for unknown values
AnotherAccessibleAnnouncementPriority :: Int -> AccessibleAnnouncementPriority

-- | The possible values for the AccessiblePropertyAutocomplete
--   accessible property.
data AccessibleAutocomplete

-- | Automatic suggestions are not displayed.
AccessibleAutocompleteNone :: AccessibleAutocomplete

-- | When a user is providing input, text suggesting one way to complete
--   the provided input may be dynamically inserted after the caret.
AccessibleAutocompleteInline :: AccessibleAutocomplete

-- | When a user is providing input, an element containing a collection of
--   values that could complete the provided input may be displayed.
AccessibleAutocompleteList :: AccessibleAutocomplete

-- | When a user is providing input, an element containing a collection of
--   values that could complete the provided input may be displayed. If
--   displayed, one value in the collection is automatically selected, and
--   the text needed to complete the automatically selected value appears
--   after the caret in the input.
AccessibleAutocompleteBoth :: AccessibleAutocomplete

-- | Catch-all for unknown values
AnotherAccessibleAutocomplete :: Int -> AccessibleAutocomplete

-- | The possible values for the AccessibleStateInvalid accessible
--   state.
--   
--   Note that the AccessibleInvalidStateFalse and
--   AccessibleInvalidStateTrue have the same values as False
--   and True.
data AccessibleInvalidState

-- | There are no detected errors in the value
AccessibleInvalidStateFalse :: AccessibleInvalidState

-- | The value entered by the user has failed validation
AccessibleInvalidStateTrue :: AccessibleInvalidState

-- | A grammatical error was detected
AccessibleInvalidStateGrammar :: AccessibleInvalidState

-- | A spelling error was detected
AccessibleInvalidStateSpelling :: AccessibleInvalidState

-- | Catch-all for unknown values
AnotherAccessibleInvalidState :: Int -> AccessibleInvalidState

-- | The various platform states which can be queried using
--   accessibleGetPlatformState.
--   
--   Since: 4.10
data AccessiblePlatformState

-- | whether the accessible can be focused
AccessiblePlatformStateFocusable :: AccessiblePlatformState

-- | whether the accessible has focus
AccessiblePlatformStateFocused :: AccessiblePlatformState

-- | whether the accessible is active
AccessiblePlatformStateActive :: AccessiblePlatformState

-- | Catch-all for unknown values
AnotherAccessiblePlatformState :: Int -> AccessiblePlatformState

-- | The possible accessible properties of a
--   [ifaceaccessible].
data AccessibleProperty

-- | Indicates whether inputting text could trigger display of one or more
--   predictions of the user's intended value for a combobox, searchbox, or
--   textbox and specifies how predictions would be presented if they were
--   made. Value type: [enumaccessibleAutocomplete]
AccessiblePropertyAutocomplete :: AccessibleProperty

-- | Defines a string value that describes or annotates the current
--   element. Value type: string
AccessiblePropertyDescription :: AccessibleProperty

-- | Indicates the availability of interactive popup element, such as menu
--   or popover, that can be triggered by an element. Contrary to
--   “aria-haspopup”, it doesn't indicate the type of the element, as such
--   it cannot be used to indicate the availability of more complex
--   elements such as dialog. Value type: boolean
AccessiblePropertyHasPopup :: AccessibleProperty

-- | Indicates keyboard shortcuts that an author has implemented to
--   activate or give focus to an element. Value type: string. The format
--   of the value is a space-separated list of shortcuts, with each
--   shortcut consisting of one or more modifiers (Control,
--   Alt or Shift), followed by a non-modifier key, all
--   separated by +. The WAI-ARIA reference specifies how
--   to build keyboard shortcuts strings, with specific values for each key
--   which are the same regardless of the language, so these strings can't
--   be built from localized key names. You can convert an accelerator into
--   the matching key shortcuts label with
--   acceleratorGetAccessibleLabel. Examples: F2,
--   Alt+F, Control+Shift+N
AccessiblePropertyKeyShortcuts :: AccessibleProperty

-- | Defines a string value that labels the current element. Value type:
--   string
AccessiblePropertyLabel :: AccessibleProperty

-- | Defines the hierarchical level of an element within a structure. Value
--   type: integer
AccessiblePropertyLevel :: AccessibleProperty

-- | Indicates whether an element is modal when displayed. Value type:
--   boolean
AccessiblePropertyModal :: AccessibleProperty

-- | Indicates whether a text box accepts multiple lines of input or only a
--   single line. Value type: boolean
AccessiblePropertyMultiLine :: AccessibleProperty

-- | Indicates that the user may select more than one item from the current
--   selectable descendants. Value type: boolean
AccessiblePropertyMultiSelectable :: AccessibleProperty

-- | Indicates whether the element's orientation is horizontal, vertical,
--   or unknown/ambiguous. Value type: [enumorientation]
AccessiblePropertyOrientation :: AccessibleProperty

-- | Defines a short hint (a word or short phrase) intended to aid the user
--   with data entry when the control has no value. A hint could be a
--   sample value or a brief description of the expected format. Value
--   type: string
AccessiblePropertyPlaceholder :: AccessibleProperty

-- | Indicates that the element is not editable, but is otherwise operable.
--   Value type: boolean
AccessiblePropertyReadOnly :: AccessibleProperty

-- | Indicates that user input is required on the element before a form may
--   be submitted. Value type: boolean
AccessiblePropertyRequired :: AccessibleProperty

-- | Defines a human-readable, author-localized description for the role of
--   an element. Value type: string
AccessiblePropertyRoleDescription :: AccessibleProperty

-- | Indicates if items in a table or grid are sorted in ascending or
--   descending order. Value type: [enumaccessibleSort]
AccessiblePropertySort :: AccessibleProperty

-- | Defines the maximum allowed value for a range widget. Value type:
--   double
AccessiblePropertyValueMax :: AccessibleProperty

-- | Defines the minimum allowed value for a range widget. Value type:
--   double
AccessiblePropertyValueMin :: AccessibleProperty

-- | Defines the current value for a range widget. Value type: double
AccessiblePropertyValueNow :: AccessibleProperty

-- | Defines the human readable text alternative of
--   AccessiblePropertyValueNow for a range widget. Value type:
--   string
AccessiblePropertyValueText :: AccessibleProperty

-- | Defines a string value that provides a description of non-standard
--   keyboard interactions of the current element. Value type: string
--   
--   Since: 4.16
AccessiblePropertyHelpText :: AccessibleProperty

-- | Catch-all for unknown values
AnotherAccessibleProperty :: Int -> AccessibleProperty

-- | The possible accessible relations of a
--   [ifaceaccessible].
--   
--   Accessible relations can be references to other widgets, integers or
--   strings.
data AccessibleRelation

-- | Identifies the currently active element when focus is on a composite
--   widget, combobox, textbox, group, or application. Value type:
--   reference
AccessibleRelationActiveDescendant :: AccessibleRelation

-- | Defines the total number of columns in a table, grid, or treegrid.
--   Value type: integer
AccessibleRelationColCount :: AccessibleRelation

-- | Defines an element's column index or position with respect to the
--   total number of columns within a table, grid, or treegrid. Value type:
--   integer
AccessibleRelationColIndex :: AccessibleRelation

-- | Defines a human readable text alternative of
--   AccessibleRelationColIndex. Value type: string
AccessibleRelationColIndexText :: AccessibleRelation

-- | Defines the number of columns spanned by a cell or gridcell within a
--   table, grid, or treegrid. Value type: integer
AccessibleRelationColSpan :: AccessibleRelation

-- | Identifies the element (or elements) whose contents or presence are
--   controlled by the current element. Value type: reference
AccessibleRelationControls :: AccessibleRelation

-- | Identifies the element (or elements) that describes the object. Value
--   type: reference
AccessibleRelationDescribedBy :: AccessibleRelation

-- | Identifies the element (or elements) that provide additional
--   information related to the object. Value type: reference
AccessibleRelationDetails :: AccessibleRelation

-- | Identifies the element (or elements) that provide an error message for
--   an object. Value type: reference
AccessibleRelationErrorMessage :: AccessibleRelation

-- | Identifies the next element (or elements) in an alternate reading
--   order of content which, at the user's discretion, allows assistive
--   technology to override the general default of reading in document
--   source order. Value type: reference
AccessibleRelationFlowTo :: AccessibleRelation

-- | Identifies the element (or elements) that labels the current element.
--   Value type: reference
AccessibleRelationLabelledBy :: AccessibleRelation

-- | Identifies an element (or elements) in order to define a visual,
--   functional, or contextual parent/child relationship between elements
--   where the widget hierarchy cannot be used to represent the
--   relationship. Value type: reference
AccessibleRelationOwns :: AccessibleRelation

-- | Defines an element's number or position in the current set of
--   listitems or treeitems. Value type: integer
AccessibleRelationPosInSet :: AccessibleRelation

-- | Defines the total number of rows in a table, grid, or treegrid. Value
--   type: integer
AccessibleRelationRowCount :: AccessibleRelation

-- | Defines an element's row index or position with respect to the total
--   number of rows within a table, grid, or treegrid. Value type: integer
AccessibleRelationRowIndex :: AccessibleRelation

-- | Defines a human readable text alternative of
--   AccessibleRelationRowIndex. Value type: string
AccessibleRelationRowIndexText :: AccessibleRelation

-- | Defines the number of rows spanned by a cell or gridcell within a
--   table, grid, or treegrid. Value type: integer
AccessibleRelationRowSpan :: AccessibleRelation

-- | Defines the number of items in the current set of listitems or
--   treeitems. Value type: integer
AccessibleRelationSetSize :: AccessibleRelation

-- | Identifies the element (or elements) that are labeled by the current
--   element. Value type: reference
--   
--   This relation is managed by GTK and should not be set from application
--   code.
--   
--   Since: 4.18
AccessibleRelationLabelFor :: AccessibleRelation

-- | Identifies the element (or elements) that are described by the current
--   element. Value type: reference
--   
--   This relation is managed by GTK and should not be set from application
--   code.
--   
--   Since: 4.18
AccessibleRelationDescriptionFor :: AccessibleRelation

-- | Identifies the element (or elements) that the current element is
--   controlled by. Value type: reference
--   
--   This relation is managed by GTK and should not be set from application
--   code.
--   
--   Since: 4.18
AccessibleRelationControlledBy :: AccessibleRelation

-- | Identifies the element (or elements) for which the current element
--   provides additional information. Value type: reference
--   
--   This relation is managed by GTK and should not be set from application
--   code.
--   
--   Since: 4.18
AccessibleRelationDetailsFor :: AccessibleRelation

-- | Identifies the element (or elements) for which the current element
--   provides an error message. Value type: reference
--   
--   This relation is managed by GTK and should not be set from application
--   code.
--   
--   Since: 4.18
AccessibleRelationErrorMessageFor :: AccessibleRelation

-- | Identifies the previous element (or elements) in an alternate reading
--   order of content which, at the user's discretion, allows assistive
--   technology to override the general default of reading in document
--   source order. Value type: reference
--   
--   This relation is managed by GTK and should not be set from application
--   code.
--   
--   Since: 4.18
AccessibleRelationFlowFrom :: AccessibleRelation

-- | Catch-all for unknown values
AnotherAccessibleRelation :: Int -> AccessibleRelation

-- | The accessible role for a [ifaceaccessible]
--   implementation.
--   
--   Abstract roles are only used as part of the ontology; application
--   developers must not use abstract roles in their code.
data AccessibleRole

-- | An element with important, and usually time-sensitive, information
AccessibleRoleAlert :: AccessibleRole

-- | A type of dialog that contains an alert message
AccessibleRoleAlertDialog :: AccessibleRole

-- | Unused
AccessibleRoleBanner :: AccessibleRole

-- | An input element that allows for user-triggered actions when clicked
--   or pressed
AccessibleRoleButton :: AccessibleRole

-- | Unused
AccessibleRoleCaption :: AccessibleRole

-- | Unused
AccessibleRoleCell :: AccessibleRole

-- | A checkable input element that has three possible values:
--   true, false, or mixed
AccessibleRoleCheckbox :: AccessibleRole

-- | A header in a columned list.
AccessibleRoleColumnHeader :: AccessibleRole

-- | An input that controls another element, such as a list or a grid, that
--   can dynamically pop up to help the user set the value of the input
AccessibleRoleComboBox :: AccessibleRole

-- | Abstract role.
AccessibleRoleCommand :: AccessibleRole

-- | Abstract role.
AccessibleRoleComposite :: AccessibleRole

-- | A dialog is a window that is designed to interrupt the current
--   processing of an application in order to prompt the user to enter
--   information or require a response.
AccessibleRoleDialog :: AccessibleRole

-- | Content that assistive technology users may want to browse in a
--   reading mode.
AccessibleRoleDocument :: AccessibleRole

-- | Unused
AccessibleRoleFeed :: AccessibleRole

-- | Unused
AccessibleRoleForm :: AccessibleRole

-- | A nameless container that has no semantic meaning of its own. This is
--   the role that GTK uses by default for widgets.
AccessibleRoleGeneric :: AccessibleRole

-- | A grid of items.
AccessibleRoleGrid :: AccessibleRole

-- | An item in a grid or tree grid.
AccessibleRoleGridCell :: AccessibleRole

-- | An element that groups multiple related widgets. GTK uses this role
--   for various containers, like HeaderBar or Notebook.
AccessibleRoleGroup :: AccessibleRole

-- | Unused
AccessibleRoleHeading :: AccessibleRole

-- | An image.
AccessibleRoleImg :: AccessibleRole

-- | Abstract role.
AccessibleRoleInput :: AccessibleRole

-- | A visible name or caption for a user interface component.
AccessibleRoleLabel :: AccessibleRole

-- | Abstract role.
AccessibleRoleLandmark :: AccessibleRole

-- | Unused
AccessibleRoleLegend :: AccessibleRole

-- | A clickable link.
AccessibleRoleLink :: AccessibleRole

-- | A list of items.
AccessibleRoleList :: AccessibleRole

-- | Unused.
AccessibleRoleListBox :: AccessibleRole

-- | An item in a list.
AccessibleRoleListItem :: AccessibleRole

-- | Unused
AccessibleRoleLog :: AccessibleRole

-- | Unused
AccessibleRoleMain :: AccessibleRole

-- | Unused
AccessibleRoleMarquee :: AccessibleRole

-- | Unused
AccessibleRoleMath :: AccessibleRole

-- | An element that represents a value within a known range.
AccessibleRoleMeter :: AccessibleRole

-- | A menu.
AccessibleRoleMenu :: AccessibleRole

-- | A menubar.
AccessibleRoleMenuBar :: AccessibleRole

-- | An item in a menu.
AccessibleRoleMenuItem :: AccessibleRole

-- | A check item in a menu.
AccessibleRoleMenuItemCheckbox :: AccessibleRole

-- | A radio item in a menu.
AccessibleRoleMenuItemRadio :: AccessibleRole

-- | Unused
AccessibleRoleNavigation :: AccessibleRole

-- | An element that is not represented to accessibility technologies. This
--   role is synonymous to gTKACCESSIBLEROLEPRESENTATION.
AccessibleRoleNone :: AccessibleRole

-- | Unused
AccessibleRoleNote :: AccessibleRole

-- | Unused
AccessibleRoleOption :: AccessibleRole

-- | An element that is not represented to accessibility technologies. This
--   role is synonymous to gTKACCESSIBLEROLENONE.
AccessibleRolePresentation :: AccessibleRole

-- | An element that displays the progress status for tasks that take a
--   long time.
AccessibleRoleProgressBar :: AccessibleRole

-- | A checkable input in a group of radio roles, only one of which can be
--   checked at a time.
AccessibleRoleRadio :: AccessibleRole

-- | Unused
AccessibleRoleRadioGroup :: AccessibleRole

-- | Abstract role.
AccessibleRoleRange :: AccessibleRole

-- | Unused
AccessibleRoleRegion :: AccessibleRole

-- | A row in a columned list.
AccessibleRoleRow :: AccessibleRole

-- | Unused
AccessibleRoleRowGroup :: AccessibleRole

-- | Unused
AccessibleRoleRowHeader :: AccessibleRole

-- | A graphical object that controls the scrolling of content within a
--   viewing area, regardless of whether the content is fully displayed
--   within the viewing area.
AccessibleRoleScrollbar :: AccessibleRole

-- | Unused
AccessibleRoleSearch :: AccessibleRole

-- | A type of textbox intended for specifying search criteria.
AccessibleRoleSearchBox :: AccessibleRole

-- | Abstract role.
AccessibleRoleSection :: AccessibleRole

-- | Abstract role.
AccessibleRoleSectionHead :: AccessibleRole

-- | Abstract role.
AccessibleRoleSelect :: AccessibleRole

-- | A divider that separates and distinguishes sections of content or
--   groups of menuitems.
AccessibleRoleSeparator :: AccessibleRole

-- | A user input where the user selects a value from within a given range.
AccessibleRoleSlider :: AccessibleRole

-- | A form of range that expects the user to select from among discrete
--   choices.
AccessibleRoleSpinButton :: AccessibleRole

-- | Unused
AccessibleRoleStatus :: AccessibleRole

-- | Abstract role.
AccessibleRoleStructure :: AccessibleRole

-- | A type of checkbox that represents on/off values, as opposed to
--   checked/unchecked values.
AccessibleRoleSwitch :: AccessibleRole

-- | An item in a list of tab used for switching pages.
AccessibleRoleTab :: AccessibleRole

-- | Unused
AccessibleRoleTable :: AccessibleRole

-- | A list of tabs for switching pages.
AccessibleRoleTabList :: AccessibleRole

-- | A page in a notebook or stack.
AccessibleRoleTabPanel :: AccessibleRole

-- | A type of input that allows free-form text as its value.
AccessibleRoleTextBox :: AccessibleRole

-- | Unused
AccessibleRoleTime :: AccessibleRole

-- | Unused
AccessibleRoleTimer :: AccessibleRole

-- | Unused
AccessibleRoleToolbar :: AccessibleRole

-- | Unused
AccessibleRoleTooltip :: AccessibleRole

-- | Unused
AccessibleRoleTree :: AccessibleRole

-- | A treeview-like, columned list.
AccessibleRoleTreeGrid :: AccessibleRole

-- | Unused
AccessibleRoleTreeItem :: AccessibleRole

-- | Abstract role for interactive components of a graphical user interface
AccessibleRoleWidget :: AccessibleRole

-- | Abstract role for windows.
AccessibleRoleWindow :: AccessibleRole

-- | A type of push button which stays pressed until depressed by a second
--   activation.
--   
--   Since: 4.10
AccessibleRoleToggleButton :: AccessibleRole

-- | A toplevel element of a graphical user interface.
--   
--   This is the role that GTK uses by default for windows.
--   
--   Since: 4.12
AccessibleRoleApplication :: AccessibleRole

-- | A paragraph of content.
--   
--   Since: 4.14
AccessibleRoleParagraph :: AccessibleRole

-- | A section of content that is quoted from another source.
--   
--   Since: 4.14
AccessibleRoleBlockQuote :: AccessibleRole

-- | A section of a page that consists of a composition that forms an
--   independent part of a document, page, or site.
--   
--   Since: 4.14
AccessibleRoleArticle :: AccessibleRole

-- | A comment contains content expressing reaction to other content.
--   
--   Since: 4.14
AccessibleRoleComment :: AccessibleRole

-- | A virtual terminal.
--   
--   Since: 4.14
AccessibleRoleTerminal :: AccessibleRole

-- | Catch-all for unknown values
AnotherAccessibleRole :: Int -> AccessibleRole

-- | The possible values for the AccessiblePropertySort accessible
--   property.
data AccessibleSort

-- | There is no defined sort applied to the column.
AccessibleSortNone :: AccessibleSort

-- | Items are sorted in ascending order by this column.
AccessibleSortAscending :: AccessibleSort

-- | Items are sorted in descending order by this column.
AccessibleSortDescending :: AccessibleSort

-- | A sort algorithm other than ascending or descending has been applied.
AccessibleSortOther :: AccessibleSort

-- | Catch-all for unknown values
AnotherAccessibleSort :: Int -> AccessibleSort

-- | The possible accessible states of a [ifaceaccessible].
data AccessibleState

-- | A “busy” state. This state has boolean values
AccessibleStateBusy :: AccessibleState

-- | A “checked” state; indicates the current state of a
--   [classcheckButton]. Value type:
--   [enumaccessibleTristate]
AccessibleStateChecked :: AccessibleState

-- | A “disabled” state; corresponds to the
--   [propertywidget:sensitive] property. It indicates a UI
--   element that is perceivable, but not editable or operable. Value type:
--   boolean
AccessibleStateDisabled :: AccessibleState

-- | An “expanded” state; corresponds to the
--   [propertyexpander:expanded] property. Value type:
--   boolean or undefined
AccessibleStateExpanded :: AccessibleState

-- | A “hidden” state; corresponds to the
--   [propertywidget:visible] property. You can use this
--   state explicitly on UI elements that should not be exposed to an
--   assistive technology. Value type: boolean See also:
--   AccessibleStateDisabled
AccessibleStateHidden :: AccessibleState

-- | An “invalid” state; set when a widget is showing an error. Value type:
--   [enumaccessibleInvalidState]
AccessibleStateInvalid :: AccessibleState

-- | A “pressed” state; indicates the current state of a
--   [classtoggleButton]. Value type:
--   [enumaccessibleTristate] enumeration
AccessibleStatePressed :: AccessibleState

-- | A “selected” state; set when a widget is selected. Value type: boolean
--   or undefined
AccessibleStateSelected :: AccessibleState

-- | Indicates that a widget with the GTK_ACCESSIBLE_ROLE_LINK has been
--   visited. Value type: boolean.
--   
--   Since: 4.12
AccessibleStateVisited :: AccessibleState

-- | Catch-all for unknown values
AnotherAccessibleState :: Int -> AccessibleState

-- | The type of contents change operation.
--   
--   Since: 4.14
data AccessibleTextContentChange

-- | contents change as the result of an insert operation
AccessibleTextContentChangeInsert :: AccessibleTextContentChange

-- | contents change as the result of a remove operation
AccessibleTextContentChangeRemove :: AccessibleTextContentChange

-- | Catch-all for unknown values
AnotherAccessibleTextContentChange :: Int -> AccessibleTextContentChange

-- | The granularity for queries about the text contents of a
--   AccessibleText implementation.
--   
--   Since: 4.14
data AccessibleTextGranularity

-- | Use the boundary between characters (including non-printing
--   characters)
AccessibleTextGranularityCharacter :: AccessibleTextGranularity

-- | Use the boundary between words, starting from the beginning of the
--   current word and ending at the beginning of the next word
AccessibleTextGranularityWord :: AccessibleTextGranularity

-- | Use the boundary between sentences, starting from the beginning of the
--   current sentence and ending at the beginning of the next sentence
AccessibleTextGranularitySentence :: AccessibleTextGranularity

-- | Use the boundary between lines, starting from the beginning of the
--   current line and ending at the beginning of the next line
AccessibleTextGranularityLine :: AccessibleTextGranularity

-- | Use the boundary between paragraphs, starting from the beginning of
--   the current paragraph and ending at the beginning of the next
--   paragraph
AccessibleTextGranularityParagraph :: AccessibleTextGranularity

-- | Catch-all for unknown values
AnotherAccessibleTextGranularity :: Int -> AccessibleTextGranularity

-- | The possible values for the AccessibleStatePressed accessible
--   state.
--   
--   Note that the AccessibleTristateFalse and
--   AccessibleTristateTrue have the same values as False and
--   True.
data AccessibleTristate

-- | The state is false
AccessibleTristateFalse :: AccessibleTristate

-- | The state is true
AccessibleTristateTrue :: AccessibleTristate

-- | The state is mixed
AccessibleTristateMixed :: AccessibleTristate

-- | Catch-all for unknown values
AnotherAccessibleTristate :: Int -> AccessibleTristate

-- | Controls how a widget deals with extra space in a single dimension.
--   
--   Alignment only matters if the widget receives a “too large”
--   allocation, for example if you packed the widget with the
--   Widget:hexpand property inside a [classbox],
--   then the widget might get extra space. If you have for example a 16x16
--   icon inside a 32x32 space, the icon could be scaled and stretched, it
--   could be centered, or it could be positioned to one side of the space.
--   
--   Note that in horizontal context GTK_ALIGN_START and
--   GTK_ALIGN_END are interpreted relative to text direction.
--   
--   Baseline support is optional for containers and widgets, and is only
--   available for vertical alignment. GTK_ALIGN_BASELINE_CENTER
--   and GTK_ALIGN_BASELINE_FILL are treated similar to
--   GTK_ALIGN_CENTER and GTK_ALIGN_FILL, except that it
--   positions the widget to line up the baselines, where that is
--   supported.
data Align

-- | stretch to fill all space if possible, center if no meaningful way to
--   stretch
AlignFill :: Align

-- | snap to left or top side, leaving space on right or bottom
AlignStart :: Align

-- | snap to right or bottom side, leaving space on left or top
AlignEnd :: Align

-- | center natural width of widget inside the allocation
AlignCenter :: Align

-- | a different name for GTK_ALIGN_BASELINE.
--   
--   Since: 4.12
AlignBaselineFill :: Align

-- | align the widget according to the baseline.
AlignBaseline :: Align

-- | stretch to fill all space, but align the baseline.
--   
--   Since: 4.12
AlignBaselineCenter :: Align

-- | Catch-all for unknown values
AnotherAlign :: Int -> Align

-- | Indicates the direction in which an arrow should point.
data ArrowType

-- | Represents an upward pointing arrow.
ArrowTypeUp :: ArrowType

-- | Represents a downward pointing arrow.
ArrowTypeDown :: ArrowType

-- | Represents a left pointing arrow.
ArrowTypeLeft :: ArrowType

-- | Represents a right pointing arrow.
ArrowTypeRight :: ArrowType

-- | No arrow.
ArrowTypeNone :: ArrowType

-- | Catch-all for unknown values
AnotherArrowType :: Int -> ArrowType

-- | Determines the role of a page inside a GtkAssistant.
--   
--   The role is used to handle buttons sensitivity and visibility.
--   
--   Note that an assistant needs to end its page flow with a page of type
--   AssistantPageTypeConfirm, AssistantPageTypeSummary or
--   AssistantPageTypeProgress to be correct.
--   
--   The Cancel button will only be shown if the page isn’t “committed”.
--   See assistantCommit for details.

-- | Deprecated: (Since version 4.10)GtkAssistant will be
--   removed in GTK 5
data AssistantPageType

-- | The page has regular contents. Both the Back and forward buttons will
--   be shown.
AssistantPageTypeContent :: AssistantPageType

-- | The page contains an introduction to the assistant task. Only the
--   Forward button will be shown if there is a next page.
AssistantPageTypeIntro :: AssistantPageType

-- | The page lets the user confirm or deny the changes. The Back and Apply
--   buttons will be shown.
AssistantPageTypeConfirm :: AssistantPageType

-- | The page informs the user of the changes done. Only the Close button
--   will be shown.
AssistantPageTypeSummary :: AssistantPageType

-- | Used for tasks that take a long time to complete, blocks the assistant
--   until the page is marked as complete. Only the back button will be
--   shown.
AssistantPageTypeProgress :: AssistantPageType

-- | Used for when other page types are not appropriate. No buttons will be
--   shown, and the application must add its own buttons through
--   assistantAddActionWidget.
AssistantPageTypeCustom :: AssistantPageType

-- | Catch-all for unknown values
AnotherAssistantPageType :: Int -> AssistantPageType

-- | Baseline position in a row of widgets.
--   
--   Whenever a container has some form of natural row it may align
--   children in that row along a common typographical baseline. If the
--   amount of vertical space in the row is taller than the total requested
--   height of the baseline-aligned children then it can use a
--   GtkBaselinePosition to select where to put the baseline
--   inside the extra available space.
data BaselinePosition

-- | Align the baseline at the top
BaselinePositionTop :: BaselinePosition

-- | Center the baseline
BaselinePositionCenter :: BaselinePosition

-- | Align the baseline at the bottom
BaselinePositionBottom :: BaselinePosition

-- | Catch-all for unknown values
AnotherBaselinePosition :: Int -> BaselinePosition

-- | Describes how the border of a UI element should be rendered.
data BorderStyle

-- | No visible border
BorderStyleNone :: BorderStyle

-- | Same as BorderStyleNone
BorderStyleHidden :: BorderStyle

-- | A single line segment
BorderStyleSolid :: BorderStyle

-- | Looks as if the content is sunken into the canvas
BorderStyleInset :: BorderStyle

-- | Looks as if the content is coming out of the canvas
BorderStyleOutset :: BorderStyle

-- | A series of round dots
BorderStyleDotted :: BorderStyle

-- | A series of square-ended dashes
BorderStyleDashed :: BorderStyle

-- | Two parallel lines with some space between them
BorderStyleDouble :: BorderStyle

-- | Looks as if it were carved in the canvas
BorderStyleGroove :: BorderStyle

-- | Looks as if it were coming out of the canvas
BorderStyleRidge :: BorderStyle

-- | Catch-all for unknown values
AnotherBorderStyle :: Int -> BorderStyle

-- | Error codes that identify various errors that can occur while using
--   GtkBuilder.
data BuilderError

-- | A type-func attribute didn’t name a function that returns a
--   GType.
BuilderErrorInvalidTypeFunction :: BuilderError

-- | The input contained a tag that GtkBuilder can’t handle.
BuilderErrorUnhandledTag :: BuilderError

-- | An attribute that is required by GtkBuilder was missing.
BuilderErrorMissingAttribute :: BuilderError

-- | GtkBuilder found an attribute that it doesn’t understand.
BuilderErrorInvalidAttribute :: BuilderError

-- | GtkBuilder found a tag that it doesn’t understand.
BuilderErrorInvalidTag :: BuilderError

-- | A required property value was missing.
BuilderErrorMissingPropertyValue :: BuilderError

-- | GtkBuilder couldn’t parse some attribute value.
BuilderErrorInvalidValue :: BuilderError

-- | The input file requires a newer version of GTK.
BuilderErrorVersionMismatch :: BuilderError

-- | An object id occurred twice.
BuilderErrorDuplicateId :: BuilderError

-- | A specified object type is of the same type or derived from the type
--   of the composite class being extended with builder XML.
BuilderErrorObjectTypeRefused :: BuilderError

-- | The wrong type was specified in a composite class’s template XML
BuilderErrorTemplateMismatch :: BuilderError

-- | The specified property is unknown for the object class.
BuilderErrorInvalidProperty :: BuilderError

-- | The specified signal is unknown for the object class.
BuilderErrorInvalidSignal :: BuilderError

-- | An object id is unknown.
BuilderErrorInvalidId :: BuilderError

-- | A function could not be found. This often happens when symbols are set
--   to be kept private. Compiling code with -rdynamic or using the
--   gmodule-export-2.0 pkgconfig module can fix this problem.
BuilderErrorInvalidFunction :: BuilderError

-- | Catch-all for unknown values
AnotherBuilderError :: Int -> BuilderError

-- | Catch exceptions of type BuilderError. This is a specialized
--   version of catchGErrorJustDomain.
catchBuilderError :: IO a -> (BuilderError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type BuilderError. This is a specialized
--   version of handleGErrorJustDomain.
handleBuilderError :: (BuilderError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Prebuilt sets of buttons for GtkDialog.
--   
--   If none of these choices are appropriate, simply use
--   ButtonsTypeNone and call
--   Dialog.add_buttons().
--   
--   
--   Please note that 'GI.Gtk.Enums.ButtonsTypeOk', 'GI.Gtk.Enums.ButtonsTypeYesNo'
--   and 'GI.Gtk.Enums.ButtonsTypeOkCancel' are discouraged by the
--   <https://developer.gnome.org/hig/ GNOME Human Interface Guidelines>.
--   
data ButtonsType

-- | no buttons at all
ButtonsTypeNone :: ButtonsType

-- | an OK button
ButtonsTypeOk :: ButtonsType

-- | a Close button
ButtonsTypeClose :: ButtonsType

-- | a Cancel button
ButtonsTypeCancel :: ButtonsType

-- | Yes and No buttons
ButtonsTypeYesNo :: ButtonsType

-- | OK and Cancel buttons
ButtonsTypeOkCancel :: ButtonsType

-- | Catch-all for unknown values
AnotherButtonsType :: Int -> ButtonsType

-- | The available modes for CellRendererAccel:accelMode.

-- | Deprecated: (Since version 4.20)There is no replacement
data CellRendererAccelMode

-- | GTK accelerators mode
CellRendererAccelModeGtk :: CellRendererAccelMode

-- | Other accelerator mode
CellRendererAccelModeOther :: CellRendererAccelMode

-- | Catch-all for unknown values
AnotherCellRendererAccelMode :: Int -> CellRendererAccelMode

-- | Identifies how the user can interact with a particular cell.

-- | Deprecated: (Since version 4.20)There is no replacement.
data CellRendererMode

-- | The cell is just for display and cannot be interacted with. Note that
--   this doesn’t mean that eg. the row being drawn can’t be selected --
--   just that a particular element of it cannot be individually modified.
CellRendererModeInert :: CellRendererMode

-- | The cell can be clicked.
CellRendererModeActivatable :: CellRendererMode

-- | The cell can be edited or otherwise modified.
CellRendererModeEditable :: CellRendererMode

-- | Catch-all for unknown values
AnotherCellRendererMode :: Int -> CellRendererMode

-- | Describes how a StringSorter turns strings into sort keys to
--   compare them.
--   
--   Note that the result of sorting will in general depend on the current
--   locale unless the mode is gTKCOLLATIONNONE.
--   
--   Since: 4.10
data Collation

-- | Don't do any collation
CollationNone :: Collation

-- | Use utf8CollateKey
CollationUnicode :: Collation

-- | Use utf8CollateKeyForFilename
CollationFilename :: Collation

-- | Catch-all for unknown values
AnotherCollation :: Int -> Collation

-- | The widget attributes that can be used when creating a
--   [classconstraint].
data ConstraintAttribute

-- | No attribute, used for constant relations
ConstraintAttributeNone :: ConstraintAttribute

-- | The left edge of a widget, regardless of text direction
ConstraintAttributeLeft :: ConstraintAttribute

-- | The right edge of a widget, regardless of text direction
ConstraintAttributeRight :: ConstraintAttribute

-- | The top edge of a widget
ConstraintAttributeTop :: ConstraintAttribute

-- | The bottom edge of a widget
ConstraintAttributeBottom :: ConstraintAttribute

-- | The leading edge of a widget, depending on text direction; equivalent
--   to ConstraintAttributeLeft for LTR languages, and
--   ConstraintAttributeRight for RTL ones
ConstraintAttributeStart :: ConstraintAttribute

-- | The trailing edge of a widget, depending on text direction; equivalent
--   to ConstraintAttributeRight for LTR languages, and
--   ConstraintAttributeLeft for RTL ones
ConstraintAttributeEnd :: ConstraintAttribute

-- | The width of a widget
ConstraintAttributeWidth :: ConstraintAttribute

-- | The height of a widget
ConstraintAttributeHeight :: ConstraintAttribute

-- | The center of a widget, on the horizontal axis
ConstraintAttributeCenterX :: ConstraintAttribute

-- | The center of a widget, on the vertical axis
ConstraintAttributeCenterY :: ConstraintAttribute

-- | The baseline of a widget
ConstraintAttributeBaseline :: ConstraintAttribute

-- | Catch-all for unknown values
AnotherConstraintAttribute :: Int -> ConstraintAttribute

-- | The relation between two terms of a constraint.
data ConstraintRelation

-- | Less than, or equal
ConstraintRelationLe :: ConstraintRelation

-- | Equal
ConstraintRelationEq :: ConstraintRelation

-- | Greater than, or equal
ConstraintRelationGe :: ConstraintRelation

-- | Catch-all for unknown values
AnotherConstraintRelation :: Int -> ConstraintRelation

-- | The strength of a constraint, expressed as a symbolic constant.
--   
--   The strength of a [classconstraint] can be expressed
--   with any positive integer; the values of this enumeration can be used
--   for readability.
data ConstraintStrength

-- | The constraint is required towards solving the layout
ConstraintStrengthRequired :: ConstraintStrength

-- | A strong constraint
ConstraintStrengthStrong :: ConstraintStrength

-- | A medium constraint
ConstraintStrengthMedium :: ConstraintStrength

-- | A weak constraint
ConstraintStrengthWeak :: ConstraintStrength

-- | Catch-all for unknown values
AnotherConstraintStrength :: Int -> ConstraintStrength

-- | Domain for VFL parsing errors.
data ConstraintVflParserError

-- | Invalid or unknown symbol
ConstraintVflParserErrorInvalidSymbol :: ConstraintVflParserError

-- | Invalid or unknown attribute
ConstraintVflParserErrorInvalidAttribute :: ConstraintVflParserError

-- | Invalid or unknown view
ConstraintVflParserErrorInvalidView :: ConstraintVflParserError

-- | Invalid or unknown metric
ConstraintVflParserErrorInvalidMetric :: ConstraintVflParserError

-- | Invalid or unknown priority
ConstraintVflParserErrorInvalidPriority :: ConstraintVflParserError

-- | Invalid or unknown relation
ConstraintVflParserErrorInvalidRelation :: ConstraintVflParserError

-- | Catch-all for unknown values
AnotherConstraintVflParserError :: Int -> ConstraintVflParserError

-- | Catch exceptions of type ConstraintVflParserError. This is a
--   specialized version of catchGErrorJustDomain.
catchConstraintVflParserError :: IO a -> (ConstraintVflParserError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type ConstraintVflParserError. This is a
--   specialized version of handleGErrorJustDomain.
handleConstraintVflParserError :: (ConstraintVflParserError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Controls how a content should be made to fit inside an allocation.
--   
--   Since: 4.8
data ContentFit

-- | Make the content fill the entire allocation, without taking its aspect
--   ratio in consideration. The resulting content will appear as stretched
--   if its aspect ratio is different from the allocation aspect ratio.
ContentFitFill :: ContentFit

-- | Scale the content to fit the allocation, while taking its aspect ratio
--   in consideration. The resulting content will appear as letterboxed if
--   its aspect ratio is different from the allocation aspect ratio.
ContentFitContain :: ContentFit

-- | Cover the entire allocation, while taking the content aspect ratio in
--   consideration. The resulting content will appear as clipped if its
--   aspect ratio is different from the allocation aspect ratio.
ContentFitCover :: ContentFit

-- | The content is scaled down to fit the allocation, if needed, otherwise
--   its original size is used.
ContentFitScaleDown :: ContentFit

-- | Catch-all for unknown values
AnotherContentFit :: Int -> ContentFit

-- | Specifies which corner a child widget should be placed in when packed
--   into a GtkScrolledWindow.
--   
--   This is effectively the opposite of where the scroll bars are placed.
data CornerType

-- | Place the scrollbars on the right and bottom of the widget (default
--   behaviour).
CornerTypeTopLeft :: CornerType

-- | Place the scrollbars on the top and right of the widget.
CornerTypeBottomLeft :: CornerType

-- | Place the scrollbars on the left and bottom of the widget.
CornerTypeTopRight :: CornerType

-- | Place the scrollbars on the top and left of the widget.
CornerTypeBottomRight :: CornerType

-- | Catch-all for unknown values
AnotherCornerType :: Int -> CornerType

-- | Errors that can occur while parsing CSS.
--   
--   These errors are unexpected and will cause parts of the given CSS to
--   be ignored.
data CssParserError

-- | Unknown failure.
CssParserErrorFailed :: CssParserError

-- | The given text does not form valid syntax
CssParserErrorSyntax :: CssParserError

-- | Failed to import a resource
CssParserErrorImport :: CssParserError

-- | The given name has not been defined
CssParserErrorName :: CssParserError

-- | The given value is not correct
CssParserErrorUnknownValue :: CssParserError

-- | Catch-all for unknown values
AnotherCssParserError :: Int -> CssParserError

-- | Catch exceptions of type CssParserError. This is a specialized
--   version of catchGErrorJustDomain.
catchCssParserError :: IO a -> (CssParserError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type CssParserError. This is a specialized
--   version of handleGErrorJustDomain.
handleCssParserError :: (CssParserError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Warnings that can occur while parsing CSS.
--   
--   Unlike GtkCssParserErrors, warnings do not cause the parser
--   to skip any input, but they indicate issues that should be fixed.
data CssParserWarning

-- | The given construct is deprecated and will be removed in a future
--   version
CssParserWarningDeprecated :: CssParserWarning

-- | A syntax construct was used that should be avoided
CssParserWarningSyntax :: CssParserWarning

-- | A feature is not implemented
CssParserWarningUnimplemented :: CssParserWarning

-- | Catch-all for unknown values
AnotherCssParserWarning :: Int -> CssParserWarning

-- | Passed to various keybinding signals for deleting text.
data DeleteType

-- | Delete characters.
DeleteTypeChars :: DeleteType

-- | Delete only the portion of the word to the left/right of cursor if
--   we’re in the middle of a word.
DeleteTypeWordEnds :: DeleteType

-- | Delete words.
DeleteTypeWords :: DeleteType

-- | Delete display-lines. Display-lines refers to the visible lines, with
--   respect to the current line breaks. As opposed to paragraphs, which
--   are defined by line breaks in the input.
DeleteTypeDisplayLines :: DeleteType

-- | Delete only the portion of the display-line to the left/right of
--   cursor.
DeleteTypeDisplayLineEnds :: DeleteType

-- | Delete to the end of the paragraph. Like C-k in Emacs (or its
--   reverse).
DeleteTypeParagraphEnds :: DeleteType

-- | Delete entire line. Like C-k in pico.
DeleteTypeParagraphs :: DeleteType

-- | Delete only whitespace. Like M-\ in Emacs.
DeleteTypeWhitespace :: DeleteType

-- | Catch-all for unknown values
AnotherDeleteType :: Int -> DeleteType

-- | Error codes in the GTK_DIALOG_ERROR domain that can be
--   returned by async dialog functions.
--   
--   Since: 4.10
data DialogError

-- | Generic error condition for when an operation fails and no more
--   specific code is applicable
DialogErrorFailed :: DialogError

-- | The async function call was cancelled via its GCancellable
DialogErrorCancelled :: DialogError

-- | The operation was cancelled by the user (via a Cancel or Close button)
DialogErrorDismissed :: DialogError

-- | Catch-all for unknown values
AnotherDialogError :: Int -> DialogError

-- | Catch exceptions of type DialogError. This is a specialized
--   version of catchGErrorJustDomain.
catchDialogError :: IO a -> (DialogError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type DialogError. This is a specialized
--   version of handleGErrorJustDomain.
handleDialogError :: (DialogError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Focus movement types.
data DirectionType

-- | Move forward.
DirectionTypeTabForward :: DirectionType

-- | Move backward.
DirectionTypeTabBackward :: DirectionType

-- | Move up.
DirectionTypeUp :: DirectionType

-- | Move down.
DirectionTypeDown :: DirectionType

-- | Move left.
DirectionTypeLeft :: DirectionType

-- | Move right.
DirectionTypeRight :: DirectionType

-- | Catch-all for unknown values
AnotherDirectionType :: Int -> DirectionType

-- | The identifiers for Editable properties.
--   
--   See editableInstallProperties for details on how to implement
--   the GtkEditable interface.
data EditableProperties

-- | the property id for Editable:text
EditablePropertiesPropText :: EditableProperties

-- | the property id for Editable:cursorPosition
EditablePropertiesPropCursorPosition :: EditableProperties

-- | the property id for Editable:selectionBound
EditablePropertiesPropSelectionBound :: EditableProperties

-- | the property id for Editable:editable
EditablePropertiesPropEditable :: EditableProperties

-- | the property id for Editable:widthChars
EditablePropertiesPropWidthChars :: EditableProperties

-- | the property id for Editable:maxWidthChars
EditablePropertiesPropMaxWidthChars :: EditableProperties

-- | the property id for Editable:xalign
EditablePropertiesPropXalign :: EditableProperties

-- | the property id for Editable:enableUndo
EditablePropertiesPropEnableUndo :: EditableProperties

-- | the number of properties
EditablePropertiesNumProperties :: EditableProperties

-- | Catch-all for unknown values
AnotherEditableProperties :: Int -> EditableProperties

-- | Specifies the side of the entry at which an icon is placed.
data EntryIconPosition

-- | At the beginning of the entry (depending on the text direction).
EntryIconPositionPrimary :: EntryIconPosition

-- | At the end of the entry (depending on the text direction).
EntryIconPositionSecondary :: EntryIconPosition

-- | Catch-all for unknown values
AnotherEntryIconPosition :: Int -> EntryIconPosition

-- | Describes the state of a EventSequence in a
--   [classgesture].
data EventSequenceState

-- | The sequence is handled, but not grabbed.
EventSequenceStateNone :: EventSequenceState

-- | The sequence is handled and grabbed.
EventSequenceStateClaimed :: EventSequenceState

-- | The sequence is denied.
EventSequenceStateDenied :: EventSequenceState

-- | Catch-all for unknown values
AnotherEventSequenceState :: Int -> EventSequenceState

-- | Describes whether a GtkFileChooser is being used to open
--   existing files or to save to a possibly new file.
data FileChooserAction

-- | Indicates open mode. The file chooser will only let the user pick an
--   existing file.
FileChooserActionOpen :: FileChooserAction

-- | Indicates save mode. The file chooser will let the user pick an
--   existing file, or type in a new filename.
FileChooserActionSave :: FileChooserAction

-- | Indicates an Open mode for selecting folders. The file chooser will
--   let the user pick an existing folder.
FileChooserActionSelectFolder :: FileChooserAction

-- | Catch-all for unknown values
AnotherFileChooserAction :: Int -> FileChooserAction

-- | These identify the various errors that can occur while calling
--   GtkFileChooser functions.

-- | Deprecated: (Since version 4.20)There is no replacement
data FileChooserError

-- | Indicates that a file does not exist.
FileChooserErrorNonexistent :: FileChooserError

-- | Indicates a malformed filename.
FileChooserErrorBadFilename :: FileChooserError

-- | Indicates a duplicate path (e.g. when adding a bookmark).
FileChooserErrorAlreadyExists :: FileChooserError

-- | Indicates an incomplete hostname (e.g. "http://foo" without a slash
--   after that).
FileChooserErrorIncompleteHostname :: FileChooserError

-- | Catch-all for unknown values
AnotherFileChooserError :: Int -> FileChooserError

-- | Catch exceptions of type FileChooserError. This is a
--   specialized version of catchGErrorJustDomain.
catchFileChooserError :: IO a -> (FileChooserError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type FileChooserError. This is a
--   specialized version of handleGErrorJustDomain.
handleFileChooserError :: (FileChooserError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Describes changes in a filter in more detail and allows objects using
--   the filter to optimize refiltering items.
--   
--   If you are writing an implementation and are not sure which value to
--   pass, GTK_FILTER_CHANGE_DIFFERENT is always a correct choice.
--   
--   New values may be added in the future.
data FilterChange

-- | The filter change cannot be described with any of the other
--   enumeration values
FilterChangeDifferent :: FilterChange

-- | The filter is less strict than it was before: All items that it used
--   to return true still return true, others now may, too.
FilterChangeLessStrict :: FilterChange

-- | The filter is more strict than it was before: All items that it used
--   to return false still return false, others now may, too.
FilterChangeMoreStrict :: FilterChange

-- | Similar to FilterChangeDifferent, but signs that item watches
--   should be recreated. This is used by FilterListModel to keep
--   the list up-to-date when items change.
--   
--   Since: 4.20
FilterChangeDifferentRewatch :: FilterChange

-- | Similar to FilterChangeLessStrict, but signs that item watches
--   should be recreated. This is used by FilterListModel to keep
--   the list up-to-date when items change.
--   
--   Since: 4.20
FilterChangeLessStrictRewatch :: FilterChange

-- | Similar to FilterChangeMoreStrict, but signs that item watches
--   should be recreated. This is used by FilterListModel to keep
--   the list up-to-date when items change.
--   
--   Since: 4.20
FilterChangeMoreStrictRewatch :: FilterChange

-- | Catch-all for unknown values
AnotherFilterChange :: Int -> FilterChange

-- | Describes the known strictness of a filter.
--   
--   Note that for filters where the strictness is not known,
--   GTK_FILTER_MATCH_SOME is always an acceptable value, even if
--   a filter does match all or no items.
data FilterMatch

-- | The filter matches some items, filterMatch may return true or
--   false
FilterMatchSome :: FilterMatch

-- | The filter does not match any item, filterMatch will always
--   return false
FilterMatchNone :: FilterMatch

-- | The filter matches all items, filterMatch will alays return
--   true
FilterMatchAll :: FilterMatch

-- | Catch-all for unknown values
AnotherFilterMatch :: Int -> FilterMatch

-- | The level of granularity for the font selection.
--   
--   Depending on this value, the PangoFontDescription that is
--   returned by fontDialogButtonGetFontDesc will have more or less
--   fields set.
--   
--   Since: 4.10
data FontLevel

-- | Select a font family
FontLevelFamily :: FontLevel

-- | Select a font face (i.e. a family and a style)
FontLevelFace :: FontLevel

-- | Select a font (i.e. a face with a size, and possibly font variations)
FontLevelFont :: FontLevel

-- | Select a font and font features
FontLevelFeatures :: FontLevel

-- | Catch-all for unknown values
AnotherFontLevel :: Int -> FontLevel

-- | Values for the Settings:gtkFontRendering setting that influence
--   how GTK renders fonts.
--   
--   Since: 4.16
data FontRendering

-- | Set up font rendering automatically, taking factors like screen
--   resolution and scale into account
FontRenderingAutomatic :: FontRendering

-- | Follow low-level font-related settings when configuring font rendering
FontRenderingManual :: FontRendering

-- | Catch-all for unknown values
AnotherFontRendering :: Int -> FontRendering

-- | Represents the state of graphics offloading.
--   
--   Since: 4.14
data GraphicsOffloadEnabled

-- | Graphics offloading is enabled.
GraphicsOffloadEnabledEnabled :: GraphicsOffloadEnabled

-- | Graphics offloading is disabled.
GraphicsOffloadEnabledDisabled :: GraphicsOffloadEnabled

-- | Catch-all for unknown values
AnotherGraphicsOffloadEnabled :: Int -> GraphicsOffloadEnabled

-- | Built-in icon sizes.
--   
--   Icon sizes default to being inherited. Where they cannot be inherited,
--   text size is the default.
--   
--   All widgets which use GtkIconSize set the normal-icons or
--   large-icons style classes correspondingly, and let themes determine
--   the actual size to be used with the -gtk-icon-size CSS
--   property.
data IconSize

-- | Keep the size of the parent element
IconSizeInherit :: IconSize

-- | Size similar to text size
IconSizeNormal :: IconSize

-- | Large size, for example in an icon view
IconSizeLarge :: IconSize

-- | Catch-all for unknown values
AnotherIconSize :: Int -> IconSize

-- | Error codes for GtkIconTheme operations.
data IconThemeError

-- | The icon specified does not exist in the theme
IconThemeErrorNotFound :: IconThemeError

-- | An unspecified error occurred.
IconThemeErrorFailed :: IconThemeError

-- | Catch-all for unknown values
AnotherIconThemeError :: Int -> IconThemeError

-- | Catch exceptions of type IconThemeError. This is a specialized
--   version of catchGErrorJustDomain.
catchIconThemeError :: IO a -> (IconThemeError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type IconThemeError. This is a specialized
--   version of handleGErrorJustDomain.
handleIconThemeError :: (IconThemeError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | An enum for determining where a dropped item goes.

-- | Deprecated: (Since version 4.20)There is no replacement.
data IconViewDropPosition

-- | no drop possible
IconViewDropPositionNoDrop :: IconViewDropPosition

-- | dropped item replaces the item
IconViewDropPositionDropInto :: IconViewDropPosition

-- | dropped item is inserted to the left
IconViewDropPositionDropLeft :: IconViewDropPosition

-- | dropped item is inserted to the right
IconViewDropPositionDropRight :: IconViewDropPosition

-- | dropped item is inserted above
IconViewDropPositionDropAbove :: IconViewDropPosition

-- | dropped item is inserted below
IconViewDropPositionDropBelow :: IconViewDropPosition

-- | Catch-all for unknown values
AnotherIconViewDropPosition :: Int -> IconViewDropPosition

-- | Describes the image data representation used by a Image.
--   
--   If you want to get the image from the widget, you can only get the
--   currently-stored representation; for instance, if the
--   imageGetStorageType returns ImageTypePaintable, then you
--   can call imageGetPaintable.
--   
--   For empty images, you can request any storage type (call any of the
--   "get" functions), but they will all return Nothing values.
data ImageType

-- | there is no image displayed by the widget
ImageTypeEmpty :: ImageType

-- | the widget contains a named icon
ImageTypeIconName :: ImageType

-- | the widget contains a GIcon
ImageTypeGicon :: ImageType

-- | the widget contains a GdkPaintable
ImageTypePaintable :: ImageType

-- | Catch-all for unknown values
AnotherImageType :: Int -> ImageType

-- | Describes primary purpose of the input widget.
--   
--   This information is useful for on-screen keyboards and similar input
--   methods to decide which keys should be presented to the user.
--   
--   Note that the purpose is not meant to impose a totally strict rule
--   about allowed characters, and does not replace input validation. It is
--   fine for an on-screen keyboard to let the user override the character
--   set restriction that is expressed by the purpose. The application is
--   expected to validate the entry contents, even if it specified a
--   purpose.
--   
--   The difference between InputPurposeDigits and
--   InputPurposeNumber is that the former accepts only digits while
--   the latter also some punctuation (like commas or points, plus, minus)
--   and “e” or “E” as in 3.14E+000.
--   
--   This enumeration may be extended in the future; input methods should
--   interpret unknown values as “free form”.
data InputPurpose

-- | Allow any character
InputPurposeFreeForm :: InputPurpose

-- | Allow only alphabetic characters
InputPurposeAlpha :: InputPurpose

-- | Allow only digits
InputPurposeDigits :: InputPurpose

-- | Edited field expects numbers
InputPurposeNumber :: InputPurpose

-- | Edited field expects phone number
InputPurposePhone :: InputPurpose

-- | Edited field expects URL
InputPurposeUrl :: InputPurpose

-- | Edited field expects email address
InputPurposeEmail :: InputPurpose

-- | Edited field expects the name of a person
InputPurposeName :: InputPurpose

-- | Like InputPurposeFreeForm, but characters are hidden
InputPurposePassword :: InputPurpose

-- | Like InputPurposeDigits, but characters are hidden
InputPurposePin :: InputPurpose

-- | Allow any character, in addition to control codes
InputPurposeTerminal :: InputPurpose

-- | Catch-all for unknown values
AnotherInputPurpose :: Int -> InputPurpose

-- | The different methods to handle text in Inscription when it
--   doesn't fit the available space.
--   
--   Since: 4.8
data InscriptionOverflow

-- | Clip the remaining text
InscriptionOverflowClip :: InscriptionOverflow

-- | Omit characters at the start of the text
InscriptionOverflowEllipsizeStart :: InscriptionOverflow

-- | Omit characters at the middle of the text
InscriptionOverflowEllipsizeMiddle :: InscriptionOverflow

-- | Omit characters at the end of the text
InscriptionOverflowEllipsizeEnd :: InscriptionOverflow

-- | Catch-all for unknown values
AnotherInscriptionOverflow :: Int -> InscriptionOverflow

-- | Values for the Settings:gtkInterfaceColorScheme and
--   CssProvider:prefersColorScheme properties that indicates what
--   color scheme is used.
--   
--   This information can be used inside CSS via media queries.
--   
--   More values may be added to this enumeration. Unknown values should be
--   treated the same as GTK_INTERFACE_COLOR_SCHEME_DEFAULT.
--   
--   Since: 4.20
data InterfaceColorScheme

-- | The system doesn't support color schemes
InterfaceColorSchemeUnsupported :: InterfaceColorScheme

-- | The default color scheme is used
InterfaceColorSchemeDefault :: InterfaceColorScheme

-- | A dark color scheme is used
InterfaceColorSchemeDark :: InterfaceColorScheme

-- | A light color scheme is used
InterfaceColorSchemeLight :: InterfaceColorScheme

-- | Catch-all for unknown values
AnotherInterfaceColorScheme :: Int -> InterfaceColorScheme

-- | Values for the Settings:gtkInterfaceContrast and
--   CssProvider:prefersContrast properties that indicates the
--   preferred level of contrast.
--   
--   This information can be used inside CSS via media queries.
--   
--   More values may be added to this enumeration. Unknown values should be
--   treated the same as GTK_INTERFACE_CONTRAST_NO_PREFERENCE.
--   
--   Since: 4.20
data InterfaceContrast

-- | The system doesn't support contrast levels
InterfaceContrastUnsupported :: InterfaceContrast

-- | No particular preference for contrast
InterfaceContrastNoPreference :: InterfaceContrast

-- | More contrast is preferred
InterfaceContrastMore :: InterfaceContrast

-- | Less contrast is preferred
InterfaceContrastLess :: InterfaceContrast

-- | Catch-all for unknown values
AnotherInterfaceContrast :: Int -> InterfaceContrast

-- | Used for justifying the text inside a [classlabel]
--   widget.
data Justification

-- | The text is placed at the left edge of the label.
JustificationLeft :: Justification

-- | The text is placed at the right edge of the label.
JustificationRight :: Justification

-- | The text is placed in the center of the label.
JustificationCenter :: Justification

-- | The text is placed is distributed across the label.
JustificationFill :: Justification

-- | Catch-all for unknown values
AnotherJustification :: Int -> Justification

-- | Describes how [classlevelBar] contents should be
--   rendered.
--   
--   Note that this enumeration could be extended with additional modes in
--   the future.
data LevelBarMode

-- | the bar has a continuous mode
LevelBarModeContinuous :: LevelBarMode

-- | the bar has a discrete mode
LevelBarModeDiscrete :: LevelBarMode

-- | Catch-all for unknown values
AnotherLevelBarMode :: Int -> LevelBarMode

-- | The type of license for an application.
--   
--   This enumeration can be expanded at later date.
data License

-- | No license specified
LicenseUnknown :: License

-- | A license text is going to be specified by the developer
LicenseCustom :: License

-- | The GNU General Public License, version 2.0 or later
LicenseGpl20 :: License

-- | The GNU General Public License, version 3.0 or later
LicenseGpl30 :: License

-- | The GNU Lesser General Public License, version 2.1 or later
LicenseLgpl21 :: License

-- | The GNU Lesser General Public License, version 3.0 or later
LicenseLgpl30 :: License

-- | The BSD standard license
LicenseBsd :: License

-- | The MIT/X11 standard license
LicenseMitX11 :: License

-- | The Artistic License, version 2.0
LicenseArtistic :: License

-- | The GNU General Public License, version 2.0 only
LicenseGpl20Only :: License

-- | The GNU General Public License, version 3.0 only
LicenseGpl30Only :: License

-- | The GNU Lesser General Public License, version 2.1 only
LicenseLgpl21Only :: License

-- | The GNU Lesser General Public License, version 3.0 only
LicenseLgpl30Only :: License

-- | The GNU Affero General Public License, version 3.0 or later
LicenseAgpl30 :: License

-- | The GNU Affero General Public License, version 3.0 only
LicenseAgpl30Only :: License

-- | The 3-clause BSD licence
LicenseBsd3 :: License

-- | The Apache License, version 2.0
LicenseApache20 :: License

-- | The Mozilla Public License, version 2.0
LicenseMpl20 :: License

-- | Zero-Clause BSD license
License0bsd :: License

-- | Catch-all for unknown values
AnotherLicense :: Int -> License

-- | Used to configure the focus behavior in the
--   GTK_DIR_TAB_FORWARD and GTK_DIR_TAB_BACKWARD
--   direction, like the <kbd>Tab</kbd> key in a
--   ListView.
--   
--   Since: 4.12
data ListTabBehavior

-- | Cycle through all focusable items of the list
ListTabBehaviorAll :: ListTabBehavior

-- | Cycle through a single list element, then move focus out of the list.
--   Moving focus between items needs to be done with the arrow keys.
ListTabBehaviorItem :: ListTabBehavior

-- | Cycle only through a single cell, then move focus out of the list.
--   Moving focus between cells needs to be done with the arrow keys. This
--   is only relevant for cell-based widgets like ColumnView,
--   otherwise it behaves like GTK_LIST_TAB_ITEM.
ListTabBehaviorCell :: ListTabBehavior

-- | Catch-all for unknown values
AnotherListTabBehavior :: Int -> ListTabBehavior

-- | The type of message being displayed in a
--   [classmessageDialog].
data MessageType

-- | Informational message
MessageTypeInfo :: MessageType

-- | Non-fatal warning message
MessageTypeWarning :: MessageType

-- | Question requiring a choice
MessageTypeQuestion :: MessageType

-- | Fatal error message
MessageTypeError :: MessageType

-- | None of the above
MessageTypeOther :: MessageType

-- | Catch-all for unknown values
AnotherMessageType :: Int -> MessageType

-- | Passed as argument to various keybinding signals for moving the cursor
--   position.
data MovementStep

-- | Move forward or back by graphemes
MovementStepLogicalPositions :: MovementStep

-- | Move left or right by graphemes
MovementStepVisualPositions :: MovementStep

-- | Move forward or back by words
MovementStepWords :: MovementStep

-- | Move up or down lines (wrapped lines)
MovementStepDisplayLines :: MovementStep

-- | Move to either end of a line
MovementStepDisplayLineEnds :: MovementStep

-- | Move up or down paragraphs (newline-ended lines)
MovementStepParagraphs :: MovementStep

-- | Move to either end of a paragraph
MovementStepParagraphEnds :: MovementStep

-- | Move by pages
MovementStepPages :: MovementStep

-- | Move to ends of the buffer
MovementStepBufferEnds :: MovementStep

-- | Move horizontally by pages
MovementStepHorizontalPages :: MovementStep

-- | Catch-all for unknown values
AnotherMovementStep :: Int -> MovementStep

-- | Options for selecting a different wrap mode for natural size requests.
--   
--   See for example the Label:naturalWrapMode property.
--   
--   Since: 4.6
data NaturalWrapMode

-- | Inherit the minimum size request. In particular, this should be used
--   with WrapModeChar.
NaturalWrapModeInherit :: NaturalWrapMode

-- | Try not to wrap the text. This mode is the closest to GTK3's behavior
--   but can lead to a wide label leaving lots of empty space below the
--   text.
NaturalWrapModeNone :: NaturalWrapMode

-- | Attempt to wrap at word boundaries. This is useful in particular when
--   using WrapModeWordChar as the wrap mode.
NaturalWrapModeWord :: NaturalWrapMode

-- | Catch-all for unknown values
AnotherNaturalWrapMode :: Int -> NaturalWrapMode

-- | The parameter used in the action signals of GtkNotebook.
data NotebookTab

-- | the first tab in the notebook
NotebookTabFirst :: NotebookTab

-- | the last tab in the notebook
NotebookTabLast :: NotebookTab

-- | Catch-all for unknown values
AnotherNotebookTab :: Int -> NotebookTab

-- | Used to determine the layout of pages on a sheet when printing
--   multiple pages per sheet.
data NumberUpLayout

NumberUpLayoutLrtb :: NumberUpLayout

NumberUpLayoutLrbt :: NumberUpLayout

NumberUpLayoutRltb :: NumberUpLayout

NumberUpLayoutRlbt :: NumberUpLayout

NumberUpLayoutTblr :: NumberUpLayout

NumberUpLayoutTbrl :: NumberUpLayout

NumberUpLayoutBtlr :: NumberUpLayout

NumberUpLayoutBtrl :: NumberUpLayout

-- | Catch-all for unknown values
AnotherNumberUpLayout :: Int -> NumberUpLayout

-- | Describes the way two values can be compared.
--   
--   These values can be used with a
--   [callbackgLib.CompareFunc]. However, a
--   GCompareFunc is allowed to return any integer values. For
--   converting such a value to a GtkOrdering value, use
--   Ordering.from_cmpfunc().
data Ordering

-- | the first value is smaller than the second
OrderingSmaller :: Ordering

-- | the two values are equal
OrderingEqual :: Ordering

-- | the first value is larger than the second
OrderingLarger :: Ordering

-- | Catch-all for unknown values
AnotherOrdering :: Int -> Ordering

-- | Represents the orientation of widgets and other objects.
--   
--   Typical examples are [classbox] or
--   [classgesturePan].
data Orientation

-- | The element is in horizontal orientation.
OrientationHorizontal :: Orientation

-- | The element is in vertical orientation.
OrientationVertical :: Orientation

-- | Catch-all for unknown values
AnotherOrientation :: Int -> Orientation

-- | Defines how content overflowing a given area should be handled.
--   
--   This is used in widgetSetOverflow. The Widget:overflow
--   property is modeled after the CSS overflow property, but implements it
--   only partially.
data Overflow

-- | No change is applied. Content is drawn at the specified position.
OverflowVisible :: Overflow

-- | Content is clipped to the bounds of the area. Content outside the area
--   is not drawn and cannot be interacted with.
OverflowHidden :: Overflow

-- | Catch-all for unknown values
AnotherOverflow :: Int -> Overflow

-- | Represents the packing location of a children in its parent.
--   
--   See [classwindowControls] for example.
data PackType

-- | The child is packed into the start of the widget
PackTypeStart :: PackType

-- | The child is packed into the end of the widget
PackTypeEnd :: PackType

-- | Catch-all for unknown values
AnotherPackType :: Int -> PackType

-- | The type of a pad action.
data PadActionType

-- | Action is triggered by a pad button
PadActionTypeButton :: PadActionType

-- | Action is triggered by a pad ring
PadActionTypeRing :: PadActionType

-- | Action is triggered by a pad strip
PadActionTypeStrip :: PadActionType

-- | Action is triggered by a pad dial
PadActionTypeDial :: PadActionType

-- | Catch-all for unknown values
AnotherPadActionType :: Int -> PadActionType

-- | See also printSettingsSetOrientation.
data PageOrientation

-- | Portrait mode.
PageOrientationPortrait :: PageOrientation

-- | Landscape mode.
PageOrientationLandscape :: PageOrientation

-- | Reverse portrait mode.
PageOrientationReversePortrait :: PageOrientation

-- | Reverse landscape mode.
PageOrientationReverseLandscape :: PageOrientation

-- | Catch-all for unknown values
AnotherPageOrientation :: Int -> PageOrientation

-- | See also printJobSetPageSet.
data PageSet

-- | All pages.
PageSetAll :: PageSet

-- | Even pages.
PageSetEven :: PageSet

-- | Odd pages.
PageSetOdd :: PageSet

-- | Catch-all for unknown values
AnotherPageSet :: Int -> PageSet

-- | Describes the panning direction of a
--   [classgesturePan].
data PanDirection

-- | panned towards the left
PanDirectionLeft :: PanDirection

-- | panned towards the right
PanDirectionRight :: PanDirection

-- | panned upwards
PanDirectionUp :: PanDirection

-- | panned downwards
PanDirectionDown :: PanDirection

-- | Catch-all for unknown values
AnotherPanDirection :: Int -> PanDirection

-- | Determines how the size should be computed to achieve the one of the
--   visibility mode for the scrollbars.
data PolicyType

-- | The scrollbar is always visible. The view size is independent of the
--   content.
PolicyTypeAlways :: PolicyType

-- | The scrollbar will appear and disappear as necessary. For example,
--   when all of a GtkTreeView can not be seen.
PolicyTypeAutomatic :: PolicyType

-- | The scrollbar should never appear. In this mode the content determines
--   the size.
PolicyTypeNever :: PolicyType

-- | Don't show a scrollbar, but don't force the size to follow the
--   content. This can be used e.g. to make multiple scrolled windows share
--   a scrollbar.
PolicyTypeExternal :: PolicyType

-- | Catch-all for unknown values
AnotherPolicyType :: Int -> PolicyType

-- | Describes which edge of a widget a certain feature is positioned at.
--   
--   For examples, see the tabs of a [classnotebook], or
--   the label of a [classscale].
data PositionType

-- | The feature is at the left edge.
PositionTypeLeft :: PositionType

-- | The feature is at the right edge.
PositionTypeRight :: PositionType

-- | The feature is at the top edge.
PositionTypeTop :: PositionType

-- | The feature is at the bottom edge.
PositionTypeBottom :: PositionType

-- | Catch-all for unknown values
AnotherPositionType :: Int -> PositionType

-- | See also printSettingsSetDuplex.
data PrintDuplex

-- | No duplex.
PrintDuplexSimplex :: PrintDuplex

-- | Horizontal duplex.
PrintDuplexHorizontal :: PrintDuplex

-- | Vertical duplex.
PrintDuplexVertical :: PrintDuplex

-- | Catch-all for unknown values
AnotherPrintDuplex :: Int -> PrintDuplex

-- | Error codes that identify various errors that can occur while using
--   the GTK printing support.
data PrintError

-- | An unspecified error occurred.
PrintErrorGeneral :: PrintError

-- | An internal error occurred.
PrintErrorInternalError :: PrintError

-- | A memory allocation failed.
PrintErrorNomem :: PrintError

-- | An error occurred while loading a page setup or paper size from a key
--   file.
PrintErrorInvalidFile :: PrintError

-- | Catch-all for unknown values
AnotherPrintError :: Int -> PrintError

-- | Catch exceptions of type PrintError. This is a specialized
--   version of catchGErrorJustDomain.
catchPrintError :: IO a -> (PrintError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type PrintError. This is a specialized
--   version of handleGErrorJustDomain.
handlePrintError :: (PrintError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Determines what action the print operation should perform.
--   
--   A parameter of this typs is passed to printOperationRun.
data PrintOperationAction

-- | Show the print dialog.
PrintOperationActionPrintDialog :: PrintOperationAction

-- | Start to print without showing the print dialog, based on the current
--   print settings, if possible. Depending on the platform, a print dialog
--   might appear anyway.
PrintOperationActionPrint :: PrintOperationAction

-- | Show the print preview.
PrintOperationActionPreview :: PrintOperationAction

-- | Export to a file. This requires the export-filename property to be
--   set.
PrintOperationActionExport :: PrintOperationAction

-- | Catch-all for unknown values
AnotherPrintOperationAction :: Int -> PrintOperationAction

-- | The result of a print operation.
--   
--   A value of this type is returned by printOperationRun.
data PrintOperationResult

-- | An error has occurred.
PrintOperationResultError :: PrintOperationResult

-- | The print settings should be stored.
PrintOperationResultApply :: PrintOperationResult

-- | The print operation has been canceled, the print settings should not
--   be stored.
PrintOperationResultCancel :: PrintOperationResult

-- | The print operation is not complete yet. This value will only be
--   returned when running asynchronously.
PrintOperationResultInProgress :: PrintOperationResult

-- | Catch-all for unknown values
AnotherPrintOperationResult :: Int -> PrintOperationResult

-- | See also printJobSetPages
data PrintPages

-- | All pages.
PrintPagesAll :: PrintPages

-- | Current page.
PrintPagesCurrent :: PrintPages

-- | Range of pages.
PrintPagesRanges :: PrintPages

-- | Selected pages.
PrintPagesSelection :: PrintPages

-- | Catch-all for unknown values
AnotherPrintPages :: Int -> PrintPages

-- | See also printSettingsSetQuality.
data PrintQuality

-- | Low quality.
PrintQualityLow :: PrintQuality

-- | Normal quality.
PrintQualityNormal :: PrintQuality

-- | High quality.
PrintQualityHigh :: PrintQuality

-- | Draft quality.
PrintQualityDraft :: PrintQuality

-- | Catch-all for unknown values
AnotherPrintQuality :: Int -> PrintQuality

-- | The status gives a rough indication of the completion of a running
--   print operation.
data PrintStatus

-- | The printing has not started yet; this status is set initially, and
--   while the print dialog is shown.
PrintStatusInitial :: PrintStatus

-- | This status is set while the begin-print signal is emitted and during
--   pagination.
PrintStatusPreparing :: PrintStatus

-- | This status is set while the pages are being rendered.
PrintStatusGeneratingData :: PrintStatus

-- | The print job is being sent off to the printer.
PrintStatusSendingData :: PrintStatus

-- | The print job has been sent to the printer, but is not printed for
--   some reason, e.g. the printer may be stopped.
PrintStatusPending :: PrintStatus

-- | Some problem has occurred during printing, e.g. a paper jam.
PrintStatusPendingIssue :: PrintStatus

-- | The printer is processing the print job.
PrintStatusPrinting :: PrintStatus

-- | The printing has been completed successfully.
PrintStatusFinished :: PrintStatus

-- | The printing has been aborted.
PrintStatusFinishedAborted :: PrintStatus

-- | Catch-all for unknown values
AnotherPrintStatus :: Int -> PrintStatus

-- | Describes limits of a [classeventController] for
--   handling events targeting other widgets.
data PropagationLimit

-- | Events are handled regardless of what their target is.
PropagationLimitNone :: PropagationLimit

-- | Events are only handled if their target is in the same
--   [ifacenative] (or widget with
--   Widget:limitEvents set) as the event controllers widget. Note
--   that some event types have two targets (origin and destination).
PropagationLimitSameNative :: PropagationLimit

-- | Catch-all for unknown values
AnotherPropagationLimit :: Int -> PropagationLimit

-- | Describes the stage at which events are fed into a
--   [classeventController].
data PropagationPhase

-- | Events are not delivered.
PropagationPhaseNone :: PropagationPhase

-- | Events are delivered in the capture phase. The capture phase happens
--   before the bubble phase, runs from the toplevel down to the event
--   widget. This option should only be used on containers that might
--   possibly handle events before their children do.
PropagationPhaseCapture :: PropagationPhase

-- | Events are delivered in the bubble phase. The bubble phase happens
--   after the capture phase, and before the default handlers are run. This
--   phase runs from the event widget, up to the toplevel.
PropagationPhaseBubble :: PropagationPhase

-- | Events are delivered in the default widget event handlers, note that
--   widget implementations must chain up on button, motion, touch and grab
--   broken handlers for controllers in this phase to be run.
PropagationPhaseTarget :: PropagationPhase

-- | Catch-all for unknown values
AnotherPropagationPhase :: Int -> PropagationPhase

-- | Error codes for GtkRecentManager operations
data RecentManagerError

-- | the URI specified does not exists in the recently used resources list.
RecentManagerErrorNotFound :: RecentManagerError

-- | the URI specified is not valid.
RecentManagerErrorInvalidUri :: RecentManagerError

-- | the supplied string is not UTF-8 encoded.
RecentManagerErrorInvalidEncoding :: RecentManagerError

-- | no application has registered the specified item.
RecentManagerErrorNotRegistered :: RecentManagerError

-- | failure while reading the recently used resources file.
RecentManagerErrorRead :: RecentManagerError

-- | failure while writing the recently used resources file.
RecentManagerErrorWrite :: RecentManagerError

-- | unspecified error.
RecentManagerErrorUnknown :: RecentManagerError

-- | Catch-all for unknown values
AnotherRecentManagerError :: Int -> RecentManagerError

-- | Catch exceptions of type RecentManagerError. This is a
--   specialized version of catchGErrorJustDomain.
catchRecentManagerError :: IO a -> (RecentManagerError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type RecentManagerError. This is a
--   specialized version of handleGErrorJustDomain.
handleRecentManagerError :: (RecentManagerError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Values for the Settings:gtkInterfaceReducedMotion and
--   CssProvider:prefersReducedMotion properties that indicates the
--   preferred level of motion animations.
--   
--   This information can be used inside CSS via media queries.
--   
--   Since: 4.22
data ReducedMotion

-- | The user has made no preference known to the system
ReducedMotionNoPreference :: ReducedMotion

-- | The user has notified the system that they prefer an interface that
--   removes or replaces the types of motion-based animation that either
--   trigger discomfort for those with vestibular motion sensitivity, or
--   distraction for those with attention deficits
ReducedMotionReduce :: ReducedMotion

-- | Catch-all for unknown values
AnotherReducedMotion :: Int -> ReducedMotion

-- | Predefined values for use as response ids in dialogAddButton.
--   
--   All predefined values are negative; GTK leaves values of 0 or greater
--   for application-defined response ids.

-- | Deprecated: (Since version 4.20)There is no replacement.
data ResponseType

-- | Returned if an action widget has no response id, or if the dialog gets
--   programmatically hidden or destroyed
ResponseTypeNone :: ResponseType

-- | Generic response id, not used by GTK dialogs
ResponseTypeReject :: ResponseType

-- | Generic response id, not used by GTK dialogs
ResponseTypeAccept :: ResponseType

-- | Returned if the dialog is deleted
ResponseTypeDeleteEvent :: ResponseType

-- | Returned by OK buttons in GTK dialogs
ResponseTypeOk :: ResponseType

-- | Returned by Cancel buttons in GTK dialogs
ResponseTypeCancel :: ResponseType

-- | Returned by Close buttons in GTK dialogs
ResponseTypeClose :: ResponseType

-- | Returned by Yes buttons in GTK dialogs
ResponseTypeYes :: ResponseType

-- | Returned by No buttons in GTK dialogs
ResponseTypeNo :: ResponseType

-- | Returned by Apply buttons in GTK dialogs
ResponseTypeApply :: ResponseType

-- | Returned by Help buttons in GTK dialogs
ResponseTypeHelp :: ResponseType

-- | Catch-all for unknown values
AnotherResponseType :: Int -> ResponseType

-- | These enumeration values describe the possible transitions when the
--   child of a GtkRevealer widget is shown or hidden.
data RevealerTransitionType

-- | No transition
RevealerTransitionTypeNone :: RevealerTransitionType

-- | Fade in
RevealerTransitionTypeCrossfade :: RevealerTransitionType

-- | Slide in from the left
RevealerTransitionTypeSlideRight :: RevealerTransitionType

-- | Slide in from the right
RevealerTransitionTypeSlideLeft :: RevealerTransitionType

-- | Slide in from the bottom
RevealerTransitionTypeSlideUp :: RevealerTransitionType

-- | Slide in from the top
RevealerTransitionTypeSlideDown :: RevealerTransitionType

-- | Floop in from the left
RevealerTransitionTypeSwingRight :: RevealerTransitionType

-- | Floop in from the right
RevealerTransitionTypeSwingLeft :: RevealerTransitionType

-- | Floop in from the bottom
RevealerTransitionTypeSwingUp :: RevealerTransitionType

-- | Floop in from the top
RevealerTransitionTypeSwingDown :: RevealerTransitionType

-- | Combination of RevealerTransitionTypeCrossfade and
--   RevealerTransitionTypeSlideRight.
--   
--   Since: 4.22
RevealerTransitionTypeFadeSlideRight :: RevealerTransitionType

-- | Combination of RevealerTransitionTypeCrossfade and
--   RevealerTransitionTypeSlideLeft.
--   
--   Since: 4.22
RevealerTransitionTypeFadeSlideLeft :: RevealerTransitionType

-- | Combination of RevealerTransitionTypeCrossfade and
--   RevealerTransitionTypeSlideUp.
--   
--   Since: 4.22
RevealerTransitionTypeFadeSlideUp :: RevealerTransitionType

-- | Combination of RevealerTransitionTypeCrossfade and
--   RevealerTransitionTypeSlideDown.
--   
--   Since: 4.22
RevealerTransitionTypeFadeSlideDown :: RevealerTransitionType

-- | Catch-all for unknown values
AnotherRevealerTransitionType :: Int -> RevealerTransitionType

-- | Passed as argument to various keybinding signals.
data ScrollStep

-- | Scroll in steps.
ScrollStepSteps :: ScrollStep

-- | Scroll by pages.
ScrollStepPages :: ScrollStep

-- | Scroll to ends.
ScrollStepEnds :: ScrollStep

-- | Scroll in horizontal steps.
ScrollStepHorizontalSteps :: ScrollStep

-- | Scroll by horizontal pages.
ScrollStepHorizontalPages :: ScrollStep

-- | Scroll to the horizontal ends.
ScrollStepHorizontalEnds :: ScrollStep

-- | Catch-all for unknown values
AnotherScrollStep :: Int -> ScrollStep

-- | Scrolling types.
data ScrollType

-- | No scrolling.
ScrollTypeNone :: ScrollType

-- | Jump to new location.
ScrollTypeJump :: ScrollType

-- | Step backward.
ScrollTypeStepBackward :: ScrollType

-- | Step forward.
ScrollTypeStepForward :: ScrollType

-- | Page backward.
ScrollTypePageBackward :: ScrollType

-- | Page forward.
ScrollTypePageForward :: ScrollType

-- | Step up.
ScrollTypeStepUp :: ScrollType

-- | Step down.
ScrollTypeStepDown :: ScrollType

-- | Page up.
ScrollTypePageUp :: ScrollType

-- | Page down.
ScrollTypePageDown :: ScrollType

-- | Step to the left.
ScrollTypeStepLeft :: ScrollType

-- | Step to the right.
ScrollTypeStepRight :: ScrollType

-- | Page to the left.
ScrollTypePageLeft :: ScrollType

-- | Page to the right.
ScrollTypePageRight :: ScrollType

-- | Scroll to start.
ScrollTypeStart :: ScrollType

-- | Scroll to end.
ScrollTypeEnd :: ScrollType

-- | Catch-all for unknown values
AnotherScrollType :: Int -> ScrollType

-- | Defines the policy to be used in a scrollable widget when updating the
--   scrolled window adjustments in a given orientation.
data ScrollablePolicy

-- | Scrollable adjustments are based on the minimum size
ScrollablePolicyMinimum :: ScrollablePolicy

-- | Scrollable adjustments are based on the natural size
ScrollablePolicyNatural :: ScrollablePolicy

-- | Catch-all for unknown values
AnotherScrollablePolicy :: Int -> ScrollablePolicy

-- | Used to control what selections users are allowed to make.
data SelectionMode

-- | No selection is possible.
SelectionModeNone :: SelectionMode

-- | Zero or one element may be selected.
SelectionModeSingle :: SelectionMode

-- | Exactly one element is selected. In some circumstances, such as
--   initially or during a search operation, it’s possible for no element
--   to be selected with SelectionModeBrowse. What is really
--   enforced is that the user can’t deselect a currently selected element
--   except by selecting another element.
SelectionModeBrowse :: SelectionMode

-- | Any number of elements may be selected. The Ctrl key may be used to
--   enlarge the selection, and Shift key to select between the focus and
--   the child pointed to. Some widgets may also allow Click-drag to select
--   a range of elements.
SelectionModeMultiple :: SelectionMode

-- | Catch-all for unknown values
AnotherSelectionMode :: Int -> SelectionMode

-- | Determines how GTK handles the sensitivity of various controls, such
--   as combo box buttons.
data SensitivityType

-- | The control is made insensitive if no action can be triggered
SensitivityTypeAuto :: SensitivityType

-- | The control is always sensitive
SensitivityTypeOn :: SensitivityType

-- | The control is always insensitive
SensitivityTypeOff :: SensitivityType

-- | Catch-all for unknown values
AnotherSensitivityType :: Int -> SensitivityType

-- | Describes where [classshortcut]s added to a
--   [classshortcutController] get handled.
data ShortcutScope

-- | Shortcuts are handled inside the widget the controller belongs to.
ShortcutScopeLocal :: ShortcutScope

-- | Shortcuts are handled by the first ancestor that is a
--   [ifaceshortcutManager]
ShortcutScopeManaged :: ShortcutScope

-- | Shortcuts are handled by the root widget.
ShortcutScopeGlobal :: ShortcutScope

-- | Catch-all for unknown values
AnotherShortcutScope :: Int -> ShortcutScope

-- | GtkShortcutType specifies the kind of shortcut that is being
--   described.
--   
--   More values may be added to this enumeration over time.
data ShortcutType

-- | The shortcut is a keyboard accelerator. The
--   GtkShortcutsShortcut:accelerator property will be used.
ShortcutTypeAccelerator :: ShortcutType

-- | The shortcut is a pinch gesture. GTK provides an icon and subtitle.
ShortcutTypeGesturePinch :: ShortcutType

-- | The shortcut is a stretch gesture. GTK provides an icon and subtitle.
ShortcutTypeGestureStretch :: ShortcutType

-- | The shortcut is a clockwise rotation gesture. GTK provides an icon and
--   subtitle.
ShortcutTypeGestureRotateClockwise :: ShortcutType

-- | The shortcut is a counterclockwise rotation gesture. GTK provides an
--   icon and subtitle.
ShortcutTypeGestureRotateCounterclockwise :: ShortcutType

-- | The shortcut is a two-finger swipe gesture. GTK provides an icon and
--   subtitle.
ShortcutTypeGestureTwoFingerSwipeLeft :: ShortcutType

-- | The shortcut is a two-finger swipe gesture. GTK provides an icon and
--   subtitle.
ShortcutTypeGestureTwoFingerSwipeRight :: ShortcutType

-- | The shortcut is a gesture. The GtkShortcutsShortcut:icon property will
--   be used.
ShortcutTypeGesture :: ShortcutType

-- | The shortcut is a swipe gesture. GTK provides an icon and subtitle.
ShortcutTypeGestureSwipeLeft :: ShortcutType

-- | The shortcut is a swipe gesture. GTK provides an icon and subtitle.
ShortcutTypeGestureSwipeRight :: ShortcutType

-- | Catch-all for unknown values
AnotherShortcutType :: Int -> ShortcutType

-- | The mode of the size group determines the directions in which the size
--   group affects the requested sizes of its component widgets.
data SizeGroupMode

-- | group has no effect
SizeGroupModeNone :: SizeGroupMode

-- | group affects horizontal requisition
SizeGroupModeHorizontal :: SizeGroupMode

-- | group affects vertical requisition
SizeGroupModeVertical :: SizeGroupMode

-- | group affects both horizontal and vertical requisition
SizeGroupModeBoth :: SizeGroupMode

-- | Catch-all for unknown values
AnotherSizeGroupMode :: Int -> SizeGroupMode

-- | Specifies a preference for height-for-width or width-for-height
--   geometry management.
data SizeRequestMode

-- | Prefer height-for-width geometry management
SizeRequestModeHeightForWidth :: SizeRequestMode

-- | Prefer width-for-height geometry management
SizeRequestModeWidthForHeight :: SizeRequestMode

-- | Don’t trade height-for-width or width-for-height
SizeRequestModeConstantSize :: SizeRequestMode

-- | Catch-all for unknown values
AnotherSizeRequestMode :: Int -> SizeRequestMode

-- | Determines the direction of a sort.
data SortType

-- | Sorting is in ascending order.
SortTypeAscending :: SortType

-- | Sorting is in descending order.
SortTypeDescending :: SortType

-- | Catch-all for unknown values
AnotherSortType :: Int -> SortType

-- | Describes changes in a sorter in more detail and allows users to
--   optimize resorting.
data SorterChange

-- | The sorter change cannot be described by any of the other enumeration
--   values
SorterChangeDifferent :: SorterChange

-- | The sort order was inverted. Comparisons that returned
--   OrderingSmaller now return OrderingLarger and vice
--   versa. Other comparisons return the same values as before.
SorterChangeInverted :: SorterChange

-- | The sorter is less strict: Comparisons may now return
--   OrderingEqual that did not do so before.
SorterChangeLessStrict :: SorterChange

-- | The sorter is more strict: Comparisons that did return
--   OrderingEqual may not do so anymore.
SorterChangeMoreStrict :: SorterChange

-- | Catch-all for unknown values
AnotherSorterChange :: Int -> SorterChange

-- | Describes the type of order that a GtkSorter may produce.
data SorterOrder

-- | A partial order. Any GtkOrdering is possible.
SorterOrderPartial :: SorterOrder

-- | No order, all elements are considered equal. sorterCompare will
--   only return OrderingEqual.
SorterOrderNone :: SorterOrder

-- | A total order. sorterCompare will only return
--   OrderingEqual if an item is compared with itself. Two different
--   items will never cause this value to be returned.
SorterOrderTotal :: SorterOrder

-- | Catch-all for unknown values
AnotherSorterOrder :: Int -> SorterOrder

-- | Determines whether the spin button displays values outside the
--   adjustment bounds.
--   
--   See spinButtonSetUpdatePolicy.
data SpinButtonUpdatePolicy

-- | When refreshing your GtkSpinButton, the value is always
--   displayed
SpinButtonUpdatePolicyAlways :: SpinButtonUpdatePolicy

-- | When refreshing your GtkSpinButton, the value is only
--   displayed if it is valid within the bounds of the spin button's
--   adjustment
SpinButtonUpdatePolicyIfValid :: SpinButtonUpdatePolicy

-- | Catch-all for unknown values
AnotherSpinButtonUpdatePolicy :: Int -> SpinButtonUpdatePolicy

-- | The values of the GtkSpinType enumeration are used to specify the
--   change to make in spinButtonSpin.
data SpinType

-- | Increment by the adjustments step increment.
SpinTypeStepForward :: SpinType

-- | Decrement by the adjustments step increment.
SpinTypeStepBackward :: SpinType

-- | Increment by the adjustments page increment.
SpinTypePageForward :: SpinType

-- | Decrement by the adjustments page increment.
SpinTypePageBackward :: SpinType

-- | Go to the adjustments lower bound.
SpinTypeHome :: SpinType

-- | Go to the adjustments upper bound.
SpinTypeEnd :: SpinType

-- | Change by a specified amount.
SpinTypeUserDefined :: SpinType

-- | Catch-all for unknown values
AnotherSpinType :: Int -> SpinType

-- | Possible transitions between pages in a GtkStack widget.
--   
--   New values may be added to this enumeration over time.
data StackTransitionType

-- | No transition
StackTransitionTypeNone :: StackTransitionType

-- | A cross-fade
StackTransitionTypeCrossfade :: StackTransitionType

-- | Slide from left to right
StackTransitionTypeSlideRight :: StackTransitionType

-- | Slide from right to left
StackTransitionTypeSlideLeft :: StackTransitionType

-- | Slide from bottom up
StackTransitionTypeSlideUp :: StackTransitionType

-- | Slide from top down
StackTransitionTypeSlideDown :: StackTransitionType

-- | Slide from left or right according to the children order
StackTransitionTypeSlideLeftRight :: StackTransitionType

-- | Slide from top down or bottom up according to the order
StackTransitionTypeSlideUpDown :: StackTransitionType

-- | Cover the old page by sliding up
StackTransitionTypeOverUp :: StackTransitionType

-- | Cover the old page by sliding down
StackTransitionTypeOverDown :: StackTransitionType

-- | Cover the old page by sliding to the left
StackTransitionTypeOverLeft :: StackTransitionType

-- | Cover the old page by sliding to the right
StackTransitionTypeOverRight :: StackTransitionType

-- | Uncover the new page by sliding up
StackTransitionTypeUnderUp :: StackTransitionType

-- | Uncover the new page by sliding down
StackTransitionTypeUnderDown :: StackTransitionType

-- | Uncover the new page by sliding to the left
StackTransitionTypeUnderLeft :: StackTransitionType

-- | Uncover the new page by sliding to the right
StackTransitionTypeUnderRight :: StackTransitionType

-- | Cover the old page sliding up or uncover the new page sliding down,
--   according to order
StackTransitionTypeOverUpDown :: StackTransitionType

-- | Cover the old page sliding down or uncover the new page sliding up,
--   according to order
StackTransitionTypeOverDownUp :: StackTransitionType

-- | Cover the old page sliding left or uncover the new page sliding right,
--   according to order
StackTransitionTypeOverLeftRight :: StackTransitionType

-- | Cover the old page sliding right or uncover the new page sliding left,
--   according to order
StackTransitionTypeOverRightLeft :: StackTransitionType

-- | Pretend the pages are sides of a cube and rotate that cube to the left
StackTransitionTypeRotateLeft :: StackTransitionType

-- | Pretend the pages are sides of a cube and rotate that cube to the
--   right
StackTransitionTypeRotateRight :: StackTransitionType

-- | Pretend the pages are sides of a cube and rotate that cube to the left
--   or right according to the children order
StackTransitionTypeRotateLeftRight :: StackTransitionType

-- | Catch-all for unknown values
AnotherStackTransitionType :: Int -> StackTransitionType

-- | Specifies how search strings are matched inside text.
data StringFilterMatchMode

-- | The search string and text must match exactly
StringFilterMatchModeExact :: StringFilterMatchMode

-- | The search string must be contained as a substring inside the text
StringFilterMatchModeSubstring :: StringFilterMatchMode

-- | The text must begin with the search string
StringFilterMatchModePrefix :: StringFilterMatchMode

-- | Catch-all for unknown values
AnotherStringFilterMatchMode :: Int -> StringFilterMatchMode

-- | Error codes in the GTK_SVG_ERROR domain for errors that
--   happen during parsing or rendering of SVG.
--   
--   Since: 4.22
data SvgError

-- | The XML syntax is broken in some way
SvgErrorInvalidSyntax :: SvgError

-- | An XML element is invalid (either because it is not part of SVG, or
--   because it is in the wrong place, or because it not implemented in
--   GTK)
SvgErrorInvalidElement :: SvgError

-- | An attribute is invalid (either because it is not part of SVG, or
--   because it is not implemented in GTK, or its value is problematic)
SvgErrorInvalidAttribute :: SvgError

-- | A required attribute is missing
SvgErrorMissingAttribute :: SvgError

-- | A reference does not point to a suitable element
SvgErrorInvalidReference :: SvgError

-- | An animation could not be updated
SvgErrorFailedUpdate :: SvgError

-- | Rendering is not according to expecations
SvgErrorFailedRendering :: SvgError

-- | An XML element is ignored, but it should not affect rendering (this
--   error code is used for metadata and exension elements)
SvgErrorIgnoredElement :: SvgError

-- | An implementation limit has been hit, such as the number of loaded
--   shapes.
SvgErrorLimitsExceeded :: SvgError

-- | The SVG uses features that are not supported by GtkSvg. It
--   may be advisable to use a different SVG renderer.
SvgErrorNotImplemented :: SvgError

-- | Catch-all for unknown values
AnotherSvgError :: Int -> SvgError

-- | Catch exceptions of type SvgError. This is a specialized
--   version of catchGErrorJustDomain.
catchSvgError :: IO a -> (SvgError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type SvgError. This is a specialized
--   version of handleGErrorJustDomain.
handleSvgError :: (SvgError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | The indexes of colors passed to symbolic color rendering, such as
--   SymbolicPaintable.snapshot_symbolic().
--   
--   More values may be added over time.
--   
--   Since: 4.6
data SymbolicColor

-- | The default foreground color
SymbolicColorForeground :: SymbolicColor

-- | Indication color for errors
SymbolicColorError :: SymbolicColor

-- | Indication color for warnings
SymbolicColorWarning :: SymbolicColor

-- | Indication color for success
SymbolicColorSuccess :: SymbolicColor

-- | The system accent color.
--   
--   Since: 4.22
SymbolicColorAccent :: SymbolicColor

-- | Catch-all for unknown values
AnotherSymbolicColor :: Int -> SymbolicColor

-- | Values that can be passed to the
--   Widget.system_setting_changed() vfunc.
--   
--   The values indicate which system setting has changed. Widgets may need
--   to drop caches, or react otherwise.
--   
--   Most of the values correspond to [classsettings]
--   properties.
--   
--   More values may be added over time.
data SystemSetting

-- | the Settings:gtkXftDpi setting has changed
SystemSettingDpi :: SystemSetting

-- | The Settings:gtkFontName setting has changed
SystemSettingFontName :: SystemSetting

-- | The font configuration has changed in a way that requires text to be
--   redrawn. This can be any of the Settings:gtkXftAntialias,
--   Settings:gtkXftHinting, Settings:gtkXftHintstyle,
--   Settings:gtkXftRgba or Settings:gtkFontconfigTimestamp
--   settings
SystemSettingFontConfig :: SystemSetting

-- | The display has changed
SystemSettingDisplay :: SystemSetting

-- | The icon theme has changed in a way that requires icons to be looked
--   up again
SystemSettingIconTheme :: SystemSetting

-- | Catch-all for unknown values
AnotherSystemSetting :: Int -> SystemSetting

-- | Reading directions for text.
data TextDirection

-- | No direction.
TextDirectionNone :: TextDirection

-- | Left to right text direction.
TextDirectionLtr :: TextDirection

-- | Right to left text direction.
TextDirectionRtl :: TextDirection

-- | Catch-all for unknown values
AnotherTextDirection :: Int -> TextDirection

-- | Granularity types that extend the text selection. Use the
--   GtkTextView::extend-selection signal to customize the
--   selection.
data TextExtendSelection

-- | Selects the current word. It is triggered by a double-click for
--   example.
TextExtendSelectionWord :: TextExtendSelection

-- | Selects the current line. It is triggered by a triple-click for
--   example.
TextExtendSelectionLine :: TextExtendSelection

-- | Catch-all for unknown values
AnotherTextExtendSelection :: Int -> TextExtendSelection

-- | Used to reference the layers of GtkTextView for the purpose
--   of customized drawing with the snapshot_layer vfunc.
data TextViewLayer

-- | The layer rendered below the text (but above the background).
TextViewLayerBelowText :: TextViewLayer

-- | The layer rendered above the text.
TextViewLayerAboveText :: TextViewLayer

-- | Catch-all for unknown values
AnotherTextViewLayer :: Int -> TextViewLayer

-- | Used to reference the parts of GtkTextView.
data TextWindowType

-- | Window that floats over scrolling areas.
TextWindowTypeWidget :: TextWindowType

-- | Scrollable text window.
TextWindowTypeText :: TextWindowType

-- | Left side border window.
TextWindowTypeLeft :: TextWindowType

-- | Right side border window.
TextWindowTypeRight :: TextWindowType

-- | Top border window.
TextWindowTypeTop :: TextWindowType

-- | Bottom border window.
TextWindowTypeBottom :: TextWindowType

-- | Catch-all for unknown values
AnotherTextWindowType :: Int -> TextWindowType

-- | The sizing method the column uses to determine its width. Please note
--   that TreeViewColumnSizingAutosize are inefficient for large
--   views, and can make columns appear choppy.

-- | Deprecated: (Since version 4.20)There is no replacement.
data TreeViewColumnSizing

-- | Columns only get bigger in reaction to changes in the model
TreeViewColumnSizingGrowOnly :: TreeViewColumnSizing

-- | Columns resize to be the optimal size every time the model changes.
TreeViewColumnSizingAutosize :: TreeViewColumnSizing

-- | Columns are a fixed numbers of pixels wide.
TreeViewColumnSizingFixed :: TreeViewColumnSizing

-- | Catch-all for unknown values
AnotherTreeViewColumnSizing :: Int -> TreeViewColumnSizing

-- | An enum for determining where a dropped row goes.

-- | Deprecated: (Since version 4.20)There is no replacement.
data TreeViewDropPosition

-- | dropped row is inserted before
TreeViewDropPositionBefore :: TreeViewDropPosition

-- | dropped row is inserted after
TreeViewDropPositionAfter :: TreeViewDropPosition

-- | dropped row becomes a child or is inserted before
TreeViewDropPositionIntoOrBefore :: TreeViewDropPosition

-- | dropped row becomes a child or is inserted after
TreeViewDropPositionIntoOrAfter :: TreeViewDropPosition

-- | Catch-all for unknown values
AnotherTreeViewDropPosition :: Int -> TreeViewDropPosition

-- | Used to indicate which grid lines to draw in a tree view.

-- | Deprecated: (Since version 4.20)There is no replacement
data TreeViewGridLines

-- | No grid lines.
TreeViewGridLinesNone :: TreeViewGridLines

-- | Horizontal grid lines.
TreeViewGridLinesHorizontal :: TreeViewGridLines

-- | Vertical grid lines.
TreeViewGridLinesVertical :: TreeViewGridLines

-- | Horizontal and vertical grid lines.
TreeViewGridLinesBoth :: TreeViewGridLines

-- | Catch-all for unknown values
AnotherTreeViewGridLines :: Int -> TreeViewGridLines

-- | See also printSettingsSetPaperWidth.
data Unit

-- | No units.
UnitNone :: Unit

-- | Dimensions in points.
UnitPoints :: Unit

-- | Dimensions in inches.
UnitInch :: Unit

-- | Dimensions in millimeters
UnitMm :: Unit

-- | Catch-all for unknown values
AnotherUnit :: Int -> Unit

-- | Determines which point or edge of a window is meant to remain fixed
--   when a window changes size.
--   
--   Since: 4.20
data WindowGravity

-- | The top left corner
WindowGravityTopLeft :: WindowGravity

-- | The top edge
WindowGravityTop :: WindowGravity

-- | The top right corner
WindowGravityTopRight :: WindowGravity

-- | The left edge
WindowGravityLeft :: WindowGravity

-- | The center pointer
WindowGravityCenter :: WindowGravity

-- | The right edge
WindowGravityRight :: WindowGravity

-- | The bottom left corner
WindowGravityBottomLeft :: WindowGravity

-- | the bottom edge
WindowGravityBottom :: WindowGravity

-- | The bottom right corner
WindowGravityBottomRight :: WindowGravity

-- | The top left or top right corner, depending on the text direction
WindowGravityTopStart :: WindowGravity

-- | The top right or top left corner, depending on the text direction
WindowGravityTopEnd :: WindowGravity

-- | The left or right edge, depending on the text direction
WindowGravityStart :: WindowGravity

-- | The right or left edge, depending on the text direction
WindowGravityEnd :: WindowGravity

-- | The bottom left or top right corner, depending on the text direction
WindowGravityBottomStart :: WindowGravity

-- | The bottom right or top left corner, depending on the text direction
WindowGravityBottomEnd :: WindowGravity

-- | Catch-all for unknown values
AnotherWindowGravity :: Int -> WindowGravity

-- | Describes a type of line wrapping.
data WrapMode

-- | do not wrap lines; just make the text area wider
WrapModeNone :: WrapMode

-- | wrap text, breaking lines anywhere the cursor can appear (between
--   characters, usually - if you want to be technical, between graphemes,
--   see getLogAttrs)
WrapModeChar :: WrapMode

-- | wrap text, breaking lines in between words
WrapModeWord :: WrapMode

-- | wrap text, breaking lines in between words, or if that is not enough,
--   also between graphemes
WrapModeWordChar :: WrapMode

-- | Catch-all for unknown values
AnotherWrapMode :: Int -> WrapMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleAnnouncementPriority
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleAutocomplete
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleInvalidState
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessiblePlatformState
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleProperty
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleRelation
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleRole
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleSort
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleState
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleTextContentChange
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleTextGranularity
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AccessibleTristate
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Align
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ArrowType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.AssistantPageType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.BaselinePosition
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.BorderStyle
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.BuilderError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ButtonsType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.CellRendererAccelMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.CellRendererMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Collation
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ConstraintAttribute
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ConstraintRelation
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ConstraintStrength
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ConstraintVflParserError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ContentFit
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.CornerType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.DeleteType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.DialogError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.DirectionType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.EditableProperties
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.EntryIconPosition
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.EventSequenceState
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.FileChooserAction
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.FileChooserError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.FilterChange
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.FilterMatch
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.FontLevel
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.FontRendering
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.GraphicsOffloadEnabled
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.IconSize
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.IconThemeError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.IconViewDropPosition
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ImageType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.InputPurpose
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.InscriptionOverflow
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.InterfaceColorScheme
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.InterfaceContrast
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Justification
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.LevelBarMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.License
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ListTabBehavior
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.MessageType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.MovementStep
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.NaturalWrapMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.NotebookTab
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.NumberUpLayout
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Ordering
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Orientation
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Overflow
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PackType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PadActionType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PageOrientation
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PageSet
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PanDirection
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PolicyType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PositionType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintDuplex
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintOperationAction
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintOperationResult
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintPages
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintQuality
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PrintStatus
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PropagationLimit
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.PropagationPhase
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.RecentManagerError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ReducedMotion
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ResponseType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.RevealerTransitionType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ScrollStep
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ScrollType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ScrollablePolicy
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SelectionMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SensitivityType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ShortcutScope
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.ShortcutType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SizeGroupMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SizeRequestMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SortType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SorterChange
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SorterOrder
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SpinButtonUpdatePolicy
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SpinType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.StackTransitionType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.StringFilterMatchMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SvgError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SymbolicColor
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.SystemSetting
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TextDirection
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TextExtendSelection
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TextViewLayer
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TextWindowType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TreeViewColumnSizing
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TreeViewDropPosition
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.TreeViewGridLines
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.Unit
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.WindowGravity
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gtk.Enums.WrapMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleAnnouncementPriority
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleAutocomplete
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleInvalidState
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessiblePlatformState
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleProperty
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleRelation
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleRole
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleSort
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleState
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleTextContentChange
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleTextGranularity
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AccessibleTristate
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Align
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ArrowType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.AssistantPageType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.BaselinePosition
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.BorderStyle
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.BuilderError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ButtonsType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.CellRendererAccelMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.CellRendererMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Collation
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ConstraintAttribute
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ConstraintRelation
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ConstraintStrength
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ConstraintVflParserError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ContentFit
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.CornerType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.CssParserError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.CssParserWarning
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.DeleteType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.DialogError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.DirectionType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.EditableProperties
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.EntryIconPosition
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.EventSequenceState
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.FileChooserAction
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.FileChooserError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.FilterChange
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.FilterMatch
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.FontLevel
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.FontRendering
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.GraphicsOffloadEnabled
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.IconSize
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.IconThemeError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.IconViewDropPosition
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ImageType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.InputPurpose
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.InscriptionOverflow
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.InterfaceColorScheme
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.InterfaceContrast
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Justification
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.LevelBarMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.License
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ListTabBehavior
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.MessageType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.MovementStep
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.NaturalWrapMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.NotebookTab
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.NumberUpLayout
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Ordering
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Orientation
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Overflow
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PackType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PadActionType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PageOrientation
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PageSet
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PanDirection
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PolicyType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PositionType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintDuplex
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintOperationAction
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintOperationResult
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintPages
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintQuality
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PrintStatus
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PropagationLimit
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.PropagationPhase
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.RecentManagerError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ReducedMotion
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ResponseType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.RevealerTransitionType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ScrollStep
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ScrollType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ScrollablePolicy
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SelectionMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SensitivityType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ShortcutScope
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.ShortcutType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SizeGroupMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SizeRequestMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SortType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SorterChange
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SorterOrder
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SpinButtonUpdatePolicy
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SpinType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.StackTransitionType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.StringFilterMatchMode
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SvgError
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SymbolicColor
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.SystemSetting
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TextDirection
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TextExtendSelection
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TextViewLayer
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TextWindowType
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TreeViewColumnSizing
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TreeViewDropPosition
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.TreeViewGridLines
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.Unit
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.WindowGravity
instance GHC.Internal.Enum.Enum GI.Gtk.Enums.WrapMode
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleAnnouncementPriority
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleAutocomplete
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleInvalidState
instance GHC.Classes.Eq GI.Gtk.Enums.AccessiblePlatformState
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleProperty
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleRelation
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleRole
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleSort
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleState
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleTextContentChange
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleTextGranularity
instance GHC.Classes.Eq GI.Gtk.Enums.AccessibleTristate
instance GHC.Classes.Eq GI.Gtk.Enums.Align
instance GHC.Classes.Eq GI.Gtk.Enums.ArrowType
instance GHC.Classes.Eq GI.Gtk.Enums.AssistantPageType
instance GHC.Classes.Eq GI.Gtk.Enums.BaselinePosition
instance GHC.Classes.Eq GI.Gtk.Enums.BorderStyle
instance GHC.Classes.Eq GI.Gtk.Enums.BuilderError
instance GHC.Classes.Eq GI.Gtk.Enums.ButtonsType
instance GHC.Classes.Eq GI.Gtk.Enums.CellRendererAccelMode
instance GHC.Classes.Eq GI.Gtk.Enums.CellRendererMode
instance GHC.Classes.Eq GI.Gtk.Enums.Collation
instance GHC.Classes.Eq GI.Gtk.Enums.ConstraintAttribute
instance GHC.Classes.Eq GI.Gtk.Enums.ConstraintRelation
instance GHC.Classes.Eq GI.Gtk.Enums.ConstraintStrength
instance GHC.Classes.Eq GI.Gtk.Enums.ConstraintVflParserError
instance GHC.Classes.Eq GI.Gtk.Enums.ContentFit
instance GHC.Classes.Eq GI.Gtk.Enums.CornerType
instance GHC.Classes.Eq GI.Gtk.Enums.CssParserError
instance GHC.Classes.Eq GI.Gtk.Enums.CssParserWarning
instance GHC.Classes.Eq GI.Gtk.Enums.DeleteType
instance GHC.Classes.Eq GI.Gtk.Enums.DialogError
instance GHC.Classes.Eq GI.Gtk.Enums.DirectionType
instance GHC.Classes.Eq GI.Gtk.Enums.EditableProperties
instance GHC.Classes.Eq GI.Gtk.Enums.EntryIconPosition
instance GHC.Classes.Eq GI.Gtk.Enums.EventSequenceState
instance GHC.Classes.Eq GI.Gtk.Enums.FileChooserAction
instance GHC.Classes.Eq GI.Gtk.Enums.FileChooserError
instance GHC.Classes.Eq GI.Gtk.Enums.FilterChange
instance GHC.Classes.Eq GI.Gtk.Enums.FilterMatch
instance GHC.Classes.Eq GI.Gtk.Enums.FontLevel
instance GHC.Classes.Eq GI.Gtk.Enums.FontRendering
instance GHC.Classes.Eq GI.Gtk.Enums.GraphicsOffloadEnabled
instance GHC.Classes.Eq GI.Gtk.Enums.IconSize
instance GHC.Classes.Eq GI.Gtk.Enums.IconThemeError
instance GHC.Classes.Eq GI.Gtk.Enums.IconViewDropPosition
instance GHC.Classes.Eq GI.Gtk.Enums.ImageType
instance GHC.Classes.Eq GI.Gtk.Enums.InputPurpose
instance GHC.Classes.Eq GI.Gtk.Enums.InscriptionOverflow
instance GHC.Classes.Eq GI.Gtk.Enums.InterfaceColorScheme
instance GHC.Classes.Eq GI.Gtk.Enums.InterfaceContrast
instance GHC.Classes.Eq GI.Gtk.Enums.Justification
instance GHC.Classes.Eq GI.Gtk.Enums.LevelBarMode
instance GHC.Classes.Eq GI.Gtk.Enums.License
instance GHC.Classes.Eq GI.Gtk.Enums.ListTabBehavior
instance GHC.Classes.Eq GI.Gtk.Enums.MessageType
instance GHC.Classes.Eq GI.Gtk.Enums.MovementStep
instance GHC.Classes.Eq GI.Gtk.Enums.NaturalWrapMode
instance GHC.Classes.Eq GI.Gtk.Enums.NotebookTab
instance GHC.Classes.Eq GI.Gtk.Enums.NumberUpLayout
instance GHC.Classes.Eq GI.Gtk.Enums.Ordering
instance GHC.Classes.Eq GI.Gtk.Enums.Orientation
instance GHC.Classes.Eq GI.Gtk.Enums.Overflow
instance GHC.Classes.Eq GI.Gtk.Enums.PackType
instance GHC.Classes.Eq GI.Gtk.Enums.PadActionType
instance GHC.Classes.Eq GI.Gtk.Enums.PageOrientation
instance GHC.Classes.Eq GI.Gtk.Enums.PageSet
instance GHC.Classes.Eq GI.Gtk.Enums.PanDirection
instance GHC.Classes.Eq GI.Gtk.Enums.PolicyType
instance GHC.Classes.Eq GI.Gtk.Enums.PositionType
instance GHC.Classes.Eq GI.Gtk.Enums.PrintDuplex
instance GHC.Classes.Eq GI.Gtk.Enums.PrintError
instance GHC.Classes.Eq GI.Gtk.Enums.PrintOperationAction
instance GHC.Classes.Eq GI.Gtk.Enums.PrintOperationResult
instance GHC.Classes.Eq GI.Gtk.Enums.PrintPages
instance GHC.Classes.Eq GI.Gtk.Enums.PrintQuality
instance GHC.Classes.Eq GI.Gtk.Enums.PrintStatus
instance GHC.Classes.Eq GI.Gtk.Enums.PropagationLimit
instance GHC.Classes.Eq GI.Gtk.Enums.PropagationPhase
instance GHC.Classes.Eq GI.Gtk.Enums.RecentManagerError
instance GHC.Classes.Eq GI.Gtk.Enums.ReducedMotion
instance GHC.Classes.Eq GI.Gtk.Enums.ResponseType
instance GHC.Classes.Eq GI.Gtk.Enums.RevealerTransitionType
instance GHC.Classes.Eq GI.Gtk.Enums.ScrollStep
instance GHC.Classes.Eq GI.Gtk.Enums.ScrollType
instance GHC.Classes.Eq GI.Gtk.Enums.ScrollablePolicy
instance GHC.Classes.Eq GI.Gtk.Enums.SelectionMode
instance GHC.Classes.Eq GI.Gtk.Enums.SensitivityType
instance GHC.Classes.Eq GI.Gtk.Enums.ShortcutScope
instance GHC.Classes.Eq GI.Gtk.Enums.ShortcutType
instance GHC.Classes.Eq GI.Gtk.Enums.SizeGroupMode
instance GHC.Classes.Eq GI.Gtk.Enums.SizeRequestMode
instance GHC.Classes.Eq GI.Gtk.Enums.SortType
instance GHC.Classes.Eq GI.Gtk.Enums.SorterChange
instance GHC.Classes.Eq GI.Gtk.Enums.SorterOrder
instance GHC.Classes.Eq GI.Gtk.Enums.SpinButtonUpdatePolicy
instance GHC.Classes.Eq GI.Gtk.Enums.SpinType
instance GHC.Classes.Eq GI.Gtk.Enums.StackTransitionType
instance GHC.Classes.Eq GI.Gtk.Enums.StringFilterMatchMode
instance GHC.Classes.Eq GI.Gtk.Enums.SvgError
instance GHC.Classes.Eq GI.Gtk.Enums.SymbolicColor
instance GHC.Classes.Eq GI.Gtk.Enums.SystemSetting
instance GHC.Classes.Eq GI.Gtk.Enums.TextDirection
instance GHC.Classes.Eq GI.Gtk.Enums.TextExtendSelection
instance GHC.Classes.Eq GI.Gtk.Enums.TextViewLayer
instance GHC.Classes.Eq GI.Gtk.Enums.TextWindowType
instance GHC.Classes.Eq GI.Gtk.Enums.TreeViewColumnSizing
instance GHC.Classes.Eq GI.Gtk.Enums.TreeViewDropPosition
instance GHC.Classes.Eq GI.Gtk.Enums.TreeViewGridLines
instance GHC.Classes.Eq GI.Gtk.Enums.Unit
instance GHC.Classes.Eq GI.Gtk.Enums.WindowGravity
instance GHC.Classes.Eq GI.Gtk.Enums.WrapMode
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.BuilderError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.ConstraintVflParserError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.CssParserError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.DialogError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.FileChooserError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.IconThemeError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.PrintError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.RecentManagerError
instance Data.GI.Base.GError.GErrorClass GI.Gtk.Enums.SvgError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleAnnouncementPriority
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleAutocomplete
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleInvalidState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessiblePlatformState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleProperty
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleRelation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleRole
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleSort
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleTextContentChange
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleTextGranularity
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AccessibleTristate
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Align
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ArrowType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.AssistantPageType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.BaselinePosition
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.BorderStyle
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.BuilderError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ButtonsType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.CellRendererAccelMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.CellRendererMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Collation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ConstraintAttribute
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ConstraintRelation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ConstraintStrength
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ConstraintVflParserError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ContentFit
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.CornerType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.DeleteType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.DialogError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.DirectionType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.EditableProperties
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.EntryIconPosition
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.EventSequenceState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.FileChooserAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.FileChooserError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.FilterChange
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.FilterMatch
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.FontLevel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.FontRendering
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.GraphicsOffloadEnabled
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.IconSize
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.IconThemeError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.IconViewDropPosition
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ImageType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.InputPurpose
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.InscriptionOverflow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.InterfaceColorScheme
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.InterfaceContrast
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Justification
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.LevelBarMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.License
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ListTabBehavior
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.MessageType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.MovementStep
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.NaturalWrapMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.NotebookTab
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.NumberUpLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Ordering
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Orientation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Overflow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PackType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PadActionType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PageOrientation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PageSet
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PanDirection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PolicyType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PositionType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintDuplex
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintOperationAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintOperationResult
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintPages
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintQuality
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PrintStatus
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PropagationLimit
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.PropagationPhase
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.RecentManagerError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ReducedMotion
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ResponseType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.RevealerTransitionType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ScrollStep
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ScrollType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ScrollablePolicy
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SelectionMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SensitivityType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ShortcutScope
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.ShortcutType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SizeGroupMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SizeRequestMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SortType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SorterChange
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SorterOrder
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SpinButtonUpdatePolicy
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SpinType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.StackTransitionType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.StringFilterMatchMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SvgError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SymbolicColor
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.SystemSetting
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TextDirection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TextExtendSelection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TextViewLayer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TextWindowType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TreeViewColumnSizing
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TreeViewDropPosition
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.TreeViewGridLines
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.Unit
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.WindowGravity
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Enums.WrapMode
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleAnnouncementPriority
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleAutocomplete
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleInvalidState
instance GHC.Classes.Ord GI.Gtk.Enums.AccessiblePlatformState
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleProperty
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleRelation
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleRole
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleSort
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleState
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleTextContentChange
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleTextGranularity
instance GHC.Classes.Ord GI.Gtk.Enums.AccessibleTristate
instance GHC.Classes.Ord GI.Gtk.Enums.Align
instance GHC.Classes.Ord GI.Gtk.Enums.ArrowType
instance GHC.Classes.Ord GI.Gtk.Enums.AssistantPageType
instance GHC.Classes.Ord GI.Gtk.Enums.BaselinePosition
instance GHC.Classes.Ord GI.Gtk.Enums.BorderStyle
instance GHC.Classes.Ord GI.Gtk.Enums.BuilderError
instance GHC.Classes.Ord GI.Gtk.Enums.ButtonsType
instance GHC.Classes.Ord GI.Gtk.Enums.CellRendererAccelMode
instance GHC.Classes.Ord GI.Gtk.Enums.CellRendererMode
instance GHC.Classes.Ord GI.Gtk.Enums.Collation
instance GHC.Classes.Ord GI.Gtk.Enums.ConstraintAttribute
instance GHC.Classes.Ord GI.Gtk.Enums.ConstraintRelation
instance GHC.Classes.Ord GI.Gtk.Enums.ConstraintStrength
instance GHC.Classes.Ord GI.Gtk.Enums.ConstraintVflParserError
instance GHC.Classes.Ord GI.Gtk.Enums.ContentFit
instance GHC.Classes.Ord GI.Gtk.Enums.CornerType
instance GHC.Classes.Ord GI.Gtk.Enums.CssParserError
instance GHC.Classes.Ord GI.Gtk.Enums.CssParserWarning
instance GHC.Classes.Ord GI.Gtk.Enums.DeleteType
instance GHC.Classes.Ord GI.Gtk.Enums.DialogError
instance GHC.Classes.Ord GI.Gtk.Enums.DirectionType
instance GHC.Classes.Ord GI.Gtk.Enums.EditableProperties
instance GHC.Classes.Ord GI.Gtk.Enums.EntryIconPosition
instance GHC.Classes.Ord GI.Gtk.Enums.EventSequenceState
instance GHC.Classes.Ord GI.Gtk.Enums.FileChooserAction
instance GHC.Classes.Ord GI.Gtk.Enums.FileChooserError
instance GHC.Classes.Ord GI.Gtk.Enums.FilterChange
instance GHC.Classes.Ord GI.Gtk.Enums.FilterMatch
instance GHC.Classes.Ord GI.Gtk.Enums.FontLevel
instance GHC.Classes.Ord GI.Gtk.Enums.FontRendering
instance GHC.Classes.Ord GI.Gtk.Enums.GraphicsOffloadEnabled
instance GHC.Classes.Ord GI.Gtk.Enums.IconSize
instance GHC.Classes.Ord GI.Gtk.Enums.IconThemeError
instance GHC.Classes.Ord GI.Gtk.Enums.IconViewDropPosition
instance GHC.Classes.Ord GI.Gtk.Enums.ImageType
instance GHC.Classes.Ord GI.Gtk.Enums.InputPurpose
instance GHC.Classes.Ord GI.Gtk.Enums.InscriptionOverflow
instance GHC.Classes.Ord GI.Gtk.Enums.InterfaceColorScheme
instance GHC.Classes.Ord GI.Gtk.Enums.InterfaceContrast
instance GHC.Classes.Ord GI.Gtk.Enums.Justification
instance GHC.Classes.Ord GI.Gtk.Enums.LevelBarMode
instance GHC.Classes.Ord GI.Gtk.Enums.License
instance GHC.Classes.Ord GI.Gtk.Enums.ListTabBehavior
instance GHC.Classes.Ord GI.Gtk.Enums.MessageType
instance GHC.Classes.Ord GI.Gtk.Enums.MovementStep
instance GHC.Classes.Ord GI.Gtk.Enums.NaturalWrapMode
instance GHC.Classes.Ord GI.Gtk.Enums.NotebookTab
instance GHC.Classes.Ord GI.Gtk.Enums.NumberUpLayout
instance GHC.Classes.Ord GI.Gtk.Enums.Ordering
instance GHC.Classes.Ord GI.Gtk.Enums.Orientation
instance GHC.Classes.Ord GI.Gtk.Enums.Overflow
instance GHC.Classes.Ord GI.Gtk.Enums.PackType
instance GHC.Classes.Ord GI.Gtk.Enums.PadActionType
instance GHC.Classes.Ord GI.Gtk.Enums.PageOrientation
instance GHC.Classes.Ord GI.Gtk.Enums.PageSet
instance GHC.Classes.Ord GI.Gtk.Enums.PanDirection
instance GHC.Classes.Ord GI.Gtk.Enums.PolicyType
instance GHC.Classes.Ord GI.Gtk.Enums.PositionType
instance GHC.Classes.Ord GI.Gtk.Enums.PrintDuplex
instance GHC.Classes.Ord GI.Gtk.Enums.PrintError
instance GHC.Classes.Ord GI.Gtk.Enums.PrintOperationAction
instance GHC.Classes.Ord GI.Gtk.Enums.PrintOperationResult
instance GHC.Classes.Ord GI.Gtk.Enums.PrintPages
instance GHC.Classes.Ord GI.Gtk.Enums.PrintQuality
instance GHC.Classes.Ord GI.Gtk.Enums.PrintStatus
instance GHC.Classes.Ord GI.Gtk.Enums.PropagationLimit
instance GHC.Classes.Ord GI.Gtk.Enums.PropagationPhase
instance GHC.Classes.Ord GI.Gtk.Enums.RecentManagerError
instance GHC.Classes.Ord GI.Gtk.Enums.ReducedMotion
instance GHC.Classes.Ord GI.Gtk.Enums.ResponseType
instance GHC.Classes.Ord GI.Gtk.Enums.RevealerTransitionType
instance GHC.Classes.Ord GI.Gtk.Enums.ScrollStep
instance GHC.Classes.Ord GI.Gtk.Enums.ScrollType
instance GHC.Classes.Ord GI.Gtk.Enums.ScrollablePolicy
instance GHC.Classes.Ord GI.Gtk.Enums.SelectionMode
instance GHC.Classes.Ord GI.Gtk.Enums.SensitivityType
instance GHC.Classes.Ord GI.Gtk.Enums.ShortcutScope
instance GHC.Classes.Ord GI.Gtk.Enums.ShortcutType
instance GHC.Classes.Ord GI.Gtk.Enums.SizeGroupMode
instance GHC.Classes.Ord GI.Gtk.Enums.SizeRequestMode
instance GHC.Classes.Ord GI.Gtk.Enums.SortType
instance GHC.Classes.Ord GI.Gtk.Enums.SorterChange
instance GHC.Classes.Ord GI.Gtk.Enums.SorterOrder
instance GHC.Classes.Ord GI.Gtk.Enums.SpinButtonUpdatePolicy
instance GHC.Classes.Ord GI.Gtk.Enums.SpinType
instance GHC.Classes.Ord GI.Gtk.Enums.StackTransitionType
instance GHC.Classes.Ord GI.Gtk.Enums.StringFilterMatchMode
instance GHC.Classes.Ord GI.Gtk.Enums.SvgError
instance GHC.Classes.Ord GI.Gtk.Enums.SymbolicColor
instance GHC.Classes.Ord GI.Gtk.Enums.SystemSetting
instance GHC.Classes.Ord GI.Gtk.Enums.TextDirection
instance GHC.Classes.Ord GI.Gtk.Enums.TextExtendSelection
instance GHC.Classes.Ord GI.Gtk.Enums.TextViewLayer
instance GHC.Classes.Ord GI.Gtk.Enums.TextWindowType
instance GHC.Classes.Ord GI.Gtk.Enums.TreeViewColumnSizing
instance GHC.Classes.Ord GI.Gtk.Enums.TreeViewDropPosition
instance GHC.Classes.Ord GI.Gtk.Enums.TreeViewGridLines
instance GHC.Classes.Ord GI.Gtk.Enums.Unit
instance GHC.Classes.Ord GI.Gtk.Enums.WindowGravity
instance GHC.Classes.Ord GI.Gtk.Enums.WrapMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleAnnouncementPriority
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleAutocomplete
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleInvalidState
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessiblePlatformState
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleProperty
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleRelation
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleRole
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleSort
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleState
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleTextContentChange
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleTextGranularity
instance GHC.Internal.Show.Show GI.Gtk.Enums.AccessibleTristate
instance GHC.Internal.Show.Show GI.Gtk.Enums.Align
instance GHC.Internal.Show.Show GI.Gtk.Enums.ArrowType
instance GHC.Internal.Show.Show GI.Gtk.Enums.AssistantPageType
instance GHC.Internal.Show.Show GI.Gtk.Enums.BaselinePosition
instance GHC.Internal.Show.Show GI.Gtk.Enums.BorderStyle
instance GHC.Internal.Show.Show GI.Gtk.Enums.BuilderError
instance GHC.Internal.Show.Show GI.Gtk.Enums.ButtonsType
instance GHC.Internal.Show.Show GI.Gtk.Enums.CellRendererAccelMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.CellRendererMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.Collation
instance GHC.Internal.Show.Show GI.Gtk.Enums.ConstraintAttribute
instance GHC.Internal.Show.Show GI.Gtk.Enums.ConstraintRelation
instance GHC.Internal.Show.Show GI.Gtk.Enums.ConstraintStrength
instance GHC.Internal.Show.Show GI.Gtk.Enums.ConstraintVflParserError
instance GHC.Internal.Show.Show GI.Gtk.Enums.ContentFit
instance GHC.Internal.Show.Show GI.Gtk.Enums.CornerType
instance GHC.Internal.Show.Show GI.Gtk.Enums.CssParserError
instance GHC.Internal.Show.Show GI.Gtk.Enums.CssParserWarning
instance GHC.Internal.Show.Show GI.Gtk.Enums.DeleteType
instance GHC.Internal.Show.Show GI.Gtk.Enums.DialogError
instance GHC.Internal.Show.Show GI.Gtk.Enums.DirectionType
instance GHC.Internal.Show.Show GI.Gtk.Enums.EditableProperties
instance GHC.Internal.Show.Show GI.Gtk.Enums.EntryIconPosition
instance GHC.Internal.Show.Show GI.Gtk.Enums.EventSequenceState
instance GHC.Internal.Show.Show GI.Gtk.Enums.FileChooserAction
instance GHC.Internal.Show.Show GI.Gtk.Enums.FileChooserError
instance GHC.Internal.Show.Show GI.Gtk.Enums.FilterChange
instance GHC.Internal.Show.Show GI.Gtk.Enums.FilterMatch
instance GHC.Internal.Show.Show GI.Gtk.Enums.FontLevel
instance GHC.Internal.Show.Show GI.Gtk.Enums.FontRendering
instance GHC.Internal.Show.Show GI.Gtk.Enums.GraphicsOffloadEnabled
instance GHC.Internal.Show.Show GI.Gtk.Enums.IconSize
instance GHC.Internal.Show.Show GI.Gtk.Enums.IconThemeError
instance GHC.Internal.Show.Show GI.Gtk.Enums.IconViewDropPosition
instance GHC.Internal.Show.Show GI.Gtk.Enums.ImageType
instance GHC.Internal.Show.Show GI.Gtk.Enums.InputPurpose
instance GHC.Internal.Show.Show GI.Gtk.Enums.InscriptionOverflow
instance GHC.Internal.Show.Show GI.Gtk.Enums.InterfaceColorScheme
instance GHC.Internal.Show.Show GI.Gtk.Enums.InterfaceContrast
instance GHC.Internal.Show.Show GI.Gtk.Enums.Justification
instance GHC.Internal.Show.Show GI.Gtk.Enums.LevelBarMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.License
instance GHC.Internal.Show.Show GI.Gtk.Enums.ListTabBehavior
instance GHC.Internal.Show.Show GI.Gtk.Enums.MessageType
instance GHC.Internal.Show.Show GI.Gtk.Enums.MovementStep
instance GHC.Internal.Show.Show GI.Gtk.Enums.NaturalWrapMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.NotebookTab
instance GHC.Internal.Show.Show GI.Gtk.Enums.NumberUpLayout
instance GHC.Internal.Show.Show GI.Gtk.Enums.Ordering
instance GHC.Internal.Show.Show GI.Gtk.Enums.Orientation
instance GHC.Internal.Show.Show GI.Gtk.Enums.Overflow
instance GHC.Internal.Show.Show GI.Gtk.Enums.PackType
instance GHC.Internal.Show.Show GI.Gtk.Enums.PadActionType
instance GHC.Internal.Show.Show GI.Gtk.Enums.PageOrientation
instance GHC.Internal.Show.Show GI.Gtk.Enums.PageSet
instance GHC.Internal.Show.Show GI.Gtk.Enums.PanDirection
instance GHC.Internal.Show.Show GI.Gtk.Enums.PolicyType
instance GHC.Internal.Show.Show GI.Gtk.Enums.PositionType
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintDuplex
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintError
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintOperationAction
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintOperationResult
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintPages
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintQuality
instance GHC.Internal.Show.Show GI.Gtk.Enums.PrintStatus
instance GHC.Internal.Show.Show GI.Gtk.Enums.PropagationLimit
instance GHC.Internal.Show.Show GI.Gtk.Enums.PropagationPhase
instance GHC.Internal.Show.Show GI.Gtk.Enums.RecentManagerError
instance GHC.Internal.Show.Show GI.Gtk.Enums.ReducedMotion
instance GHC.Internal.Show.Show GI.Gtk.Enums.ResponseType
instance GHC.Internal.Show.Show GI.Gtk.Enums.RevealerTransitionType
instance GHC.Internal.Show.Show GI.Gtk.Enums.ScrollStep
instance GHC.Internal.Show.Show GI.Gtk.Enums.ScrollType
instance GHC.Internal.Show.Show GI.Gtk.Enums.ScrollablePolicy
instance GHC.Internal.Show.Show GI.Gtk.Enums.SelectionMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.SensitivityType
instance GHC.Internal.Show.Show GI.Gtk.Enums.ShortcutScope
instance GHC.Internal.Show.Show GI.Gtk.Enums.ShortcutType
instance GHC.Internal.Show.Show GI.Gtk.Enums.SizeGroupMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.SizeRequestMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.SortType
instance GHC.Internal.Show.Show GI.Gtk.Enums.SorterChange
instance GHC.Internal.Show.Show GI.Gtk.Enums.SorterOrder
instance GHC.Internal.Show.Show GI.Gtk.Enums.SpinButtonUpdatePolicy
instance GHC.Internal.Show.Show GI.Gtk.Enums.SpinType
instance GHC.Internal.Show.Show GI.Gtk.Enums.StackTransitionType
instance GHC.Internal.Show.Show GI.Gtk.Enums.StringFilterMatchMode
instance GHC.Internal.Show.Show GI.Gtk.Enums.SvgError
instance GHC.Internal.Show.Show GI.Gtk.Enums.SymbolicColor
instance GHC.Internal.Show.Show GI.Gtk.Enums.SystemSetting
instance GHC.Internal.Show.Show GI.Gtk.Enums.TextDirection
instance GHC.Internal.Show.Show GI.Gtk.Enums.TextExtendSelection
instance GHC.Internal.Show.Show GI.Gtk.Enums.TextViewLayer
instance GHC.Internal.Show.Show GI.Gtk.Enums.TextWindowType
instance GHC.Internal.Show.Show GI.Gtk.Enums.TreeViewColumnSizing
instance GHC.Internal.Show.Show GI.Gtk.Enums.TreeViewDropPosition
instance GHC.Internal.Show.Show GI.Gtk.Enums.TreeViewGridLines
instance GHC.Internal.Show.Show GI.Gtk.Enums.Unit
instance GHC.Internal.Show.Show GI.Gtk.Enums.WindowGravity
instance GHC.Internal.Show.Show GI.Gtk.Enums.WrapMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleAnnouncementPriority
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleAutocomplete
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleInvalidState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessiblePlatformState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleProperty
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleRelation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleRole
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleSort
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleTextContentChange
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleTextGranularity
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AccessibleTristate
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Align
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ArrowType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.AssistantPageType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.BaselinePosition
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.BorderStyle
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.BuilderError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ButtonsType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.CellRendererAccelMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.CellRendererMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Collation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ConstraintAttribute
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ConstraintRelation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ConstraintStrength
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ConstraintVflParserError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ContentFit
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.CornerType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.DeleteType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.DialogError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.DirectionType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.EditableProperties
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.EntryIconPosition
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.EventSequenceState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.FileChooserAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.FileChooserError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.FilterChange
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.FilterMatch
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.FontLevel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.FontRendering
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.GraphicsOffloadEnabled
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.IconSize
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.IconThemeError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.IconViewDropPosition
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ImageType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.InputPurpose
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.InscriptionOverflow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.InterfaceColorScheme
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.InterfaceContrast
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Justification
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.LevelBarMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.License
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ListTabBehavior
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.MessageType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.MovementStep
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.NaturalWrapMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.NotebookTab
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.NumberUpLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Ordering
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Orientation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Overflow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PackType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PadActionType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PageOrientation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PageSet
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PanDirection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PolicyType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PositionType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintDuplex
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintOperationAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintOperationResult
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintPages
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintQuality
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PrintStatus
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PropagationLimit
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.PropagationPhase
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.RecentManagerError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ReducedMotion
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ResponseType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.RevealerTransitionType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ScrollStep
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ScrollType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ScrollablePolicy
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SelectionMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SensitivityType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ShortcutScope
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.ShortcutType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SizeGroupMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SizeRequestMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SortType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SorterChange
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SorterOrder
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SpinButtonUpdatePolicy
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SpinType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.StackTransitionType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.StringFilterMatchMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SvgError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SymbolicColor
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.SystemSetting
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TextDirection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TextExtendSelection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TextViewLayer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TextWindowType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TreeViewColumnSizing
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TreeViewDropPosition
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.TreeViewGridLines
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.Unit
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.WindowGravity
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Enums.WrapMode

module GI.Gtk.Flags

-- | Types of user actions that may be blocked by GtkApplication.
--   
--   See applicationInhibit.
data ApplicationInhibitFlags

-- | Inhibit ending the user session by logging out or by shutting down the
--   computer
ApplicationInhibitFlagsLogout :: ApplicationInhibitFlags

-- | Inhibit user switching
ApplicationInhibitFlagsSwitch :: ApplicationInhibitFlags

-- | Inhibit suspending the session or computer
ApplicationInhibitFlagsSuspend :: ApplicationInhibitFlags

-- | Inhibit the session being marked as idle (and possibly locked)
ApplicationInhibitFlagsIdle :: ApplicationInhibitFlags

-- | Catch-all for unknown values
AnotherApplicationInhibitFlags :: Int -> ApplicationInhibitFlags

-- | The list of flags that can be passed to builderCreateClosure.
--   
--   New values may be added in the future for new features, so external
--   implementations of BuilderScope should test the flags for
--   unknown values and raise a BuilderErrorInvalidAttribute error
--   when they encounter one.
data BuilderClosureFlags

-- | The closure should be created swapped. See
--   g_cclosure_new_swap() for details.
BuilderClosureFlagsSwapped :: BuilderClosureFlags

-- | Catch-all for unknown values
AnotherBuilderClosureFlags :: Int -> BuilderClosureFlags

-- | Tells how a cell is to be rendered.

-- | Deprecated: (Since version 4.20)There is no replacement.
data CellRendererState

-- | The cell is currently selected, and probably has a selection colored
--   background to render to.
CellRendererStateSelected :: CellRendererState

-- | The mouse is hovering over the cell.
CellRendererStatePrelit :: CellRendererState

-- | The cell is drawn in an insensitive manner
CellRendererStateInsensitive :: CellRendererState

-- | The cell is in a sorted row
CellRendererStateSorted :: CellRendererState

-- | The cell is in the focus row.
CellRendererStateFocused :: CellRendererState

-- | The cell is in a row that can be expanded
CellRendererStateExpandable :: CellRendererState

-- | The cell is in a row that is expanded
CellRendererStateExpanded :: CellRendererState

-- | Catch-all for unknown values
AnotherCellRendererState :: Int -> CellRendererState

-- | Flags to use with setDebugFlags.
--   
--   Settings these flags causes GTK to print out different types of
--   debugging information. Some of these flags are only available when GTK
--   has been configured with -Ddebug=true.
data DebugFlags

-- | Information about GtkTextView
DebugFlagsText :: DebugFlags

-- | Information about GtkTreeView
DebugFlagsTree :: DebugFlags

-- | Information about keyboard shortcuts
DebugFlagsKeybindings :: DebugFlags

-- | Information about modules and extensions
DebugFlagsModules :: DebugFlags

-- | Information about size allocation
DebugFlagsGeometry :: DebugFlags

-- | Information about icon themes
DebugFlagsIcontheme :: DebugFlags

-- | Information about printing
DebugFlagsPrinting :: DebugFlags

-- | Trace GtkBuilder operation
DebugFlagsBuilderTrace :: DebugFlags

-- | Information about size requests
DebugFlagsSizeRequest :: DebugFlags

-- | Disable the style property cache
DebugFlagsNoCssCache :: DebugFlags

-- | Open the GTK inspector
DebugFlagsInteractive :: DebugFlags

-- | Show touch UI elements for pointer events.
--   
--   Since: 4.20
DebugFlagsTouchscreen :: DebugFlags

-- | Information about actions and menu models
DebugFlagsActions :: DebugFlags

-- | Information from layout managers
DebugFlagsLayout :: DebugFlags

-- | Include debug render nodes in the generated snapshots
DebugFlagsSnapshot :: DebugFlags

-- | Information from the constraints solver
DebugFlagsConstraints :: DebugFlags

-- | Log unused GtkBuilder objects
DebugFlagsBuilderObjects :: DebugFlags

-- | Information about accessibility state changes
DebugFlagsA11y :: DebugFlags

-- | Information about icon fallback.
--   
--   Since: 4.2
DebugFlagsIconfallback :: DebugFlags

-- | Inverts the default text-direction.
--   
--   Since: 4.8
DebugFlagsInvertTextDir :: DebugFlags

-- | Information about deprecated CSS features.
--   
--   Since: 4.16
DebugFlagsCss :: DebugFlags

-- | Information about deprecated GtkBuilder features.
--   
--   Since: 4.18
DebugFlagsBuilder :: DebugFlags

-- | Information about session saving.
--   
--   Since: 4.22
DebugFlagsSession :: DebugFlags

-- | Catch-all for unknown values
AnotherDebugFlags :: Int -> DebugFlags

-- | Flags used to influence dialog construction.

-- | Deprecated: (Since version 4.20)There is no replacement.
data DialogFlags

-- | Make the constructed dialog modal
DialogFlagsModal :: DialogFlags

-- | Destroy the dialog when its parent is destroyed
DialogFlagsDestroyWithParent :: DialogFlags

-- | Create dialog with actions in header bar instead of action area
DialogFlagsUseHeaderBar :: DialogFlags

-- | Catch-all for unknown values
AnotherDialogFlags :: Int -> DialogFlags

-- | Describes the behavior of a GtkEventControllerScroll.
data EventControllerScrollFlags

-- | Don't emit scroll.
EventControllerScrollFlagsNone :: EventControllerScrollFlags

-- | Emit scroll with vertical deltas.
EventControllerScrollFlagsVertical :: EventControllerScrollFlags

-- | Emit scroll with horizontal deltas.
EventControllerScrollFlagsHorizontal :: EventControllerScrollFlags

-- | Only emit deltas that are multiples of 1.
EventControllerScrollFlagsDiscrete :: EventControllerScrollFlags

-- | Emit decelerate after continuous scroll finishes.
EventControllerScrollFlagsKinetic :: EventControllerScrollFlags

-- | A EventControllerScrollFlags value to prefer physical direction
--   over logical direction (i.e. oblivious to natural scroll).
--   
--   Since: 4.20
EventControllerScrollFlagsPhysicalDirection :: EventControllerScrollFlags

-- | Emit scroll on both axes.
EventControllerScrollFlagsBothAxes :: EventControllerScrollFlags

-- | Catch-all for unknown values
AnotherEventControllerScrollFlags :: Int -> EventControllerScrollFlags

-- | Specifies the granularity of font selection that is desired in a
--   GtkFontChooser.
--   
--   This enumeration may be extended in the future; applications should
--   ignore unknown values.

-- | Deprecated: (Since version 4.20)There is no replacement.
data FontChooserLevel

-- | Allow selecting a font family
FontChooserLevelFamily :: FontChooserLevel

-- | Allow selecting a specific font face
FontChooserLevelStyle :: FontChooserLevel

-- | Allow selecting a specific font size
FontChooserLevelSize :: FontChooserLevel

-- | Allow changing OpenType font variation axes
FontChooserLevelVariations :: FontChooserLevel

-- | Allow selecting specific OpenType font features
FontChooserLevelFeatures :: FontChooserLevel

-- | Catch-all for unknown values
AnotherFontChooserLevel :: Int -> FontChooserLevel

-- | Used to specify options for iconThemeLookupIcon.
data IconLookupFlags

-- | Perform a regular lookup.
--   
--   Since: 4.18
IconLookupFlagsNone :: IconLookupFlags

-- | Try to always load regular icons, even when symbolic icon names are
--   given
IconLookupFlagsForceRegular :: IconLookupFlags

-- | Try to always load symbolic icons, even when regular icon names are
--   given
IconLookupFlagsForceSymbolic :: IconLookupFlags

-- | Starts loading the texture in the background so it is ready when later
--   needed.
IconLookupFlagsPreload :: IconLookupFlags

-- | Catch-all for unknown values
AnotherIconLookupFlags :: Int -> IconLookupFlags

-- | Describes hints that might be taken into account by input methods or
--   applications.
--   
--   Note that input methods may already tailor their behaviour according
--   to the [enuminputPurpose] of the entry.
--   
--   Some common sense is expected when using these flags - mixing
--   InputHintsLowercase with any of the uppercase hints makes no
--   sense.
--   
--   This enumeration may be extended in the future; input methods should
--   ignore unknown values.
data InputHints

-- | No special behaviour suggested
InputHintsNone :: InputHints

-- | Suggest checking for typos
InputHintsSpellcheck :: InputHints

-- | Suggest not checking for typos
InputHintsNoSpellcheck :: InputHints

-- | Suggest word completion
InputHintsWordCompletion :: InputHints

-- | Suggest to convert all text to lowercase
InputHintsLowercase :: InputHints

-- | Suggest to capitalize all text
InputHintsUppercaseChars :: InputHints

-- | Suggest to capitalize the first character of each word
InputHintsUppercaseWords :: InputHints

-- | Suggest to capitalize the first word of each sentence
InputHintsUppercaseSentences :: InputHints

-- | Suggest to not show an onscreen keyboard (e.g for a calculator that
--   already has all the keys).
InputHintsInhibitOsk :: InputHints

-- | The text is vertical
InputHintsVerticalWriting :: InputHints

-- | Suggest offering Emoji support
InputHintsEmoji :: InputHints

-- | Suggest not offering Emoji support
InputHintsNoEmoji :: InputHints

-- | Request that the input method should not update personalized data
--   (like typing history)
InputHintsPrivate :: InputHints

-- | Catch-all for unknown values
AnotherInputHints :: Int -> InputHints

-- | List of actions to perform when scrolling to items in a list widget.
--   
--   Since: 4.12
data ListScrollFlags

-- | Don't do anything extra
ListScrollFlagsNone :: ListScrollFlags

-- | Focus the target item
ListScrollFlagsFocus :: ListScrollFlags

-- | Select the target item and unselect all other items.
ListScrollFlagsSelect :: ListScrollFlags

-- | Catch-all for unknown values
AnotherListScrollFlags :: Int -> ListScrollFlags

-- | Flags that influence the behavior of
--   [methodwidget.pick].
data PickFlags

-- | The default behavior, include widgets that are receiving events
PickFlagsDefault :: PickFlags

-- | Include widgets that are insensitive
PickFlagsInsensitive :: PickFlags

-- | Include widgets that are marked as non-targetable. See
--   [propertywidget:can-target]
PickFlagsNonTargetable :: PickFlags

-- | Catch-all for unknown values
AnotherPickFlags :: Int -> PickFlags

-- | Flags that affect how PopoverMenu widgets built from a
--   MenuModel are created and displayed.
data PopoverMenuFlags

-- | Submenus are presented as sliding submenus that replace the main menu.
--   
--   Since: 4.14
PopoverMenuFlagsSliding :: PopoverMenuFlags

-- | Submenus are presented as traditional, nested popovers.
PopoverMenuFlagsNested :: PopoverMenuFlags

-- | Catch-all for unknown values
AnotherPopoverMenuFlags :: Int -> PopoverMenuFlags

-- | Specifies which features the print dialog should offer.
--   
--   If neither PrintCapabilitiesGeneratePdf nor
--   PrintCapabilitiesGeneratePs is specified, GTK assumes that all
--   formats are supported.
data PrintCapabilities

-- | Print dialog will offer printing even/odd pages.
PrintCapabilitiesPageSet :: PrintCapabilities

-- | Print dialog will allow to print multiple copies.
PrintCapabilitiesCopies :: PrintCapabilities

-- | Print dialog will allow to collate multiple copies.
PrintCapabilitiesCollate :: PrintCapabilities

-- | Print dialog will allow to print pages in reverse order.
PrintCapabilitiesReverse :: PrintCapabilities

-- | Print dialog will allow to scale the output.
PrintCapabilitiesScale :: PrintCapabilities

-- | The program will send the document to the printer in PDF format
PrintCapabilitiesGeneratePdf :: PrintCapabilities

-- | The program will send the document to the printer in Postscript format
PrintCapabilitiesGeneratePs :: PrintCapabilities

-- | Print dialog will offer a preview
PrintCapabilitiesPreview :: PrintCapabilities

-- | Print dialog will offer printing multiple pages per sheet
PrintCapabilitiesNumberUp :: PrintCapabilities

-- | Print dialog will allow to rearrange pages when printing multiple
--   pages per sheet
PrintCapabilitiesNumberUpLayout :: PrintCapabilities

-- | Catch-all for unknown values
AnotherPrintCapabilities :: Int -> PrintCapabilities

-- | Flags that can be passed to action activation.
--   
--   More flags may be added in the future.
data ShortcutActionFlags

-- | The action is the only action that can be activated. If this flag is
--   not set, a future activation may select a different action.
ShortcutActionFlagsExclusive :: ShortcutActionFlags

-- | Catch-all for unknown values
AnotherShortcutActionFlags :: Int -> ShortcutActionFlags

-- | Describes a widget state.
--   
--   Widget states are used to match the widget against CSS pseudo-classes.
--   Note that GTK extends the regular CSS classes and sometimes uses
--   different names.
data StateFlags

-- | State during normal operation
StateFlagsNormal :: StateFlags

-- | Widget is active
StateFlagsActive :: StateFlags

-- | Widget has a mouse pointer over it
StateFlagsPrelight :: StateFlags

-- | Widget is selected
StateFlagsSelected :: StateFlags

-- | Widget is insensitive
StateFlagsInsensitive :: StateFlags

-- | Widget is inconsistent
StateFlagsInconsistent :: StateFlags

-- | Widget has the keyboard focus
StateFlagsFocused :: StateFlags

-- | Widget is in a background toplevel window
StateFlagsBackdrop :: StateFlags

-- | Widget is in left-to-right text direction
StateFlagsDirLtr :: StateFlags

-- | Widget is in right-to-left text direction
StateFlagsDirRtl :: StateFlags

-- | Widget is a link
StateFlagsLink :: StateFlags

-- | The location the widget points to has already been visited
StateFlagsVisited :: StateFlags

-- | Widget is checked
StateFlagsChecked :: StateFlags

-- | Widget is highlighted as a drop target for DND
StateFlagsDropActive :: StateFlags

-- | Widget has the visible focus
StateFlagsFocusVisible :: StateFlags

-- | Widget contains the keyboard focus
StateFlagsFocusWithin :: StateFlags

-- | Catch-all for unknown values
AnotherStateFlags :: Int -> StateFlags

-- | Flags that modify the behavior of styleContextToString.
--   
--   New values may be added to this enumeration.
data StyleContextPrintFlags

-- | Default value.
StyleContextPrintFlagsNone :: StyleContextPrintFlags

-- | Print the entire tree of CSS nodes starting at the style context's
--   node
StyleContextPrintFlagsRecurse :: StyleContextPrintFlags

-- | Show the values of the CSS properties for each node
StyleContextPrintFlagsShowStyle :: StyleContextPrintFlags

-- | Show information about what changes affect the styles
StyleContextPrintFlagsShowChange :: StyleContextPrintFlags

-- | Catch-all for unknown values
AnotherStyleContextPrintFlags :: Int -> StyleContextPrintFlags

-- | Features of the SVG renderer that can be enabled or disabled.
--   
--   By default, all features except GTK_SVG_TRADITIONAL_SYMBOLIC
--   are enabled.
--   
--   New values may be added in the future.
--   
--   Since: 4.22
data SvgFeatures

-- | Whether to run animations. If disabled, state changes are applied
--   without transitions
SvgFeaturesAnimations :: SvgFeatures

-- | Whether to use system resources, such as fonts. If disabled, only
--   embedded fonts are used
SvgFeaturesSystemResources :: SvgFeatures

-- | Whether to load external resources, such as images. If disabled, only
--   embedded images are loaded
SvgFeaturesExternalResources :: SvgFeatures

-- | Whether to allow gpa extensions, such as states and transitions
SvgFeaturesExtensions :: SvgFeatures

-- | This feature is meant for compatibility with old symbolic icons. If
--   this is enabled, fill and stroke attributes are ignored. The used
--   colors are derived from symbolic style classes if present, and the
--   default fill color is the symbolic foreground color.
SvgFeaturesTraditionalSymbolic :: SvgFeatures

-- | Catch-all for unknown values
AnotherSvgFeatures :: Int -> SvgFeatures

-- | Values for [callbackgtk.TextBufferCommitNotify] to
--   denote the point of the notification.
--   
--   Since: 4.16
data TextBufferNotifyFlags

-- | Be notified before text is inserted into the underlying buffer.
TextBufferNotifyFlagsBeforeInsert :: TextBufferNotifyFlags

-- | Be notified after text has been inserted into the underlying buffer.
TextBufferNotifyFlagsAfterInsert :: TextBufferNotifyFlags

-- | Be notified before text is deleted from the underlying buffer.
TextBufferNotifyFlagsBeforeDelete :: TextBufferNotifyFlags

-- | Be notified after text has been deleted from the underlying buffer.
TextBufferNotifyFlagsAfterDelete :: TextBufferNotifyFlags

-- | Catch-all for unknown values
AnotherTextBufferNotifyFlags :: Int -> TextBufferNotifyFlags

-- | Flags affecting how a search is done.
--   
--   If neither GTK_TEXT_SEARCH_VISIBLE_ONLY nor
--   GTK_TEXT_SEARCH_TEXT_ONLY are enabled, the match must be
--   exact; the special 0xFFFC character will match embedded paintables or
--   child widgets.
data TextSearchFlags

-- | Search only visible data. A search match may have invisible text
--   interspersed.
TextSearchFlagsVisibleOnly :: TextSearchFlags

-- | Search only text. A match may have paintables or child widgets mixed
--   inside the matched range.
TextSearchFlagsTextOnly :: TextSearchFlags

-- | The text will be matched regardless of what case it is in.
TextSearchFlagsCaseInsensitive :: TextSearchFlags

-- | Catch-all for unknown values
AnotherTextSearchFlags :: Int -> TextSearchFlags

-- | These flags indicate various properties of a GtkTreeModel.
--   
--   They are returned by treeModelGetFlags, and must be static for
--   the lifetime of the object. A more complete description of
--   TreeModelFlagsItersPersist can be found in the overview of this
--   section.

-- | Deprecated: (Since version 4.10)There is no replacement
data TreeModelFlags

-- | iterators survive all signals emitted by the tree
TreeModelFlagsItersPersist :: TreeModelFlags

-- | the model is a list only, and never has children
TreeModelFlagsListOnly :: TreeModelFlags

-- | Catch-all for unknown values
AnotherTreeModelFlags :: Int -> TreeModelFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.ApplicationInhibitFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.BuilderClosureFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.CellRendererState
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.DebugFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.DialogFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.EventControllerScrollFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.FontChooserLevel
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.IconLookupFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.InputHints
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.ListScrollFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.PickFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.PopoverMenuFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.PrintCapabilities
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.ShortcutActionFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.StateFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.StyleContextPrintFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.SvgFeatures
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.TextBufferNotifyFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.TextSearchFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gtk.Flags.TreeModelFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.ApplicationInhibitFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.BuilderClosureFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.CellRendererState
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.DebugFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.DialogFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.EventControllerScrollFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.FontChooserLevel
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.IconLookupFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.InputHints
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.ListScrollFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.PickFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.PopoverMenuFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.PrintCapabilities
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.ShortcutActionFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.StateFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.StyleContextPrintFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.SvgFeatures
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.TextBufferNotifyFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.TextSearchFlags
instance GHC.Internal.Enum.Enum GI.Gtk.Flags.TreeModelFlags
instance GHC.Classes.Eq GI.Gtk.Flags.ApplicationInhibitFlags
instance GHC.Classes.Eq GI.Gtk.Flags.BuilderClosureFlags
instance GHC.Classes.Eq GI.Gtk.Flags.CellRendererState
instance GHC.Classes.Eq GI.Gtk.Flags.DebugFlags
instance GHC.Classes.Eq GI.Gtk.Flags.DialogFlags
instance GHC.Classes.Eq GI.Gtk.Flags.EventControllerScrollFlags
instance GHC.Classes.Eq GI.Gtk.Flags.FontChooserLevel
instance GHC.Classes.Eq GI.Gtk.Flags.IconLookupFlags
instance GHC.Classes.Eq GI.Gtk.Flags.InputHints
instance GHC.Classes.Eq GI.Gtk.Flags.ListScrollFlags
instance GHC.Classes.Eq GI.Gtk.Flags.PickFlags
instance GHC.Classes.Eq GI.Gtk.Flags.PopoverMenuFlags
instance GHC.Classes.Eq GI.Gtk.Flags.PrintCapabilities
instance GHC.Classes.Eq GI.Gtk.Flags.ShortcutActionFlags
instance GHC.Classes.Eq GI.Gtk.Flags.StateFlags
instance GHC.Classes.Eq GI.Gtk.Flags.StyleContextPrintFlags
instance GHC.Classes.Eq GI.Gtk.Flags.SvgFeatures
instance GHC.Classes.Eq GI.Gtk.Flags.TextBufferNotifyFlags
instance GHC.Classes.Eq GI.Gtk.Flags.TextSearchFlags
instance GHC.Classes.Eq GI.Gtk.Flags.TreeModelFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.ApplicationInhibitFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.BuilderClosureFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.CellRendererState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.DebugFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.DialogFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.EventControllerScrollFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.FontChooserLevel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.IconLookupFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.InputHints
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.ListScrollFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.PickFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.PopoverMenuFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.PrintCapabilities
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.ShortcutActionFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.StateFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.StyleContextPrintFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.SvgFeatures
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.TextBufferNotifyFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.TextSearchFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Flags.TreeModelFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.ApplicationInhibitFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.BuilderClosureFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.CellRendererState
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.DebugFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.DialogFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.EventControllerScrollFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.FontChooserLevel
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.IconLookupFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.InputHints
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.ListScrollFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.PickFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.PopoverMenuFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.PrintCapabilities
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.ShortcutActionFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.StateFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.StyleContextPrintFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.SvgFeatures
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.TextBufferNotifyFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.TextSearchFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gtk.Flags.TreeModelFlags
instance GHC.Classes.Ord GI.Gtk.Flags.ApplicationInhibitFlags
instance GHC.Classes.Ord GI.Gtk.Flags.BuilderClosureFlags
instance GHC.Classes.Ord GI.Gtk.Flags.CellRendererState
instance GHC.Classes.Ord GI.Gtk.Flags.DebugFlags
instance GHC.Classes.Ord GI.Gtk.Flags.DialogFlags
instance GHC.Classes.Ord GI.Gtk.Flags.EventControllerScrollFlags
instance GHC.Classes.Ord GI.Gtk.Flags.FontChooserLevel
instance GHC.Classes.Ord GI.Gtk.Flags.IconLookupFlags
instance GHC.Classes.Ord GI.Gtk.Flags.InputHints
instance GHC.Classes.Ord GI.Gtk.Flags.ListScrollFlags
instance GHC.Classes.Ord GI.Gtk.Flags.PickFlags
instance GHC.Classes.Ord GI.Gtk.Flags.PopoverMenuFlags
instance GHC.Classes.Ord GI.Gtk.Flags.PrintCapabilities
instance GHC.Classes.Ord GI.Gtk.Flags.ShortcutActionFlags
instance GHC.Classes.Ord GI.Gtk.Flags.StateFlags
instance GHC.Classes.Ord GI.Gtk.Flags.StyleContextPrintFlags
instance GHC.Classes.Ord GI.Gtk.Flags.SvgFeatures
instance GHC.Classes.Ord GI.Gtk.Flags.TextBufferNotifyFlags
instance GHC.Classes.Ord GI.Gtk.Flags.TextSearchFlags
instance GHC.Classes.Ord GI.Gtk.Flags.TreeModelFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.ApplicationInhibitFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.BuilderClosureFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.CellRendererState
instance GHC.Internal.Show.Show GI.Gtk.Flags.DebugFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.DialogFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.EventControllerScrollFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.FontChooserLevel
instance GHC.Internal.Show.Show GI.Gtk.Flags.IconLookupFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.InputHints
instance GHC.Internal.Show.Show GI.Gtk.Flags.ListScrollFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.PickFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.PopoverMenuFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.PrintCapabilities
instance GHC.Internal.Show.Show GI.Gtk.Flags.ShortcutActionFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.StateFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.StyleContextPrintFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.SvgFeatures
instance GHC.Internal.Show.Show GI.Gtk.Flags.TextBufferNotifyFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.TextSearchFlags
instance GHC.Internal.Show.Show GI.Gtk.Flags.TreeModelFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.ApplicationInhibitFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.BuilderClosureFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.CellRendererState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.DebugFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.DialogFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.EventControllerScrollFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.FontChooserLevel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.IconLookupFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.InputHints
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.ListScrollFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.PickFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.PopoverMenuFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.PrintCapabilities
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.ShortcutActionFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.StateFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.StyleContextPrintFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.SvgFeatures
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.TextBufferNotifyFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.TextSearchFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Flags.TreeModelFlags

-- | Allows objects to extend and customize deserialization from ui files.
--   
--   The GtkBuildable interface includes methods for setting names
--   and properties of objects, parsing custom tags and constructing child
--   objects.
--   
--   It is implemented by all widgets and many of the non-widget objects
--   that are provided by GTK. The main user of this interface is
--   Builder. There should be very little need for applications to
--   call any of these functions directly.
--   
--   An object only needs to implement this interface if it needs to extend
--   the GtkBuilder XML format or run any extra routines at
--   deserialization time.
module GI.Gtk.Interfaces.Buildable

-- | Memory-managed wrapper type.
newtype Buildable
Buildable :: ManagedPtr Buildable -> Buildable

-- | Type class for types which can be safely cast to Buildable, for
--   instance with toBuildable.
class (GObject o, IsDescendantOf Buildable o) => IsBuildable o

-- | Cast to Buildable, for types for which this is known to be
--   safe. For general casts, use castTo.
toBuildable :: (MonadIO m, IsBuildable o) => o -> m Buildable

-- | Gets the ID of the buildable object.
--   
--   GtkBuilder sets the name based on the ID attribute of the
--   <object> tag used to construct the
--   buildable.
buildableGetBuildableId :: (HasCallStack, MonadIO m, IsBuildable a) => a -> m (Maybe Text)
instance GHC.Classes.Eq GI.Gtk.Interfaces.Buildable.Buildable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Buildable.Buildable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Buildable.Buildable
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Buildable.Buildable o) => GI.Gtk.Interfaces.Buildable.IsBuildable o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Buildable.Buildable)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Buildable.Buildable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Buildable.Buildable

-- | Provides language binding support to GtkBuilder.
--   
--   The goal of GtkBuilderScope is to look up
--   programming-language-specific values for strings that are given in a
--   GtkBuilder UI file.
--   
--   The primary intended audience is bindings that want to provide deeper
--   integration of GtkBuilder into the language.
--   
--   A GtkBuilderScope instance may be used with multiple
--   GtkBuilder objects, even at once.
--   
--   By default, GTK will use its own implementation of
--   GtkBuilderScope for the C language which can be created via
--   builderCScopeNew.
--   
--   If you implement GtkBuilderScope for a language binding, you
--   may want to (partially) derive from or fall back to a
--   BuilderCScope, as that class implements support for automatic
--   lookups from C symbols.
module GI.Gtk.Interfaces.BuilderScope

-- | Memory-managed wrapper type.
newtype BuilderScope
BuilderScope :: ManagedPtr BuilderScope -> BuilderScope

-- | Type class for types which can be safely cast to BuilderScope,
--   for instance with toBuilderScope.
class (GObject o, IsDescendantOf BuilderScope o) => IsBuilderScope o

-- | Cast to BuilderScope, for types for which this is known to be
--   safe. For general casts, use castTo.
toBuilderScope :: (MonadIO m, IsBuilderScope o) => o -> m BuilderScope
instance GHC.Classes.Eq GI.Gtk.Interfaces.BuilderScope.BuilderScope
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.BuilderScope.BuilderScope
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.BuilderScope.BuilderScope
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.BuilderScope.BuilderScope o) => GI.Gtk.Interfaces.BuilderScope.IsBuilderScope o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.BuilderScope.BuilderScope)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.BuilderScope.BuilderScope
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.BuilderScope.BuilderScope

-- | GtkColorChooser is an interface that is implemented by
--   widgets for choosing colors.
--   
--   Depending on the situation, colors may be allowed to have alpha
--   (translucency).
--   
--   In GTK, the main widgets that implement this interface are
--   ColorChooserWidget, ColorChooserDialog and
--   ColorButton.
module GI.Gtk.Interfaces.ColorChooser

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)Use ColorDialog and
--   ColorDialogButtoninstead of widgets implementing
--   GtkColorChooser
newtype ColorChooser

-- | Deprecated: (Since version 4.10)Use ColorDialog and
--   ColorDialogButtoninstead of widgets implementing
--   GtkColorChooser
ColorChooser :: ManagedPtr ColorChooser -> ColorChooser

-- | Type class for types which can be safely cast to ColorChooser,
--   for instance with toColorChooser.
class (GObject o, IsDescendantOf ColorChooser o) => IsColorChooser o

-- | Cast to ColorChooser, for types for which this is known to be
--   safe. For general casts, use castTo.
toColorChooser :: (MonadIO m, IsColorChooser o) => o -> m ColorChooser

-- | Adds a palette to the color chooser.
--   
--   If orientation is horizontal, the colors are grouped
--   in rows, with colorsPerLine colors in each row. If
--   horizontal is False, the colors are grouped in
--   columns instead.
--   
--   The default color palette of ColorChooserWidget has 45 colors,
--   organized in columns of 5 colors (this includes some grays).
--   
--   The layout of the color chooser widget works best when the palettes
--   have 9-10 columns.
--   
--   Calling this function for the first time has the side effect of
--   removing the default color palette from the color chooser.
--   
--   If colors is Nothing, removes all previously
--   added palettes.

-- | Deprecated: (Since version 4.10)Use ColorDialog instead
colorChooserAddPalette :: (HasCallStack, MonadIO m, IsColorChooser a) => a -> Orientation -> Int32 -> Maybe [RGBA] -> m ()

-- | Gets the currently-selected color.

-- | Deprecated: (Since version 4.10)Use ColorDialog instead
colorChooserGetRgba :: (HasCallStack, MonadIO m, IsColorChooser a) => a -> m RGBA

-- | Returns whether the color chooser shows the alpha channel.

-- | Deprecated: (Since version 4.10)Use ColorDialog instead
colorChooserGetUseAlpha :: (HasCallStack, MonadIO m, IsColorChooser a) => a -> m Bool

-- | Sets the color.

-- | Deprecated: (Since version 4.10)Use ColorDialog instead
colorChooserSetRgba :: (HasCallStack, MonadIO m, IsColorChooser a) => a -> RGBA -> m ()

-- | Sets whether or not the color chooser should use the alpha channel.

-- | Deprecated: (Since version 4.10)Use ColorDialog instead
colorChooserSetUseAlpha :: (HasCallStack, MonadIO m, IsColorChooser a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rgba” property. This is rarely needed directly, but it is
--   used by new.
constructColorChooserRgba :: (IsColorChooser o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “rgba” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get colorChooser #rgba
--   
getColorChooserRgba :: (MonadIO m, IsColorChooser o) => o -> m (Maybe RGBA)

-- | Set the value of the “rgba” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set colorChooser [ #rgba := value ]
--   
setColorChooserRgba :: (MonadIO m, IsColorChooser o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-alpha” property. This is rarely needed directly, but it
--   is used by new.
constructColorChooserUseAlpha :: (IsColorChooser o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-alpha” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorChooser #useAlpha
--   
getColorChooserUseAlpha :: (MonadIO m, IsColorChooser o) => o -> m Bool

-- | Set the value of the “use-alpha” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorChooser [ #useAlpha := value ]
--   
setColorChooserUseAlpha :: (MonadIO m, IsColorChooser o) => o -> Bool -> m ()

-- | Emitted when a color is activated from the color chooser.
--   
--   This usually happens when the user clicks a color swatch, or a color
--   is selected and the user presses one of the keys Space, Shift+Space,
--   Return or Enter.

-- | Deprecated: (Since version 4.10)Use ColorDialog and
--   ColorDialogButtoninstead of widgets implementing
--   GtkColorChooser
type ColorChooserColorActivatedCallback = RGBA -> IO ()

-- | Connect a signal handler for the colorActivated signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after colorChooser #colorActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterColorChooserColorActivated :: (IsColorChooser a, MonadIO m) => a -> ((?self :: a) => ColorChooserColorActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the colorActivated signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on colorChooser #colorActivated callback
--   
onColorChooserColorActivated :: (IsColorChooser a, MonadIO m) => a -> ((?self :: a) => ColorChooserColorActivatedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.ColorChooser.ColorChooser
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.ColorChooser.ColorChooser
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.ColorChooser.ColorChooser
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.ColorChooser.ColorChooser o) => GI.Gtk.Interfaces.ColorChooser.IsColorChooser o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.ColorChooser.ColorChooser)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.ColorChooser.ColorChooser
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.ColorChooser.ColorChooser

-- | Makes it possible to use an object as source or target in a
--   Constraint.
--   
--   Besides GtkWidget, it is also implemented by
--   GtkConstraintGuide.
module GI.Gtk.Interfaces.ConstraintTarget

-- | Memory-managed wrapper type.
newtype ConstraintTarget
ConstraintTarget :: ManagedPtr ConstraintTarget -> ConstraintTarget

-- | Type class for types which can be safely cast to
--   ConstraintTarget, for instance with toConstraintTarget.
class (GObject o, IsDescendantOf ConstraintTarget o) => IsConstraintTarget o

-- | Cast to ConstraintTarget, for types for which this is known to
--   be safe. For general casts, use castTo.
toConstraintTarget :: (MonadIO m, IsConstraintTarget o) => o -> m ConstraintTarget
instance GHC.Classes.Eq GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget o) => GI.Gtk.Interfaces.ConstraintTarget.IsConstraintTarget o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.ConstraintTarget.ConstraintTarget

-- | An interface for widgets that can be oriented horizontally or
--   vertically.
--   
--   GtkOrientable is more flexible in that it allows the
--   orientation to be changed at runtime, allowing the widgets to “flip”.
--   
--   
CSS nodes
--   
--   GtkWidget types implementing the GtkOrientable
--   interface will automatically acquire the horizontal or
--   vertical CSS class depending on the value of the
--   Orientable:orientation property.
module GI.Gtk.Interfaces.Orientable

-- | Memory-managed wrapper type.
newtype Orientable
Orientable :: ManagedPtr Orientable -> Orientable

-- | Type class for types which can be safely cast to Orientable,
--   for instance with toOrientable.
class (GObject o, IsDescendantOf Orientable o) => IsOrientable o

-- | Cast to Orientable, for types for which this is known to be
--   safe. For general casts, use castTo.
toOrientable :: (MonadIO m, IsOrientable o) => o -> m Orientable

-- | Retrieves the orientation of the orientable.
orientableGetOrientation :: (HasCallStack, MonadIO m, IsOrientable a) => a -> m Orientation

-- | Sets the orientation of the orientable.
orientableSetOrientation :: (HasCallStack, MonadIO m, IsOrientable a) => a -> Orientation -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “orientation” property. This is rarely needed directly, but
--   it is used by new.
constructOrientableOrientation :: (IsOrientable o, MonadIO m) => Orientation -> m (GValueConstruct o)

-- | Get the value of the “orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get orientable #orientation
--   
getOrientableOrientation :: (MonadIO m, IsOrientable o) => o -> m Orientation

-- | Set the value of the “orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set orientable [ #orientation := value ]
--   
setOrientableOrientation :: (MonadIO m, IsOrientable o) => o -> Orientation -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.Orientable.Orientable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Orientable.Orientable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Orientable.Orientable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Orientable.Orientable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Orientable.Orientable o) => GI.Gtk.Interfaces.Orientable.IsOrientable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Orientable.Orientable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Orientable.Orientable

-- | An interface that adds support for sections to list models.
--   
--   A GtkSectionModel groups successive items into so-called
--   sections. List widgets like GtkListView and
--   GtkGridView then allow displaying section headers for these
--   sections by installing a header factory.
--   
--   Many GTK list models support sections inherently, or they pass through
--   the sections of a model they are wrapping.
--   
--   When the section groupings of a model change, the model will emit the
--   SectionModel::sectionsChanged signal by calling the
--   sectionModelSectionsChanged function. All sections in the given
--   range then need to be queried again. The
--   ListModel::itemsChanged signal has the same effect, all
--   sections in that range are invalidated, too.
--   
--   Since: 4.12
module GI.Gtk.Interfaces.SectionModel

-- | Memory-managed wrapper type.
newtype SectionModel
SectionModel :: ManagedPtr SectionModel -> SectionModel

-- | Type class for types which can be safely cast to SectionModel,
--   for instance with toSectionModel.
class (GObject o, IsDescendantOf SectionModel o) => IsSectionModel o

-- | Cast to SectionModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toSectionModel :: (MonadIO m, IsSectionModel o) => o -> m SectionModel

-- | Query the section that covers the given position. The number of items
--   in the section can be computed by out_end - out_start.
--   
--   If the position is larger than the number of items, a single range
--   from n_items to G_MAXUINT will be returned.
--   
--   Since: 4.12
sectionModelGetSection :: (HasCallStack, MonadIO m, IsSectionModel a) => a -> Word32 -> m (Word32, Word32)

-- | This function emits the SectionModel::sectionsChanged signal to
--   notify about changes to sections.
--   
--   It must cover all positions that used to be a section start or that
--   are now a section start. It does not have to cover all positions for
--   which the section has changed.
--   
--   The ListModel::itemsChanged implies the effect of the
--   SectionModel::sectionsChanged signal for all the items it
--   covers.
--   
--   It is recommended that when changes to the items cause section changes
--   in a larger range, that the larger range is included in the emission
--   of the ListModel::itemsChanged instead of emitting two signals.
--   
--   Since: 4.12
sectionModelSectionsChanged :: (HasCallStack, MonadIO m, IsSectionModel a) => a -> Word32 -> Word32 -> m ()

-- | Emitted when the start-of-section state of some of the items in
--   model changes.
--   
--   Note that this signal does not specify the new section state of the
--   items, they need to be queried manually. It is also not necessary for
--   a model to change the section state of any of the items in the section
--   model, though it would be rather useless to emit such a signal.
--   
--   The ListModel::itemsChanged implies the effect of the
--   SectionModel::sectionsChanged signal for all the items it
--   covers.
--   
--   Since: 4.12
type SectionModelSectionsChangedCallback = Word32 -> Word32 -> IO ()

-- | Connect a signal handler for the sectionsChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after sectionModel #sectionsChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSectionModelSectionsChanged :: (IsSectionModel a, MonadIO m) => a -> ((?self :: a) => SectionModelSectionsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the sectionsChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on sectionModel #sectionsChanged callback
--   
onSectionModelSectionsChanged :: (IsSectionModel a, MonadIO m) => a -> ((?self :: a) => SectionModelSectionsChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.SectionModel.SectionModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.SectionModel.SectionModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.SectionModel.SectionModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.SectionModel.SectionModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.SectionModel.SectionModel o) => GI.Gtk.Interfaces.SectionModel.IsSectionModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.SectionModel.SectionModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.SectionModel.SectionModel

-- | An interface that is used to implement shortcut scopes.
--   
--   This is important for Native widgets that have their own
--   surface, since the event controllers that are used to implement
--   managed and global scopes are limited to the same native.
--   
--   Examples for widgets implementing GtkShortcutManager are
--   Window and Popover.
--   
--   Every widget that implements GtkShortcutManager will be used
--   as a GTK_SHORTCUT_SCOPE_MANAGED.
module GI.Gtk.Interfaces.ShortcutManager

-- | Memory-managed wrapper type.
newtype ShortcutManager
ShortcutManager :: ManagedPtr ShortcutManager -> ShortcutManager

-- | Type class for types which can be safely cast to
--   ShortcutManager, for instance with toShortcutManager.
class (GObject o, IsDescendantOf ShortcutManager o) => IsShortcutManager o

-- | Cast to ShortcutManager, for types for which this is known to
--   be safe. For general casts, use castTo.
toShortcutManager :: (MonadIO m, IsShortcutManager o) => o -> m ShortcutManager
instance GHC.Classes.Eq GI.Gtk.Interfaces.ShortcutManager.ShortcutManager
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.ShortcutManager.ShortcutManager
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.ShortcutManager.ShortcutManager
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.ShortcutManager.ShortcutManager)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.ShortcutManager.ShortcutManager o) => GI.Gtk.Interfaces.ShortcutManager.IsShortcutManager o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.ShortcutManager.ShortcutManager
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.ShortcutManager.ShortcutManager

-- | An interface for style information used by StyleContext.
--   
--   See styleContextAddProvider and
--   styleContextAddProviderForDisplay for adding
--   GtkStyleProviders.
--   
--   GTK uses the GtkStyleProvider implementation for CSS in
--   CssProvider.
module GI.Gtk.Interfaces.StyleProvider

-- | Memory-managed wrapper type.
newtype StyleProvider
StyleProvider :: ManagedPtr StyleProvider -> StyleProvider

-- | Type class for types which can be safely cast to StyleProvider,
--   for instance with toStyleProvider.
class (GObject o, IsDescendantOf StyleProvider o) => IsStyleProvider o

-- | Cast to StyleProvider, for types for which this is known to be
--   safe. For general casts, use castTo.
toStyleProvider :: (MonadIO m, IsStyleProvider o) => o -> m StyleProvider

-- | No description available in the introspection data.
type StyleProviderGtkPrivateChangedCallback = IO ()

-- | Connect a signal handler for the gtkPrivateChanged signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after styleProvider #gtkPrivateChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterStyleProviderGtkPrivateChanged :: (IsStyleProvider a, MonadIO m) => a -> ((?self :: a) => StyleProviderGtkPrivateChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the gtkPrivateChanged signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on styleProvider #gtkPrivateChanged callback
--   
onStyleProviderGtkPrivateChanged :: (IsStyleProvider a, MonadIO m) => a -> ((?self :: a) => StyleProviderGtkPrivateChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.StyleProvider.StyleProvider
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.StyleProvider.StyleProvider
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.StyleProvider.StyleProvider
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.StyleProvider.StyleProvider)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.StyleProvider.StyleProvider o) => GI.Gtk.Interfaces.StyleProvider.IsStyleProvider o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.StyleProvider.StyleProvider
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.StyleProvider.StyleProvider

-- | An interface that supports symbolic colors in paintables.
--   
--   GdkPaintables implementing the interface will have the
--   SymbolicPaintable.snapshot_symbolic() function
--   called and have the colors for drawing symbolic icons passed. At least
--   5 colors are guaranteed to be passed every time. These 5 colors are
--   the foreground color, and the colors to use for errors, warnings and
--   success information in that order, followed by the system accent
--   color.
--   
--   The system accent color has been added in GTK 4.22. More colors may be
--   added in the future.
--   
--   Since: 4.6
module GI.Gtk.Interfaces.SymbolicPaintable

-- | Memory-managed wrapper type.
newtype SymbolicPaintable
SymbolicPaintable :: ManagedPtr SymbolicPaintable -> SymbolicPaintable

-- | Type class for types which can be safely cast to
--   SymbolicPaintable, for instance with
--   toSymbolicPaintable.
class (GObject o, IsDescendantOf SymbolicPaintable o) => IsSymbolicPaintable o

-- | Cast to SymbolicPaintable, for types for which this is known to
--   be safe. For general casts, use castTo.
toSymbolicPaintable :: (MonadIO m, IsSymbolicPaintable o) => o -> m SymbolicPaintable

-- | Snapshots the paintable with the given colors.
--   
--   If less than 5 colors are provided, GTK will pad the array with
--   default colors.
--   
--   Since: 4.6
symbolicPaintableSnapshotSymbolic :: (HasCallStack, MonadIO m, IsSymbolicPaintable a, IsSnapshot b) => a -> b -> Double -> Double -> [RGBA] -> m ()

-- | Snapshots the paintable with the given colors and weight.
--   
--   If less than 5 colors are provided, GTK will pad the array with
--   default colors.
--   
--   Since: 4.22
symbolicPaintableSnapshotWithWeight :: (HasCallStack, MonadIO m, IsSymbolicPaintable a, IsSnapshot b) => a -> b -> Double -> Double -> [RGBA] -> Double -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable o) => GI.Gtk.Interfaces.SymbolicPaintable.IsSymbolicPaintable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.SymbolicPaintable.SymbolicPaintable

-- | Communicates with platform-specific assistive technologies API.
--   
--   Each platform supported by GTK implements a GtkATContext
--   subclass, and is responsible for updating the accessible state in
--   response to state changes in GtkAccessible.
module GI.Gtk.Objects.ATContext

-- | Memory-managed wrapper type.
newtype ATContext
ATContext :: ManagedPtr ATContext -> ATContext

-- | Type class for types which can be safely cast to ATContext, for
--   instance with toATContext.
class (GObject o, IsDescendantOf ATContext o) => IsATContext o

-- | Cast to ATContext, for types for which this is known to be
--   safe. For general casts, use castTo.
toATContext :: (MonadIO m, IsATContext o) => o -> m ATContext

-- | Creates a new GtkATContext instance for the given accessible
--   role, accessible instance, and display connection.
--   
--   The GtkATContext implementation being instantiated will
--   depend on the platform.
aTContextCreate :: (HasCallStack, MonadIO m, IsAccessible a, IsDisplay b) => AccessibleRole -> a -> b -> m (Maybe ATContext)

-- | Retrieves the GtkAccessible using this context.
aTContextGetAccessible :: (HasCallStack, MonadIO m, IsATContext a) => a -> m Accessible

-- | Retrieves the accessible role of this context.
aTContextGetAccessibleRole :: (HasCallStack, MonadIO m, IsATContext a) => a -> m AccessibleRole

-- | Construct a GValueConstruct with valid value for the
--   “accessible” property. This is rarely needed directly, but it
--   is used by new.
constructATContextAccessible :: (IsATContext o, MonadIO m, IsAccessible a) => a -> m (GValueConstruct o)

-- | Get the value of the “accessible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aTContext #accessible
--   
getATContextAccessible :: (MonadIO m, IsATContext o) => o -> m Accessible

-- | Construct a GValueConstruct with valid value for the
--   “accessible-role” property. This is rarely needed directly,
--   but it is used by new.
constructATContextAccessibleRole :: (IsATContext o, MonadIO m) => AccessibleRole -> m (GValueConstruct o)

-- | Get the value of the “accessible-role” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aTContext #accessibleRole
--   
getATContextAccessibleRole :: (MonadIO m, IsATContext o) => o -> m AccessibleRole

-- | Set the value of the “accessible-role” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aTContext [ #accessibleRole := value ]
--   
setATContextAccessibleRole :: (MonadIO m, IsATContext o) => o -> AccessibleRole -> m ()

-- | Set the value of the “display” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #display
--   
clearATContextDisplay :: (MonadIO m, IsATContext o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “display” property. This is rarely needed directly, but it is
--   used by new.
constructATContextDisplay :: (IsATContext o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aTContext #display
--   
getATContextDisplay :: (MonadIO m, IsATContext o) => o -> m (Maybe Display)

-- | Set the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aTContext [ #display := value ]
--   
setATContextDisplay :: (MonadIO m, IsATContext o, IsDisplay a) => o -> a -> m ()

-- | Get the value of the “realized” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aTContext #realized
--   
getATContextRealized :: (MonadIO m, IsATContext o) => o -> m Bool

-- | Emitted when the attributes of the accessible for the
--   GtkATContext instance change.
type ATContextStateChangeCallback = IO ()

-- | Connect a signal handler for the stateChange signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after aTContext #stateChange callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterATContextStateChange :: (IsATContext a, MonadIO m) => a -> ((?self :: a) => ATContextStateChangeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the stateChange signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on aTContext #stateChange callback
--   
onATContextStateChange :: (IsATContext a, MonadIO m) => a -> ((?self :: a) => ATContextStateChangeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ATContext.ATContext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ATContext.ATContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ATContext.ATContext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ATContext.ATContext o) => GI.Gtk.Objects.ATContext.IsATContext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ATContext.ATContext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ATContext.ATContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ATContext.ATContext

-- | An interface for accessible objects containing formatted text.
--   
--   The GtkAccessibleText interfaces is meant to be implemented
--   by accessible objects that have text formatted with attributes, or
--   non-trivial text contents.
--   
--   You should use the AccessiblePropertyLabel or the
--   AccessiblePropertyDescription properties for accessible objects
--   containing simple, unformatted text.
--   
--   Since: 4.14
module GI.Gtk.Interfaces.AccessibleText

-- | Memory-managed wrapper type.
newtype AccessibleText
AccessibleText :: ManagedPtr AccessibleText -> AccessibleText

-- | Type class for types which can be safely cast to
--   AccessibleText, for instance with toAccessibleText.
class (GObject o, IsDescendantOf AccessibleText o) => IsAccessibleText o

-- | Cast to AccessibleText, for types for which this is known to be
--   safe. For general casts, use castTo.
toAccessibleText :: (MonadIO m, IsAccessibleText o) => o -> m AccessibleText

-- | Updates the position of the caret.
--   
--   Implementations of the GtkAccessibleText interface should
--   call this function every time the caret has moved, in order to notify
--   assistive technologies.
--   
--   Since: 4.14
accessibleTextUpdateCaretPosition :: (HasCallStack, MonadIO m, IsAccessibleText a) => a -> m ()

-- | Notifies assistive technologies of a change in contents.
--   
--   Implementations of the GtkAccessibleText interface should
--   call this function every time their contents change as the result of
--   an operation, like an insertion or a removal.
--   
--   Note: If the change is a deletion, this function must be called
--   *before* removing the contents, if it is an insertion, it must be
--   called *after* inserting the new contents.
--   
--   Since: 4.14
accessibleTextUpdateContents :: (HasCallStack, MonadIO m, IsAccessibleText a) => a -> AccessibleTextContentChange -> Word32 -> Word32 -> m ()

-- | Updates the boundary of the selection.
--   
--   Implementations of the GtkAccessibleText interface should
--   call this function every time the selection has moved, in order to
--   notify assistive technologies.
--   
--   Since: 4.14
accessibleTextUpdateSelectionBound :: (HasCallStack, MonadIO m, IsAccessibleText a) => a -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.AccessibleText.AccessibleText
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.AccessibleText.AccessibleText
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.AccessibleText.AccessibleText
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.AccessibleText.AccessibleText o) => GI.Gtk.Interfaces.AccessibleText.IsAccessibleText o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.AccessibleText.AccessibleText)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.AccessibleText.AccessibleText
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.AccessibleText.AccessibleText

-- | An interface for accessible objects containing a numeric value.
--   
--   GtkAccessibleRange describes ranged controls for Assistive
--   Technologies.
--   
--   Ranged controls have a single value within an allowed range that can
--   optionally be changed by the user.
--   
--   This interface is expected to be implemented by controls using the
--   following roles:
--   
--   
--   
- 
GTK_ACCESSIBLE_ROLE_METER

--   
- 
GTK_ACCESSIBLE_ROLE_PROGRESS_BAR

--   
- 
GTK_ACCESSIBLE_ROLE_SCROLLBAR

--   
- 
GTK_ACCESSIBLE_ROLE_SLIDER

--   
- 
GTK_ACCESSIBLE_ROLE_SPIN_BUTTON

--   
--   
--   If that is not the case, a warning will be issued at run time.
--   
--   In addition to this interface, its implementers are expected to
--   provide the correct values for the following properties:
--   
--   
--   
- 
GTK_ACCESSIBLE_PROPERTY_VALUE_MAX

--   
- 
GTK_ACCESSIBLE_PROPERTY_VALUE_MIN

--   
- 
GTK_ACCESSIBLE_PROPERTY_VALUE_NOW

--   
- 
GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT

--   
--   
--   Since: 4.10
module GI.Gtk.Interfaces.AccessibleRange

-- | Memory-managed wrapper type.
newtype AccessibleRange
AccessibleRange :: ManagedPtr AccessibleRange -> AccessibleRange

-- | Type class for types which can be safely cast to
--   AccessibleRange, for instance with toAccessibleRange.
class (GObject o, IsDescendantOf AccessibleRange o) => IsAccessibleRange o

-- | Cast to AccessibleRange, for types for which this is known to
--   be safe. For general casts, use castTo.
toAccessibleRange :: (MonadIO m, IsAccessibleRange o) => o -> m AccessibleRange
instance GHC.Classes.Eq GI.Gtk.Interfaces.AccessibleRange.AccessibleRange
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.AccessibleRange.AccessibleRange
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.AccessibleRange.AccessibleRange
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.AccessibleRange.AccessibleRange o) => GI.Gtk.Interfaces.AccessibleRange.IsAccessibleRange o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.AccessibleRange.AccessibleRange)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.AccessibleRange.AccessibleRange
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.AccessibleRange.AccessibleRange

-- | An interface for accessible objects containing links.
--   
--   The GtkAccessibleHypertext interfaces is meant to be
--   implemented by accessible objects that contain links. Those links
--   don't necessarily have to be part of text, they can be associated with
--   images and other things.
--   
--   Since: 4.22
module GI.Gtk.Interfaces.AccessibleHypertext

-- | Memory-managed wrapper type.
newtype AccessibleHypertext
AccessibleHypertext :: ManagedPtr AccessibleHypertext -> AccessibleHypertext

-- | Type class for types which can be safely cast to
--   AccessibleHypertext, for instance with
--   toAccessibleHypertext.
class (GObject o, IsDescendantOf AccessibleHypertext o) => IsAccessibleHypertext o

-- | Cast to AccessibleHypertext, for types for which this is known
--   to be safe. For general casts, use castTo.
toAccessibleHypertext :: (MonadIO m, IsAccessibleHypertext o) => o -> m AccessibleHypertext
instance GHC.Classes.Eq GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext o) => GI.Gtk.Interfaces.AccessibleHypertext.IsAccessibleHypertext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.AccessibleHypertext.AccessibleHypertext

-- | An interface for describing UI elements for Assistive Technologies.
--   
--   Every accessible implementation has:
--   
--   
--   
- a “role”, represented by a value of the AccessibleRole
--   enumeration
--   
- “attributes”, represented by a set of AccessibleState,
--   AccessibleProperty and AccessibleRelation values
--   
--   
--   The role cannot be changed after instantiating a
--   GtkAccessible implementation.
--   
--   The attributes are updated every time a UI element's state changes in
--   a way that should be reflected by assistive technologies. For
--   instance, if a GtkWidget visibility changes, the
--   AccessibleStateHidden state will also change to reflect the
--   Widget:visible property.
--   
--   Every accessible implementation is part of a tree of accessible
--   objects. Normally, this tree corresponds to the widget tree, but can
--   be customized by reimplementing the
--   Accessible.get_accessible_parent(),
--   Accessible.get_first_accessible_child() and
--   Accessible.get_next_accessible_sibling()
--   virtual functions.
--   
--   Note that you can not create a top-level accessible object as of now,
--   which means that you must always have a parent accessible object.
--   
--   Also note that when an accessible object does not correspond to a
--   widget, and it has children, whose implementation you don't control,
--   it is necessary to ensure the correct shape of the a11y tree by
--   calling accessibleSetAccessibleParent and updating the sibling
--   by accessibleUpdateNextAccessibleSibling.
module GI.Gtk.Interfaces.Accessible

-- | Memory-managed wrapper type.
newtype Accessible
Accessible :: ManagedPtr Accessible -> Accessible

-- | Type class for types which can be safely cast to Accessible,
--   for instance with toAccessible.
class (GObject o, IsDescendantOf Accessible o) => IsAccessible o

-- | Cast to Accessible, for types for which this is known to be
--   safe. For general casts, use castTo.
toAccessible :: (MonadIO m, IsAccessible o) => o -> m Accessible

-- | Requests the user's screen reader to announce the given message.
--   
--   This kind of notification is useful for messages that either have only
--   a visual representation or that are not exposed visually at all, e.g.
--   a notification about a successful operation.
--   
--   Also, by using this API, you can ensure that the message does not
--   interrupts the user's current screen reader output.
--   
--   Since: 4.14
accessibleAnnounce :: (HasCallStack, MonadIO m, IsAccessible a) => a -> Text -> AccessibleAnnouncementPriority -> m ()

-- | Retrieves the accessible identifier for the accessible object.
--   
--   This functionality can be overridden by GtkAccessible
--   implementations.
--   
--   It is left to the accessible implementation to define the scope and
--   uniqueness of the identifier.
--   
--   Since: 4.22
accessibleGetAccessibleId :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m (Maybe Text)

-- | Retrieves the accessible parent for an accessible object.
--   
--   This function returns NULL for top level widgets.
--   
--   Since: 4.10
accessibleGetAccessibleParent :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m (Maybe Accessible)

-- | Retrieves the accessible role of an accessible object.
accessibleGetAccessibleRole :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m AccessibleRole

-- | Retrieves the implementation for the given accessible object.
--   
--   Since: 4.10
accessibleGetAtContext :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m ATContext

-- | Queries the coordinates and dimensions of this accessible
--   
--   This functionality can be overridden by GtkAccessible
--   implementations, e.g. to get the bounds from an ignored child widget.
--   
--   Since: 4.10
accessibleGetBounds :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m (Bool, Int32, Int32, Int32, Int32)

-- | Retrieves the first accessible child of an accessible object.
--   
--   Since: 4.10
accessibleGetFirstAccessibleChild :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m (Maybe Accessible)

-- | Retrieves the next accessible sibling of an accessible object
--   
--   Since: 4.10
accessibleGetNextAccessibleSibling :: (HasCallStack, MonadIO m, IsAccessible a) => a -> m (Maybe Accessible)

-- | Queries a platform state, such as focus.
--   
--   This functionality can be overridden by GtkAccessible
--   implementations, e.g. to get platform state from an ignored child
--   widget, as is the case for GtkText wrappers.
--   
--   Since: 4.10
accessibleGetPlatformState :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessiblePlatformState -> m Bool

-- | Resets the accessible property to its default value.
accessibleResetProperty :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleProperty -> m ()

-- | Resets the accessible relation to its default value.
accessibleResetRelation :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleRelation -> m ()

-- | Resets the accessible state to its default value.
accessibleResetState :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleState -> m ()

-- | Sets the parent and sibling of an accessible object.
--   
--   This function is meant to be used by accessible implementations that
--   are not part of the widget hierarchy, and but act as a logical bridge
--   between widgets. For instance, if a widget creates an object that
--   holds metadata for each child, and you want that object to implement
--   the GtkAccessible interface, you will use this function to
--   ensure that the parent of each child widget is the metadata object,
--   and the parent of each metadata object is the container widget.
--   
--   Since: 4.10
accessibleSetAccessibleParent :: (HasCallStack, MonadIO m, IsAccessible a, IsAccessible b, IsAccessible c) => a -> Maybe b -> Maybe c -> m ()

-- | Updates the next accessible sibling.
--   
--   That might be useful when a new child of a custom accessible is
--   created, and it needs to be linked to a previous child.
--   
--   Since: 4.10
accessibleUpdateNextAccessibleSibling :: (HasCallStack, MonadIO m, IsAccessible a, IsAccessible b) => a -> Maybe b -> m ()

-- | Informs ATs that the platform state has changed.
--   
--   This function should be used by GtkAccessible implementations
--   that have a platform state but are not widgets. Widgets handle
--   platform states automatically.
--   
--   Since: 4.18
accessibleUpdatePlatformState :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessiblePlatformState -> m ()

-- | Updates an array of accessible properties.
--   
--   This function should be called by GtkWidget types whenever an
--   accessible property change must be communicated to assistive
--   technologies.
--   
--   This function is meant to be used by language bindings.
accessibleUpdateProperty :: (HasCallStack, MonadIO m, IsAccessible a) => a -> [AccessibleProperty] -> [GValue] -> m ()

-- | Updates an array of accessible relations.
--   
--   This function should be called by GtkWidget types whenever an
--   accessible relation change must be communicated to assistive
--   technologies.
--   
--   This function is meant to be used by language bindings.
accessibleUpdateRelation :: (HasCallStack, MonadIO m, IsAccessible a) => a -> [AccessibleRelation] -> [GValue] -> m ()

-- | Updates an array of accessible states.
--   
--   This function should be called by GtkWidget types whenever an
--   accessible state change must be communicated to assistive
--   technologies.
--   
--   This function is meant to be used by language bindings.
accessibleUpdateState :: (HasCallStack, MonadIO m, IsAccessible a) => a -> [AccessibleState] -> [GValue] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accessible-role” property. This is rarely needed directly,
--   but it is used by new.
constructAccessibleAccessibleRole :: (IsAccessible o, MonadIO m) => AccessibleRole -> m (GValueConstruct o)

-- | Get the value of the “accessible-role” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get accessible #accessibleRole
--   
getAccessibleAccessibleRole :: (MonadIO m, IsAccessible o) => o -> m AccessibleRole

-- | Set the value of the “accessible-role” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set accessible [ #accessibleRole := value ]
--   
setAccessibleAccessibleRole :: (MonadIO m, IsAccessible o) => o -> AccessibleRole -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.Accessible.Accessible
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Accessible.Accessible
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Accessible.Accessible
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Accessible.Accessible o) => GI.Gtk.Interfaces.Accessible.IsAccessible o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Accessible.Accessible)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Accessible.Accessible
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Accessible.Accessible

-- | A model for a numeric value.
--   
--   The GtkAdjustment has an associated lower and upper bound. It
--   also contains step and page increments, and a page size.
--   
--   Adjustments are used within several GTK widgets, including
--   SpinButton, Viewport, Scrollbar and Scale.
--   
--   The GtkAdjustment object does not update the value itself.
--   Instead it is left up to the owner of the GtkAdjustment to
--   control the value.
module GI.Gtk.Objects.Adjustment

-- | Memory-managed wrapper type.
newtype Adjustment
Adjustment :: ManagedPtr Adjustment -> Adjustment

-- | Type class for types which can be safely cast to Adjustment,
--   for instance with toAdjustment.
class (GObject o, IsDescendantOf Adjustment o) => IsAdjustment o

-- | Cast to Adjustment, for types for which this is known to be
--   safe. For general casts, use castTo.
toAdjustment :: (MonadIO m, IsAdjustment o) => o -> m Adjustment

-- | Updates the value of the adjustment to ensure that the given range is
--   contained in the current page.
--   
--   The current page goes from value to value +
--   page-size. If the range is larger than the page size, then
--   only the start of it will be in the current page.
--   
--   A Adjustment::valueChanged signal will be emitted if the value
--   is changed.
adjustmentClampPage :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> Double -> m ()

-- | Sets all properties of the adjustment at once.
--   
--   Use this function to avoid multiple emissions of the
--   Adjustment::changed signal. See adjustmentSetLower for
--   an alternative way of compressing multiple emissions of
--   Adjustment::changed into one.
adjustmentConfigure :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> Double -> Double -> Double -> Double -> Double -> m ()

-- | Retrieves the minimum value of the adjustment.
adjustmentGetLower :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Gets the smaller of step increment and page increment.
adjustmentGetMinimumIncrement :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Retrieves the page increment of the adjustment.
adjustmentGetPageIncrement :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Retrieves the page size of the adjustment.
adjustmentGetPageSize :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Retrieves the step increment of the adjustment.
adjustmentGetStepIncrement :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Retrieves the maximum value of the adjustment.
adjustmentGetUpper :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Gets the current value of the adjustment.
adjustmentGetValue :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> m Double

-- | Creates a new GtkAdjustment.
adjustmentNew :: (HasCallStack, MonadIO m) => Double -> Double -> Double -> Double -> Double -> Double -> m Adjustment

-- | Sets the minimum value of the adjustment.
--   
--   When setting multiple adjustment properties via their individual
--   setters, multiple Adjustment::changed signals will be emitted.
--   However, since the emission of the Adjustment::changed signal
--   is tied to the emission of the notify signals of the changed
--   properties, it’s possible to compress the Adjustment::changed
--   signals into one by calling objectFreezeNotify and
--   objectThawNotify around the calls to the individual setters.
--   
--   Alternatively, using a single g_object_set() for all
--   the properties to change, or using adjustmentConfigure has the
--   same effect.
adjustmentSetLower :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> m ()

-- | Sets the page increment of the adjustment.
--   
--   See adjustmentSetLower about how to compress multiple emissions
--   of the Adjustment::changed signal when setting multiple
--   adjustment properties.
adjustmentSetPageIncrement :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> m ()

-- | Sets the page size of the adjustment.
--   
--   See adjustmentSetLower about how to compress multiple emissions
--   of the Adjustment::changed signal when setting multiple
--   adjustment properties.
adjustmentSetPageSize :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> m ()

-- | Sets the step increment of the adjustment.
--   
--   See adjustmentSetLower about how to compress multiple emissions
--   of the Adjustment::changed signal when setting multiple
--   adjustment properties.
adjustmentSetStepIncrement :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> m ()

-- | Sets the maximum value of the adjustment.
--   
--   Note that values will be restricted by upper - page-size if
--   the page-size property is nonzero.
--   
--   See adjustmentSetLower about how to compress multiple emissions
--   of the Adjustment::changed signal when setting multiple
--   adjustment properties.
adjustmentSetUpper :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> m ()

-- | Sets the GtkAdjustment value.
--   
--   The value is clamped to lie between Adjustment:lower and
--   Adjustment:upper.
--   
--   Note that for adjustments which are used in a GtkScrollbar,
--   the effective range of allowed values goes from
--   Adjustment:lower to Adjustment:upper -
--   Adjustment:pageSize.
adjustmentSetValue :: (HasCallStack, MonadIO m, IsAdjustment a) => a -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “lower” property. This is rarely needed directly, but it is
--   used by new.
constructAdjustmentLower :: (IsAdjustment o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “lower” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get adjustment #lower
--   
getAdjustmentLower :: (MonadIO m, IsAdjustment o) => o -> m Double

-- | Set the value of the “lower” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set adjustment [ #lower := value ]
--   
setAdjustmentLower :: (MonadIO m, IsAdjustment o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page-increment” property. This is rarely needed directly,
--   but it is used by new.
constructAdjustmentPageIncrement :: (IsAdjustment o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “page-increment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get adjustment #pageIncrement
--   
getAdjustmentPageIncrement :: (MonadIO m, IsAdjustment o) => o -> m Double

-- | Set the value of the “page-increment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set adjustment [ #pageIncrement := value ]
--   
setAdjustmentPageIncrement :: (MonadIO m, IsAdjustment o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page-size” property. This is rarely needed directly, but it
--   is used by new.
constructAdjustmentPageSize :: (IsAdjustment o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “page-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get adjustment #pageSize
--   
getAdjustmentPageSize :: (MonadIO m, IsAdjustment o) => o -> m Double

-- | Set the value of the “page-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set adjustment [ #pageSize := value ]
--   
setAdjustmentPageSize :: (MonadIO m, IsAdjustment o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “step-increment” property. This is rarely needed directly,
--   but it is used by new.
constructAdjustmentStepIncrement :: (IsAdjustment o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “step-increment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get adjustment #stepIncrement
--   
getAdjustmentStepIncrement :: (MonadIO m, IsAdjustment o) => o -> m Double

-- | Set the value of the “step-increment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set adjustment [ #stepIncrement := value ]
--   
setAdjustmentStepIncrement :: (MonadIO m, IsAdjustment o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “upper” property. This is rarely needed directly, but it is
--   used by new.
constructAdjustmentUpper :: (IsAdjustment o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “upper” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get adjustment #upper
--   
getAdjustmentUpper :: (MonadIO m, IsAdjustment o) => o -> m Double

-- | Set the value of the “upper” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set adjustment [ #upper := value ]
--   
setAdjustmentUpper :: (MonadIO m, IsAdjustment o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “value” property. This is rarely needed directly, but it is
--   used by new.
constructAdjustmentValue :: (IsAdjustment o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get adjustment #value
--   
getAdjustmentValue :: (MonadIO m, IsAdjustment o) => o -> m Double

-- | Set the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set adjustment [ #value := value ]
--   
setAdjustmentValue :: (MonadIO m, IsAdjustment o) => o -> Double -> m ()

-- | Emitted when one or more of the GtkAdjustment properties have
--   been changed.
--   
--   Note that the Adjustment:value property is covered by the
--   Adjustment::valueChanged signal.
type AdjustmentChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after adjustment #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAdjustmentChanged :: (IsAdjustment a, MonadIO m) => a -> ((?self :: a) => AdjustmentChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on adjustment #changed callback
--   
onAdjustmentChanged :: (IsAdjustment a, MonadIO m) => a -> ((?self :: a) => AdjustmentChangedCallback) -> m SignalHandlerId

-- | Emitted when the value has been changed.
type AdjustmentValueChangedCallback = IO ()

-- | Connect a signal handler for the valueChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after adjustment #valueChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAdjustmentValueChanged :: (IsAdjustment a, MonadIO m) => a -> ((?self :: a) => AdjustmentValueChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the valueChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on adjustment #valueChanged callback
--   
onAdjustmentValueChanged :: (IsAdjustment a, MonadIO m) => a -> ((?self :: a) => AdjustmentValueChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Adjustment.Adjustment
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Adjustment.Adjustment
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Adjustment.Adjustment
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Adjustment.Adjustment o) => GI.Gtk.Objects.Adjustment.IsAdjustment o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Adjustment.Adjustment)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Adjustment.Adjustment
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Adjustment.Adjustment

-- | A list model that wraps GBookmarkFile.
--   
--   It presents a GListModel and fills it asynchronously with the
--   GFileInfos returned from that function.
--   
--   The GFileInfos in the list have some attributes in the recent
--   namespace added: recent::private (boolean) and
--   recent:applications (stringv).
module GI.Gtk.Objects.BookmarkList

-- | Memory-managed wrapper type.
newtype BookmarkList
BookmarkList :: ManagedPtr BookmarkList -> BookmarkList

-- | Type class for types which can be safely cast to BookmarkList,
--   for instance with toBookmarkList.
class (GObject o, IsDescendantOf BookmarkList o) => IsBookmarkList o

-- | Cast to BookmarkList, for types for which this is known to be
--   safe. For general casts, use castTo.
toBookmarkList :: (MonadIO m, IsBookmarkList o) => o -> m BookmarkList

-- | Gets the attributes queried on the children.
bookmarkListGetAttributes :: (HasCallStack, MonadIO m, IsBookmarkList a) => a -> m (Maybe Text)

-- | Returns the filename of the bookmark file that this list is loading.
bookmarkListGetFilename :: (HasCallStack, MonadIO m, IsBookmarkList a) => a -> m [Char]

-- | Gets the IO priority to use while loading file.
bookmarkListGetIoPriority :: (HasCallStack, MonadIO m, IsBookmarkList a) => a -> m Int32

-- | Returns True if the files are currently being loaded.
--   
--   Files will be added to self from time to time while
--   loading is going on. The order in which are added is undefined and may
--   change in between runs.
bookmarkListIsLoading :: (HasCallStack, MonadIO m, IsBookmarkList a) => a -> m Bool

-- | Creates a new GtkBookmarkList with the given
--   attributes.
bookmarkListNew :: (HasCallStack, MonadIO m) => Maybe [Char] -> Maybe Text -> m BookmarkList

-- | Sets the attributes to be enumerated and starts the
--   enumeration.
--   
--   If attributes is Nothing, no attributes will be
--   queried, but a list of GFileInfos will still be created.
bookmarkListSetAttributes :: (HasCallStack, MonadIO m, IsBookmarkList a) => a -> Maybe Text -> m ()

-- | Sets the IO priority to use while loading files.
--   
--   The default IO priority is PRIORITY_DEFAULT.
bookmarkListSetIoPriority :: (HasCallStack, MonadIO m, IsBookmarkList a) => a -> Int32 -> m ()

-- | Set the value of the “attributes” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #attributes
--   
clearBookmarkListAttributes :: (MonadIO m, IsBookmarkList o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructBookmarkListAttributes :: (IsBookmarkList o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get bookmarkList #attributes
--   
getBookmarkListAttributes :: (MonadIO m, IsBookmarkList o) => o -> m (Maybe Text)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set bookmarkList [ #attributes := value ]
--   
setBookmarkListAttributes :: (MonadIO m, IsBookmarkList o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “filename” property. This is rarely needed directly, but it
--   is used by new.
constructBookmarkListFilename :: (IsBookmarkList o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “filename” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get bookmarkList #filename
--   
getBookmarkListFilename :: (MonadIO m, IsBookmarkList o) => o -> m (Maybe Text)

-- | Construct a GValueConstruct with valid value for the
--   “io-priority” property. This is rarely needed directly, but
--   it is used by new.
constructBookmarkListIoPriority :: (IsBookmarkList o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “io-priority” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get bookmarkList #ioPriority
--   
getBookmarkListIoPriority :: (MonadIO m, IsBookmarkList o) => o -> m Int32

-- | Set the value of the “io-priority” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set bookmarkList [ #ioPriority := value ]
--   
setBookmarkListIoPriority :: (MonadIO m, IsBookmarkList o) => o -> Int32 -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get bookmarkList #itemType
--   
getBookmarkListItemType :: (MonadIO m, IsBookmarkList o) => o -> m GType

-- | Get the value of the “loading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get bookmarkList #loading
--   
getBookmarkListLoading :: (MonadIO m, IsBookmarkList o) => o -> m Bool

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get bookmarkList #nItems
--   
getBookmarkListNItems :: (MonadIO m, IsBookmarkList o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.BookmarkList.BookmarkList
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.BookmarkList.BookmarkList
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.BookmarkList.BookmarkList
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.BookmarkList.BookmarkList o) => GI.Gtk.Objects.BookmarkList.IsBookmarkList o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.BookmarkList.BookmarkList)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.BookmarkList.BookmarkList
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.BookmarkList.BookmarkList

-- | Reads XML descriptions of a user interface and instantiates the
--   described objects.
--   
--   To create a GtkBuilder from a user interface description,
--   call builderNewFromFile, builderNewFromResource or
--   builderNewFromString.
--   
--   In the (unusual) case that you want to add user interface descriptions
--   from multiple sources to the same GtkBuilder you can call
--   builderNew to get an empty builder and populate it by
--   (multiple) calls to builderAddFromFile,
--   builderAddFromResource or builderAddFromString.
--   
--   A GtkBuilder holds a reference to all objects that it has
--   constructed and drops these references when it is finalized. This
--   finalization can cause the destruction of non-widget objects or
--   widgets which are not contained in a toplevel window. For toplevel
--   windows constructed by a builder, it is the responsibility of the user
--   to call windowDestroy to get rid of them and all the widgets
--   they contain.
--   
--   The functions builderGetObject and builderGetObjects can
--   be used to access the widgets in the interface by the names assigned
--   to them inside the UI description. Toplevel windows returned by these
--   functions will stay around until the user explicitly destroys them
--   with windowDestroy. Other widgets will either be part of a
--   larger hierarchy constructed by the builder (in which case you should
--   not have to worry about their lifecycle), or without a parent, in
--   which case they have to be added to some container to make use of
--   them. Non-widget objects need to be reffed with objectRef to
--   keep them beyond the lifespan of the builder.
--   
--   
GtkBuilder UI Definitions
--   
--   GtkBuilder parses textual descriptions of user interfaces
--   which are specified in XML format. We refer to these descriptions as
--   “GtkBuilder UI definitions” or just “UI definitions” if the context is
--   clear.
--   
--   
Structure of UI definitions
--   
--   UI definition files are always encoded in UTF-8.
--   
--   The toplevel element is <interface>. It optionally
--   takes a “domain” attribute, which will make the builder look for
--   translated strings using dgettext() in the domain specified.
--   This can also be done by calling builderSetTranslationDomain on
--   the builder. For example:
--   
--   
xml code
--   
--   
--   <?xml version="1.0" encoding="UTF-8"?>
--   <interface domain="your-app">
--     ...
--   </interface>
--   
--   
--   
Requirements
--   
--   The target toolkit version(s) are described by
--   <requires> elements, the “lib” attribute specifies the
--   widget library in question (currently the only supported value is
--   “gtk”) and the “version” attribute specifies the target version in the
--   form “<major>.<minor>”.
--   GtkBuilder will error out if the version requirements are not
--   met. For example:
--   
--   
xml code
--   
--   
--   <?xml version="1.0" encoding="UTF-8"?>
--   <interface domain="your-app">
--     <requires lib="gtk" version="4.0" />
--   </interface>
--   
--   
--   
Objects
--   
--   Objects are defined as children of the <interface>
--   element.
--   
--   Objects are described by <object> elements, which can
--   contain <property> elements to set properties,
--   <signal> elements which connect signals to handlers,
--   and <child> elements, which describe child objects.
--   
--   Typically, the specific kind of object represented by an
--   <object> element is specified by the “class” attribute.
--   If the type has not been loaded yet, GTK tries to find the
--   get_type() function from the class name by applying
--   heuristics. This works in most cases, but if necessary, it is possible
--   to specify the name of the get_type() function explicitly
--   with the "type-func" attribute. If your UI definition is referencing
--   internal types, you should make sure to call g_type_ensure()
--   for each object type before parsing the UI definition.
--   
--   Objects may be given a name with the “id” attribute, which allows the
--   application to retrieve them from the builder with
--   builderGetObject. An id is also necessary to use the object as
--   property value in other parts of the UI definition. GTK reserves ids
--   starting and ending with ___ (three consecutive underscores)
--   for its own purposes.
--   
--   
Properties
--   
--   Setting properties of objects is pretty straightforward with the
--   <property> element: the “name” attribute specifies the
--   name of the property, and the content of the element specifies the
--   value:
--   
--   
xml code
--   
--   
--   <object class="GtkButton">
--     <property name="label">Hello, world</property>
--   </object>
--   
--   
--   If the “translatable” attribute is set to a true value, GTK uses
--   gettext() (or dgettext() if the builder has a
--   translation domain set) to find a translation for the value. This
--   happens before the value is parsed, so it can be used for properties
--   of any type, but it is probably most useful for string properties. It
--   is also possible to specify a context to disambiguate short strings,
--   and comments which may help the translators:
--   
--   
xml code
--   
--   
--   <object class="GtkButton">
--     <property name="label"
--               translatable="yes"
--               context="button"
--               comments="A classic">Hello, world</property>
--   </object>
--   
--   
--   The xgettext tool that is part of gettext can extract these strings,
--   but note that it only looks for translatable="yes".
--   
--   GtkBuilder can parse textual representations for the most
--   common property types:
--   
--   
--   
- characters
--   
- strings
--   
- integers
--   
- floating-point numbers
--   
- booleans (strings like “TRUE”, “t”, “yes”, “y”, “1” are
--   interpreted as true values, strings like “FALSE”, “f”, “no”, “n”, “0”
--   are interpreted as false values)
--   
- string lists (separated by newlines)
--   
- enumeration types (can be specified by their full C identifier
--   their short name used when registering the enumeration type, or their
--   integer value)
--   
- flag types (can be specified by their C identifier or short name,
--   optionally combined with “|” for bitwise OR, or a single integer value
--   e.g., “GTK_INPUT_HINT_EMOJI|GTK_INPUT_HINT_LOWERCASE”, or
--   “emoji|lowercase” or 520).
--   
- colors (in the format understood by rGBAParse)
--   
- transforms (in the format understood by
--   transformParse)
--   
- Pango attribute lists (in the format understood by
--   attrListToString)
--   
- Pango tab arrays (in the format understood by
--   tabArrayToString)
--   
- Pango font descriptions (in the format understood by
--   fontDescriptionFromString)
--   
- GVariant (in the format understood by
--   variantParse)
--   
- textures (can be specified as an object id, a resource path or a
--   filename of an image file to load relative to the Builder file or the
--   CWD if builderAddFromString was used)
--   
- GFile (like textures, can be specified as an object id, a URI or a
--   filename of a file to load relative to the Builder file or the CWD if
--   builderAddFromString was used)
--   
--   
--   Objects can be referred to by their name and by default refer to
--   objects declared in the local XML fragment and objects exposed via
--   builderExposeObject. In general, GtkBuilder allows
--   forward references to objects declared in the local XML; an object
--   doesn’t have to be constructed before it can be referred to. The
--   exception to this rule is that an object has to be constructed before
--   it can be used as the value of a construct-only property.
--   
--   
Child objects
--   
--   Many widgets have properties for child widgets, such as
--   Expander:child. In this case, the preferred way to specify the
--   child widget in a ui file is to simply set the property:
--   
--   
xml code
--   
--   
--   <object class="GtkExpander">
--     <property name="child">
--       <object class="GtkLabel">
--       ...
--       </object>
--     </property>
--   </object>
--   
--   
--   Generic containers that can contain an arbitrary number of children,
--   such as Box instead use the <child> element. A
--   <child> element contains an <object>
--   element which describes the child object. Most often, child objects
--   are widgets inside a container, but they can also be, e.g., actions in
--   an action group, or columns in a tree model.
--   
--   Any object type that implements the Buildable interface can
--   specify how children may be added to it. Since many objects and
--   widgets that are included with GTK already implement the
--   GtkBuildable interface, typically child objects can be added
--   using the <child> element without having to be
--   concerned about the underlying implementation.
--   
--   See the `GtkWidget` documentation for many examples of using
--   GtkBuilder with widgets, including setting child objects
--   using the <child> element.
--   
--   A noteworthy special case to the general rule that only objects
--   implementing GtkBuildable may specify how to handle the
--   <child> element is that GtkBuilder provides
--   special support for adding objects to a ListStore by using the
--   <child> element. For instance:
--   
--   
xml code
--   
--   
--   <object class="GListStore">
--     <property name="item-type">MyObject</property>
--     <child>
--       <object class="MyObject" />
--     </child>
--     ...
--   </object>
--   
--   
--   
Property bindings
--   
--   It is also possible to bind a property value to another object's
--   property value using the attributes "bind-source" to specify the
--   source object of the binding, and optionally, "bind-property" and
--   "bind-flags" to specify the source property and source binding flags
--   respectively. Internally, GtkBuilder implements this using
--   Binding objects.
--   
--   For instance, in the example below the “label” property of the
--   bottom_label widget is bound to the “label” property of the
--   top_button widget:
--   
--   
xml code
--   
--   
--   <object class="GtkBox">
--     <property name="orientation">vertical</property>
--     <child>
--       <object class="GtkButton" id="top_button">
--         <property name="label">Hello, world</property>
--       </object>
--     </child>
--     <child>
--       <object class="GtkLabel" id="bottom_label">
--         <property name="label"
--                   bind-source="top_button"
--                   bind-property="label"
--                   bind-flags="sync-create" />
--       </object>
--     </child>
--   </object>
--   
--   
--   For more information, see the documentation of the
--   objectBindProperty method.
--   
--   Please note that another way to set up bindings between objects in .ui
--   files is to use the GtkExpression methodology. See the
--   `GtkExpression` documentation for more information.
--   
--   
Internal children
--   
--   Sometimes it is necessary to refer to widgets which have implicitly
--   been constructed by GTK as part of a composite widget, to set
--   properties on them or to add further children (e.g. the content area
--   of a GtkDialog). This can be achieved by setting the
--   “internal-child” property of the <child> element to a
--   true value. Note that GtkBuilder still requires an
--   <object> element for the internal child, even if it has
--   already been constructed.
--   
--   
Specialized children
--   
--   A number of widgets have different places where a child can be added
--   (e.g. tabs vs. page content in notebooks). This can be reflected in a
--   UI definition by specifying the “type” attribute on a
--   <child> The possible values for the “type” attribute
--   are described in the sections describing the widget-specific portions
--   of UI definitions.
--   
--   
Signal handlers and function pointers
--   
--   Signal handlers are set up with the <signal> element.
--   The “name” attribute specifies the name of the signal, and the
--   “handler” attribute specifies the function to connect to the signal.
--   
--   
xml code
--   
--   
--   <object class="GtkButton" id="hello_button">
--     <signal name="clicked" handler="hello_button__clicked" />
--   </object>
--   
--   
--   The remaining attributes, “after”, “swapped” and “object”, have the
--   same meaning as the corresponding parameters of the
--   GObject.signal_connect_object or
--   GObject.signal_connect_data functions:
--   
--   
--   
- “after” matches the G_CONNECT_AFTER flag, and will ensure
--   that the handler is called after the default class closure for the
--   signal
--   
- “swapped” matches the G_CONNECT_SWAPPED flag, and will
--   swap the instance and closure arguments when invoking the signal
--   handler
--   
- “object” will bind the signal handler to the lifetime of the
--   object referenced by the attribute
--   
--   
--   By default "swapped" will be set to "yes" if not specified otherwise,
--   in the case where "object" is set, for convenience. A
--   “last_modification_time” attribute is also allowed, but it does not
--   have a meaning to the builder.
--   
--   When compiling applications for Windows, you must declare signal
--   callbacks with the G_MODULE_EXPORT decorator, or they will
--   not be put in the symbol table:
--   
--   
c code
--   
--   
--   G_MODULE_EXPORT void
--   hello_button__clicked (GtkButton *button,
--                          gpointer data)
--   {
--     // ...
--   }
--   
--   
--   On Linux and Unix, this is not necessary; applications should instead
--   be compiled with the -Wl,--export-dynamic argument inside
--   their compiler flags, and linked against gmodule-export-2.0.
--   
--   
Example UI Definition
--   
--   
xml code
--   
--   
--   <interface>
--     <object class="GtkDialog" id="dialog1">
--       <child internal-child="content_area">
--         <object class="GtkBox">
--           <child internal-child="action_area">
--             <object class="GtkBox">
--               <child>
--                 <object class="GtkButton" id="ok_button">
--                   <property name="label" translatable="yes">_Ok</property>
--                   <property name="use-underline">True</property>
--                   <signal name="clicked" handler="ok_button_clicked"/>
--                 </object>
--               </child>
--             </object>
--           </child>
--         </object>
--       </child>
--     </object>
--   </interface>
--   
--   
--   
Using GtkBuildable for extending UI definitions
--   
--   Objects can implement the Buildable interface to add custom
--   elements and attributes to the XML. Typically, any extension will be
--   documented in each type that implements the interface.
--   
--   
Menus
--   
--   In addition to objects with properties that are created with
--   <object> and <property> elements,
--   GtkBuilder also allows to parse XML menu definitions as used
--   by Menu when exporting menu models over D-Bus, and as described
--   in the PopoverMenu documentation. Menus can be defined as
--   toplevel elements, or as property values for properties of type
--   GMenuModel.
--   
--   
Templates
--   
--   When describing a Widget, you can use the
--   <template> tag to describe a UI bound to a specific
--   widget type. GTK will automatically load the UI definition when
--   instantiating the type, and bind children and signal handlers to
--   instance fields and function symbols.
--   
--   For more information, see the `GtkWidget` documentation for
--   details.
module GI.Gtk.Objects.Builder

-- | Memory-managed wrapper type.
newtype Builder
Builder :: ManagedPtr Builder -> Builder

-- | Type class for types which can be safely cast to Builder, for
--   instance with toBuilder.
class (GObject o, IsDescendantOf Builder o) => IsBuilder o

-- | Cast to Builder, for types for which this is known to be safe.
--   For general casts, use castTo.
toBuilder :: (MonadIO m, IsBuilder o) => o -> m Builder

-- | Parses a file containing a UI definition and merges it with the
--   current contents of builder.
--   
--   This function is useful if you need to call
--   builderSetCurrentObject) to add user data to callbacks before
--   loading GtkBuilder UI. Otherwise, you probably want
--   builderNewFromFile instead.
--   
--   If an error occurs, 0 will be returned and error will
--   be assigned a GError from the GTK_BUILDER_ERROR,
--   G_MARKUP_ERROR or G_FILE_ERROR domains.
--   
--   It’s not really reasonable to attempt to handle failures of this call.
--   You should not use this function with untrusted files (ie: files that
--   are not part of your application). Broken GtkBuilder files
--   can easily crash your program, and it’s possible that memory was
--   leaked leading up to the reported failure. The only reasonable thing
--   to do when an error is detected is to call g_error().
builderAddFromFile :: (HasCallStack, MonadIO m, IsBuilder a) => a -> [Char] -> m ()

-- | Parses a resource file containing a UI definition and merges it with
--   the current contents of builder.
--   
--   This function is useful if you need to call
--   builderSetCurrentObject to add user data to callbacks before
--   loading GtkBuilder UI. Otherwise, you probably want
--   builderNewFromResource instead.
--   
--   If an error occurs, 0 will be returned and error will
--   be assigned a GError from the
--   GTK_BUILDER_ERROR, G_MARKUP_ERROR or
--   G_RESOURCE_ERROR domain.
--   
--   It’s not really reasonable to attempt to handle failures of this call.
--   The only reasonable thing to do when an error is detected is to call
--   g_error().
builderAddFromResource :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Text -> m ()

-- | Parses a string containing a UI definition and merges it with the
--   current contents of builder.
--   
--   This function is useful if you need to call
--   builderSetCurrentObject to add user data to callbacks before
--   loading GtkBuilder UI. Otherwise, you probably want
--   builderNewFromString instead.
--   
--   Upon errors False will be returned and error
--   will be assigned a GError from the
--   GTK_BUILDER_ERROR, G_MARKUP_ERROR or
--   G_VARIANT_PARSE_ERROR domain.
--   
--   It’s not really reasonable to attempt to handle failures of this call.
--   The only reasonable thing to do when an error is detected is to call
--   g_error().
builderAddFromString :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Text -> Int64 -> m ()

-- | Parses a file containing a UI definition building only the requested
--   objects and merges them with the current contents of
--   builder.
--   
--   Upon errors, 0 will be returned and error will be
--   assigned a GError from the GTK_BUILDER_ERROR,
--   G_MARKUP_ERROR or G_FILE_ERROR domain.
--   
--   If you are adding an object that depends on an object that is not its
--   child (for instance a GtkTreeView that depends on its
--   GtkTreeModel), you have to explicitly list all of them in
--   objectIds.
builderAddObjectsFromFile :: (HasCallStack, MonadIO m, IsBuilder a) => a -> [Char] -> [Text] -> m ()

-- | Parses a resource file containing a UI definition, building only the
--   requested objects and merges them with the current contents of
--   builder.
--   
--   Upon errors, 0 will be returned and error will be
--   assigned a GError from the GTK_BUILDER_ERROR,
--   G_MARKUP_ERROR or G_RESOURCE_ERROR
--   domain.
--   
--   If you are adding an object that depends on an object that is not its
--   child (for instance a GtkTreeView that depends on its
--   GtkTreeModel), you have to explicitly list all of them in
--   objectIds.
builderAddObjectsFromResource :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Text -> [Text] -> m ()

-- | Parses a string containing a UI definition, building only the
--   requested objects and merges them with the current contents of
--   builder.
--   
--   Upon errors False will be returned and error
--   will be assigned a GError from the
--   GTK_BUILDER_ERROR or G_MARKUP_ERROR
--   domain.
--   
--   If you are adding an object that depends on an object that is not its
--   child (for instance a GtkTreeView that depends on its
--   GtkTreeModel), you have to explicitly list all of them in
--   objectIds.
builderAddObjectsFromString :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Text -> Int64 -> [Text] -> m ()

-- | Creates a closure to invoke the function called
--   functionName.
--   
--   This is using the create_closure() implementation of
--   builder's BuilderScope.
--   
--   If no closure could be created, Nothing will be returned and
--   error will be set.
builderCreateClosure :: (HasCallStack, MonadIO m, IsBuilder a, IsObject b) => a -> Text -> [BuilderClosureFlags] -> Maybe b -> m (Maybe (GClosure c))

-- | Add object to the builder object pool
--   so it can be referenced just like any other object built by builder.
--   
--   Only a single object may be added using name. However,
--   it is not an error to expose the same object under multiple names.
--   gtk_builder_get_object() may be used to determine if an
--   object has already been added with name.
builderExposeObject :: (HasCallStack, MonadIO m, IsBuilder a, IsObject b) => a -> Text -> b -> m ()

-- | Main private entry point for building composite components from
--   template XML.
--   
--   Most likely you do not need to call this function in applications as
--   templates are handled by GtkWidget.
builderExtendWithTemplate :: (HasCallStack, MonadIO m, IsBuilder a, IsObject b) => a -> b -> GType -> Text -> Int64 -> m ()

-- | Gets the current object set via builderSetCurrentObject.
builderGetCurrentObject :: (HasCallStack, MonadIO m, IsBuilder a) => a -> m (Maybe Object)

-- | Gets the object named name.
--   
--   Note that this function does not increment the reference count of the
--   returned object.
builderGetObject :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Text -> m (Maybe Object)

-- | Gets all objects that have been constructed by
--   builder.
--   
--   Note that this function does not increment the reference counts of the
--   returned objects.
builderGetObjects :: (HasCallStack, MonadIO m, IsBuilder a) => a -> m [Object]

-- | Gets the scope in use that was set via builderSetScope.
builderGetScope :: (HasCallStack, MonadIO m, IsBuilder a) => a -> m BuilderScope

-- | Gets the translation domain of builder.
builderGetTranslationDomain :: (HasCallStack, MonadIO m, IsBuilder a) => a -> m (Maybe Text)

-- | Looks up a type by name.
--   
--   This is using the virtual function that GtkBuilder has for
--   that purpose. This is mainly used when implementing the
--   GtkBuildable interface on a type.
builderGetTypeFromName :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Text -> m GType

-- | Creates a new empty builder object.
--   
--   This function is only useful if you intend to make multiple calls to
--   builderAddFromFile, builderAddFromResource or
--   builderAddFromString in order to merge multiple UI descriptions
--   into a single builder.
builderNew :: (HasCallStack, MonadIO m) => m Builder

-- | Parses the UI definition in the file filename.
--   
--   If there is an error opening the file or parsing the description then
--   the program will be aborted. You should only ever attempt to parse
--   user interface descriptions that are shipped as part of your program.
builderNewFromFile :: (HasCallStack, MonadIO m) => [Char] -> m Builder

-- | Parses the UI definition at resourcePath.
--   
--   If there is an error locating the resource or parsing the description,
--   then the program will be aborted.
builderNewFromResource :: (HasCallStack, MonadIO m) => Text -> m Builder

-- | Parses the UI definition in string.
--   
--   If string is Nothing-terminated, then
--   length should be -1. If length is not
--   -1, then it is the length of string.
--   
--   If there is an error parsing string then the program
--   will be aborted. You should not attempt to parse user interface
--   description from untrusted sources.
builderNewFromString :: (HasCallStack, MonadIO m) => Text -> Int64 -> m Builder

-- | Sets the current object for the builder.
--   
--   The current object can be thought of as the this object that
--   the builder is working for and will often be used as the default
--   object when an object is optional.
--   
--   widgetInitTemplate for example will set the current object to
--   the widget the template is inited for. For functions like
--   builderNewFromResource, the current object will be
--   Nothing.
builderSetCurrentObject :: (HasCallStack, MonadIO m, IsBuilder a, IsObject b) => a -> Maybe b -> m ()

-- | Sets the scope the builder should operate in.
--   
--   If scope is Nothing, a new BuilderCScope
--   will be created.
builderSetScope :: (HasCallStack, MonadIO m, IsBuilder a, IsBuilderScope b) => a -> Maybe b -> m ()

-- | Sets the translation domain of builder.
builderSetTranslationDomain :: (HasCallStack, MonadIO m, IsBuilder a) => a -> Maybe Text -> m ()

-- | Demarshals a value from a string.
--   
--   This function calls valueInit on the value
--   argument, so it need not be initialised beforehand.
--   
--   Can handle char, uchar, boolean, int, uint, long, ulong, enum, flags,
--   float, double, string, GdkRGBA and GtkAdjustment
--   type values.
--   
--   Upon errors False will be returned and error
--   will be assigned a GError from the
--   GTK_BUILDER_ERROR domain.
builderValueFromString :: (HasCallStack, MonadIO m, IsBuilder a) => a -> GParamSpec -> Text -> m GValue

-- | Demarshals a value from a string.
--   
--   Unlike builderValueFromString, this function takes a
--   GType instead of GParamSpec.
--   
--   Calls valueInit on the value argument, so it
--   need not be initialised beforehand.
--   
--   Upon errors False will be returned and error
--   will be assigned a GError from the
--   GTK_BUILDER_ERROR domain.
builderValueFromStringType :: (HasCallStack, MonadIO m, IsBuilder a) => a -> GType -> Text -> m GValue

-- | Set the value of the “current-object” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #currentObject
--   
clearBuilderCurrentObject :: (MonadIO m, IsBuilder o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “current-object” property. This is rarely needed directly,
--   but it is used by new.
constructBuilderCurrentObject :: (IsBuilder o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)

-- | Get the value of the “current-object” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get builder #currentObject
--   
getBuilderCurrentObject :: (MonadIO m, IsBuilder o) => o -> m (Maybe Object)

-- | Set the value of the “current-object” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set builder [ #currentObject := value ]
--   
setBuilderCurrentObject :: (MonadIO m, IsBuilder o, IsObject a) => o -> a -> m ()

-- | Set the value of the “scope” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #scope
--   
clearBuilderScope :: (MonadIO m, IsBuilder o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scope” property. This is rarely needed directly, but it is
--   used by new.
constructBuilderScope :: (IsBuilder o, MonadIO m, IsBuilderScope a) => a -> m (GValueConstruct o)

-- | Get the value of the “scope” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get builder #scope
--   
getBuilderScope :: (MonadIO m, IsBuilder o) => o -> m BuilderScope

-- | Set the value of the “scope” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set builder [ #scope := value ]
--   
setBuilderScope :: (MonadIO m, IsBuilder o, IsBuilderScope a) => o -> a -> m ()

-- | Set the value of the “translation-domain” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #translationDomain
--   
clearBuilderTranslationDomain :: (MonadIO m, IsBuilder o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “translation-domain” property. This is rarely needed
--   directly, but it is used by new.
constructBuilderTranslationDomain :: (IsBuilder o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “translation-domain” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get builder #translationDomain
--   
getBuilderTranslationDomain :: (MonadIO m, IsBuilder o) => o -> m (Maybe Text)

-- | Set the value of the “translation-domain” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set builder [ #translationDomain := value ]
--   
setBuilderTranslationDomain :: (MonadIO m, IsBuilder o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Builder.Builder
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Builder.Builder
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Builder.Builder
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Builder.Builder o) => GI.Gtk.Objects.Builder.IsBuilder o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Builder.Builder)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Builder.Builder
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Builder.Builder

-- | A GtkBuilderScope implementation for the C language.
--   
--   GtkBuilderCScope instances use symbols explicitly added to
--   builder with prior calls to
--   builderCScopeAddCallbackSymbol. If developers want to do that,
--   they are encouraged to create their own scopes for that purpose.
--   
--   In the case that symbols are not explicitly added; GTK will uses
--   GModule’s introspective features (by opening the module
--   Nothing) to look at the application’s symbol table. From here
--   it tries to match the signal function names given in the interface
--   description with symbols in the application.
--   
--   Note that unless builderCScopeAddCallbackSymbol is called for
--   all signal callbacks which are referenced by the loaded XML, this
--   functionality will require that GModule be supported on the
--   platform.
module GI.Gtk.Objects.BuilderCScope

-- | Memory-managed wrapper type.
newtype BuilderCScope
BuilderCScope :: ManagedPtr BuilderCScope -> BuilderCScope

-- | Type class for types which can be safely cast to BuilderCScope,
--   for instance with toBuilderCScope.
class (GObject o, IsDescendantOf BuilderCScope o) => IsBuilderCScope o

-- | Cast to BuilderCScope, for types for which this is known to be
--   safe. For general casts, use castTo.
toBuilderCScope :: (MonadIO m, IsBuilderCScope o) => o -> m BuilderCScope

-- | Adds the callbackSymbol to the scope of
--   builder under the given callbackName.
--   
--   Using this function overrides the behavior of
--   builderCreateClosure for any callback symbols that are added.
--   Using this method allows for better encapsulation as it does not
--   require that callback symbols be declared in the global namespace.
builderCScopeAddCallbackSymbol :: (HasCallStack, MonadIO m, IsBuilderCScope a) => a -> Text -> Callback -> m ()

-- | Creates a new GtkBuilderCScope object to use with future
--   GtkBuilder instances.
--   
--   Calling this function is only necessary if you want to add custom
--   callbacks via builderCScopeAddCallbackSymbol.
builderCScopeNew :: (HasCallStack, MonadIO m) => m BuilderCScope
instance GHC.Classes.Eq GI.Gtk.Objects.BuilderCScope.BuilderCScope
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.BuilderCScope.BuilderCScope
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.BuilderCScope.BuilderCScope
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.BuilderCScope.BuilderCScope o) => GI.Gtk.Objects.BuilderCScope.IsBuilderCScope o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.BuilderCScope.BuilderCScope)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.BuilderCScope.BuilderCScope
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.BuilderCScope.BuilderCScope

-- | Configures how rows are displayed in a ColumnView.
--   
--   It is not used to set the widgets displayed in the individual cells.
--   For that see [methodgtkColumnViewColumn.set_factory]
--   and [classgtkColumnViewCell].
--   
--   Since: 4.12
module GI.Gtk.Objects.ColumnViewRow

-- | Memory-managed wrapper type.
newtype ColumnViewRow
ColumnViewRow :: ManagedPtr ColumnViewRow -> ColumnViewRow

-- | Type class for types which can be safely cast to ColumnViewRow,
--   for instance with toColumnViewRow.
class (GObject o, IsDescendantOf ColumnViewRow o) => IsColumnViewRow o

-- | Cast to ColumnViewRow, for types for which this is known to be
--   safe. For general casts, use castTo.
toColumnViewRow :: (MonadIO m, IsColumnViewRow o) => o -> m ColumnViewRow

-- | Gets the accessible description of self.
--   
--   Since: 4.12
columnViewRowGetAccessibleDescription :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Text

-- | Gets the accessible label of self.
--   
--   Since: 4.12
columnViewRowGetAccessibleLabel :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Text

-- | Checks if the row has been set to be activatable via
--   columnViewRowSetActivatable.
--   
--   Since: 4.12
columnViewRowGetActivatable :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Bool

-- | Checks if a row item has been set to be focusable via
--   columnViewRowSetFocusable.
--   
--   Since: 4.12
columnViewRowGetFocusable :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Bool

-- | Gets the model item that associated with self.
--   
--   If self is unbound, this function returns
--   Nothing.
--   
--   Since: 4.12
columnViewRowGetItem :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m (Maybe Object)

-- | Gets the position in the model that self currently
--   displays.
--   
--   If self is unbound, INVALID_LIST_POSITION is
--   returned.
--   
--   Since: 4.12
columnViewRowGetPosition :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Word32

-- | Checks if the row has been set to be selectable via
--   columnViewRowSetSelectable.
--   
--   Do not confuse this function with columnViewRowGetSelected.
--   
--   Since: 4.12
columnViewRowGetSelectable :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Bool

-- | Checks if the item is selected that this row corresponds to.
--   
--   The selected state is maintained by the list widget and its model and
--   cannot be set otherwise.
--   
--   Since: 4.12
columnViewRowGetSelected :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> m Bool

-- | Sets the accessible description for the row, which may be used by e.g.
--   screen readers.
--   
--   Since: 4.12
columnViewRowSetAccessibleDescription :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> Text -> m ()

-- | Sets the accessible label for the row, which may be used by e.g.
--   screen readers.
--   
--   Since: 4.12
columnViewRowSetAccessibleLabel :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> Text -> m ()

-- | Sets self to be activatable.
--   
--   If a row is activatable, double-clicking on the row, using the Return
--   key or calling widgetActivate will activate the row. Activating
--   instructs the containing columnview to emit the
--   ColumnView::activate signal.
--   
--   By default, row are activatable.
--   
--   Since: 4.12
columnViewRowSetActivatable :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> Bool -> m ()

-- | Sets self to be focusable.
--   
--   If a row is focusable, it can be focused using the keyboard. This
--   works similar to widgetSetFocusable.
--   
--   Note that if row are not focusable, the contents of cells can still be
--   focused if they are focusable.
--   
--   By default, rows are focusable.
--   
--   Since: 4.12
columnViewRowSetFocusable :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> Bool -> m ()

-- | Sets self to be selectable.
--   
--   If a row is selectable, clicking on the row or using the keyboard will
--   try to select or unselect the row. Whether this succeeds is up to the
--   model to determine, as it is managing the selected state.
--   
--   Note that this means that making a row non-selectable has no influence
--   on the selected state at all. A non-selectable row may still be
--   selected.
--   
--   By default, rows are selectable.
--   
--   Since: 4.12
columnViewRowSetSelectable :: (HasCallStack, MonadIO m, IsColumnViewRow a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accessible-description” property. This is rarely needed
--   directly, but it is used by new.
constructColumnViewRowAccessibleDescription :: (IsColumnViewRow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accessible-description” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #accessibleDescription
--   
getColumnViewRowAccessibleDescription :: (MonadIO m, IsColumnViewRow o) => o -> m Text

-- | Set the value of the “accessible-description” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewRow [ #accessibleDescription := value ]
--   
setColumnViewRowAccessibleDescription :: (MonadIO m, IsColumnViewRow o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accessible-label” property. This is rarely needed directly,
--   but it is used by new.
constructColumnViewRowAccessibleLabel :: (IsColumnViewRow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accessible-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #accessibleLabel
--   
getColumnViewRowAccessibleLabel :: (MonadIO m, IsColumnViewRow o) => o -> m Text

-- | Set the value of the “accessible-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewRow [ #accessibleLabel := value ]
--   
setColumnViewRowAccessibleLabel :: (MonadIO m, IsColumnViewRow o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activatable” property. This is rarely needed directly, but
--   it is used by new.
constructColumnViewRowActivatable :: (IsColumnViewRow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #activatable
--   
getColumnViewRowActivatable :: (MonadIO m, IsColumnViewRow o) => o -> m Bool

-- | Set the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewRow [ #activatable := value ]
--   
setColumnViewRowActivatable :: (MonadIO m, IsColumnViewRow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focusable” property. This is rarely needed directly, but it
--   is used by new.
constructColumnViewRowFocusable :: (IsColumnViewRow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #focusable
--   
getColumnViewRowFocusable :: (MonadIO m, IsColumnViewRow o) => o -> m Bool

-- | Set the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewRow [ #focusable := value ]
--   
setColumnViewRowFocusable :: (MonadIO m, IsColumnViewRow o) => o -> Bool -> m ()

-- | Get the value of the “item” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get columnViewRow #item
--   
getColumnViewRowItem :: (MonadIO m, IsColumnViewRow o) => o -> m (Maybe Object)

-- | Get the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #position
--   
getColumnViewRowPosition :: (MonadIO m, IsColumnViewRow o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “selectable” property. This is rarely needed directly, but it
--   is used by new.
constructColumnViewRowSelectable :: (IsColumnViewRow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #selectable
--   
getColumnViewRowSelectable :: (MonadIO m, IsColumnViewRow o) => o -> m Bool

-- | Set the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewRow [ #selectable := value ]
--   
setColumnViewRowSelectable :: (MonadIO m, IsColumnViewRow o) => o -> Bool -> m ()

-- | Get the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewRow #selected
--   
getColumnViewRowSelected :: (MonadIO m, IsColumnViewRow o) => o -> m Bool
instance GHC.Classes.Eq GI.Gtk.Objects.ColumnViewRow.ColumnViewRow
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColumnViewRow.ColumnViewRow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColumnViewRow.ColumnViewRow
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColumnViewRow.ColumnViewRow o) => GI.Gtk.Objects.ColumnViewRow.IsColumnViewRow o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColumnViewRow.ColumnViewRow)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColumnViewRow.ColumnViewRow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColumnViewRow.ColumnViewRow

-- | Describes a constraint between attributes of two widgets, expressed as
--   a linear equation.
--   
--   The typical equation for a constraint is:
--   
--   
--   target.target_attr = source.source_attr × multiplier + constant
--   
--   
--   Each GtkConstraint is part of a system that will be solved by
--   a ConstraintLayout in order to allocate and position each child
--   widget or guide.
--   
--   The source and target, as well as their attributes, of a
--   GtkConstraint instance are immutable after creation.
module GI.Gtk.Objects.Constraint

-- | Memory-managed wrapper type.
newtype Constraint
Constraint :: ManagedPtr Constraint -> Constraint

-- | Type class for types which can be safely cast to Constraint,
--   for instance with toConstraint.
class (GObject o, IsDescendantOf Constraint o) => IsConstraint o

-- | Cast to Constraint, for types for which this is known to be
--   safe. For general casts, use castTo.
toConstraint :: (MonadIO m, IsConstraint o) => o -> m Constraint

-- | Retrieves the constant factor added to the source attributes' value.
constraintGetConstant :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m Double

-- | Retrieves the multiplication factor applied to the source attribute's
--   value.
constraintGetMultiplier :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m Double

-- | The order relation between the terms of the constraint.
constraintGetRelation :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m ConstraintRelation

-- | Retrieves the ConstraintTarget used as the source for the
--   constraint.
--   
--   If the source is set to NULL at creation, the constraint will
--   use the widget using the ConstraintLayout as the source.
constraintGetSource :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m (Maybe ConstraintTarget)

-- | Retrieves the attribute of the source to be read by the constraint.
constraintGetSourceAttribute :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m ConstraintAttribute

-- | Retrieves the strength of the constraint.
constraintGetStrength :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m Int32

-- | Retrieves the ConstraintTarget used as the target for the
--   constraint.
--   
--   If the targe is set to NULL at creation, the constraint will
--   use the widget using the ConstraintLayout as the target.
constraintGetTarget :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m (Maybe ConstraintTarget)

-- | Retrieves the attribute of the target to be set by the constraint.
constraintGetTargetAttribute :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m ConstraintAttribute

-- | Checks whether the constraint is attached to a
--   ConstraintLayout, and it is contributing to the layout.
constraintIsAttached :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m Bool

-- | Checks whether the constraint describes a relation between an
--   attribute on the Constraint:target and a constant value.
constraintIsConstant :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m Bool

-- | Checks whether the constraint is a required relation for solving the
--   constraint layout.
constraintIsRequired :: (HasCallStack, MonadIO m, IsConstraint a) => a -> m Bool

-- | Creates a new constraint representing a relation between a layout
--   attribute on a source and a layout attribute on a target.
constraintNew :: (HasCallStack, MonadIO m, IsConstraintTarget a, IsConstraintTarget b) => Maybe a -> ConstraintAttribute -> ConstraintRelation -> Maybe b -> ConstraintAttribute -> Double -> Double -> Int32 -> m Constraint

-- | Creates a new constraint representing a relation between a layout
--   attribute on a target and a constant value.
constraintNewConstant :: (HasCallStack, MonadIO m, IsConstraintTarget a) => Maybe a -> ConstraintAttribute -> ConstraintRelation -> Double -> Int32 -> m Constraint

-- | Construct a GValueConstruct with valid value for the
--   “constant” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintConstant :: (IsConstraint o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “constant” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #constant
--   
getConstraintConstant :: (MonadIO m, IsConstraint o) => o -> m Double

-- | Construct a GValueConstruct with valid value for the
--   “multiplier” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintMultiplier :: (IsConstraint o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “multiplier” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #multiplier
--   
getConstraintMultiplier :: (MonadIO m, IsConstraint o) => o -> m Double

-- | Construct a GValueConstruct with valid value for the
--   “relation” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintRelation :: (IsConstraint o, MonadIO m) => ConstraintRelation -> m (GValueConstruct o)

-- | Get the value of the “relation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #relation
--   
getConstraintRelation :: (MonadIO m, IsConstraint o) => o -> m ConstraintRelation

-- | Construct a GValueConstruct with valid value for the
--   “source” property. This is rarely needed directly, but it is
--   used by new.
constructConstraintSource :: (IsConstraint o, MonadIO m, IsConstraintTarget a) => a -> m (GValueConstruct o)

-- | Get the value of the “source” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #source
--   
getConstraintSource :: (MonadIO m, IsConstraint o) => o -> m (Maybe ConstraintTarget)

-- | Construct a GValueConstruct with valid value for the
--   “source-attribute” property. This is rarely needed directly,
--   but it is used by new.
constructConstraintSourceAttribute :: (IsConstraint o, MonadIO m) => ConstraintAttribute -> m (GValueConstruct o)

-- | Get the value of the “source-attribute” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #sourceAttribute
--   
getConstraintSourceAttribute :: (MonadIO m, IsConstraint o) => o -> m ConstraintAttribute

-- | Construct a GValueConstruct with valid value for the
--   “strength” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintStrength :: (IsConstraint o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “strength” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #strength
--   
getConstraintStrength :: (MonadIO m, IsConstraint o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “target” property. This is rarely needed directly, but it is
--   used by new.
constructConstraintTarget :: (IsConstraint o, MonadIO m, IsConstraintTarget a) => a -> m (GValueConstruct o)

-- | Get the value of the “target” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #target
--   
getConstraintTarget :: (MonadIO m, IsConstraint o) => o -> m (Maybe ConstraintTarget)

-- | Construct a GValueConstruct with valid value for the
--   “target-attribute” property. This is rarely needed directly,
--   but it is used by new.
constructConstraintTargetAttribute :: (IsConstraint o, MonadIO m) => ConstraintAttribute -> m (GValueConstruct o)

-- | Get the value of the “target-attribute” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraint #targetAttribute
--   
getConstraintTargetAttribute :: (MonadIO m, IsConstraint o) => o -> m ConstraintAttribute
instance GHC.Classes.Eq GI.Gtk.Objects.Constraint.Constraint
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Constraint.Constraint
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Constraint.Constraint
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Constraint.Constraint o) => GI.Gtk.Objects.Constraint.IsConstraint o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Constraint.Constraint)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Constraint.Constraint
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Constraint.Constraint

-- | An invisible layout element in a GtkConstraintLayout.
--   
--   The GtkConstraintLayout treats guides like widgets. They can
--   be used as the source or target of a GtkConstraint.
--   
--   Guides have a minimum, maximum and natural size. Depending on the
--   constraints that are applied, they can act like a guideline that
--   widgets can be aligned to, or like *flexible space*.
--   
--   Unlike a GtkWidget, a GtkConstraintGuide will not be
--   drawn.
module GI.Gtk.Objects.ConstraintGuide

-- | Memory-managed wrapper type.
newtype ConstraintGuide
ConstraintGuide :: ManagedPtr ConstraintGuide -> ConstraintGuide

-- | Type class for types which can be safely cast to
--   ConstraintGuide, for instance with toConstraintGuide.
class (GObject o, IsDescendantOf ConstraintGuide o) => IsConstraintGuide o

-- | Cast to ConstraintGuide, for types for which this is known to
--   be safe. For general casts, use castTo.
toConstraintGuide :: (MonadIO m, IsConstraintGuide o) => o -> m ConstraintGuide

-- | Gets the maximum size of guide.
constraintGuideGetMaxSize :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> m (Int32, Int32)

-- | Gets the minimum size of guide.
constraintGuideGetMinSize :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> m (Int32, Int32)

-- | Retrieves the name set using constraintGuideSetName.
constraintGuideGetName :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> m (Maybe Text)

-- | Gets the natural size of guide.
constraintGuideGetNatSize :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> m (Int32, Int32)

-- | Retrieves the strength set using constraintGuideSetStrength.
constraintGuideGetStrength :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> m ConstraintStrength

-- | Creates a new GtkConstraintGuide object.
constraintGuideNew :: (HasCallStack, MonadIO m) => m ConstraintGuide

-- | Sets the maximum size of guide.
--   
--   If guide is attached to a
--   GtkConstraintLayout, the constraints will be updated to
--   reflect the new size.
constraintGuideSetMaxSize :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> Int32 -> Int32 -> m ()

-- | Sets the minimum size of guide.
--   
--   If guide is attached to a
--   GtkConstraintLayout, the constraints will be updated to
--   reflect the new size.
constraintGuideSetMinSize :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> Int32 -> Int32 -> m ()

-- | Sets a name for the given GtkConstraintGuide.
--   
--   The name is useful for debugging purposes.
constraintGuideSetName :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> Maybe Text -> m ()

-- | Sets the natural size of guide.
--   
--   If guide is attached to a
--   GtkConstraintLayout, the constraints will be updated to
--   reflect the new size.
constraintGuideSetNatSize :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> Int32 -> Int32 -> m ()

-- | Sets the strength of the constraint on the natural size of the given
--   GtkConstraintGuide.
constraintGuideSetStrength :: (HasCallStack, MonadIO m, IsConstraintGuide a) => a -> ConstraintStrength -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-height” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideMaxHeight :: (IsConstraintGuide o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #maxHeight
--   
getConstraintGuideMaxHeight :: (MonadIO m, IsConstraintGuide o) => o -> m Int32

-- | Set the value of the “max-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #maxHeight := value ]
--   
setConstraintGuideMaxHeight :: (MonadIO m, IsConstraintGuide o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-width” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideMaxWidth :: (IsConstraintGuide o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #maxWidth
--   
getConstraintGuideMaxWidth :: (MonadIO m, IsConstraintGuide o) => o -> m Int32

-- | Set the value of the “max-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #maxWidth := value ]
--   
setConstraintGuideMaxWidth :: (MonadIO m, IsConstraintGuide o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-height” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideMinHeight :: (IsConstraintGuide o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “min-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #minHeight
--   
getConstraintGuideMinHeight :: (MonadIO m, IsConstraintGuide o) => o -> m Int32

-- | Set the value of the “min-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #minHeight := value ]
--   
setConstraintGuideMinHeight :: (MonadIO m, IsConstraintGuide o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-width” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideMinWidth :: (IsConstraintGuide o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “min-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #minWidth
--   
getConstraintGuideMinWidth :: (MonadIO m, IsConstraintGuide o) => o -> m Int32

-- | Set the value of the “min-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #minWidth := value ]
--   
setConstraintGuideMinWidth :: (MonadIO m, IsConstraintGuide o) => o -> Int32 -> m ()

-- | Set the value of the “name” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #name
--   
clearConstraintGuideName :: (MonadIO m, IsConstraintGuide o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructConstraintGuideName :: (IsConstraintGuide o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get constraintGuide #name
--   
getConstraintGuideName :: (MonadIO m, IsConstraintGuide o) => o -> m (Maybe Text)

-- | Set the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #name := value ]
--   
setConstraintGuideName :: (MonadIO m, IsConstraintGuide o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “nat-height” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideNatHeight :: (IsConstraintGuide o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “nat-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #natHeight
--   
getConstraintGuideNatHeight :: (MonadIO m, IsConstraintGuide o) => o -> m Int32

-- | Set the value of the “nat-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #natHeight := value ]
--   
setConstraintGuideNatHeight :: (MonadIO m, IsConstraintGuide o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “nat-width” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideNatWidth :: (IsConstraintGuide o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “nat-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #natWidth
--   
getConstraintGuideNatWidth :: (MonadIO m, IsConstraintGuide o) => o -> m Int32

-- | Set the value of the “nat-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #natWidth := value ]
--   
setConstraintGuideNatWidth :: (MonadIO m, IsConstraintGuide o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strength” property. This is rarely needed directly, but it
--   is used by new.
constructConstraintGuideStrength :: (IsConstraintGuide o, MonadIO m) => ConstraintStrength -> m (GValueConstruct o)

-- | Get the value of the “strength” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get constraintGuide #strength
--   
getConstraintGuideStrength :: (MonadIO m, IsConstraintGuide o) => o -> m ConstraintStrength

-- | Set the value of the “strength” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set constraintGuide [ #strength := value ]
--   
setConstraintGuideStrength :: (MonadIO m, IsConstraintGuide o) => o -> ConstraintStrength -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ConstraintGuide.ConstraintGuide
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ConstraintGuide.ConstraintGuide
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ConstraintGuide.ConstraintGuide
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ConstraintGuide.ConstraintGuide o) => GI.Gtk.Objects.ConstraintGuide.IsConstraintGuide o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ConstraintGuide.ConstraintGuide)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ConstraintGuide.ConstraintGuide
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ConstraintGuide.ConstraintGuide

-- | A list model that wraps fileEnumerateChildrenAsync.
--   
--   It presents a GListModel and fills it asynchronously with the
--   GFileInfos returned from that function.
--   
--   Enumeration will start automatically when the
--   DirectoryList:file property is set.
--   
--   While the GtkDirectoryList is being filled, the
--   DirectoryList:loading property will be set to True. You
--   can listen to that property if you want to show information like a
--   GtkSpinner or a "Loading..." text.
--   
--   If loading fails at any point, the DirectoryList:error property
--   will be set to give more indication about the failure.
--   
--   The GFileInfos returned from a GtkDirectoryList have
--   the "standardfile" attribute set to the GFile they
--   refer to. This way you can get at the file that is referred to in the
--   same way you would via fileEnumeratorGetChild. This means you
--   do not need access to the GtkDirectoryList, but can access
--   the GFile directly from the GFileInfo when operating
--   with a GtkListView or similar.
module GI.Gtk.Objects.DirectoryList

-- | Memory-managed wrapper type.
newtype DirectoryList
DirectoryList :: ManagedPtr DirectoryList -> DirectoryList

-- | Type class for types which can be safely cast to DirectoryList,
--   for instance with toDirectoryList.
class (GObject o, IsDescendantOf DirectoryList o) => IsDirectoryList o

-- | Cast to DirectoryList, for types for which this is known to be
--   safe. For general casts, use castTo.
toDirectoryList :: (MonadIO m, IsDirectoryList o) => o -> m DirectoryList

-- | Gets the attributes queried on the children.
directoryListGetAttributes :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> m (Maybe Text)

-- | Gets the loading error, if any.
--   
--   If an error occurs during the loading process, the loading process
--   will finish and this property allows querying the error that happened.
--   This error will persist until a file is loaded again.
--   
--   An error being set does not mean that no files were loaded, and all
--   successfully queried files will remain in the list.
directoryListGetError :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> m (Maybe GError)

-- | Gets the file whose children are currently enumerated.
directoryListGetFile :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> m (Maybe File)

-- | Gets the IO priority set via directoryListSetIoPriority.
directoryListGetIoPriority :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> m Int32

-- | Returns whether the directory list is monitoring the directory for
--   changes.
directoryListGetMonitored :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> m Bool

-- | Returns True if the children enumeration is currently in
--   progress.
--   
--   Files will be added to self from time to time while
--   loading is going on. The order in which are added is undefined and may
--   change in between runs.
directoryListIsLoading :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> m Bool

-- | Creates a new GtkDirectoryList.
--   
--   The GtkDirectoryList is querying the given
--   file with the given attributes.
directoryListNew :: (HasCallStack, MonadIO m, IsFile a) => Maybe Text -> Maybe a -> m DirectoryList

-- | Sets the attributes to be enumerated and starts the
--   enumeration.
--   
--   If attributes is Nothing, the list of file
--   infos will still be created, it will just not contain any extra
--   attributes.
directoryListSetAttributes :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> Maybe Text -> m ()

-- | Sets the file to be enumerated and starts the
--   enumeration.
--   
--   If file is Nothing, the result will be an empty
--   list.
directoryListSetFile :: (HasCallStack, MonadIO m, IsDirectoryList a, IsFile b) => a -> Maybe b -> m ()

-- | Sets the IO priority to use while loading directories.
--   
--   Setting the priority while self is loading will
--   reprioritize the ongoing load as soon as possible.
--   
--   The default IO priority is PRIORITY_DEFAULT, which is higher
--   than the GTK redraw priority. If you are loading a lot of directories
--   in parallel, lowering it to something like
--   PRIORITY_DEFAULT_IDLE may increase responsiveness.
directoryListSetIoPriority :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> Int32 -> m ()

-- | Sets whether the directory list will monitor the directory for
--   changes.
--   
--   If monitoring is enabled, the itemsChanged signal will be
--   emitted when the directory contents change.
--   
--   When monitoring is turned on after the initial creation of the
--   directory list, the directory is reloaded to avoid missing files that
--   appeared between the initial loading and when monitoring was turned
--   on.
directoryListSetMonitored :: (HasCallStack, MonadIO m, IsDirectoryList a) => a -> Bool -> m ()

-- | Set the value of the “attributes” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #attributes
--   
clearDirectoryListAttributes :: (MonadIO m, IsDirectoryList o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructDirectoryListAttributes :: (IsDirectoryList o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #attributes
--   
getDirectoryListAttributes :: (MonadIO m, IsDirectoryList o) => o -> m (Maybe Text)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set directoryList [ #attributes := value ]
--   
setDirectoryListAttributes :: (MonadIO m, IsDirectoryList o) => o -> Text -> m ()

-- | Get the value of the “error” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #error
--   
getDirectoryListError :: (MonadIO m, IsDirectoryList o) => o -> m (Maybe GError)

-- | Set the value of the “file” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #file
--   
clearDirectoryListFile :: (MonadIO m, IsDirectoryList o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructDirectoryListFile :: (IsDirectoryList o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get directoryList #file
--   
getDirectoryListFile :: (MonadIO m, IsDirectoryList o) => o -> m (Maybe File)

-- | Set the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set directoryList [ #file := value ]
--   
setDirectoryListFile :: (MonadIO m, IsDirectoryList o, IsFile a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “io-priority” property. This is rarely needed directly, but
--   it is used by new.
constructDirectoryListIoPriority :: (IsDirectoryList o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “io-priority” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #ioPriority
--   
getDirectoryListIoPriority :: (MonadIO m, IsDirectoryList o) => o -> m Int32

-- | Set the value of the “io-priority” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set directoryList [ #ioPriority := value ]
--   
setDirectoryListIoPriority :: (MonadIO m, IsDirectoryList o) => o -> Int32 -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #itemType
--   
getDirectoryListItemType :: (MonadIO m, IsDirectoryList o) => o -> m GType

-- | Get the value of the “loading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #loading
--   
getDirectoryListLoading :: (MonadIO m, IsDirectoryList o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “monitored” property. This is rarely needed directly, but it
--   is used by new.
constructDirectoryListMonitored :: (IsDirectoryList o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “monitored” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #monitored
--   
getDirectoryListMonitored :: (MonadIO m, IsDirectoryList o) => o -> m Bool

-- | Set the value of the “monitored” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set directoryList [ #monitored := value ]
--   
setDirectoryListMonitored :: (MonadIO m, IsDirectoryList o) => o -> Bool -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get directoryList #nItems
--   
getDirectoryListNItems :: (MonadIO m, IsDirectoryList o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.DirectoryList.DirectoryList
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DirectoryList.DirectoryList
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DirectoryList.DirectoryList
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DirectoryList.DirectoryList o) => GI.Gtk.Objects.DirectoryList.IsDirectoryList o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DirectoryList.DirectoryList)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DirectoryList.DirectoryList
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DirectoryList.DirectoryList

-- | Holds the text that is displayed in a single-line text entry widget.
--   
--   A single GtkEntryBuffer object can be shared by multiple
--   widgets which will then share the same text content, but not the
--   cursor position, visibility attributes, icon etc.
--   
--   GtkEntryBuffer may be derived from. Such a derived class
--   might allow text to be stored in an alternate location, such as
--   non-pageable memory, useful in the case of important passwords. Or a
--   derived class could integrate with an application’s concept of
--   undo/redo.
module GI.Gtk.Objects.EntryBuffer

-- | Memory-managed wrapper type.
newtype EntryBuffer
EntryBuffer :: ManagedPtr EntryBuffer -> EntryBuffer

-- | Type class for types which can be safely cast to EntryBuffer,
--   for instance with toEntryBuffer.
class (GObject o, IsDescendantOf EntryBuffer o) => IsEntryBuffer o

-- | Cast to EntryBuffer, for types for which this is known to be
--   safe. For general casts, use castTo.
toEntryBuffer :: (MonadIO m, IsEntryBuffer o) => o -> m EntryBuffer

-- | Deletes a sequence of characters from the buffer.
--   
--   nChars characters are deleted starting at
--   position. If nChars is negative, then
--   all characters until the end of the text are deleted.
--   
--   If position or nChars are out of
--   bounds, then they are coerced to sane values.
--   
--   Note that the positions are specified in characters, not bytes.
entryBufferDeleteText :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> Word32 -> Int32 -> m Word32

-- | Used when subclassing GtkEntryBuffer.
entryBufferEmitDeletedText :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> Word32 -> Word32 -> m ()

-- | Used when subclassing GtkEntryBuffer.
entryBufferEmitInsertedText :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> Word32 -> Text -> Word32 -> m ()

-- | Retrieves the length in bytes of the buffer.
--   
--   See entryBufferGetLength.
entryBufferGetBytes :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> m CSize

-- | Retrieves the length in characters of the buffer.
entryBufferGetLength :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> m Word32

-- | Retrieves the maximum allowed length of the text in
--   buffer.
entryBufferGetMaxLength :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> m Int32

-- | Retrieves the contents of the buffer.
--   
--   The memory pointer returned by this call will not change unless this
--   object emits a signal, or is finalized.
entryBufferGetText :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> m Text

-- | Inserts nChars characters of chars
--   into the contents of the buffer, at position position.
--   
--   If nChars is negative, then characters from chars will
--   be inserted until a null-terminator is found. If
--   position or nChars are out of bounds,
--   or the maximum buffer text length is exceeded, then they are coerced
--   to sane values.
--   
--   Note that the position and length are in characters, not in bytes.
entryBufferInsertText :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> Word32 -> Text -> Int32 -> m Word32

-- | Create a new GtkEntryBuffer object.
--   
--   Optionally, specify initial text to set in the buffer.
entryBufferNew :: (HasCallStack, MonadIO m) => Maybe Text -> Int32 -> m EntryBuffer

-- | Sets the maximum allowed length of the contents of the buffer.
--   
--   If the current contents are longer than the given length, then they
--   will be truncated to fit.
entryBufferSetMaxLength :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> Int32 -> m ()

-- | Sets the text in the buffer.
--   
--   This is roughly equivalent to calling entryBufferDeleteText and
--   entryBufferInsertText.
--   
--   Note that nChars is in characters, not in bytes.
entryBufferSetText :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> Text -> Int32 -> m ()

-- | Get the value of the “length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryBuffer #length
--   
getEntryBufferLength :: (MonadIO m, IsEntryBuffer o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “max-length” property. This is rarely needed directly, but it
--   is used by new.
constructEntryBufferMaxLength :: (IsEntryBuffer o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryBuffer #maxLength
--   
getEntryBufferMaxLength :: (MonadIO m, IsEntryBuffer o) => o -> m Int32

-- | Set the value of the “max-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryBuffer [ #maxLength := value ]
--   
setEntryBufferMaxLength :: (MonadIO m, IsEntryBuffer o) => o -> Int32 -> m ()

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearEntryBufferText :: (MonadIO m, IsEntryBuffer o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructEntryBufferText :: (IsEntryBuffer o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get entryBuffer #text
--   
getEntryBufferText :: (MonadIO m, IsEntryBuffer o) => o -> m Text

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set entryBuffer [ #text := value ]
--   
setEntryBufferText :: (MonadIO m, IsEntryBuffer o) => o -> Text -> m ()

-- | The text is altered in the default handler for this signal.
--   
--   If you want access to the text after the text has been modified, use
--   ConnectFlagsAfter.
type EntryBufferDeletedTextCallback = Word32 -> Word32 -> IO ()

-- | Connect a signal handler for the deletedText signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entryBuffer #deletedText callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryBufferDeletedText :: (IsEntryBuffer a, MonadIO m) => a -> ((?self :: a) => EntryBufferDeletedTextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the deletedText signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entryBuffer #deletedText callback
--   
onEntryBufferDeletedText :: (IsEntryBuffer a, MonadIO m) => a -> ((?self :: a) => EntryBufferDeletedTextCallback) -> m SignalHandlerId

-- | This signal is emitted after text is inserted into the buffer.
type EntryBufferInsertedTextCallback = Word32 -> Text -> Word32 -> IO ()

-- | Connect a signal handler for the insertedText signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entryBuffer #insertedText callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryBufferInsertedText :: (IsEntryBuffer a, MonadIO m) => a -> ((?self :: a) => EntryBufferInsertedTextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertedText signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entryBuffer #insertedText callback
--   
onEntryBufferInsertedText :: (IsEntryBuffer a, MonadIO m) => a -> ((?self :: a) => EntryBufferInsertedTextCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EntryBuffer.EntryBuffer
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EntryBuffer.EntryBuffer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EntryBuffer.EntryBuffer
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EntryBuffer.EntryBuffer o) => GI.Gtk.Objects.EntryBuffer.IsEntryBuffer o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EntryBuffer.EntryBuffer)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EntryBuffer.EntryBuffer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EntryBuffer.EntryBuffer

-- | Describes the filtering to be performed by a FilterListModel.
--   
--   The model will use the filter to determine if it should include items
--   or not by calling filterMatch for each item and only keeping
--   the ones that the function returns true for.
--   
--   Filters may change what items they match through their lifetime. In
--   that case, they will emit the Filter::changed signal to notify
--   that previous filter results are no longer valid and that items should
--   be checked again via filterMatch.
--   
--   GTK provides various pre-made filter implementations for common
--   filtering operations. These filters often include properties that can
--   be linked to various widgets to easily allow searches.
--   
--   However, in particular for large lists or complex search methods, it
--   is also possible to subclass GtkFilter and provide one's own
--   filter.
module GI.Gtk.Objects.Filter

-- | Memory-managed wrapper type.
newtype Filter
Filter :: ManagedPtr Filter -> Filter

-- | Type class for types which can be safely cast to Filter, for
--   instance with toFilter.
class (GObject o, IsDescendantOf Filter o) => IsFilter o

-- | Cast to Filter, for types for which this is known to be safe.
--   For general casts, use castTo.
toFilter :: (MonadIO m, IsFilter o) => o -> m Filter

-- | Notifies all users of the filter that it has changed.
--   
--   This emits the Filter::changed signal. Users of the filter
--   should then check items again via filterMatch.
--   
--   Depending on the change parameter, not all items need
--   to be changed, but only some. Refer to the FilterChange
--   documentation for details.
--   
--   This function is intended for implementers of GtkFilter
--   subclasses and should not be called from other functions.
filterChanged :: (HasCallStack, MonadIO m, IsFilter a) => a -> FilterChange -> m ()

-- | Gets the known strictness of a filter.
--   
--   If the strictness is not known, FilterMatchSome is returned.
--   
--   This value may change after emission of the Filter::changed
--   signal.
--   
--   This function is meant purely for optimization purposes. Filters can
--   choose to omit implementing it, but GtkFilterListModel uses
--   it.
filterGetStrictness :: (HasCallStack, MonadIO m, IsFilter a) => a -> m FilterMatch

-- | Checks if the given item is matched by the filter or
--   not.
filterMatch :: (HasCallStack, MonadIO m, IsFilter a, IsObject b) => a -> b -> m Bool

-- | Emitted whenever the filter changed.
--   
--   Users of the filter should then check items again via
--   filterMatch.
--   
--   GtkFilterListModel handles this signal automatically.
--   
--   Depending on the change parameter, not all items need
--   to be checked, but only some. Refer to the FilterChange
--   documentation for details.
type FilterChangedCallback = FilterChange -> IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after filter #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFilterChanged :: (IsFilter a, MonadIO m) => a -> ((?self :: a) => FilterChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on filter #changed callback
--   
onFilterChanged :: (IsFilter a, MonadIO m) => a -> ((?self :: a) => FilterChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Filter.Filter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Filter.Filter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Filter.Filter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Filter.Filter o) => GI.Gtk.Objects.Filter.IsFilter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Filter.Filter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Filter.Filter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Filter.Filter

-- | Filters files by name or mime type.
--   
--   GtkFileFilter can be used to restrict the files being shown
--   in a file chooser. Files can be filtered based on their name (with
--   fileFilterAddPattern or fileFilterAddSuffix) or on their
--   mime type (with fileFilterAddMimeType).
--   
--   Filtering by mime types handles aliasing and subclassing of mime
--   types; e.g. a filter for text/plain also matches a file with mime type
--   application/rtf, since application/rtf is a subclass of text/plain.
--   Note that GtkFileFilter allows wildcards for the subtype of a
--   mime type, so you can e.g. filter for image/\*.
--   
--   Normally, file filters are used by adding them to a file chooser (see
--   fileDialogSetFilters), but it is also possible to manually use
--   a file filter on any FilterListModel containing
--   GFileInfo objects.
--   
--   
GtkFileFilter as GtkBuildable
--   
--   The GtkFileFilter implementation of the GtkBuildable
--   interface supports adding rules using the <mime-types>
--   and <patterns> and <suffixes> elements
--   and listing the rules within. Specifying a <mime-type>
--   or <pattern> or <suffix> has the same
--   effect as as calling fileFilterAddMimeType or
--   fileFilterAddPattern or fileFilterAddSuffix.
--   
--   An example of a UI definition fragment specifying
--   GtkFileFilter rules:
--   
--   
xml code
--   
--   
--   <object class="GtkFileFilter">
--     <property name="name" translatable="yes">Text and Images</property>
--     <mime-types>
--       <mime-type>text/plain</mime-type>
--       <mime-type>image/ *</mime-type>
--     </mime-types>
--     <patterns>
--       <pattern>*.txt</pattern>
--     </patterns>
--     <suffixes>
--       <suffix>png</suffix>
--     </suffixes>
--   </object>
--   
module GI.Gtk.Objects.FileFilter

-- | Memory-managed wrapper type.
newtype FileFilter
FileFilter :: ManagedPtr FileFilter -> FileFilter

-- | Type class for types which can be safely cast to FileFilter,
--   for instance with toFileFilter.
class (GObject o, IsDescendantOf FileFilter o) => IsFileFilter o

-- | Cast to FileFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toFileFilter :: (MonadIO m, IsFileFilter o) => o -> m FileFilter

-- | Adds a rule allowing a given mime type.
fileFilterAddMimeType :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()

-- | Adds a rule allowing a given array of mime types. It can for example
--   be used with Gly.Loader.get_mime_types.
--   
--   This is equivalent to calling fileFilterAddMimeType for all the
--   supported mime types.
--   
--   Since: 4.22
fileFilterAddMimeTypes :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> [Text] -> m ()

-- | Adds a rule allowing a shell style glob pattern.
--   
--   Note that it depends on the platform whether pattern matching ignores
--   case or not. On Windows, it does, on other platforms, it doesn't.
fileFilterAddPattern :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()

-- | Adds a rule allowing image files in the formats supported by
--   GdkPixbuf.
--   
--   This is equivalent to calling fileFilterAddMimeType for all the
--   supported mime types.

-- | Deprecated: (Since version 4.20)Use the api of your image loading
--   framework (e.g. glycin)to enumerate supported formats
fileFilterAddPixbufFormats :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m ()

-- | Adds a suffix match rule to a filter.
--   
--   This is similar to adding a match for the pattern
--   "*.suffix"
--   
--   An exaple to filter files with the suffix ".sub":
--   
--   
c code
--   
--   
--   gtk_file_filter_add_suffix (filter, "sub");
--   
--   
--   Filters with multiple dots are allowed.
--   
--   In contrast to pattern matches, suffix matches are *always*
--   case-insensitive.
--   
--   Since: 4.4
fileFilterAddSuffix :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()

-- | Gets the attributes that need to be filled in for the
--   GFileInfo passed to this filter.
--   
--   This function will not typically be used by applications; it is
--   intended for use in file chooser implementation.
fileFilterGetAttributes :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m [Text]

-- | Gets the human-readable name for the filter.
--   
--   See fileFilterSetName.
fileFilterGetName :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m (Maybe Text)

-- | Creates a new GtkFileFilter with no rules added to it.
--   
--   Such a filter doesn’t accept any files, so is not particularly useful
--   until you add rules with fileFilterAddMimeType,
--   fileFilterAddPattern, fileFilterAddSuffix or
--   fileFilterAddPixbufFormats.
--   
--   To create a filter that accepts any file, use:
--   
--   
c code
--   
--   
--   GtkFileFilter *filter = gtk_file_filter_new ();
--   gtk_file_filter_add_pattern (filter, "*");
--   
fileFilterNew :: (HasCallStack, MonadIO m) => m FileFilter

-- | Deserialize a file filter from a GVariant.
--   
--   The variant must be in the format produced by
--   fileFilterToGvariant.
fileFilterNewFromGvariant :: (HasCallStack, MonadIO m) => GVariant -> m FileFilter

-- | Sets a human-readable name of the filter.
--   
--   This is the string that will be displayed in the user interface if
--   there is a selectable list of filters.
fileFilterSetName :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Maybe Text -> m ()

-- | Serialize a file filter to an a{sv} variant.
fileFilterToGvariant :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m GVariant

-- | Construct a GValueConstruct with valid value for the
--   “mime-types” property. This is rarely needed directly, but it
--   is used by new.
constructFileFilterMimeTypes :: (IsFileFilter o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Set the value of the “name” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #name
--   
clearFileFilterName :: (MonadIO m, IsFileFilter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructFileFilterName :: (IsFileFilter o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get fileFilter #name
--   
getFileFilterName :: (MonadIO m, IsFileFilter o) => o -> m (Maybe Text)

-- | Set the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set fileFilter [ #name := value ]
--   
setFileFilterName :: (MonadIO m, IsFileFilter o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “patterns” property. This is rarely needed directly, but it
--   is used by new.
constructFileFilterPatterns :: (IsFileFilter o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Construct a GValueConstruct with valid value for the
--   “suffixes” property. This is rarely needed directly, but it
--   is used by new.
constructFileFilterSuffixes :: (IsFileFilter o, MonadIO m) => [Text] -> m (GValueConstruct o)
instance GHC.Classes.Eq GI.Gtk.Objects.FileFilter.FileFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FileFilter.FileFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FileFilter.FileFilter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FileFilter.FileFilter o) => GI.Gtk.Objects.FileFilter.IsFileFilter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FileFilter.FileFilter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FileFilter.FileFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FileFilter.FileFilter

-- | GtkFileChooser is an interface that can be implemented by
--   file selection widgets.
--   
--   In GTK, the main objects that implement this interface are
--   FileChooserWidget and FileChooserDialog.
--   
--   You do not need to write an object that implements the
--   GtkFileChooser interface unless you are trying to adapt an
--   existing file selector to expose a standard programming interface.
--   
--   GtkFileChooser allows for shortcuts to various places in the
--   filesystem. In the default implementation these are displayed in the
--   left pane. It may be a bit confusing at first that these shortcuts
--   come from various sources and in various flavours, so lets explain the
--   terminology here:
--   
--   
--   
- Bookmarks: are created by the user, by dragging folders from the
--   right pane to the left pane, or by using the “Add”. Bookmarks can be
--   renamed and deleted by the user.
--   
- Shortcuts: can be provided by the application. For example, a
--   Paint program may want to add a shortcut for a Clipart folder.
--   Shortcuts cannot be modified by the user.
--   
- Volumes: are provided by the underlying filesystem abstraction.
--   They are the “roots” of the filesystem.
--   
--   
--   
File Names and Encodings
--   
--   When the user is finished selecting files in a
--   GtkFileChooser, your program can get the selected filenames
--   as GFiles.
--   
--   
Adding options
--   
--   You can add extra widgets to a file chooser to provide options that
--   are not present in the default design, by using
--   fileChooserAddChoice. Each choice has an identifier and a user
--   visible label; additionally, each choice can have multiple options. If
--   a choice has no option, it will be rendered as a check button with the
--   given label; if a choice has options, it will be rendered as a combo
--   box.
module GI.Gtk.Interfaces.FileChooser

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
newtype FileChooser

-- | Deprecated: (Since version 4.10)Use FileDialog instead
FileChooser :: ManagedPtr FileChooser -> FileChooser

-- | Type class for types which can be safely cast to FileChooser,
--   for instance with toFileChooser.
class (GObject o, IsDescendantOf FileChooser o) => IsFileChooser o

-- | Cast to FileChooser, for types for which this is known to be
--   safe. For general casts, use castTo.
toFileChooser :: (MonadIO m, IsFileChooser o) => o -> m FileChooser

-- | Adds a 'choice' to the file chooser.
--   
--   This is typically implemented as a combobox or, for boolean choices,
--   as a checkbutton. You can select a value using
--   fileChooserSetChoice before the dialog is shown, and you can
--   obtain the user-selected value in the Dialog::response signal
--   handler using fileChooserGetChoice.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserAddChoice :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Text -> Text -> Maybe [Text] -> Maybe [Text] -> m ()

-- | Adds filter to the list of filters that the user can
--   select between.
--   
--   When a filter is selected, only files that are passed by that filter
--   are displayed.
--   
--   Note that the chooser takes ownership of the filter if
--   it is floating, so you have to ref and sink it if you want to keep a
--   reference.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserAddFilter :: (HasCallStack, MonadIO m, IsFileChooser a, IsFileFilter b) => a -> b -> m ()

-- | Adds a folder to be displayed with the shortcut folders in a file
--   chooser.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserAddShortcutFolder :: (HasCallStack, MonadIO m, IsFileChooser a, IsFile b) => a -> b -> m ()

-- | Gets the type of operation that the file chooser is performing.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetAction :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m FileChooserAction

-- | Gets the currently selected option in the 'choice' with the given ID.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetChoice :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Text -> m (Maybe Text)

-- | Gets whether file chooser will offer to create new folders.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetCreateFolders :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m Bool

-- | Gets the current folder of chooser as GFile.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetCurrentFolder :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m (Maybe File)

-- | Gets the current name in the file selector, as entered by the user.
--   
--   This is meant to be used in save dialogs, to get the currently typed
--   filename when the file itself does not exist yet.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetCurrentName :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m (Maybe Text)

-- | Gets the GFile for the currently selected file in the file
--   selector.
--   
--   If multiple files are selected, one of the files will be returned at
--   random.
--   
--   If the file chooser is in folder mode, this function returns the
--   selected folder.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetFile :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m (Maybe File)

-- | Lists all the selected files and subfolders in the current folder of
--   chooser as GFile.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetFiles :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m ListModel

-- | Gets the current filter.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetFilter :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m (Maybe FileFilter)

-- | Gets the current set of user-selectable filters, as a list model.
--   
--   See fileChooserAddFilter and fileChooserRemoveFilter for
--   changing individual filters.
--   
--   You should not modify the returned list model. Future changes to
--   chooser may or may not affect the returned model.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetFilters :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m ListModel

-- | Gets whether multiple files can be selected in the file chooser.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetSelectMultiple :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m Bool

-- | Queries the list of shortcut folders in the file chooser.
--   
--   You should not modify the returned list model. Future changes to
--   chooser may or may not affect the returned model.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserGetShortcutFolders :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> m ListModel

-- | Removes a 'choice' that has been added with
--   fileChooserAddChoice.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserRemoveChoice :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Text -> m ()

-- | Removes filter from the list of filters that the user
--   can select between.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserRemoveFilter :: (HasCallStack, MonadIO m, IsFileChooser a, IsFileFilter b) => a -> b -> m ()

-- | Removes a folder from the shortcut folders in a file chooser.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserRemoveShortcutFolder :: (HasCallStack, MonadIO m, IsFileChooser a, IsFile b) => a -> b -> m ()

-- | Sets the type of operation that the chooser is performing.
--   
--   The user interface is adapted to suit the selected action.
--   
--   For example, an option to create a new folder might be shown if the
--   action is FileChooserActionSave but not if the action is
--   FileChooserActionOpen.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetAction :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> FileChooserAction -> m ()

-- | Selects an option in a 'choice' that has been added with
--   fileChooserAddChoice.
--   
--   For a boolean choice, the possible options are "true" and "false".

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetChoice :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Text -> Text -> m ()

-- | Sets whether file chooser will offer to create new folders.
--   
--   This is only relevant if the action is not set to be
--   FileChooserActionOpen.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetCreateFolders :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Bool -> m ()

-- | Sets the current folder for chooser from a
--   GFile.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetCurrentFolder :: (HasCallStack, MonadIO m, IsFileChooser a, IsFile b) => a -> Maybe b -> m ()

-- | Sets the current name in the file selector, as if entered by the user.
--   
--   Note that the name passed in here is a UTF-8 string rather than a
--   filename. This function is meant for such uses as a suggested name in
--   a “Save As...” dialog. You can pass “Untitled.doc” or a similarly
--   suitable suggestion for the name.
--   
--   If you want to preselect a particular existing file, you should use
--   fileChooserSetFile instead.
--   
--   Please see the documentation for those functions for an example of
--   using fileChooserSetCurrentName as well.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetCurrentName :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Text -> m ()

-- | Sets file as the current filename for the file
--   chooser.
--   
--   This includes changing to the file’s parent folder and actually
--   selecting the file in list. If the chooser is in
--   FileChooserActionSave mode, the file’s base name will also
--   appear in the dialog’s file name entry.
--   
--   If the file name isn’t in the current folder of
--   chooser, then the current folder of
--   chooser will be changed to the folder containing
--   file.
--   
--   Note that the file must exist, or nothing will be done except for the
--   directory change.
--   
--   If you are implementing a save dialog, you should use this function if
--   you already have a file name to which the user may save; for example,
--   when the user opens an existing file and then does “Save As…”. If you
--   don’t have a file name already — for example, if the user just created
--   a new file and is saving it for the first time, do not call this
--   function.
--   
--   Instead, use something similar to this:
--   
--   
c code
--   
--   
--   static void
--   prepare_file_chooser (GtkFileChooser *chooser,
--                         GFile          *existing_file)
--   {
--     gboolean document_is_new = (existing_file == NULL);
--   
--     if (document_is_new)
--       {
--         GFile *default_file_for_saving = g_file_new_for_path ("./out.txt");
--         // the user just created a new document
--         gtk_file_chooser_set_current_folder (chooser, default_file_for_saving, NULL);
--         gtk_file_chooser_set_current_name (chooser, "Untitled document");
--         g_object_unref (default_file_for_saving);
--       }
--     else
--       {
--         // the user edited an existing document
--         gtk_file_chooser_set_file (chooser, existing_file, NULL);
--       }
--   }
--   

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetFile :: (HasCallStack, MonadIO m, IsFileChooser a, IsFile b) => a -> b -> m ()

-- | Sets the current filter.
--   
--   Only the files that pass the filter will be displayed. If the
--   user-selectable list of filters is non-empty, then the filter should
--   be one of the filters in that list.
--   
--   Setting the current filter when the list of filters is empty is useful
--   if you want to restrict the displayed set of files without letting the
--   user change it.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetFilter :: (HasCallStack, MonadIO m, IsFileChooser a, IsFileFilter b) => a -> b -> m ()

-- | Sets whether multiple files can be selected in the file chooser.
--   
--   This is only relevant if the action is set to be
--   FileChooserActionOpen or FileChooserActionSelectFolder.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserSetSelectMultiple :: (HasCallStack, MonadIO m, IsFileChooser a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “action” property. This is rarely needed directly, but it is
--   used by new.
constructFileChooserAction :: (IsFileChooser o, MonadIO m) => FileChooserAction -> m (GValueConstruct o)

-- | Get the value of the “action” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooser #action
--   
getFileChooserAction :: (MonadIO m, IsFileChooser o) => o -> m FileChooserAction

-- | Set the value of the “action” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooser [ #action := value ]
--   
setFileChooserAction :: (MonadIO m, IsFileChooser o) => o -> FileChooserAction -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “create-folders” property. This is rarely needed directly,
--   but it is used by new.
constructFileChooserCreateFolders :: (IsFileChooser o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “create-folders” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooser #createFolders
--   
getFileChooserCreateFolders :: (MonadIO m, IsFileChooser o) => o -> m Bool

-- | Set the value of the “create-folders” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooser [ #createFolders := value ]
--   
setFileChooserCreateFolders :: (MonadIO m, IsFileChooser o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “filter” property. This is rarely needed directly, but it is
--   used by new.
constructFileChooserFilter :: (IsFileChooser o, MonadIO m, IsFileFilter a) => a -> m (GValueConstruct o)

-- | Get the value of the “filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooser #filter
--   
getFileChooserFilter :: (MonadIO m, IsFileChooser o) => o -> m (Maybe FileFilter)

-- | Set the value of the “filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooser [ #filter := value ]
--   
setFileChooserFilter :: (MonadIO m, IsFileChooser o, IsFileFilter a) => o -> a -> m ()

-- | Get the value of the “filters” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooser #filters
--   
getFileChooserFilters :: (MonadIO m, IsFileChooser o) => o -> m (Maybe ListModel)

-- | Construct a GValueConstruct with valid value for the
--   “select-multiple” property. This is rarely needed directly,
--   but it is used by new.
constructFileChooserSelectMultiple :: (IsFileChooser o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “select-multiple” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooser #selectMultiple
--   
getFileChooserSelectMultiple :: (MonadIO m, IsFileChooser o) => o -> m Bool

-- | Set the value of the “select-multiple” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooser [ #selectMultiple := value ]
--   
setFileChooserSelectMultiple :: (MonadIO m, IsFileChooser o) => o -> Bool -> m ()

-- | Get the value of the “shortcut-folders” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooser #shortcutFolders
--   
getFileChooserShortcutFolders :: (MonadIO m, IsFileChooser o) => o -> m (Maybe ListModel)
instance GHC.Classes.Eq GI.Gtk.Interfaces.FileChooser.FileChooser
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.FileChooser.FileChooser
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.FileChooser.FileChooser
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.FileChooser.FileChooser o) => GI.Gtk.Interfaces.FileChooser.IsFileChooser o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.FileChooser.FileChooser)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.FileChooser.FileChooser
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.FileChooser.FileChooser

-- | A list model that filters the elements of another model.
--   
--   It hides some elements from the underlying model according to criteria
--   given by a GtkFilter.
--   
--   The model can be set up to do incremental filtering, so that filtering
--   long lists doesn't block the UI. See
--   filterListModelSetIncremental for details.
--   
--   GtkFilterListModel passes through sections from the
--   underlying model.
module GI.Gtk.Objects.FilterListModel

-- | Memory-managed wrapper type.
newtype FilterListModel
FilterListModel :: ManagedPtr FilterListModel -> FilterListModel

-- | Type class for types which can be safely cast to
--   FilterListModel, for instance with toFilterListModel.
class (GObject o, IsDescendantOf FilterListModel o) => IsFilterListModel o

-- | Cast to FilterListModel, for types for which this is known to
--   be safe. For general casts, use castTo.
toFilterListModel :: (MonadIO m, IsFilterListModel o) => o -> m FilterListModel

-- | Gets the GtkFilter currently set on self.
filterListModelGetFilter :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> m (Maybe Filter)

-- | Returns whether incremental filtering is enabled.
--   
--   See filterListModelSetIncremental.
filterListModelGetIncremental :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> m Bool

-- | Gets the model currently filtered or Nothing if none.
filterListModelGetModel :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> m (Maybe ListModel)

-- | Returns the number of items that have not been filtered yet.
--   
--   You can use this value to check if self is busy
--   filtering by comparing the return value to 0 or you can compute the
--   percentage of the filter remaining by dividing the return value by the
--   total number of items in the underlying model:
--   
--   
c code
--   
--   
--   pending = gtk_filter_list_model_get_pending (self);
--   model = gtk_filter_list_model_get_model (self);
--   percentage = pending / (double) g_list_model_get_n_items (model);
--   
--   
--   If no filter operation is ongoing - in particular when
--   FilterListModel:incremental is False - this function
--   returns 0.
filterListModelGetPending :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> m Word32

-- | Returns whether watching items is enabled.
--   
--   See filterListModelSetWatchItems.
--   
--   Since: 4.20
filterListModelGetWatchItems :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> m Bool

-- | Creates a new GtkFilterListModel that will filter
--   model using the given filter.
filterListModelNew :: (HasCallStack, MonadIO m, IsListModel a, IsFilter b) => Maybe a -> Maybe b -> m FilterListModel

-- | Sets the filter used to filter items.
filterListModelSetFilter :: (HasCallStack, MonadIO m, IsFilterListModel a, IsFilter b) => a -> Maybe b -> m ()

-- | Sets the filter model to do an incremental sort.
--   
--   When incremental filtering is enabled, the GtkFilterListModel
--   will not run filters immediately, but will instead queue an idle
--   handler that incrementally filters the items and adds them to the
--   list. This of course means that items are not instantly added to the
--   list, but only appear incrementally.
--   
--   When your filter blocks the UI while filtering, you might consider
--   turning this on. Depending on your model and filters, this may become
--   interesting around 10,000 to 100,000 items.
--   
--   By default, incremental filtering is disabled.
--   
--   See filterListModelGetPending for progress information about an
--   ongoing incremental filtering operation.
filterListModelSetIncremental :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> Bool -> m ()

-- | Sets the model to be filtered.
--   
--   Note that GTK makes no effort to ensure that model
--   conforms to the item type of self. It assumes that the
--   caller knows what they are doing and have set up an appropriate filter
--   to ensure that item types match.
filterListModelSetModel :: (HasCallStack, MonadIO m, IsFilterListModel a, IsListModel b) => a -> Maybe b -> m ()

-- | Sets the filter model to monitor properties of its items.
--   
--   This allows implementations of Filter that support expression
--   watching to react to property changes. This property has no effect if
--   the current filter doesn't support watching items.
--   
--   By default, watching items is disabled.
--   
--   Since: 4.20
filterListModelSetWatchItems :: (HasCallStack, MonadIO m, IsFilterListModel a) => a -> Bool -> m ()

-- | Set the value of the “filter” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #filter
--   
clearFilterListModelFilter :: (MonadIO m, IsFilterListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “filter” property. This is rarely needed directly, but it is
--   used by new.
constructFilterListModelFilter :: (IsFilterListModel o, MonadIO m, IsFilter a) => a -> m (GValueConstruct o)

-- | Get the value of the “filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #filter
--   
getFilterListModelFilter :: (MonadIO m, IsFilterListModel o) => o -> m (Maybe Filter)

-- | Set the value of the “filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set filterListModel [ #filter := value ]
--   
setFilterListModelFilter :: (MonadIO m, IsFilterListModel o, IsFilter a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “incremental” property. This is rarely needed directly, but
--   it is used by new.
constructFilterListModelIncremental :: (IsFilterListModel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “incremental” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #incremental
--   
getFilterListModelIncremental :: (MonadIO m, IsFilterListModel o) => o -> m Bool

-- | Set the value of the “incremental” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set filterListModel [ #incremental := value ]
--   
setFilterListModelIncremental :: (MonadIO m, IsFilterListModel o) => o -> Bool -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #itemType
--   
getFilterListModelItemType :: (MonadIO m, IsFilterListModel o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearFilterListModelModel :: (MonadIO m, IsFilterListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructFilterListModelModel :: (IsFilterListModel o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #model
--   
getFilterListModelModel :: (MonadIO m, IsFilterListModel o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set filterListModel [ #model := value ]
--   
setFilterListModelModel :: (MonadIO m, IsFilterListModel o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #nItems
--   
getFilterListModelNItems :: (MonadIO m, IsFilterListModel o) => o -> m Word32

-- | Get the value of the “pending” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #pending
--   
getFilterListModelPending :: (MonadIO m, IsFilterListModel o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “watch-items” property. This is rarely needed directly, but
--   it is used by new.
constructFilterListModelWatchItems :: (IsFilterListModel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “watch-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get filterListModel #watchItems
--   
getFilterListModelWatchItems :: (MonadIO m, IsFilterListModel o) => o -> m Bool

-- | Set the value of the “watch-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set filterListModel [ #watchItems := value ]
--   
setFilterListModelWatchItems :: (MonadIO m, IsFilterListModel o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.FilterListModel.FilterListModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FilterListModel.FilterListModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FilterListModel.FilterListModel
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FilterListModel.FilterListModel o) => GI.Gtk.Objects.FilterListModel.IsFilterListModel o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FilterListModel.FilterListModel)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FilterListModel.FilterListModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FilterListModel.FilterListModel

-- | A list model that concatenates other list models.
--   
--   GtkFlattenListModel takes a list model containing list
--   models, and flattens it into a single model. Each list model becomes a
--   section in the single model.
module GI.Gtk.Objects.FlattenListModel

-- | Memory-managed wrapper type.
newtype FlattenListModel
FlattenListModel :: ManagedPtr FlattenListModel -> FlattenListModel

-- | Type class for types which can be safely cast to
--   FlattenListModel, for instance with toFlattenListModel.
class (GObject o, IsDescendantOf FlattenListModel o) => IsFlattenListModel o

-- | Cast to FlattenListModel, for types for which this is known to
--   be safe. For general casts, use castTo.
toFlattenListModel :: (MonadIO m, IsFlattenListModel o) => o -> m FlattenListModel

-- | Gets the model set via flattenListModelSetModel.
flattenListModelGetModel :: (HasCallStack, MonadIO m, IsFlattenListModel a) => a -> m (Maybe ListModel)

-- | Returns the model containing the item at the given position.
flattenListModelGetModelForItem :: (HasCallStack, MonadIO m, IsFlattenListModel a) => a -> Word32 -> m (Maybe ListModel)

-- | Creates a new GtkFlattenListModel that flattens
--   list.
flattenListModelNew :: (HasCallStack, MonadIO m, IsListModel a) => Maybe a -> m FlattenListModel

-- | Sets a new model to be flattened.
flattenListModelSetModel :: (HasCallStack, MonadIO m, IsFlattenListModel a, IsListModel b) => a -> Maybe b -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flattenListModel #itemType
--   
getFlattenListModelItemType :: (MonadIO m, IsFlattenListModel o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearFlattenListModelModel :: (MonadIO m, IsFlattenListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructFlattenListModelModel :: (IsFlattenListModel o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flattenListModel #model
--   
getFlattenListModelModel :: (MonadIO m, IsFlattenListModel o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flattenListModel [ #model := value ]
--   
setFlattenListModelModel :: (MonadIO m, IsFlattenListModel o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flattenListModel #nItems
--   
getFlattenListModelNItems :: (MonadIO m, IsFlattenListModel o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.FlattenListModel.FlattenListModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FlattenListModel.FlattenListModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FlattenListModel.FlattenListModel
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FlattenListModel.FlattenListModel o) => GI.Gtk.Objects.FlattenListModel.IsFlattenListModel o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FlattenListModel.FlattenListModel)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FlattenListModel.FlattenListModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FlattenListModel.FlattenListModel

-- | Contains information found when looking up an icon in
--   GtkIconTheme or loading it from a file.
--   
--   GtkIconPaintable implements GdkPaintable and
--   GtkSymbolicPaintable.
module GI.Gtk.Objects.IconPaintable

-- | Memory-managed wrapper type.
newtype IconPaintable
IconPaintable :: ManagedPtr IconPaintable -> IconPaintable

-- | Type class for types which can be safely cast to IconPaintable,
--   for instance with toIconPaintable.
class (GObject o, IsDescendantOf IconPaintable o) => IsIconPaintable o

-- | Cast to IconPaintable, for types for which this is known to be
--   safe. For general casts, use castTo.
toIconPaintable :: (MonadIO m, IsIconPaintable o) => o -> m IconPaintable

-- | Gets the GFile that was used to load the icon.
--   
--   Returns Nothing if the icon was not loaded from a file.
iconPaintableGetFile :: (HasCallStack, MonadIO m, IsIconPaintable a) => a -> m (Maybe File)

-- | Get the icon name being used for this icon.
--   
--   When an icon looked up in the icon theme was not available, the icon
--   theme may use fallback icons - either those specified to
--   iconThemeLookupIcon or the always-available "image-missing".
--   The icon chosen is returned by this function.
--   
--   If the icon was created without an icon theme, this function returns
--   Nothing.

-- | Deprecated: (Since version 4.20)
iconPaintableGetIconName :: (HasCallStack, MonadIO m, IsIconPaintable a) => a -> m (Maybe [Char])

-- | Checks if the icon is symbolic or not.
--   
--   This currently uses only the file name and not the file contents for
--   determining this. This behaviour may change in the future.

-- | Deprecated: (Since version 4.20)
iconPaintableIsSymbolic :: (HasCallStack, MonadIO m, IsIconPaintable a) => a -> m Bool

-- | Creates a GtkIconPaintable for a file with a given size and
--   scale.
--   
--   The icon can then be rendered by using it as a GdkPaintable.
iconPaintableNewForFile :: (HasCallStack, MonadIO m, IsFile a) => a -> Int32 -> Int32 -> m IconPaintable

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructIconPaintableFile :: (IsIconPaintable o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get iconPaintable #file
--   
getIconPaintableFile :: (MonadIO m, IsIconPaintable o) => o -> m (Maybe File)

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructIconPaintableIconName :: (IsIconPaintable o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconPaintable #iconName
--   
getIconPaintableIconName :: (MonadIO m, IsIconPaintable o) => o -> m (Maybe Text)

-- | Construct a GValueConstruct with valid value for the
--   “is-symbolic” property. This is rarely needed directly, but
--   it is used by new.
constructIconPaintableIsSymbolic :: (IsIconPaintable o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “is-symbolic” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconPaintable #isSymbolic
--   
getIconPaintableIsSymbolic :: (MonadIO m, IsIconPaintable o) => o -> m Bool

-- | Set the value of the “is-symbolic” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconPaintable [ #isSymbolic := value ]
--   
setIconPaintableIsSymbolic :: (MonadIO m, IsIconPaintable o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scale” property. This is rarely needed directly, but it is
--   used by new.
constructIconPaintableScale :: (IsIconPaintable o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “scale” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconPaintable #scale
--   
getIconPaintableScale :: (MonadIO m, IsIconPaintable o) => o -> m Int32

-- | Set the value of the “scale” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconPaintable [ #scale := value ]
--   
setIconPaintableScale :: (MonadIO m, IsIconPaintable o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size” property. This is rarely needed directly, but it is
--   used by new.
constructIconPaintableSize :: (IsIconPaintable o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get iconPaintable #size
--   
getIconPaintableSize :: (MonadIO m, IsIconPaintable o) => o -> m Int32

-- | Set the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set iconPaintable [ #size := value ]
--   
setIconPaintableSize :: (MonadIO m, IsIconPaintable o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.IconPaintable.IconPaintable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.IconPaintable.IconPaintable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.IconPaintable.IconPaintable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.IconPaintable.IconPaintable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.IconPaintable.IconPaintable o) => GI.Gtk.Objects.IconPaintable.IsIconPaintable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.IconPaintable.IconPaintable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.IconPaintable.IconPaintable

-- | Loads themed icons.
--   
--   The main reason for using a name rather than simply providing a
--   filename is to allow different icons to be used depending on what
--   “icon theme” is selected by the user. The operation of icon themes on
--   Linux and Unix follows the Icon Theme Specification There is a
--   fallback icon theme, named hicolor, where applications should
--   install their icons, but additional icon themes can be installed as
--   operating system vendors and users choose.
--   
--   In many cases, named themes are used indirectly, via Image
--   rather than directly, but looking up icons directly is also simple.
--   The GtkIconTheme object acts as a database of all the icons
--   in the current theme. You can create new GtkIconTheme
--   objects, but it’s much more efficient to use the standard icon theme
--   of the GtkWidget so that the icon information is shared with
--   other people looking up icons.
--   
--   
c code
--   
--   
--   GtkIconTheme *icon_theme;
--   GtkIconPaintable *icon;
--   GdkPaintable *paintable;
--   
--   icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (my_widget));
--   icon = gtk_icon_theme_lookup_icon (icon_theme,
--                                      "my-icon-name", // icon name
--                                      48, // icon size
--                                      1,  // scale
--                                      0,  // flags);
--   paintable = GDK_PAINTABLE (icon);
--   // Use the paintable
--   g_object_unref (icon);
--   
module GI.Gtk.Objects.IconTheme

-- | Memory-managed wrapper type.
newtype IconTheme
IconTheme :: ManagedPtr IconTheme -> IconTheme

-- | Type class for types which can be safely cast to IconTheme, for
--   instance with toIconTheme.
class (GObject o, IsDescendantOf IconTheme o) => IsIconTheme o

-- | Cast to IconTheme, for types for which this is known to be
--   safe. For general casts, use castTo.
toIconTheme :: (MonadIO m, IsIconTheme o) => o -> m IconTheme

-- | Adds a resource path that will be looked at when looking for icons,
--   similar to search paths.
--   
--   See iconThemeSetResourcePath.
--   
--   This function should be used to make application-specific icons
--   available as part of the icon theme.
iconThemeAddResourcePath :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Text -> m ()

-- | Appends a directory to the search path.
--   
--   See iconThemeSetSearchPath.
iconThemeAddSearchPath :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> [Char] -> m ()

-- | Returns the display that the GtkIconTheme object was created
--   for.
iconThemeGetDisplay :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> m (Maybe Display)

-- | Gets the icon theme object associated with display.
--   
--   If this function has not previously been called for the given display,
--   a new icon theme object will be created and associated with the
--   display. Icon theme objects are fairly expensive to create, so using
--   this function is usually a better choice than calling
--   iconThemeNew and setting the display yourself; by using this
--   function a single icon theme object will be shared between users.
iconThemeGetForDisplay :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m IconTheme

-- | Lists the names of icons in the current icon theme.
iconThemeGetIconNames :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> m [Text]

-- | Returns an array of integers describing the sizes at which the icon is
--   available without scaling.
--   
--   A size of -1 means that the icon is available in a scalable format.
--   The array is zero-terminated.
iconThemeGetIconSizes :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Text -> m [Int32]

-- | Gets the current resource path.
--   
--   See iconThemeSetResourcePath.
iconThemeGetResourcePath :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> m (Maybe [Text])

-- | Gets the current search path.
--   
--   See iconThemeSetSearchPath.
iconThemeGetSearchPath :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> m (Maybe [[Char]])

-- | Gets the current icon theme name.
iconThemeGetThemeName :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> m Text

-- | Checks whether an icon theme includes an icon for a particular
--   GIcon.
--   
--   Since: 4.2
iconThemeHasGicon :: (HasCallStack, MonadIO m, IsIconTheme a, IsIcon b) => a -> b -> m Bool

-- | Checks whether an icon theme includes an icon for a particular name.
iconThemeHasIcon :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Text -> m Bool

-- | Looks up a icon for a desired size and window scale.
--   
--   The icon can then be rendered by using it as a GdkPaintable,
--   or you can get information such as the filename and size.
iconThemeLookupByGicon :: (HasCallStack, MonadIO m, IsIconTheme a, IsIcon b) => a -> b -> Int32 -> Int32 -> TextDirection -> [IconLookupFlags] -> m IconPaintable

-- | Looks up a named icon for a desired size and window scale, returning a
--   GtkIconPaintable.
--   
--   The icon can then be rendered by using it as a GdkPaintable,
--   or you can get information such as the filename and size.
--   
--   If the available iconName is not available and
--   fallbacks are provided, they will be tried in order.
--   
--   If no matching icon is found, then a paintable that renders the
--   "missing icon" icon is returned. If you need to do something else for
--   missing icons you need to use iconThemeHasIcon.
--   
--   Note that you probably want to listen for icon theme changes and
--   update the icon. This is usually done by overriding the
--   GtkWidgetClass.css-changed() function.
iconThemeLookupIcon :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Text -> Maybe [Text] -> Int32 -> Int32 -> TextDirection -> [IconLookupFlags] -> m IconPaintable

-- | Creates a new icon theme object.
--   
--   Icon theme objects are used to lookup up an icon by name in a
--   particular icon theme. Usually, you’ll want to use
--   iconThemeGetForDisplay rather than creating a new icon theme
--   object for scratch.
iconThemeNew :: (HasCallStack, MonadIO m) => m IconTheme

-- | Sets the resource paths that will be looked at when looking for icons,
--   similar to search paths.
--   
--   The resources are considered as part of the hicolor icon theme and
--   must be located in subdirectories that are defined in the hicolor icon
--   theme, such as @path/16x16/actions/run.png or
--   @path/scalable/actions/run.svg.
--   
--   Icons that are directly placed in the resource path instead of a
--   subdirectory are also considered as ultimate fallback, but they are
--   treated like unthemed icons.
iconThemeSetResourcePath :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Maybe [Text] -> m ()

-- | Sets the search path for the icon theme object.
--   
--   When looking for an icon theme, GTK will search for a subdirectory of
--   one or more of the directories in path with the same
--   name as the icon theme containing an index.theme file. (Themes from
--   multiple of the path elements are combined to allow themes to be
--   extended by adding icons in the user’s home directory.)
--   
--   In addition if an icon found isn’t found either in the current icon
--   theme or the default icon theme, and an image file with the right name
--   is found directly in one of the elements of path, then
--   that image will be used for the icon name. (This is legacy feature,
--   and new icons should be put into the fallback icon theme, which is
--   called hicolor, rather than directly on the icon path.)
iconThemeSetSearchPath :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Maybe [[Char]] -> m ()

-- | Sets the name of the icon theme that the GtkIconTheme object
--   uses overriding system configuration.
--   
--   This function cannot be called on the icon theme objects returned from
--   iconThemeGetForDisplay.
iconThemeSetThemeName :: (HasCallStack, MonadIO m, IsIconTheme a) => a -> Maybe Text -> m ()

-- | Set the value of the “display” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #display
--   
clearIconThemeDisplay :: (MonadIO m, IsIconTheme o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “display” property. This is rarely needed directly, but it is
--   used by new.
constructIconThemeDisplay :: (IsIconTheme o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconTheme #display
--   
getIconThemeDisplay :: (MonadIO m, IsIconTheme o) => o -> m (Maybe Display)

-- | Set the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconTheme [ #display := value ]
--   
setIconThemeDisplay :: (MonadIO m, IsIconTheme o, IsDisplay a) => o -> a -> m ()

-- | Get the value of the “icon-names” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconTheme #iconNames
--   
getIconThemeIconNames :: (MonadIO m, IsIconTheme o) => o -> m (Maybe [Text])

-- | Set the value of the “resource-path” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #resourcePath
--   
clearIconThemeResourcePath :: (MonadIO m, IsIconTheme o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resource-path” property. This is rarely needed directly, but
--   it is used by new.
constructIconThemeResourcePath :: (IsIconTheme o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “resource-path” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconTheme #resourcePath
--   
getIconThemeResourcePath :: (MonadIO m, IsIconTheme o) => o -> m (Maybe [Text])

-- | Set the value of the “resource-path” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconTheme [ #resourcePath := value ]
--   
setIconThemeResourcePath :: (MonadIO m, IsIconTheme o) => o -> [Text] -> m ()

-- | Set the value of the “search-path” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #searchPath
--   
clearIconThemeSearchPath :: (MonadIO m, IsIconTheme o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “search-path” property. This is rarely needed directly, but
--   it is used by new.
constructIconThemeSearchPath :: (IsIconTheme o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “search-path” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconTheme #searchPath
--   
getIconThemeSearchPath :: (MonadIO m, IsIconTheme o) => o -> m (Maybe [Text])

-- | Set the value of the “search-path” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconTheme [ #searchPath := value ]
--   
setIconThemeSearchPath :: (MonadIO m, IsIconTheme o) => o -> [Text] -> m ()

-- | Set the value of the “theme-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #themeName
--   
clearIconThemeThemeName :: (MonadIO m, IsIconTheme o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “theme-name” property. This is rarely needed directly, but it
--   is used by new.
constructIconThemeThemeName :: (IsIconTheme o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconTheme #themeName
--   
getIconThemeThemeName :: (MonadIO m, IsIconTheme o) => o -> m (Maybe Text)

-- | Set the value of the “theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconTheme [ #themeName := value ]
--   
setIconThemeThemeName :: (MonadIO m, IsIconTheme o) => o -> Text -> m ()

-- | Emitted when the icon theme changes.
--   
--   This can happen because current icon theme is switched or because GTK
--   detects that a change has occurred in the contents of the current icon
--   theme.
type IconThemeChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iconTheme #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconThemeChanged :: (IsIconTheme a, MonadIO m) => a -> ((?self :: a) => IconThemeChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iconTheme #changed callback
--   
onIconThemeChanged :: (IsIconTheme a, MonadIO m) => a -> ((?self :: a) => IconThemeChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.IconTheme.IconTheme
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.IconTheme.IconTheme
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.IconTheme.IconTheme
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.IconTheme.IconTheme)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.IconTheme.IconTheme o) => GI.Gtk.Objects.IconTheme.IsIconTheme o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.IconTheme.IconTheme
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.IconTheme.IconTheme

-- | Creates widgets for the items taken from a GListModel.
--   
--   This is one of the core concepts of handling list widgets such as
--   ListView or GridView.
--   
--   The GtkListItemFactory is tasked with creating widgets for
--   items taken from the model when the views need them and updating them
--   as the items displayed by the view change.
--   
--   A view is usually only able to display anything after both a factory
--   and a model have been set on the view. So it is important that you do
--   not skip this step when setting up your first view.
--   
--   Because views do not display the whole list at once but only a few
--   items, they only need to maintain a few widgets at a time. They will
--   instruct the GtkListItemFactory to create these widgets and
--   bind them to the items that are currently displayed.
--   
--   As the list model changes or the user scrolls to the list, the items
--   will change and the view will instruct the factory to bind the widgets
--   to those new items.
--   
--   The actual widgets used for displaying those widgets is provided by
--   you.
--   
--   When the factory needs widgets created, it will create a
--   GtkListItem and hand it to your code to set up a widget for.
--   This list item will provide various properties with information about
--   what item to display and provide you with some opportunities to
--   configure its behavior. See the ListItem documentation for
--   further details.
--   
--   Various implementations of GtkListItemFactory exist to allow
--   you different ways to provide those widgets. The most common
--   implementations are BuilderListItemFactory which takes a
--   GtkBuilder .ui file and then creates widgets and manages
--   everything automatically from the information in that file and
--   SignalListItemFactory which allows you to connect to signals
--   with your own code and retain full control over how the widgets are
--   setup and managed.
--   
--   A GtkListItemFactory is supposed to be final - that means its
--   behavior should not change and the first widget created from it should
--   behave the same way as the last widget created from it. If you intend
--   to do changes to the behavior, it is recommended that you create a new
--   GtkListItemFactory which will allow the views to recreate its
--   widgets.
--   
--   Once you have chosen your factory and created it, you need to set it
--   on the view widget you want to use it with, such as via
--   listViewSetFactory. Reusing factories across different views is
--   allowed, but very uncommon.
module GI.Gtk.Objects.ListItemFactory

-- | Memory-managed wrapper type.
newtype ListItemFactory
ListItemFactory :: ManagedPtr ListItemFactory -> ListItemFactory

-- | Type class for types which can be safely cast to
--   ListItemFactory, for instance with toListItemFactory.
class (GObject o, IsDescendantOf ListItemFactory o) => IsListItemFactory o

-- | Cast to ListItemFactory, for types for which this is known to
--   be safe. For general casts, use castTo.
toListItemFactory :: (MonadIO m, IsListItemFactory o) => o -> m ListItemFactory
instance GHC.Classes.Eq GI.Gtk.Objects.ListItemFactory.ListItemFactory
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListItemFactory.ListItemFactory
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListItemFactory.ListItemFactory
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListItemFactory.ListItemFactory)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListItemFactory.ListItemFactory o) => GI.Gtk.Objects.ListItemFactory.IsListItemFactory o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListItemFactory.ListItemFactory
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListItemFactory.ListItemFactory

-- | Creates widgets by instantiating GtkBuilder UI templates.
--   
--   The templates must extend the class that the parent widget expects.
--   For example, a factory provided to ListView:factory must have a
--   template that extends ListItem.
--   
--   Templates typically use Expression to obtain data from the
--   items in the model.
--   
--   Example:
--   
--   
xml code
--   
--   
--   <interface>
--     <template class="GtkListItem">
--       <property name="child">
--         <object class="GtkLabel">
--           <property name="xalign">0</property>
--           <binding name="label">
--             <lookup name="name" type="SettingsKey">
--               <lookup name="item">GtkListItem</lookup>
--             </lookup>
--           </binding>
--         </object>
--       </property>
--     </template>
--   </interface>
--   
--   
--   A common approach is to embed such templates as CDATA marked sections
--   into a surrounding UI file. Note that if you use this approach,
--   extracting translatable strings with xgettext will not work for
--   strings inside the marked section.
module GI.Gtk.Objects.BuilderListItemFactory

-- | Memory-managed wrapper type.
newtype BuilderListItemFactory
BuilderListItemFactory :: ManagedPtr BuilderListItemFactory -> BuilderListItemFactory

-- | Type class for types which can be safely cast to
--   BuilderListItemFactory, for instance with
--   toBuilderListItemFactory.
class (GObject o, IsDescendantOf BuilderListItemFactory o) => IsBuilderListItemFactory o

-- | Cast to BuilderListItemFactory, for types for which this is
--   known to be safe. For general casts, use castTo.
toBuilderListItemFactory :: (MonadIO m, IsBuilderListItemFactory o) => o -> m BuilderListItemFactory

-- | Gets the data used as the GtkBuilder UI template for
--   constructing listitems.
builderListItemFactoryGetBytes :: (HasCallStack, MonadIO m, IsBuilderListItemFactory a) => a -> m Bytes

-- | If the data references a resource, gets the path of that resource.
builderListItemFactoryGetResource :: (HasCallStack, MonadIO m, IsBuilderListItemFactory a) => a -> m (Maybe Text)

-- | Gets the scope used when constructing listitems.
builderListItemFactoryGetScope :: (HasCallStack, MonadIO m, IsBuilderListItemFactory a) => a -> m (Maybe BuilderScope)

-- | Creates a new GtkBuilderListItemFactory that instantiates
--   widgets using bytes as the data to pass to
--   GtkBuilder.
builderListItemFactoryNewFromBytes :: (HasCallStack, MonadIO m, IsBuilderScope a) => Maybe a -> Bytes -> m BuilderListItemFactory

-- | Creates a new GtkBuilderListItemFactory that instantiates
--   widgets using data read from the given resourcePath to
--   pass to GtkBuilder.
builderListItemFactoryNewFromResource :: (HasCallStack, MonadIO m, IsBuilderScope a) => Maybe a -> Text -> m BuilderListItemFactory

-- | Construct a GValueConstruct with valid value for the
--   “bytes” property. This is rarely needed directly, but it is
--   used by new.
constructBuilderListItemFactoryBytes :: (IsBuilderListItemFactory o, MonadIO m) => Bytes -> m (GValueConstruct o)

-- | Get the value of the “bytes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get builderListItemFactory #bytes
--   
getBuilderListItemFactoryBytes :: (MonadIO m, IsBuilderListItemFactory o) => o -> m Bytes

-- | Construct a GValueConstruct with valid value for the
--   “resource” property. This is rarely needed directly, but it
--   is used by new.
constructBuilderListItemFactoryResource :: (IsBuilderListItemFactory o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “resource” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get builderListItemFactory #resource
--   
getBuilderListItemFactoryResource :: (MonadIO m, IsBuilderListItemFactory o) => o -> m (Maybe Text)

-- | Construct a GValueConstruct with valid value for the
--   “scope” property. This is rarely needed directly, but it is
--   used by new.
constructBuilderListItemFactoryScope :: (IsBuilderListItemFactory o, MonadIO m, IsBuilderScope a) => a -> m (GValueConstruct o)

-- | Get the value of the “scope” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get builderListItemFactory #scope
--   
getBuilderListItemFactoryScope :: (MonadIO m, IsBuilderListItemFactory o) => o -> m (Maybe BuilderScope)
instance GHC.Classes.Eq GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory o) => GI.Gtk.Objects.BuilderListItemFactory.IsBuilderListItemFactory o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.BuilderListItemFactory.BuilderListItemFactory

-- | The integration point for media playback inside GTK.
--   
--   GTK provides an implementation of the GtkMediaStream
--   interface that is called MediaFile.
--   
--   Apart from application-facing API for stream playback,
--   GtkMediaStream has a number of APIs that are only useful for
--   implementations and should not be used in applications:
--   MediaStream.prepared(),
--   MediaStream.unprepared(),
--   mediaStreamUpdate, MediaStream.ended(),
--   mediaStreamSeekSuccess, mediaStreamSeekFailed,
--   mediaStreamGerror, MediaStream.error(),
--   MediaStream.error_valist().
module GI.Gtk.Objects.MediaStream

-- | Memory-managed wrapper type.
newtype MediaStream
MediaStream :: ManagedPtr MediaStream -> MediaStream

-- | Type class for types which can be safely cast to MediaStream,
--   for instance with toMediaStream.
class (GObject o, IsDescendantOf MediaStream o) => IsMediaStream o

-- | Cast to MediaStream, for types for which this is known to be
--   safe. For general casts, use castTo.
toMediaStream :: (MonadIO m, IsMediaStream o) => o -> m MediaStream

-- | Sets self into an error state.
--   
--   This will pause the stream (you can check for an error via
--   mediaStreamGetError in your
--   GtkMediaStream.pause() implementation), abort pending
--   seeks and mark the stream as prepared.
--   
--   if the stream is already in an error state, this call will be ignored
--   and the existing error will be retained.
--   
--   To unset an error, the stream must be reset via a call to
--   MediaStream.unprepared().
mediaStreamGerror :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> GError -> m ()

-- | Gets the duration of the stream.
--   
--   If the duration is not known, 0 will be returned.
mediaStreamGetDuration :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Int64

-- | Returns whether the streams playback is finished.
mediaStreamGetEnded :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | If the stream is in an error state, returns the GError
--   explaining that state.
--   
--   Any type of error can be reported here depending on the implementation
--   of the media stream.
--   
--   A media stream in an error cannot be operated on, calls like
--   mediaStreamPlay or mediaStreamSeek will not have any
--   effect.
--   
--   GtkMediaStream itself does not provide a way to unset an
--   error, but implementations may provide options. For example, a
--   MediaFile will unset errors when a new source is set, e.g. with
--   mediaFileSetFile.
mediaStreamGetError :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m (Maybe GError)

-- | Returns whether the stream is set to loop.
--   
--   See mediaStreamSetLoop for details.
mediaStreamGetLoop :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Returns whether the audio for the stream is muted.
--   
--   See mediaStreamSetMuted for details.
mediaStreamGetMuted :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Return whether the stream is currently playing.
mediaStreamGetPlaying :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Returns the current presentation timestamp in microseconds.
mediaStreamGetTimestamp :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Int64

-- | Returns the volume of the audio for the stream.
--   
--   See mediaStreamSetVolume for details.
mediaStreamGetVolume :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Double

-- | Returns whether the stream has audio.
mediaStreamHasAudio :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Returns whether the stream has video.
mediaStreamHasVideo :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Returns whether the stream has finished initializing.
--   
--   At this point the existence of audio and video is known.
mediaStreamIsPrepared :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Checks if a stream may be seekable.
--   
--   This is meant to be a hint. Streams may not allow seeking even if this
--   function returns True. However, if this function returns
--   False, streams are guaranteed to not be seekable and user
--   interfaces may hide controls that allow seeking.
--   
--   It is allowed to call mediaStreamSeek on a non-seekable stream,
--   though it will not do anything.
mediaStreamIsSeekable :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Checks if there is currently a seek operation going on.
mediaStreamIsSeeking :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m Bool

-- | Pauses playback of the stream.
--   
--   If the stream is not playing, do nothing.
mediaStreamPause :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m ()

-- | Starts playing the stream.
--   
--   If the stream is in error or already playing, do nothing.
mediaStreamPlay :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m ()

-- | Called by users to attach the media stream to a GdkSurface
--   they manage.
--   
--   The stream can then access the resources of surface
--   for its rendering purposes. In particular, media streams might want to
--   create a GdkGLContext or sync to the GdkFrameClock.
--   
--   Whoever calls this function is responsible for calling
--   mediaStreamUnrealize before either the stream or
--   surface get destroyed.
--   
--   Multiple calls to this function may happen from different users of the
--   video, even with the same surface. Each of these calls
--   must be followed by its own call to mediaStreamUnrealize.
--   
--   It is not required to call this function to make a media stream work.
mediaStreamRealize :: (HasCallStack, MonadIO m, IsMediaStream a, IsSurface b) => a -> b -> m ()

-- | Start a seek operation on self to
--   timestamp.
--   
--   If timestamp is out of range, it will be clamped.
--   
--   Seek operations may not finish instantly. While a seek operation is in
--   process, the MediaStream:seeking property will be set.
--   
--   When calling mediaStreamSeek during an ongoing seek operation,
--   the new seek will override any pending seek.
mediaStreamSeek :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Int64 -> m ()

-- | Ends a seek operation started via
--   GtkMediaStream.seek() as a failure.
--   
--   This will not cause an error on the stream and will assume that
--   playback continues as if no seek had happened.
--   
--   See mediaStreamSeekSuccess for the other way of ending a seek.
mediaStreamSeekFailed :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m ()

-- | Ends a seek operation started via
--   GtkMediaStream.seek() successfully.
--   
--   This function will unset the GtkMediaStream:ended property if it was
--   set.
--   
--   See mediaStreamSeekFailed for the other way of ending a seek.
mediaStreamSeekSuccess :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m ()

-- | Sets whether the stream should loop.
--   
--   In this case, it will attempt to restart playback from the beginning
--   instead of stopping at the end.
--   
--   Not all streams may support looping, in particular non-seekable
--   streams. Those streams will ignore the loop setting and just end.
mediaStreamSetLoop :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Bool -> m ()

-- | Sets whether the audio stream should be muted.
--   
--   Muting a stream will cause no audio to be played, but it does not
--   modify the volume. This means that muting and then unmuting the stream
--   will restore the volume settings.
--   
--   If the stream has no audio, calling this function will still work but
--   it will not have an audible effect.
mediaStreamSetMuted :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Bool -> m ()

-- | Starts or pauses playback of the stream.
mediaStreamSetPlaying :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Bool -> m ()

-- | Sets the volume of the audio stream.
--   
--   This function call will work even if the stream is muted.
--   
--   The given volume should range from 0.0 for silence to
--   1.0 for as loud as possible. Values outside of this range will be
--   clamped to the nearest value.
--   
--   If the stream has no audio or is muted, calling this function will
--   still work but it will not have an immediate audible effect. When the
--   stream is unmuted, the new volume setting will take effect.
mediaStreamSetVolume :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Double -> m ()

-- | Pauses the media stream and marks it as ended.
--   
--   This is a hint only, calls to mediaStreamPlay may still happen.
--   
--   The media stream must be prepared when this function is called.
--   
--   Since: 4.4
mediaStreamStreamEnded :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m ()

-- | Called by GtkMediaStream implementations to advertise the
--   stream being ready to play and providing details about the stream.
--   
--   Note that the arguments are hints. If the stream implementation cannot
--   determine the correct values, it is better to err on the side of
--   caution and return True. User interfaces will use those values
--   to determine what controls to show.
--   
--   This function may not be called again until the stream has been reset
--   via mediaStreamStreamUnprepared.
--   
--   Since: 4.4
mediaStreamStreamPrepared :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Bool -> Bool -> Bool -> Int64 -> m ()

-- | Resets a given media stream implementation.
--   
--   mediaStreamStreamPrepared can then be called again.
--   
--   This function will also reset any error state the stream was in.
--   
--   Since: 4.4
mediaStreamStreamUnprepared :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> m ()

-- | Undoes a previous call to mediaStreamRealize.
--   
--   This causes the stream to release all resources it had allocated from
--   surface.
mediaStreamUnrealize :: (HasCallStack, MonadIO m, IsMediaStream a, IsSurface b) => a -> b -> m ()

-- | Media stream implementations should regularly call this function to
--   update the timestamp reported by the stream.
--   
--   It is up to implementations to call this at the frequency they deem
--   appropriate.
--   
--   The media stream must be prepared when this function is called.
mediaStreamUpdate :: (HasCallStack, MonadIO m, IsMediaStream a) => a -> Int64 -> m ()

-- | Get the value of the “duration” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #duration
--   
getMediaStreamDuration :: (MonadIO m, IsMediaStream o) => o -> m Int64

-- | Get the value of the “ended” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #ended
--   
getMediaStreamEnded :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Get the value of the “error” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #error
--   
getMediaStreamError :: (MonadIO m, IsMediaStream o) => o -> m (Maybe GError)

-- | Get the value of the “has-audio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #hasAudio
--   
getMediaStreamHasAudio :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Get the value of the “has-video” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #hasVideo
--   
getMediaStreamHasVideo :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “loop” property. This is rarely needed directly, but it is
--   used by new.
constructMediaStreamLoop :: (IsMediaStream o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “loop” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get mediaStream #loop
--   
getMediaStreamLoop :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Set the value of the “loop” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set mediaStream [ #loop := value ]
--   
setMediaStreamLoop :: (MonadIO m, IsMediaStream o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “muted” property. This is rarely needed directly, but it is
--   used by new.
constructMediaStreamMuted :: (IsMediaStream o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “muted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #muted
--   
getMediaStreamMuted :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Set the value of the “muted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mediaStream [ #muted := value ]
--   
setMediaStreamMuted :: (MonadIO m, IsMediaStream o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “playing” property. This is rarely needed directly, but it is
--   used by new.
constructMediaStreamPlaying :: (IsMediaStream o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “playing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #playing
--   
getMediaStreamPlaying :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Set the value of the “playing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mediaStream [ #playing := value ]
--   
setMediaStreamPlaying :: (MonadIO m, IsMediaStream o) => o -> Bool -> m ()

-- | Get the value of the “prepared” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #prepared
--   
getMediaStreamPrepared :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Get the value of the “seekable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #seekable
--   
getMediaStreamSeekable :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Get the value of the “seeking” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #seeking
--   
getMediaStreamSeeking :: (MonadIO m, IsMediaStream o) => o -> m Bool

-- | Get the value of the “timestamp” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #timestamp
--   
getMediaStreamTimestamp :: (MonadIO m, IsMediaStream o) => o -> m Int64

-- | Construct a GValueConstruct with valid value for the
--   “volume” property. This is rarely needed directly, but it is
--   used by new.
constructMediaStreamVolume :: (IsMediaStream o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “volume” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaStream #volume
--   
getMediaStreamVolume :: (MonadIO m, IsMediaStream o) => o -> m Double

-- | Set the value of the “volume” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mediaStream [ #volume := value ]
--   
setMediaStreamVolume :: (MonadIO m, IsMediaStream o) => o -> Double -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.MediaStream.MediaStream
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MediaStream.MediaStream
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MediaStream.MediaStream
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MediaStream.MediaStream)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MediaStream.MediaStream o) => GI.Gtk.Objects.MediaStream.IsMediaStream o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MediaStream.MediaStream
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MediaStream.MediaStream

-- | Implements the GtkMediaStream interface for files.
--   
--   This provides a simple way to play back video files with GTK.
--   
--   GTK provides a GIO extension point for GtkMediaFile
--   implementations to allow for external implementations using various
--   media frameworks.
--   
--   GTK itself includes an implementation using GStreamer.
module GI.Gtk.Objects.MediaFile

-- | Memory-managed wrapper type.
newtype MediaFile
MediaFile :: ManagedPtr MediaFile -> MediaFile

-- | Type class for types which can be safely cast to MediaFile, for
--   instance with toMediaFile.
class (GObject o, IsDescendantOf MediaFile o) => IsMediaFile o

-- | Cast to MediaFile, for types for which this is known to be
--   safe. For general casts, use castTo.
toMediaFile :: (MonadIO m, IsMediaFile o) => o -> m MediaFile

-- | Resets the media file to be empty.
mediaFileClear :: (HasCallStack, MonadIO m, IsMediaFile a) => a -> m ()

-- | Returns the file that self is currently playing from.
--   
--   When self is not playing or not playing from a file,
--   Nothing is returned.
mediaFileGetFile :: (HasCallStack, MonadIO m, IsMediaFile a) => a -> m (Maybe File)

-- | Returns the stream that self is currently playing
--   from.
--   
--   When self is not playing or not playing from a stream,
--   Nothing is returned.
mediaFileGetInputStream :: (HasCallStack, MonadIO m, IsMediaFile a) => a -> m (Maybe InputStream)

-- | Creates a new empty media file.
mediaFileNew :: (HasCallStack, MonadIO m) => m MediaFile

-- | Creates a new media file to play file.
mediaFileNewForFile :: (HasCallStack, MonadIO m, IsFile a) => a -> m MediaFile

-- | Creates a new media file for the given filename.
--   
--   This is a utility function that converts the given
--   filename to a GFile and calls
--   mediaFileNewForFile.
mediaFileNewForFilename :: (HasCallStack, MonadIO m) => [Char] -> m MediaFile

-- | Creates a new media file to play stream.
--   
--   If you want the resulting media to be seekable, the stream should
--   implement the GSeekable interface.
mediaFileNewForInputStream :: (HasCallStack, MonadIO m, IsInputStream a) => a -> m MediaFile

-- | Creates a new new media file for the given resource.
--   
--   This is a utility function that converts the given
--   resource to a GFile and calls
--   mediaFileNewForFile.
mediaFileNewForResource :: (HasCallStack, MonadIO m) => Text -> m MediaFile

-- | Sets the GtkMediaFile to play the given file.
--   
--   If any file is still playing, stop playing it.
mediaFileSetFile :: (HasCallStack, MonadIO m, IsMediaFile a, IsFile b) => a -> Maybe b -> m ()

-- | Sets the GtkMediaFile to play the given file.
--   
--   This is a utility function that converts the given
--   filename to a GFile and calls
--   mediaFileSetFile.
mediaFileSetFilename :: (HasCallStack, MonadIO m, IsMediaFile a) => a -> Maybe [Char] -> m ()

-- | Sets the GtkMediaFile to play the given stream.
--   
--   If anything is still playing, stop playing it.
--   
--   Full control about the stream is assumed for the
--   duration of playback. The stream will not be closed.
mediaFileSetInputStream :: (HasCallStack, MonadIO m, IsMediaFile a, IsInputStream b) => a -> Maybe b -> m ()

-- | Sets the GtkMediaFile to play the given resource.
--   
--   This is a utility function that converts the given
--   resourcePath to a GFile and calls
--   mediaFileSetFile.
mediaFileSetResource :: (HasCallStack, MonadIO m, IsMediaFile a) => a -> Maybe Text -> m ()

-- | Set the value of the “file” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #file
--   
clearMediaFileFile :: (MonadIO m, IsMediaFile o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructMediaFileFile :: (IsMediaFile o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get mediaFile #file
--   
getMediaFileFile :: (MonadIO m, IsMediaFile o) => o -> m (Maybe File)

-- | Set the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set mediaFile [ #file := value ]
--   
setMediaFileFile :: (MonadIO m, IsMediaFile o, IsFile a) => o -> a -> m ()

-- | Set the value of the “input-stream” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #inputStream
--   
clearMediaFileInputStream :: (MonadIO m, IsMediaFile o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-stream” property. This is rarely needed directly, but
--   it is used by new.
constructMediaFileInputStream :: (IsMediaFile o, MonadIO m, IsInputStream a) => a -> m (GValueConstruct o)

-- | Get the value of the “input-stream” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaFile #inputStream
--   
getMediaFileInputStream :: (MonadIO m, IsMediaFile o) => o -> m (Maybe InputStream)

-- | Set the value of the “input-stream” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mediaFile [ #inputStream := value ]
--   
setMediaFileInputStream :: (MonadIO m, IsMediaFile o, IsInputStream a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.MediaFile.MediaFile
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MediaFile.MediaFile
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MediaFile.MediaFile
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MediaFile.MediaFile)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MediaFile.MediaFile o) => GI.Gtk.Objects.MediaFile.IsMediaFile o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MediaFile.MediaFile
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MediaFile.MediaFile

-- | Base class for filters that combine multiple filters.
module GI.Gtk.Objects.MultiFilter

-- | Memory-managed wrapper type.
newtype MultiFilter
MultiFilter :: ManagedPtr MultiFilter -> MultiFilter

-- | Type class for types which can be safely cast to MultiFilter,
--   for instance with toMultiFilter.
class (GObject o, IsDescendantOf MultiFilter o) => IsMultiFilter o

-- | Cast to MultiFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toMultiFilter :: (MonadIO m, IsMultiFilter o) => o -> m MultiFilter

-- | Adds a filter.
multiFilterAppend :: (HasCallStack, MonadIO m, IsMultiFilter a, IsFilter b) => a -> b -> m ()

-- | Removes a filter.
--   
--   If position is larger than the number of filters,
--   nothing happens.
multiFilterRemove :: (HasCallStack, MonadIO m, IsMultiFilter a) => a -> Word32 -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiFilter #itemType
--   
getMultiFilterItemType :: (MonadIO m, IsMultiFilter o) => o -> m GType

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiFilter #nItems
--   
getMultiFilterNItems :: (MonadIO m, IsMultiFilter o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.MultiFilter.MultiFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MultiFilter.MultiFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MultiFilter.MultiFilter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MultiFilter.MultiFilter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MultiFilter.MultiFilter o) => GI.Gtk.Objects.MultiFilter.IsMultiFilter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MultiFilter.MultiFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MultiFilter.MultiFilter

-- | Matches an item when each of its filters matches.
--   
--   To add filters to a GtkEveryFilter, use
--   multiFilterAppend.
module GI.Gtk.Objects.EveryFilter

-- | Memory-managed wrapper type.
newtype EveryFilter
EveryFilter :: ManagedPtr EveryFilter -> EveryFilter

-- | Type class for types which can be safely cast to EveryFilter,
--   for instance with toEveryFilter.
class (GObject o, IsDescendantOf EveryFilter o) => IsEveryFilter o

-- | Cast to EveryFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toEveryFilter :: (MonadIO m, IsEveryFilter o) => o -> m EveryFilter

-- | Creates a new empty "every" filter.
--   
--   Use multiFilterAppend to add filters to it.
--   
--   This filter matches an item if each of the filters added to it matches
--   the item. In particular, this means that if no filter has been added
--   to it, the filter matches every item.
everyFilterNew :: (HasCallStack, MonadIO m) => m EveryFilter
instance GHC.Classes.Eq GI.Gtk.Objects.EveryFilter.EveryFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EveryFilter.EveryFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EveryFilter.EveryFilter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EveryFilter.EveryFilter o) => GI.Gtk.Objects.EveryFilter.IsEveryFilter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EveryFilter.EveryFilter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EveryFilter.EveryFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EveryFilter.EveryFilter

-- | Matches an item when at least one of its filters matches.
--   
--   To add filters to a GtkAnyFilter, use
--   multiFilterAppend.
module GI.Gtk.Objects.AnyFilter

-- | Memory-managed wrapper type.
newtype AnyFilter
AnyFilter :: ManagedPtr AnyFilter -> AnyFilter

-- | Type class for types which can be safely cast to AnyFilter, for
--   instance with toAnyFilter.
class (GObject o, IsDescendantOf AnyFilter o) => IsAnyFilter o

-- | Cast to AnyFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toAnyFilter :: (MonadIO m, IsAnyFilter o) => o -> m AnyFilter

-- | Creates a new empty "any" filter.
--   
--   Use multiFilterAppend to add filters to it.
--   
--   This filter matches an item if any of the filters added to it matches
--   the item. In particular, this means that if no filter has been added
--   to it, the filter matches no item.
anyFilterNew :: (HasCallStack, MonadIO m) => m AnyFilter
instance GHC.Classes.Eq GI.Gtk.Objects.AnyFilter.AnyFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AnyFilter.AnyFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AnyFilter.AnyFilter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AnyFilter.AnyFilter o) => GI.Gtk.Objects.AnyFilter.IsAnyFilter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AnyFilter.AnyFilter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AnyFilter.AnyFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AnyFilter.AnyFilter

-- | A GParamSpec for properties holding a GtkExpression.
module GI.Gtk.Objects.ParamSpecExpression

-- | Memory-managed wrapper type.
newtype ParamSpecExpression
ParamSpecExpression :: ManagedPtr ParamSpecExpression -> ParamSpecExpression

-- | Type class for types which can be safely cast to
--   ParamSpecExpression, for instance with
--   toParamSpecExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf ParamSpecExpression o) => IsParamSpecExpression o

-- | Cast to ParamSpecExpression, for types for which this is known
--   to be safe. For general casts, use castTo.
toParamSpecExpression :: (MonadIO m, IsParamSpecExpression o) => o -> m ParamSpecExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.ParamSpecExpression.ParamSpecExpression
instance GHC.Classes.Eq GI.Gtk.Objects.ParamSpecExpression.ParamSpecExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ParamSpecExpression.ParamSpecExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ParamSpecExpression.ParamSpecExpression o) => GI.Gtk.Objects.ParamSpecExpression.IsParamSpecExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ParamSpecExpression.ParamSpecExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ParamSpecExpression.ParamSpecExpression

-- | A GtkEntryBuffer that locks the underlying memory to prevent
--   it from being swapped to disk.
--   
--   GtkPasswordEntry uses a GtkPasswordEntryBuffer.
--   
--   Since: 4.4
module GI.Gtk.Objects.PasswordEntryBuffer

-- | Memory-managed wrapper type.
newtype PasswordEntryBuffer
PasswordEntryBuffer :: ManagedPtr PasswordEntryBuffer -> PasswordEntryBuffer

-- | Type class for types which can be safely cast to
--   PasswordEntryBuffer, for instance with
--   toPasswordEntryBuffer.
class (GObject o, IsDescendantOf PasswordEntryBuffer o) => IsPasswordEntryBuffer o

-- | Cast to PasswordEntryBuffer, for types for which this is known
--   to be safe. For general casts, use castTo.
toPasswordEntryBuffer :: (MonadIO m, IsPasswordEntryBuffer o) => o -> m PasswordEntryBuffer

-- | Creates a new GtkEntryBuffer using secure memory allocations.
passwordEntryBufferNew :: (HasCallStack, MonadIO m) => m PasswordEntryBuffer
instance GHC.Classes.Eq GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer o) => GI.Gtk.Objects.PasswordEntryBuffer.IsPasswordEntryBuffer o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PasswordEntryBuffer.PasswordEntryBuffer

-- | Provides a mechanism to share global settings between applications.
--   
--   GTK relies on the platform-specific API for getting desktop-wide
--   settings.
--   
--   On Wayland, the settings are obtained via a settings portal that is
--   part of the Linux desktop APIs for application.
--   
--   On the X window system, this sharing is realized by an
--   XSettings manager.
--   
--   On macOS, the settings are obtained from NSUserDefaults.
--   
--   In the absence of these sharing mechanisms, GTK reads default values
--   for settings from settings.ini files in
--   /etc/gtk-4.0, $XDG_CONFIG_DIRS/gtk-4.0 and
--   $XDG_CONFIG_HOME/gtk-4.0. These files must be valid key files
--   (see GKeyFile), and have a section called Settings. Themes
--   can also provide default values for settings by installing a
--   settings.ini file next to their gtk.css file.
--   
--   Applications can override system-wide settings by setting the property
--   of the GtkSettings object with
--   g_object_set(). This should be restricted to special
--   cases though; GtkSettings are not meant as an application
--   configuration facility.
--   
--   There is one GtkSettings instance per display. It can be
--   obtained with settingsGetForDisplay, but in many cases, it is
--   more convenient to use widgetGetSettings.
module GI.Gtk.Objects.Settings

-- | Memory-managed wrapper type.
newtype Settings
Settings :: ManagedPtr Settings -> Settings

-- | Type class for types which can be safely cast to Settings, for
--   instance with toSettings.
class (GObject o, IsDescendantOf Settings o) => IsSettings o

-- | Cast to Settings, for types for which this is known to be safe.
--   For general casts, use castTo.
toSettings :: (MonadIO m, IsSettings o) => o -> m Settings

-- | Gets the GtkSettings object for the default display, creating
--   it if necessary.
--   
--   See settingsGetForDisplay.
settingsGetDefault :: (HasCallStack, MonadIO m) => m (Maybe Settings)

-- | Gets the GtkSettings object for display,
--   creating it if necessary.
settingsGetForDisplay :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Settings

-- | Undoes the effect of calling g_object_set() to install
--   an application-specific value for a setting.
--   
--   After this call, the setting will again follow the session-wide value
--   for this setting.
settingsResetProperty :: (HasCallStack, MonadIO m, IsSettings a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-alternative-button-order” property. This is rarely
--   needed directly, but it is used by new.
constructSettingsGtkAlternativeButtonOrder :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-alternative-button-order” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkAlternativeButtonOrder
--   
getSettingsGtkAlternativeButtonOrder :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-alternative-button-order” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkAlternativeButtonOrder := value ]
--   
setSettingsGtkAlternativeButtonOrder :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-alternative-sort-arrows” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkAlternativeSortArrows :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-alternative-sort-arrows” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkAlternativeSortArrows
--   
getSettingsGtkAlternativeSortArrows :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-alternative-sort-arrows” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkAlternativeSortArrows := value ]
--   
setSettingsGtkAlternativeSortArrows :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-application-prefer-dark-theme” property. This is rarely
--   needed directly, but it is used by new.
constructSettingsGtkApplicationPreferDarkTheme :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-application-prefer-dark-theme”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkApplicationPreferDarkTheme
--   
getSettingsGtkApplicationPreferDarkTheme :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-application-prefer-dark-theme”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkApplicationPreferDarkTheme := value ]
--   
setSettingsGtkApplicationPreferDarkTheme :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-cursor-aspect-ratio” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkCursorAspectRatio :: (IsSettings o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “gtk-cursor-aspect-ratio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkCursorAspectRatio
--   
getSettingsGtkCursorAspectRatio :: (MonadIO m, IsSettings o) => o -> m Double

-- | Set the value of the “gtk-cursor-aspect-ratio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkCursorAspectRatio := value ]
--   
setSettingsGtkCursorAspectRatio :: (MonadIO m, IsSettings o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-cursor-blink” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkCursorBlink :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-cursor-blink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkCursorBlink
--   
getSettingsGtkCursorBlink :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-cursor-blink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkCursorBlink := value ]
--   
setSettingsGtkCursorBlink :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-cursor-blink-time” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkCursorBlinkTime :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-cursor-blink-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkCursorBlinkTime
--   
getSettingsGtkCursorBlinkTime :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-cursor-blink-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkCursorBlinkTime := value ]
--   
setSettingsGtkCursorBlinkTime :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-cursor-blink-timeout” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkCursorBlinkTimeout :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-cursor-blink-timeout” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkCursorBlinkTimeout
--   
getSettingsGtkCursorBlinkTimeout :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-cursor-blink-timeout” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkCursorBlinkTimeout := value ]
--   
setSettingsGtkCursorBlinkTimeout :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Set the value of the “gtk-cursor-theme-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkCursorThemeName
--   
clearSettingsGtkCursorThemeName :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-cursor-theme-name” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkCursorThemeName :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-cursor-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkCursorThemeName
--   
getSettingsGtkCursorThemeName :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-cursor-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkCursorThemeName := value ]
--   
setSettingsGtkCursorThemeName :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-cursor-theme-size” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkCursorThemeSize :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-cursor-theme-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkCursorThemeSize
--   
getSettingsGtkCursorThemeSize :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-cursor-theme-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkCursorThemeSize := value ]
--   
setSettingsGtkCursorThemeSize :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Set the value of the “gtk-decoration-layout” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkDecorationLayout
--   
clearSettingsGtkDecorationLayout :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-decoration-layout” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkDecorationLayout :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-decoration-layout” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkDecorationLayout
--   
getSettingsGtkDecorationLayout :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-decoration-layout” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkDecorationLayout := value ]
--   
setSettingsGtkDecorationLayout :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-dialogs-use-header” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkDialogsUseHeader :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-dialogs-use-header” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkDialogsUseHeader
--   
getSettingsGtkDialogsUseHeader :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-dialogs-use-header” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkDialogsUseHeader := value ]
--   
setSettingsGtkDialogsUseHeader :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-dnd-drag-threshold” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkDndDragThreshold :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-dnd-drag-threshold” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkDndDragThreshold
--   
getSettingsGtkDndDragThreshold :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-dnd-drag-threshold” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkDndDragThreshold := value ]
--   
setSettingsGtkDndDragThreshold :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-double-click-distance” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkDoubleClickDistance :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-double-click-distance” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkDoubleClickDistance
--   
getSettingsGtkDoubleClickDistance :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-double-click-distance” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkDoubleClickDistance := value ]
--   
setSettingsGtkDoubleClickDistance :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-double-click-time” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkDoubleClickTime :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-double-click-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkDoubleClickTime
--   
getSettingsGtkDoubleClickTime :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-double-click-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkDoubleClickTime := value ]
--   
setSettingsGtkDoubleClickTime :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-enable-accels” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkEnableAccels :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-enable-accels” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEnableAccels
--   
getSettingsGtkEnableAccels :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-enable-accels” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEnableAccels := value ]
--   
setSettingsGtkEnableAccels :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-enable-animations” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkEnableAnimations :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-enable-animations” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEnableAnimations
--   
getSettingsGtkEnableAnimations :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-enable-animations” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEnableAnimations := value ]
--   
setSettingsGtkEnableAnimations :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-enable-event-sounds” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkEnableEventSounds :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-enable-event-sounds” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEnableEventSounds
--   
getSettingsGtkEnableEventSounds :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-enable-event-sounds” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEnableEventSounds := value ]
--   
setSettingsGtkEnableEventSounds :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-enable-input-feedback-sounds” property. This is rarely
--   needed directly, but it is used by new.
constructSettingsGtkEnableInputFeedbackSounds :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-enable-input-feedback-sounds”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEnableInputFeedbackSounds
--   
getSettingsGtkEnableInputFeedbackSounds :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-enable-input-feedback-sounds”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEnableInputFeedbackSounds := value ]
--   
setSettingsGtkEnableInputFeedbackSounds :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-enable-primary-paste” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkEnablePrimaryPaste :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-enable-primary-paste” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEnablePrimaryPaste
--   
getSettingsGtkEnablePrimaryPaste :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-enable-primary-paste” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEnablePrimaryPaste := value ]
--   
setSettingsGtkEnablePrimaryPaste :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-entry-password-hint-timeout” property. This is rarely
--   needed directly, but it is used by new.
constructSettingsGtkEntryPasswordHintTimeout :: (IsSettings o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-entry-password-hint-timeout”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEntryPasswordHintTimeout
--   
getSettingsGtkEntryPasswordHintTimeout :: (MonadIO m, IsSettings o) => o -> m Word32

-- | Set the value of the “gtk-entry-password-hint-timeout”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEntryPasswordHintTimeout := value ]
--   
setSettingsGtkEntryPasswordHintTimeout :: (MonadIO m, IsSettings o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-entry-select-on-focus” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkEntrySelectOnFocus :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-entry-select-on-focus” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkEntrySelectOnFocus
--   
getSettingsGtkEntrySelectOnFocus :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-entry-select-on-focus” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkEntrySelectOnFocus := value ]
--   
setSettingsGtkEntrySelectOnFocus :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-error-bell” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkErrorBell :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-error-bell” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkErrorBell
--   
getSettingsGtkErrorBell :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-error-bell” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkErrorBell := value ]
--   
setSettingsGtkErrorBell :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Set the value of the “gtk-font-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkFontName
--   
clearSettingsGtkFontName :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-font-name” property. This is rarely needed directly, but
--   it is used by new.
constructSettingsGtkFontName :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-font-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkFontName
--   
getSettingsGtkFontName :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-font-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkFontName := value ]
--   
setSettingsGtkFontName :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-font-rendering” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkFontRendering :: (IsSettings o, MonadIO m) => FontRendering -> m (GValueConstruct o)

-- | Get the value of the “gtk-font-rendering” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkFontRendering
--   
getSettingsGtkFontRendering :: (MonadIO m, IsSettings o) => o -> m FontRendering

-- | Set the value of the “gtk-font-rendering” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkFontRendering := value ]
--   
setSettingsGtkFontRendering :: (MonadIO m, IsSettings o) => o -> FontRendering -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-fontconfig-timestamp” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkFontconfigTimestamp :: (IsSettings o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-fontconfig-timestamp” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkFontconfigTimestamp
--   
getSettingsGtkFontconfigTimestamp :: (MonadIO m, IsSettings o) => o -> m Word32

-- | Set the value of the “gtk-fontconfig-timestamp” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkFontconfigTimestamp := value ]
--   
setSettingsGtkFontconfigTimestamp :: (MonadIO m, IsSettings o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-hint-font-metrics” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkHintFontMetrics :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-hint-font-metrics” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkHintFontMetrics
--   
getSettingsGtkHintFontMetrics :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-hint-font-metrics” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkHintFontMetrics := value ]
--   
setSettingsGtkHintFontMetrics :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Set the value of the “gtk-icon-theme-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkIconThemeName
--   
clearSettingsGtkIconThemeName :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-icon-theme-name” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkIconThemeName :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-icon-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkIconThemeName
--   
getSettingsGtkIconThemeName :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-icon-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkIconThemeName := value ]
--   
setSettingsGtkIconThemeName :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Set the value of the “gtk-im-module” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkImModule
--   
clearSettingsGtkImModule :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-im-module” property. This is rarely needed directly, but
--   it is used by new.
constructSettingsGtkImModule :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkImModule
--   
getSettingsGtkImModule :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkImModule := value ]
--   
setSettingsGtkImModule :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-interface-color-scheme” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkInterfaceColorScheme :: (IsSettings o, MonadIO m) => InterfaceColorScheme -> m (GValueConstruct o)

-- | Get the value of the “gtk-interface-color-scheme” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkInterfaceColorScheme
--   
getSettingsGtkInterfaceColorScheme :: (MonadIO m, IsSettings o) => o -> m InterfaceColorScheme

-- | Set the value of the “gtk-interface-color-scheme” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkInterfaceColorScheme := value ]
--   
setSettingsGtkInterfaceColorScheme :: (MonadIO m, IsSettings o) => o -> InterfaceColorScheme -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-interface-contrast” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkInterfaceContrast :: (IsSettings o, MonadIO m) => InterfaceContrast -> m (GValueConstruct o)

-- | Get the value of the “gtk-interface-contrast” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkInterfaceContrast
--   
getSettingsGtkInterfaceContrast :: (MonadIO m, IsSettings o) => o -> m InterfaceContrast

-- | Set the value of the “gtk-interface-contrast” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkInterfaceContrast := value ]
--   
setSettingsGtkInterfaceContrast :: (MonadIO m, IsSettings o) => o -> InterfaceContrast -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-interface-reduced-motion” property. This is rarely
--   needed directly, but it is used by new.
constructSettingsGtkInterfaceReducedMotion :: (IsSettings o, MonadIO m) => ReducedMotion -> m (GValueConstruct o)

-- | Get the value of the “gtk-interface-reduced-motion” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkInterfaceReducedMotion
--   
getSettingsGtkInterfaceReducedMotion :: (MonadIO m, IsSettings o) => o -> m ReducedMotion

-- | Set the value of the “gtk-interface-reduced-motion” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkInterfaceReducedMotion := value ]
--   
setSettingsGtkInterfaceReducedMotion :: (MonadIO m, IsSettings o) => o -> ReducedMotion -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-keynav-use-caret” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkKeynavUseCaret :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-keynav-use-caret” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkKeynavUseCaret
--   
getSettingsGtkKeynavUseCaret :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-keynav-use-caret” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkKeynavUseCaret := value ]
--   
setSettingsGtkKeynavUseCaret :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-label-select-on-focus” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkLabelSelectOnFocus :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-label-select-on-focus” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkLabelSelectOnFocus
--   
getSettingsGtkLabelSelectOnFocus :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-label-select-on-focus” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkLabelSelectOnFocus := value ]
--   
setSettingsGtkLabelSelectOnFocus :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-long-press-time” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkLongPressTime :: (IsSettings o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-long-press-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkLongPressTime
--   
getSettingsGtkLongPressTime :: (MonadIO m, IsSettings o) => o -> m Word32

-- | Set the value of the “gtk-long-press-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkLongPressTime := value ]
--   
setSettingsGtkLongPressTime :: (MonadIO m, IsSettings o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-overlay-scrolling” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkOverlayScrolling :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-overlay-scrolling” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkOverlayScrolling
--   
getSettingsGtkOverlayScrolling :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-overlay-scrolling” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkOverlayScrolling := value ]
--   
setSettingsGtkOverlayScrolling :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-primary-button-warps-slider” property. This is rarely
--   needed directly, but it is used by new.
constructSettingsGtkPrimaryButtonWarpsSlider :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-primary-button-warps-slider”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkPrimaryButtonWarpsSlider
--   
getSettingsGtkPrimaryButtonWarpsSlider :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-primary-button-warps-slider”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkPrimaryButtonWarpsSlider := value ]
--   
setSettingsGtkPrimaryButtonWarpsSlider :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Set the value of the “gtk-print-backends” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkPrintBackends
--   
clearSettingsGtkPrintBackends :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-print-backends” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkPrintBackends :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-print-backends” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkPrintBackends
--   
getSettingsGtkPrintBackends :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-print-backends” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkPrintBackends := value ]
--   
setSettingsGtkPrintBackends :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Set the value of the “gtk-print-preview-command” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkPrintPreviewCommand
--   
clearSettingsGtkPrintPreviewCommand :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-print-preview-command” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkPrintPreviewCommand :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-print-preview-command” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkPrintPreviewCommand
--   
getSettingsGtkPrintPreviewCommand :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-print-preview-command” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkPrintPreviewCommand := value ]
--   
setSettingsGtkPrintPreviewCommand :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-recent-files-enabled” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkRecentFilesEnabled :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-recent-files-enabled” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkRecentFilesEnabled
--   
getSettingsGtkRecentFilesEnabled :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-recent-files-enabled” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkRecentFilesEnabled := value ]
--   
setSettingsGtkRecentFilesEnabled :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-recent-files-max-age” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkRecentFilesMaxAge :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-recent-files-max-age” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkRecentFilesMaxAge
--   
getSettingsGtkRecentFilesMaxAge :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-recent-files-max-age” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkRecentFilesMaxAge := value ]
--   
setSettingsGtkRecentFilesMaxAge :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-shell-shows-app-menu” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkShellShowsAppMenu :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-shell-shows-app-menu” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkShellShowsAppMenu
--   
getSettingsGtkShellShowsAppMenu :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-shell-shows-app-menu” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkShellShowsAppMenu := value ]
--   
setSettingsGtkShellShowsAppMenu :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-shell-shows-desktop” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkShellShowsDesktop :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-shell-shows-desktop” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkShellShowsDesktop
--   
getSettingsGtkShellShowsDesktop :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-shell-shows-desktop” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkShellShowsDesktop := value ]
--   
setSettingsGtkShellShowsDesktop :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-shell-shows-menubar” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkShellShowsMenubar :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-shell-shows-menubar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkShellShowsMenubar
--   
getSettingsGtkShellShowsMenubar :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-shell-shows-menubar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkShellShowsMenubar := value ]
--   
setSettingsGtkShellShowsMenubar :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-show-status-shapes” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkShowStatusShapes :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-show-status-shapes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkShowStatusShapes
--   
getSettingsGtkShowStatusShapes :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-show-status-shapes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkShowStatusShapes := value ]
--   
setSettingsGtkShowStatusShapes :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Set the value of the “gtk-sound-theme-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkSoundThemeName
--   
clearSettingsGtkSoundThemeName :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-sound-theme-name” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkSoundThemeName :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-sound-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkSoundThemeName
--   
getSettingsGtkSoundThemeName :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-sound-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkSoundThemeName := value ]
--   
setSettingsGtkSoundThemeName :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-split-cursor” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkSplitCursor :: (IsSettings o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “gtk-split-cursor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkSplitCursor
--   
getSettingsGtkSplitCursor :: (MonadIO m, IsSettings o) => o -> m Bool

-- | Set the value of the “gtk-split-cursor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkSplitCursor := value ]
--   
setSettingsGtkSplitCursor :: (MonadIO m, IsSettings o) => o -> Bool -> m ()

-- | Set the value of the “gtk-theme-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkThemeName
--   
clearSettingsGtkThemeName :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-theme-name” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkThemeName :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkThemeName
--   
getSettingsGtkThemeName :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-theme-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkThemeName := value ]
--   
setSettingsGtkThemeName :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Set the value of the “gtk-titlebar-double-click” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkTitlebarDoubleClick
--   
clearSettingsGtkTitlebarDoubleClick :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-titlebar-double-click” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkTitlebarDoubleClick :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-titlebar-double-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkTitlebarDoubleClick
--   
getSettingsGtkTitlebarDoubleClick :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-titlebar-double-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkTitlebarDoubleClick := value ]
--   
setSettingsGtkTitlebarDoubleClick :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Set the value of the “gtk-titlebar-middle-click” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkTitlebarMiddleClick
--   
clearSettingsGtkTitlebarMiddleClick :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-titlebar-middle-click” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkTitlebarMiddleClick :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-titlebar-middle-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkTitlebarMiddleClick
--   
getSettingsGtkTitlebarMiddleClick :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-titlebar-middle-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkTitlebarMiddleClick := value ]
--   
setSettingsGtkTitlebarMiddleClick :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Set the value of the “gtk-titlebar-right-click” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkTitlebarRightClick
--   
clearSettingsGtkTitlebarRightClick :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-titlebar-right-click” property. This is rarely needed
--   directly, but it is used by new.
constructSettingsGtkTitlebarRightClick :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-titlebar-right-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkTitlebarRightClick
--   
getSettingsGtkTitlebarRightClick :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-titlebar-right-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkTitlebarRightClick := value ]
--   
setSettingsGtkTitlebarRightClick :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-xft-antialias” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkXftAntialias :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-xft-antialias” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkXftAntialias
--   
getSettingsGtkXftAntialias :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-xft-antialias” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkXftAntialias := value ]
--   
setSettingsGtkXftAntialias :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-xft-dpi” property. This is rarely needed directly, but
--   it is used by new.
constructSettingsGtkXftDpi :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-xft-dpi” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkXftDpi
--   
getSettingsGtkXftDpi :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-xft-dpi” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkXftDpi := value ]
--   
setSettingsGtkXftDpi :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-xft-hinting” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkXftHinting :: (IsSettings o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “gtk-xft-hinting” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkXftHinting
--   
getSettingsGtkXftHinting :: (MonadIO m, IsSettings o) => o -> m Int32

-- | Set the value of the “gtk-xft-hinting” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkXftHinting := value ]
--   
setSettingsGtkXftHinting :: (MonadIO m, IsSettings o) => o -> Int32 -> m ()

-- | Set the value of the “gtk-xft-hintstyle” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkXftHintstyle
--   
clearSettingsGtkXftHintstyle :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-xft-hintstyle” property. This is rarely needed directly,
--   but it is used by new.
constructSettingsGtkXftHintstyle :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-xft-hintstyle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkXftHintstyle
--   
getSettingsGtkXftHintstyle :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-xft-hintstyle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkXftHintstyle := value ]
--   
setSettingsGtkXftHintstyle :: (MonadIO m, IsSettings o) => o -> Text -> m ()

-- | Set the value of the “gtk-xft-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #gtkXftRgba
--   
clearSettingsGtkXftRgba :: (MonadIO m, IsSettings o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gtk-xft-rgba” property. This is rarely needed directly, but
--   it is used by new.
constructSettingsGtkXftRgba :: (IsSettings o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “gtk-xft-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get settings #gtkXftRgba
--   
getSettingsGtkXftRgba :: (MonadIO m, IsSettings o) => o -> m (Maybe Text)

-- | Set the value of the “gtk-xft-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set settings [ #gtkXftRgba := value ]
--   
setSettingsGtkXftRgba :: (MonadIO m, IsSettings o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Settings.Settings
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Settings.Settings
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Settings.Settings
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Settings.Settings)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Settings.Settings o) => GI.Gtk.Objects.Settings.IsSettings o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Settings.Settings
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Settings.Settings

-- | Tracks how a GtkShortcut can be activated.
--   
--   To find out if a GtkShortcutTrigger triggers, you can call
--   shortcutTriggerTrigger on a GdkEvent.
--   
--   GtkShortcutTriggers contain functions that allow easy
--   presentation to end users as well as being printed for debugging.
--   
--   All GtkShortcutTriggers are immutable, you can only specify
--   their properties during construction. If you want to change a trigger,
--   you have to replace it with a new one.
module GI.Gtk.Objects.ShortcutTrigger

-- | Memory-managed wrapper type.
newtype ShortcutTrigger
ShortcutTrigger :: ManagedPtr ShortcutTrigger -> ShortcutTrigger

-- | Type class for types which can be safely cast to
--   ShortcutTrigger, for instance with toShortcutTrigger.
class (GObject o, IsDescendantOf ShortcutTrigger o) => IsShortcutTrigger o

-- | Cast to ShortcutTrigger, for types for which this is known to
--   be safe. For general casts, use castTo.
toShortcutTrigger :: (MonadIO m, IsShortcutTrigger o) => o -> m ShortcutTrigger

-- | The types of trigger1 and trigger2 are
--   gconstpointer only to allow use of this function as a
--   GCompareFunc.
--   
--   They must each be a GtkShortcutTrigger.
shortcutTriggerCompare :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsShortcutTrigger b) => a -> b -> m Int32

-- | Checks if trigger1 and trigger2
--   trigger under the same conditions.
--   
--   The types of one and two are
--   gconstpointer only to allow use of this function with
--   GHashTable. They must each be a GtkShortcutTrigger.
shortcutTriggerEqual :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsShortcutTrigger b) => a -> b -> m Bool

-- | Generates a hash value for a GtkShortcutTrigger.
--   
--   The output of this function is guaranteed to be the same for a given
--   value only per-process. It may change between different processor
--   architectures or even different versions of GTK. Do not use this
--   function as a basis for building protocols or file formats.
--   
--   The types of trigger is gconstpointer only to
--   allow use of this function with GHashTable. They must each be
--   a GtkShortcutTrigger.
shortcutTriggerHash :: (HasCallStack, MonadIO m, IsShortcutTrigger a) => a -> m Word32

-- | Tries to parse the given string into a trigger.
--   
--   On success, the parsed trigger is returned. When parsing failed,
--   Nothing is returned.
--   
--   The accepted strings are:
--   
--   
--   
- never, for GtkNeverTrigger
--   
- a string parsed by acceleratorParse, for a
--   GtkKeyvalTrigger, e.g. <Control>C
--   
- underscore, followed by a single character, for
--   GtkMnemonicTrigger, e.g. _l
--   
- two valid trigger strings, separated by a | character,
--   for a GtkAlternativeTrigger:
--   <Control>q|<Control>w
--   
--   
--   Note that you will have to escape the < and >
--   characters when specifying triggers in XML files, such as GtkBuilder
--   ui files. Use &lt; instead of < and
--   &gt; instead of >.
shortcutTriggerParseString :: (HasCallStack, MonadIO m) => Text -> m (Maybe ShortcutTrigger)

-- | Prints the given trigger into a string for the developer. This is
--   meant for debugging and logging.
--   
--   The form of the representation may change at any time and is not
--   guaranteed to stay identical.
shortcutTriggerPrint :: (HasCallStack, MonadIO m, IsShortcutTrigger a) => a -> String -> m ()

-- | Prints the given trigger into a string.
--   
--   This function is returning a translated string for presentation to end
--   users for example in menu items or in help texts.
--   
--   The display in use may influence the resulting string
--   in various forms, such as resolving hardware keycodes or by causing
--   display-specific modifier names.
--   
--   The form of the representation may change at any time and is not
--   guaranteed to stay identical.
shortcutTriggerPrintLabel :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsDisplay b) => a -> b -> String -> m Bool

-- | Gets textual representation for the given trigger.
--   
--   This function is returning a translated string for presentation to end
--   users for example in menu items or in help texts.
--   
--   The display in use may influence the resulting string
--   in various forms, such as resolving hardware keycodes or by causing
--   display-specific modifier names.
--   
--   The form of the representation may change at any time and is not
--   guaranteed to stay identical.
shortcutTriggerToLabel :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsDisplay b) => a -> b -> m Text

-- | Prints the given trigger into a human-readable string.
--   
--   This is a small wrapper around shortcutTriggerPrint to help
--   when debugging.
shortcutTriggerToString :: (HasCallStack, MonadIO m, IsShortcutTrigger a) => a -> m Text

-- | Checks if the given event triggers
--   self.
shortcutTriggerTrigger :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsEvent b) => a -> b -> Bool -> m KeyMatch
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger o) => GI.Gtk.Objects.ShortcutTrigger.IsShortcutTrigger o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutTrigger.ShortcutTrigger

-- | A GtkShortcutTrigger that never triggers.
module GI.Gtk.Objects.NeverTrigger

-- | Memory-managed wrapper type.
newtype NeverTrigger
NeverTrigger :: ManagedPtr NeverTrigger -> NeverTrigger

-- | Type class for types which can be safely cast to NeverTrigger,
--   for instance with toNeverTrigger.
class (GObject o, IsDescendantOf NeverTrigger o) => IsNeverTrigger o

-- | Cast to NeverTrigger, for types for which this is known to be
--   safe. For general casts, use castTo.
toNeverTrigger :: (MonadIO m, IsNeverTrigger o) => o -> m NeverTrigger

-- | Gets the never trigger.
--   
--   This is a singleton for a trigger that never triggers. Use this
--   trigger instead of Nothing because it implements all virtual
--   functions.
neverTriggerGet :: (HasCallStack, MonadIO m) => m NeverTrigger
instance GHC.Classes.Eq GI.Gtk.Objects.NeverTrigger.NeverTrigger
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NeverTrigger.NeverTrigger
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NeverTrigger.NeverTrigger
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NeverTrigger.NeverTrigger)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NeverTrigger.NeverTrigger o) => GI.Gtk.Objects.NeverTrigger.IsNeverTrigger o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NeverTrigger.NeverTrigger
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NeverTrigger.NeverTrigger

-- | Triggers when a specific mnemonic is pressed.
--   
--   Mnemonics require a *mnemonic modifier* (typically
--   <kbd>Alt</kbd>) to be pressed together with the mnemonic
--   key.
module GI.Gtk.Objects.MnemonicTrigger

-- | Memory-managed wrapper type.
newtype MnemonicTrigger
MnemonicTrigger :: ManagedPtr MnemonicTrigger -> MnemonicTrigger

-- | Type class for types which can be safely cast to
--   MnemonicTrigger, for instance with toMnemonicTrigger.
class (GObject o, IsDescendantOf MnemonicTrigger o) => IsMnemonicTrigger o

-- | Cast to MnemonicTrigger, for types for which this is known to
--   be safe. For general casts, use castTo.
toMnemonicTrigger :: (MonadIO m, IsMnemonicTrigger o) => o -> m MnemonicTrigger

-- | Gets the keyval that must be pressed to succeed triggering
--   self.
mnemonicTriggerGetKeyval :: (HasCallStack, MonadIO m, IsMnemonicTrigger a) => a -> m Word32

-- | Creates a GtkShortcutTrigger that will trigger whenever the
--   key with the given keyval is pressed and mnemonics
--   have been activated.
--   
--   Mnemonics are activated by calling code when a key event with the
--   right modifiers is detected.
mnemonicTriggerNew :: (HasCallStack, MonadIO m) => Word32 -> m MnemonicTrigger

-- | Construct a GValueConstruct with valid value for the
--   “keyval” property. This is rarely needed directly, but it is
--   used by new.
constructMnemonicTriggerKeyval :: (IsMnemonicTrigger o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “keyval” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mnemonicTrigger #keyval
--   
getMnemonicTriggerKeyval :: (MonadIO m, IsMnemonicTrigger o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger o) => GI.Gtk.Objects.MnemonicTrigger.IsMnemonicTrigger o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MnemonicTrigger.MnemonicTrigger

-- | Triggers when a specific keyval and modifiers are pressed.
module GI.Gtk.Objects.KeyvalTrigger

-- | Memory-managed wrapper type.
newtype KeyvalTrigger
KeyvalTrigger :: ManagedPtr KeyvalTrigger -> KeyvalTrigger

-- | Type class for types which can be safely cast to KeyvalTrigger,
--   for instance with toKeyvalTrigger.
class (GObject o, IsDescendantOf KeyvalTrigger o) => IsKeyvalTrigger o

-- | Cast to KeyvalTrigger, for types for which this is known to be
--   safe. For general casts, use castTo.
toKeyvalTrigger :: (MonadIO m, IsKeyvalTrigger o) => o -> m KeyvalTrigger

-- | Gets the keyval that must be pressed to succeed triggering
--   self.
keyvalTriggerGetKeyval :: (HasCallStack, MonadIO m, IsKeyvalTrigger a) => a -> m Word32

-- | Gets the modifiers that must be present to succeed triggering
--   self.
keyvalTriggerGetModifiers :: (HasCallStack, MonadIO m, IsKeyvalTrigger a) => a -> m [ModifierType]

-- | Creates a GtkShortcutTrigger that will trigger whenever the
--   key with the given keyval and
--   modifiers is pressed.
keyvalTriggerNew :: (HasCallStack, MonadIO m) => Word32 -> [ModifierType] -> m KeyvalTrigger

-- | Construct a GValueConstruct with valid value for the
--   “keyval” property. This is rarely needed directly, but it is
--   used by new.
constructKeyvalTriggerKeyval :: (IsKeyvalTrigger o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “keyval” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get keyvalTrigger #keyval
--   
getKeyvalTriggerKeyval :: (MonadIO m, IsKeyvalTrigger o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “modifiers” property. This is rarely needed directly, but it
--   is used by new.
constructKeyvalTriggerModifiers :: (IsKeyvalTrigger o, MonadIO m) => [ModifierType] -> m (GValueConstruct o)

-- | Get the value of the “modifiers” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get keyvalTrigger #modifiers
--   
getKeyvalTriggerModifiers :: (MonadIO m, IsKeyvalTrigger o) => o -> m [ModifierType]
instance GHC.Classes.Eq GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger o) => GI.Gtk.Objects.KeyvalTrigger.IsKeyvalTrigger o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.KeyvalTrigger.KeyvalTrigger

-- | Combines two shortcut triggers.
--   
--   The GtkAlternativeTrigger triggers when either of the two
--   trigger.
--   
--   This can be cascaded to combine more than two triggers.
module GI.Gtk.Objects.AlternativeTrigger

-- | Memory-managed wrapper type.
newtype AlternativeTrigger
AlternativeTrigger :: ManagedPtr AlternativeTrigger -> AlternativeTrigger

-- | Type class for types which can be safely cast to
--   AlternativeTrigger, for instance with
--   toAlternativeTrigger.
class (GObject o, IsDescendantOf AlternativeTrigger o) => IsAlternativeTrigger o

-- | Cast to AlternativeTrigger, for types for which this is known
--   to be safe. For general casts, use castTo.
toAlternativeTrigger :: (MonadIO m, IsAlternativeTrigger o) => o -> m AlternativeTrigger

-- | Gets the first of the two alternative triggers that may trigger
--   self.
--   
--   alternativeTriggerGetSecond will return the other one.
alternativeTriggerGetFirst :: (HasCallStack, MonadIO m, IsAlternativeTrigger a) => a -> m ShortcutTrigger

-- | Gets the second of the two alternative triggers that may trigger
--   self.
--   
--   alternativeTriggerGetFirst will return the other one.
alternativeTriggerGetSecond :: (HasCallStack, MonadIO m, IsAlternativeTrigger a) => a -> m ShortcutTrigger

-- | Creates a GtkShortcutTrigger that will trigger whenever
--   either of the two given triggers gets triggered.
--   
--   Note that nesting is allowed, so if you want more than two
--   alternative, create a new alternative trigger for each option.
alternativeTriggerNew :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsShortcutTrigger b) => a -> b -> m AlternativeTrigger

-- | Construct a GValueConstruct with valid value for the
--   “first” property. This is rarely needed directly, but it is
--   used by new.
constructAlternativeTriggerFirst :: (IsAlternativeTrigger o, MonadIO m, IsShortcutTrigger a) => a -> m (GValueConstruct o)

-- | Get the value of the “first” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alternativeTrigger #first
--   
getAlternativeTriggerFirst :: (MonadIO m, IsAlternativeTrigger o) => o -> m ShortcutTrigger

-- | Construct a GValueConstruct with valid value for the
--   “second” property. This is rarely needed directly, but it is
--   used by new.
constructAlternativeTriggerSecond :: (IsAlternativeTrigger o, MonadIO m, IsShortcutTrigger a) => a -> m (GValueConstruct o)

-- | Get the value of the “second” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alternativeTrigger #second
--   
getAlternativeTriggerSecond :: (MonadIO m, IsAlternativeTrigger o) => o -> m ShortcutTrigger
instance GHC.Classes.Eq GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger o) => GI.Gtk.Objects.AlternativeTrigger.IsAlternativeTrigger o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AlternativeTrigger.AlternativeTrigger

-- | Emits signals to manage listitems.
--   
--   Signals are emitted for every listitem in the same order:
--   
--   
--   
- SignalListItemFactory::setup is emitted to set up permanent
--   things on the listitem. This usually means constructing the widgets
--   used in the row and adding them to the listitem.
--   
- SignalListItemFactory::bind is emitted to bind the item
--   passed via ListItem:item to the widgets that have been created
--   in step 1 or to add item-specific widgets. Signals are connected to
--   listen to changes - both to changes in the item to update the widgets
--   or to changes in the widgets to update the item. After this signal has
--   been called, the listitem may be shown in a list widget.
--   
- SignalListItemFactory::unbind is emitted to undo everything
--   done in step 2. Usually this means disconnecting signal handlers. Once
--   this signal has been called, the listitem will no longer be used in a
--   list widget.
--   
- SignalListItemFactory::bind and
--   SignalListItemFactory::unbind may be emitted multiple times
--   again to bind the listitem for use with new items. By reusing
--   listitems, potentially costly setup can be avoided. However, it means
--   code needs to make sure to properly clean up the listitem in step 3 so
--   that no information from the previous use leaks into the next
--   one.
--   
- SignalListItemFactory::teardown is emitted to allow undoing
--   the effects of SignalListItemFactory::setup. After this signal
--   was emitted on a listitem, the listitem will be destroyed and not be
--   used again.
--   
--   
--   Note that during the signal emissions, changing properties on the
--   listitems passed will not trigger notify signals as the listitem's
--   notifications are frozen. See objectFreezeNotify for details.
--   
--   For tracking changes in other properties in the listitem, the
--   notify signal is recommended. The signal can be connected in
--   the SignalListItemFactory::setup signal and removed again
--   during SignalListItemFactory::teardown.
module GI.Gtk.Objects.SignalListItemFactory

-- | Memory-managed wrapper type.
newtype SignalListItemFactory
SignalListItemFactory :: ManagedPtr SignalListItemFactory -> SignalListItemFactory

-- | Type class for types which can be safely cast to
--   SignalListItemFactory, for instance with
--   toSignalListItemFactory.
class (GObject o, IsDescendantOf SignalListItemFactory o) => IsSignalListItemFactory o

-- | Cast to SignalListItemFactory, for types for which this is
--   known to be safe. For general casts, use castTo.
toSignalListItemFactory :: (MonadIO m, IsSignalListItemFactory o) => o -> m SignalListItemFactory

-- | Creates a new GtkSignalListItemFactory.
--   
--   You need to connect signal handlers before you use it.
signalListItemFactoryNew :: (HasCallStack, MonadIO m) => m SignalListItemFactory

-- | Emitted when an object has been bound to an item.
--   
--   The handler for this signal must set to populate the listitem with
--   widgets.
--   
--   After this signal was emitted, the object might be shown in a
--   ListView or other widget.
--   
--   The SignalListItemFactory::unbind signal is the opposite of
--   this signal and can be used to undo everything done in this signal.
type SignalListItemFactoryBindCallback = Object -> IO ()

-- | Connect a signal handler for the bind signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after signalListItemFactory #bind callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSignalListItemFactoryBind :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactoryBindCallback) -> m SignalHandlerId

-- | Connect a signal handler for the bind signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on signalListItemFactory #bind callback
--   
onSignalListItemFactoryBind :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactoryBindCallback) -> m SignalHandlerId

-- | Emitted when a newly created listitem needs to be prepared for use.
--   
--   It is the first signal emitted for every listitem.
--   
--   The handler for this signal must call listItemSetChild to
--   populate the listitem with widgets.
--   
--   The SignalListItemFactory::teardown signal is the opposite of
--   this signal and can be used to undo everything done in this signal.
type SignalListItemFactorySetupCallback = Object -> IO ()

-- | Connect a signal handler for the setup signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after signalListItemFactory #setup callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSignalListItemFactorySetup :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactorySetupCallback) -> m SignalHandlerId

-- | Connect a signal handler for the setup signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on signalListItemFactory #setup callback
--   
onSignalListItemFactorySetup :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactorySetupCallback) -> m SignalHandlerId

-- | Emitted when an object is about to be destroyed.
--   
--   It is the last signal ever emitted for this object.
--   
--   This signal is the opposite of the SignalListItemFactory::setup
--   signal and should be used to undo everything done in that signal.
type SignalListItemFactoryTeardownCallback = Object -> IO ()

-- | Connect a signal handler for the teardown signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after signalListItemFactory #teardown callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSignalListItemFactoryTeardown :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactoryTeardownCallback) -> m SignalHandlerId

-- | Connect a signal handler for the teardown signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on signalListItemFactory #teardown callback
--   
onSignalListItemFactoryTeardown :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactoryTeardownCallback) -> m SignalHandlerId

-- | Emitted when an object has been unbound from its item.
--   
--   This happens for example when a listitem was removed from use in a
--   list widget and its ListItem:item is about to be unset.
--   
--   This signal is the opposite of the SignalListItemFactory::bind
--   signal and should be used to undo everything done in that signal.
type SignalListItemFactoryUnbindCallback = Object -> IO ()

-- | Connect a signal handler for the unbind signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after signalListItemFactory #unbind callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSignalListItemFactoryUnbind :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactoryUnbindCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unbind signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on signalListItemFactory #unbind callback
--   
onSignalListItemFactoryUnbind :: (IsSignalListItemFactory a, MonadIO m) => a -> ((?self :: a) => SignalListItemFactoryUnbindCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory o) => GI.Gtk.Objects.SignalListItemFactory.IsSignalListItemFactory o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SignalListItemFactory.SignalListItemFactory

-- | A list model that presents a slice of another model.
--   
--   This is useful when implementing paging by setting the size to the
--   number of elements per page and updating the offset whenever a
--   different page is opened.
--   
--   GtkSliceListModel passes through sections from the underlying
--   model.
module GI.Gtk.Objects.SliceListModel

-- | Memory-managed wrapper type.
newtype SliceListModel
SliceListModel :: ManagedPtr SliceListModel -> SliceListModel

-- | Type class for types which can be safely cast to
--   SliceListModel, for instance with toSliceListModel.
class (GObject o, IsDescendantOf SliceListModel o) => IsSliceListModel o

-- | Cast to SliceListModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toSliceListModel :: (MonadIO m, IsSliceListModel o) => o -> m SliceListModel

-- | Gets the model that is currently being used or Nothing if none.
sliceListModelGetModel :: (HasCallStack, MonadIO m, IsSliceListModel a) => a -> m (Maybe ListModel)

-- | Gets the offset set via sliceListModelSetOffset.
sliceListModelGetOffset :: (HasCallStack, MonadIO m, IsSliceListModel a) => a -> m Word32

-- | Gets the size set via sliceListModelSetSize.
sliceListModelGetSize :: (HasCallStack, MonadIO m, IsSliceListModel a) => a -> m Word32

-- | Creates a new slice model.
--   
--   It presents the slice from offset to offset +
--   size of the given model.
sliceListModelNew :: (HasCallStack, MonadIO m, IsListModel a) => Maybe a -> Word32 -> Word32 -> m SliceListModel

-- | Sets the model to show a slice of.
--   
--   The model's item type must conform to self's item
--   type.
sliceListModelSetModel :: (HasCallStack, MonadIO m, IsSliceListModel a, IsListModel b) => a -> Maybe b -> m ()

-- | Sets the offset into the original model for this slice.
--   
--   If the offset is too large for the sliced model, self
--   will end up empty.
sliceListModelSetOffset :: (HasCallStack, MonadIO m, IsSliceListModel a) => a -> Word32 -> m ()

-- | Sets the maximum size. self will never have more items
--   than size.
--   
--   It can however have fewer items if the offset is too large or the
--   model sliced from doesn't have enough items.
sliceListModelSetSize :: (HasCallStack, MonadIO m, IsSliceListModel a) => a -> Word32 -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sliceListModel #itemType
--   
getSliceListModelItemType :: (MonadIO m, IsSliceListModel o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearSliceListModelModel :: (MonadIO m, IsSliceListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructSliceListModelModel :: (IsSliceListModel o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sliceListModel #model
--   
getSliceListModelModel :: (MonadIO m, IsSliceListModel o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set sliceListModel [ #model := value ]
--   
setSliceListModelModel :: (MonadIO m, IsSliceListModel o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sliceListModel #nItems
--   
getSliceListModelNItems :: (MonadIO m, IsSliceListModel o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “offset” property. This is rarely needed directly, but it is
--   used by new.
constructSliceListModelOffset :: (IsSliceListModel o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “offset” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sliceListModel #offset
--   
getSliceListModelOffset :: (MonadIO m, IsSliceListModel o) => o -> m Word32

-- | Set the value of the “offset” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set sliceListModel [ #offset := value ]
--   
setSliceListModelOffset :: (MonadIO m, IsSliceListModel o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size” property. This is rarely needed directly, but it is
--   used by new.
constructSliceListModelSize :: (IsSliceListModel o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get sliceListModel #size
--   
getSliceListModelSize :: (MonadIO m, IsSliceListModel o) => o -> m Word32

-- | Set the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set sliceListModel [ #size := value ]
--   
setSliceListModelSize :: (MonadIO m, IsSliceListModel o) => o -> Word32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.SliceListModel.SliceListModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SliceListModel.SliceListModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SliceListModel.SliceListModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SliceListModel.SliceListModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SliceListModel.SliceListModel o) => GI.Gtk.Objects.SliceListModel.IsSliceListModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SliceListModel.SliceListModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SliceListModel.SliceListModel

-- | Describes sorting criteria for a SortListModel.
--   
--   Its primary user is SortListModel
--   
--   The model will use a sorter to determine the order in which its items
--   should appear by calling sorterCompare for pairs of items.
--   
--   Sorters may change their sorting behavior through their lifetime. In
--   that case, they will emit the Sorter::changed signal to notify
--   that the sort order is no longer valid and should be updated by
--   calling sorterCompare again.
--   
--   GTK provides various pre-made sorter implementations for common
--   sorting operations. ColumnView has built-in support for sorting
--   lists via the ColumnViewColumn:sorter property, where the user
--   can change the sorting by clicking on list headers.
--   
--   Of course, in particular for large lists, it is also possible to
--   subclass GtkSorter and provide one's own sorter.
module GI.Gtk.Objects.Sorter

-- | Memory-managed wrapper type.
newtype Sorter
Sorter :: ManagedPtr Sorter -> Sorter

-- | Type class for types which can be safely cast to Sorter, for
--   instance with toSorter.
class (GObject o, IsDescendantOf Sorter o) => IsSorter o

-- | Cast to Sorter, for types for which this is known to be safe.
--   For general casts, use castTo.
toSorter :: (MonadIO m, IsSorter o) => o -> m Sorter

-- | Notifies all users of the sorter that it has changed.
--   
--   This emits the Sorter::changed signal. Users of the sorter
--   should then update the sort order via sorterCompare.
--   
--   Depending on the change parameter, it may be possible
--   to update the sort order without a full resorting. Refer to the
--   SorterChange documentation for details.
--   
--   This function is intended for implementers of GtkSorter
--   subclasses and should not be called from other functions.
sorterChanged :: (HasCallStack, MonadIO m, IsSorter a) => a -> SorterChange -> m ()

-- | Compares two given items according to the sort order implemented by
--   the sorter.
--   
--   Sorters implement a partial order:
--   
--   
--   
- It is reflexive, ie a = a
--   
- It is antisymmetric, ie if a < b and b < a, then a = b
--   
- It is transitive, ie given any 3 items with a ≤ b and b ≤ c, then
--   a ≤ c
--   
--   
--   The sorter may signal it conforms to additional constraints via the
--   return value of sorterGetOrder.
sorterCompare :: (HasCallStack, MonadIO m, IsSorter a, IsObject b, IsObject c) => a -> b -> c -> m Ordering

-- | Gets the order that self conforms to.
--   
--   See SorterOrder for details of the possible return values.
--   
--   This function is intended to allow optimizations.
sorterGetOrder :: (HasCallStack, MonadIO m, IsSorter a) => a -> m SorterOrder

-- | Emitted whenever the sorter changed.
--   
--   Users of the sorter should then update the sort order again via
--   sorterCompare.
--   
--   SortListModel handles this signal automatically.
--   
--   Depending on the change parameter, it may be possible
--   to update the sort order without a full resorting. Refer to the
--   SorterChange documentation for details.
type SorterChangedCallback = SorterChange -> IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after sorter #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSorterChanged :: (IsSorter a, MonadIO m) => a -> ((?self :: a) => SorterChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on sorter #changed callback
--   
onSorterChanged :: (IsSorter a, MonadIO m) => a -> ((?self :: a) => SorterChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Sorter.Sorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Sorter.Sorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Sorter.Sorter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Sorter.Sorter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Sorter.Sorter o) => GI.Gtk.Objects.Sorter.IsSorter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Sorter.Sorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Sorter.Sorter

-- | A list model that sorts the elements of another model.
--   
--   The elements are sorted according to a GtkSorter.
--   
--   The model is a stable sort. If two items compare equal according to
--   the sorter, the one that appears first in the original model will also
--   appear first after sorting.
--   
--   Note that if you change the sorter, the previous order will have no
--   influence on the new order. If you want that, consider using a
--   GtkMultiSorter and appending the previous sorter to it.
--   
--   The model can be set up to do incremental sorting, so that sorting
--   long lists doesn't block the UI. See
--   sortListModelSetIncremental for details.
--   
--   GtkSortListModel is a generic model and because of that it
--   cannot take advantage of any external knowledge when sorting. If you
--   run into performance issues with GtkSortListModel, it is
--   strongly recommended that you write your own sorting list model.
--   
--   GtkSortListModel allows sorting the items into sections. It
--   implements GtkSectionModel and when
--   SortListModel:sectionSorter is set, it will sort all items with
--   that sorter and items comparing equal with it will be put into the
--   same section. The SortListModel:sorter will then be used to
--   sort items inside their sections.
module GI.Gtk.Objects.SortListModel

-- | Memory-managed wrapper type.
newtype SortListModel
SortListModel :: ManagedPtr SortListModel -> SortListModel

-- | Type class for types which can be safely cast to SortListModel,
--   for instance with toSortListModel.
class (GObject o, IsDescendantOf SortListModel o) => IsSortListModel o

-- | Cast to SortListModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toSortListModel :: (MonadIO m, IsSortListModel o) => o -> m SortListModel

-- | Returns whether incremental sorting is enabled.
--   
--   See sortListModelSetIncremental.
sortListModelGetIncremental :: (HasCallStack, MonadIO m, IsSortListModel a) => a -> m Bool

-- | Gets the model currently sorted or Nothing if none.
sortListModelGetModel :: (HasCallStack, MonadIO m, IsSortListModel a) => a -> m (Maybe ListModel)

-- | Estimates progress of an ongoing sorting operation.
--   
--   The estimate is the number of items that would still need to be sorted
--   to finish the sorting operation if this was a linear algorithm. So
--   this number is not related to how many items are already correctly
--   sorted.
--   
--   If you want to estimate the progress, you can use code like this:
--   
--   
c code
--   
--   
--   pending = gtk_sort_list_model_get_pending (self);
--   model = gtk_sort_list_model_get_model (self);
--   progress = 1.0 - pending / (double) MAX (1, g_list_model_get_n_items (model));
--   
--   
--   If no sort operation is ongoing - in particular when
--   SortListModel:incremental is False - this function
--   returns 0.
sortListModelGetPending :: (HasCallStack, MonadIO m, IsSortListModel a) => a -> m Word32

-- | Gets the section sorter that is used to sort items of
--   self into sections.
--   
--   Since: 4.12
sortListModelGetSectionSorter :: (HasCallStack, MonadIO m, IsSortListModel a) => a -> m (Maybe Sorter)

-- | Gets the sorter that is used to sort self.
sortListModelGetSorter :: (HasCallStack, MonadIO m, IsSortListModel a) => a -> m (Maybe Sorter)

-- | Creates a new sort list model that uses the sorter to
--   sort model.
sortListModelNew :: (HasCallStack, MonadIO m, IsListModel a, IsSorter b) => Maybe a -> Maybe b -> m SortListModel

-- | Sets the sort model to do an incremental sort.
--   
--   When incremental sorting is enabled, the GtkSortListModel
--   will not do a complete sort immediately, but will instead queue an
--   idle handler that incrementally sorts the items towards their correct
--   position. This of course means that items do not instantly appear in
--   the right place. It also means that the total sorting time is a lot
--   slower.
--   
--   When your filter blocks the UI while sorting, you might consider
--   turning this on. Depending on your model and sorters, this may become
--   interesting around 10,000 to 100,000 items.
--   
--   By default, incremental sorting is disabled.
--   
--   See sortListModelGetPending for progress information about an
--   ongoing incremental sorting operation.
sortListModelSetIncremental :: (HasCallStack, MonadIO m, IsSortListModel a) => a -> Bool -> m ()

-- | Sets the model to be sorted.
--   
--   The model's item type must conform to the item type of
--   self.
sortListModelSetModel :: (HasCallStack, MonadIO m, IsSortListModel a, IsListModel b) => a -> Maybe b -> m ()

-- | Sets a new section sorter on self.
--   
--   Since: 4.12
sortListModelSetSectionSorter :: (HasCallStack, MonadIO m, IsSortListModel a, IsSorter b) => a -> Maybe b -> m ()

-- | Sets a new sorter on self.
sortListModelSetSorter :: (HasCallStack, MonadIO m, IsSortListModel a, IsSorter b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “incremental” property. This is rarely needed directly, but
--   it is used by new.
constructSortListModelIncremental :: (IsSortListModel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “incremental” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #incremental
--   
getSortListModelIncremental :: (MonadIO m, IsSortListModel o) => o -> m Bool

-- | Set the value of the “incremental” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set sortListModel [ #incremental := value ]
--   
setSortListModelIncremental :: (MonadIO m, IsSortListModel o) => o -> Bool -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #itemType
--   
getSortListModelItemType :: (MonadIO m, IsSortListModel o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearSortListModelModel :: (MonadIO m, IsSortListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructSortListModelModel :: (IsSortListModel o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #model
--   
getSortListModelModel :: (MonadIO m, IsSortListModel o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set sortListModel [ #model := value ]
--   
setSortListModelModel :: (MonadIO m, IsSortListModel o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #nItems
--   
getSortListModelNItems :: (MonadIO m, IsSortListModel o) => o -> m Word32

-- | Get the value of the “pending” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #pending
--   
getSortListModelPending :: (MonadIO m, IsSortListModel o) => o -> m Word32

-- | Set the value of the “section-sorter” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #sectionSorter
--   
clearSortListModelSectionSorter :: (MonadIO m, IsSortListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “section-sorter” property. This is rarely needed directly,
--   but it is used by new.
constructSortListModelSectionSorter :: (IsSortListModel o, MonadIO m, IsSorter a) => a -> m (GValueConstruct o)

-- | Get the value of the “section-sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #sectionSorter
--   
getSortListModelSectionSorter :: (MonadIO m, IsSortListModel o) => o -> m (Maybe Sorter)

-- | Set the value of the “section-sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set sortListModel [ #sectionSorter := value ]
--   
setSortListModelSectionSorter :: (MonadIO m, IsSortListModel o, IsSorter a) => o -> a -> m ()

-- | Set the value of the “sorter” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #sorter
--   
clearSortListModelSorter :: (MonadIO m, IsSortListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sorter” property. This is rarely needed directly, but it is
--   used by new.
constructSortListModelSorter :: (IsSortListModel o, MonadIO m, IsSorter a) => a -> m (GValueConstruct o)

-- | Get the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get sortListModel #sorter
--   
getSortListModelSorter :: (MonadIO m, IsSortListModel o) => o -> m (Maybe Sorter)

-- | Set the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set sortListModel [ #sorter := value ]
--   
setSortListModelSorter :: (MonadIO m, IsSortListModel o, IsSorter a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.SortListModel.SortListModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SortListModel.SortListModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SortListModel.SortListModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SortListModel.SortListModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SortListModel.SortListModel o) => GI.Gtk.Objects.SortListModel.IsSortListModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SortListModel.SortListModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SortListModel.SortListModel

-- | Combines multiple sorters by trying them in turn.
--   
--   If the first sorter compares two items as equal, the second is tried
--   next, and so on.
module GI.Gtk.Objects.MultiSorter

-- | Memory-managed wrapper type.
newtype MultiSorter
MultiSorter :: ManagedPtr MultiSorter -> MultiSorter

-- | Type class for types which can be safely cast to MultiSorter,
--   for instance with toMultiSorter.
class (GObject o, IsDescendantOf MultiSorter o) => IsMultiSorter o

-- | Cast to MultiSorter, for types for which this is known to be
--   safe. For general casts, use castTo.
toMultiSorter :: (MonadIO m, IsMultiSorter o) => o -> m MultiSorter

-- | Add sorter to self to use for sorting
--   at the end.
--   
--   self will consult all existing sorters before it will
--   sort with the given sorter.
multiSorterAppend :: (HasCallStack, MonadIO m, IsMultiSorter a, IsSorter b) => a -> b -> m ()

-- | Creates a new multi sorter.
--   
--   This sorter compares items by trying each of the sorters in turn,
--   until one returns non-zero. In particular, if no sorter has been added
--   to it, it will always compare items as equal.
multiSorterNew :: (HasCallStack, MonadIO m) => m MultiSorter

-- | Removes the sorter at the given position from the list
--   of sorter used by self.
--   
--   If position is larger than the number of sorters,
--   nothing happens.
multiSorterRemove :: (HasCallStack, MonadIO m, IsMultiSorter a) => a -> Word32 -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiSorter #itemType
--   
getMultiSorterItemType :: (MonadIO m, IsMultiSorter o) => o -> m GType

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiSorter #nItems
--   
getMultiSorterNItems :: (MonadIO m, IsMultiSorter o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.MultiSorter.MultiSorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MultiSorter.MultiSorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MultiSorter.MultiSorter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MultiSorter.MultiSorter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MultiSorter.MultiSorter o) => GI.Gtk.Objects.MultiSorter.IsMultiSorter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MultiSorter.MultiSorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MultiSorter.MultiSorter

-- | Sorts items via a callback function.
module GI.Gtk.Objects.CustomSorter

-- | Memory-managed wrapper type.
newtype CustomSorter
CustomSorter :: ManagedPtr CustomSorter -> CustomSorter

-- | Type class for types which can be safely cast to CustomSorter,
--   for instance with toCustomSorter.
class (GObject o, IsDescendantOf CustomSorter o) => IsCustomSorter o

-- | Cast to CustomSorter, for types for which this is known to be
--   safe. For general casts, use castTo.
toCustomSorter :: (MonadIO m, IsCustomSorter o) => o -> m CustomSorter

-- | Creates a new GtkSorter that works by calling
--   sortFunc to compare items.
--   
--   If sortFunc is Nothing, all items are
--   considered equal.
customSorterNew :: (HasCallStack, MonadIO m) => Maybe CompareDataFunc -> m CustomSorter

-- | Sets (or unsets) the function used for sorting items.
--   
--   If sortFunc is Nothing, all items are
--   considered equal.
--   
--   If the sort func changes its sorting behavior, sorterChanged
--   needs to be called.
--   
--   If a previous function was set, its userDestroy will
--   be called now.
customSorterSetSortFunc :: (HasCallStack, MonadIO m, IsCustomSorter a) => a -> Maybe CompareDataFunc -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CustomSorter.CustomSorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CustomSorter.CustomSorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CustomSorter.CustomSorter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CustomSorter.CustomSorter o) => GI.Gtk.Objects.CustomSorter.IsCustomSorter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CustomSorter.CustomSorter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CustomSorter.CustomSorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CustomSorter.CustomSorter

-- | A list model that wraps an array of strings.
--   
--   The objects in the model are of type StringObject and have a
--   "string" property that can be used inside expressions.
--   
--   GtkStringList is well-suited for any place where you would
--   typically use a char*[], but need a list model.
--   
--   
GtkStringList as GtkBuildable
--   
--   The GtkStringList implementation of the GtkBuildable
--   interface supports adding items directly using the
--   <items> element and specifying <item>
--   elements for each item. Each <item> element supports
--   the regular translation attributes “translatable”, “context” and
--   “comments”.
--   
--   Here is a UI definition fragment specifying a GtkStringList
--   
--   
xml code
--   
--   
--   <object class="GtkStringList">
--     <items>
--       <item translatable="yes">Factory</item>
--       <item translatable="yes">Home</item>
--       <item translatable="yes">Subway</item>
--     </items>
--   </object>
--   
module GI.Gtk.Objects.StringList

-- | Memory-managed wrapper type.
newtype StringList
StringList :: ManagedPtr StringList -> StringList

-- | Type class for types which can be safely cast to StringList,
--   for instance with toStringList.
class (GObject o, IsDescendantOf StringList o) => IsStringList o

-- | Cast to StringList, for types for which this is known to be
--   safe. For general casts, use castTo.
toStringList :: (MonadIO m, IsStringList o) => o -> m StringList

-- | Appends string to self.
--   
--   The string will be copied. See stringListTake
--   for a way to avoid that.
stringListAppend :: (HasCallStack, MonadIO m, IsStringList a) => a -> Text -> m ()

-- | Gets the position of the string in
--   self.
--   
--   If self does not contain string item,
--   G_MAXUINT is returned.
--   
--   Since: 4.18
stringListFind :: (HasCallStack, MonadIO m, IsStringList a) => a -> Text -> m Word32

-- | Gets the string that is at position in
--   self.
--   
--   If self does not contain position
--   items, Nothing is returned.
--   
--   This function returns the const char *. To get the object wrapping it,
--   use g_list_model_get_item().
stringListGetString :: (HasCallStack, MonadIO m, IsStringList a) => a -> Word32 -> m (Maybe Text)

-- | Creates a new GtkStringList with the given
--   strings.
stringListNew :: (HasCallStack, MonadIO m) => Maybe [Text] -> m StringList

-- | Removes the string at position from
--   self.
--   
--   position must be smaller than the current length of
--   the list.
stringListRemove :: (HasCallStack, MonadIO m, IsStringList a) => a -> Word32 -> m ()

-- | Changes self by removing nRemovals
--   strings and adding additions to it.
--   
--   This function is more efficient than stringListAppend and
--   stringListRemove, because it only emits the itemsChanged
--   signal once for the change.
--   
--   This function copies the strings in additions.
--   
--   The parameters position and nRemovals
--   must be correct (ie: position +
--   nRemovals must be less than or equal to the length of
--   the list at the time this function is called).
stringListSplice :: (HasCallStack, MonadIO m, IsStringList a) => a -> Word32 -> Word32 -> Maybe [Text] -> m ()

-- | Adds string to self at the end, and takes ownership of
--   it.
--   
--   This variant of stringListAppend is convenient for formatting
--   strings:
--   
--   
c code
--   
--   
--   gtk_string_list_take (self, g_strdup_print ("%d dollars", lots));
--   
stringListTake :: (HasCallStack, MonadIO m, IsStringList a) => a -> Text -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringList #itemType
--   
getStringListItemType :: (MonadIO m, IsStringList o) => o -> m GType

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringList #nItems
--   
getStringListNItems :: (MonadIO m, IsStringList o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “strings” property. This is rarely needed directly, but it is
--   used by new.
constructStringListStrings :: (IsStringList o, MonadIO m) => [Text] -> m (GValueConstruct o)
instance GHC.Classes.Eq GI.Gtk.Objects.StringList.StringList
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StringList.StringList
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StringList.StringList
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StringList.StringList)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StringList.StringList o) => GI.Gtk.Objects.StringList.IsStringList o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StringList.StringList
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StringList.StringList

-- | The type of items in a GtkStringList.
--   
--   A GtkStringObject is a wrapper around a const char*;
--   it has a StringObject:string property that can be used for
--   property bindings and expressions.
module GI.Gtk.Objects.StringObject

-- | Memory-managed wrapper type.
newtype StringObject
StringObject :: ManagedPtr StringObject -> StringObject

-- | Type class for types which can be safely cast to StringObject,
--   for instance with toStringObject.
class (GObject o, IsDescendantOf StringObject o) => IsStringObject o

-- | Cast to StringObject, for types for which this is known to be
--   safe. For general casts, use castTo.
toStringObject :: (MonadIO m, IsStringObject o) => o -> m StringObject

-- | Returns the string contained in a GtkStringObject.
stringObjectGetString :: (HasCallStack, MonadIO m, IsStringObject a) => a -> m Text

-- | Wraps a string in an object for use with GListModel.
stringObjectNew :: (HasCallStack, MonadIO m) => Text -> m StringObject

-- | Get the value of the “string” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringObject #string
--   
getStringObjectString :: (MonadIO m, IsStringObject o) => o -> m Text
instance GHC.Classes.Eq GI.Gtk.Objects.StringObject.StringObject
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StringObject.StringObject
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StringObject.StringObject
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StringObject.StringObject)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StringObject.StringObject o) => GI.Gtk.Objects.StringObject.IsStringObject o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StringObject.StringObject
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StringObject.StringObject

-- | A paintable implementation that renders SVG, with animations.
--   
--   GtkSvg objects are created by parsing a subset of SVG,
--   including SVG animations.
--   
--   GtkSvg fills or strokes paths with symbolic or fixed colors.
--   It can have multiple states, and paths can be included in a subset of
--   the states. States can have animations, and the transition between
--   different states can also be animated.
--   
--   To show a static SVG image, it is enough to load the the SVG and use
--   it like any other paintable.
--   
--   To play an SVG animation, use svgSetFrameClock to connect the
--   paintable to a frame clock, and call svgPlay after loading the
--   SVG. The animation can be paused using svgPause.
--   
--   To set the current state, use svgSetState.
--   
--   
Error handling
--   
--   Loading an SVG into GtkSvg will always produce a (possibly
--   empty) paintable. GTK will drop things that it can't handle and try to
--   make sense of the rest.
--   
--   To track errors during parsing or rendering, connect to the
--   Svg::error signal.
--   
--   For parsing errors in the GTK_SVG_ERROR domain, the functions
--   SvgError.get_start(),
--   SvgError.get_end(),
--   SvgError.get_element() and
--   SvgError.get_attribute() can be used to obtain
--   information about where the error occurred.
--   
--   
The supported subset of SVG
--   
--   The paintable supports much of SVG 2, with some exceptions.
--   
--   Among the graphical elements, <textPath> and
--   <foreignObject> are not supported.
--   
--   Among the structural elements, <a> and
--   <view> are not supported.
--   
--   In the <filter> element, the following primitives are
--   not supported: feConvolveMatrix, feDiffuseLighting, feMorphology,
--   feSpecularLighting and feTurbulence.
--   
--   Support for the mask attribute is limited to just a url
--   referring to the <mask> element by ID.
--   
--   In animation elements, the parsing of begin and end
--   attributes is limited, and the min and max
--   attributes are not supported.
--   
--   Lastly, there is only minimal CSS support (the style attribute, but
--   not <style>), and no interactivity.
--   
--   
SVG Extensions
--   
--   The paintable supports a number of custom attributes that offer
--   a convenient way to define states, transitions and animations. For
--   example,
--   
--   <circle cx='5' cy='5' r='5' gpa:states='0 1'
--   gpa:animation-type='automatic' gpa:animation-direction='segment'
--   gpa:animation-duration='600ms'/>
--   
--   defines the circle to be shown in states 0 and 1, and animates a
--   segment of the circle.
--   
--   <image src="svg-renderer1.svg">
--   
--   Note that the generated animations are implemented using standard SVG
--   attributes (visibility, stroke-dasharray,
--   stroke-dashoffset, pathLength and filter@).
--   Setting these attributes in your SVG is therefore going to interfere
--   with generated animations.
--   
--   To connect general SVG animations to the states of the paintable, use
--   the custom gpa:states(...) condition in the begin
--   and end attributes of SVG animation elements. For example,
--   
--   <animate href='path1' attributeName='fill'
--   begin='gpa:states(0).begin' dur='300ms' fill='freeze' from='black'
--   to='magenta'/>
--   
--   will make the fill color of path1 transition from black to magenta
--   when the renderer enters state 0.
--   
--   <image src="svg-renderer2.svg">
--   
--   The gpa:states(...) condition triggers for upcoming state
--   changes as well, to support fade-out transitions. For example,
--   
--   <animate href='path1' attributeName='opacity'
--   begin='gpa:states(0).end -300ms' dur='300ms' fill='freeze' from='1'
--   to='0'/>
--   
--   will start a fade-out of path1 300ms before state 0 ends.
--   
--   A variant of the gpa:states(...) condition allows specifying
--   both before and after states:
--   
--   <animate href='path1' attributeName='opacity' begin='gpa:states(0,
--   1 2)' dur='300ms' fill='freeze' from='1' to='0'/>
--   
--   will start the animation when the state changes from 0 to 1 or from 0
--   to 2, but not when it changes from 0 to 3.
--   
--   In addition to the gpa:fill and gpa:stroke
--   attributes, symbolic colors can also be specified as a custom paint
--   server reference, like this:
--   url(gpa:warning). This works in fill
--   and stroke attributes, but also when specifying colors in SVG
--   animation attributes like to or values.
--   
--   Note that the SVG syntax allows for a fallback RGB color to be
--   specified after the url, for compatibility with other SVG consumers:
--   
--   fill='url(#gpa:warning) orange'
--   
--   In contrast to SVG 1.1 and 2.0, we allow the transform
--   attribute to be animated with @<animate>`.
--   
--   Since: 4.22
module GI.Gtk.Objects.Svg

-- | Memory-managed wrapper type.
newtype Svg
Svg :: ManagedPtr Svg -> Svg

-- | Type class for types which can be safely cast to Svg, for
--   instance with toSvg.
class (GObject o, IsDescendantOf Svg o) => IsSvg o

-- | Cast to Svg, for types for which this is known to be safe. For
--   general casts, use castTo.
toSvg :: (MonadIO m, IsSvg o) => o -> m Svg

-- | Returns the currently enabled features.
--   
--   Since: 4.22
svgGetFeatures :: (HasCallStack, MonadIO m, IsSvg a) => a -> m [SvgFeatures]

-- | Gets the current state of the paintable.
--   
--   Since: 4.22
svgGetState :: (HasCallStack, MonadIO m, IsSvg a) => a -> m Word32

-- | Returns a NULL-terminated array of state names, if available.
--   
--   Note that the returned array and the strings contained in it will only
--   be valid until the GtkSvg is cleared or reloaded, so if you
--   want to keep it around, you should make a copy.
--   
--   Since: 4.22
svgGetStateNames :: (HasCallStack, MonadIO m, IsSvg a) => a -> m (Maybe [Text], Word32)

-- | Gets the value of the weight property.
--   
--   Since: 4.22
svgGetWeight :: (HasCallStack, MonadIO m, IsSvg a) => a -> m Double

-- | Loads SVG content into an existing SVG paintable.
--   
--   To track errors while loading SVG content, connect to the
--   Svg::error signal.
--   
--   This clears any previously loaded content.
--   
--   Since: 4.22
svgLoadFromBytes :: (HasCallStack, MonadIO m, IsSvg a) => a -> Bytes -> m ()

-- | Loads SVG content into an existing SVG paintable.
--   
--   To track errors while loading SVG content, connect to the
--   Svg::error signal.
--   
--   This clears any previously loaded content.
--   
--   Since: 4.22
svgLoadFromResource :: (HasCallStack, MonadIO m, IsSvg a) => a -> Text -> m ()

-- | Creates a new, empty SVG paintable.
--   
--   Since: 4.22
svgNew :: (HasCallStack, MonadIO m) => m Svg

-- | Parses the SVG data in bytes and creates a paintable.
--   
--   Since: 4.22
svgNewFromBytes :: (HasCallStack, MonadIO m) => Bytes -> m Svg

-- | Parses the SVG data in the resource and creates a paintable.
--   
--   Since: 4.22
svgNewFromResource :: (HasCallStack, MonadIO m) => Text -> m Svg

-- | Stop any playing animations and state transitions.
--   
--   Animations can be paused and started repeatedly.
--   
--   Since: 4.22
svgPause :: (HasCallStack, MonadIO m, IsSvg a) => a -> m ()

-- | Start playing animations and state transitions.
--   
--   Animations can be paused and started repeatedly.
--   
--   Since: 4.22
svgPlay :: (HasCallStack, MonadIO m, IsSvg a) => a -> m ()

-- | Serializes the content of the renderer as SVG.
--   
--   The SVG will be similar to the orignally loaded one, but is not
--   guaranteed to be 100% identical.
--   
--   This function serializes the DOM, i.e. the results of parsing the SVG.
--   It does not reflect the effect of applying animations.
--   
--   Since: 4.22
svgSerialize :: (HasCallStack, MonadIO m, IsSvg a) => a -> m Bytes

-- | Enables or disables features of the SVG paintable.
--   
--   By default, all features are enabled.
--   
--   Note that this call only has an effect before the SVG is loaded.
--   
--   Since: 4.22
svgSetFeatures :: (HasCallStack, MonadIO m, IsSvg a) => a -> [SvgFeatures] -> m ()

-- | Sets a frame clock.
--   
--   Without a frame clock, GtkSvg will not advance animations.
--   
--   Since: 4.22
svgSetFrameClock :: (HasCallStack, MonadIO m, IsSvg a, IsFrameClock b) => a -> b -> m ()

-- | Sets the state of the paintable.
--   
--   If the paintable is currently playing, the state change will apply
--   transitions that are defined in the SVG. If the paintable is not
--   playing, the state change will take effect instantaneously.
--   
--   Since: 4.22
svgSetState :: (HasCallStack, MonadIO m, IsSvg a) => a -> Word32 -> m ()

-- | Sets the weight that is used when rendering.
--   
--   The weight affects the effective linewidth when stroking paths.
--   
--   The default value of -1 means to use the font weight from CSS.
--   
--   Since: 4.22
svgSetWeight :: (HasCallStack, MonadIO m, IsSvg a) => a -> Double -> m ()

-- | Serializes the paintable, and saves the result to a file.
--   
--   Since: 4.22
svgWriteToFile :: (HasCallStack, MonadIO m, IsSvg a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “features” property. This is rarely needed directly, but it
--   is used by new.
constructSvgFeatures :: (IsSvg o, MonadIO m) => [SvgFeatures] -> m (GValueConstruct o)

-- | Get the value of the “features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get svg #features
--   
getSvgFeatures :: (MonadIO m, IsSvg o) => o -> m [SvgFeatures]

-- | Set the value of the “features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set svg [ #features := value ]
--   
setSvgFeatures :: (MonadIO m, IsSvg o) => o -> [SvgFeatures] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “playing” property. This is rarely needed directly, but it is
--   used by new.
constructSvgPlaying :: (IsSvg o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “playing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get svg #playing
--   
getSvgPlaying :: (MonadIO m, IsSvg o) => o -> m Bool

-- | Set the value of the “playing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set svg [ #playing := value ]
--   
setSvgPlaying :: (MonadIO m, IsSvg o) => o -> Bool -> m ()

-- | Set the value of the “resource” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #resource
--   
clearSvgResource :: (MonadIO m, IsSvg o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resource” property. This is rarely needed directly, but it
--   is used by new.
constructSvgResource :: (IsSvg o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “resource” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get svg #resource
--   
getSvgResource :: (MonadIO m, IsSvg o) => o -> m (Maybe Text)

-- | Set the value of the “resource” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set svg [ #resource := value ]
--   
setSvgResource :: (MonadIO m, IsSvg o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “state” property. This is rarely needed directly, but it is
--   used by new.
constructSvgState :: (IsSvg o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “state” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get svg #state
--   
getSvgState :: (MonadIO m, IsSvg o) => o -> m Word32

-- | Set the value of the “state” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set svg [ #state := value ]
--   
setSvgState :: (MonadIO m, IsSvg o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “weight” property. This is rarely needed directly, but it is
--   used by new.
constructSvgWeight :: (IsSvg o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “weight” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get svg #weight
--   
getSvgWeight :: (MonadIO m, IsSvg o) => o -> m Double

-- | Set the value of the “weight” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set svg [ #weight := value ]
--   
setSvgWeight :: (MonadIO m, IsSvg o) => o -> Double -> m ()

-- | Signals that an error occurred.
--   
--   Errors can occur both during parsing and during rendering.
--   
--   The expected error values are in the
--   [errorgtk.SvgError] enumeration, context information
--   about the location of parsing errors can be obtained with the various
--   gtk_svg_error functions.
--   
--   Parsing errors are never fatal, so the parsing will resume after the
--   error. Errors may however cause parts of the given data or even all of
--   it to not be parsed at all. So it is a useful idea to check that the
--   parsing succeeds by connecting to this signal.
--   
--   ::: note This signal is emitted in the middle of parsing or rendering,
--   and if you handle it, you must be careful. Logging the errors you
--   receive is fine, but modifying the widget hierarchy or changing the
--   paintable state definitively isn't.
--   
--   If in doubt, defer to an idle.
--   
--   Since: 4.22
type SvgErrorCallback = GError -> IO ()

-- | Connect a signal handler for the error signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after svg #error callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSvgError :: (IsSvg a, MonadIO m) => a -> ((?self :: a) => SvgErrorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the error signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on svg #error callback
--   
onSvgError :: (IsSvg a, MonadIO m) => a -> ((?self :: a) => SvgErrorCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Svg.Svg
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Svg.Svg
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Svg.Svg
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Svg.Svg)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Svg.Svg o) => GI.Gtk.Objects.Svg.IsSvg o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Svg.Svg
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Svg.Svg

-- | Can be applied to text contained in a GtkTextBuffer.
--   
--   You may wish to begin by reading the text widget conceptual
--   overview, which gives an overview of all the objects and data
--   types related to the text widget and how they work together.
--   
--   Tags should be in the TextTagTable for a given
--   GtkTextBuffer before using them with that buffer.
--   
--   TextBuffer.create_tag() is the best way to
--   create tags. See “gtk4-demo” for numerous examples.
--   
--   For each property of GtkTextTag, there is a “set” property,
--   e.g. “font-set” corresponds to “font”. These “set” properties reflect
--   whether a property has been set or not.
--   
--   They are maintained by GTK and you should not set them independently.
module GI.Gtk.Objects.TextTag

-- | Memory-managed wrapper type.
newtype TextTag
TextTag :: ManagedPtr TextTag -> TextTag

-- | Type class for types which can be safely cast to TextTag, for
--   instance with toTextTag.
class (GObject o, IsDescendantOf TextTag o) => IsTextTag o

-- | Cast to TextTag, for types for which this is known to be safe.
--   For general casts, use castTo.
toTextTag :: (MonadIO m, IsTextTag o) => o -> m TextTag

-- | Emits the TextTagTable::tagChanged signal on the
--   GtkTextTagTable where the tag is included.
--   
--   The signal is already emitted when setting a GtkTextTag
--   property. This function is useful for a GtkTextTag subclass.
textTagChanged :: (HasCallStack, MonadIO m, IsTextTag a) => a -> Bool -> m ()

-- | Get the tag priority.
textTagGetPriority :: (HasCallStack, MonadIO m, IsTextTag a) => a -> m Int32

-- | Creates a GtkTextTag.
textTagNew :: (HasCallStack, MonadIO m) => Maybe Text -> m TextTag

-- | Sets the priority of a GtkTextTag.
--   
--   Valid priorities start at 0 and go to one less than
--   textTagTableGetSize. Each tag in a table has a unique priority;
--   setting the priority of one tag shifts the priorities of all the other
--   tags in the table to maintain a unique priority for each tag.
--   
--   Higher priority tags “win” if two tags both set the same text
--   attribute. When adding a tag to a tag table, it will be assigned the
--   highest priority in the table by default; so normally the precedence
--   of a set of tags is the order in which they were added to the table,
--   or created with TextBuffer.create_tag(), which
--   adds the tag to the buffer’s table automatically.
textTagSetPriority :: (HasCallStack, MonadIO m, IsTextTag a) => a -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accumulative-margin” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagAccumulativeMargin :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “accumulative-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #accumulativeMargin
--   
getTextTagAccumulativeMargin :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “accumulative-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #accumulativeMargin := value ]
--   
setTextTagAccumulativeMargin :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “allow-breaks” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagAllowBreaks :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “allow-breaks” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #allowBreaks
--   
getTextTagAllowBreaks :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “allow-breaks” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #allowBreaks := value ]
--   
setTextTagAllowBreaks :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “allow-breaks-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagAllowBreaksSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “allow-breaks-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #allowBreaksSet
--   
getTextTagAllowBreaksSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “allow-breaks-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #allowBreaksSet := value ]
--   
setTextTagAllowBreaksSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “background” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #background
--   
clearTextTagBackground :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagBackground :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “background” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #background := value ]
--   
setTextTagBackground :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background-full-height” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagBackgroundFullHeight :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “background-full-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #backgroundFullHeight
--   
getTextTagBackgroundFullHeight :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “background-full-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #backgroundFullHeight := value ]
--   
setTextTagBackgroundFullHeight :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background-full-height-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagBackgroundFullHeightSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “background-full-height-set” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get textTag #backgroundFullHeightSet
--   
getTextTagBackgroundFullHeightSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “background-full-height-set” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #backgroundFullHeightSet := value ]
--   
setTextTagBackgroundFullHeightSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “background-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #backgroundRgba
--   
clearTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background-rgba” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagBackgroundRgba :: (IsTextTag o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “background-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #backgroundRgba
--   
getTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe RGBA)

-- | Set the value of the “background-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #backgroundRgba := value ]
--   
setTextTagBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagBackgroundSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “background-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #backgroundSet
--   
getTextTagBackgroundSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “background-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #backgroundSet := value ]
--   
setTextTagBackgroundSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “direction” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagDirection :: (IsTextTag o, MonadIO m) => TextDirection -> m (GValueConstruct o)

-- | Get the value of the “direction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #direction
--   
getTextTagDirection :: (MonadIO m, IsTextTag o) => o -> m TextDirection

-- | Set the value of the “direction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #direction := value ]
--   
setTextTagDirection :: (MonadIO m, IsTextTag o) => o -> TextDirection -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editable” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagEditable :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #editable
--   
getTextTagEditable :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #editable := value ]
--   
setTextTagEditable :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editable-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagEditableSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editable-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #editableSet
--   
getTextTagEditableSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “editable-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #editableSet := value ]
--   
setTextTagEditableSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fallback” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagFallback :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “fallback” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #fallback
--   
getTextTagFallback :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “fallback” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #fallback := value ]
--   
setTextTagFallback :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fallback-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagFallbackSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “fallback-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #fallbackSet
--   
getTextTagFallbackSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “fallback-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #fallbackSet := value ]
--   
setTextTagFallbackSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “family” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #family
--   
clearTextTagFamily :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “family” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagFamily :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “family” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #family
--   
getTextTagFamily :: (MonadIO m, IsTextTag o) => o -> m (Maybe Text)

-- | Set the value of the “family” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #family := value ]
--   
setTextTagFamily :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “family-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagFamilySet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “family-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #familySet
--   
getTextTagFamilySet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “family-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #familySet := value ]
--   
setTextTagFamilySet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “font” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #font
--   
clearTextTagFont :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagFont :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “font” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textTag #font
--   
getTextTagFont :: (MonadIO m, IsTextTag o) => o -> m (Maybe Text)

-- | Set the value of the “font” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textTag [ #font := value ]
--   
setTextTagFont :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Set the value of the “font-desc” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #fontDesc
--   
clearTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-desc” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagFontDesc :: (IsTextTag o, MonadIO m) => FontDescription -> m (GValueConstruct o)

-- | Get the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #fontDesc
--   
getTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> m (Maybe FontDescription)

-- | Set the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #fontDesc := value ]
--   
setTextTagFontDesc :: (MonadIO m, IsTextTag o) => o -> FontDescription -> m ()

-- | Set the value of the “font-features” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #fontFeatures
--   
clearTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-features” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagFontFeatures :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “font-features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #fontFeatures
--   
getTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> m (Maybe Text)

-- | Set the value of the “font-features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #fontFeatures := value ]
--   
setTextTagFontFeatures :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-features-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagFontFeaturesSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “font-features-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #fontFeaturesSet
--   
getTextTagFontFeaturesSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “font-features-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #fontFeaturesSet := value ]
--   
setTextTagFontFeaturesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “foreground” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #foreground
--   
clearTextTagForeground :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “foreground” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagForeground :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “foreground” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #foreground := value ]
--   
setTextTagForeground :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Set the value of the “foreground-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #foregroundRgba
--   
clearTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “foreground-rgba” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagForegroundRgba :: (IsTextTag o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “foreground-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #foregroundRgba
--   
getTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe RGBA)

-- | Set the value of the “foreground-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #foregroundRgba := value ]
--   
setTextTagForegroundRgba :: (MonadIO m, IsTextTag o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “foreground-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagForegroundSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “foreground-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #foregroundSet
--   
getTextTagForegroundSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “foreground-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #foregroundSet := value ]
--   
setTextTagForegroundSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “indent” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagIndent :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “indent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #indent
--   
getTextTagIndent :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “indent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #indent := value ]
--   
setTextTagIndent :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “indent-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagIndentSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “indent-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #indentSet
--   
getTextTagIndentSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “indent-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #indentSet := value ]
--   
setTextTagIndentSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “insert-hyphens” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagInsertHyphens :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “insert-hyphens” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #insertHyphens
--   
getTextTagInsertHyphens :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “insert-hyphens” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #insertHyphens := value ]
--   
setTextTagInsertHyphens :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “insert-hyphens-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagInsertHyphensSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “insert-hyphens-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #insertHyphensSet
--   
getTextTagInsertHyphensSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “insert-hyphens-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #insertHyphensSet := value ]
--   
setTextTagInsertHyphensSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invisible” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagInvisible :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “invisible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #invisible
--   
getTextTagInvisible :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “invisible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #invisible := value ]
--   
setTextTagInvisible :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invisible-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagInvisibleSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “invisible-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #invisibleSet
--   
getTextTagInvisibleSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “invisible-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #invisibleSet := value ]
--   
setTextTagInvisibleSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “justification” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagJustification :: (IsTextTag o, MonadIO m) => Justification -> m (GValueConstruct o)

-- | Get the value of the “justification” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #justification
--   
getTextTagJustification :: (MonadIO m, IsTextTag o) => o -> m Justification

-- | Set the value of the “justification” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #justification := value ]
--   
setTextTagJustification :: (MonadIO m, IsTextTag o) => o -> Justification -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “justification-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagJustificationSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “justification-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #justificationSet
--   
getTextTagJustificationSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “justification-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #justificationSet := value ]
--   
setTextTagJustificationSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “language” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #language
--   
clearTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “language” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagLanguage :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #language
--   
getTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> m (Maybe Text)

-- | Set the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #language := value ]
--   
setTextTagLanguage :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “language-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagLanguageSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “language-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #languageSet
--   
getTextTagLanguageSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “language-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #languageSet := value ]
--   
setTextTagLanguageSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “left-margin” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagLeftMargin :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “left-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #leftMargin
--   
getTextTagLeftMargin :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “left-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #leftMargin := value ]
--   
setTextTagLeftMargin :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “left-margin-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagLeftMarginSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “left-margin-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #leftMarginSet
--   
getTextTagLeftMarginSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “left-margin-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #leftMarginSet := value ]
--   
setTextTagLeftMarginSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “letter-spacing” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagLetterSpacing :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “letter-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #letterSpacing
--   
getTextTagLetterSpacing :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “letter-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #letterSpacing := value ]
--   
setTextTagLetterSpacing :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “letter-spacing-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagLetterSpacingSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “letter-spacing-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #letterSpacingSet
--   
getTextTagLetterSpacingSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “letter-spacing-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #letterSpacingSet := value ]
--   
setTextTagLetterSpacingSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “line-height” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagLineHeight :: (IsTextTag o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “line-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #lineHeight
--   
getTextTagLineHeight :: (MonadIO m, IsTextTag o) => o -> m Float

-- | Set the value of the “line-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #lineHeight := value ]
--   
setTextTagLineHeight :: (MonadIO m, IsTextTag o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “line-height-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagLineHeightSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “line-height-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #lineHeightSet
--   
getTextTagLineHeightSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “line-height-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #lineHeightSet := value ]
--   
setTextTagLineHeightSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagName :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textTag #name
--   
getTextTagName :: (MonadIO m, IsTextTag o) => o -> m (Maybe Text)

-- | Construct a GValueConstruct with valid value for the
--   “overline” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagOverline :: (IsTextTag o, MonadIO m) => Overline -> m (GValueConstruct o)

-- | Get the value of the “overline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #overline
--   
getTextTagOverline :: (MonadIO m, IsTextTag o) => o -> m Overline

-- | Set the value of the “overline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #overline := value ]
--   
setTextTagOverline :: (MonadIO m, IsTextTag o) => o -> Overline -> m ()

-- | Set the value of the “overline-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #overlineRgba
--   
clearTextTagOverlineRgba :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overline-rgba” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagOverlineRgba :: (IsTextTag o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “overline-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #overlineRgba
--   
getTextTagOverlineRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe RGBA)

-- | Set the value of the “overline-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #overlineRgba := value ]
--   
setTextTagOverlineRgba :: (MonadIO m, IsTextTag o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overline-rgba-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagOverlineRgbaSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “overline-rgba-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #overlineRgbaSet
--   
getTextTagOverlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “overline-rgba-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #overlineRgbaSet := value ]
--   
setTextTagOverlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overline-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagOverlineSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “overline-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #overlineSet
--   
getTextTagOverlineSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “overline-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #overlineSet := value ]
--   
setTextTagOverlineSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “paragraph-background” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #paragraphBackground
--   
clearTextTagParagraphBackground :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “paragraph-background” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagParagraphBackground :: (IsTextTag o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “paragraph-background” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #paragraphBackground := value ]
--   
setTextTagParagraphBackground :: (MonadIO m, IsTextTag o) => o -> Text -> m ()

-- | Set the value of the “paragraph-background-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #paragraphBackgroundRgba
--   
clearTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “paragraph-background-rgba” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagParagraphBackgroundRgba :: (IsTextTag o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “paragraph-background-rgba” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get textTag #paragraphBackgroundRgba
--   
getTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe RGBA)

-- | Set the value of the “paragraph-background-rgba” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #paragraphBackgroundRgba := value ]
--   
setTextTagParagraphBackgroundRgba :: (MonadIO m, IsTextTag o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “paragraph-background-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagParagraphBackgroundSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “paragraph-background-set” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get textTag #paragraphBackgroundSet
--   
getTextTagParagraphBackgroundSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “paragraph-background-set” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #paragraphBackgroundSet := value ]
--   
setTextTagParagraphBackgroundSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-above-lines” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagPixelsAboveLines :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixels-above-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #pixelsAboveLines
--   
getTextTagPixelsAboveLines :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “pixels-above-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #pixelsAboveLines := value ]
--   
setTextTagPixelsAboveLines :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-above-lines-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagPixelsAboveLinesSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “pixels-above-lines-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #pixelsAboveLinesSet
--   
getTextTagPixelsAboveLinesSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “pixels-above-lines-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #pixelsAboveLinesSet := value ]
--   
setTextTagPixelsAboveLinesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-below-lines” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagPixelsBelowLines :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixels-below-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #pixelsBelowLines
--   
getTextTagPixelsBelowLines :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “pixels-below-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #pixelsBelowLines := value ]
--   
setTextTagPixelsBelowLines :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-below-lines-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagPixelsBelowLinesSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “pixels-below-lines-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #pixelsBelowLinesSet
--   
getTextTagPixelsBelowLinesSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “pixels-below-lines-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #pixelsBelowLinesSet := value ]
--   
setTextTagPixelsBelowLinesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-inside-wrap” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagPixelsInsideWrap :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixels-inside-wrap” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #pixelsInsideWrap
--   
getTextTagPixelsInsideWrap :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “pixels-inside-wrap” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #pixelsInsideWrap := value ]
--   
setTextTagPixelsInsideWrap :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-inside-wrap-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagPixelsInsideWrapSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “pixels-inside-wrap-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #pixelsInsideWrapSet
--   
getTextTagPixelsInsideWrapSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “pixels-inside-wrap-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #pixelsInsideWrapSet := value ]
--   
setTextTagPixelsInsideWrapSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “right-margin” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagRightMargin :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “right-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #rightMargin
--   
getTextTagRightMargin :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “right-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #rightMargin := value ]
--   
setTextTagRightMargin :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “right-margin-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagRightMarginSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “right-margin-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #rightMarginSet
--   
getTextTagRightMarginSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “right-margin-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #rightMarginSet := value ]
--   
setTextTagRightMarginSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rise” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagRise :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “rise” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textTag #rise
--   
getTextTagRise :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “rise” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textTag [ #rise := value ]
--   
setTextTagRise :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rise-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagRiseSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “rise-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #riseSet
--   
getTextTagRiseSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “rise-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #riseSet := value ]
--   
setTextTagRiseSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scale” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagScale :: (IsTextTag o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “scale” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #scale
--   
getTextTagScale :: (MonadIO m, IsTextTag o) => o -> m Double

-- | Set the value of the “scale” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #scale := value ]
--   
setTextTagScale :: (MonadIO m, IsTextTag o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scale-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagScaleSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “scale-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #scaleSet
--   
getTextTagScaleSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “scale-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #scaleSet := value ]
--   
setTextTagScaleSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sentence” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagSentence :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “sentence” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #sentence
--   
getTextTagSentence :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “sentence” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #sentence := value ]
--   
setTextTagSentence :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sentence-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagSentenceSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “sentence-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #sentenceSet
--   
getTextTagSentenceSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “sentence-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #sentenceSet := value ]
--   
setTextTagSentenceSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-spaces” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagShowSpaces :: (IsTextTag o, MonadIO m) => [ShowFlags] -> m (GValueConstruct o)

-- | Get the value of the “show-spaces” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #showSpaces
--   
getTextTagShowSpaces :: (MonadIO m, IsTextTag o) => o -> m [ShowFlags]

-- | Set the value of the “show-spaces” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #showSpaces := value ]
--   
setTextTagShowSpaces :: (MonadIO m, IsTextTag o) => o -> [ShowFlags] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-spaces-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagShowSpacesSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-spaces-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #showSpacesSet
--   
getTextTagShowSpacesSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “show-spaces-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #showSpacesSet := value ]
--   
setTextTagShowSpacesSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagSize :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textTag #size
--   
getTextTagSize :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textTag [ #size := value ]
--   
setTextTagSize :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size-points” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagSizePoints :: (IsTextTag o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “size-points” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #sizePoints
--   
getTextTagSizePoints :: (MonadIO m, IsTextTag o) => o -> m Double

-- | Set the value of the “size-points” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #sizePoints := value ]
--   
setTextTagSizePoints :: (MonadIO m, IsTextTag o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagSizeSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “size-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #sizeSet
--   
getTextTagSizeSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “size-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #sizeSet := value ]
--   
setTextTagSizeSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stretch” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagStretch :: (IsTextTag o, MonadIO m) => Stretch -> m (GValueConstruct o)

-- | Get the value of the “stretch” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #stretch
--   
getTextTagStretch :: (MonadIO m, IsTextTag o) => o -> m Stretch

-- | Set the value of the “stretch” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #stretch := value ]
--   
setTextTagStretch :: (MonadIO m, IsTextTag o) => o -> Stretch -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stretch-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagStretchSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “stretch-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #stretchSet
--   
getTextTagStretchSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “stretch-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #stretchSet := value ]
--   
setTextTagStretchSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strikethrough” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagStrikethrough :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “strikethrough” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #strikethrough
--   
getTextTagStrikethrough :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “strikethrough” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #strikethrough := value ]
--   
setTextTagStrikethrough :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “strikethrough-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #strikethroughRgba
--   
clearTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strikethrough-rgba” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagStrikethroughRgba :: (IsTextTag o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “strikethrough-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #strikethroughRgba
--   
getTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe RGBA)

-- | Set the value of the “strikethrough-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #strikethroughRgba := value ]
--   
setTextTagStrikethroughRgba :: (MonadIO m, IsTextTag o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strikethrough-rgba-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagStrikethroughRgbaSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “strikethrough-rgba-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #strikethroughRgbaSet
--   
getTextTagStrikethroughRgbaSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “strikethrough-rgba-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #strikethroughRgbaSet := value ]
--   
setTextTagStrikethroughRgbaSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strikethrough-set” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagStrikethroughSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “strikethrough-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #strikethroughSet
--   
getTextTagStrikethroughSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “strikethrough-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #strikethroughSet := value ]
--   
setTextTagStrikethroughSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “style” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagStyle :: (IsTextTag o, MonadIO m) => Style -> m (GValueConstruct o)

-- | Get the value of the “style” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #style
--   
getTextTagStyle :: (MonadIO m, IsTextTag o) => o -> m Style

-- | Set the value of the “style” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #style := value ]
--   
setTextTagStyle :: (MonadIO m, IsTextTag o) => o -> Style -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “style-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagStyleSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “style-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #styleSet
--   
getTextTagStyleSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “style-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #styleSet := value ]
--   
setTextTagStyleSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Set the value of the “tabs” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #tabs
--   
clearTextTagTabs :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tabs” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagTabs :: (IsTextTag o, MonadIO m) => TabArray -> m (GValueConstruct o)

-- | Get the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textTag #tabs
--   
getTextTagTabs :: (MonadIO m, IsTextTag o) => o -> m (Maybe TabArray)

-- | Set the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textTag [ #tabs := value ]
--   
setTextTagTabs :: (MonadIO m, IsTextTag o) => o -> TabArray -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tabs-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagTabsSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “tabs-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #tabsSet
--   
getTextTagTabsSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “tabs-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #tabsSet := value ]
--   
setTextTagTabsSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-transform” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagTextTransform :: (IsTextTag o, MonadIO m) => TextTransform -> m (GValueConstruct o)

-- | Get the value of the “text-transform” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #textTransform
--   
getTextTagTextTransform :: (MonadIO m, IsTextTag o) => o -> m TextTransform

-- | Set the value of the “text-transform” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #textTransform := value ]
--   
setTextTagTextTransform :: (MonadIO m, IsTextTag o) => o -> TextTransform -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-transform-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagTextTransformSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “text-transform-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #textTransformSet
--   
getTextTagTextTransformSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “text-transform-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #textTransformSet := value ]
--   
setTextTagTextTransformSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “underline” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagUnderline :: (IsTextTag o, MonadIO m) => Underline -> m (GValueConstruct o)

-- | Get the value of the “underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #underline
--   
getTextTagUnderline :: (MonadIO m, IsTextTag o) => o -> m Underline

-- | Set the value of the “underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #underline := value ]
--   
setTextTagUnderline :: (MonadIO m, IsTextTag o) => o -> Underline -> m ()

-- | Set the value of the “underline-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #underlineRgba
--   
clearTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “underline-rgba” property. This is rarely needed directly,
--   but it is used by new.
constructTextTagUnderlineRgba :: (IsTextTag o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “underline-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #underlineRgba
--   
getTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> m (Maybe RGBA)

-- | Set the value of the “underline-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #underlineRgba := value ]
--   
setTextTagUnderlineRgba :: (MonadIO m, IsTextTag o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “underline-rgba-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextTagUnderlineRgbaSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “underline-rgba-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #underlineRgbaSet
--   
getTextTagUnderlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “underline-rgba-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #underlineRgbaSet := value ]
--   
setTextTagUnderlineRgbaSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “underline-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagUnderlineSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “underline-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #underlineSet
--   
getTextTagUnderlineSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “underline-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #underlineSet := value ]
--   
setTextTagUnderlineSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “variant” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagVariant :: (IsTextTag o, MonadIO m) => Variant -> m (GValueConstruct o)

-- | Get the value of the “variant” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #variant
--   
getTextTagVariant :: (MonadIO m, IsTextTag o) => o -> m Variant

-- | Set the value of the “variant” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #variant := value ]
--   
setTextTagVariant :: (MonadIO m, IsTextTag o) => o -> Variant -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “variant-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagVariantSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “variant-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #variantSet
--   
getTextTagVariantSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “variant-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #variantSet := value ]
--   
setTextTagVariantSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “weight” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagWeight :: (IsTextTag o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “weight” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #weight
--   
getTextTagWeight :: (MonadIO m, IsTextTag o) => o -> m Int32

-- | Set the value of the “weight” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #weight := value ]
--   
setTextTagWeight :: (MonadIO m, IsTextTag o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “weight-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagWeightSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “weight-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #weightSet
--   
getTextTagWeightSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “weight-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #weightSet := value ]
--   
setTextTagWeightSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “word” property. This is rarely needed directly, but it is
--   used by new.
constructTextTagWord :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “word” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textTag #word
--   
getTextTagWord :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “word” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textTag [ #word := value ]
--   
setTextTagWord :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “word-set” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagWordSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “word-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #wordSet
--   
getTextTagWordSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “word-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #wordSet := value ]
--   
setTextTagWordSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-mode” property. This is rarely needed directly, but it
--   is used by new.
constructTextTagWrapMode :: (IsTextTag o, MonadIO m) => WrapMode -> m (GValueConstruct o)

-- | Get the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #wrapMode
--   
getTextTagWrapMode :: (MonadIO m, IsTextTag o) => o -> m WrapMode

-- | Set the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #wrapMode := value ]
--   
setTextTagWrapMode :: (MonadIO m, IsTextTag o) => o -> WrapMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-mode-set” property. This is rarely needed directly, but
--   it is used by new.
constructTextTagWrapModeSet :: (IsTextTag o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “wrap-mode-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textTag #wrapModeSet
--   
getTextTagWrapModeSet :: (MonadIO m, IsTextTag o) => o -> m Bool

-- | Set the value of the “wrap-mode-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textTag [ #wrapModeSet := value ]
--   
setTextTagWrapModeSet :: (MonadIO m, IsTextTag o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.TextTag.TextTag
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TextTag.TextTag
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TextTag.TextTag
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TextTag.TextTag)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TextTag.TextTag o) => GI.Gtk.Objects.TextTag.IsTextTag o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TextTag.TextTag
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TextTag.TextTag

-- | The type of item used by GtkTreeListModel.
--   
--   It allows navigating the model as a tree and modify the state of rows.
--   
--   GtkTreeListRow instances are created by a
--   GtkTreeListModel only when the
--   TreeListModel:passthrough property is not set.
--   
--   There are various support objects that can make use of
--   GtkTreeListRow objects, such as the TreeExpander
--   widget that allows displaying an icon to expand or collapse a row or
--   TreeListRowSorter that makes it possible to sort trees
--   properly.
module GI.Gtk.Objects.TreeListRow

-- | Memory-managed wrapper type.
newtype TreeListRow
TreeListRow :: ManagedPtr TreeListRow -> TreeListRow

-- | Type class for types which can be safely cast to TreeListRow,
--   for instance with toTreeListRow.
class (GObject o, IsDescendantOf TreeListRow o) => IsTreeListRow o

-- | Cast to TreeListRow, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeListRow :: (MonadIO m, IsTreeListRow o) => o -> m TreeListRow

-- | If self is not expanded or position is
--   greater than the number of children, Nothing is returned.
treeListRowGetChildRow :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> Word32 -> m (Maybe TreeListRow)

-- | If the row is expanded, gets the model holding the children of
--   self.
--   
--   This model is the model created by the
--   [callbackgtk.TreeListModelCreateModelFunc] and
--   contains the original items, no matter what value
--   TreeListModel:passthrough is set to.
treeListRowGetChildren :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m (Maybe ListModel)

-- | Gets the depth of this row.
--   
--   Rows that correspond to items in the root model have a depth of zero,
--   rows corresponding to items of models of direct children of the root
--   model have a depth of 1 and so on.
--   
--   The depth of a row never changes until the row is removed from its
--   model at which point it will forever return 0.
treeListRowGetDepth :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m Word32

-- | Gets if a row is currently expanded.
treeListRowGetExpanded :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m Bool

-- | Gets the item corresponding to this row,
treeListRowGetItem :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m (Maybe Object)

-- | Gets the row representing the parent for self.
--   
--   That is the row that would need to be collapsed to make this row
--   disappear.
--   
--   If self is a row corresponding to the root model,
--   Nothing is returned.
--   
--   The value returned by this function never changes until the row is
--   removed from its model at which point it will forever return
--   Nothing.
treeListRowGetParent :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m (Maybe TreeListRow)

-- | Returns the position in the GtkTreeListModel that
--   self occupies at the moment.
treeListRowGetPosition :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m Word32

-- | Checks if a row can be expanded.
--   
--   This does not mean that the row is actually expanded, this can be
--   checked with treeListRowGetExpanded.
--   
--   If a row is expandable never changes until the row is removed from its
--   model at which point it will forever return False.
treeListRowIsExpandable :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> m Bool

-- | Expands or collapses a row.
--   
--   If a row is expanded, the model of calling the
--   [callbackgtk.TreeListModelCreateModelFunc] for the
--   row's item will be inserted after this row. If a row is collapsed,
--   those items will be removed from the model.
--   
--   If the row is not expandable, this function does nothing.
treeListRowSetExpanded :: (HasCallStack, MonadIO m, IsTreeListRow a) => a -> Bool -> m ()

-- | Get the value of the “children” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListRow #children
--   
getTreeListRowChildren :: (MonadIO m, IsTreeListRow o) => o -> m (Maybe ListModel)

-- | Get the value of the “depth” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListRow #depth
--   
getTreeListRowDepth :: (MonadIO m, IsTreeListRow o) => o -> m Word32

-- | Get the value of the “expandable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListRow #expandable
--   
getTreeListRowExpandable :: (MonadIO m, IsTreeListRow o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “expanded” property. This is rarely needed directly, but it
--   is used by new.
constructTreeListRowExpanded :: (IsTreeListRow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “expanded” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListRow #expanded
--   
getTreeListRowExpanded :: (MonadIO m, IsTreeListRow o) => o -> m Bool

-- | Set the value of the “expanded” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeListRow [ #expanded := value ]
--   
setTreeListRowExpanded :: (MonadIO m, IsTreeListRow o) => o -> Bool -> m ()

-- | Get the value of the “item” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get treeListRow #item
--   
getTreeListRowItem :: (MonadIO m, IsTreeListRow o) => o -> m (Maybe Object)
instance GHC.Classes.Eq GI.Gtk.Objects.TreeListRow.TreeListRow
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeListRow.TreeListRow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeListRow.TreeListRow
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeListRow.TreeListRow)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeListRow.TreeListRow o) => GI.Gtk.Objects.TreeListRow.IsTreeListRow o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeListRow.TreeListRow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeListRow.TreeListRow

-- | Applies a gives sorter to the levels in a tree.
--   
--   Here is an example for setting up a column view with a tree model and
--   a GtkTreeListSorter:
--   
--   
c code
--   
--   
--   column_sorter = gtk_column_view_get_sorter (view);
--   sorter = gtk_tree_list_row_sorter_new (g_object_ref (column_sorter));
--   sort_model = gtk_sort_list_model_new (tree_model, sorter);
--   selection = gtk_single_selection_new (sort_model);
--   gtk_column_view_set_model (view, G_LIST_MODEL (selection));
--   
module GI.Gtk.Objects.TreeListRowSorter

-- | Memory-managed wrapper type.
newtype TreeListRowSorter
TreeListRowSorter :: ManagedPtr TreeListRowSorter -> TreeListRowSorter

-- | Type class for types which can be safely cast to
--   TreeListRowSorter, for instance with
--   toTreeListRowSorter.
class (GObject o, IsDescendantOf TreeListRowSorter o) => IsTreeListRowSorter o

-- | Cast to TreeListRowSorter, for types for which this is known to
--   be safe. For general casts, use castTo.
toTreeListRowSorter :: (MonadIO m, IsTreeListRowSorter o) => o -> m TreeListRowSorter

-- | Returns the sorter used by self.
treeListRowSorterGetSorter :: (HasCallStack, MonadIO m, IsTreeListRowSorter a) => a -> m (Maybe Sorter)

-- | Create a special-purpose sorter that applies the sorting of
--   sorter to the levels of a GtkTreeListModel.
--   
--   Note that this sorter relies on TreeListModel:passthrough being
--   False as it can only sort TreeListRows.
treeListRowSorterNew :: (HasCallStack, MonadIO m, IsSorter a) => Maybe a -> m TreeListRowSorter

-- | Sets the sorter to use for items with the same parent.
--   
--   This sorter will be passed the TreeListRow:item of the tree
--   list rows passed to self.
treeListRowSorterSetSorter :: (HasCallStack, MonadIO m, IsTreeListRowSorter a, IsSorter b) => a -> Maybe b -> m ()

-- | Set the value of the “sorter” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #sorter
--   
clearTreeListRowSorterSorter :: (MonadIO m, IsTreeListRowSorter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sorter” property. This is rarely needed directly, but it is
--   used by new.
constructTreeListRowSorterSorter :: (IsTreeListRowSorter o, MonadIO m, IsSorter a) => a -> m (GValueConstruct o)

-- | Get the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListRowSorter #sorter
--   
getTreeListRowSorterSorter :: (MonadIO m, IsTreeListRowSorter o) => o -> m (Maybe Sorter)

-- | Set the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeListRowSorter [ #sorter := value ]
--   
setTreeListRowSorterSorter :: (MonadIO m, IsTreeListRowSorter o, IsSorter a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter o) => GI.Gtk.Objects.TreeListRowSorter.IsTreeListRowSorter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeListRowSorter.TreeListRowSorter

-- | Wraps a list of references to Accessible objects.
--   
--   Since: 4.14
module GI.Gtk.Structs.AccessibleList

-- | Memory-managed wrapper type.
newtype AccessibleList
AccessibleList :: ManagedPtr AccessibleList -> AccessibleList

-- | Gets the list of objects this boxed type holds.
--   
--   Since: 4.14
accessibleListGetObjects :: (HasCallStack, MonadIO m) => AccessibleList -> m [Accessible]

-- | Allocates a new list of accessible objects.
--   
--   Since: 4.14
accessibleListNewFromArray :: (HasCallStack, MonadIO m) => [Accessible] -> m AccessibleList

-- | Allocates a new GtkAccessibleList, doing a shallow copy of
--   the passed list of accessible objects
--   
--   Since: 4.14
accessibleListNewFromList :: (HasCallStack, MonadIO m, IsAccessible a) => [a] -> m AccessibleList
instance GHC.Classes.Eq GI.Gtk.Structs.AccessibleList.AccessibleList
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.AccessibleList.AccessibleList
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.AccessibleList.AccessibleList
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.AccessibleList.AccessibleList)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.AccessibleList.AccessibleList
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.AccessibleList.AccessibleList

-- | A range inside the text of an accessible object.
--   
--   Since: 4.14
module GI.Gtk.Structs.AccessibleTextRange

-- | Memory-managed wrapper type.
newtype AccessibleTextRange
AccessibleTextRange :: ManagedPtr AccessibleTextRange -> AccessibleTextRange

-- | Construct a AccessibleTextRange struct initialized to zero.
newZeroAccessibleTextRange :: MonadIO m => m AccessibleTextRange

-- | Get the value of the “length” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get accessibleTextRange #length
--   
getAccessibleTextRangeLength :: MonadIO m => AccessibleTextRange -> m CSize

-- | Set the value of the “length” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set accessibleTextRange [ #length := value ]
--   
setAccessibleTextRangeLength :: MonadIO m => AccessibleTextRange -> CSize -> m ()

-- | Get the value of the “start” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get accessibleTextRange #start
--   
getAccessibleTextRangeStart :: MonadIO m => AccessibleTextRange -> m CSize

-- | Set the value of the “start” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set accessibleTextRange [ #start := value ]
--   
setAccessibleTextRangeStart :: MonadIO m => AccessibleTextRange -> CSize -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.AccessibleTextRange.AccessibleTextRange
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.AccessibleTextRange.AccessibleTextRange
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.AccessibleTextRange.AccessibleTextRange tag
instance GHC.Classes.Eq GI.Gtk.Structs.AccessibleTextRange.AccessibleTextRange
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.AccessibleTextRange.AccessibleTextRange

-- | Represents a link (i.e. a uri).
--   
--   A widget that contains one or more links should implement the
--   AccessibleHypertext interface and return
--   GtkAccessibleHyperlink objects for each of the links.
--   
--   Since: 4.22
module GI.Gtk.Objects.AccessibleHyperlink

-- | Memory-managed wrapper type.
newtype AccessibleHyperlink
AccessibleHyperlink :: ManagedPtr AccessibleHyperlink -> AccessibleHyperlink

-- | Type class for types which can be safely cast to
--   AccessibleHyperlink, for instance with
--   toAccessibleHyperlink.
class (GObject o, IsDescendantOf AccessibleHyperlink o) => IsAccessibleHyperlink o

-- | Cast to AccessibleHyperlink, for types for which this is known
--   to be safe. For general casts, use castTo.
toAccessibleHyperlink :: (MonadIO m, IsAccessibleHyperlink o) => o -> m AccessibleHyperlink

-- | Creates an accessible object that represents a hyperlink.
--   
--   This is meant to be used with an implementation of the
--   AccessibleHypertext interface.
--   
--   Since: 4.22
accessibleHyperlinkNew :: (HasCallStack, MonadIO m, IsAccessibleHypertext a) => a -> Word32 -> Text -> AccessibleTextRange -> m AccessibleHyperlink

-- | Sets a platform state on the accessible.
--   
--   Since: 4.22
accessibleHyperlinkSetPlatformState :: (HasCallStack, MonadIO m, IsAccessibleHyperlink a) => a -> AccessiblePlatformState -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink o) => GI.Gtk.Objects.AccessibleHyperlink.IsAccessibleHyperlink o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AccessibleHyperlink.AccessibleHyperlink

-- | A set of unsigned integers.
--   
--   Another name for this data structure is “bitmap”.
--   
--   The current implementation is based on roaring bitmaps.
--   
--   A bitset allows adding a set of integers and provides support for set
--   operations like unions, intersections and checks for equality or if a
--   value is contained in the set. GtkBitset also contains
--   various functions to query metadata about the bitset, such as the
--   minimum or maximum values or its size.
--   
--   The fastest way to iterate values in a bitset is BitsetIter.
--   
--   The main use case for GtkBitset is implementing complex
--   selections for SelectionModel.
module GI.Gtk.Structs.Bitset

-- | Memory-managed wrapper type.
newtype Bitset
Bitset :: ManagedPtr Bitset -> Bitset

-- | Adds value to self if it wasn't part
--   of it before.
bitsetAdd :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m Bool

-- | Adds all values from start (inclusive) to
--   start + nItems (exclusive) in
--   self.
bitsetAddRange :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> m ()

-- | Adds the closed range [first, last],
--   so first, last and all values in
--   between. first must be smaller than
--   last.
bitsetAddRangeClosed :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> m ()

-- | Interprets the values as a 2-dimensional boolean grid with the given
--   stride and inside that grid, adds a rectangle with the
--   given width and height.
bitsetAddRectangle :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> Word32 -> Word32 -> m ()

-- | Checks if the given value has been added to
--   self
bitsetContains :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m Bool

-- | Creates a copy of self.
bitsetCopy :: (HasCallStack, MonadIO m) => Bitset -> m Bitset

-- | Sets self to be the symmetric difference of
--   self and other.
--   
--   The symmetric difference is set self to contain all
--   values that were either contained in self or in
--   other, but not in both. This operation is also called
--   an XOR.
--   
--   It is allowed for self and other to be
--   the same bitset. The bitset will be emptied in that case.
bitsetDifference :: (HasCallStack, MonadIO m) => Bitset -> Bitset -> m ()

-- | Returns True if self and other
--   contain the same values.
bitsetEquals :: (HasCallStack, MonadIO m) => Bitset -> Bitset -> m Bool

-- | Returns the largest value in self.
--   
--   If self is empty, 0 is returned.
bitsetGetMaximum :: (HasCallStack, MonadIO m) => Bitset -> m Word32

-- | Returns the smallest value in self.
--   
--   If self is empty, G_MAXUINT is returned.
bitsetGetMinimum :: (HasCallStack, MonadIO m) => Bitset -> m Word32

-- | Returns the value of the nth item in self.
--   
--   If nth is >= the size of self, 0 is
--   returned.
bitsetGetNth :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m Word32

-- | Gets the number of values that were added to the set.
--   
--   For example, if the set is empty, 0 is returned.
--   
--   Note that this function returns a guint64, because when all
--   values are set, the return value is G_MAXUINT + 1. Unless you
--   are sure this cannot happen (it can't with GListModel), be
--   sure to use a 64bit type.
bitsetGetSize :: (HasCallStack, MonadIO m) => Bitset -> m Word64

-- | Gets the number of values that are part of the set from
--   first to last (inclusive).
--   
--   Note that this function returns a guint64, because when all
--   values are set, the return value is G_MAXUINT + 1. Unless you
--   are sure this cannot happen (it can't with GListModel), be
--   sure to use a 64bit type.
bitsetGetSizeInRange :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> m Word64

-- | Sets self to be the intersection of
--   self and other.
--   
--   In other words, remove all values from self that are
--   not part of other.
--   
--   It is allowed for self and other to be
--   the same bitset. Nothing will happen in that case.
bitsetIntersect :: (HasCallStack, MonadIO m) => Bitset -> Bitset -> m ()

-- | Check if no value is contained in bitset.
bitsetIsEmpty :: (HasCallStack, MonadIO m) => Bitset -> m Bool

-- | Creates a new empty bitset.
bitsetNewEmpty :: (HasCallStack, MonadIO m) => m Bitset

-- | Creates a bitset with the given range set.
bitsetNewRange :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> m Bitset

-- | Acquires a reference on the given GtkBitset.
bitsetRef :: (HasCallStack, MonadIO m) => Bitset -> m Bitset

-- | Removes value from self if it was part
--   of it before.
bitsetRemove :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m Bool

-- | Removes all values from the bitset so that it is empty again.
bitsetRemoveAll :: (HasCallStack, MonadIO m) => Bitset -> m ()

-- | Removes all values from start (inclusive) to
--   start + nItems (exclusive) in
--   self.
bitsetRemoveRange :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> m ()

-- | Removes the closed range [first,
--   last], so first, last
--   and all values in between. first must be smaller than
--   last.
bitsetRemoveRangeClosed :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> m ()

-- | Interprets the values as a 2-dimensional boolean grid with the given
--   stride and inside that grid, removes a rectangle with
--   the given width and height.
bitsetRemoveRectangle :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> Word32 -> Word32 -> m ()

-- | Shifts all values in self to the left by
--   amount.
--   
--   Values smaller than amount are discarded.
bitsetShiftLeft :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m ()

-- | Shifts all values in self to the right by
--   amount.
--   
--   Values that end up too large to be held in a guint are
--   discarded.
bitsetShiftRight :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m ()

-- | This is a support function for GListModel handling, by
--   mirroring the GlistModel::items-changed signal.
--   
--   First, it "cuts" the values from position to
--   removed from the bitset. That is, it removes all those
--   values and shifts all larger values to the left by
--   removed places.
--   
--   Then, it "pastes" new room into the bitset by shifting all values
--   larger than position by added spaces
--   to the right. This frees up space that can then be filled.
bitsetSplice :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> Word32 -> Word32 -> m ()

-- | Sets self to be the subtraction of
--   other from self.
--   
--   In other words, remove all values from self that are
--   part of other.
--   
--   It is allowed for self and other to be
--   the same bitset. The bitset will be emptied in that case.
bitsetSubtract :: (HasCallStack, MonadIO m) => Bitset -> Bitset -> m ()

-- | Sets self to be the union of self and
--   other.
--   
--   That is, add all values from other into
--   self that weren't part of it.
--   
--   It is allowed for self and other to be
--   the same bitset. Nothing will happen in that case.
bitsetUnion :: (HasCallStack, MonadIO m) => Bitset -> Bitset -> m ()

-- | Releases a reference on the given GtkBitset.
--   
--   If the reference was the last, the resources associated to the
--   self are freed.
bitsetUnref :: (HasCallStack, MonadIO m) => Bitset -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.Bitset.Bitset
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.Bitset.Bitset
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.Bitset.Bitset
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.Bitset.Bitset)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.Bitset.Bitset
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.Bitset.Bitset

-- | A selection model that allows selecting a single item.
--   
--   Note that the selection is *persistent* -- if the selected item is
--   removed and re-added in the same ListModel::itemsChanged
--   emission, it stays selected. In particular, this means that changing
--   the sort order of an underlying sort model will preserve the
--   selection.
module GI.Gtk.Objects.SingleSelection

-- | Memory-managed wrapper type.
newtype SingleSelection
SingleSelection :: ManagedPtr SingleSelection -> SingleSelection

-- | Type class for types which can be safely cast to
--   SingleSelection, for instance with toSingleSelection.
class (GObject o, IsDescendantOf SingleSelection o) => IsSingleSelection o

-- | Cast to SingleSelection, for types for which this is known to
--   be safe. For general casts, use castTo.
toSingleSelection :: (MonadIO m, IsSingleSelection o) => o -> m SingleSelection

-- | Checks if autoselect has been enabled or disabled via
--   singleSelectionSetAutoselect.
singleSelectionGetAutoselect :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> m Bool

-- | If True, selectionModelUnselectItem is supported and
--   allows unselecting the selected item.
singleSelectionGetCanUnselect :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> m Bool

-- | Gets the model that self is wrapping.
singleSelectionGetModel :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> m (Maybe ListModel)

-- | Gets the position of the selected item.
--   
--   If no item is selected, INVALID_LIST_POSITION is returned.
singleSelectionGetSelected :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> m Word32

-- | Gets the selected item.
--   
--   If no item is selected, Nothing is returned.
singleSelectionGetSelectedItem :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> m (Maybe Object)

-- | Creates a new selection to handle model.
singleSelectionNew :: (HasCallStack, MonadIO m, IsListModel a) => Maybe a -> m SingleSelection

-- | Enables or disables autoselect.
--   
--   If autoselect is True, self
--   will enforce that an item is always selected. It will select a new
--   item when the currently selected item is deleted and it will disallow
--   unselecting the current item.
singleSelectionSetAutoselect :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> Bool -> m ()

-- | If True, unselecting the current item via
--   selectionModelUnselectItem is supported.
--   
--   Note that setting SingleSelection:autoselect will cause
--   unselecting to not work, so it practically makes no sense to set both
--   at the same time.
singleSelectionSetCanUnselect :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> Bool -> m ()

-- | Sets the model that self should wrap.
--   
--   If model is Nothing, self will
--   be empty.
singleSelectionSetModel :: (HasCallStack, MonadIO m, IsSingleSelection a, IsListModel b) => a -> Maybe b -> m ()

-- | Selects the item at the given position.
--   
--   If the list does not have an item at position or
--   INVALID_LIST_POSITION is given, the behavior depends on the
--   value of the SingleSelection:autoselect property: If it is set,
--   no change will occur and the old item will stay selected. If it is
--   unset, the selection will be unset and no item will be selected. This
--   also applies if SingleSelection:canUnselect is set to
--   False.
singleSelectionSetSelected :: (HasCallStack, MonadIO m, IsSingleSelection a) => a -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “autoselect” property. This is rarely needed directly, but it
--   is used by new.
constructSingleSelectionAutoselect :: (IsSingleSelection o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “autoselect” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #autoselect
--   
getSingleSelectionAutoselect :: (MonadIO m, IsSingleSelection o) => o -> m Bool

-- | Set the value of the “autoselect” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set singleSelection [ #autoselect := value ]
--   
setSingleSelectionAutoselect :: (MonadIO m, IsSingleSelection o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “can-unselect” property. This is rarely needed directly, but
--   it is used by new.
constructSingleSelectionCanUnselect :: (IsSingleSelection o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “can-unselect” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #canUnselect
--   
getSingleSelectionCanUnselect :: (MonadIO m, IsSingleSelection o) => o -> m Bool

-- | Set the value of the “can-unselect” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set singleSelection [ #canUnselect := value ]
--   
setSingleSelectionCanUnselect :: (MonadIO m, IsSingleSelection o) => o -> Bool -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #itemType
--   
getSingleSelectionItemType :: (MonadIO m, IsSingleSelection o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearSingleSelectionModel :: (MonadIO m, IsSingleSelection o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructSingleSelectionModel :: (IsSingleSelection o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #model
--   
getSingleSelectionModel :: (MonadIO m, IsSingleSelection o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set singleSelection [ #model := value ]
--   
setSingleSelectionModel :: (MonadIO m, IsSingleSelection o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #nItems
--   
getSingleSelectionNItems :: (MonadIO m, IsSingleSelection o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “selected” property. This is rarely needed directly, but it
--   is used by new.
constructSingleSelectionSelected :: (IsSingleSelection o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #selected
--   
getSingleSelectionSelected :: (MonadIO m, IsSingleSelection o) => o -> m Word32

-- | Set the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set singleSelection [ #selected := value ]
--   
setSingleSelectionSelected :: (MonadIO m, IsSingleSelection o) => o -> Word32 -> m ()

-- | Get the value of the “selected-item” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get singleSelection #selectedItem
--   
getSingleSelectionSelectedItem :: (MonadIO m, IsSingleSelection o) => o -> m (Maybe Object)
instance GHC.Classes.Eq GI.Gtk.Objects.SingleSelection.SingleSelection
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SingleSelection.SingleSelection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SingleSelection.SingleSelection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SingleSelection.SingleSelection)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SingleSelection.SingleSelection o) => GI.Gtk.Objects.SingleSelection.IsSingleSelection o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SingleSelection.SingleSelection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SingleSelection.SingleSelection

-- | A list model that presents the selection from a
--   GtkSelectionModel.
module GI.Gtk.Objects.SelectionFilterModel

-- | Memory-managed wrapper type.
newtype SelectionFilterModel
SelectionFilterModel :: ManagedPtr SelectionFilterModel -> SelectionFilterModel

-- | Type class for types which can be safely cast to
--   SelectionFilterModel, for instance with
--   toSelectionFilterModel.
class (GObject o, IsDescendantOf SelectionFilterModel o) => IsSelectionFilterModel o

-- | Cast to SelectionFilterModel, for types for which this is known
--   to be safe. For general casts, use castTo.
toSelectionFilterModel :: (MonadIO m, IsSelectionFilterModel o) => o -> m SelectionFilterModel

-- | Gets the model currently filtered or Nothing if none.
selectionFilterModelGetModel :: (HasCallStack, MonadIO m, IsSelectionFilterModel a) => a -> m (Maybe SelectionModel)

-- | Creates a new GtkSelectionFilterModel that will include the
--   selected items from the underlying selection model.
selectionFilterModelNew :: (HasCallStack, MonadIO m, IsSelectionModel a) => Maybe a -> m SelectionFilterModel

-- | Sets the model to be filtered.
--   
--   Note that GTK makes no effort to ensure that model
--   conforms to the item type of self. It assumes that the
--   caller knows what they are doing and have set up an appropriate filter
--   to ensure that item types match.
selectionFilterModelSetModel :: (HasCallStack, MonadIO m, IsSelectionFilterModel a, IsSelectionModel b) => a -> Maybe b -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get selectionFilterModel #itemType
--   
getSelectionFilterModelItemType :: (MonadIO m, IsSelectionFilterModel o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearSelectionFilterModelModel :: (MonadIO m, IsSelectionFilterModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructSelectionFilterModelModel :: (IsSelectionFilterModel o, MonadIO m, IsSelectionModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get selectionFilterModel #model
--   
getSelectionFilterModelModel :: (MonadIO m, IsSelectionFilterModel o) => o -> m (Maybe SelectionModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set selectionFilterModel [ #model := value ]
--   
setSelectionFilterModelModel :: (MonadIO m, IsSelectionFilterModel o, IsSelectionModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get selectionFilterModel #nItems
--   
getSelectionFilterModelNItems :: (MonadIO m, IsSelectionFilterModel o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel o) => GI.Gtk.Objects.SelectionFilterModel.IsSelectionFilterModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SelectionFilterModel.SelectionFilterModel

-- | A selection model that does not allow selecting anything.
--   
--   This model is meant to be used as a simple wrapper around a
--   GListModel when a GtkSelectionModel is required.
--   
--   GtkNoSelection passes through sections from the underlying
--   model.
module GI.Gtk.Objects.NoSelection

-- | Memory-managed wrapper type.
newtype NoSelection
NoSelection :: ManagedPtr NoSelection -> NoSelection

-- | Type class for types which can be safely cast to NoSelection,
--   for instance with toNoSelection.
class (GObject o, IsDescendantOf NoSelection o) => IsNoSelection o

-- | Cast to NoSelection, for types for which this is known to be
--   safe. For general casts, use castTo.
toNoSelection :: (MonadIO m, IsNoSelection o) => o -> m NoSelection

-- | Gets the model that self is wrapping.
noSelectionGetModel :: (HasCallStack, MonadIO m, IsNoSelection a) => a -> m (Maybe ListModel)

-- | Creates a new selection to handle model.
noSelectionNew :: (HasCallStack, MonadIO m, IsListModel a) => Maybe a -> m NoSelection

-- | Sets the model that self should wrap.
--   
--   If model is Nothing, this model will be empty.
noSelectionSetModel :: (HasCallStack, MonadIO m, IsNoSelection a, IsListModel b) => a -> Maybe b -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get noSelection #itemType
--   
getNoSelectionItemType :: (MonadIO m, IsNoSelection o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearNoSelectionModel :: (MonadIO m, IsNoSelection o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructNoSelectionModel :: (IsNoSelection o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get noSelection #model
--   
getNoSelectionModel :: (MonadIO m, IsNoSelection o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set noSelection [ #model := value ]
--   
setNoSelectionModel :: (MonadIO m, IsNoSelection o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get noSelection #nItems
--   
getNoSelectionNItems :: (MonadIO m, IsNoSelection o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.NoSelection.NoSelection
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NoSelection.NoSelection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NoSelection.NoSelection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NoSelection.NoSelection)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NoSelection.NoSelection o) => GI.Gtk.Objects.NoSelection.IsNoSelection o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NoSelection.NoSelection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NoSelection.NoSelection

-- | A selection model that allows selecting multiple elements.
module GI.Gtk.Objects.MultiSelection

-- | Memory-managed wrapper type.
newtype MultiSelection
MultiSelection :: ManagedPtr MultiSelection -> MultiSelection

-- | Type class for types which can be safely cast to
--   MultiSelection, for instance with toMultiSelection.
class (GObject o, IsDescendantOf MultiSelection o) => IsMultiSelection o

-- | Cast to MultiSelection, for types for which this is known to be
--   safe. For general casts, use castTo.
toMultiSelection :: (MonadIO m, IsMultiSelection o) => o -> m MultiSelection

-- | Returns the underlying model of self.
multiSelectionGetModel :: (HasCallStack, MonadIO m, IsMultiSelection a) => a -> m (Maybe ListModel)

-- | Creates a new selection to handle model.
multiSelectionNew :: (HasCallStack, MonadIO m, IsListModel a) => Maybe a -> m MultiSelection

-- | Sets the model that self should wrap.
--   
--   If model is Nothing, self will
--   be empty.
multiSelectionSetModel :: (HasCallStack, MonadIO m, IsMultiSelection a, IsListModel b) => a -> Maybe b -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiSelection #itemType
--   
getMultiSelectionItemType :: (MonadIO m, IsMultiSelection o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearMultiSelectionModel :: (MonadIO m, IsMultiSelection o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructMultiSelectionModel :: (IsMultiSelection o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiSelection #model
--   
getMultiSelectionModel :: (MonadIO m, IsMultiSelection o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set multiSelection [ #model := value ]
--   
setMultiSelectionModel :: (MonadIO m, IsMultiSelection o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get multiSelection #nItems
--   
getMultiSelectionNItems :: (MonadIO m, IsMultiSelection o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.MultiSelection.MultiSelection
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MultiSelection.MultiSelection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MultiSelection.MultiSelection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MultiSelection.MultiSelection)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MultiSelection.MultiSelection o) => GI.Gtk.Objects.MultiSelection.IsMultiSelection o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MultiSelection.MultiSelection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MultiSelection.MultiSelection

-- | An interface that adds support for selection to list models.
--   
--   This support is then used by widgets using list models to add the
--   ability to select and unselect various items.
--   
--   GTK provides default implementations of the most common selection
--   modes such as SingleSelection, so you will only need to
--   implement this interface if you want detailed control about how
--   selections should be handled.
--   
--   A GtkSelectionModel supports a single boolean per item
--   indicating if an item is selected or not. This can be queried via
--   selectionModelIsSelected. When the selected state of one or
--   more items changes, the model will emit the
--   SelectionModel::selectionChanged signal by calling the
--   selectionModelSelectionChanged function. The positions given in
--   that signal may have their selection state changed, though that is not
--   a requirement. If new items added to the model via the
--   ListModel::itemsChanged signal are selected or not is up to the
--   implementation.
--   
--   Note that items added via ListModel::itemsChanged may already
--   be selected and no SelectionModel::selectionChanged will be
--   emitted for them. So to track which items are selected, it is
--   necessary to listen to both signals.
--   
--   Additionally, the interface can expose functionality to select and
--   unselect items. If these functions are implemented, GTK's list widgets
--   will allow users to select and unselect items. However,
--   GtkSelectionModels are free to only implement them partially
--   or not at all. In that case the widgets will not support the
--   unimplemented operations.
--   
--   When selecting or unselecting is supported by a model, the return
--   values of the selection functions do *not* indicate if selection or
--   unselection happened. They are only meant to indicate complete
--   failure, like when this mode of selecting is not supported by the
--   model.
--   
--   Selections may happen asynchronously, so the only reliable way to find
--   out when an item was selected is to listen to the signals that
--   indicate selection.
module GI.Gtk.Interfaces.SelectionModel

-- | Memory-managed wrapper type.
newtype SelectionModel
SelectionModel :: ManagedPtr SelectionModel -> SelectionModel

-- | Type class for types which can be safely cast to
--   SelectionModel, for instance with toSelectionModel.
class (GObject o, IsDescendantOf SelectionModel o) => IsSelectionModel o

-- | Cast to SelectionModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toSelectionModel :: (MonadIO m, IsSelectionModel o) => o -> m SelectionModel

-- | Gets the set containing all currently selected items in the model.
--   
--   This function may be slow, so if you are only interested in single
--   item, consider using selectionModelIsSelected or if you are
--   only interested in a few, consider
--   selectionModelGetSelectionInRange.
selectionModelGetSelection :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> m Bitset

-- | Gets the set of selected items in a range.
--   
--   This function is an optimization for selectionModelGetSelection
--   when you are only interested in part of the model's selected state. A
--   common use case is in response to the
--   SelectionModel::selectionChanged signal.
selectionModelGetSelectionInRange :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> Word32 -> m Bitset

-- | Checks if the given item is selected.
selectionModelIsSelected :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> m Bool

-- | Requests to select all items in the model.
selectionModelSelectAll :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> m Bool

-- | Requests to select an item in the model.
selectionModelSelectItem :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> Bool -> m Bool

-- | Requests to select a range of items in the model.
selectionModelSelectRange :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> Word32 -> Bool -> m Bool

-- | Helper function for implementations of GtkSelectionModel.
--   
--   Call this when the selection changes to emit the
--   SelectionModel::selectionChanged signal.
selectionModelSelectionChanged :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> Word32 -> m ()

-- | Make selection changes.
--   
--   This is the most advanced selection updating method that allows the
--   most fine-grained control over selection changes. If you can, you
--   should try the simpler versions, as implementations are more likely to
--   implement support for those.
--   
--   Requests that the selection state of all positions set in
--   mask be updated to the respective value in the
--   selected bitmask.
--   
--   In pseudocode, it would look something like this:
--   
--   
c code
--   
--   
--   for (i = 0; i < n_items; i++)
--     {
--       // don't change values not in the mask
--       if (!gtk_bitset_contains (mask, i))
--         continue;
--   
--       if (gtk_bitset_contains (selected, i))
--         select_item (i);
--       else
--         unselect_item (i);
--     }
--   
--   gtk_selection_model_selection_changed (model,
--                                          first_changed_item,
--                                          n_changed_items);
--   
--   
--   mask and selected must not be
--   modified. They may refer to the same bitset, which would mean that
--   every item in the set should be selected.
selectionModelSetSelection :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Bitset -> Bitset -> m Bool

-- | Requests to unselect all items in the model.
selectionModelUnselectAll :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> m Bool

-- | Requests to unselect an item in the model.
selectionModelUnselectItem :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> m Bool

-- | Requests to unselect a range of items in the model.
selectionModelUnselectRange :: (HasCallStack, MonadIO m, IsSelectionModel a) => a -> Word32 -> Word32 -> m Bool

-- | Emitted when the selection state of some of the items in
--   model changes.
--   
--   Note that this signal does not specify the new selection state of the
--   items, they need to be queried manually. It is also not necessary for
--   a model to change the selection state of any of the items in the
--   selection model, though it would be rather useless to emit such a
--   signal.
type SelectionModelSelectionChangedCallback = Word32 -> Word32 -> IO ()

-- | Connect a signal handler for the selectionChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after selectionModel #selectionChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSelectionModelSelectionChanged :: (IsSelectionModel a, MonadIO m) => a -> ((?self :: a) => SelectionModelSelectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectionChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on selectionModel #selectionChanged callback
--   
onSelectionModelSelectionChanged :: (IsSelectionModel a, MonadIO m) => a -> ((?self :: a) => SelectionModelSelectionChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.SelectionModel.SelectionModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.SelectionModel.SelectionModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.SelectionModel.SelectionModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.SelectionModel.SelectionModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.SelectionModel.SelectionModel o) => GI.Gtk.Interfaces.SelectionModel.IsSelectionModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.SelectionModel.SelectionModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.SelectionModel.SelectionModel

-- | Iterates over the elements of a Bitset.
--   
--   @GtkBitSetIter is an opaque, stack-allocated struct.
--   
--   Before a @GtkBitsetIter` can be used, it needs to be initialized with
--   bitsetIterInitFirst, bitsetIterInitLast or
--   bitsetIterInitAt.
module GI.Gtk.Structs.BitsetIter

-- | Memory-managed wrapper type.
newtype BitsetIter
BitsetIter :: ManagedPtr BitsetIter -> BitsetIter

-- | Construct a BitsetIter struct initialized to zero.
newZeroBitsetIter :: MonadIO m => m BitsetIter

-- | Gets the current value that iter points to.
--   
--   If iter is not valid and bitsetIterIsValid
--   returns False, this function returns 0.
bitsetIterGetValue :: (HasCallStack, MonadIO m) => BitsetIter -> m Word32

-- | Initializes iter to point to target.
--   
--   If target is not found, finds the next value after it.
--   If no value >= target exists in
--   set, this function returns False.
bitsetIterInitAt :: (HasCallStack, MonadIO m) => Bitset -> Word32 -> m (Bool, BitsetIter, Word32)

-- | Initializes an iterator for set and points it to the
--   first value in set.
--   
--   If set is empty, False is returned and
--   value is set to G_MAXUINT.
bitsetIterInitFirst :: (HasCallStack, MonadIO m) => Bitset -> m (Bool, BitsetIter, Word32)

-- | Initializes an iterator for set and points it to the
--   last value in set.
--   
--   If set is empty, False is returned.
bitsetIterInitLast :: (HasCallStack, MonadIO m) => Bitset -> m (Bool, BitsetIter, Word32)

-- | Checks if iter points to a valid value.
bitsetIterIsValid :: (HasCallStack, MonadIO m) => BitsetIter -> m Bool

-- | Moves iter to the next value in the set.
--   
--   If it was already pointing to the last value in the set, False
--   is returned and iter is invalidated.
bitsetIterNext :: (HasCallStack, MonadIO m) => BitsetIter -> m (Bool, Word32)

-- | Moves iter to the previous value in the set.
--   
--   If it was already pointing to the first value in the set, False
--   is returned and iter is invalidated.
bitsetIterPrevious :: (HasCallStack, MonadIO m) => BitsetIter -> m (Bool, Word32)
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.BitsetIter.BitsetIter tag
instance GHC.Classes.Eq GI.Gtk.Structs.BitsetIter.BitsetIter
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.BitsetIter.BitsetIter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.BitsetIter.BitsetIter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.BitsetIter.BitsetIter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.BitsetIter.BitsetIter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.BitsetIter.BitsetIter

-- | Specifies a border around a rectangular area.
--   
--   Each side can have a different width.
module GI.Gtk.Structs.Border

-- | Memory-managed wrapper type.
newtype Border
Border :: ManagedPtr Border -> Border

-- | Construct a Border struct initialized to zero.
newZeroBorder :: MonadIO m => m Border

-- | Copies a GtkBorder.
borderCopy :: (HasCallStack, MonadIO m) => Border -> m Border

-- | Frees a GtkBorder.
borderFree :: (HasCallStack, MonadIO m) => Border -> m ()

-- | Allocates a new GtkBorder struct and initializes its elements
--   to zero.
borderNew :: (HasCallStack, MonadIO m) => m Border

-- | Get the value of the “bottom” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get border #bottom
--   
getBorderBottom :: MonadIO m => Border -> m Int16

-- | Set the value of the “bottom” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set border [ #bottom := value ]
--   
setBorderBottom :: MonadIO m => Border -> Int16 -> m ()

-- | Get the value of the “left” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get border #left
--   
getBorderLeft :: MonadIO m => Border -> m Int16

-- | Set the value of the “left” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set border [ #left := value ]
--   
setBorderLeft :: MonadIO m => Border -> Int16 -> m ()

-- | Get the value of the “right” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get border #right
--   
getBorderRight :: MonadIO m => Border -> m Int16

-- | Set the value of the “right” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set border [ #right := value ]
--   
setBorderRight :: MonadIO m => Border -> Int16 -> m ()

-- | Get the value of the “top” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get border #top
--   
getBorderTop :: MonadIO m => Border -> m Int16

-- | Set the value of the “top” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set border [ #top := value ]
--   
setBorderTop :: MonadIO m => Border -> Int16 -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.Border.Border tag
instance GHC.Classes.Eq GI.Gtk.Structs.Border.Border
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.Border.Border
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.Border.Border
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.Border.Border)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.Border.Border
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.Border.Border

-- | GtkStyleContext stores styling information affecting a
--   widget.
--   
--   In order to construct the final style information,
--   GtkStyleContext queries information from all attached
--   GtkStyleProviders. Style providers can be either attached
--   explicitly to the context through styleContextAddProvider, or
--   to the display through styleContextAddProviderForDisplay. The
--   resulting style is a combination of all providers’ information in
--   priority order.
--   
--   For GTK widgets, any GtkStyleContext returned by
--   widgetGetStyleContext will already have a GdkDisplay
--   and RTL/LTR information set. The style context will also be updated
--   automatically if any of these settings change on the widget.
--   
--   
Style Classes
--   
--   Widgets can add style classes to their context, which can be used to
--   associate different styles by class. The documentation for individual
--   widgets lists which style classes it uses itself, and which style
--   classes may be added by applications to affect their appearance.
--   
--   
Custom styling in UI libraries and applications
--   
--   If you are developing a library with custom widgets that render
--   differently than standard components, you may need to add a
--   GtkStyleProvider yourself with the
--   STYLE_PROVIDER_PRIORITY_FALLBACK priority, either a
--   GtkCssProvider or a custom object implementing the
--   GtkStyleProvider interface. This way themes may still attempt
--   to style your UI elements in a different way if needed so.
--   
--   If you are using custom styling on an applications, you probably want
--   then to make your style information prevail to the theme’s, so you
--   must use a GtkStyleProvider with the
--   STYLE_PROVIDER_PRIORITY_APPLICATION priority, keep in mind that
--   the user settings in XDG_CONFIG_HOME/gtk-4.0/gtk.css will
--   still take precedence over your changes, as it uses the
--   STYLE_PROVIDER_PRIORITY_USER priority.
module GI.Gtk.Objects.StyleContext

-- | Memory-managed wrapper type.
newtype StyleContext
StyleContext :: ManagedPtr StyleContext -> StyleContext

-- | Type class for types which can be safely cast to StyleContext,
--   for instance with toStyleContext.
class (GObject o, IsDescendantOf StyleContext o) => IsStyleContext o

-- | Cast to StyleContext, for types for which this is known to be
--   safe. For general casts, use castTo.
toStyleContext :: (MonadIO m, IsStyleContext o) => o -> m StyleContext

-- | Adds a style class to context, so later uses of the
--   style context will make use of this new class for styling.
--   
--   In the CSS file format, a GtkEntry defining a “search” class,
--   would be matched by:
--   
--   
css code
--   
--   
--   entry.search { ... }
--   
--   
--   While any widget defining a “search” class would be matched by:
--   
--   
css code
--   
--   
--   .search { ... }
--   

-- | Deprecated: (Since version 4.10)Use widgetAddCssClass
--   instead
styleContextAddClass :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Text -> m ()

-- | Adds a style provider to context, to be used in style
--   construction.
--   
--   Note that a style provider added by this function only affects the
--   style of the widget to which context belongs. If you
--   want to affect the style of all widgets, use
--   styleContextAddProviderForDisplay.
--   
--   Note: If both priorities are the same, a GtkStyleProvider
--   added through this function takes precedence over another added
--   through styleContextAddProviderForDisplay.

-- | Deprecated: (Since version 4.10)Use style classes instead
styleContextAddProvider :: (HasCallStack, MonadIO m, IsStyleContext a, IsStyleProvider b) => a -> b -> Word32 -> m ()

-- | Adds a global style provider to display, which will be
--   used in style construction for all GtkStyleContexts under
--   display.
--   
--   GTK uses this to make styling information from GtkSettings
--   available.
--   
--   Note: If both priorities are the same, A GtkStyleProvider
--   added through styleContextAddProvider takes precedence over
--   another added through this function.
styleContextAddProviderForDisplay :: (HasCallStack, MonadIO m, IsDisplay a, IsStyleProvider b) => a -> b -> Word32 -> m ()

-- | Gets the border for a given state as a GtkBorder.

-- | Deprecated: (Since version 4.10)This api will be removed in GTK
--   5
styleContextGetBorder :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m Border

-- | Gets the foreground color for a given state.

-- | Deprecated: (Since version 4.10)Use widgetGetColor
--   instead
styleContextGetColor :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m RGBA

-- | Returns the GdkDisplay to which context is
--   attached.

-- | Deprecated: (Since version 4.10)Use widgetGetDisplay
--   instead
styleContextGetDisplay :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m Display

-- | Gets the margin for a given state as a GtkBorder.

-- | Deprecated: (Since version 4.10)This api will be removed in GTK
--   5
styleContextGetMargin :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m Border

-- | Gets the padding for a given state as a GtkBorder.

-- | Deprecated: (Since version 4.10)This api will be removed in GTK
--   5
styleContextGetPadding :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m Border

-- | Returns the scale used for assets.

-- | Deprecated: (Since version 4.10)Use widgetGetScaleFactor
--   instead
styleContextGetScale :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m Int32

-- | Returns the state used for style matching.
--   
--   This method should only be used to retrieve the GtkStateFlags
--   to pass to GtkStyleContext methods, like
--   styleContextGetPadding. If you need to retrieve the current
--   state of a GtkWidget, use widgetGetStateFlags.

-- | Deprecated: (Since version 4.10)Use widgetGetStateFlags
--   instead
styleContextGetState :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m [StateFlags]

-- | Returns True if context currently has defined
--   the given class name.

-- | Deprecated: (Since version 4.10)Use widgetHasCssClass
--   instead
styleContextHasClass :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Text -> m Bool

-- | Looks up and resolves a color name in the context
--   color map.

-- | Deprecated: (Since version 4.10)This api will be removed in GTK
--   5
styleContextLookupColor :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Text -> m (Bool, RGBA)

-- | Removes className from context.

-- | Deprecated: (Since version 4.10)Use widgetRemoveCssClass
--   instead
styleContextRemoveClass :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Text -> m ()

-- | Removes provider from the style providers list in
--   context.

-- | Deprecated: (Since version 4.10)
styleContextRemoveProvider :: (HasCallStack, MonadIO m, IsStyleContext a, IsStyleProvider b) => a -> b -> m ()

-- | Removes provider from the global style providers list
--   in display.
styleContextRemoveProviderForDisplay :: (HasCallStack, MonadIO m, IsDisplay a, IsStyleProvider b) => a -> b -> m ()

-- | Restores context state to a previous stage.
--   
--   See styleContextSave.

-- | Deprecated: (Since version 4.10)This API will be removed in GTK
--   5
styleContextRestore :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m ()

-- | Saves the context state.
--   
--   This allows temporary modifications done through
--   styleContextAddClass, styleContextRemoveClass,
--   styleContextSetState to be quickly reverted in one go through
--   styleContextRestore.
--   
--   The matching call to styleContextRestore must be done before
--   GTK returns to the main loop.

-- | Deprecated: (Since version 4.10)This API will be removed in GTK
--   5
styleContextSave :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> m ()

-- | Attaches context to the given display.
--   
--   The display is used to add style information from “global” style
--   providers, such as the display's GtkSettings instance.
--   
--   If you are using a GtkStyleContext returned from
--   widgetGetStyleContext, you do not need to call this yourself.

-- | Deprecated: (Since version 4.10)You should not use this api
styleContextSetDisplay :: (HasCallStack, MonadIO m, IsStyleContext a, IsDisplay b) => a -> b -> m ()

-- | Sets the scale to use when getting image assets for the style.

-- | Deprecated: (Since version 4.10)You should not use this api
styleContextSetScale :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Int32 -> m ()

-- | Sets the state to be used for style matching.

-- | Deprecated: (Since version 4.10)You should not use this api
styleContextSetState :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> [StateFlags] -> m ()

-- | Converts the style context into a string representation.
--   
--   The string representation always includes information about the name,
--   state, id, visibility and style classes of the CSS node that is
--   backing context. Depending on the flags, more
--   information may be included.
--   
--   This function is intended for testing and debugging of the CSS
--   implementation in GTK. There are no guarantees about the format of the
--   returned string, it may change.

-- | Deprecated: (Since version 4.10)This api will be removed in GTK
--   5
styleContextToString :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> [StyleContextPrintFlags] -> m Text

-- | Construct a GValueConstruct with valid value for the
--   “display” property. This is rarely needed directly, but it is
--   used by new.
constructStyleContextDisplay :: (IsStyleContext o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get styleContext #display
--   
getStyleContextDisplay :: (MonadIO m, IsStyleContext o) => o -> m Display

-- | Set the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set styleContext [ #display := value ]
--   
setStyleContextDisplay :: (MonadIO m, IsStyleContext o, IsDisplay a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.StyleContext.StyleContext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StyleContext.StyleContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StyleContext.StyleContext
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StyleContext.StyleContext)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StyleContext.StyleContext o) => GI.Gtk.Objects.StyleContext.IsStyleContext o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StyleContext.StyleContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StyleContext.StyleContext

-- | Assists in creating RenderNodes for widgets.
--   
--   It functions in a similar way to a cairo context, and maintains a
--   stack of render nodes and their associated transformations.
--   
--   The node at the top of the stack is the one that
--   gtk_snapshot_append_…() functions operate on. Use the
--   gtk_snapshot_push_…() functions and
--   [methodsnapshot.pop] to change the current node.
--   
--   The typical way to obtain a GtkSnapshot object is as an
--   argument to the Widget.snapshot() vfunc. If you
--   need to create your own GtkSnapshot, use snapshotNew.
--   
--   Note that GtkSnapshot applies some optimizations, so the node
--   it produces may not match the API calls 1:1. For example, it will omit
--   clip nodes if the child node is entirely contained within the clip
--   rectangle.
module GI.Gtk.Objects.Snapshot

-- | Memory-managed wrapper type.
newtype Snapshot
Snapshot :: ManagedPtr Snapshot -> Snapshot

-- | Type class for types which can be safely cast to Snapshot, for
--   instance with toSnapshot.
class (GObject o, IsDescendantOf Snapshot o) => IsSnapshot o

-- | Cast to Snapshot, for types for which this is known to be safe.
--   For general casts, use castTo.
toSnapshot :: (MonadIO m, IsSnapshot o) => o -> m Snapshot

-- | Appends a stroked border rectangle inside the given
--   outline.
--   
--   The four sides of the border can have different widths and colors.
snapshotAppendBorder :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> RoundedRect -> [Float] -> [RGBA] -> m ()

-- | Creates a new CairoNode and appends it to the current render
--   node of snapshot, without changing the current node.
snapshotAppendCairo :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> m Context

-- | Creates a new render node drawing the color into the
--   given bounds and appends it to the current render node
--   of snapshot.
--   
--   You should try to avoid calling this function if color
--   is transparent.
snapshotAppendColor :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> RGBA -> Rect -> m ()

-- | Appends a conic gradient node with the given stops to
--   snapshot.
snapshotAppendConicGradient :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> Point -> Float -> [ColorStop] -> m ()

-- | A convenience method to fill a path with a color.
--   
--   See snapshotPushFill if you need to fill a path with more
--   complex content than a color.
--   
--   Since: 4.14
snapshotAppendFill :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Path -> FillRule -> RGBA -> m ()

-- | Appends an inset shadow into the box given by outline.
snapshotAppendInsetShadow :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> RoundedRect -> RGBA -> Float -> Float -> Float -> Float -> m ()

-- | Creates render nodes for rendering layout in the given
--   foregound color and appends them to the current node
--   of snapshot without changing the current node. The
--   current theme's foreground color for a widget can be obtained with
--   widgetGetColor.
--   
--   Note that if the layout does not produce any visible output, then
--   nodes may not be added to the snapshot.
snapshotAppendLayout :: (HasCallStack, MonadIO m, IsSnapshot a, IsLayout b) => a -> b -> RGBA -> m ()

-- | Appends a linear gradient node with the given stops to
--   snapshot.
snapshotAppendLinearGradient :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> Point -> Point -> [ColorStop] -> m ()

-- | Appends node to the current render node of
--   snapshot, without changing the current node.
--   
--   If snapshot does not have a current node yet,
--   node will become the initial node.
snapshotAppendNode :: (HasCallStack, MonadIO m, IsSnapshot a, IsRenderNode b) => a -> b -> m ()

-- | Appends an outset shadow node around the box given by
--   outline.
snapshotAppendOutsetShadow :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> RoundedRect -> RGBA -> Float -> Float -> Float -> Float -> m ()

-- | Creates a new render node that pastes the contents copied by a
--   previous call to snapshotPushCopy
--   
--   Since: 4.22
snapshotAppendPaste :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> CSize -> m ()

-- | Appends a radial gradient node with the given stops to
--   snapshot.
snapshotAppendRadialGradient :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> Point -> Float -> Float -> Float -> Float -> [ColorStop] -> m ()

-- | Appends a repeating linear gradient node with the given stops to
--   snapshot.
snapshotAppendRepeatingLinearGradient :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> Point -> Point -> [ColorStop] -> m ()

-- | Appends a repeating radial gradient node with the given stops to
--   snapshot.
snapshotAppendRepeatingRadialGradient :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> Point -> Float -> Float -> Float -> Float -> [ColorStop] -> m ()

-- | Creates a new render node drawing the texture into the
--   given bounds and appends it to the current render node
--   of snapshot.
--   
--   In contrast to snapshotAppendTexture, this function provides
--   control about how the filter that is used when scaling.
--   
--   Since: 4.10
snapshotAppendScaledTexture :: (HasCallStack, MonadIO m, IsSnapshot a, IsTexture b) => a -> b -> ScalingFilter -> Rect -> m ()

-- | A convenience method to stroke a path with a color.
--   
--   See snapshotPushStroke if you need to stroke a path with more
--   complex content than a color.
--   
--   Since: 4.14
snapshotAppendStroke :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Path -> Stroke -> RGBA -> m ()

-- | Creates a new render node drawing the texture into the
--   given bounds and appends it to the current render node
--   of snapshot.
--   
--   If the texture needs to be scaled to fill bounds,
--   linear filtering is used. See snapshotAppendScaledTexture if
--   you need other filtering, such as nearest-neighbour.
snapshotAppendTexture :: (HasCallStack, MonadIO m, IsSnapshot a, IsTexture b) => a -> b -> Rect -> m ()

-- | Removes the top element from the stack of render nodes and adds it to
--   the nearest GLShaderNode below it.
--   
--   This must be called the same number of times as the number of textures
--   is needed for the shader in snapshotPushGlShader.

-- | Deprecated: (Since version 4.16)GTK's new Vulkan-focused
--   renderingdoes not support this feature. Use GLArea forOpenGL
--   rendering.
snapshotGlShaderPopTexture :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> m ()

-- | Creates a new GtkSnapshot.
snapshotNew :: (HasCallStack, MonadIO m) => m Snapshot

-- | Applies a perspective projection transform.
--   
--   See transformPerspective for a discussion on the details.
snapshotPerspective :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Float -> m ()

-- | Removes the top element from the stack of render nodes, and appends it
--   to the node underneath it.
snapshotPop :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> m ()

-- | Blends together two images with the given blend mode.
--   
--   Until the first call to snapshotPop, the bottom image for the
--   blend operation will be recorded. After that call, the top image to be
--   blended will be recorded until the second call to snapshotPop.
--   
--   Calling this function requires two subsequent calls to
--   snapshotPop.
snapshotPushBlend :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> BlendMode -> m ()

-- | Blurs an image.
--   
--   The image is recorded until the next call to snapshotPop.
snapshotPushBlur :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Double -> m ()

-- | Clips an image to a rectangle.
--   
--   The image is recorded until the next call to snapshotPop.
snapshotPushClip :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> m ()

-- | Modifies the colors of an image by applying an affine transformation
--   in RGB space.
--   
--   In particular, the colors will be transformed by applying
--   
--   pixel = transpose(color_matrix) * pixel + color_offset
--   
--   for every pixel. The transformation operates on unpremultiplied
--   colors, with color components ordered R, G, B, A.
--   
--   The image is recorded until the next call to snapshotPop.
snapshotPushColorMatrix :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Matrix -> Vec4 -> m ()

-- | Modifies the colors of an image by applying a transfer function for
--   each component.
--   
--   The transfer functions operate on unpremultiplied colors.
--   
--   The image is recorded until the next call to snapshotPop.
--   
--   Since: 4.20
snapshotPushComponentTransfer :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> ComponentTransfer -> ComponentTransfer -> ComponentTransfer -> ComponentTransfer -> m ()

-- | Until the first call to snapshotPop, the mask image for the
--   mask operation will be recorded.
--   
--   After that call, the child image will be recorded until the second
--   call to snapshotPop.
--   
--   Calling this function requires 2 subsequent calls to
--   snapshotPop.
--   
--   Since: 4.22
snapshotPushComposite :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> PorterDuff -> m ()

-- | Stores the current rendering state for later pasting via
--   snapshotAppendPaste.
--   
--   Pasting is possible until the matching call to snapshotPop.
--   
--   Since: 4.22
snapshotPushCopy :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> m ()

-- | Snapshots a cross-fade operation between two images with the given
--   progress.
--   
--   Until the first call to snapshotPop, the start image will be
--   snapshot. After that call, the end image will be recorded until the
--   second call to snapshotPop.
--   
--   Calling this function requires two subsequent calls to
--   snapshotPop.
snapshotPushCrossFade :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Double -> m ()

-- | Fills the area given by path and
--   fillRule with an image and discards everything outside
--   of it.
--   
--   The image is recorded until the next call to snapshotPop.
--   
--   If you want to fill the path with a color, snapshotAppendFill
--   than rendering new ones, use snapshotAppendFill may be more
--   convenient.
--   
--   Since: 4.14
snapshotPushFill :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Path -> FillRule -> m ()

-- | Push a GLShaderNode.
--   
--   The node uses the given GLShader and uniform values
--   Additionally this takes a list of nChildren other
--   nodes which will be passed to the GLShaderNode.
--   
--   The takeArgs argument is a block of data to use for
--   uniform arguments, as per types and offsets defined by the
--   shader. Normally this is generated by
--   GLShader.format_args() or
--   ShaderArgsBuilder.
--   
--   The snapshotter takes ownership of takeArgs, so the
--   caller should not free it after this.
--   
--   If the renderer doesn't support GL shaders, or if there is any problem
--   when compiling the shader, then the node will draw pink. You should
--   use gLShaderCompile to ensure the shader will
--   work for the renderer before using it.
--   
--   If the shader requires textures (see gLShaderGetNTextures),
--   then it is expected that you call snapshotGlShaderPopTexture
--   the number of times that are required. Each of these calls will
--   generate a node that is added as a child to the
--   GskGLShaderNode, which in turn will render these offscreen
--   and pass as a texture to the shader.
--   
--   Once all textures (if any) are pop:ed, you must call the regular
--   snapshotPop.
--   
--   If you want to use pre-existing textures as input to the shader rather
--   than rendering new ones, use snapshotAppendTexture to push a
--   texture node. These will be used directly rather than being
--   re-rendered.
--   
--   For details on how to write shaders, see GLShader.

-- | Deprecated: (Since version 4.16)GTK's new Vulkan-focused
--   renderingdoes not support this feature. Use GLArea forOpenGL
--   rendering.
snapshotPushGlShader :: (HasCallStack, MonadIO m, IsSnapshot a, IsGLShader b) => a -> b -> Rect -> Bytes -> m ()

-- | Isolates the following drawing operations from previous ones.
--   
--   You can express "everything but these flags" in a forward compatible
--   way by using bit math: GSK_ISOLATION_ALL &
--   ~(GSK_ISOLATION_BACKGROUND | GSK_ISOLATION_COPY_PASTE) will
--   isolate everything but background and copy/paste.
--   
--   For what isolation features exist, see
--   [flagsgsk.Isolation].
--   
--   Content is isolated until the next call to snapshotPop.
--   
--   Since: 4.22
snapshotPushIsolation :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> [Isolation] -> m ()

-- | Until the first call to snapshotPop, the mask image for the
--   mask operation will be recorded.
--   
--   After that call, the source image will be recorded until the second
--   call to snapshotPop.
--   
--   Calling this function requires 2 subsequent calls to
--   snapshotPop.
--   
--   Since: 4.10
snapshotPushMask :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> MaskMode -> m ()

-- | Modifies the opacity of an image.
--   
--   The image is recorded until the next call to snapshotPop.
snapshotPushOpacity :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Double -> m ()

-- | Creates a node that repeats the child node.
--   
--   The child is recorded until the next call to snapshotPop.
snapshotPushRepeat :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Rect -> Maybe Rect -> m ()

-- | Clips an image to a rounded rectangle.
--   
--   The image is recorded until the next call to snapshotPop.
snapshotPushRoundedClip :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> RoundedRect -> m ()

-- | Applies a shadow to an image.
--   
--   The image is recorded until the next call to snapshotPop.
snapshotPushShadow :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> [Shadow] -> m ()

-- | Strokes the given path with the attributes given by
--   stroke and an image.
--   
--   The image is recorded until the next call to snapshotPop.
--   
--   Note that the strokes are subject to the same transformation as
--   everything else, so uneven scaling will cause horizontal and vertical
--   strokes to have different widths.
--   
--   If you want to stroke the path with a color,
--   snapshotAppendStroke may be more convenient.
--   
--   Since: 4.14
snapshotPushStroke :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Path -> Stroke -> m ()

-- | Creates a render node for the CSS background according to
--   context, and appends it to the current node of
--   snapshot, without changing the current node.

-- | Deprecated: (Since version 4.10)
snapshotRenderBackground :: (HasCallStack, MonadIO m, IsSnapshot a, IsStyleContext b) => a -> b -> Double -> Double -> Double -> Double -> m ()

-- | Creates a render node for the focus outline according to
--   context, and appends it to the current node of
--   snapshot, without changing the current node.

-- | Deprecated: (Since version 4.10)
snapshotRenderFocus :: (HasCallStack, MonadIO m, IsSnapshot a, IsStyleContext b) => a -> b -> Double -> Double -> Double -> Double -> m ()

-- | Creates a render node for the CSS border according to
--   context, and appends it to the current node of
--   snapshot, without changing the current node.

-- | Deprecated: (Since version 4.10)
snapshotRenderFrame :: (HasCallStack, MonadIO m, IsSnapshot a, IsStyleContext b) => a -> b -> Double -> Double -> Double -> Double -> m ()

-- | Draws a text caret using snapshot at the specified
--   index of layout.

-- | Deprecated: (Since version 4.10)
snapshotRenderInsertionCursor :: (HasCallStack, MonadIO m, IsSnapshot a, IsStyleContext b, IsLayout c) => a -> b -> Double -> Double -> c -> Int32 -> Direction -> m ()

-- | Creates a render node for rendering layout according
--   to the style information in context, and appends it to
--   the current node of snapshot, without changing the
--   current node.

-- | Deprecated: (Since version 4.10)
snapshotRenderLayout :: (HasCallStack, MonadIO m, IsSnapshot a, IsStyleContext b, IsLayout c) => a -> b -> Double -> Double -> c -> m ()

-- | Restores snapshot to the state saved by a preceding
--   call to [methodsnapshot.save] and removes that state
--   from the stack of saved states.
snapshotRestore :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> m ()

-- | Rotates @snapshot's coordinate system by
--   angle degrees in 2D space - or in 3D speak, rotates
--   around the Z axis. The rotation happens around the origin point of (0,
--   0) in the snapshot's current coordinate system.
--   
--   To rotate around axes other than the Z axis, use
--   transformRotate3d.
snapshotRotate :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Float -> m ()

-- | Rotates snapshot's coordinate system by
--   angle degrees around axis.
--   
--   For a rotation in 2D space, use transformRotate.
snapshotRotate3d :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Float -> Vec3 -> m ()

-- | Makes a copy of the current state of snapshot and
--   saves it on an internal stack.
--   
--   When snapshotRestore is called, snapshot will
--   be restored to the saved state.
--   
--   Multiple calls to snapshotSave and snapshotRestore can
--   be nested; each call to gtk_snapshot_restore() restores the
--   state from the matching paired gtk_snapshot_save().
--   
--   It is necessary to clear all saved states with corresponding calls to
--   gtk_snapshot_restore().
snapshotSave :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> m ()

-- | Scales snapshot's coordinate system in 2-dimensional
--   space by the given factors.
--   
--   Use snapshotScale3d to scale in all 3 dimensions.
snapshotScale :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Float -> Float -> m ()

-- | Scales snapshot's coordinate system by the given
--   factors.
snapshotScale3d :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Float -> Float -> Float -> m ()

-- | Returns the render node that was constructed by
--   snapshot.
--   
--   Note that this function may return Nothing if nothing has been
--   added to the snapshot or if its content does not produce pixels to be
--   rendered.
--   
--   After calling this function, it is no longer possible to add more
--   nodes to snapshot. The only function that should be
--   called after this is objectUnref.
snapshotToNode :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> m (Maybe RenderNode)

-- | Returns a paintable encapsulating the render node that was constructed
--   by snapshot.
--   
--   After calling this function, it is no longer possible to add more
--   nodes to snapshot. The only function that should be
--   called after this is objectUnref.
snapshotToPaintable :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Maybe Size -> m (Maybe Paintable)

-- | Transforms snapshot's coordinate system with the given
--   transform.
snapshotTransform :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Maybe Transform -> m ()

-- | Transforms snapshot's coordinate system with the given
--   matrix.
snapshotTransformMatrix :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Matrix -> m ()

-- | Translates snapshot's coordinate system by
--   point in 2-dimensional space.
snapshotTranslate :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Point -> m ()

-- | Translates snapshot's coordinate system by
--   point.
snapshotTranslate3d :: (HasCallStack, MonadIO m, IsSnapshot a) => a -> Point3D -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Snapshot.Snapshot
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Snapshot.Snapshot
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Snapshot.Snapshot
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Snapshot.Snapshot)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Snapshot.Snapshot o) => GI.Gtk.Objects.Snapshot.IsSnapshot o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Snapshot.Snapshot
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Snapshot.Snapshot

-- | An interface for widgets with native scrolling ability.
--   
--   To implement this interface you should override the
--   Scrollable:hadjustment and Scrollable:vadjustment
--   properties.
--   
--   
Creating a scrollable widget
--   
--   All scrollable widgets should do the following.
--   
--   
--   
- When a parent widget sets the scrollable child widget’s
--   adjustments, the widget should connect to the
--   Adjustment::valueChanged signal. The child widget should then
--   populate the adjustments’ properties as soon as possible, which
--   usually means queueing an allocation right away and populating the
--   properties in the Widget.size_allocate()
--   implementation.
--   
- Because its preferred size is the size for a fully expanded
--   widget, the scrollable widget must be able to cope with
--   underallocations. This means that it must accept any value passed to
--   its Widget.size_allocate() implementation.
--   
- When the parent allocates space to the scrollable child widget,
--   the widget must ensure the adjustments’ property values are correct
--   and up to date, for example using adjustmentConfigure.
--   
- When any of the adjustments emits the
--   Adjustment::valueChanged signal, the scrollable widget should
--   scroll its contents.
--   
module GI.Gtk.Interfaces.Scrollable

-- | Memory-managed wrapper type.
newtype Scrollable
Scrollable :: ManagedPtr Scrollable -> Scrollable

-- | Type class for types which can be safely cast to Scrollable,
--   for instance with toScrollable.
class (GObject o, IsDescendantOf Scrollable o) => IsScrollable o

-- | Cast to Scrollable, for types for which this is known to be
--   safe. For general casts, use castTo.
toScrollable :: (MonadIO m, IsScrollable o) => o -> m Scrollable

-- | Returns the size of a non-scrolling border around the outside of the
--   scrollable.
--   
--   An example for this would be treeview headers. GTK can use this
--   information to display overlaid graphics, like the overshoot
--   indication, at the right position.
scrollableGetBorder :: (HasCallStack, MonadIO m, IsScrollable a) => a -> m (Bool, Border)

-- | Retrieves the GtkAdjustment used for horizontal scrolling.
scrollableGetHadjustment :: (HasCallStack, MonadIO m, IsScrollable a) => a -> m (Maybe Adjustment)

-- | Gets the horizontal GtkScrollablePolicy.
scrollableGetHscrollPolicy :: (HasCallStack, MonadIO m, IsScrollable a) => a -> m ScrollablePolicy

-- | Retrieves the GtkAdjustment used for vertical scrolling.
scrollableGetVadjustment :: (HasCallStack, MonadIO m, IsScrollable a) => a -> m (Maybe Adjustment)

-- | Gets the vertical GtkScrollablePolicy.
scrollableGetVscrollPolicy :: (HasCallStack, MonadIO m, IsScrollable a) => a -> m ScrollablePolicy

-- | Sets the horizontal adjustment of the GtkScrollable.
scrollableSetHadjustment :: (HasCallStack, MonadIO m, IsScrollable a, IsAdjustment b) => a -> Maybe b -> m ()

-- | Sets the GtkScrollablePolicy.
--   
--   The policy determines whether horizontal scrolling should start below
--   the minimum width or below the natural width.
scrollableSetHscrollPolicy :: (HasCallStack, MonadIO m, IsScrollable a) => a -> ScrollablePolicy -> m ()

-- | Sets the vertical adjustment of the GtkScrollable.
scrollableSetVadjustment :: (HasCallStack, MonadIO m, IsScrollable a, IsAdjustment b) => a -> Maybe b -> m ()

-- | Sets the GtkScrollablePolicy.
--   
--   The policy determines whether vertical scrolling should start below
--   the minimum height or below the natural height.
scrollableSetVscrollPolicy :: (HasCallStack, MonadIO m, IsScrollable a) => a -> ScrollablePolicy -> m ()

-- | Set the value of the “hadjustment” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #hadjustment
--   
clearScrollableHadjustment :: (MonadIO m, IsScrollable o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hadjustment” property. This is rarely needed directly, but
--   it is used by new.
constructScrollableHadjustment :: (IsScrollable o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “hadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrollable #hadjustment
--   
getScrollableHadjustment :: (MonadIO m, IsScrollable o) => o -> m (Maybe Adjustment)

-- | Set the value of the “hadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrollable [ #hadjustment := value ]
--   
setScrollableHadjustment :: (MonadIO m, IsScrollable o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hscroll-policy” property. This is rarely needed directly,
--   but it is used by new.
constructScrollableHscrollPolicy :: (IsScrollable o, MonadIO m) => ScrollablePolicy -> m (GValueConstruct o)

-- | Get the value of the “hscroll-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrollable #hscrollPolicy
--   
getScrollableHscrollPolicy :: (MonadIO m, IsScrollable o) => o -> m ScrollablePolicy

-- | Set the value of the “hscroll-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrollable [ #hscrollPolicy := value ]
--   
setScrollableHscrollPolicy :: (MonadIO m, IsScrollable o) => o -> ScrollablePolicy -> m ()

-- | Set the value of the “vadjustment” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #vadjustment
--   
clearScrollableVadjustment :: (MonadIO m, IsScrollable o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vadjustment” property. This is rarely needed directly, but
--   it is used by new.
constructScrollableVadjustment :: (IsScrollable o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “vadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrollable #vadjustment
--   
getScrollableVadjustment :: (MonadIO m, IsScrollable o) => o -> m (Maybe Adjustment)

-- | Set the value of the “vadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrollable [ #vadjustment := value ]
--   
setScrollableVadjustment :: (MonadIO m, IsScrollable o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vscroll-policy” property. This is rarely needed directly,
--   but it is used by new.
constructScrollableVscrollPolicy :: (IsScrollable o, MonadIO m) => ScrollablePolicy -> m (GValueConstruct o)

-- | Get the value of the “vscroll-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrollable #vscrollPolicy
--   
getScrollableVscrollPolicy :: (MonadIO m, IsScrollable o) => o -> m ScrollablePolicy

-- | Set the value of the “vscroll-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrollable [ #vscrollPolicy := value ]
--   
setScrollableVscrollPolicy :: (MonadIO m, IsScrollable o) => o -> ScrollablePolicy -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.Scrollable.Scrollable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Scrollable.Scrollable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Scrollable.Scrollable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Scrollable.Scrollable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Scrollable.Scrollable o) => GI.Gtk.Interfaces.Scrollable.IsScrollable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Scrollable.Scrollable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Scrollable.Scrollable

-- | Points at a location inside a CSS stream.
module GI.Gtk.Structs.CssLocation

-- | Memory-managed wrapper type.
newtype CssLocation
CssLocation :: ManagedPtr CssLocation -> CssLocation

-- | Construct a CssLocation struct initialized to zero.
newZeroCssLocation :: MonadIO m => m CssLocation

-- | Get the value of the “bytes” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cssLocation #bytes
--   
getCssLocationBytes :: MonadIO m => CssLocation -> m CSize

-- | Set the value of the “bytes” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cssLocation [ #bytes := value ]
--   
setCssLocationBytes :: MonadIO m => CssLocation -> CSize -> m ()

-- | Get the value of the “chars” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cssLocation #chars
--   
getCssLocationChars :: MonadIO m => CssLocation -> m CSize

-- | Set the value of the “chars” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cssLocation [ #chars := value ]
--   
setCssLocationChars :: MonadIO m => CssLocation -> CSize -> m ()

-- | Get the value of the “line_bytes” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cssLocation #lineBytes
--   
getCssLocationLineBytes :: MonadIO m => CssLocation -> m CSize

-- | Set the value of the “line_bytes” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cssLocation [ #lineBytes := value ]
--   
setCssLocationLineBytes :: MonadIO m => CssLocation -> CSize -> m ()

-- | Get the value of the “line_chars” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cssLocation #lineChars
--   
getCssLocationLineChars :: MonadIO m => CssLocation -> m CSize

-- | Set the value of the “line_chars” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cssLocation [ #lineChars := value ]
--   
setCssLocationLineChars :: MonadIO m => CssLocation -> CSize -> m ()

-- | Get the value of the “lines” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cssLocation #lines
--   
getCssLocationLines :: MonadIO m => CssLocation -> m CSize

-- | Set the value of the “lines” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cssLocation [ #lines := value ]
--   
setCssLocationLines :: MonadIO m => CssLocation -> CSize -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.CssLocation.CssLocation
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.CssLocation.CssLocation
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.CssLocation.CssLocation tag
instance GHC.Classes.Eq GI.Gtk.Structs.CssLocation.CssLocation
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.CssLocation.CssLocation

-- | Defines a part of a CSS document.
--   
--   Because sections are nested into one another, you can use
--   [methodcssSection.get_parent] to get the containing
--   region.
module GI.Gtk.Structs.CssSection

-- | Memory-managed wrapper type.
newtype CssSection
CssSection :: ManagedPtr CssSection -> CssSection

-- | Gets the bytes that section was parsed from.
--   
--   Since: 4.16
cssSectionGetBytes :: (HasCallStack, MonadIO m) => CssSection -> m (Maybe Bytes)

-- | Returns the location in the CSS document where this section ends.
cssSectionGetEndLocation :: (HasCallStack, MonadIO m) => CssSection -> m CssLocation

-- | Gets the file that section was parsed from.
--   
--   If no such file exists, for example because the CSS was loaded via
--   cssProviderLoadFromData, then NULL is returned.
cssSectionGetFile :: (HasCallStack, MonadIO m) => CssSection -> m (Maybe File)

-- | Gets the parent section for the given section.
--   
--   The parent section is the section that contains this section.
--   A special case are sections of type GTK_CSS_SECTION_DOCUMENT.
--   Their parent will either be NULL if they are the original CSS
--   document that was loaded by cssProviderLoadFromFile or a
--   section of type GTK_CSS_SECTION_IMPORT if it was loaded with
--   an @import rule from a different file.
cssSectionGetParent :: (HasCallStack, MonadIO m) => CssSection -> m (Maybe CssSection)

-- | Returns the location in the CSS document where this section starts.
cssSectionGetStartLocation :: (HasCallStack, MonadIO m) => CssSection -> m CssLocation

-- | Creates a new GtkCssSection referring to the section in the
--   given file from the start location to the
--   end location.
cssSectionNew :: (HasCallStack, MonadIO m, IsFile a) => Maybe a -> CssLocation -> CssLocation -> m CssSection

-- | Creates a new GtkCssSection referring to the section in the
--   given file or the given bytes from the
--   start location to the end location.
--   
--   Since: 4.16
cssSectionNewWithBytes :: (HasCallStack, MonadIO m, IsFile a) => Maybe a -> Maybe Bytes -> CssLocation -> CssLocation -> m CssSection

-- | Prints the section into string in a human-readable
--   form.
--   
--   This is a form like gtk.css:32:1-23 to denote line 32,
--   characters 1 to 23 in the file gtk.css.
cssSectionPrint :: (HasCallStack, MonadIO m) => CssSection -> String -> m ()

-- | Increments the reference count on section.
cssSectionRef :: (HasCallStack, MonadIO m) => CssSection -> m CssSection

-- | Prints the section into a human-readable text form using
--   cssSectionPrint.
cssSectionToString :: (HasCallStack, MonadIO m) => CssSection -> m Text

-- | Decrements the reference count on section, freeing the
--   structure if the reference count reaches 0.
cssSectionUnref :: (HasCallStack, MonadIO m) => CssSection -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.CssSection.CssSection
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.CssSection.CssSection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.CssSection.CssSection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.CssSection.CssSection)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.CssSection.CssSection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.CssSection.CssSection

-- | A style provider for CSS.
--   
--   It is able to parse CSS-like input in order to style widgets.
--   
--   An application can make GTK parse a specific CSS style sheet by
--   calling cssProviderLoadFromFile or
--   cssProviderLoadFromResource and adding the provider with
--   styleContextAddProvider or
--   styleContextAddProviderForDisplay.
--   
--   In addition, certain files will be read when GTK is initialized.
--   First, the file $XDG_CONFIG_HOME/gtk-4.0/gtk.css is loaded if
--   it exists. Then, GTK loads the first existing file among
--   XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk-VARIANT.css,
--   $HOME/.themes/THEME/gtk-VERSION/gtk-VARIANT.css,
--   $XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk-VARIANT.css and
--   DATADIR/share/themes/THEME/gtk-VERSION/gtk-VARIANT.css, where
--   THEME is the name of the current theme (see the
--   Settings:gtkThemeName setting), VARIANT is the variant
--   to load (see the Settings:gtkApplicationPreferDarkTheme
--   setting), DATADIR is the prefix configured when GTK was
--   compiled (unless overridden by the GTK_DATA_PREFIX
--   environment variable), and VERSION is the GTK version number.
--   If no file is found for the current version, GTK tries older versions
--   all the way back to 4.0.
--   
--   To track errors while loading CSS, connect to the
--   CssProvider::parsingError signal.
module GI.Gtk.Objects.CssProvider

-- | Memory-managed wrapper type.
newtype CssProvider
CssProvider :: ManagedPtr CssProvider -> CssProvider

-- | Type class for types which can be safely cast to CssProvider,
--   for instance with toCssProvider.
class (GObject o, IsDescendantOf CssProvider o) => IsCssProvider o

-- | Cast to CssProvider, for types for which this is known to be
--   safe. For general casts, use castTo.
toCssProvider :: (MonadIO m, IsCssProvider o) => o -> m CssProvider

-- | Loads data into cssProvider.
--   
--   This clears any previously loaded information.
--   
--   Since: 4.12
cssProviderLoadFromBytes :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Bytes -> m ()

-- | Loads data into cssProvider.
--   
--   This clears any previously loaded information.

-- | Deprecated: (Since version 4.12)Use
--   cssProviderLoadFromStringor cssProviderLoadFromBytes
--   instead
cssProviderLoadFromData :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Text -> Int64 -> m ()

-- | Loads the data contained in file into
--   cssProvider.
--   
--   This clears any previously loaded information.
cssProviderLoadFromFile :: (HasCallStack, MonadIO m, IsCssProvider a, IsFile b) => a -> b -> m ()

-- | Loads the data contained in path into
--   cssProvider.
--   
--   This clears any previously loaded information.
cssProviderLoadFromPath :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> [Char] -> m ()

-- | Loads the data contained in the resource at
--   resourcePath into the cssProvider.
--   
--   This clears any previously loaded information.
cssProviderLoadFromResource :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Text -> m ()

-- | Loads string into cssProvider.
--   
--   This clears any previously loaded information.
--   
--   Since: 4.12
cssProviderLoadFromString :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Text -> m ()

-- | Loads a theme from the usual theme paths.
--   
--   The actual process of finding the theme might change between releases,
--   but it is guaranteed that this function uses the same mechanism to
--   load the theme that GTK uses for loading its own theme.

-- | Deprecated: (Since version 4.20)Using any of the other theme
--   loaders, combine with media queries.
cssProviderLoadNamed :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> Text -> Maybe Text -> m ()

-- | Returns a newly created GtkCssProvider.
cssProviderNew :: (HasCallStack, MonadIO m) => m CssProvider

-- | Converts the provider into a string representation in
--   CSS format.
--   
--   Using cssProviderLoadFromString with the return value from this
--   function on a new provider created with cssProviderNew will
--   basically create a duplicate of this provider.
cssProviderToString :: (HasCallStack, MonadIO m, IsCssProvider a) => a -> m Text

-- | Construct a GValueConstruct with valid value for the
--   “prefers-color-scheme” property. This is rarely needed
--   directly, but it is used by new.
constructCssProviderPrefersColorScheme :: (IsCssProvider o, MonadIO m) => InterfaceColorScheme -> m (GValueConstruct o)

-- | Get the value of the “prefers-color-scheme” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cssProvider #prefersColorScheme
--   
getCssProviderPrefersColorScheme :: (MonadIO m, IsCssProvider o) => o -> m InterfaceColorScheme

-- | Set the value of the “prefers-color-scheme” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cssProvider [ #prefersColorScheme := value ]
--   
setCssProviderPrefersColorScheme :: (MonadIO m, IsCssProvider o) => o -> InterfaceColorScheme -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “prefers-contrast” property. This is rarely needed directly,
--   but it is used by new.
constructCssProviderPrefersContrast :: (IsCssProvider o, MonadIO m) => InterfaceContrast -> m (GValueConstruct o)

-- | Get the value of the “prefers-contrast” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cssProvider #prefersContrast
--   
getCssProviderPrefersContrast :: (MonadIO m, IsCssProvider o) => o -> m InterfaceContrast

-- | Set the value of the “prefers-contrast” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cssProvider [ #prefersContrast := value ]
--   
setCssProviderPrefersContrast :: (MonadIO m, IsCssProvider o) => o -> InterfaceContrast -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “prefers-reduced-motion” property. This is rarely needed
--   directly, but it is used by new.
constructCssProviderPrefersReducedMotion :: (IsCssProvider o, MonadIO m) => ReducedMotion -> m (GValueConstruct o)

-- | Get the value of the “prefers-reduced-motion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cssProvider #prefersReducedMotion
--   
getCssProviderPrefersReducedMotion :: (MonadIO m, IsCssProvider o) => o -> m ReducedMotion

-- | Set the value of the “prefers-reduced-motion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cssProvider [ #prefersReducedMotion := value ]
--   
setCssProviderPrefersReducedMotion :: (MonadIO m, IsCssProvider o) => o -> ReducedMotion -> m ()

-- | Signals that a parsing error occurred.
--   
--   The expected error values are in the
--   [errorgtk.CssParserError] and CssParserWarning
--   enumerations.
--   
--   The path, line and
--   position describe the actual location of the error as
--   accurately as possible.
--   
--   Parsing errors are never fatal, so the parsing will resume after the
--   error. Errors may however cause parts of the given data or even all of
--   it to not be parsed at all. So it is a useful idea to check that the
--   parsing succeeds by connecting to this signal.
--   
--   Errors in the CssParserWarning enumeration should not be
--   treated as fatal errors.
--   
--   Note that this signal may be emitted at any time as the css provider
--   may opt to defer parsing parts or all of the input to a later time
--   than when a loading function was called.
type CssProviderParsingErrorCallback = CssSection -> GError -> IO ()

-- | Connect a signal handler for the parsingError signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cssProvider #parsingError callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> ((?self :: a) => CssProviderParsingErrorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the parsingError signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cssProvider #parsingError callback
--   
onCssProviderParsingError :: (IsCssProvider a, MonadIO m) => a -> ((?self :: a) => CssProviderParsingErrorCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CssProvider.CssProvider
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CssProvider.CssProvider
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CssProvider.CssProvider
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CssProvider.CssProvider o) => GI.Gtk.Objects.CssProvider.IsCssProvider o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CssProvider.CssProvider)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CssProvider.CssProvider
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CssProvider.CssProvider

-- | A CSS style change.
module GI.Gtk.Structs.CssStyleChange

-- | Memory-managed wrapper type.
newtype CssStyleChange
CssStyleChange :: ManagedPtr CssStyleChange -> CssStyleChange
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.CssStyleChange.CssStyleChange
instance GHC.Classes.Eq GI.Gtk.Structs.CssStyleChange.CssStyleChange
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.CssStyleChange.CssStyleChange

-- | An opaque structure representing a watched GtkExpression.
--   
--   The contents of GtkExpressionWatch should only be accessed
--   through the provided API.
module GI.Gtk.Structs.ExpressionWatch

-- | Memory-managed wrapper type.
newtype ExpressionWatch
ExpressionWatch :: ManagedPtr ExpressionWatch -> ExpressionWatch

-- | Evaluates the watched expression and on success stores the result in
--   value.
--   
--   This is equivalent to calling expressionEvaluate with the
--   expression and this pointer originally used to create watch.
expressionWatchEvaluate :: (HasCallStack, MonadIO m) => ExpressionWatch -> GValue -> m Bool

-- | Acquires a reference on the given GtkExpressionWatch.
expressionWatchRef :: (HasCallStack, MonadIO m) => ExpressionWatch -> m ExpressionWatch

-- | Releases a reference on the given GtkExpressionWatch.
--   
--   If the reference was the last, the resources associated to
--   self are freed.
expressionWatchUnref :: (HasCallStack, MonadIO m) => ExpressionWatch -> m ()

-- | Stops watching an expression.
--   
--   See expressionWatch for how the watch was established.
expressionWatchUnwatch :: (HasCallStack, MonadIO m) => ExpressionWatch -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.ExpressionWatch.ExpressionWatch
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.ExpressionWatch.ExpressionWatch
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.ExpressionWatch.ExpressionWatch
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.ExpressionWatch.ExpressionWatch)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.ExpressionWatch.ExpressionWatch
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.ExpressionWatch.ExpressionWatch

-- | Struct defining a pad action entry.
module GI.Gtk.Structs.PadActionEntry

-- | Memory-managed wrapper type.
newtype PadActionEntry
PadActionEntry :: ManagedPtr PadActionEntry -> PadActionEntry

-- | Construct a PadActionEntry struct initialized to zero.
newZeroPadActionEntry :: MonadIO m => m PadActionEntry

-- | Set the value of the “action_name” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #actionName
--   
clearPadActionEntryActionName :: MonadIO m => PadActionEntry -> m ()

-- | Get the value of the “action_name” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get padActionEntry #actionName
--   
getPadActionEntryActionName :: MonadIO m => PadActionEntry -> m (Maybe Text)

-- | Set the value of the “action_name” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set padActionEntry [ #actionName := value ]
--   
setPadActionEntryActionName :: MonadIO m => PadActionEntry -> CString -> m ()

-- | Get the value of the “index” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get padActionEntry #index
--   
getPadActionEntryIndex :: MonadIO m => PadActionEntry -> m Int32

-- | Set the value of the “index” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set padActionEntry [ #index := value ]
--   
setPadActionEntryIndex :: MonadIO m => PadActionEntry -> Int32 -> m ()

-- | Set the value of the “label” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #label
--   
clearPadActionEntryLabel :: MonadIO m => PadActionEntry -> m ()

-- | Get the value of the “label” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get padActionEntry #label
--   
getPadActionEntryLabel :: MonadIO m => PadActionEntry -> m (Maybe Text)

-- | Set the value of the “label” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set padActionEntry [ #label := value ]
--   
setPadActionEntryLabel :: MonadIO m => PadActionEntry -> CString -> m ()

-- | Get the value of the “mode” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get padActionEntry #mode
--   
getPadActionEntryMode :: MonadIO m => PadActionEntry -> m Int32

-- | Set the value of the “mode” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set padActionEntry [ #mode := value ]
--   
setPadActionEntryMode :: MonadIO m => PadActionEntry -> Int32 -> m ()

-- | Get the value of the “type” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get padActionEntry #type
--   
getPadActionEntryType :: MonadIO m => PadActionEntry -> m PadActionType

-- | Set the value of the “type” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set padActionEntry [ #type := value ]
--   
setPadActionEntryType :: MonadIO m => PadActionEntry -> PadActionType -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.PadActionEntry.PadActionEntry
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.PadActionEntry.PadActionEntry
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.PadActionEntry.PadActionEntry tag
instance GHC.Classes.Eq GI.Gtk.Structs.PadActionEntry.PadActionEntry
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.PadActionEntry.PadActionEntry

-- | A range of pages to print.
--   
--   See also printSettingsSetPageRanges.
module GI.Gtk.Structs.PageRange

-- | Memory-managed wrapper type.
newtype PageRange
PageRange :: ManagedPtr PageRange -> PageRange

-- | Construct a PageRange struct initialized to zero.
newZeroPageRange :: MonadIO m => m PageRange

-- | Get the value of the “end” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get pageRange #end
--   
getPageRangeEnd :: MonadIO m => PageRange -> m Int32

-- | Set the value of the “end” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set pageRange [ #end := value ]
--   
setPageRangeEnd :: MonadIO m => PageRange -> Int32 -> m ()

-- | Get the value of the “start” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get pageRange #start
--   
getPageRangeStart :: MonadIO m => PageRange -> m Int32

-- | Set the value of the “start” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set pageRange [ #start := value ]
--   
setPageRangeStart :: MonadIO m => PageRange -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.PageRange.PageRange
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.PageRange.PageRange
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.PageRange.PageRange tag
instance GHC.Classes.Eq GI.Gtk.Structs.PageRange.PageRange
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.PageRange.PageRange

-- | GtkPaperSize handles paper sizes.
--   
--   It uses the standard called PWG 5101.1-2002 PWG: Standard for Media
--   Standardized Names to name the paper sizes (and to get the data
--   for the page sizes). In addition to standard paper sizes,
--   GtkPaperSize allows to construct custom paper sizes with
--   arbitrary dimensions.
--   
--   The GtkPaperSize object stores not only the dimensions (width
--   and height) of a paper size and its name, it also provides default
--   print margins.
module GI.Gtk.Structs.PaperSize

-- | Memory-managed wrapper type.
newtype PaperSize
PaperSize :: ManagedPtr PaperSize -> PaperSize

-- | Copies an existing GtkPaperSize.
paperSizeCopy :: (HasCallStack, MonadIO m) => PaperSize -> m PaperSize

-- | Free the given GtkPaperSize object.
paperSizeFree :: (HasCallStack, MonadIO m) => PaperSize -> m ()

-- | Returns the name of the default paper size, which depends on the
--   current locale.
paperSizeGetDefault :: (HasCallStack, MonadIO m) => m Text

-- | Gets the default bottom margin for the GtkPaperSize.
paperSizeGetDefaultBottomMargin :: (HasCallStack, MonadIO m) => PaperSize -> Unit -> m Double

-- | Gets the default left margin for the GtkPaperSize.
paperSizeGetDefaultLeftMargin :: (HasCallStack, MonadIO m) => PaperSize -> Unit -> m Double

-- | Gets the default right margin for the GtkPaperSize.
paperSizeGetDefaultRightMargin :: (HasCallStack, MonadIO m) => PaperSize -> Unit -> m Double

-- | Gets the default top margin for the GtkPaperSize.
paperSizeGetDefaultTopMargin :: (HasCallStack, MonadIO m) => PaperSize -> Unit -> m Double

-- | Gets the human-readable name of the GtkPaperSize.
paperSizeGetDisplayName :: (HasCallStack, MonadIO m) => PaperSize -> m Text

-- | Gets the paper height of the GtkPaperSize, in units of
--   unit.
paperSizeGetHeight :: (HasCallStack, MonadIO m) => PaperSize -> Unit -> m Double

-- | Gets the name of the GtkPaperSize.
paperSizeGetName :: (HasCallStack, MonadIO m) => PaperSize -> m Text

-- | Creates a list of known paper sizes.
paperSizeGetPaperSizes :: (HasCallStack, MonadIO m) => Bool -> m [PaperSize]

-- | Gets the PPD name of the GtkPaperSize, which may be
--   Nothing.
paperSizeGetPpdName :: (HasCallStack, MonadIO m) => PaperSize -> m Text

-- | Gets the paper width of the GtkPaperSize, in units of
--   unit.
paperSizeGetWidth :: (HasCallStack, MonadIO m) => PaperSize -> Unit -> m Double

-- | Returns True if size is not a standard paper
--   size.
paperSizeIsCustom :: (HasCallStack, MonadIO m) => PaperSize -> m Bool

-- | Compares two GtkPaperSize objects.
paperSizeIsEqual :: (HasCallStack, MonadIO m) => PaperSize -> PaperSize -> m Bool

-- | Returns True if size is an IPP standard paper
--   size.
paperSizeIsIpp :: (HasCallStack, MonadIO m) => PaperSize -> m Bool

-- | Creates a new GtkPaperSize object by parsing a PWG
--   5101.1-2002 paper name.
--   
--   If name is Nothing, the default paper size is
--   returned, see paperSizeGetDefault.
paperSizeNew :: (HasCallStack, MonadIO m) => Maybe Text -> m PaperSize

-- | Creates a new GtkPaperSize object with the given parameters.
paperSizeNewCustom :: (HasCallStack, MonadIO m) => Text -> Text -> Double -> Double -> Unit -> m PaperSize

-- | Deserialize a paper size from a GVariant.
--   
--   The `GVariant must be in the format produced by
--   paperSizeToGvariant.
paperSizeNewFromGvariant :: (HasCallStack, MonadIO m) => GVariant -> m PaperSize

-- | Creates a new GtkPaperSize object by using IPP information.
--   
--   If ippName is not a recognized paper name,
--   width and height are used to construct
--   a custom GtkPaperSize object.
paperSizeNewFromIpp :: (HasCallStack, MonadIO m) => Text -> Double -> Double -> m PaperSize

-- | Reads a paper size from the group groupName in the key
--   file keyFile.
paperSizeNewFromKeyFile :: (HasCallStack, MonadIO m) => KeyFile -> Maybe Text -> m PaperSize

-- | Creates a new GtkPaperSize object by using PPD information.
--   
--   If ppdName is not a recognized PPD paper name,
--   ppdDisplayName, width and
--   height are used to construct a custom
--   GtkPaperSize object.
paperSizeNewFromPpd :: (HasCallStack, MonadIO m) => Text -> Text -> Double -> Double -> m PaperSize

-- | Changes the dimensions of a size to
--   width x height.
paperSizeSetSize :: (HasCallStack, MonadIO m) => PaperSize -> Double -> Double -> Unit -> m ()

-- | Serialize a paper size to an a{sv} variant.
paperSizeToGvariant :: (HasCallStack, MonadIO m) => PaperSize -> m GVariant

-- | This function adds the paper size from size to
--   keyFile.
paperSizeToKeyFile :: (HasCallStack, MonadIO m) => PaperSize -> KeyFile -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.PaperSize.PaperSize
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.PaperSize.PaperSize
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.PaperSize.PaperSize
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.PaperSize.PaperSize)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.PaperSize.PaperSize
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.PaperSize.PaperSize

-- | Encapsulates context information that is required when drawing pages
--   for printing.
--   
--   This includes the cairo context and important parameters like page
--   size and resolution. It also lets you easily create Layout and
--   Context objects that match the font metrics of the cairo
--   surface.
--   
--   GtkPrintContext objects get passed to the
--   PrintOperation::beginPrint, PrintOperation::endPrint,
--   PrintOperation::requestPageSetup and
--   PrintOperation::drawPage signals on the PrintOperation
--   object.
--   
--   
Using GtkPrintContext in a drawPage callback
--   
--   
c code
--   
--   
--   static void
--   draw_page (GtkPrintOperation *operation,
--              GtkPrintContext   *context,
--              int                page_nr)
--   {
--     cairo_t *cr;
--     PangoLayout *layout;
--     PangoFontDescription *desc;
--   
--     cr = gtk_print_context_get_cairo_context (context);
--   
--     // Draw a red rectangle, as wide as the paper (inside the margins)
--     cairo_set_source_rgb (cr, 1.0, 0, 0);
--     cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);
--   
--     cairo_fill (cr);
--   
--     // Draw some lines
--     cairo_move_to (cr, 20, 10);
--     cairo_line_to (cr, 40, 20);
--     cairo_arc (cr, 60, 60, 20, 0, M_PI);
--     cairo_line_to (cr, 80, 20);
--   
--     cairo_set_source_rgb (cr, 0, 0, 0);
--     cairo_set_line_width (cr, 5);
--     cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
--     cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
--   
--     cairo_stroke (cr);
--   
--     // Draw some text
--     layout = gtk_print_context_create_pango_layout (context);
--     pango_layout_set_text (layout, "Hello World! Printing is easy", -1);
--     desc = pango_font_description_from_string ("sans 28");
--     pango_layout_set_font_description (layout, desc);
--     pango_font_description_free (desc);
--   
--     cairo_move_to (cr, 30, 20);
--     pango_cairo_layout_path (cr, layout);
--   
--     // Font Outline
--     cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
--     cairo_set_line_width (cr, 0.5);
--     cairo_stroke_preserve (cr);
--   
--     // Font Fill
--     cairo_set_source_rgb (cr, 0, 0.0, 1.0);
--     cairo_fill (cr);
--   
--     g_object_unref (layout);
--   }
--   
module GI.Gtk.Objects.PrintContext

-- | Memory-managed wrapper type.
newtype PrintContext
PrintContext :: ManagedPtr PrintContext -> PrintContext

-- | Type class for types which can be safely cast to PrintContext,
--   for instance with toPrintContext.
class (GObject o, IsDescendantOf PrintContext o) => IsPrintContext o

-- | Cast to PrintContext, for types for which this is known to be
--   safe. For general casts, use castTo.
toPrintContext :: (MonadIO m, IsPrintContext o) => o -> m PrintContext

-- | Creates a new PangoContext that can be used with the
--   GtkPrintContext.
printContextCreatePangoContext :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Context

-- | Creates a new PangoLayout that is suitable for use with the
--   GtkPrintContext.
printContextCreatePangoLayout :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Layout

-- | Obtains the cairo context that is associated with the
--   GtkPrintContext.
printContextGetCairoContext :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Context

-- | Obtains the horizontal resolution of the GtkPrintContext, in
--   dots per inch.
printContextGetDpiX :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double

-- | Obtains the vertical resolution of the GtkPrintContext, in
--   dots per inch.
printContextGetDpiY :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double

-- | Obtains the hardware printer margins of the GtkPrintContext,
--   in units.
printContextGetHardMargins :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m (Bool, Double, Double, Double, Double)

-- | Obtains the height of the GtkPrintContext, in pixels.
printContextGetHeight :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double

-- | Obtains the GtkPageSetup that determines the page dimensions
--   of the GtkPrintContext.
printContextGetPageSetup :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m PageSetup

-- | Returns a PangoFontMap that is suitable for use with the
--   GtkPrintContext.
printContextGetPangoFontmap :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m FontMap

-- | Obtains the width of the GtkPrintContext, in pixels.
printContextGetWidth :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double

-- | Sets a new cairo context on a print context.
--   
--   This function is intended to be used when implementing an internal
--   print preview, it is not needed for printing, since GTK itself creates
--   a suitable cairo context in that case.
printContextSetCairoContext :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> Context -> Double -> Double -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PrintContext.PrintContext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PrintContext.PrintContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PrintContext.PrintContext
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PrintContext.PrintContext)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PrintContext.PrintContext o) => GI.Gtk.Objects.PrintContext.IsPrintContext o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PrintContext.PrintContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PrintContext.PrintContext

-- | Stores page size, orientation and margins for printing.
--   
--   The idea is that you can get one of these from the page setup dialog
--   and then pass it to the GtkPrintOperation when printing. The
--   benefit of splitting this out of the GtkPrintSettings is that
--   these affect the actual layout of the page, and thus need to be set
--   long before user prints.
--   
--   
Margins
--   
--   The margins specified in this object are the “print margins”, i.e. the
--   parts of the page that the printer cannot print on. These are
--   different from the layout margins that a word processor uses; they are
--   typically used to determine the minimal size for the layout margins.
--   
--   To obtain a GtkPageSetup use pageSetupNew to get the
--   defaults, or use printRunPageSetupDialog to show the page setup
--   dialog and receive the resulting page setup.
--   
--   
A page setup dialog
--   
--   
c code
--   
--   
--   static GtkPrintSettings *settings = NULL;
--   static GtkPageSetup *page_setup = NULL;
--   
--   static void
--   do_page_setup (void)
--   {
--     GtkPageSetup *new_page_setup;
--   
--     if (settings == NULL)
--       settings = gtk_print_settings_new ();
--   
--     new_page_setup = gtk_print_run_page_setup_dialog (GTK_WINDOW (main_window),
--                                                       page_setup, settings);
--   
--     if (page_setup)
--       g_object_unref (page_setup);
--   
--     page_setup = new_page_setup;
--   }
--   
module GI.Gtk.Objects.PageSetup

-- | Memory-managed wrapper type.
newtype PageSetup
PageSetup :: ManagedPtr PageSetup -> PageSetup

-- | Type class for types which can be safely cast to PageSetup, for
--   instance with toPageSetup.
class (GObject o, IsDescendantOf PageSetup o) => IsPageSetup o

-- | Cast to PageSetup, for types for which this is known to be
--   safe. For general casts, use castTo.
toPageSetup :: (MonadIO m, IsPageSetup o) => o -> m PageSetup

-- | Copies a GtkPageSetup.
pageSetupCopy :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> m PageSetup

-- | Gets the bottom margin in units of unit.
pageSetupGetBottomMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Gets the left margin in units of unit.
pageSetupGetLeftMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Gets the page orientation of the GtkPageSetup.
pageSetupGetOrientation :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> m PageOrientation

-- | Returns the page height in units of unit.
--   
--   Note that this function takes orientation and margins into
--   consideration. See pageSetupGetPaperHeight.
pageSetupGetPageHeight :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Returns the page width in units of unit.
--   
--   Note that this function takes orientation and margins into
--   consideration. See pageSetupGetPaperWidth.
pageSetupGetPageWidth :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Returns the paper height in units of unit.
--   
--   Note that this function takes orientation, but not margins into
--   consideration. See pageSetupGetPageHeight.
pageSetupGetPaperHeight :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Gets the paper size of the GtkPageSetup.
pageSetupGetPaperSize :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> m PaperSize

-- | Returns the paper width in units of unit.
--   
--   Note that this function takes orientation, but not margins into
--   consideration. See pageSetupGetPageWidth.
pageSetupGetPaperWidth :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Gets the right margin in units of unit.
pageSetupGetRightMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Gets the top margin in units of unit.
pageSetupGetTopMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Unit -> m Double

-- | Reads the page setup from the file fileName.
--   
--   See pageSetupToFile.
pageSetupLoadFile :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> [Char] -> m ()

-- | Reads the page setup from the group groupName in the
--   key file keyFile.
pageSetupLoadKeyFile :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> KeyFile -> Maybe Text -> m ()

-- | Creates a new GtkPageSetup.
pageSetupNew :: (HasCallStack, MonadIO m) => m PageSetup

-- | Reads the page setup from the file fileName.
--   
--   Returns a new GtkPageSetup object with the restored page
--   setup, or Nothing if an error occurred. See
--   pageSetupToFile.
pageSetupNewFromFile :: (HasCallStack, MonadIO m) => [Char] -> m PageSetup

-- | Desrialize a page setup from an a{sv} variant.
--   
--   The variant must be in the format produced by
--   pageSetupToGvariant.
pageSetupNewFromGvariant :: (HasCallStack, MonadIO m) => GVariant -> m PageSetup

-- | Reads the page setup from the group groupName in the
--   key file keyFile.
--   
--   Returns a new GtkPageSetup object with the restored page
--   setup, or Nothing if an error occurred.
pageSetupNewFromKeyFile :: (HasCallStack, MonadIO m) => KeyFile -> Maybe Text -> m PageSetup

-- | Sets the bottom margin of the GtkPageSetup.
pageSetupSetBottomMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Double -> Unit -> m ()

-- | Sets the left margin of the GtkPageSetup.
pageSetupSetLeftMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Double -> Unit -> m ()

-- | Sets the page orientation of the GtkPageSetup.
pageSetupSetOrientation :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> PageOrientation -> m ()

-- | Sets the paper size of the GtkPageSetup without changing the
--   margins.
--   
--   See pageSetupSetPaperSizeAndDefaultMargins.
pageSetupSetPaperSize :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> PaperSize -> m ()

-- | Sets the paper size of the GtkPageSetup and modifies the
--   margins according to the new paper size.
pageSetupSetPaperSizeAndDefaultMargins :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> PaperSize -> m ()

-- | Sets the right margin of the GtkPageSetup.
pageSetupSetRightMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Double -> Unit -> m ()

-- | Sets the top margin of the GtkPageSetup.
pageSetupSetTopMargin :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> Double -> Unit -> m ()

-- | This function saves the information from setup to
--   fileName.
pageSetupToFile :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> [Char] -> m ()

-- | Serialize page setup to an a{sv} variant.
pageSetupToGvariant :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> m GVariant

-- | This function adds the page setup from setup to
--   keyFile.
pageSetupToKeyFile :: (HasCallStack, MonadIO m, IsPageSetup a) => a -> KeyFile -> Maybe Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PageSetup.PageSetup
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PageSetup.PageSetup
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PageSetup.PageSetup
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PageSetup.PageSetup)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PageSetup.PageSetup o) => GI.Gtk.Objects.PageSetup.IsPageSetup o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PageSetup.PageSetup
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PageSetup.PageSetup

-- | The interface that is used to implement print preview.
--   
--   A GtkPrintOperationPreview object is passed to the
--   PrintOperation::preview signal by PrintOperation.
module GI.Gtk.Interfaces.PrintOperationPreview

-- | Memory-managed wrapper type.
newtype PrintOperationPreview
PrintOperationPreview :: ManagedPtr PrintOperationPreview -> PrintOperationPreview

-- | Type class for types which can be safely cast to
--   PrintOperationPreview, for instance with
--   toPrintOperationPreview.
class (GObject o, IsDescendantOf PrintOperationPreview o) => IsPrintOperationPreview o

-- | Cast to PrintOperationPreview, for types for which this is
--   known to be safe. For general casts, use castTo.
toPrintOperationPreview :: (MonadIO m, IsPrintOperationPreview o) => o -> m PrintOperationPreview

-- | Ends a preview.
--   
--   This function must be called to finish a custom print preview.
printOperationPreviewEndPreview :: (HasCallStack, MonadIO m, IsPrintOperationPreview a) => a -> m ()

-- | Returns whether the given page is included in the set of pages that
--   have been selected for printing.
printOperationPreviewIsSelected :: (HasCallStack, MonadIO m, IsPrintOperationPreview a) => a -> Int32 -> m Bool

-- | Renders a page to the preview.
--   
--   This is using the print context that was passed to the
--   PrintOperation::preview handler together with
--   preview.
--   
--   A custom print preview should use this function to render the
--   currently selected page.
--   
--   Note that this function requires a suitable cairo context to be
--   associated with the print context.
printOperationPreviewRenderPage :: (HasCallStack, MonadIO m, IsPrintOperationPreview a) => a -> Int32 -> m ()

-- | Emitted once for each page that gets rendered to the preview.
--   
--   A handler for this signal should update the context
--   according to pageSetup and set up a suitable cairo
--   context, using printContextSetCairoContext.
type PrintOperationPreviewGotPageSizeCallback = PrintContext -> PageSetup -> IO ()

-- | Connect a signal handler for the gotPageSize signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperationPreview #gotPageSize callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationPreviewGotPageSize :: (IsPrintOperationPreview a, MonadIO m) => a -> ((?self :: a) => PrintOperationPreviewGotPageSizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the gotPageSize signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on printOperationPreview #gotPageSize callback
--   
onPrintOperationPreviewGotPageSize :: (IsPrintOperationPreview a, MonadIO m) => a -> ((?self :: a) => PrintOperationPreviewGotPageSizeCallback) -> m SignalHandlerId

-- | The ready signal gets emitted once per preview operation,
--   before the first page is rendered.
--   
--   A handler for this signal can be used for setup tasks.
type PrintOperationPreviewReadyCallback = PrintContext -> IO ()

-- | Connect a signal handler for the ready signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperationPreview #ready callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationPreviewReady :: (IsPrintOperationPreview a, MonadIO m) => a -> ((?self :: a) => PrintOperationPreviewReadyCallback) -> m SignalHandlerId

-- | Connect a signal handler for the ready signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on printOperationPreview #ready callback
--   
onPrintOperationPreviewReady :: (IsPrintOperationPreview a, MonadIO m) => a -> ((?self :: a) => PrintOperationPreviewReadyCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview o) => GI.Gtk.Interfaces.PrintOperationPreview.IsPrintOperationPreview o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.PrintOperationPreview.PrintOperationPreview

-- | A print backend.
module GI.Gtk.Structs.PrintBackend

-- | Memory-managed wrapper type.
newtype PrintBackend
PrintBackend :: ManagedPtr PrintBackend -> PrintBackend
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.PrintBackend.PrintBackend
instance GHC.Classes.Eq GI.Gtk.Structs.PrintBackend.PrintBackend
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.PrintBackend.PrintBackend

-- | Represents a printer.
--   
--   You only need to deal directly with printers if you use the
--   non-portable PrintUnixDialog API.
--   
--   A GtkPrinter allows to get status information about the
--   printer, such as its description, its location, the number of queued
--   jobs, etc. Most importantly, a GtkPrinter object can be used
--   to create a PrintJob object, which lets you print to the
--   printer.
module GI.Gtk.Objects.Printer

-- | Memory-managed wrapper type.
newtype Printer
Printer :: ManagedPtr Printer -> Printer

-- | Type class for types which can be safely cast to Printer, for
--   instance with toPrinter.
class (GObject o, IsDescendantOf Printer o) => IsPrinter o

-- | Cast to Printer, for types for which this is known to be safe.
--   For general casts, use castTo.
toPrinter :: (MonadIO m, IsPrinter o) => o -> m Printer

-- | Returns whether the printer accepts input in PDF format.
printerAcceptsPdf :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Returns whether the printer accepts input in PostScript format.
printerAcceptsPs :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Compares two printers.
printerCompare :: (HasCallStack, MonadIO m, IsPrinter a, IsPrinter b) => a -> b -> m Int32

-- | Returns the backend of the printer.
printerGetBackend :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m PrintBackend

-- | Returns the printer’s capabilities.
--   
--   This is useful when you’re using GtkPrintUnixDialog’s
--   manual-capabilities setting and need to know which settings the
--   printer can handle and which you must handle yourself.
--   
--   This will return 0 unless the printer’s details are available, see
--   printerHasDetails and printerRequestDetails.
printerGetCapabilities :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m [PrintCapabilities]

-- | Returns default page size of printer.
printerGetDefaultPageSize :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m PageSetup

-- | Gets the description of the printer.
printerGetDescription :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Text

-- | Retrieve the hard margins of printer.
--   
--   These are the margins that define the area at the borders of the paper
--   that the printer cannot print to.
--   
--   Note: This will not succeed unless the printer’s details are
--   available, see printerHasDetails and
--   printerRequestDetails.
printerGetHardMargins :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m (Bool, Double, Double, Double, Double)

-- | Retrieve the hard margins of printer for
--   paperSize.
--   
--   These are the margins that define the area at the borders of the paper
--   that the printer cannot print to.
--   
--   Note: This will not succeed unless the printer’s details are
--   available, see printerHasDetails and
--   printerRequestDetails.
printerGetHardMarginsForPaperSize :: (HasCallStack, MonadIO m, IsPrinter a) => a -> PaperSize -> m (Bool, Double, Double, Double, Double)

-- | Gets the name of the icon to use for the printer.
printerGetIconName :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Text

-- | Gets the number of jobs currently queued on the printer.
printerGetJobCount :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Int32

-- | Returns a description of the location of the printer.
printerGetLocation :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Text

-- | Returns the name of the printer.
printerGetName :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Text

-- | Returns the state message describing the current state of the printer.
printerGetStateMessage :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Text

-- | Returns whether the printer details are available.
printerHasDetails :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Returns whether the printer is accepting jobs
printerIsAcceptingJobs :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Returns whether the printer is currently active (i.e. accepts new
--   jobs).
printerIsActive :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Returns whether the printer is the default printer.
printerIsDefault :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Returns whether the printer is currently paused.
--   
--   A paused printer still accepts jobs, but it is not printing them.
printerIsPaused :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Returns whether the printer is virtual (i.e. does not represent actual
--   printer hardware, but something like a CUPS class).
printerIsVirtual :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m Bool

-- | Lists all the paper sizes printer supports.
--   
--   This will return and empty list unless the printer’s details are
--   available, see printerHasDetails and
--   printerRequestDetails.
printerListPapers :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m [PageSetup]

-- | Creates a new GtkPrinter.
printerNew :: (HasCallStack, MonadIO m) => Text -> PrintBackend -> Bool -> m Printer

-- | Requests the printer details.
--   
--   When the details are available, the Printer::detailsAcquired
--   signal will be emitted on printer.
printerRequestDetails :: (HasCallStack, MonadIO m, IsPrinter a) => a -> m ()

-- | Get the value of the “accepting-jobs” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #acceptingJobs
--   
getPrinterAcceptingJobs :: (MonadIO m, IsPrinter o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “accepts-pdf” property. This is rarely needed directly, but
--   it is used by new.
constructPrinterAcceptsPdf :: (IsPrinter o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “accepts-pdf” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #acceptsPdf
--   
getPrinterAcceptsPdf :: (MonadIO m, IsPrinter o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “accepts-ps” property. This is rarely needed directly, but it
--   is used by new.
constructPrinterAcceptsPs :: (IsPrinter o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “accepts-ps” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #acceptsPs
--   
getPrinterAcceptsPs :: (MonadIO m, IsPrinter o) => o -> m Bool

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #iconName
--   
getPrinterIconName :: (MonadIO m, IsPrinter o) => o -> m Text

-- | Construct a GValueConstruct with valid value for the
--   “is-virtual” property. This is rarely needed directly, but it
--   is used by new.
constructPrinterIsVirtual :: (IsPrinter o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “is-virtual” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #isVirtual
--   
getPrinterIsVirtual :: (MonadIO m, IsPrinter o) => o -> m Bool

-- | Get the value of the “job-count” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #jobCount
--   
getPrinterJobCount :: (MonadIO m, IsPrinter o) => o -> m Int32

-- | Get the value of the “location” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #location
--   
getPrinterLocation :: (MonadIO m, IsPrinter o) => o -> m Text

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructPrinterName :: (IsPrinter o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get printer #name
--   
getPrinterName :: (MonadIO m, IsPrinter o) => o -> m Text

-- | Get the value of the “paused” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #paused
--   
getPrinterPaused :: (MonadIO m, IsPrinter o) => o -> m Bool

-- | Get the value of the “state-message” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printer #stateMessage
--   
getPrinterStateMessage :: (MonadIO m, IsPrinter o) => o -> m Text

-- | Emitted in response to a request for detailed information about a
--   printer from the print backend.
--   
--   The success parameter indicates if the information was
--   actually obtained.
type PrinterDetailsAcquiredCallback = Bool -> IO ()

-- | Connect a signal handler for the detailsAcquired signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printer #detailsAcquired callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrinterDetailsAcquired :: (IsPrinter a, MonadIO m) => a -> ((?self :: a) => PrinterDetailsAcquiredCallback) -> m SignalHandlerId

-- | Connect a signal handler for the detailsAcquired signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printer #detailsAcquired callback
--   
onPrinterDetailsAcquired :: (IsPrinter a, MonadIO m) => a -> ((?self :: a) => PrinterDetailsAcquiredCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Printer.Printer
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Printer.Printer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Printer.Printer
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Printer.Printer)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Printer.Printer o) => GI.Gtk.Objects.Printer.IsPrinter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Printer.Printer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Printer.Printer

-- | Meta-data to be passed to recentManagerAddFull when registering
--   a recently used resource.
module GI.Gtk.Structs.RecentData

-- | Memory-managed wrapper type.
newtype RecentData
RecentData :: ManagedPtr RecentData -> RecentData

-- | Construct a RecentData struct initialized to zero.
newZeroRecentData :: MonadIO m => m RecentData

-- | Set the value of the “app_exec” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #appExec
--   
clearRecentDataAppExec :: MonadIO m => RecentData -> m ()

-- | Get the value of the “app_exec” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentData #appExec
--   
getRecentDataAppExec :: MonadIO m => RecentData -> m (Maybe Text)

-- | Set the value of the “app_exec” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set recentData [ #appExec := value ]
--   
setRecentDataAppExec :: MonadIO m => RecentData -> CString -> m ()

-- | Set the value of the “app_name” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #appName
--   
clearRecentDataAppName :: MonadIO m => RecentData -> m ()

-- | Get the value of the “app_name” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentData #appName
--   
getRecentDataAppName :: MonadIO m => RecentData -> m (Maybe Text)

-- | Set the value of the “app_name” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set recentData [ #appName := value ]
--   
setRecentDataAppName :: MonadIO m => RecentData -> CString -> m ()

-- | Set the value of the “description” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #description
--   
clearRecentDataDescription :: MonadIO m => RecentData -> m ()

-- | Get the value of the “description” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentData #description
--   
getRecentDataDescription :: MonadIO m => RecentData -> m (Maybe Text)

-- | Set the value of the “description” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set recentData [ #description := value ]
--   
setRecentDataDescription :: MonadIO m => RecentData -> CString -> m ()

-- | Set the value of the “display_name” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #displayName
--   
clearRecentDataDisplayName :: MonadIO m => RecentData -> m ()

-- | Get the value of the “display_name” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentData #displayName
--   
getRecentDataDisplayName :: MonadIO m => RecentData -> m (Maybe Text)

-- | Set the value of the “display_name” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set recentData [ #displayName := value ]
--   
setRecentDataDisplayName :: MonadIO m => RecentData -> CString -> m ()

-- | Set the value of the “groups” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #groups
--   
clearRecentDataGroups :: MonadIO m => RecentData -> m ()

-- | Get the value of the “groups” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get recentData #groups
--   
getRecentDataGroups :: MonadIO m => RecentData -> m (Maybe [Text])

-- | Set the value of the “groups” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set recentData [ #groups := value ]
--   
setRecentDataGroups :: MonadIO m => RecentData -> Ptr CString -> m ()

-- | Get the value of the “is_private” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentData #isPrivate
--   
getRecentDataIsPrivate :: MonadIO m => RecentData -> m Bool

-- | Set the value of the “is_private” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set recentData [ #isPrivate := value ]
--   
setRecentDataIsPrivate :: MonadIO m => RecentData -> Bool -> m ()

-- | Set the value of the “mime_type” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #mimeType
--   
clearRecentDataMimeType :: MonadIO m => RecentData -> m ()

-- | Get the value of the “mime_type” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentData #mimeType
--   
getRecentDataMimeType :: MonadIO m => RecentData -> m (Maybe Text)

-- | Set the value of the “mime_type” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set recentData [ #mimeType := value ]
--   
setRecentDataMimeType :: MonadIO m => RecentData -> CString -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.RecentData.RecentData
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.RecentData.RecentData
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.RecentData.RecentData tag
instance GHC.Classes.Eq GI.Gtk.Structs.RecentData.RecentData
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.RecentData.RecentData

-- | Contains the metadata associated with an item in the recently used
--   files list.
module GI.Gtk.Structs.RecentInfo

-- | Memory-managed wrapper type.
newtype RecentInfo
RecentInfo :: ManagedPtr RecentInfo -> RecentInfo

-- | Creates a GAppInfo for the specified GtkRecentInfo
--   
--   In case of error, error will be set either with a
--   GTK_RECENT_MANAGER_ERROR or a
--   G_IO_ERROR
recentInfoCreateAppInfo :: (HasCallStack, MonadIO m) => RecentInfo -> Maybe Text -> m (Maybe AppInfo)

-- | Checks whether the resource pointed by info still
--   exists. At the moment this check is done only on resources pointing to
--   local files.
recentInfoExists :: (HasCallStack, MonadIO m) => RecentInfo -> m Bool

-- | Gets the time when the resource was added to the recently used
--   resources list.
recentInfoGetAdded :: (HasCallStack, MonadIO m) => RecentInfo -> m DateTime

-- | Gets the number of days elapsed since the last update of the resource
--   pointed by info.
recentInfoGetAge :: (HasCallStack, MonadIO m) => RecentInfo -> m Int32

-- | Gets the data regarding the application that has registered the
--   resource pointed by info.
--   
--   If the command line contains any escape characters defined inside the
--   storage specification, they will be expanded.
recentInfoGetApplicationInfo :: (HasCallStack, MonadIO m) => RecentInfo -> Text -> m (Bool, Text, Word32, DateTime)

-- | Retrieves the list of applications that have registered this resource.
recentInfoGetApplications :: (HasCallStack, MonadIO m) => RecentInfo -> m ([Text], CSize)

-- | Gets the (short) description of the resource.
recentInfoGetDescription :: (HasCallStack, MonadIO m) => RecentInfo -> m Text

-- | Gets the name of the resource.
--   
--   If none has been defined, the basename of the resource is obtained.
recentInfoGetDisplayName :: (HasCallStack, MonadIO m) => RecentInfo -> m Text

-- | Retrieves the icon associated to the resource MIME type.
recentInfoGetGicon :: (HasCallStack, MonadIO m) => RecentInfo -> m (Maybe Icon)

-- | Returns all groups registered for the recently used item
--   info.
--   
--   The array of returned group names will be Nothing terminated,
--   so length might optionally be Nothing.
recentInfoGetGroups :: (HasCallStack, MonadIO m) => RecentInfo -> m ([Text], CSize)

-- | Gets the MIME type of the resource.
recentInfoGetMimeType :: (HasCallStack, MonadIO m) => RecentInfo -> m Text

-- | Gets the time when the meta-data for the resource was last modified.
recentInfoGetModified :: (HasCallStack, MonadIO m) => RecentInfo -> m DateTime

-- | Gets the value of the “private” flag.
--   
--   Resources in the recently used list that have this flag set to
--   True should only be displayed by the applications that have
--   registered them.
recentInfoGetPrivateHint :: (HasCallStack, MonadIO m) => RecentInfo -> m Bool

-- | Computes a valid UTF-8 string that can be used as the name of the item
--   in a menu or list.
--   
--   For example, calling this function on an item that refers to
--   “file:///foo/bar.txt” will yield “bar.txt”.
recentInfoGetShortName :: (HasCallStack, MonadIO m) => RecentInfo -> m Text

-- | Gets the URI of the resource.
recentInfoGetUri :: (HasCallStack, MonadIO m) => RecentInfo -> m Text

-- | Gets a displayable version of the resource’s URI.
--   
--   If the resource is local, it returns a local path; if the resource is
--   not local, it returns the UTF-8 encoded content of
--   recentInfoGetUri.
recentInfoGetUriDisplay :: (HasCallStack, MonadIO m) => RecentInfo -> m (Maybe Text)

-- | Gets the time when the meta-data for the resource was last visited.
recentInfoGetVisited :: (HasCallStack, MonadIO m) => RecentInfo -> m DateTime

-- | Checks whether an application registered this resource using
--   appName.
recentInfoHasApplication :: (HasCallStack, MonadIO m) => RecentInfo -> Text -> m Bool

-- | Checks whether groupName appears inside the groups
--   registered for the recently used item info.
recentInfoHasGroup :: (HasCallStack, MonadIO m) => RecentInfo -> Text -> m Bool

-- | Checks whether the resource is local or not by looking at the scheme
--   of its URI.
recentInfoIsLocal :: (HasCallStack, MonadIO m) => RecentInfo -> m Bool

-- | Gets the name of the last application that have registered the
--   recently used resource represented by info.
recentInfoLastApplication :: (HasCallStack, MonadIO m) => RecentInfo -> m Text

-- | Checks whether two GtkRecentInfo point to the same resource.
recentInfoMatch :: (HasCallStack, MonadIO m) => RecentInfo -> RecentInfo -> m Bool

-- | Increases the reference count of recentInfo by one.
recentInfoRef :: (HasCallStack, MonadIO m) => RecentInfo -> m RecentInfo

-- | Decreases the reference count of info by one.
--   
--   If the reference count reaches zero, info is
--   deallocated, and the memory freed.
recentInfoUnref :: (HasCallStack, MonadIO m) => RecentInfo -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.RecentInfo.RecentInfo
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.RecentInfo.RecentInfo
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.RecentInfo.RecentInfo
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.RecentInfo.RecentInfo)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.RecentInfo.RecentInfo
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.RecentInfo.RecentInfo

-- | Manages and looks up recently used files.
--   
--   Each recently used file is identified by its URI, and has meta-data
--   associated to it, like the names and command lines of the applications
--   that have registered it, the number of time each application has
--   registered the same file, the mime type of the file and whether the
--   file should be displayed only by the applications that have registered
--   it.
--   
--   The recently used files list is per user.
--   
--   GtkRecentManager acts like a database of all the recently
--   used files. You can create new GtkRecentManager objects, but
--   it is more efficient to use the default manager created by GTK.
--   
--   Adding a new recently used file is as simple as:
--   
--   
c code
--   
--   
--   GtkRecentManager *manager;
--   
--   manager = gtk_recent_manager_get_default ();
--   gtk_recent_manager_add_item (manager, file_uri);
--   
--   
--   The GtkRecentManager will try to gather all the needed
--   information from the file itself through GIO.
--   
--   Looking up the meta-data associated with a recently used file given
--   its URI requires calling recentManagerLookupItem:
--   
--   
c code
--   
--   
--   GtkRecentManager *manager;
--   GtkRecentInfo *info;
--   GError *error = NULL;
--   
--   manager = gtk_recent_manager_get_default ();
--   info = gtk_recent_manager_lookup_item (manager, file_uri, &error);
--   if (error)
--     {
--       g_warning ("Could not find the file: %s", error->message);
--       g_error_free (error);
--     }
--   else
--    {
--      // Use the info object
--      gtk_recent_info_unref (info);
--    }
--   
--   
--   In order to retrieve the list of recently used files, you can use
--   recentManagerGetItems, which returns a list of
--   RecentInfo.
--   
--   Note that the maximum age of the recently used files list is
--   controllable through the Settings:gtkRecentFilesMaxAge
--   property.
module GI.Gtk.Objects.RecentManager

-- | Memory-managed wrapper type.
newtype RecentManager
RecentManager :: ManagedPtr RecentManager -> RecentManager

-- | Type class for types which can be safely cast to RecentManager,
--   for instance with toRecentManager.
class (GObject o, IsDescendantOf RecentManager o) => IsRecentManager o

-- | Cast to RecentManager, for types for which this is known to be
--   safe. For general casts, use castTo.
toRecentManager :: (MonadIO m, IsRecentManager o) => o -> m RecentManager

-- | Adds a new resource, pointed by uri, into the recently
--   used resources list, using the metadata specified inside the
--   GtkRecentData passed in recentData.
--   
--   The passed URI will be used to identify this resource inside the list.
--   
--   In order to register the new recently used resource, metadata about
--   the resource must be passed as well as the URI; the metadata is stored
--   in a GtkRecentData, which must contain the MIME type of the
--   resource pointed by the URI; the name of the application that is
--   registering the item, and a command line to be used when launching the
--   item.
--   
--   Optionally, a GtkRecentData might contain a UTF-8 string to
--   be used when viewing the item instead of the last component of the
--   URI; a short description of the item; whether the item should be
--   considered private - that is, should be displayed only by the
--   applications that have registered it.
recentManagerAddFull :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> Text -> RecentData -> m Bool

-- | Adds a new resource, pointed by uri, into the recently
--   used resources list.
--   
--   This function automatically retrieves some of the needed metadata and
--   setting other metadata to common default values; it then feeds the
--   data to recentManagerAddFull.
--   
--   See recentManagerAddFull if you want to explicitly define the
--   metadata for the resource pointed by uri.
recentManagerAddItem :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> Text -> m Bool

-- | Gets a unique instance of GtkRecentManager that you can share
--   in your application without caring about memory management.
recentManagerGetDefault :: (HasCallStack, MonadIO m) => m RecentManager

-- | Gets the list of recently used resources.
recentManagerGetItems :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> m [RecentInfo]

-- | Checks whether there is a recently used resource registered with
--   uri inside the recent manager.
recentManagerHasItem :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> Text -> m Bool

-- | Searches for a URI inside the recently used resources list, and
--   returns a GtkRecentInfo containing information about the
--   resource like its MIME type, or its display name.
recentManagerLookupItem :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> Text -> m (Maybe RecentInfo)

-- | Changes the location of a recently used resource from
--   uri to newUri.
--   
--   Please note that this function will not affect the resource pointed by
--   the URIs, but only the URI used in the recently used resources list.
recentManagerMoveItem :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> Text -> Maybe Text -> m ()

-- | Creates a new recent manager object.
--   
--   Recent manager objects are used to handle the list of recently used
--   resources. A GtkRecentManager object monitors the recently
--   used resources list, and emits the RecentManager::changed
--   signal each time something inside the list changes.
--   
--   GtkRecentManager objects are expensive: be sure to create
--   them only when needed. You should use recentManagerGetDefault
--   instead.
recentManagerNew :: (HasCallStack, MonadIO m) => m RecentManager

-- | Purges every item from the recently used resources list.
recentManagerPurgeItems :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> m Int32

-- | Removes a resource pointed by uri from the recently
--   used resources list handled by a recent manager.
recentManagerRemoveItem :: (HasCallStack, MonadIO m, IsRecentManager a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “filename” property. This is rarely needed directly, but it
--   is used by new.
constructRecentManagerFilename :: (IsRecentManager o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “filename” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get recentManager #filename
--   
getRecentManagerFilename :: (MonadIO m, IsRecentManager o) => o -> m (Maybe Text)

-- | Get the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get recentManager #size
--   
getRecentManagerSize :: (MonadIO m, IsRecentManager o) => o -> m Int32

-- | Emitted when the current recently used resources manager changes its
--   contents.
--   
--   This can happen either by calling recentManagerAddItem or by
--   another application.
type RecentManagerChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after recentManager #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterRecentManagerChanged :: (IsRecentManager a, MonadIO m) => a -> ((?self :: a) => RecentManagerChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on recentManager #changed callback
--   
onRecentManagerChanged :: (IsRecentManager a, MonadIO m) => a -> ((?self :: a) => RecentManagerChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.RecentManager.RecentManager
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.RecentManager.RecentManager
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.RecentManager.RecentManager
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.RecentManager.RecentManager)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.RecentManager.RecentManager o) => GI.Gtk.Objects.RecentManager.IsRecentManager o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.RecentManager.RecentManager
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.RecentManager.RecentManager

-- | Represents a request of a screen object in a given orientation.
--   
--   These are primarily used in container implementations when allocating
--   a natural size for children. See
--   [funcdistributeNaturalAllocation].
module GI.Gtk.Structs.RequestedSize

-- | Memory-managed wrapper type.
newtype RequestedSize
RequestedSize :: ManagedPtr RequestedSize -> RequestedSize

-- | Construct a RequestedSize struct initialized to zero.
newZeroRequestedSize :: MonadIO m => m RequestedSize

-- | Set the value of the “data” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #data
--   
clearRequestedSizeData :: MonadIO m => RequestedSize -> m ()

-- | Get the value of the “data” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get requestedSize #data
--   
getRequestedSizeData :: MonadIO m => RequestedSize -> m (Ptr ())

-- | Set the value of the “data” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set requestedSize [ #data := value ]
--   
setRequestedSizeData :: MonadIO m => RequestedSize -> Ptr () -> m ()

-- | Get the value of the “minimum_size” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get requestedSize #minimumSize
--   
getRequestedSizeMinimumSize :: MonadIO m => RequestedSize -> m Int32

-- | Set the value of the “minimum_size” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set requestedSize [ #minimumSize := value ]
--   
setRequestedSizeMinimumSize :: MonadIO m => RequestedSize -> Int32 -> m ()

-- | Get the value of the “natural_size” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get requestedSize #naturalSize
--   
getRequestedSizeNaturalSize :: MonadIO m => RequestedSize -> m Int32

-- | Set the value of the “natural_size” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set requestedSize [ #naturalSize := value ]
--   
setRequestedSizeNaturalSize :: MonadIO m => RequestedSize -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.RequestedSize.RequestedSize
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.RequestedSize.RequestedSize
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.RequestedSize.RequestedSize tag
instance GHC.Classes.Eq GI.Gtk.Structs.RequestedSize.RequestedSize
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.RequestedSize.RequestedSize

-- | Represents the desired size of a widget.
--   
--   See GtkWidget’s geometry management section for more
--   information.
module GI.Gtk.Structs.Requisition

-- | Memory-managed wrapper type.
newtype Requisition
Requisition :: ManagedPtr Requisition -> Requisition

-- | Construct a Requisition struct initialized to zero.
newZeroRequisition :: MonadIO m => m Requisition

-- | Copies a GtkRequisition.
requisitionCopy :: (HasCallStack, MonadIO m) => Requisition -> m Requisition

-- | Frees a GtkRequisition.
requisitionFree :: (HasCallStack, MonadIO m) => Requisition -> m ()

-- | Allocates a new GtkRequisition.
--   
--   The struct is initialized to zero.
requisitionNew :: (HasCallStack, MonadIO m) => m Requisition

-- | Get the value of the “height” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get requisition #height
--   
getRequisitionHeight :: MonadIO m => Requisition -> m Int32

-- | Set the value of the “height” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set requisition [ #height := value ]
--   
setRequisitionHeight :: MonadIO m => Requisition -> Int32 -> m ()

-- | Get the value of the “width” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get requisition #width
--   
getRequisitionWidth :: MonadIO m => Requisition -> m Int32

-- | Set the value of the “width” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set requisition [ #width := value ]
--   
setRequisitionWidth :: MonadIO m => Requisition -> Int32 -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.Requisition.Requisition tag
instance GHC.Classes.Eq GI.Gtk.Structs.Requisition.Requisition
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.Requisition.Requisition
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.Requisition.Requisition
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.Requisition.Requisition)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.Requisition.Requisition
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.Requisition.Requisition

-- | Provides detailed information on how a scroll operation should be
--   performed.
--   
--   Scrolling functions usually allow passing a NULL scroll info
--   which will cause the default values to be used and just scroll the
--   element into view.
--   
--   Since: 4.12
module GI.Gtk.Structs.ScrollInfo

-- | Memory-managed wrapper type.
newtype ScrollInfo
ScrollInfo :: ManagedPtr ScrollInfo -> ScrollInfo

-- | Checks if horizontal scrolling is enabled.
--   
--   Since: 4.12
scrollInfoGetEnableHorizontal :: (HasCallStack, MonadIO m) => ScrollInfo -> m Bool

-- | Checks if vertical scrolling is enabled.
--   
--   Since: 4.12
scrollInfoGetEnableVertical :: (HasCallStack, MonadIO m) => ScrollInfo -> m Bool

-- | Creates a new scroll info for scrolling an element into view.
--   
--   Since: 4.12
scrollInfoNew :: (HasCallStack, MonadIO m) => m ScrollInfo

-- | Increases the reference count of a GtkScrollInfo by one.
--   
--   Since: 4.12
scrollInfoRef :: (HasCallStack, MonadIO m) => ScrollInfo -> m ScrollInfo

-- | Turns horizontal scrolling on or off.
--   
--   Since: 4.12
scrollInfoSetEnableHorizontal :: (HasCallStack, MonadIO m) => ScrollInfo -> Bool -> m ()

-- | Turns vertical scrolling on or off.
--   
--   Since: 4.12
scrollInfoSetEnableVertical :: (HasCallStack, MonadIO m) => ScrollInfo -> Bool -> m ()

-- | Decreases the reference count of a GtkScrollInfo by one.
--   
--   If the resulting reference count is zero, frees the self.
--   
--   Since: 4.12
scrollInfoUnref :: (HasCallStack, MonadIO m) => ScrollInfo -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.ScrollInfo.ScrollInfo
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.ScrollInfo.ScrollInfo
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.ScrollInfo.ScrollInfo
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.ScrollInfo.ScrollInfo)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.ScrollInfo.ScrollInfo
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.ScrollInfo.ScrollInfo

-- | Provides information about a location in an SVG document.
--   
--   The information should be considered approximate; it is meant to
--   provide feedback for errors in an editor.
--   
--   Since: 4.22
module GI.Gtk.Structs.SvgLocation

-- | Memory-managed wrapper type.
newtype SvgLocation
SvgLocation :: ManagedPtr SvgLocation -> SvgLocation

-- | Construct a SvgLocation struct initialized to zero.
newZeroSvgLocation :: MonadIO m => m SvgLocation

-- | Get the value of the “bytes” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get svgLocation #bytes
--   
getSvgLocationBytes :: MonadIO m => SvgLocation -> m CSize

-- | Set the value of the “bytes” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set svgLocation [ #bytes := value ]
--   
setSvgLocationBytes :: MonadIO m => SvgLocation -> CSize -> m ()

-- | Get the value of the “line_chars” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get svgLocation #lineChars
--   
getSvgLocationLineChars :: MonadIO m => SvgLocation -> m CSize

-- | Set the value of the “line_chars” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set svgLocation [ #lineChars := value ]
--   
setSvgLocationLineChars :: MonadIO m => SvgLocation -> CSize -> m ()

-- | Get the value of the “lines” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get svgLocation #lines
--   
getSvgLocationLines :: MonadIO m => SvgLocation -> m CSize

-- | Set the value of the “lines” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set svgLocation [ #lines := value ]
--   
setSvgLocationLines :: MonadIO m => SvgLocation -> CSize -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.SvgLocation.SvgLocation
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.SvgLocation.SvgLocation
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.SvgLocation.SvgLocation tag
instance GHC.Classes.Eq GI.Gtk.Structs.SvgLocation.SvgLocation
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.SvgLocation.SvgLocation

-- | The GtkTreeIter is the primary structure for accessing a
--   GtkTreeModel. Models are expected to put a unique integer in
--   the stamp member, and put model-specific data in the
--   three userData members.
module GI.Gtk.Structs.TreeIter

-- | Memory-managed wrapper type.
newtype TreeIter
TreeIter :: ManagedPtr TreeIter -> TreeIter

-- | Construct a TreeIter struct initialized to zero.
newZeroTreeIter :: MonadIO m => m TreeIter

-- | Creates a dynamically allocated tree iterator as a copy of
--   iter.
--   
--   This function is not intended for use in applications, because you can
--   just copy the structs by value (GtkTreeIter new_iter =
--   iter;). You must free this iter with treeIterFree.

-- | Deprecated: (Since version 4.10)
treeIterCopy :: (HasCallStack, MonadIO m) => TreeIter -> m TreeIter

-- | Frees an iterator that has been allocated by treeIterCopy.
--   
--   This function is mainly used for language bindings.

-- | Deprecated: (Since version 4.10)
treeIterFree :: (HasCallStack, MonadIO m) => TreeIter -> m ()

-- | Get the value of the “stamp” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get treeIter #stamp
--   
getTreeIterStamp :: MonadIO m => TreeIter -> m Int32

-- | Set the value of the “stamp” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set treeIter [ #stamp := value ]
--   
setTreeIterStamp :: MonadIO m => TreeIter -> Int32 -> m ()

-- | Set the value of the “user_data” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #userData
--   
clearTreeIterUserData :: MonadIO m => TreeIter -> m ()

-- | Get the value of the “user_data” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeIter #userData
--   
getTreeIterUserData :: MonadIO m => TreeIter -> m (Ptr ())

-- | Set the value of the “user_data” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeIter [ #userData := value ]
--   
setTreeIterUserData :: MonadIO m => TreeIter -> Ptr () -> m ()

-- | Set the value of the “user_data2” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #userData2
--   
clearTreeIterUserData2 :: MonadIO m => TreeIter -> m ()

-- | Get the value of the “user_data2” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeIter #userData2
--   
getTreeIterUserData2 :: MonadIO m => TreeIter -> m (Ptr ())

-- | Set the value of the “user_data2” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeIter [ #userData2 := value ]
--   
setTreeIterUserData2 :: MonadIO m => TreeIter -> Ptr () -> m ()

-- | Set the value of the “user_data3” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #userData3
--   
clearTreeIterUserData3 :: MonadIO m => TreeIter -> m ()

-- | Get the value of the “user_data3” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeIter #userData3
--   
getTreeIterUserData3 :: MonadIO m => TreeIter -> m (Ptr ())

-- | Set the value of the “user_data3” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeIter [ #userData3 := value ]
--   
setTreeIterUserData3 :: MonadIO m => TreeIter -> Ptr () -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.TreeIter.TreeIter tag
instance GHC.Classes.Eq GI.Gtk.Structs.TreeIter.TreeIter
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.TreeIter.TreeIter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.TreeIter.TreeIter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.TreeIter.TreeIter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.TreeIter.TreeIter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.TreeIter.TreeIter

-- | An opaque structure representing a path to a row in a model.
module GI.Gtk.Structs.TreePath

-- | Memory-managed wrapper type.
newtype TreePath
TreePath :: ManagedPtr TreePath -> TreePath

-- | Appends a new index to a path.
--   
--   As a result, the depth of the path is increased.

-- | Deprecated: (Since version 4.10)
treePathAppendIndex :: (HasCallStack, MonadIO m) => TreePath -> Int32 -> m ()

-- | Compares two paths.
--   
--   If a appears before b in a tree, then
--   -1 is returned. If b appears before a,
--   then 1 is returned. If the two nodes are equal, then 0 is returned.

-- | Deprecated: (Since version 4.10)
treePathCompare :: (HasCallStack, MonadIO m) => TreePath -> TreePath -> m Int32

-- | Creates a new GtkTreePath as a copy of path.

-- | Deprecated: (Since version 4.10)
treePathCopy :: (HasCallStack, MonadIO m) => TreePath -> m TreePath

-- | Moves path to point to the first child of the current
--   path.

-- | Deprecated: (Since version 4.10)
treePathDown :: (HasCallStack, MonadIO m) => TreePath -> m ()

-- | Frees path. If path is Nothing,
--   it simply returns.

-- | Deprecated: (Since version 4.10)
treePathFree :: (HasCallStack, MonadIO m) => Maybe TreePath -> m ()

-- | Returns the current depth of path.

-- | Deprecated: (Since version 4.10)
treePathGetDepth :: (HasCallStack, MonadIO m) => TreePath -> m Int32

-- | Returns the current indices of path.
--   
--   This is an array of integers, each representing a node in a tree. It
--   also returns the number of elements in the array. The array should not
--   be freed.

-- | Deprecated: (Since version 4.10)
treePathGetIndices :: (HasCallStack, MonadIO m) => TreePath -> m (Maybe [Int32])

-- | Returns True if descendant is a descendant of
--   path.

-- | Deprecated: (Since version 4.10)
treePathIsAncestor :: (HasCallStack, MonadIO m) => TreePath -> TreePath -> m Bool

-- | Returns True if path is a descendant of
--   ancestor.

-- | Deprecated: (Since version 4.10)
treePathIsDescendant :: (HasCallStack, MonadIO m) => TreePath -> TreePath -> m Bool

-- | Creates a new GtkTreePath This refers to a row.

-- | Deprecated: (Since version 4.10)
treePathNew :: (HasCallStack, MonadIO m) => m TreePath

-- | Creates a new GtkTreePath.
--   
--   The string representation of this path is “0”.

-- | Deprecated: (Since version 4.10)
treePathNewFirst :: (HasCallStack, MonadIO m) => m TreePath

-- | Creates a new path with the given indices array of
--   length.

-- | Deprecated: (Since version 4.10)
treePathNewFromIndices :: (HasCallStack, MonadIO m) => [Int32] -> m TreePath

-- | Creates a new GtkTreePath initialized to
--   path.
--   
--   path is expected to be a colon separated list of
--   numbers. For example, the string “10:4:0” would create a path of depth
--   3 pointing to the 11th child of the root node, the 5th child of that
--   11th child, and the 1st child of that 5th child. If an invalid path
--   string is passed in, Nothing is returned.

-- | Deprecated: (Since version 4.10)
treePathNewFromString :: (HasCallStack, MonadIO m) => Text -> m (Maybe TreePath)

-- | Moves the path to point to the next node at the
--   current depth.

-- | Deprecated: (Since version 4.10)
treePathNext :: (HasCallStack, MonadIO m) => TreePath -> m ()

-- | Prepends a new index to a path.
--   
--   As a result, the depth of the path is increased.

-- | Deprecated: (Since version 4.10)
treePathPrependIndex :: (HasCallStack, MonadIO m) => TreePath -> Int32 -> m ()

-- | Moves the path to point to the previous node at the
--   current depth, if it exists.

-- | Deprecated: (Since version 4.10)
treePathPrev :: (HasCallStack, MonadIO m) => TreePath -> m Bool

-- | Generates a string representation of the path.
--   
--   This string is a “:” separated list of numbers. For example,
--   “4:10:0:3” would be an acceptable return value for this string. If the
--   path has depth 0, Nothing is returned.

-- | Deprecated: (Since version 4.10)
treePathToString :: (HasCallStack, MonadIO m) => TreePath -> m (Maybe Text)

-- | Moves the path to point to its parent node, if it has
--   a parent.

-- | Deprecated: (Since version 4.10)
treePathUp :: (HasCallStack, MonadIO m) => TreePath -> m Bool
instance GHC.Classes.Eq GI.Gtk.Structs.TreePath.TreePath
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.TreePath.TreePath
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.TreePath.TreePath
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.TreePath.TreePath)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.TreePath.TreePath
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.TreePath.TreePath

-- | Interface for Drag-and-Drop destinations in GtkTreeView.
module GI.Gtk.Interfaces.TreeDragSource

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)List views use widgets to display
--   their contents.You can use DragSource to implement a drag
--   source
newtype TreeDragSource

-- | Deprecated: (Since version 4.10)List views use widgets to display
--   their contents.You can use DragSource to implement a drag
--   source
TreeDragSource :: ManagedPtr TreeDragSource -> TreeDragSource

-- | Type class for types which implement TreeDragSource.
class (ManagedPtrNewtype o, IsDescendantOf TreeDragSource o) => IsTreeDragSource o

-- | Asks the GtkTreeDragSource to delete the row at
--   path, because it was moved somewhere else via
--   drag-and-drop. Returns False if the deletion fails because
--   path no longer exists, or for some model-specific
--   reason. Should robustly handle a path no longer found
--   in the model!

-- | Deprecated: (Since version 4.10)Use list models instead
treeDragSourceDragDataDelete :: (HasCallStack, MonadIO m, IsTreeDragSource a) => a -> TreePath -> m Bool

-- | Asks the GtkTreeDragSource to return a
--   GdkContentProvider representing the row at
--   path. Should robustly handle a path no
--   longer found in the model!

-- | Deprecated: (Since version 4.10)Use list models instead
treeDragSourceDragDataGet :: (HasCallStack, MonadIO m, IsTreeDragSource a) => a -> TreePath -> m (Maybe ContentProvider)

-- | Asks the GtkTreeDragSource whether a particular row can be
--   used as the source of a DND operation. If the source doesn’t implement
--   this interface, the row is assumed draggable.

-- | Deprecated: (Since version 4.10)Use list models instead
treeDragSourceRowDraggable :: (HasCallStack, MonadIO m, IsTreeDragSource a) => a -> TreePath -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Interfaces.TreeDragSource.TreeDragSource
instance GHC.Classes.Eq GI.Gtk.Interfaces.TreeDragSource.TreeDragSource
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.TreeDragSource.TreeDragSource o) => GI.Gtk.Interfaces.TreeDragSource.IsTreeDragSource o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.TreeDragSource.TreeDragSource

-- | Interface for Drag-and-Drop destinations in GtkTreeView.
module GI.Gtk.Interfaces.TreeDragDest

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)List views use widgets to display
--   their contents.You can use DropTarget to implement a drop
--   destination
newtype TreeDragDest

-- | Deprecated: (Since version 4.10)List views use widgets to display
--   their contents.You can use DropTarget to implement a drop
--   destination
TreeDragDest :: ManagedPtr TreeDragDest -> TreeDragDest

-- | Type class for types which implement TreeDragDest.
class (ManagedPtrNewtype o, IsDescendantOf TreeDragDest o) => IsTreeDragDest o

-- | Asks the GtkTreeDragDest to insert a row before the path
--   dest, deriving the contents of the row from
--   value. If dest is outside the tree so
--   that inserting before it is impossible, False will be returned.
--   Also, False may be returned if the new row is not created for
--   some model-specific reason. Should robustly handle a
--   dest no longer found in the model!

-- | Deprecated: (Since version 4.10)Use list models instead
treeDragDestDragDataReceived :: (HasCallStack, MonadIO m, IsTreeDragDest a) => a -> TreePath -> GValue -> m Bool

-- | Determines whether a drop is possible before the given
--   destPath, at the same depth as
--   destPath. i.e., can we drop the data in
--   value at that location. destPath does
--   not have to exist; the return value will almost certainly be
--   False if the parent of destPath doesn’t exist,
--   though.

-- | Deprecated: (Since version 4.10)Use list models instead
treeDragDestRowDropPossible :: (HasCallStack, MonadIO m, IsTreeDragDest a) => a -> TreePath -> GValue -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Interfaces.TreeDragDest.TreeDragDest
instance GHC.Classes.Eq GI.Gtk.Interfaces.TreeDragDest.TreeDragDest
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.TreeDragDest.TreeDragDest o) => GI.Gtk.Interfaces.TreeDragDest.IsTreeDragDest o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.TreeDragDest.TreeDragDest

module GI.Gtk.Callbacks

-- | Type of callback used to calculate the next page in a
--   GtkAssistant.
--   
--   It’s called both for computing the next page when the user presses the
--   “forward” button and for handling the behavior of the “last” button.
--   
--   See assistantSetForwardPageFunc.
type AssistantPageFunc = Int32 -> IO Int32

-- | Type of callback used to calculate the next page in a
--   GtkAssistant.
--   
--   It’s called both for computing the next page when the user presses the
--   “forward” button and for handling the behavior of the “last” button.
--   
--   See assistantSetForwardPageFunc.
type AssistantPageFunc_WithClosures = Int32 -> Ptr () -> IO Int32

-- | Type for the callback on the (unwrapped) C side.
type C_AssistantPageFunc = Int32 -> Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_AssistantPageFunc :: AssistantPageFunc -> AssistantPageFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_AssistantPageFunc :: (HasCallStack, MonadIO m) => FunPtr C_AssistantPageFunc -> Int32 -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_AssistantPageFunc :: MonadIO m => AssistantPageFunc -> m (GClosure C_AssistantPageFunc)

-- | Generate a function pointer callable from C code, from a
--   C_AssistantPageFunc.
mk_AssistantPageFunc :: C_AssistantPageFunc -> IO (FunPtr C_AssistantPageFunc)

-- | A convenience synonym for Nothing :: Maybe
--   AssistantPageFunc.
noAssistantPageFunc :: Maybe AssistantPageFunc

-- | A convenience synonym for Nothing :: Maybe
--   AssistantPageFunc_WithClosures.
noAssistantPageFunc_WithClosures :: Maybe AssistantPageFunc_WithClosures

-- | Wrap a AssistantPageFunc into a C_AssistantPageFunc.
wrap_AssistantPageFunc :: Maybe (Ptr (FunPtr C_AssistantPageFunc)) -> AssistantPageFunc_WithClosures -> C_AssistantPageFunc

-- | No description available in the introspection data.
type BuildableParserEndElementFieldCallback = BuildableParseContext -> Text -> IO ()

-- | No description available in the introspection data.
type BuildableParserEndElementFieldCallback_WithClosures = BuildableParseContext -> Text -> Ptr () -> IO ()

-- | Type for the callback on the (unwrapped) C side.
type C_BuildableParserEndElementFieldCallback = Ptr BuildableParseContext -> CString -> Ptr () -> Ptr Ptr GError -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_BuildableParserEndElementFieldCallback :: BuildableParserEndElementFieldCallback -> BuildableParserEndElementFieldCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_BuildableParserEndElementFieldCallback :: (HasCallStack, MonadIO m) => FunPtr C_BuildableParserEndElementFieldCallback -> BuildableParseContext -> Text -> Ptr () -> m ()

-- | Generate a function pointer callable from C code, from a
--   C_BuildableParserEndElementFieldCallback.
mk_BuildableParserEndElementFieldCallback :: C_BuildableParserEndElementFieldCallback -> IO (FunPtr C_BuildableParserEndElementFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserEndElementFieldCallback.
noBuildableParserEndElementFieldCallback :: Maybe BuildableParserEndElementFieldCallback

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserEndElementFieldCallback_WithClosures.
noBuildableParserEndElementFieldCallback_WithClosures :: Maybe BuildableParserEndElementFieldCallback_WithClosures

-- | No description available in the introspection data.
type BuildableParserErrorFieldCallback = BuildableParseContext -> GError -> IO ()

-- | No description available in the introspection data.
type BuildableParserErrorFieldCallback_WithClosures = BuildableParseContext -> GError -> Ptr () -> IO ()

-- | Type for the callback on the (unwrapped) C side.
type C_BuildableParserErrorFieldCallback = Ptr BuildableParseContext -> Ptr GError -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_BuildableParserErrorFieldCallback :: BuildableParserErrorFieldCallback -> BuildableParserErrorFieldCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_BuildableParserErrorFieldCallback :: (HasCallStack, MonadIO m) => FunPtr C_BuildableParserErrorFieldCallback -> BuildableParseContext -> GError -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_BuildableParserErrorFieldCallback :: MonadIO m => BuildableParserErrorFieldCallback -> m (GClosure C_BuildableParserErrorFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_BuildableParserErrorFieldCallback.
mk_BuildableParserErrorFieldCallback :: C_BuildableParserErrorFieldCallback -> IO (FunPtr C_BuildableParserErrorFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserErrorFieldCallback.
noBuildableParserErrorFieldCallback :: Maybe BuildableParserErrorFieldCallback

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserErrorFieldCallback_WithClosures.
noBuildableParserErrorFieldCallback_WithClosures :: Maybe BuildableParserErrorFieldCallback_WithClosures

-- | Wrap a BuildableParserErrorFieldCallback into a
--   C_BuildableParserErrorFieldCallback.
wrap_BuildableParserErrorFieldCallback :: Maybe (Ptr (FunPtr C_BuildableParserErrorFieldCallback)) -> BuildableParserErrorFieldCallback_WithClosures -> C_BuildableParserErrorFieldCallback

-- | No description available in the introspection data.
type BuildableParserStartElementFieldCallback = BuildableParseContext -> Text -> Text -> Text -> IO ()

-- | No description available in the introspection data.
type BuildableParserStartElementFieldCallback_WithClosures = BuildableParseContext -> Text -> Text -> Text -> Ptr () -> IO ()

-- | Type for the callback on the (unwrapped) C side.
type C_BuildableParserStartElementFieldCallback = Ptr BuildableParseContext -> CString -> CString -> CString -> Ptr () -> Ptr Ptr GError -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_BuildableParserStartElementFieldCallback :: BuildableParserStartElementFieldCallback -> BuildableParserStartElementFieldCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_BuildableParserStartElementFieldCallback :: (HasCallStack, MonadIO m) => FunPtr C_BuildableParserStartElementFieldCallback -> BuildableParseContext -> Text -> Text -> Text -> Ptr () -> m ()

-- | Generate a function pointer callable from C code, from a
--   C_BuildableParserStartElementFieldCallback.
mk_BuildableParserStartElementFieldCallback :: C_BuildableParserStartElementFieldCallback -> IO (FunPtr C_BuildableParserStartElementFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserStartElementFieldCallback.
noBuildableParserStartElementFieldCallback :: Maybe BuildableParserStartElementFieldCallback

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserStartElementFieldCallback_WithClosures.
noBuildableParserStartElementFieldCallback_WithClosures :: Maybe BuildableParserStartElementFieldCallback_WithClosures

-- | No description available in the introspection data.
type BuildableParserTextFieldCallback = BuildableParseContext -> Text -> CSize -> IO ()

-- | No description available in the introspection data.
type BuildableParserTextFieldCallback_WithClosures = BuildableParseContext -> Text -> CSize -> Ptr () -> IO ()

-- | Type for the callback on the (unwrapped) C side.
type C_BuildableParserTextFieldCallback = Ptr BuildableParseContext -> CString -> CSize -> Ptr () -> Ptr Ptr GError -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_BuildableParserTextFieldCallback :: BuildableParserTextFieldCallback -> BuildableParserTextFieldCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_BuildableParserTextFieldCallback :: (HasCallStack, MonadIO m) => FunPtr C_BuildableParserTextFieldCallback -> BuildableParseContext -> Text -> CSize -> Ptr () -> m ()

-- | Generate a function pointer callable from C code, from a
--   C_BuildableParserTextFieldCallback.
mk_BuildableParserTextFieldCallback :: C_BuildableParserTextFieldCallback -> IO (FunPtr C_BuildableParserTextFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserTextFieldCallback.
noBuildableParserTextFieldCallback :: Maybe BuildableParserTextFieldCallback

-- | A convenience synonym for Nothing :: Maybe
--   BuildableParserTextFieldCallback_WithClosures.
noBuildableParserTextFieldCallback_WithClosures :: Maybe BuildableParserTextFieldCallback_WithClosures

-- | Type for the callback on the (unwrapped) C side.
type C_CellAllocCallback = Ptr CellRenderer -> Ptr Rectangle -> Ptr Rectangle -> Ptr () -> IO CInt

-- | The type of the callback functions used for iterating over the cell
--   renderers and their allocated areas inside a GtkCellArea, see
--   cellAreaForeachAlloc.

-- | Deprecated: (Since version 4.20)There is no replacement
type CellAllocCallback = CellRenderer -> Rectangle -> Rectangle -> IO Bool

-- | The type of the callback functions used for iterating over the cell
--   renderers and their allocated areas inside a GtkCellArea, see
--   cellAreaForeachAlloc.
type CellAllocCallback_WithClosures = CellRenderer -> Rectangle -> Rectangle -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CellAllocCallback :: CellAllocCallback -> CellAllocCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CellAllocCallback :: (HasCallStack, MonadIO m, IsCellRenderer a) => FunPtr C_CellAllocCallback -> a -> Rectangle -> Rectangle -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_CellAllocCallback :: MonadIO m => CellAllocCallback -> m (GClosure C_CellAllocCallback)

-- | Generate a function pointer callable from C code, from a
--   C_CellAllocCallback.
mk_CellAllocCallback :: C_CellAllocCallback -> IO (FunPtr C_CellAllocCallback)

-- | A convenience synonym for Nothing :: Maybe
--   CellAllocCallback.
noCellAllocCallback :: Maybe CellAllocCallback

-- | A convenience synonym for Nothing :: Maybe
--   CellAllocCallback_WithClosures.
noCellAllocCallback_WithClosures :: Maybe CellAllocCallback_WithClosures

-- | Wrap a CellAllocCallback into a C_CellAllocCallback.
wrap_CellAllocCallback :: Maybe (Ptr (FunPtr C_CellAllocCallback)) -> CellAllocCallback_WithClosures -> C_CellAllocCallback

-- | Type for the callback on the (unwrapped) C side.
type C_CellCallback = Ptr CellRenderer -> Ptr () -> IO CInt

-- | The type of the callback functions used for iterating over the cell
--   renderers of a GtkCellArea, see cellAreaForeach.

-- | Deprecated: (Since version 4.20)There is no replacement
type CellCallback = CellRenderer -> IO Bool

-- | The type of the callback functions used for iterating over the cell
--   renderers of a GtkCellArea, see cellAreaForeach.
type CellCallback_WithClosures = CellRenderer -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CellCallback :: CellCallback -> CellCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CellCallback :: (HasCallStack, MonadIO m, IsCellRenderer a) => FunPtr C_CellCallback -> a -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_CellCallback :: MonadIO m => CellCallback -> m (GClosure C_CellCallback)

-- | Generate a function pointer callable from C code, from a
--   C_CellCallback.
mk_CellCallback :: C_CellCallback -> IO (FunPtr C_CellCallback)

-- | A convenience synonym for Nothing :: Maybe
--   CellCallback.
noCellCallback :: Maybe CellCallback

-- | A convenience synonym for Nothing :: Maybe
--   CellCallback_WithClosures.
noCellCallback_WithClosures :: Maybe CellCallback_WithClosures

-- | Wrap a CellCallback into a C_CellCallback.
wrap_CellCallback :: Maybe (Ptr (FunPtr C_CellCallback)) -> CellCallback_WithClosures -> C_CellCallback

-- | Type for the callback on the (unwrapped) C side.
type C_CellLayoutDataFunc = Ptr CellLayout -> Ptr CellRenderer -> Ptr TreeModel -> Ptr TreeIter -> Ptr () -> IO ()

-- | A function which should set the value of cellLayout’s
--   cell renderer(s) as appropriate.

-- | Deprecated: (Since version 4.20)There is no replacement
type CellLayoutDataFunc = CellLayout -> CellRenderer -> TreeModel -> TreeIter -> IO ()

-- | A function which should set the value of cellLayout’s
--   cell renderer(s) as appropriate.
type CellLayoutDataFunc_WithClosures = CellLayout -> CellRenderer -> TreeModel -> TreeIter -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CellLayoutDataFunc :: CellLayoutDataFunc -> CellLayoutDataFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CellLayoutDataFunc :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b, IsTreeModel c) => FunPtr C_CellLayoutDataFunc -> a -> b -> c -> TreeIter -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_CellLayoutDataFunc :: MonadIO m => CellLayoutDataFunc -> m (GClosure C_CellLayoutDataFunc)

-- | Generate a function pointer callable from C code, from a
--   C_CellLayoutDataFunc.
mk_CellLayoutDataFunc :: C_CellLayoutDataFunc -> IO (FunPtr C_CellLayoutDataFunc)

-- | A convenience synonym for Nothing :: Maybe
--   CellLayoutDataFunc.
noCellLayoutDataFunc :: Maybe CellLayoutDataFunc

-- | A convenience synonym for Nothing :: Maybe
--   CellLayoutDataFunc_WithClosures.
noCellLayoutDataFunc_WithClosures :: Maybe CellLayoutDataFunc_WithClosures

-- | Wrap a CellLayoutDataFunc into a C_CellLayoutDataFunc.
wrap_CellLayoutDataFunc :: Maybe (Ptr (FunPtr C_CellLayoutDataFunc)) -> CellLayoutDataFunc_WithClosures -> C_CellLayoutDataFunc

-- | Type for the callback on the (unwrapped) C side.
type C_CustomAllocateFunc = Ptr Widget -> Int32 -> Int32 -> Int32 -> IO ()

-- | A function to be used by GtkCustomLayout to allocate a
--   widget.
type CustomAllocateFunc = Widget -> Int32 -> Int32 -> Int32 -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CustomAllocateFunc :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_CustomAllocateFunc -> a -> Int32 -> Int32 -> Int32 -> m ()

-- | Wrap the callback into a GClosure.
genClosure_CustomAllocateFunc :: MonadIO m => CustomAllocateFunc -> m (GClosure C_CustomAllocateFunc)

-- | Generate a function pointer callable from C code, from a
--   C_CustomAllocateFunc.
mk_CustomAllocateFunc :: C_CustomAllocateFunc -> IO (FunPtr C_CustomAllocateFunc)

-- | A convenience synonym for Nothing :: Maybe
--   CustomAllocateFunc.
noCustomAllocateFunc :: Maybe CustomAllocateFunc

-- | Wrap a CustomAllocateFunc into a C_CustomAllocateFunc.
wrap_CustomAllocateFunc :: Maybe (Ptr (FunPtr C_CustomAllocateFunc)) -> CustomAllocateFunc -> C_CustomAllocateFunc

-- | Type for the callback on the (unwrapped) C side.
type C_CustomFilterFunc = Ptr Object -> Ptr () -> IO CInt

-- | User function that is called to determine if the item
--   should be matched.
--   
--   If the filter matches the item, this function must return true. If the
--   item should be filtered out, false must be returned.
type CustomFilterFunc = Object -> IO Bool

-- | User function that is called to determine if the item
--   should be matched.
--   
--   If the filter matches the item, this function must return true. If the
--   item should be filtered out, false must be returned.
type CustomFilterFunc_WithClosures = Object -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CustomFilterFunc :: CustomFilterFunc -> CustomFilterFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CustomFilterFunc :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_CustomFilterFunc -> a -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_CustomFilterFunc :: MonadIO m => CustomFilterFunc -> m (GClosure C_CustomFilterFunc)

-- | Generate a function pointer callable from C code, from a
--   C_CustomFilterFunc.
mk_CustomFilterFunc :: C_CustomFilterFunc -> IO (FunPtr C_CustomFilterFunc)

-- | A convenience synonym for Nothing :: Maybe
--   CustomFilterFunc.
noCustomFilterFunc :: Maybe CustomFilterFunc

-- | A convenience synonym for Nothing :: Maybe
--   CustomFilterFunc_WithClosures.
noCustomFilterFunc_WithClosures :: Maybe CustomFilterFunc_WithClosures

-- | Wrap a CustomFilterFunc into a C_CustomFilterFunc.
wrap_CustomFilterFunc :: Maybe (Ptr (FunPtr C_CustomFilterFunc)) -> CustomFilterFunc_WithClosures -> C_CustomFilterFunc

-- | Type for the callback on the (unwrapped) C side.
type C_CustomMeasureFunc = Ptr Widget -> CUInt -> Int32 -> Ptr Int32 -> Ptr Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()

-- | A function to be used by GtkCustomLayout to measure a widget.
type CustomMeasureFunc = Widget -> Orientation -> Int32 -> IO (Int32, Int32, Int32, Int32)

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CustomMeasureFunc :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_CustomMeasureFunc -> a -> Orientation -> Int32 -> m (Int32, Int32, Int32, Int32)

-- | Wrap the callback into a GClosure.
genClosure_CustomMeasureFunc :: MonadIO m => CustomMeasureFunc -> m (GClosure C_CustomMeasureFunc)

-- | Generate a function pointer callable from C code, from a
--   C_CustomMeasureFunc.
mk_CustomMeasureFunc :: C_CustomMeasureFunc -> IO (FunPtr C_CustomMeasureFunc)

-- | A convenience synonym for Nothing :: Maybe
--   CustomMeasureFunc.
noCustomMeasureFunc :: Maybe CustomMeasureFunc

-- | Wrap a CustomMeasureFunc into a C_CustomMeasureFunc.
wrap_CustomMeasureFunc :: Maybe (Ptr (FunPtr C_CustomMeasureFunc)) -> CustomMeasureFunc -> C_CustomMeasureFunc

-- | Type for the callback on the (unwrapped) C side.
type C_CustomRequestModeFunc = Ptr Widget -> IO CUInt

-- | Queries a widget for its preferred size request mode.
type CustomRequestModeFunc = Widget -> IO SizeRequestMode

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CustomRequestModeFunc :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_CustomRequestModeFunc -> a -> m SizeRequestMode

-- | Wrap the callback into a GClosure.
genClosure_CustomRequestModeFunc :: MonadIO m => CustomRequestModeFunc -> m (GClosure C_CustomRequestModeFunc)

-- | Generate a function pointer callable from C code, from a
--   C_CustomRequestModeFunc.
mk_CustomRequestModeFunc :: C_CustomRequestModeFunc -> IO (FunPtr C_CustomRequestModeFunc)

-- | A convenience synonym for Nothing :: Maybe
--   CustomRequestModeFunc.
noCustomRequestModeFunc :: Maybe CustomRequestModeFunc

-- | Wrap a CustomRequestModeFunc into a
--   C_CustomRequestModeFunc.
wrap_CustomRequestModeFunc :: Maybe (Ptr (FunPtr C_CustomRequestModeFunc)) -> CustomRequestModeFunc -> C_CustomRequestModeFunc

-- | Type for the callback on the (unwrapped) C side.
type C_DrawingAreaDrawFunc = Ptr DrawingArea -> Ptr Context -> Int32 -> Int32 -> Ptr () -> IO ()

-- | Whenever drawingArea needs to redraw, this function
--   will be called.
--   
--   This function should exclusively redraw the contents of the drawing
--   area and must not call any widget functions that cause changes.
type DrawingAreaDrawFunc = DrawingArea -> Context -> Int32 -> Int32 -> IO ()

-- | Whenever drawingArea needs to redraw, this function
--   will be called.
--   
--   This function should exclusively redraw the contents of the drawing
--   area and must not call any widget functions that cause changes.
type DrawingAreaDrawFunc_WithClosures = DrawingArea -> Context -> Int32 -> Int32 -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_DrawingAreaDrawFunc :: DrawingAreaDrawFunc -> DrawingAreaDrawFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_DrawingAreaDrawFunc :: (HasCallStack, MonadIO m, IsDrawingArea a) => FunPtr C_DrawingAreaDrawFunc -> a -> Context -> Int32 -> Int32 -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_DrawingAreaDrawFunc :: MonadIO m => DrawingAreaDrawFunc -> m (GClosure C_DrawingAreaDrawFunc)

-- | Generate a function pointer callable from C code, from a
--   C_DrawingAreaDrawFunc.
mk_DrawingAreaDrawFunc :: C_DrawingAreaDrawFunc -> IO (FunPtr C_DrawingAreaDrawFunc)

-- | A convenience synonym for Nothing :: Maybe
--   DrawingAreaDrawFunc.
noDrawingAreaDrawFunc :: Maybe DrawingAreaDrawFunc

-- | A convenience synonym for Nothing :: Maybe
--   DrawingAreaDrawFunc_WithClosures.
noDrawingAreaDrawFunc_WithClosures :: Maybe DrawingAreaDrawFunc_WithClosures

-- | Wrap a DrawingAreaDrawFunc into a C_DrawingAreaDrawFunc.
wrap_DrawingAreaDrawFunc :: Maybe (Ptr (FunPtr C_DrawingAreaDrawFunc)) -> DrawingAreaDrawFunc_WithClosures -> C_DrawingAreaDrawFunc

-- | Type for the callback on the (unwrapped) C side.
type C_EntryCompletionMatchFunc = Ptr EntryCompletion -> CString -> Ptr TreeIter -> Ptr () -> IO CInt

-- | A function which decides whether the row indicated by
--   iter matches a given key, and should
--   be displayed as a possible completion for key.
--   
--   Note that key is normalized and case-folded (see
--   utf8Normalize and utf8Casefold). If this is not
--   appropriate, match functions have access to the unmodified key via
--   gtk_editable_get_text (GTK_EDITABLE
--   (gtk_entry_completion_get_entry ())).

-- | Deprecated: (Since version 4.20)There is no replacement
type EntryCompletionMatchFunc = EntryCompletion -> Text -> TreeIter -> IO Bool

-- | A function which decides whether the row indicated by
--   iter matches a given key, and should
--   be displayed as a possible completion for key.
--   
--   Note that key is normalized and case-folded (see
--   utf8Normalize and utf8Casefold). If this is not
--   appropriate, match functions have access to the unmodified key via
--   gtk_editable_get_text (GTK_EDITABLE
--   (gtk_entry_completion_get_entry ())).
type EntryCompletionMatchFunc_WithClosures = EntryCompletion -> Text -> TreeIter -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_EntryCompletionMatchFunc :: EntryCompletionMatchFunc -> EntryCompletionMatchFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_EntryCompletionMatchFunc :: (HasCallStack, MonadIO m, IsEntryCompletion a) => FunPtr C_EntryCompletionMatchFunc -> a -> Text -> TreeIter -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_EntryCompletionMatchFunc :: MonadIO m => EntryCompletionMatchFunc -> m (GClosure C_EntryCompletionMatchFunc)

-- | Generate a function pointer callable from C code, from a
--   C_EntryCompletionMatchFunc.
mk_EntryCompletionMatchFunc :: C_EntryCompletionMatchFunc -> IO (FunPtr C_EntryCompletionMatchFunc)

-- | A convenience synonym for Nothing :: Maybe
--   EntryCompletionMatchFunc.
noEntryCompletionMatchFunc :: Maybe EntryCompletionMatchFunc

-- | A convenience synonym for Nothing :: Maybe
--   EntryCompletionMatchFunc_WithClosures.
noEntryCompletionMatchFunc_WithClosures :: Maybe EntryCompletionMatchFunc_WithClosures

-- | Wrap a EntryCompletionMatchFunc into a
--   C_EntryCompletionMatchFunc.
wrap_EntryCompletionMatchFunc :: Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc)) -> EntryCompletionMatchFunc_WithClosures -> C_EntryCompletionMatchFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ExpressionNotify = Ptr () -> IO ()

-- | Callback called by expressionWatch when the expression value
--   changes.
type ExpressionNotify = IO ()

-- | Callback called by expressionWatch when the expression value
--   changes.
type ExpressionNotify_WithClosures = Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ExpressionNotify :: ExpressionNotify -> ExpressionNotify_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ExpressionNotify :: (HasCallStack, MonadIO m) => FunPtr C_ExpressionNotify -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_ExpressionNotify :: MonadIO m => ExpressionNotify -> m (GClosure C_ExpressionNotify)

-- | Generate a function pointer callable from C code, from a
--   C_ExpressionNotify.
mk_ExpressionNotify :: C_ExpressionNotify -> IO (FunPtr C_ExpressionNotify)

-- | A convenience synonym for Nothing :: Maybe
--   ExpressionNotify.
noExpressionNotify :: Maybe ExpressionNotify

-- | A convenience synonym for Nothing :: Maybe
--   ExpressionNotify_WithClosures.
noExpressionNotify_WithClosures :: Maybe ExpressionNotify_WithClosures

-- | Wrap a ExpressionNotify into a C_ExpressionNotify.
wrap_ExpressionNotify :: Maybe (Ptr (FunPtr C_ExpressionNotify)) -> ExpressionNotify_WithClosures -> C_ExpressionNotify

-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxCreateWidgetFunc = Ptr Object -> Ptr () -> IO Ptr Widget

-- | Called for flow boxes that are bound to a GListModel.
--   
--   This function is called for each item that gets added to the model.
type FlowBoxCreateWidgetFunc = Object -> IO Widget

-- | Called for flow boxes that are bound to a GListModel.
--   
--   This function is called for each item that gets added to the model.
type FlowBoxCreateWidgetFunc_WithClosures = Object -> Ptr () -> IO Widget

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxCreateWidgetFunc :: FlowBoxCreateWidgetFunc -> FlowBoxCreateWidgetFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FlowBoxCreateWidgetFunc :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_FlowBoxCreateWidgetFunc -> a -> Ptr () -> m Widget

-- | Wrap the callback into a GClosure.
genClosure_FlowBoxCreateWidgetFunc :: MonadIO m => FlowBoxCreateWidgetFunc -> m (GClosure C_FlowBoxCreateWidgetFunc)

-- | Generate a function pointer callable from C code, from a
--   C_FlowBoxCreateWidgetFunc.
mk_FlowBoxCreateWidgetFunc :: C_FlowBoxCreateWidgetFunc -> IO (FunPtr C_FlowBoxCreateWidgetFunc)

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxCreateWidgetFunc.
noFlowBoxCreateWidgetFunc :: Maybe FlowBoxCreateWidgetFunc

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxCreateWidgetFunc_WithClosures.
noFlowBoxCreateWidgetFunc_WithClosures :: Maybe FlowBoxCreateWidgetFunc_WithClosures

-- | Wrap a FlowBoxCreateWidgetFunc into a
--   C_FlowBoxCreateWidgetFunc.
wrap_FlowBoxCreateWidgetFunc :: Maybe (Ptr (FunPtr C_FlowBoxCreateWidgetFunc)) -> FlowBoxCreateWidgetFunc_WithClosures -> C_FlowBoxCreateWidgetFunc

-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxFilterFunc = Ptr FlowBoxChild -> Ptr () -> IO CInt

-- | A function that will be called whenever a child changes or is added.
--   
--   It lets you control if the child should be visible or not.
type FlowBoxFilterFunc = FlowBoxChild -> IO Bool

-- | A function that will be called whenever a child changes or is added.
--   
--   It lets you control if the child should be visible or not.
type FlowBoxFilterFunc_WithClosures = FlowBoxChild -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxFilterFunc :: FlowBoxFilterFunc -> FlowBoxFilterFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FlowBoxFilterFunc :: (HasCallStack, MonadIO m, IsFlowBoxChild a) => FunPtr C_FlowBoxFilterFunc -> a -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_FlowBoxFilterFunc :: MonadIO m => FlowBoxFilterFunc -> m (GClosure C_FlowBoxFilterFunc)

-- | Generate a function pointer callable from C code, from a
--   C_FlowBoxFilterFunc.
mk_FlowBoxFilterFunc :: C_FlowBoxFilterFunc -> IO (FunPtr C_FlowBoxFilterFunc)

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxFilterFunc.
noFlowBoxFilterFunc :: Maybe FlowBoxFilterFunc

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxFilterFunc_WithClosures.
noFlowBoxFilterFunc_WithClosures :: Maybe FlowBoxFilterFunc_WithClosures

-- | Wrap a FlowBoxFilterFunc into a C_FlowBoxFilterFunc.
wrap_FlowBoxFilterFunc :: Maybe (Ptr (FunPtr C_FlowBoxFilterFunc)) -> FlowBoxFilterFunc_WithClosures -> C_FlowBoxFilterFunc

-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxForeachFunc = Ptr FlowBox -> Ptr FlowBoxChild -> Ptr () -> IO ()

-- | A function used by flowBoxSelectedForeach.
--   
--   It will be called on every selected child of the box.
type FlowBoxForeachFunc = FlowBox -> FlowBoxChild -> IO ()

-- | A function used by flowBoxSelectedForeach.
--   
--   It will be called on every selected child of the box.
type FlowBoxForeachFunc_WithClosures = FlowBox -> FlowBoxChild -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxForeachFunc :: FlowBoxForeachFunc -> FlowBoxForeachFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FlowBoxForeachFunc :: (HasCallStack, MonadIO m, IsFlowBox a, IsFlowBoxChild b) => FunPtr C_FlowBoxForeachFunc -> a -> b -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_FlowBoxForeachFunc :: MonadIO m => FlowBoxForeachFunc -> m (GClosure C_FlowBoxForeachFunc)

-- | Generate a function pointer callable from C code, from a
--   C_FlowBoxForeachFunc.
mk_FlowBoxForeachFunc :: C_FlowBoxForeachFunc -> IO (FunPtr C_FlowBoxForeachFunc)

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxForeachFunc.
noFlowBoxForeachFunc :: Maybe FlowBoxForeachFunc

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxForeachFunc_WithClosures.
noFlowBoxForeachFunc_WithClosures :: Maybe FlowBoxForeachFunc_WithClosures

-- | Wrap a FlowBoxForeachFunc into a C_FlowBoxForeachFunc.
wrap_FlowBoxForeachFunc :: Maybe (Ptr (FunPtr C_FlowBoxForeachFunc)) -> FlowBoxForeachFunc_WithClosures -> C_FlowBoxForeachFunc

-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxSortFunc = Ptr FlowBoxChild -> Ptr FlowBoxChild -> Ptr () -> IO Int32

-- | A function to compare two children to determine which should come
--   first.
type FlowBoxSortFunc = FlowBoxChild -> FlowBoxChild -> IO Int32

-- | A function to compare two children to determine which should come
--   first.
type FlowBoxSortFunc_WithClosures = FlowBoxChild -> FlowBoxChild -> Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxSortFunc :: FlowBoxSortFunc -> FlowBoxSortFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FlowBoxSortFunc :: (HasCallStack, MonadIO m, IsFlowBoxChild a, IsFlowBoxChild b) => FunPtr C_FlowBoxSortFunc -> a -> b -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_FlowBoxSortFunc :: MonadIO m => FlowBoxSortFunc -> m (GClosure C_FlowBoxSortFunc)

-- | Generate a function pointer callable from C code, from a
--   C_FlowBoxSortFunc.
mk_FlowBoxSortFunc :: C_FlowBoxSortFunc -> IO (FunPtr C_FlowBoxSortFunc)

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxSortFunc.
noFlowBoxSortFunc :: Maybe FlowBoxSortFunc

-- | A convenience synonym for Nothing :: Maybe
--   FlowBoxSortFunc_WithClosures.
noFlowBoxSortFunc_WithClosures :: Maybe FlowBoxSortFunc_WithClosures

-- | Wrap a FlowBoxSortFunc into a C_FlowBoxSortFunc.
wrap_FlowBoxSortFunc :: Maybe (Ptr (FunPtr C_FlowBoxSortFunc)) -> FlowBoxSortFunc_WithClosures -> C_FlowBoxSortFunc

-- | Type for the callback on the (unwrapped) C side.
type C_FontFilterFunc = Ptr FontFamily -> Ptr FontFace -> Ptr () -> IO CInt

-- | The type of function that is used for deciding what fonts get shown in
--   a GtkFontChooser.
--   
--   See fontChooserSetFilterFunc.

-- | Deprecated: (Since version 4.20)There is no replacement
type FontFilterFunc = FontFamily -> FontFace -> IO Bool

-- | The type of function that is used for deciding what fonts get shown in
--   a GtkFontChooser.
--   
--   See fontChooserSetFilterFunc.
type FontFilterFunc_WithClosures = FontFamily -> FontFace -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontFilterFunc :: FontFilterFunc -> FontFilterFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FontFilterFunc :: (HasCallStack, MonadIO m, IsFontFamily a, IsFontFace b) => FunPtr C_FontFilterFunc -> a -> b -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_FontFilterFunc :: MonadIO m => FontFilterFunc -> m (GClosure C_FontFilterFunc)

-- | Generate a function pointer callable from C code, from a
--   C_FontFilterFunc.
mk_FontFilterFunc :: C_FontFilterFunc -> IO (FunPtr C_FontFilterFunc)

-- | A convenience synonym for Nothing :: Maybe
--   FontFilterFunc.
noFontFilterFunc :: Maybe FontFilterFunc

-- | A convenience synonym for Nothing :: Maybe
--   FontFilterFunc_WithClosures.
noFontFilterFunc_WithClosures :: Maybe FontFilterFunc_WithClosures

-- | Wrap a FontFilterFunc into a C_FontFilterFunc.
wrap_FontFilterFunc :: Maybe (Ptr (FunPtr C_FontFilterFunc)) -> FontFilterFunc_WithClosures -> C_FontFilterFunc

-- | Type for the callback on the (unwrapped) C side.
type C_IconViewForeachFunc = Ptr IconView -> Ptr TreePath -> Ptr () -> IO ()

-- | A function used by iconViewSelectedForeach to map all selected
--   rows.
--   
--   It will be called on every selected row in the view.

-- | Deprecated: (Since version 4.20)There is no replacement.
type IconViewForeachFunc = IconView -> TreePath -> IO ()

-- | A function used by iconViewSelectedForeach to map all selected
--   rows.
--   
--   It will be called on every selected row in the view.
type IconViewForeachFunc_WithClosures = IconView -> TreePath -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_IconViewForeachFunc :: IconViewForeachFunc -> IconViewForeachFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_IconViewForeachFunc :: (HasCallStack, MonadIO m, IsIconView a) => FunPtr C_IconViewForeachFunc -> a -> TreePath -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_IconViewForeachFunc :: MonadIO m => IconViewForeachFunc -> m (GClosure C_IconViewForeachFunc)

-- | Generate a function pointer callable from C code, from a
--   C_IconViewForeachFunc.
mk_IconViewForeachFunc :: C_IconViewForeachFunc -> IO (FunPtr C_IconViewForeachFunc)

-- | A convenience synonym for Nothing :: Maybe
--   IconViewForeachFunc.
noIconViewForeachFunc :: Maybe IconViewForeachFunc

-- | A convenience synonym for Nothing :: Maybe
--   IconViewForeachFunc_WithClosures.
noIconViewForeachFunc_WithClosures :: Maybe IconViewForeachFunc_WithClosures

-- | Wrap a IconViewForeachFunc into a C_IconViewForeachFunc.
wrap_IconViewForeachFunc :: Maybe (Ptr (FunPtr C_IconViewForeachFunc)) -> IconViewForeachFunc_WithClosures -> C_IconViewForeachFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxCreateWidgetFunc = Ptr Object -> Ptr () -> IO Ptr Widget

-- | Called for list boxes that are bound to a GListModel with
--   listBoxBindModel for each item that gets added to the model.
--   
--   If the widget returned is not a ListBoxRow widget, then the
--   widget will be inserted as the child of an intermediate
--   ListBoxRow.
type ListBoxCreateWidgetFunc = Object -> IO Widget

-- | Called for list boxes that are bound to a GListModel with
--   listBoxBindModel for each item that gets added to the model.
--   
--   If the widget returned is not a ListBoxRow widget, then the
--   widget will be inserted as the child of an intermediate
--   ListBoxRow.
type ListBoxCreateWidgetFunc_WithClosures = Object -> Ptr () -> IO Widget

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxCreateWidgetFunc :: ListBoxCreateWidgetFunc -> ListBoxCreateWidgetFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ListBoxCreateWidgetFunc :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_ListBoxCreateWidgetFunc -> a -> Ptr () -> m Widget

-- | Wrap the callback into a GClosure.
genClosure_ListBoxCreateWidgetFunc :: MonadIO m => ListBoxCreateWidgetFunc -> m (GClosure C_ListBoxCreateWidgetFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ListBoxCreateWidgetFunc.
mk_ListBoxCreateWidgetFunc :: C_ListBoxCreateWidgetFunc -> IO (FunPtr C_ListBoxCreateWidgetFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxCreateWidgetFunc.
noListBoxCreateWidgetFunc :: Maybe ListBoxCreateWidgetFunc

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxCreateWidgetFunc_WithClosures.
noListBoxCreateWidgetFunc_WithClosures :: Maybe ListBoxCreateWidgetFunc_WithClosures

-- | Wrap a ListBoxCreateWidgetFunc into a
--   C_ListBoxCreateWidgetFunc.
wrap_ListBoxCreateWidgetFunc :: Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc)) -> ListBoxCreateWidgetFunc_WithClosures -> C_ListBoxCreateWidgetFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxFilterFunc = Ptr ListBoxRow -> Ptr () -> IO CInt

-- | Will be called whenever the row changes or is added and lets you
--   control if the row should be visible or not.
type ListBoxFilterFunc = ListBoxRow -> IO Bool

-- | Will be called whenever the row changes or is added and lets you
--   control if the row should be visible or not.
type ListBoxFilterFunc_WithClosures = ListBoxRow -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxFilterFunc :: ListBoxFilterFunc -> ListBoxFilterFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ListBoxFilterFunc :: (HasCallStack, MonadIO m, IsListBoxRow a) => FunPtr C_ListBoxFilterFunc -> a -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_ListBoxFilterFunc :: MonadIO m => ListBoxFilterFunc -> m (GClosure C_ListBoxFilterFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ListBoxFilterFunc.
mk_ListBoxFilterFunc :: C_ListBoxFilterFunc -> IO (FunPtr C_ListBoxFilterFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxFilterFunc.
noListBoxFilterFunc :: Maybe ListBoxFilterFunc

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxFilterFunc_WithClosures.
noListBoxFilterFunc_WithClosures :: Maybe ListBoxFilterFunc_WithClosures

-- | Wrap a ListBoxFilterFunc into a C_ListBoxFilterFunc.
wrap_ListBoxFilterFunc :: Maybe (Ptr (FunPtr C_ListBoxFilterFunc)) -> ListBoxFilterFunc_WithClosures -> C_ListBoxFilterFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxForeachFunc = Ptr ListBox -> Ptr ListBoxRow -> Ptr () -> IO ()

-- | A function used by listBoxSelectedForeach.
--   
--   It will be called on every selected child of the box.
type ListBoxForeachFunc = ListBox -> ListBoxRow -> IO ()

-- | A function used by listBoxSelectedForeach.
--   
--   It will be called on every selected child of the box.
type ListBoxForeachFunc_WithClosures = ListBox -> ListBoxRow -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxForeachFunc :: ListBoxForeachFunc -> ListBoxForeachFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ListBoxForeachFunc :: (HasCallStack, MonadIO m, IsListBox a, IsListBoxRow b) => FunPtr C_ListBoxForeachFunc -> a -> b -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_ListBoxForeachFunc :: MonadIO m => ListBoxForeachFunc -> m (GClosure C_ListBoxForeachFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ListBoxForeachFunc.
mk_ListBoxForeachFunc :: C_ListBoxForeachFunc -> IO (FunPtr C_ListBoxForeachFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxForeachFunc.
noListBoxForeachFunc :: Maybe ListBoxForeachFunc

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxForeachFunc_WithClosures.
noListBoxForeachFunc_WithClosures :: Maybe ListBoxForeachFunc_WithClosures

-- | Wrap a ListBoxForeachFunc into a C_ListBoxForeachFunc.
wrap_ListBoxForeachFunc :: Maybe (Ptr (FunPtr C_ListBoxForeachFunc)) -> ListBoxForeachFunc_WithClosures -> C_ListBoxForeachFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxSortFunc = Ptr ListBoxRow -> Ptr ListBoxRow -> Ptr () -> IO Int32

-- | Compare two rows to determine which should be first.
type ListBoxSortFunc = ListBoxRow -> ListBoxRow -> IO Int32

-- | Compare two rows to determine which should be first.
type ListBoxSortFunc_WithClosures = ListBoxRow -> ListBoxRow -> Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxSortFunc :: ListBoxSortFunc -> ListBoxSortFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ListBoxSortFunc :: (HasCallStack, MonadIO m, IsListBoxRow a, IsListBoxRow b) => FunPtr C_ListBoxSortFunc -> a -> b -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_ListBoxSortFunc :: MonadIO m => ListBoxSortFunc -> m (GClosure C_ListBoxSortFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ListBoxSortFunc.
mk_ListBoxSortFunc :: C_ListBoxSortFunc -> IO (FunPtr C_ListBoxSortFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxSortFunc.
noListBoxSortFunc :: Maybe ListBoxSortFunc

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxSortFunc_WithClosures.
noListBoxSortFunc_WithClosures :: Maybe ListBoxSortFunc_WithClosures

-- | Wrap a ListBoxSortFunc into a C_ListBoxSortFunc.
wrap_ListBoxSortFunc :: Maybe (Ptr (FunPtr C_ListBoxSortFunc)) -> ListBoxSortFunc_WithClosures -> C_ListBoxSortFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxUpdateHeaderFunc = Ptr ListBoxRow -> Ptr ListBoxRow -> Ptr () -> IO ()

-- | Whenever row changes or which row is before
--   row changes this is called, which lets you update the
--   header on row.
--   
--   You may remove or set a new one via listBoxRowSetHeader or just
--   change the state of the current header widget.
type ListBoxUpdateHeaderFunc = ListBoxRow -> Maybe ListBoxRow -> IO ()

-- | Whenever row changes or which row is before
--   row changes this is called, which lets you update the
--   header on row.
--   
--   You may remove or set a new one via listBoxRowSetHeader or just
--   change the state of the current header widget.
type ListBoxUpdateHeaderFunc_WithClosures = ListBoxRow -> Maybe ListBoxRow -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxUpdateHeaderFunc :: ListBoxUpdateHeaderFunc -> ListBoxUpdateHeaderFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ListBoxUpdateHeaderFunc :: (HasCallStack, MonadIO m, IsListBoxRow a, IsListBoxRow b) => FunPtr C_ListBoxUpdateHeaderFunc -> a -> Maybe b -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_ListBoxUpdateHeaderFunc :: MonadIO m => ListBoxUpdateHeaderFunc -> m (GClosure C_ListBoxUpdateHeaderFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ListBoxUpdateHeaderFunc.
mk_ListBoxUpdateHeaderFunc :: C_ListBoxUpdateHeaderFunc -> IO (FunPtr C_ListBoxUpdateHeaderFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxUpdateHeaderFunc.
noListBoxUpdateHeaderFunc :: Maybe ListBoxUpdateHeaderFunc

-- | A convenience synonym for Nothing :: Maybe
--   ListBoxUpdateHeaderFunc_WithClosures.
noListBoxUpdateHeaderFunc_WithClosures :: Maybe ListBoxUpdateHeaderFunc_WithClosures

-- | Wrap a ListBoxUpdateHeaderFunc into a
--   C_ListBoxUpdateHeaderFunc.
wrap_ListBoxUpdateHeaderFunc :: Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc)) -> ListBoxUpdateHeaderFunc_WithClosures -> C_ListBoxUpdateHeaderFunc

-- | Type for the callback on the (unwrapped) C side.
type C_MapListModelMapFunc = Ptr Object -> Ptr () -> IO Ptr Object

-- | User function that is called to map an item of the
--   original model to an item expected by the map model.
--   
--   The returned items must conform to the item type of the model they are
--   used with.
type MapListModelMapFunc = Object -> IO Object

-- | User function that is called to map an item of the
--   original model to an item expected by the map model.
--   
--   The returned items must conform to the item type of the model they are
--   used with.
type MapListModelMapFunc_WithClosures = Object -> Ptr () -> IO Object

-- | A simple wrapper that ignores the closure arguments.
drop_closures_MapListModelMapFunc :: MapListModelMapFunc -> MapListModelMapFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_MapListModelMapFunc :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_MapListModelMapFunc -> a -> Ptr () -> m Object

-- | Wrap the callback into a GClosure.
genClosure_MapListModelMapFunc :: MonadIO m => MapListModelMapFunc -> m (GClosure C_MapListModelMapFunc)

-- | Generate a function pointer callable from C code, from a
--   C_MapListModelMapFunc.
mk_MapListModelMapFunc :: C_MapListModelMapFunc -> IO (FunPtr C_MapListModelMapFunc)

-- | A convenience synonym for Nothing :: Maybe
--   MapListModelMapFunc.
noMapListModelMapFunc :: Maybe MapListModelMapFunc

-- | A convenience synonym for Nothing :: Maybe
--   MapListModelMapFunc_WithClosures.
noMapListModelMapFunc_WithClosures :: Maybe MapListModelMapFunc_WithClosures

-- | Wrap a MapListModelMapFunc into a C_MapListModelMapFunc.
wrap_MapListModelMapFunc :: Maybe (Ptr (FunPtr C_MapListModelMapFunc)) -> MapListModelMapFunc_WithClosures -> C_MapListModelMapFunc

-- | Type for the callback on the (unwrapped) C side.
type C_MenuButtonCreatePopupFunc = Ptr MenuButton -> Ptr () -> IO ()

-- | User-provided callback function to create a popup for a
--   GtkMenuButton on demand.
--   
--   This function is called when the popup of menuButton
--   is shown, but none has been provided via menuButtonSetPopover
--   or menuButtonSetMenuModel.
type MenuButtonCreatePopupFunc = MenuButton -> IO ()

-- | User-provided callback function to create a popup for a
--   GtkMenuButton on demand.
--   
--   This function is called when the popup of menuButton
--   is shown, but none has been provided via menuButtonSetPopover
--   or menuButtonSetMenuModel.
type MenuButtonCreatePopupFunc_WithClosures = MenuButton -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_MenuButtonCreatePopupFunc :: MenuButtonCreatePopupFunc -> MenuButtonCreatePopupFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_MenuButtonCreatePopupFunc :: (HasCallStack, MonadIO m, IsMenuButton a) => FunPtr C_MenuButtonCreatePopupFunc -> a -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_MenuButtonCreatePopupFunc :: MonadIO m => MenuButtonCreatePopupFunc -> m (GClosure C_MenuButtonCreatePopupFunc)

-- | Generate a function pointer callable from C code, from a
--   C_MenuButtonCreatePopupFunc.
mk_MenuButtonCreatePopupFunc :: C_MenuButtonCreatePopupFunc -> IO (FunPtr C_MenuButtonCreatePopupFunc)

-- | A convenience synonym for Nothing :: Maybe
--   MenuButtonCreatePopupFunc.
noMenuButtonCreatePopupFunc :: Maybe MenuButtonCreatePopupFunc

-- | A convenience synonym for Nothing :: Maybe
--   MenuButtonCreatePopupFunc_WithClosures.
noMenuButtonCreatePopupFunc_WithClosures :: Maybe MenuButtonCreatePopupFunc_WithClosures

-- | Wrap a MenuButtonCreatePopupFunc into a
--   C_MenuButtonCreatePopupFunc.
wrap_MenuButtonCreatePopupFunc :: Maybe (Ptr (FunPtr C_MenuButtonCreatePopupFunc)) -> MenuButtonCreatePopupFunc_WithClosures -> C_MenuButtonCreatePopupFunc

-- | Type for the callback on the (unwrapped) C side.
type C_PageSetupDoneFunc = Ptr PageSetup -> Ptr () -> IO ()

-- | The type of function that is passed to
--   printRunPageSetupDialogAsync.
--   
--   This function will be called when the page setup dialog is dismissed,
--   and also serves as destroy notify for data.
type PageSetupDoneFunc = PageSetup -> IO ()

-- | The type of function that is passed to
--   printRunPageSetupDialogAsync.
--   
--   This function will be called when the page setup dialog is dismissed,
--   and also serves as destroy notify for data.
type PageSetupDoneFunc_WithClosures = PageSetup -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PageSetupDoneFunc :: PageSetupDoneFunc -> PageSetupDoneFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PageSetupDoneFunc :: (HasCallStack, MonadIO m, IsPageSetup a) => FunPtr C_PageSetupDoneFunc -> a -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PageSetupDoneFunc :: MonadIO m => PageSetupDoneFunc -> m (GClosure C_PageSetupDoneFunc)

-- | Generate a function pointer callable from C code, from a
--   C_PageSetupDoneFunc.
mk_PageSetupDoneFunc :: C_PageSetupDoneFunc -> IO (FunPtr C_PageSetupDoneFunc)

-- | A convenience synonym for Nothing :: Maybe
--   PageSetupDoneFunc.
noPageSetupDoneFunc :: Maybe PageSetupDoneFunc

-- | A convenience synonym for Nothing :: Maybe
--   PageSetupDoneFunc_WithClosures.
noPageSetupDoneFunc_WithClosures :: Maybe PageSetupDoneFunc_WithClosures

-- | Wrap a PageSetupDoneFunc into a C_PageSetupDoneFunc.
wrap_PageSetupDoneFunc :: Maybe (Ptr (FunPtr C_PageSetupDoneFunc)) -> PageSetupDoneFunc_WithClosures -> C_PageSetupDoneFunc

-- | Type for the callback on the (unwrapped) C side.
type C_PrintJobCompleteFunc = Ptr PrintJob -> Ptr () -> Ptr GError -> IO ()

-- | The type of callback that is passed to printJobSend.
--   
--   It is called when the print job has been completely sent.
type PrintJobCompleteFunc = PrintJob -> GError -> IO ()

-- | The type of callback that is passed to printJobSend.
--   
--   It is called when the print job has been completely sent.
type PrintJobCompleteFunc_WithClosures = PrintJob -> Ptr () -> GError -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PrintJobCompleteFunc :: PrintJobCompleteFunc -> PrintJobCompleteFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PrintJobCompleteFunc :: (HasCallStack, MonadIO m, IsPrintJob a) => FunPtr C_PrintJobCompleteFunc -> a -> Ptr () -> GError -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PrintJobCompleteFunc :: MonadIO m => PrintJobCompleteFunc -> m (GClosure C_PrintJobCompleteFunc)

-- | Generate a function pointer callable from C code, from a
--   C_PrintJobCompleteFunc.
mk_PrintJobCompleteFunc :: C_PrintJobCompleteFunc -> IO (FunPtr C_PrintJobCompleteFunc)

-- | A convenience synonym for Nothing :: Maybe
--   PrintJobCompleteFunc.
noPrintJobCompleteFunc :: Maybe PrintJobCompleteFunc

-- | A convenience synonym for Nothing :: Maybe
--   PrintJobCompleteFunc_WithClosures.
noPrintJobCompleteFunc_WithClosures :: Maybe PrintJobCompleteFunc_WithClosures

-- | Wrap a PrintJobCompleteFunc into a
--   C_PrintJobCompleteFunc.
wrap_PrintJobCompleteFunc :: Maybe (Ptr (FunPtr C_PrintJobCompleteFunc)) -> PrintJobCompleteFunc_WithClosures -> C_PrintJobCompleteFunc

-- | Type for the callback on the (unwrapped) C side.
type C_PrintSettingsFunc = CString -> CString -> Ptr () -> IO ()

-- | Function called by printSettingsForeach on every key/value pair
--   inside a PrintSettings.
type PrintSettingsFunc = Text -> Text -> IO ()

-- | Function called by printSettingsForeach on every key/value pair
--   inside a PrintSettings.
type PrintSettingsFunc_WithClosures = Text -> Text -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PrintSettingsFunc :: PrintSettingsFunc -> PrintSettingsFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PrintSettingsFunc :: (HasCallStack, MonadIO m) => FunPtr C_PrintSettingsFunc -> Text -> Text -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_PrintSettingsFunc :: MonadIO m => PrintSettingsFunc -> m (GClosure C_PrintSettingsFunc)

-- | Generate a function pointer callable from C code, from a
--   C_PrintSettingsFunc.
mk_PrintSettingsFunc :: C_PrintSettingsFunc -> IO (FunPtr C_PrintSettingsFunc)

-- | A convenience synonym for Nothing :: Maybe
--   PrintSettingsFunc.
noPrintSettingsFunc :: Maybe PrintSettingsFunc

-- | A convenience synonym for Nothing :: Maybe
--   PrintSettingsFunc_WithClosures.
noPrintSettingsFunc_WithClosures :: Maybe PrintSettingsFunc_WithClosures

-- | Wrap a PrintSettingsFunc into a C_PrintSettingsFunc.
wrap_PrintSettingsFunc :: Maybe (Ptr (FunPtr C_PrintSettingsFunc)) -> PrintSettingsFunc_WithClosures -> C_PrintSettingsFunc

-- | Type for the callback on the (unwrapped) C side.
type C_PrinterFunc = Ptr Printer -> Ptr () -> IO CInt

-- | The type of function passed to enumeratePrinters.
--   
--   Note that you need to ref printer, if you want to keep
--   a reference to it after the function has returned.
type PrinterFunc = Printer -> IO Bool

-- | The type of function passed to enumeratePrinters.
--   
--   Note that you need to ref printer, if you want to keep
--   a reference to it after the function has returned.
type PrinterFunc_WithClosures = Printer -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PrinterFunc :: PrinterFunc -> PrinterFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PrinterFunc :: (HasCallStack, MonadIO m, IsPrinter a) => FunPtr C_PrinterFunc -> a -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_PrinterFunc :: MonadIO m => PrinterFunc -> m (GClosure C_PrinterFunc)

-- | Generate a function pointer callable from C code, from a
--   C_PrinterFunc.
mk_PrinterFunc :: C_PrinterFunc -> IO (FunPtr C_PrinterFunc)

-- | A convenience synonym for Nothing :: Maybe
--   PrinterFunc.
noPrinterFunc :: Maybe PrinterFunc

-- | A convenience synonym for Nothing :: Maybe
--   PrinterFunc_WithClosures.
noPrinterFunc_WithClosures :: Maybe PrinterFunc_WithClosures

-- | Wrap a PrinterFunc into a C_PrinterFunc.
wrap_PrinterFunc :: Maybe (Ptr (FunPtr C_PrinterFunc)) -> PrinterFunc_WithClosures -> C_PrinterFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ScaleFormatValueFunc = Ptr Scale -> CDouble -> Ptr () -> IO CString

-- | Function that formats the value of a scale.
--   
--   See scaleSetFormatValueFunc.
type ScaleFormatValueFunc = Scale -> Double -> IO Text

-- | Function that formats the value of a scale.
--   
--   See scaleSetFormatValueFunc.
type ScaleFormatValueFunc_WithClosures = Scale -> Double -> Ptr () -> IO Text

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ScaleFormatValueFunc :: ScaleFormatValueFunc -> ScaleFormatValueFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ScaleFormatValueFunc :: (HasCallStack, MonadIO m, IsScale a) => FunPtr C_ScaleFormatValueFunc -> a -> Double -> Ptr () -> m Text

-- | Wrap the callback into a GClosure.
genClosure_ScaleFormatValueFunc :: MonadIO m => ScaleFormatValueFunc -> m (GClosure C_ScaleFormatValueFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ScaleFormatValueFunc.
mk_ScaleFormatValueFunc :: C_ScaleFormatValueFunc -> IO (FunPtr C_ScaleFormatValueFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ScaleFormatValueFunc.
noScaleFormatValueFunc :: Maybe ScaleFormatValueFunc

-- | A convenience synonym for Nothing :: Maybe
--   ScaleFormatValueFunc_WithClosures.
noScaleFormatValueFunc_WithClosures :: Maybe ScaleFormatValueFunc_WithClosures

-- | Wrap a ScaleFormatValueFunc into a
--   C_ScaleFormatValueFunc.
wrap_ScaleFormatValueFunc :: Maybe (Ptr (FunPtr C_ScaleFormatValueFunc)) -> ScaleFormatValueFunc_WithClosures -> C_ScaleFormatValueFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ShortcutFunc = Ptr Widget -> Ptr GVariant -> Ptr () -> IO CInt

-- | Type for shortcuts based on user callbacks.
type ShortcutFunc = Widget -> Maybe GVariant -> IO Bool

-- | Type for shortcuts based on user callbacks.
type ShortcutFunc_WithClosures = Widget -> Maybe GVariant -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ShortcutFunc :: ShortcutFunc -> ShortcutFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ShortcutFunc :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_ShortcutFunc -> a -> Maybe GVariant -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_ShortcutFunc :: MonadIO m => ShortcutFunc -> m (GClosure C_ShortcutFunc)

-- | Generate a function pointer callable from C code, from a
--   C_ShortcutFunc.
mk_ShortcutFunc :: C_ShortcutFunc -> IO (FunPtr C_ShortcutFunc)

-- | A convenience synonym for Nothing :: Maybe
--   ShortcutFunc.
noShortcutFunc :: Maybe ShortcutFunc

-- | A convenience synonym for Nothing :: Maybe
--   ShortcutFunc_WithClosures.
noShortcutFunc_WithClosures :: Maybe ShortcutFunc_WithClosures

-- | Wrap a ShortcutFunc into a C_ShortcutFunc.
wrap_ShortcutFunc :: Maybe (Ptr (FunPtr C_ShortcutFunc)) -> ShortcutFunc_WithClosures -> C_ShortcutFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TextBufferCommitNotify = Ptr TextBuffer -> CUInt -> Word32 -> Word32 -> Ptr () -> IO ()

-- | A notification callback used by textBufferAddCommitNotify.
--   
--   You may not modify the TextBuffer from a
--   [callbackgtk.TextBufferCommitNotify] callback and that
--   is enforced by the TextBuffer API.
--   
--   
--   
- callbackgtk.TextBufferCommitNotify may be
--   used to be notified about changes to the underlying buffer right
--   before-or-after the changes are committed to the underlying B-Tree.
--   This is useful if you want to observe changes to the buffer without
--   other signal handlers potentially modifying state on the way to the
--   default signal handler.
--   
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_BEFORE_INSERT, position is
--   set to the offset in characters from the start of the buffer where the
--   insertion will occur. length is set to the number of
--   characters to be inserted. You may not yet retrieve the text until it
--   has been inserted. You may access the text from
--   GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT using
--   textBufferGetSlice.
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT, position is set
--   to offset in characters where the insertion occurred and
--   length is set to the number of characters inserted.
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_BEFORE_DELETE, position is
--   set to offset in characters where the deletion will occur and
--   length is set to the number of characters that will be
--   removed. You may still retrieve the text from this handler using
--   position and length.
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_AFTER_DELETE, length is set
--   to zero to denote that the delete-range has already been committed to
--   the underlying B-Tree. You may no longer retrieve the text that has
--   been deleted from the TextBuffer.
--   
--   Since: 4.16
type TextBufferCommitNotify = TextBuffer -> [TextBufferNotifyFlags] -> Word32 -> Word32 -> IO ()

-- | A notification callback used by textBufferAddCommitNotify.
--   
--   You may not modify the TextBuffer from a
--   [callbackgtk.TextBufferCommitNotify] callback and that
--   is enforced by the TextBuffer API.
--   
--   
--   
- callbackgtk.TextBufferCommitNotify may be
--   used to be notified about changes to the underlying buffer right
--   before-or-after the changes are committed to the underlying B-Tree.
--   This is useful if you want to observe changes to the buffer without
--   other signal handlers potentially modifying state on the way to the
--   default signal handler.
--   
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_BEFORE_INSERT, position is
--   set to the offset in characters from the start of the buffer where the
--   insertion will occur. length is set to the number of
--   characters to be inserted. You may not yet retrieve the text until it
--   has been inserted. You may access the text from
--   GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT using
--   textBufferGetSlice.
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_AFTER_INSERT, position is set
--   to offset in characters where the insertion occurred and
--   length is set to the number of characters inserted.
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_BEFORE_DELETE, position is
--   set to offset in characters where the deletion will occur and
--   length is set to the number of characters that will be
--   removed. You may still retrieve the text from this handler using
--   position and length.
--   
--   When flags is
--   GTK_TEXT_BUFFER_NOTIFY_AFTER_DELETE, length is set
--   to zero to denote that the delete-range has already been committed to
--   the underlying B-Tree. You may no longer retrieve the text that has
--   been deleted from the TextBuffer.
--   
--   Since: 4.16
type TextBufferCommitNotify_WithClosures = TextBuffer -> [TextBufferNotifyFlags] -> Word32 -> Word32 -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextBufferCommitNotify :: TextBufferCommitNotify -> TextBufferCommitNotify_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TextBufferCommitNotify :: (HasCallStack, MonadIO m, IsTextBuffer a) => FunPtr C_TextBufferCommitNotify -> a -> [TextBufferNotifyFlags] -> Word32 -> Word32 -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_TextBufferCommitNotify :: MonadIO m => TextBufferCommitNotify -> m (GClosure C_TextBufferCommitNotify)

-- | Generate a function pointer callable from C code, from a
--   C_TextBufferCommitNotify.
mk_TextBufferCommitNotify :: C_TextBufferCommitNotify -> IO (FunPtr C_TextBufferCommitNotify)

-- | A convenience synonym for Nothing :: Maybe
--   TextBufferCommitNotify.
noTextBufferCommitNotify :: Maybe TextBufferCommitNotify

-- | A convenience synonym for Nothing :: Maybe
--   TextBufferCommitNotify_WithClosures.
noTextBufferCommitNotify_WithClosures :: Maybe TextBufferCommitNotify_WithClosures

-- | Wrap a TextBufferCommitNotify into a
--   C_TextBufferCommitNotify.
wrap_TextBufferCommitNotify :: Maybe (Ptr (FunPtr C_TextBufferCommitNotify)) -> TextBufferCommitNotify_WithClosures -> C_TextBufferCommitNotify

-- | Type for the callback on the (unwrapped) C side.
type C_TextCharPredicate = CInt -> Ptr () -> IO CInt

-- | The predicate function used by textIterForwardFindChar and
--   textIterBackwardFindChar.
type TextCharPredicate = Char -> IO Bool

-- | The predicate function used by textIterForwardFindChar and
--   textIterBackwardFindChar.
type TextCharPredicate_WithClosures = Char -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextCharPredicate :: TextCharPredicate -> TextCharPredicate_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TextCharPredicate :: (HasCallStack, MonadIO m) => FunPtr C_TextCharPredicate -> Char -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TextCharPredicate :: MonadIO m => TextCharPredicate -> m (GClosure C_TextCharPredicate)

-- | Generate a function pointer callable from C code, from a
--   C_TextCharPredicate.
mk_TextCharPredicate :: C_TextCharPredicate -> IO (FunPtr C_TextCharPredicate)

-- | A convenience synonym for Nothing :: Maybe
--   TextCharPredicate.
noTextCharPredicate :: Maybe TextCharPredicate

-- | A convenience synonym for Nothing :: Maybe
--   TextCharPredicate_WithClosures.
noTextCharPredicate_WithClosures :: Maybe TextCharPredicate_WithClosures

-- | Wrap a TextCharPredicate into a C_TextCharPredicate.
wrap_TextCharPredicate :: Maybe (Ptr (FunPtr C_TextCharPredicate)) -> TextCharPredicate_WithClosures -> C_TextCharPredicate

-- | Type for the callback on the (unwrapped) C side.
type C_TextTagTableForeach = Ptr TextTag -> Ptr () -> IO ()

-- | A function used with textTagTableForeach, to iterate over every
--   GtkTextTag inside a GtkTextTagTable.
type TextTagTableForeach = TextTag -> IO ()

-- | A function used with textTagTableForeach, to iterate over every
--   GtkTextTag inside a GtkTextTagTable.
type TextTagTableForeach_WithClosures = TextTag -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextTagTableForeach :: TextTagTableForeach -> TextTagTableForeach_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TextTagTableForeach :: (HasCallStack, MonadIO m, IsTextTag a) => FunPtr C_TextTagTableForeach -> a -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_TextTagTableForeach :: MonadIO m => TextTagTableForeach -> m (GClosure C_TextTagTableForeach)

-- | Generate a function pointer callable from C code, from a
--   C_TextTagTableForeach.
mk_TextTagTableForeach :: C_TextTagTableForeach -> IO (FunPtr C_TextTagTableForeach)

-- | A convenience synonym for Nothing :: Maybe
--   TextTagTableForeach.
noTextTagTableForeach :: Maybe TextTagTableForeach

-- | A convenience synonym for Nothing :: Maybe
--   TextTagTableForeach_WithClosures.
noTextTagTableForeach_WithClosures :: Maybe TextTagTableForeach_WithClosures

-- | Wrap a TextTagTableForeach into a C_TextTagTableForeach.
wrap_TextTagTableForeach :: Maybe (Ptr (FunPtr C_TextTagTableForeach)) -> TextTagTableForeach_WithClosures -> C_TextTagTableForeach

-- | Type for the callback on the (unwrapped) C side.
type C_TickCallback = Ptr Widget -> Ptr FrameClock -> Ptr () -> IO CInt

-- | Callback type for adding a function to update animations.
--   
--   See widgetAddTickCallback.
type TickCallback = Widget -> FrameClock -> IO Bool

-- | Callback type for adding a function to update animations.
--   
--   See widgetAddTickCallback.
type TickCallback_WithClosures = Widget -> FrameClock -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TickCallback :: TickCallback -> TickCallback_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TickCallback :: (HasCallStack, MonadIO m, IsWidget a, IsFrameClock b) => FunPtr C_TickCallback -> a -> b -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TickCallback :: MonadIO m => TickCallback -> m (GClosure C_TickCallback)

-- | Generate a function pointer callable from C code, from a
--   C_TickCallback.
mk_TickCallback :: C_TickCallback -> IO (FunPtr C_TickCallback)

-- | A convenience synonym for Nothing :: Maybe
--   TickCallback.
noTickCallback :: Maybe TickCallback

-- | A convenience synonym for Nothing :: Maybe
--   TickCallback_WithClosures.
noTickCallback_WithClosures :: Maybe TickCallback_WithClosures

-- | Wrap a TickCallback into a C_TickCallback.
wrap_TickCallback :: Maybe (Ptr (FunPtr C_TickCallback)) -> TickCallback_WithClosures -> C_TickCallback

-- | Type for the callback on the (unwrapped) C side.
type C_TreeCellDataFunc = Ptr TreeViewColumn -> Ptr CellRenderer -> Ptr TreeModel -> Ptr TreeIter -> Ptr () -> IO ()

-- | A function to set the properties of a cell instead of just using the
--   straight mapping between the cell and the model.
--   
--   This function is useful for customizing the cell renderer. For
--   example, a function might get an* integer from the
--   treeModel, and render it to the “text” attribute of
--   “cell” by converting it to its written equivalent.
--   
--   See also: treeViewColumnSetCellDataFunc

-- | Deprecated: (Since version 4.20)There is no replacement
type TreeCellDataFunc = TreeViewColumn -> CellRenderer -> TreeModel -> TreeIter -> IO ()

-- | A function to set the properties of a cell instead of just using the
--   straight mapping between the cell and the model.
--   
--   This function is useful for customizing the cell renderer. For
--   example, a function might get an* integer from the
--   treeModel, and render it to the “text” attribute of
--   “cell” by converting it to its written equivalent.
--   
--   See also: treeViewColumnSetCellDataFunc
type TreeCellDataFunc_WithClosures = TreeViewColumn -> CellRenderer -> TreeModel -> TreeIter -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeCellDataFunc :: TreeCellDataFunc -> TreeCellDataFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeCellDataFunc :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b, IsTreeModel c) => FunPtr C_TreeCellDataFunc -> a -> b -> c -> TreeIter -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_TreeCellDataFunc :: MonadIO m => TreeCellDataFunc -> m (GClosure C_TreeCellDataFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeCellDataFunc.
mk_TreeCellDataFunc :: C_TreeCellDataFunc -> IO (FunPtr C_TreeCellDataFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeCellDataFunc.
noTreeCellDataFunc :: Maybe TreeCellDataFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeCellDataFunc_WithClosures.
noTreeCellDataFunc_WithClosures :: Maybe TreeCellDataFunc_WithClosures

-- | Wrap a TreeCellDataFunc into a C_TreeCellDataFunc.
wrap_TreeCellDataFunc :: Maybe (Ptr (FunPtr C_TreeCellDataFunc)) -> TreeCellDataFunc_WithClosures -> C_TreeCellDataFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeIterCompareFunc = Ptr TreeModel -> Ptr TreeIter -> Ptr TreeIter -> Ptr () -> IO Int32

-- | A GtkTreeIterCompareFunc should return a negative integer, zero, or a
--   positive integer if a sorts before b,
--   a sorts with b, or a
--   sorts after b respectively.
--   
--   If two iters compare as equal, their order in the sorted model is
--   undefined. In order to ensure that the GtkTreeSortable
--   behaves as expected, the GtkTreeIterCompareFunc must define a partial
--   order on the model, i.e. it must be reflexive, antisymmetric and
--   transitive.
--   
--   For example, if model is a product catalogue, then a
--   compare function for the “price” column could be one which returns
--   price_of(@a) - price_of(@b).

-- | Deprecated: (Since version 4.20)There is no replacement
type TreeIterCompareFunc = TreeModel -> TreeIter -> TreeIter -> IO Int32

-- | A GtkTreeIterCompareFunc should return a negative integer, zero, or a
--   positive integer if a sorts before b,
--   a sorts with b, or a
--   sorts after b respectively.
--   
--   If two iters compare as equal, their order in the sorted model is
--   undefined. In order to ensure that the GtkTreeSortable
--   behaves as expected, the GtkTreeIterCompareFunc must define a partial
--   order on the model, i.e. it must be reflexive, antisymmetric and
--   transitive.
--   
--   For example, if model is a product catalogue, then a
--   compare function for the “price” column could be one which returns
--   price_of(@a) - price_of(@b).
type TreeIterCompareFunc_WithClosures = TreeModel -> TreeIter -> TreeIter -> Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeIterCompareFunc :: TreeIterCompareFunc -> TreeIterCompareFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeIterCompareFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeIterCompareFunc -> a -> TreeIter -> TreeIter -> Ptr () -> m Int32

-- | Wrap the callback into a GClosure.
genClosure_TreeIterCompareFunc :: MonadIO m => TreeIterCompareFunc -> m (GClosure C_TreeIterCompareFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeIterCompareFunc.
mk_TreeIterCompareFunc :: C_TreeIterCompareFunc -> IO (FunPtr C_TreeIterCompareFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeIterCompareFunc.
noTreeIterCompareFunc :: Maybe TreeIterCompareFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeIterCompareFunc_WithClosures.
noTreeIterCompareFunc_WithClosures :: Maybe TreeIterCompareFunc_WithClosures

-- | Wrap a TreeIterCompareFunc into a C_TreeIterCompareFunc.
wrap_TreeIterCompareFunc :: Maybe (Ptr (FunPtr C_TreeIterCompareFunc)) -> TreeIterCompareFunc_WithClosures -> C_TreeIterCompareFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeListModelCreateModelFunc = Ptr Object -> Ptr () -> IO Ptr ListModel

-- | Prototype of the function called to create new child models when
--   treeListRowSetExpanded is called.
--   
--   This function can return Nothing to indicate that
--   item is guaranteed to be a leaf node and will never
--   have children. If it does not have children but may get children
--   later, it should return an empty model that is filled once children
--   arrive.
type TreeListModelCreateModelFunc = Object -> IO Maybe ListModel

-- | Prototype of the function called to create new child models when
--   treeListRowSetExpanded is called.
--   
--   This function can return Nothing to indicate that
--   item is guaranteed to be a leaf node and will never
--   have children. If it does not have children but may get children
--   later, it should return an empty model that is filled once children
--   arrive.
type TreeListModelCreateModelFunc_WithClosures = Object -> Ptr () -> IO Maybe ListModel

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeListModelCreateModelFunc :: TreeListModelCreateModelFunc -> TreeListModelCreateModelFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeListModelCreateModelFunc :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_TreeListModelCreateModelFunc -> a -> Ptr () -> m (Maybe ListModel)

-- | Wrap the callback into a GClosure.
genClosure_TreeListModelCreateModelFunc :: MonadIO m => TreeListModelCreateModelFunc -> m (GClosure C_TreeListModelCreateModelFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeListModelCreateModelFunc.
mk_TreeListModelCreateModelFunc :: C_TreeListModelCreateModelFunc -> IO (FunPtr C_TreeListModelCreateModelFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeListModelCreateModelFunc.
noTreeListModelCreateModelFunc :: Maybe TreeListModelCreateModelFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeListModelCreateModelFunc_WithClosures.
noTreeListModelCreateModelFunc_WithClosures :: Maybe TreeListModelCreateModelFunc_WithClosures

-- | Wrap a TreeListModelCreateModelFunc into a
--   C_TreeListModelCreateModelFunc.
wrap_TreeListModelCreateModelFunc :: Maybe (Ptr (FunPtr C_TreeListModelCreateModelFunc)) -> TreeListModelCreateModelFunc_WithClosures -> C_TreeListModelCreateModelFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeModelFilterModifyFunc = Ptr TreeModel -> Ptr TreeIter -> Ptr GValue -> Int32 -> Ptr () -> IO ()

-- | A function which calculates display values from raw values in the
--   model. It must fill value with the display value for
--   the column column in the row indicated by
--   iter.
--   
--   Since this function is called for each data access, it’s not a
--   particularly efficient operation.

-- | Deprecated: (Since version 4.20)There is no replacement
type TreeModelFilterModifyFunc = TreeModel -> TreeIter -> GValue -> Int32 -> IO ()

-- | A function which calculates display values from raw values in the
--   model. It must fill value with the display value for
--   the column column in the row indicated by
--   iter.
--   
--   Since this function is called for each data access, it’s not a
--   particularly efficient operation.
type TreeModelFilterModifyFunc_WithClosures = TreeModel -> TreeIter -> GValue -> Int32 -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeModelFilterModifyFunc :: TreeModelFilterModifyFunc -> TreeModelFilterModifyFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeModelFilterModifyFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeModelFilterModifyFunc -> a -> TreeIter -> GValue -> Int32 -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_TreeModelFilterModifyFunc :: MonadIO m => TreeModelFilterModifyFunc -> m (GClosure C_TreeModelFilterModifyFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeModelFilterModifyFunc.
mk_TreeModelFilterModifyFunc :: C_TreeModelFilterModifyFunc -> IO (FunPtr C_TreeModelFilterModifyFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeModelFilterModifyFunc.
noTreeModelFilterModifyFunc :: Maybe TreeModelFilterModifyFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeModelFilterModifyFunc_WithClosures.
noTreeModelFilterModifyFunc_WithClosures :: Maybe TreeModelFilterModifyFunc_WithClosures

-- | Wrap a TreeModelFilterModifyFunc into a
--   C_TreeModelFilterModifyFunc.
wrap_TreeModelFilterModifyFunc :: Maybe (Ptr (FunPtr C_TreeModelFilterModifyFunc)) -> TreeModelFilterModifyFunc_WithClosures -> C_TreeModelFilterModifyFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeModelFilterVisibleFunc = Ptr TreeModel -> Ptr TreeIter -> Ptr () -> IO CInt

-- | A function which decides whether the row indicated by
--   iter is visible.

-- | Deprecated: (Since version 4.20)There is no replacement
type TreeModelFilterVisibleFunc = TreeModel -> TreeIter -> IO Bool

-- | A function which decides whether the row indicated by
--   iter is visible.
type TreeModelFilterVisibleFunc_WithClosures = TreeModel -> TreeIter -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeModelFilterVisibleFunc :: TreeModelFilterVisibleFunc -> TreeModelFilterVisibleFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeModelFilterVisibleFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeModelFilterVisibleFunc -> a -> TreeIter -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TreeModelFilterVisibleFunc :: MonadIO m => TreeModelFilterVisibleFunc -> m (GClosure C_TreeModelFilterVisibleFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeModelFilterVisibleFunc.
mk_TreeModelFilterVisibleFunc :: C_TreeModelFilterVisibleFunc -> IO (FunPtr C_TreeModelFilterVisibleFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeModelFilterVisibleFunc.
noTreeModelFilterVisibleFunc :: Maybe TreeModelFilterVisibleFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeModelFilterVisibleFunc_WithClosures.
noTreeModelFilterVisibleFunc_WithClosures :: Maybe TreeModelFilterVisibleFunc_WithClosures

-- | Wrap a TreeModelFilterVisibleFunc into a
--   C_TreeModelFilterVisibleFunc.
wrap_TreeModelFilterVisibleFunc :: Maybe (Ptr (FunPtr C_TreeModelFilterVisibleFunc)) -> TreeModelFilterVisibleFunc_WithClosures -> C_TreeModelFilterVisibleFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeModelForeachFunc = Ptr TreeModel -> Ptr TreePath -> Ptr TreeIter -> Ptr () -> IO CInt

-- | Type of the callback passed to treeModelForeach to iterate over
--   the rows in a tree model.

-- | Deprecated: (Since version 4.20)There is no replacement.
type TreeModelForeachFunc = TreeModel -> TreePath -> TreeIter -> IO Bool

-- | Type of the callback passed to treeModelForeach to iterate over
--   the rows in a tree model.
type TreeModelForeachFunc_WithClosures = TreeModel -> TreePath -> TreeIter -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeModelForeachFunc :: TreeModelForeachFunc -> TreeModelForeachFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeModelForeachFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeModelForeachFunc -> a -> TreePath -> TreeIter -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TreeModelForeachFunc :: MonadIO m => TreeModelForeachFunc -> m (GClosure C_TreeModelForeachFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeModelForeachFunc.
mk_TreeModelForeachFunc :: C_TreeModelForeachFunc -> IO (FunPtr C_TreeModelForeachFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeModelForeachFunc.
noTreeModelForeachFunc :: Maybe TreeModelForeachFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeModelForeachFunc_WithClosures.
noTreeModelForeachFunc_WithClosures :: Maybe TreeModelForeachFunc_WithClosures

-- | Wrap a TreeModelForeachFunc into a
--   C_TreeModelForeachFunc.
wrap_TreeModelForeachFunc :: Maybe (Ptr (FunPtr C_TreeModelForeachFunc)) -> TreeModelForeachFunc_WithClosures -> C_TreeModelForeachFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeSelectionForeachFunc = Ptr TreeModel -> Ptr TreePath -> Ptr TreeIter -> Ptr () -> IO ()

-- | A function used by treeSelectionSelectedForeach to map all
--   selected rows. It will be called on every selected row in the view.

-- | Deprecated: (Since version 4.20)There is no replacement
type TreeSelectionForeachFunc = TreeModel -> TreePath -> TreeIter -> IO ()

-- | A function used by treeSelectionSelectedForeach to map all
--   selected rows. It will be called on every selected row in the view.
type TreeSelectionForeachFunc_WithClosures = TreeModel -> TreePath -> TreeIter -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeSelectionForeachFunc :: TreeSelectionForeachFunc -> TreeSelectionForeachFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeSelectionForeachFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeSelectionForeachFunc -> a -> TreePath -> TreeIter -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_TreeSelectionForeachFunc :: MonadIO m => TreeSelectionForeachFunc -> m (GClosure C_TreeSelectionForeachFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeSelectionForeachFunc.
mk_TreeSelectionForeachFunc :: C_TreeSelectionForeachFunc -> IO (FunPtr C_TreeSelectionForeachFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeSelectionForeachFunc.
noTreeSelectionForeachFunc :: Maybe TreeSelectionForeachFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeSelectionForeachFunc_WithClosures.
noTreeSelectionForeachFunc_WithClosures :: Maybe TreeSelectionForeachFunc_WithClosures

-- | Wrap a TreeSelectionForeachFunc into a
--   C_TreeSelectionForeachFunc.
wrap_TreeSelectionForeachFunc :: Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc)) -> TreeSelectionForeachFunc_WithClosures -> C_TreeSelectionForeachFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeSelectionFunc = Ptr TreeSelection -> Ptr TreeModel -> Ptr TreePath -> CInt -> Ptr () -> IO CInt

-- | A function used by treeSelectionSetSelectFunction to filter
--   whether or not a row may be selected. It is called whenever a row's
--   state might change.
--   
--   A return value of True indicates to selection
--   that it is okay to change the selection.

-- | Deprecated: (Since version 4.20)There is no replacement
type TreeSelectionFunc = TreeSelection -> TreeModel -> TreePath -> Bool -> IO Bool

-- | A function used by treeSelectionSetSelectFunction to filter
--   whether or not a row may be selected. It is called whenever a row's
--   state might change.
--   
--   A return value of True indicates to selection
--   that it is okay to change the selection.
type TreeSelectionFunc_WithClosures = TreeSelection -> TreeModel -> TreePath -> Bool -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeSelectionFunc :: TreeSelectionFunc -> TreeSelectionFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeSelectionFunc :: (HasCallStack, MonadIO m, IsTreeSelection a, IsTreeModel b) => FunPtr C_TreeSelectionFunc -> a -> b -> TreePath -> Bool -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TreeSelectionFunc :: MonadIO m => TreeSelectionFunc -> m (GClosure C_TreeSelectionFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeSelectionFunc.
mk_TreeSelectionFunc :: C_TreeSelectionFunc -> IO (FunPtr C_TreeSelectionFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeSelectionFunc.
noTreeSelectionFunc :: Maybe TreeSelectionFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeSelectionFunc_WithClosures.
noTreeSelectionFunc_WithClosures :: Maybe TreeSelectionFunc_WithClosures

-- | Wrap a TreeSelectionFunc into a C_TreeSelectionFunc.
wrap_TreeSelectionFunc :: Maybe (Ptr (FunPtr C_TreeSelectionFunc)) -> TreeSelectionFunc_WithClosures -> C_TreeSelectionFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewColumnDropFunc = Ptr TreeView -> Ptr TreeViewColumn -> Ptr TreeViewColumn -> Ptr TreeViewColumn -> Ptr () -> IO CInt

-- | Function type for determining whether column can be
--   dropped in a particular spot (as determined by
--   prevColumn and nextColumn). In left to
--   right locales, prevColumn is on the left of the
--   potential drop spot, and nextColumn is on the right.
--   In right to left mode, this is reversed. This function should return
--   True if the spot is a valid drop spot. Please note that
--   returning True does not actually indicate that the column drop
--   was made, but is meant only to indicate a possible drop spot to the
--   user.

-- | Deprecated: (Since version 4.20)There is no replacement.
type TreeViewColumnDropFunc = TreeView -> TreeViewColumn -> TreeViewColumn -> TreeViewColumn -> IO Bool

-- | Function type for determining whether column can be
--   dropped in a particular spot (as determined by
--   prevColumn and nextColumn). In left to
--   right locales, prevColumn is on the left of the
--   potential drop spot, and nextColumn is on the right.
--   In right to left mode, this is reversed. This function should return
--   True if the spot is a valid drop spot. Please note that
--   returning True does not actually indicate that the column drop
--   was made, but is meant only to indicate a possible drop spot to the
--   user.
type TreeViewColumnDropFunc_WithClosures = TreeView -> TreeViewColumn -> TreeViewColumn -> TreeViewColumn -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewColumnDropFunc :: TreeViewColumnDropFunc -> TreeViewColumnDropFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeViewColumnDropFunc :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b, IsTreeViewColumn c, IsTreeViewColumn d) => FunPtr C_TreeViewColumnDropFunc -> a -> b -> c -> d -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TreeViewColumnDropFunc :: MonadIO m => TreeViewColumnDropFunc -> m (GClosure C_TreeViewColumnDropFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeViewColumnDropFunc.
mk_TreeViewColumnDropFunc :: C_TreeViewColumnDropFunc -> IO (FunPtr C_TreeViewColumnDropFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewColumnDropFunc.
noTreeViewColumnDropFunc :: Maybe TreeViewColumnDropFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewColumnDropFunc_WithClosures.
noTreeViewColumnDropFunc_WithClosures :: Maybe TreeViewColumnDropFunc_WithClosures

-- | Wrap a TreeViewColumnDropFunc into a
--   C_TreeViewColumnDropFunc.
wrap_TreeViewColumnDropFunc :: Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc)) -> TreeViewColumnDropFunc_WithClosures -> C_TreeViewColumnDropFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewMappingFunc = Ptr TreeView -> Ptr TreePath -> Ptr () -> IO ()

-- | Function used for treeViewMapExpandedRows.

-- | Deprecated: (Since version 4.20)There is no replacement.
type TreeViewMappingFunc = TreeView -> TreePath -> IO ()

-- | Function used for treeViewMapExpandedRows.
type TreeViewMappingFunc_WithClosures = TreeView -> TreePath -> Ptr () -> IO ()

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewMappingFunc :: TreeViewMappingFunc -> TreeViewMappingFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeViewMappingFunc :: (HasCallStack, MonadIO m, IsTreeView a) => FunPtr C_TreeViewMappingFunc -> a -> TreePath -> Ptr () -> m ()

-- | Wrap the callback into a GClosure.
genClosure_TreeViewMappingFunc :: MonadIO m => TreeViewMappingFunc -> m (GClosure C_TreeViewMappingFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeViewMappingFunc.
mk_TreeViewMappingFunc :: C_TreeViewMappingFunc -> IO (FunPtr C_TreeViewMappingFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewMappingFunc.
noTreeViewMappingFunc :: Maybe TreeViewMappingFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewMappingFunc_WithClosures.
noTreeViewMappingFunc_WithClosures :: Maybe TreeViewMappingFunc_WithClosures

-- | Wrap a TreeViewMappingFunc into a C_TreeViewMappingFunc.
wrap_TreeViewMappingFunc :: Maybe (Ptr (FunPtr C_TreeViewMappingFunc)) -> TreeViewMappingFunc_WithClosures -> C_TreeViewMappingFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewRowSeparatorFunc = Ptr TreeModel -> Ptr TreeIter -> Ptr () -> IO CInt

-- | Function type for determining whether the row pointed to by
--   iter should be rendered as a separator. A common way
--   to implement this is to have a boolean column in the model, whose
--   values the GtkTreeViewRowSeparatorFunc returns.

-- | Deprecated: (Since version 4.20)There is no replacement.
type TreeViewRowSeparatorFunc = TreeModel -> TreeIter -> IO Bool

-- | Function type for determining whether the row pointed to by
--   iter should be rendered as a separator. A common way
--   to implement this is to have a boolean column in the model, whose
--   values the GtkTreeViewRowSeparatorFunc returns.
type TreeViewRowSeparatorFunc_WithClosures = TreeModel -> TreeIter -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewRowSeparatorFunc :: TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeViewRowSeparatorFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeViewRowSeparatorFunc -> a -> TreeIter -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TreeViewRowSeparatorFunc :: MonadIO m => TreeViewRowSeparatorFunc -> m (GClosure C_TreeViewRowSeparatorFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeViewRowSeparatorFunc.
mk_TreeViewRowSeparatorFunc :: C_TreeViewRowSeparatorFunc -> IO (FunPtr C_TreeViewRowSeparatorFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewRowSeparatorFunc.
noTreeViewRowSeparatorFunc :: Maybe TreeViewRowSeparatorFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewRowSeparatorFunc_WithClosures.
noTreeViewRowSeparatorFunc_WithClosures :: Maybe TreeViewRowSeparatorFunc_WithClosures

-- | Wrap a TreeViewRowSeparatorFunc into a
--   C_TreeViewRowSeparatorFunc.
wrap_TreeViewRowSeparatorFunc :: Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc)) -> TreeViewRowSeparatorFunc_WithClosures -> C_TreeViewRowSeparatorFunc

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewSearchEqualFunc = Ptr TreeModel -> Int32 -> CString -> Ptr TreeIter -> Ptr () -> IO CInt

-- | A function used for checking whether a row in model
--   matches a search key string entered by the user. Note the return value
--   is reversed from what you would normally expect, though it has some
--   similarity to strcmp() returning 0 for equal strings.

-- | Deprecated: (Since version 4.20)There is no replacement.
type TreeViewSearchEqualFunc = TreeModel -> Int32 -> Text -> TreeIter -> IO Bool

-- | A function used for checking whether a row in model
--   matches a search key string entered by the user. Note the return value
--   is reversed from what you would normally expect, though it has some
--   similarity to strcmp() returning 0 for equal strings.
type TreeViewSearchEqualFunc_WithClosures = TreeModel -> Int32 -> Text -> TreeIter -> Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewSearchEqualFunc :: TreeViewSearchEqualFunc -> TreeViewSearchEqualFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_TreeViewSearchEqualFunc :: (HasCallStack, MonadIO m, IsTreeModel a) => FunPtr C_TreeViewSearchEqualFunc -> a -> Int32 -> Text -> TreeIter -> Ptr () -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_TreeViewSearchEqualFunc :: MonadIO m => TreeViewSearchEqualFunc -> m (GClosure C_TreeViewSearchEqualFunc)

-- | Generate a function pointer callable from C code, from a
--   C_TreeViewSearchEqualFunc.
mk_TreeViewSearchEqualFunc :: C_TreeViewSearchEqualFunc -> IO (FunPtr C_TreeViewSearchEqualFunc)

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewSearchEqualFunc.
noTreeViewSearchEqualFunc :: Maybe TreeViewSearchEqualFunc

-- | A convenience synonym for Nothing :: Maybe
--   TreeViewSearchEqualFunc_WithClosures.
noTreeViewSearchEqualFunc_WithClosures :: Maybe TreeViewSearchEqualFunc_WithClosures

-- | Wrap a TreeViewSearchEqualFunc into a
--   C_TreeViewSearchEqualFunc.
wrap_TreeViewSearchEqualFunc :: Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc)) -> TreeViewSearchEqualFunc_WithClosures -> C_TreeViewSearchEqualFunc

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetActionActivateFunc = Ptr Widget -> CString -> Ptr GVariant -> IO ()

-- | The type of the callback functions used for activating actions
--   installed with widgetClassInstallAction.
--   
--   The parameter must match the
--   parameterType of the action.
type WidgetActionActivateFunc = Widget -> Text -> Maybe GVariant -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetActionActivateFunc :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetActionActivateFunc -> a -> Text -> Maybe GVariant -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetActionActivateFunc :: MonadIO m => WidgetActionActivateFunc -> m (GClosure C_WidgetActionActivateFunc)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetActionActivateFunc.
mk_WidgetActionActivateFunc :: C_WidgetActionActivateFunc -> IO (FunPtr C_WidgetActionActivateFunc)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetActionActivateFunc.
noWidgetActionActivateFunc :: Maybe WidgetActionActivateFunc

-- | Wrap a WidgetActionActivateFunc into a
--   C_WidgetActionActivateFunc.
wrap_WidgetActionActivateFunc :: Maybe (Ptr (FunPtr C_WidgetActionActivateFunc)) -> WidgetActionActivateFunc -> C_WidgetActionActivateFunc

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassComputeExpandFieldCallback = Ptr Widget -> CInt -> CInt -> IO ()

-- | No description available in the introspection data.
type WidgetClassComputeExpandFieldCallback = Widget -> Bool -> Bool -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassComputeExpandFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassComputeExpandFieldCallback -> a -> Bool -> Bool -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassComputeExpandFieldCallback :: MonadIO m => WidgetClassComputeExpandFieldCallback -> m (GClosure C_WidgetClassComputeExpandFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassComputeExpandFieldCallback.
mk_WidgetClassComputeExpandFieldCallback :: C_WidgetClassComputeExpandFieldCallback -> IO (FunPtr C_WidgetClassComputeExpandFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassComputeExpandFieldCallback.
noWidgetClassComputeExpandFieldCallback :: Maybe WidgetClassComputeExpandFieldCallback

-- | Wrap a WidgetClassComputeExpandFieldCallback into a
--   C_WidgetClassComputeExpandFieldCallback.
wrap_WidgetClassComputeExpandFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback)) -> WidgetClassComputeExpandFieldCallback -> C_WidgetClassComputeExpandFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassContainsFieldCallback = Ptr Widget -> CDouble -> CDouble -> IO CInt

-- | No description available in the introspection data.
type WidgetClassContainsFieldCallback = Widget -> Double -> Double -> IO Bool

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassContainsFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassContainsFieldCallback -> a -> Double -> Double -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassContainsFieldCallback :: MonadIO m => WidgetClassContainsFieldCallback -> m (GClosure C_WidgetClassContainsFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassContainsFieldCallback.
mk_WidgetClassContainsFieldCallback :: C_WidgetClassContainsFieldCallback -> IO (FunPtr C_WidgetClassContainsFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassContainsFieldCallback.
noWidgetClassContainsFieldCallback :: Maybe WidgetClassContainsFieldCallback

-- | Wrap a WidgetClassContainsFieldCallback into a
--   C_WidgetClassContainsFieldCallback.
wrap_WidgetClassContainsFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassContainsFieldCallback)) -> WidgetClassContainsFieldCallback -> C_WidgetClassContainsFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassCssChangedFieldCallback = Ptr Widget -> Ptr CssStyleChange -> IO ()

-- | No description available in the introspection data.
type WidgetClassCssChangedFieldCallback = Widget -> CssStyleChange -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassCssChangedFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassCssChangedFieldCallback -> a -> CssStyleChange -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassCssChangedFieldCallback :: MonadIO m => WidgetClassCssChangedFieldCallback -> m (GClosure C_WidgetClassCssChangedFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassCssChangedFieldCallback.
mk_WidgetClassCssChangedFieldCallback :: C_WidgetClassCssChangedFieldCallback -> IO (FunPtr C_WidgetClassCssChangedFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassCssChangedFieldCallback.
noWidgetClassCssChangedFieldCallback :: Maybe WidgetClassCssChangedFieldCallback

-- | Wrap a WidgetClassCssChangedFieldCallback into a
--   C_WidgetClassCssChangedFieldCallback.
wrap_WidgetClassCssChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassCssChangedFieldCallback)) -> WidgetClassCssChangedFieldCallback -> C_WidgetClassCssChangedFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDirectionChangedFieldCallback = Ptr Widget -> CUInt -> IO ()

-- | No description available in the introspection data.
type WidgetClassDirectionChangedFieldCallback = Widget -> TextDirection -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassDirectionChangedFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassDirectionChangedFieldCallback -> a -> TextDirection -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassDirectionChangedFieldCallback :: MonadIO m => WidgetClassDirectionChangedFieldCallback -> m (GClosure C_WidgetClassDirectionChangedFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassDirectionChangedFieldCallback.
mk_WidgetClassDirectionChangedFieldCallback :: C_WidgetClassDirectionChangedFieldCallback -> IO (FunPtr C_WidgetClassDirectionChangedFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassDirectionChangedFieldCallback.
noWidgetClassDirectionChangedFieldCallback :: Maybe WidgetClassDirectionChangedFieldCallback

-- | Wrap a WidgetClassDirectionChangedFieldCallback into a
--   C_WidgetClassDirectionChangedFieldCallback.
wrap_WidgetClassDirectionChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDirectionChangedFieldCallback)) -> WidgetClassDirectionChangedFieldCallback -> C_WidgetClassDirectionChangedFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassFocusFieldCallback = Ptr Widget -> CUInt -> IO CInt

-- | No description available in the introspection data.
type WidgetClassFocusFieldCallback = Widget -> DirectionType -> IO Bool

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassFocusFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassFocusFieldCallback -> a -> DirectionType -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassFocusFieldCallback :: MonadIO m => WidgetClassFocusFieldCallback -> m (GClosure C_WidgetClassFocusFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassFocusFieldCallback.
mk_WidgetClassFocusFieldCallback :: C_WidgetClassFocusFieldCallback -> IO (FunPtr C_WidgetClassFocusFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassFocusFieldCallback.
noWidgetClassFocusFieldCallback :: Maybe WidgetClassFocusFieldCallback

-- | Wrap a WidgetClassFocusFieldCallback into a
--   C_WidgetClassFocusFieldCallback.
wrap_WidgetClassFocusFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassFocusFieldCallback)) -> WidgetClassFocusFieldCallback -> C_WidgetClassFocusFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetRequestModeFieldCallback = Ptr Widget -> IO CUInt

-- | No description available in the introspection data.
type WidgetClassGetRequestModeFieldCallback = Widget -> IO SizeRequestMode

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassGetRequestModeFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassGetRequestModeFieldCallback -> a -> m SizeRequestMode

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassGetRequestModeFieldCallback :: MonadIO m => WidgetClassGetRequestModeFieldCallback -> m (GClosure C_WidgetClassGetRequestModeFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassGetRequestModeFieldCallback.
mk_WidgetClassGetRequestModeFieldCallback :: C_WidgetClassGetRequestModeFieldCallback -> IO (FunPtr C_WidgetClassGetRequestModeFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassGetRequestModeFieldCallback.
noWidgetClassGetRequestModeFieldCallback :: Maybe WidgetClassGetRequestModeFieldCallback

-- | Wrap a WidgetClassGetRequestModeFieldCallback into a
--   C_WidgetClassGetRequestModeFieldCallback.
wrap_WidgetClassGetRequestModeFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback)) -> WidgetClassGetRequestModeFieldCallback -> C_WidgetClassGetRequestModeFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGrabFocusFieldCallback = Ptr Widget -> IO CInt

-- | No description available in the introspection data.
type WidgetClassGrabFocusFieldCallback = Widget -> IO Bool

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassGrabFocusFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassGrabFocusFieldCallback -> a -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassGrabFocusFieldCallback :: MonadIO m => WidgetClassGrabFocusFieldCallback -> m (GClosure C_WidgetClassGrabFocusFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassGrabFocusFieldCallback.
mk_WidgetClassGrabFocusFieldCallback :: C_WidgetClassGrabFocusFieldCallback -> IO (FunPtr C_WidgetClassGrabFocusFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassGrabFocusFieldCallback.
noWidgetClassGrabFocusFieldCallback :: Maybe WidgetClassGrabFocusFieldCallback

-- | Wrap a WidgetClassGrabFocusFieldCallback into a
--   C_WidgetClassGrabFocusFieldCallback.
wrap_WidgetClassGrabFocusFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGrabFocusFieldCallback)) -> WidgetClassGrabFocusFieldCallback -> C_WidgetClassGrabFocusFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassHideFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassHideFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassHideFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassHideFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassHideFieldCallback :: MonadIO m => WidgetClassHideFieldCallback -> m (GClosure C_WidgetClassHideFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassHideFieldCallback.
mk_WidgetClassHideFieldCallback :: C_WidgetClassHideFieldCallback -> IO (FunPtr C_WidgetClassHideFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassHideFieldCallback.
noWidgetClassHideFieldCallback :: Maybe WidgetClassHideFieldCallback

-- | Wrap a WidgetClassHideFieldCallback into a
--   C_WidgetClassHideFieldCallback.
wrap_WidgetClassHideFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassHideFieldCallback)) -> WidgetClassHideFieldCallback -> C_WidgetClassHideFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassKeynavFailedFieldCallback = Ptr Widget -> CUInt -> IO CInt

-- | No description available in the introspection data.
type WidgetClassKeynavFailedFieldCallback = Widget -> DirectionType -> IO Bool

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassKeynavFailedFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassKeynavFailedFieldCallback -> a -> DirectionType -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassKeynavFailedFieldCallback :: MonadIO m => WidgetClassKeynavFailedFieldCallback -> m (GClosure C_WidgetClassKeynavFailedFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassKeynavFailedFieldCallback.
mk_WidgetClassKeynavFailedFieldCallback :: C_WidgetClassKeynavFailedFieldCallback -> IO (FunPtr C_WidgetClassKeynavFailedFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassKeynavFailedFieldCallback.
noWidgetClassKeynavFailedFieldCallback :: Maybe WidgetClassKeynavFailedFieldCallback

-- | Wrap a WidgetClassKeynavFailedFieldCallback into a
--   C_WidgetClassKeynavFailedFieldCallback.
wrap_WidgetClassKeynavFailedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassKeynavFailedFieldCallback)) -> WidgetClassKeynavFailedFieldCallback -> C_WidgetClassKeynavFailedFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMapFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassMapFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassMapFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassMapFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassMapFieldCallback :: MonadIO m => WidgetClassMapFieldCallback -> m (GClosure C_WidgetClassMapFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassMapFieldCallback.
mk_WidgetClassMapFieldCallback :: C_WidgetClassMapFieldCallback -> IO (FunPtr C_WidgetClassMapFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassMapFieldCallback.
noWidgetClassMapFieldCallback :: Maybe WidgetClassMapFieldCallback

-- | Wrap a WidgetClassMapFieldCallback into a
--   C_WidgetClassMapFieldCallback.
wrap_WidgetClassMapFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassMapFieldCallback)) -> WidgetClassMapFieldCallback -> C_WidgetClassMapFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMeasureFieldCallback = Ptr Widget -> CUInt -> Int32 -> Ptr Int32 -> Ptr Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()

-- | No description available in the introspection data.
type WidgetClassMeasureFieldCallback = Widget -> Orientation -> Int32 -> IO (Int32, Int32, Int32, Int32)

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassMeasureFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassMeasureFieldCallback -> a -> Orientation -> Int32 -> m (Int32, Int32, Int32, Int32)

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassMeasureFieldCallback :: MonadIO m => WidgetClassMeasureFieldCallback -> m (GClosure C_WidgetClassMeasureFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassMeasureFieldCallback.
mk_WidgetClassMeasureFieldCallback :: C_WidgetClassMeasureFieldCallback -> IO (FunPtr C_WidgetClassMeasureFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassMeasureFieldCallback.
noWidgetClassMeasureFieldCallback :: Maybe WidgetClassMeasureFieldCallback

-- | Wrap a WidgetClassMeasureFieldCallback into a
--   C_WidgetClassMeasureFieldCallback.
wrap_WidgetClassMeasureFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassMeasureFieldCallback)) -> WidgetClassMeasureFieldCallback -> C_WidgetClassMeasureFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMnemonicActivateFieldCallback = Ptr Widget -> CInt -> IO CInt

-- | No description available in the introspection data.
type WidgetClassMnemonicActivateFieldCallback = Widget -> Bool -> IO Bool

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassMnemonicActivateFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassMnemonicActivateFieldCallback -> a -> Bool -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassMnemonicActivateFieldCallback :: MonadIO m => WidgetClassMnemonicActivateFieldCallback -> m (GClosure C_WidgetClassMnemonicActivateFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassMnemonicActivateFieldCallback.
mk_WidgetClassMnemonicActivateFieldCallback :: C_WidgetClassMnemonicActivateFieldCallback -> IO (FunPtr C_WidgetClassMnemonicActivateFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassMnemonicActivateFieldCallback.
noWidgetClassMnemonicActivateFieldCallback :: Maybe WidgetClassMnemonicActivateFieldCallback

-- | Wrap a WidgetClassMnemonicActivateFieldCallback into a
--   C_WidgetClassMnemonicActivateFieldCallback.
wrap_WidgetClassMnemonicActivateFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback)) -> WidgetClassMnemonicActivateFieldCallback -> C_WidgetClassMnemonicActivateFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMoveFocusFieldCallback = Ptr Widget -> CUInt -> IO ()

-- | No description available in the introspection data.
type WidgetClassMoveFocusFieldCallback = Widget -> DirectionType -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassMoveFocusFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassMoveFocusFieldCallback -> a -> DirectionType -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassMoveFocusFieldCallback :: MonadIO m => WidgetClassMoveFocusFieldCallback -> m (GClosure C_WidgetClassMoveFocusFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassMoveFocusFieldCallback.
mk_WidgetClassMoveFocusFieldCallback :: C_WidgetClassMoveFocusFieldCallback -> IO (FunPtr C_WidgetClassMoveFocusFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassMoveFocusFieldCallback.
noWidgetClassMoveFocusFieldCallback :: Maybe WidgetClassMoveFocusFieldCallback

-- | Wrap a WidgetClassMoveFocusFieldCallback into a
--   C_WidgetClassMoveFocusFieldCallback.
wrap_WidgetClassMoveFocusFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassMoveFocusFieldCallback)) -> WidgetClassMoveFocusFieldCallback -> C_WidgetClassMoveFocusFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassQueryTooltipFieldCallback = Ptr Widget -> Int32 -> Int32 -> CInt -> Ptr Tooltip -> IO CInt

-- | No description available in the introspection data.
type WidgetClassQueryTooltipFieldCallback = Widget -> Int32 -> Int32 -> Bool -> Tooltip -> IO Bool

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassQueryTooltipFieldCallback :: (HasCallStack, MonadIO m, IsWidget a, IsTooltip b) => FunPtr C_WidgetClassQueryTooltipFieldCallback -> a -> Int32 -> Int32 -> Bool -> b -> m Bool

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassQueryTooltipFieldCallback :: MonadIO m => WidgetClassQueryTooltipFieldCallback -> m (GClosure C_WidgetClassQueryTooltipFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassQueryTooltipFieldCallback.
mk_WidgetClassQueryTooltipFieldCallback :: C_WidgetClassQueryTooltipFieldCallback -> IO (FunPtr C_WidgetClassQueryTooltipFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassQueryTooltipFieldCallback.
noWidgetClassQueryTooltipFieldCallback :: Maybe WidgetClassQueryTooltipFieldCallback

-- | Wrap a WidgetClassQueryTooltipFieldCallback into a
--   C_WidgetClassQueryTooltipFieldCallback.
wrap_WidgetClassQueryTooltipFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback)) -> WidgetClassQueryTooltipFieldCallback -> C_WidgetClassQueryTooltipFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassRealizeFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassRealizeFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassRealizeFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassRealizeFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassRealizeFieldCallback :: MonadIO m => WidgetClassRealizeFieldCallback -> m (GClosure C_WidgetClassRealizeFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassRealizeFieldCallback.
mk_WidgetClassRealizeFieldCallback :: C_WidgetClassRealizeFieldCallback -> IO (FunPtr C_WidgetClassRealizeFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassRealizeFieldCallback.
noWidgetClassRealizeFieldCallback :: Maybe WidgetClassRealizeFieldCallback

-- | Wrap a WidgetClassRealizeFieldCallback into a
--   C_WidgetClassRealizeFieldCallback.
wrap_WidgetClassRealizeFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassRealizeFieldCallback)) -> WidgetClassRealizeFieldCallback -> C_WidgetClassRealizeFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassRootFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassRootFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassRootFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassRootFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassRootFieldCallback :: MonadIO m => WidgetClassRootFieldCallback -> m (GClosure C_WidgetClassRootFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassRootFieldCallback.
mk_WidgetClassRootFieldCallback :: C_WidgetClassRootFieldCallback -> IO (FunPtr C_WidgetClassRootFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassRootFieldCallback.
noWidgetClassRootFieldCallback :: Maybe WidgetClassRootFieldCallback

-- | Wrap a WidgetClassRootFieldCallback into a
--   C_WidgetClassRootFieldCallback.
wrap_WidgetClassRootFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassRootFieldCallback)) -> WidgetClassRootFieldCallback -> C_WidgetClassRootFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSetFocusChildFieldCallback = Ptr Widget -> Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassSetFocusChildFieldCallback = Widget -> Maybe Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassSetFocusChildFieldCallback :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => FunPtr C_WidgetClassSetFocusChildFieldCallback -> a -> Maybe b -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassSetFocusChildFieldCallback :: MonadIO m => WidgetClassSetFocusChildFieldCallback -> m (GClosure C_WidgetClassSetFocusChildFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassSetFocusChildFieldCallback.
mk_WidgetClassSetFocusChildFieldCallback :: C_WidgetClassSetFocusChildFieldCallback -> IO (FunPtr C_WidgetClassSetFocusChildFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassSetFocusChildFieldCallback.
noWidgetClassSetFocusChildFieldCallback :: Maybe WidgetClassSetFocusChildFieldCallback

-- | Wrap a WidgetClassSetFocusChildFieldCallback into a
--   C_WidgetClassSetFocusChildFieldCallback.
wrap_WidgetClassSetFocusChildFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSetFocusChildFieldCallback)) -> WidgetClassSetFocusChildFieldCallback -> C_WidgetClassSetFocusChildFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassShowFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassShowFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassShowFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassShowFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassShowFieldCallback :: MonadIO m => WidgetClassShowFieldCallback -> m (GClosure C_WidgetClassShowFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassShowFieldCallback.
mk_WidgetClassShowFieldCallback :: C_WidgetClassShowFieldCallback -> IO (FunPtr C_WidgetClassShowFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassShowFieldCallback.
noWidgetClassShowFieldCallback :: Maybe WidgetClassShowFieldCallback

-- | Wrap a WidgetClassShowFieldCallback into a
--   C_WidgetClassShowFieldCallback.
wrap_WidgetClassShowFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassShowFieldCallback)) -> WidgetClassShowFieldCallback -> C_WidgetClassShowFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSizeAllocateFieldCallback = Ptr Widget -> Int32 -> Int32 -> Int32 -> IO ()

-- | No description available in the introspection data.
type WidgetClassSizeAllocateFieldCallback = Widget -> Int32 -> Int32 -> Int32 -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassSizeAllocateFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassSizeAllocateFieldCallback -> a -> Int32 -> Int32 -> Int32 -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassSizeAllocateFieldCallback :: MonadIO m => WidgetClassSizeAllocateFieldCallback -> m (GClosure C_WidgetClassSizeAllocateFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassSizeAllocateFieldCallback.
mk_WidgetClassSizeAllocateFieldCallback :: C_WidgetClassSizeAllocateFieldCallback -> IO (FunPtr C_WidgetClassSizeAllocateFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassSizeAllocateFieldCallback.
noWidgetClassSizeAllocateFieldCallback :: Maybe WidgetClassSizeAllocateFieldCallback

-- | Wrap a WidgetClassSizeAllocateFieldCallback into a
--   C_WidgetClassSizeAllocateFieldCallback.
wrap_WidgetClassSizeAllocateFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback)) -> WidgetClassSizeAllocateFieldCallback -> C_WidgetClassSizeAllocateFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSnapshotFieldCallback = Ptr Widget -> Ptr Snapshot -> IO ()

-- | No description available in the introspection data.
type WidgetClassSnapshotFieldCallback = Widget -> Snapshot -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassSnapshotFieldCallback :: (HasCallStack, MonadIO m, IsWidget a, IsSnapshot b) => FunPtr C_WidgetClassSnapshotFieldCallback -> a -> b -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassSnapshotFieldCallback :: MonadIO m => WidgetClassSnapshotFieldCallback -> m (GClosure C_WidgetClassSnapshotFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassSnapshotFieldCallback.
mk_WidgetClassSnapshotFieldCallback :: C_WidgetClassSnapshotFieldCallback -> IO (FunPtr C_WidgetClassSnapshotFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassSnapshotFieldCallback.
noWidgetClassSnapshotFieldCallback :: Maybe WidgetClassSnapshotFieldCallback

-- | Wrap a WidgetClassSnapshotFieldCallback into a
--   C_WidgetClassSnapshotFieldCallback.
wrap_WidgetClassSnapshotFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSnapshotFieldCallback)) -> WidgetClassSnapshotFieldCallback -> C_WidgetClassSnapshotFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassStateFlagsChangedFieldCallback = Ptr Widget -> CUInt -> IO ()

-- | No description available in the introspection data.
type WidgetClassStateFlagsChangedFieldCallback = Widget -> [StateFlags] -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassStateFlagsChangedFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassStateFlagsChangedFieldCallback -> a -> [StateFlags] -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassStateFlagsChangedFieldCallback :: MonadIO m => WidgetClassStateFlagsChangedFieldCallback -> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassStateFlagsChangedFieldCallback.
mk_WidgetClassStateFlagsChangedFieldCallback :: C_WidgetClassStateFlagsChangedFieldCallback -> IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassStateFlagsChangedFieldCallback.
noWidgetClassStateFlagsChangedFieldCallback :: Maybe WidgetClassStateFlagsChangedFieldCallback

-- | Wrap a WidgetClassStateFlagsChangedFieldCallback into a
--   C_WidgetClassStateFlagsChangedFieldCallback.
wrap_WidgetClassStateFlagsChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)) -> WidgetClassStateFlagsChangedFieldCallback -> C_WidgetClassStateFlagsChangedFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSystemSettingChangedFieldCallback = Ptr Widget -> CUInt -> IO ()

-- | No description available in the introspection data.
type WidgetClassSystemSettingChangedFieldCallback = Widget -> SystemSetting -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassSystemSettingChangedFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassSystemSettingChangedFieldCallback -> a -> SystemSetting -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassSystemSettingChangedFieldCallback :: MonadIO m => WidgetClassSystemSettingChangedFieldCallback -> m (GClosure C_WidgetClassSystemSettingChangedFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassSystemSettingChangedFieldCallback.
mk_WidgetClassSystemSettingChangedFieldCallback :: C_WidgetClassSystemSettingChangedFieldCallback -> IO (FunPtr C_WidgetClassSystemSettingChangedFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassSystemSettingChangedFieldCallback.
noWidgetClassSystemSettingChangedFieldCallback :: Maybe WidgetClassSystemSettingChangedFieldCallback

-- | Wrap a WidgetClassSystemSettingChangedFieldCallback into a
--   C_WidgetClassSystemSettingChangedFieldCallback.
wrap_WidgetClassSystemSettingChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSystemSettingChangedFieldCallback)) -> WidgetClassSystemSettingChangedFieldCallback -> C_WidgetClassSystemSettingChangedFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassUnmapFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassUnmapFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassUnmapFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassUnmapFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassUnmapFieldCallback :: MonadIO m => WidgetClassUnmapFieldCallback -> m (GClosure C_WidgetClassUnmapFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassUnmapFieldCallback.
mk_WidgetClassUnmapFieldCallback :: C_WidgetClassUnmapFieldCallback -> IO (FunPtr C_WidgetClassUnmapFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassUnmapFieldCallback.
noWidgetClassUnmapFieldCallback :: Maybe WidgetClassUnmapFieldCallback

-- | Wrap a WidgetClassUnmapFieldCallback into a
--   C_WidgetClassUnmapFieldCallback.
wrap_WidgetClassUnmapFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnmapFieldCallback)) -> WidgetClassUnmapFieldCallback -> C_WidgetClassUnmapFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassUnrealizeFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassUnrealizeFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassUnrealizeFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassUnrealizeFieldCallback :: MonadIO m => WidgetClassUnrealizeFieldCallback -> m (GClosure C_WidgetClassUnrealizeFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassUnrealizeFieldCallback.
mk_WidgetClassUnrealizeFieldCallback :: C_WidgetClassUnrealizeFieldCallback -> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassUnrealizeFieldCallback.
noWidgetClassUnrealizeFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback

-- | Wrap a WidgetClassUnrealizeFieldCallback into a
--   C_WidgetClassUnrealizeFieldCallback.
wrap_WidgetClassUnrealizeFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> WidgetClassUnrealizeFieldCallback -> C_WidgetClassUnrealizeFieldCallback

-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassUnrootFieldCallback = Ptr Widget -> IO ()

-- | No description available in the introspection data.
type WidgetClassUnrootFieldCallback = Widget -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_WidgetClassUnrootFieldCallback :: (HasCallStack, MonadIO m, IsWidget a) => FunPtr C_WidgetClassUnrootFieldCallback -> a -> m ()

-- | Wrap the callback into a GClosure.
genClosure_WidgetClassUnrootFieldCallback :: MonadIO m => WidgetClassUnrootFieldCallback -> m (GClosure C_WidgetClassUnrootFieldCallback)

-- | Generate a function pointer callable from C code, from a
--   C_WidgetClassUnrootFieldCallback.
mk_WidgetClassUnrootFieldCallback :: C_WidgetClassUnrootFieldCallback -> IO (FunPtr C_WidgetClassUnrootFieldCallback)

-- | A convenience synonym for Nothing :: Maybe
--   WidgetClassUnrootFieldCallback.
noWidgetClassUnrootFieldCallback :: Maybe WidgetClassUnrootFieldCallback

-- | Wrap a WidgetClassUnrootFieldCallback into a
--   C_WidgetClassUnrootFieldCallback.
wrap_WidgetClassUnrootFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrootFieldCallback)) -> WidgetClassUnrootFieldCallback -> C_WidgetClassUnrootFieldCallback

-- | Iterates over the contents of a GtkTextBuffer.
--   
--   You may wish to begin by reading the text widget conceptual
--   overview, which gives an overview of all the objects and data
--   types related to the text widget and how they work together.
module GI.Gtk.Structs.TextIter

-- | Memory-managed wrapper type.
newtype TextIter
TextIter :: ManagedPtr TextIter -> TextIter

-- | Construct a TextIter struct initialized to zero.
newZeroTextIter :: MonadIO m => m TextIter

-- | Assigns the value of other to iter.
--   
--   This function is not useful in applications, because iterators can be
--   assigned with GtkTextIter i = j;.
--   
--   The function is used by language bindings.
textIterAssign :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m ()

-- | Moves backward by one character offset.
--   
--   Returns True if movement was possible; if iter
--   was the first in the buffer (character offset 0), this function
--   returns False for convenience when writing loops.
textIterBackwardChar :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves count characters backward, if possible.
--   
--   If count would move past the start or end of the
--   buffer, moves to the start or end of the buffer.
--   
--   The return value indicates whether the iterator moved onto a
--   dereferenceable position; if the iterator didn’t move, or moved onto
--   the end iterator, then False is returned. If
--   count is 0, the function does nothing and returns
--   False.
textIterBackwardChars :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Like textIterForwardCursorPosition, but moves backward.
textIterBackwardCursorPosition :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves up to count cursor positions.
--   
--   See textIterForwardCursorPosition for details.
textIterBackwardCursorPositions :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Same as textIterForwardFindChar, but goes backward from
--   iter.
textIterBackwardFindChar :: (HasCallStack, MonadIO m) => TextIter -> TextCharPredicate -> Maybe TextIter -> m Bool

-- | Moves iter to the start of the previous line.
--   
--   Returns True if iter could be moved; i.e. if
--   iter was at character offset 0, this function returns
--   False. Therefore, if iter was already on line
--   0, but not at the start of the line, iter is snapped
--   to the start of the line and the function returns True. (Note
--   that this implies that in a loop calling this function, the line
--   number may not change on every iteration, if your first iteration is
--   on line 0.)
textIterBackwardLine :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves count lines backward, if possible.
--   
--   If count would move past the start or end of the
--   buffer, moves to the start or end of the buffer.
--   
--   The return value indicates whether the iterator moved onto a
--   dereferenceable position; if the iterator didn’t move, or moved onto
--   the end iterator, then False is returned. If
--   count is 0, the function does nothing and returns
--   False. If count is negative, moves forward by 0
--   - count lines.
textIterBackwardLines :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Same as textIterForwardSearch, but moves backward.
--   
--   matchEnd will never be set to a GtkTextIter
--   located after iter, even if there is a possible
--   matchStart before or at iter.
textIterBackwardSearch :: (HasCallStack, MonadIO m) => TextIter -> Text -> [TextSearchFlags] -> Maybe TextIter -> m (Bool, TextIter, TextIter)

-- | Moves backward to the previous sentence start.
--   
--   If iter is already at the start of a sentence, moves
--   backward to the next one.
--   
--   Sentence boundaries are determined by Pango and should be correct for
--   nearly any language.
textIterBackwardSentenceStart :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Calls textIterBackwardSentenceStart up to count
--   times.
--   
--   If count is negative, moves forward instead of
--   backward.
textIterBackwardSentenceStarts :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves backward to the next toggle (on or off) of the
--   tag, or to the next toggle of any tag if
--   tag is Nothing.
--   
--   If no matching tag toggles are found, returns False, otherwise
--   True. Does not return toggles located at iter,
--   only toggles before iter. Sets iter to
--   the location of the toggle, or the start of the buffer if no toggle is
--   found.
textIterBackwardToTagToggle :: (HasCallStack, MonadIO m, IsTextTag a) => TextIter -> Maybe a -> m Bool

-- | Moves iter backward to the previous visible cursor
--   position.
--   
--   See textIterBackwardCursorPosition for details.
textIterBackwardVisibleCursorPosition :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves up to count visible cursor positions.
--   
--   See textIterBackwardCursorPosition for details.
textIterBackwardVisibleCursorPositions :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves iter to the start of the previous visible line.
--   
--   Returns True if iter could be moved; i.e. if
--   iter was at character offset 0, this function returns
--   False. Therefore if iter was already on line 0,
--   but not at the start of the line, iter is snapped to
--   the start of the line and the function returns True. (Note that
--   this implies that in a loop calling this function, the line number may
--   not change on every iteration, if your first iteration is on line 0.)
textIterBackwardVisibleLine :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves count visible lines backward, if possible.
--   
--   If count would move past the start or end of the
--   buffer, moves to the start or end of the buffer.
--   
--   The return value indicates whether the iterator moved onto a
--   dereferenceable position; if the iterator didn’t move, or moved onto
--   the end iterator, then False is returned. If
--   count is 0, the function does nothing and returns
--   False. If count is negative, moves forward by 0
--   - count lines.
textIterBackwardVisibleLines :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves backward to the previous visible word start.
--   
--   If iter is currently on a word start, moves backward
--   to the next one after that.
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language.
textIterBackwardVisibleWordStart :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Calls textIterBackwardVisibleWordStart up to
--   count times.
textIterBackwardVisibleWordStarts :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves backward to the previous word start.
--   
--   If iter is currently on a word start, moves backward
--   to the next one after that.
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language
textIterBackwardWordStart :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Calls textIterBackwardWordStart up to count
--   times.
textIterBackwardWordStarts :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Considering the default editability of the buffer, and tags that
--   affect editability, determines whether text inserted at
--   iter would be editable.
--   
--   If text inserted at iter would be editable then the
--   user should be allowed to insert text at iter.
--   textBufferInsertInteractive uses this function to decide
--   whether insertions are allowed at a given position.
textIterCanInsert :: (HasCallStack, MonadIO m) => TextIter -> Bool -> m Bool

-- | A qsort()-style function that returns negative if
--   lhs is less than rhs, positive if
--   lhs is greater than rhs, and 0 if
--   they’re equal.
--   
--   Ordering is in character offset order, i.e. the first character in the
--   buffer is less than the second character in the buffer.
textIterCompare :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m Int32

-- | Creates a dynamically-allocated copy of an iterator.
--   
--   This function is not useful in applications, because iterators can be
--   copied with a simple assignment (GtkTextIter i = j;).
--   
--   The function is used by language bindings.
textIterCopy :: (HasCallStack, MonadIO m) => TextIter -> m TextIter

-- | Returns whether the character at iter is within an
--   editable region of text.
--   
--   Non-editable text is “locked” and can’t be changed by the user via
--   GtkTextView. If no tags applied to this text affect
--   editability, defaultSetting will be returned.
--   
--   You don’t want to use this function to decide whether text can be
--   inserted at iter, because for insertion you don’t want
--   to know whether the char at iter is inside an editable
--   range, you want to know whether a new character inserted at
--   iter would be inside an editable range. Use
--   textIterCanInsert to handle this case.
textIterEditable :: (HasCallStack, MonadIO m) => TextIter -> Bool -> m Bool

-- | Returns True if iter points to the start of the
--   paragraph delimiter characters for a line.
--   
--   Delimiters will be either a newline, a carriage return, a carriage
--   return followed by a newline, or a Unicode paragraph separator
--   character.
--   
--   Note that an iterator pointing to the \n of a \r\n pair will not be
--   counted as the end of a line, the line ends before the \r. The end
--   iterator is considered to be at the end of a line, even though there
--   are no paragraph delimiter chars there.
textIterEndsLine :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Determines whether iter ends a sentence.
--   
--   Sentence boundaries are determined by Pango and should be correct for
--   nearly any language.
textIterEndsSentence :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Returns True if tag is toggled off at exactly
--   this point.
--   
--   If tag is Nothing, returns True if any
--   tag is toggled off at this point.
--   
--   Note that if this function returns True, it means that
--   iter is at the end of the tagged range, but that the
--   character at iter is outside the tagged range. In
--   other words, unlike textIterStartsTag, if this function returns
--   True, textIterHasTag will return False for the
--   same parameters.
textIterEndsTag :: (HasCallStack, MonadIO m, IsTextTag a) => TextIter -> Maybe a -> m Bool

-- | Determines whether iter ends a natural-language word.
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language.
textIterEndsWord :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Tests whether two iterators are equal, using the fastest possible
--   mechanism.
--   
--   This function is very fast; you can expect it to perform better than
--   e.g. getting the character offset for each iterator and comparing the
--   offsets yourself. Also, it’s a bit faster than textIterCompare.
textIterEqual :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m Bool

-- | Moves iter forward by one character offset.
--   
--   Note that images embedded in the buffer occupy 1 character slot, so
--   this function may actually move onto an image instead of a character,
--   if you have images in your buffer. If iter is the end
--   iterator or one character before it, iter will now
--   point at the end iterator, and this function returns False for
--   convenience when writing loops.
textIterForwardChar :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves count characters if possible.
--   
--   If count would move past the start or end of the
--   buffer, moves to the start or end of the buffer.
--   
--   The return value indicates whether the new position of
--   iter is different from its original position, and
--   dereferenceable (the last iterator in the buffer is not
--   dereferenceable). If count is 0, the function does
--   nothing and returns False.
textIterForwardChars :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves iter forward by a single cursor position.
--   
--   Cursor positions are (unsurprisingly) positions where the cursor can
--   appear. Perhaps surprisingly, there may not be a cursor position
--   between all characters. The most common example for European languages
--   would be a carriage return/newline sequence.
--   
--   For some Unicode characters, the equivalent of say the letter “a” with
--   an accent mark will be represented as two characters, first the letter
--   then a "combining mark" that causes the accent to be rendered; so the
--   cursor can’t go between those two characters.
--   
--   See also the LogAttr struct and the break function.
textIterForwardCursorPosition :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves up to count cursor positions.
--   
--   See textIterForwardCursorPosition for details.
textIterForwardCursorPositions :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Advances iter, calling pred on each
--   character.
--   
--   If pred returns True, returns True and
--   stops scanning. If pred never returns True,
--   iter is set to limit if
--   limit is non-Nothing, otherwise to the end
--   iterator.
textIterForwardFindChar :: (HasCallStack, MonadIO m) => TextIter -> TextCharPredicate -> Maybe TextIter -> m Bool

-- | Moves iter to the start of the next line.
--   
--   If the iter is already on the last line of the buffer, moves the iter
--   to the end of the current line. If after the operation, the iter is at
--   the end of the buffer and not dereferenceable, returns False.
--   Otherwise, returns True.
textIterForwardLine :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves count lines forward, if possible.
--   
--   If count would move past the start or end of the
--   buffer, moves to the start or end of the buffer.
--   
--   The return value indicates whether the iterator moved onto a
--   dereferenceable position; if the iterator didn’t move, or moved onto
--   the end iterator, then False is returned. If
--   count is 0, the function does nothing and returns
--   False. If count is negative, moves backward by
--   0 - count lines.
textIterForwardLines :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Searches forward for str.
--   
--   Any match is returned by setting matchStart to the
--   first character of the match and matchEnd to the first
--   character after the match. The search will not continue past
--   limit. Note that a search is a linear or O(n)
--   operation, so you may wish to use limit to avoid
--   locking up your UI on large buffers.
--   
--   matchStart will never be set to a GtkTextIter
--   located before iter, even if there is a possible
--   matchEnd after or at iter.
textIterForwardSearch :: (HasCallStack, MonadIO m) => TextIter -> Text -> [TextSearchFlags] -> Maybe TextIter -> m (Bool, TextIter, TextIter)

-- | Moves forward to the next sentence end.
--   
--   If iter is at the end of a sentence, moves to the next
--   end of sentence.
--   
--   Sentence boundaries are determined by Pango and should be correct for
--   nearly any language.
textIterForwardSentenceEnd :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Calls textIterForwardSentenceEnd count times.
--   
--   If count is negative, moves backward instead of
--   forward.
textIterForwardSentenceEnds :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves iter forward to the “end iterator”, which points
--   one past the last valid character in the buffer.
--   
--   textIterGetChar called on the end iterator returns 0, which is
--   convenient for writing loops.
textIterForwardToEnd :: (HasCallStack, MonadIO m) => TextIter -> m ()

-- | Moves the iterator to point to the paragraph delimiter characters.
--   
--   The possible characters are either a newline, a carriage return, a
--   carriage return/newline in sequence, or the Unicode paragraph
--   separator character.
--   
--   If the iterator is already at the paragraph delimiter characters,
--   moves to the paragraph delimiter characters for the next line. If
--   iter is on the last line in the buffer, which does not
--   end in paragraph delimiters, moves to the end iterator (end of the
--   last line), and returns False.
textIterForwardToLineEnd :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves forward to the next toggle (on or off) of the
--   tag, or to the next toggle of any tag if
--   tag is Nothing.
--   
--   If no matching tag toggles are found, returns False, otherwise
--   True. Does not return toggles located at iter,
--   only toggles after iter. Sets iter to
--   the location of the toggle, or to the end of the buffer if no toggle
--   is found.
textIterForwardToTagToggle :: (HasCallStack, MonadIO m, IsTextTag a) => TextIter -> Maybe a -> m Bool

-- | Moves iter forward to the next visible cursor
--   position.
--   
--   See textIterForwardCursorPosition for details.
textIterForwardVisibleCursorPosition :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves up to count visible cursor positions.
--   
--   See textIterForwardCursorPosition for details.
textIterForwardVisibleCursorPositions :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves iter to the start of the next visible line.
--   
--   Returns True if there was a next line to move to, and
--   False if iter was simply moved to the end of
--   the buffer and is now not dereferenceable, or if iter
--   was already at the end of the buffer.
textIterForwardVisibleLine :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Moves count visible lines forward, if possible.
--   
--   If count would move past the start or end of the
--   buffer, moves to the start or end of the buffer.
--   
--   The return value indicates whether the iterator moved onto a
--   dereferenceable position; if the iterator didn’t move, or moved onto
--   the end iterator, then False is returned. If
--   count is 0, the function does nothing and returns
--   False. If count is negative, moves backward by
--   0 - count lines.
textIterForwardVisibleLines :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves forward to the next visible word end.
--   
--   If iter is currently on a word end, moves forward to
--   the next one after that.
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language
textIterForwardVisibleWordEnd :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Calls textIterForwardVisibleWordEnd up to count
--   times.
textIterForwardVisibleWordEnds :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Moves forward to the next word end.
--   
--   If iter is currently on a word end, moves forward to
--   the next one after that.
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language.
textIterForwardWordEnd :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Calls textIterForwardWordEnd up to count times.
textIterForwardWordEnds :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m Bool

-- | Free an iterator allocated on the heap.
--   
--   This function is intended for use in language bindings, and is not
--   especially useful for applications, because iterators can simply be
--   allocated on the stack.
textIterFree :: (HasCallStack, MonadIO m) => TextIter -> m ()

-- | Returns the GtkTextBuffer this iterator is associated with.
textIterGetBuffer :: (HasCallStack, MonadIO m) => TextIter -> m TextBuffer

-- | Returns the number of bytes in the line containing
--   iter, including the paragraph delimiters.
textIterGetBytesInLine :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | The Unicode character at this iterator is returned.
--   
--   Equivalent to operator* on a C++ iterator. If the element at this
--   iterator is a non-character element, such as an image embedded in the
--   buffer, the Unicode “unknown” character 0xFFFC is returned. If invoked
--   on the end iterator, zero is returned; zero is not a valid Unicode
--   character.
--   
--   So you can write a loop which ends when this function returns 0.
textIterGetChar :: (HasCallStack, MonadIO m) => TextIter -> m Char

-- | Returns the number of characters in the line containing
--   iter, including the paragraph delimiters.
textIterGetCharsInLine :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | If the location at iter contains a child anchor, the
--   anchor is returned.
--   
--   Otherwise, Nothing is returned.
textIterGetChildAnchor :: (HasCallStack, MonadIO m) => TextIter -> m (Maybe TextChildAnchor)

-- | Returns the language in effect at iter.
--   
--   If no tags affecting language apply to iter, the
--   return value is identical to that of getDefaultLanguage.
textIterGetLanguage :: (HasCallStack, MonadIO m) => TextIter -> m Language

-- | Returns the line number containing the iterator.
--   
--   Lines in a GtkTextBuffer are numbered beginning with 0 for
--   the first line in the buffer.
textIterGetLine :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | Returns the byte index of the iterator, counting from the start of a
--   newline-terminated line.
--   
--   Remember that GtkTextBuffer encodes text in UTF-8, and that
--   characters can require a variable number of bytes to represent.
textIterGetLineIndex :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | Returns the character offset of the iterator, counting from the start
--   of a newline-terminated line.
--   
--   The first character on the line has offset 0.
textIterGetLineOffset :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | Returns a list of all GtkTextMark at this location.
--   
--   Because marks are not iterable (they don’t take up any "space" in the
--   buffer, they are just marks in between iterable locations), multiple
--   marks can exist in the same place.
--   
--   The returned list is not in any meaningful order.
textIterGetMarks :: (HasCallStack, MonadIO m) => TextIter -> m [TextMark]

-- | Returns the character offset of an iterator.
--   
--   Each character in a GtkTextBuffer has an offset, starting
--   with 0 for the first character in the buffer. Use
--   textBufferGetIterAtOffset to convert an offset back into an
--   iterator.
textIterGetOffset :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | If the element at iter is a paintable, the paintable
--   is returned.
--   
--   Otherwise, Nothing is returned.
textIterGetPaintable :: (HasCallStack, MonadIO m) => TextIter -> m (Maybe Paintable)

-- | Returns the text in the given range.
--   
--   A “slice” is an array of characters encoded in UTF-8 format, including
--   the Unicode “unknown” character 0xFFFC for iterable non-character
--   elements in the buffer, such as images. Because images are encoded in
--   the slice, byte and character offsets in the returned array will
--   correspond to byte offsets in the text buffer. Note that 0xFFFC can
--   occur in normal text as well, so it is not a reliable indicator that a
--   paintable or widget is in the buffer.
textIterGetSlice :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m Text

-- | Returns a list of tags that apply to iter, in
--   ascending order of priority.
--   
--   The highest-priority tags are last.
--   
--   The GtkTextTags in the list don’t have a reference added, but
--   you have to free the list itself.
textIterGetTags :: (HasCallStack, MonadIO m) => TextIter -> m [TextTag]

-- | Returns text in the given range.
--   
--   If the range contains non-text elements such as images, the character
--   and byte offsets in the returned string will not correspond to
--   character and byte offsets in the buffer. If you want offsets to
--   correspond, see textIterGetSlice.
textIterGetText :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m Text

-- | Returns a list of GtkTextTag that are toggled on or off at
--   this point.
--   
--   If toggledOn is True, the list contains tags
--   that are toggled on. If a tag is toggled on at iter,
--   then some non-empty range of characters following iter
--   has that tag applied to it. If a tag is toggled off, then some
--   non-empty range following iter does not have the tag
--   applied to it.
textIterGetToggledTags :: (HasCallStack, MonadIO m) => TextIter -> Bool -> m [TextTag]

-- | Returns the number of bytes from the start of the line to the given
--   iter, not counting bytes that are invisible due to
--   tags with the “invisible” flag toggled on.
textIterGetVisibleLineIndex :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | Returns the offset in characters from the start of the line to the
--   given iter, not counting characters that are invisible
--   due to tags with the “invisible” flag toggled on.
textIterGetVisibleLineOffset :: (HasCallStack, MonadIO m) => TextIter -> m Int32

-- | Returns visible text in the given range.
--   
--   Like textIterGetSlice, but invisible text is not included.
--   Invisible text is usually invisible because a GtkTextTag with
--   the “invisible” attribute turned on has been applied to it.
textIterGetVisibleSlice :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m Text

-- | Returns visible text in the given range.
--   
--   Like textIterGetText, but invisible text is not included.
--   Invisible text is usually invisible because a GtkTextTag with
--   the “invisible” attribute turned on has been applied to it.
textIterGetVisibleText :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m Text

-- | Returns True if iter points to a character that
--   is part of a range tagged with tag.
--   
--   See also textIterStartsTag and textIterEndsTag.
textIterHasTag :: (HasCallStack, MonadIO m, IsTextTag a) => TextIter -> a -> m Bool

-- | Checks whether iter falls in the range
--   [start, end).
--   
--   start and end must be in ascending
--   order.
textIterInRange :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> TextIter -> m Bool

-- | Determines whether iter is inside a sentence (as
--   opposed to in between two sentences, e.g. after a period and before
--   the first letter of the next sentence).
--   
--   Sentence boundaries are determined by Pango and should be correct for
--   nearly any language.
textIterInsideSentence :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Determines whether the character pointed by iter is
--   part of a natural-language word (as opposed to say inside some
--   whitespace).
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language.
--   
--   Note that if textIterStartsWord returns True, then this
--   function returns True too, since iter points to
--   the first character of the word.
textIterInsideWord :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Determine if iter is at a cursor position.
--   
--   See textIterForwardCursorPosition or LogAttr or
--   break for details on what a cursor position is.
textIterIsCursorPosition :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Returns True if iter is the end iterator.
--   
--   This means it is one past the last dereferenceable iterator in the
--   buffer. textIterIsEnd is the most efficient way to check
--   whether an iterator is the end iterator.
textIterIsEnd :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Returns True if iter is the first iterator in
--   the buffer.
textIterIsStart :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Swaps the value of first and second if
--   second comes before first in the
--   buffer.
--   
--   That is, ensures that first and second
--   are in sequence. Most text buffer functions that take a range call
--   this automatically on your behalf, so there’s no real reason to call
--   it yourself in those cases. There are some exceptions, such as
--   textIterInRange, that expect a pre-sorted range.
textIterOrder :: (HasCallStack, MonadIO m) => TextIter -> TextIter -> m ()

-- | Moves iterator iter to the start of the line
--   lineNumber.
--   
--   If lineNumber is negative or larger than or equal to
--   the number of lines in the buffer, moves iter to the
--   start of the last line in the buffer.
textIterSetLine :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m ()

-- | Same as textIterSetLineOffset, but works with a byte index. The
--   given byte index must be at the start of a character, it can’t be in
--   the middle of a UTF-8 encoded character.
textIterSetLineIndex :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m ()

-- | Moves iter within a line, to a new character (not
--   byte) offset.
--   
--   The given character offset must be less than or equal to the number of
--   characters in the line; if equal, iter moves to the
--   start of the next line. See textIterSetLineIndex if you have a
--   byte index rather than a character offset.
textIterSetLineOffset :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m ()

-- | Sets iter to point to charOffset.
--   
--   charOffset counts from the start of the entire text
--   buffer, starting with 0.
textIterSetOffset :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m ()

-- | Like textIterSetLineIndex, but the index is in visible bytes,
--   i.e. text with a tag making it invisible is not counted in the index.
textIterSetVisibleLineIndex :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m ()

-- | Like textIterSetLineOffset, but the offset is in visible
--   characters, i.e. text with a tag making it invisible is not counted in
--   the offset.
textIterSetVisibleLineOffset :: (HasCallStack, MonadIO m) => TextIter -> Int32 -> m ()

-- | Returns True if iter begins a paragraph.
--   
--   This is the case if textIterGetLineOffset would return 0.
--   However this function is potentially more efficient than
--   textIterGetLineOffset, because it doesn’t have to compute the
--   offset, it just has to see whether it’s 0.
textIterStartsLine :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Determines whether iter begins a sentence.
--   
--   Sentence boundaries are determined by Pango and should be correct for
--   nearly any language.
textIterStartsSentence :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Returns True if tag is toggled on at exactly
--   this point.
--   
--   If tag is Nothing, returns True if any
--   tag is toggled on at this point.
--   
--   Note that if this function returns True, it means that
--   iter is at the beginning of the tagged range, and that
--   the character at iter is inside the tagged range. In
--   other words, unlike textIterEndsTag, if this function returns
--   True, textIterHasTag will also return True for
--   the same parameters.
textIterStartsTag :: (HasCallStack, MonadIO m, IsTextTag a) => TextIter -> Maybe a -> m Bool

-- | Determines whether iter begins a natural-language
--   word.
--   
--   Word breaks are determined by Pango and should be correct for nearly
--   any language.
textIterStartsWord :: (HasCallStack, MonadIO m) => TextIter -> m Bool

-- | Gets whether a range with tag applied to it begins or
--   ends at iter.
--   
--   This is equivalent to (textIterStartsTag ||
--   textIterEndsTag)
textIterTogglesTag :: (HasCallStack, MonadIO m, IsTextTag a) => TextIter -> Maybe a -> m Bool
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.TextIter.TextIter tag
instance GHC.Classes.Eq GI.Gtk.Structs.TextIter.TextIter
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.TextIter.TextIter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.TextIter.TextIter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.TextIter.TextIter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.TextIter.TextIter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.TextIter.TextIter

-- | An auxiliary object for printing that allows decoupling the setup from
--   the printing.
--   
--   A print setup is obtained by calling printDialogSetup, and can
--   later be passed to print functions such as printDialogPrint.
--   
--   Print setups can be reused for multiple print calls.
--   
--   Applications may wish to store the page_setup and print_settings from
--   the print setup and copy them to the PrintDialog if they want to keep
--   using them.
--   
--   Since: 4.14
module GI.Gtk.Structs.PrintSetup

-- | Memory-managed wrapper type.
newtype PrintSetup
PrintSetup :: ManagedPtr PrintSetup -> PrintSetup

-- | Returns the page setup of setup.
--   
--   It may be different from the GtkPrintDialog's page setup if
--   the user changed it during the setup process.
--   
--   Since: 4.14
printSetupGetPageSetup :: (HasCallStack, MonadIO m) => PrintSetup -> m PageSetup

-- | Returns the print settings of setup.
--   
--   They may be different from the GtkPrintDialog's settings if
--   the user changed them during the setup process.
--   
--   Since: 4.14
printSetupGetPrintSettings :: (HasCallStack, MonadIO m) => PrintSetup -> m PrintSettings

-- | Increase the reference count of setup.
--   
--   Since: 4.14
printSetupRef :: (HasCallStack, MonadIO m) => PrintSetup -> m PrintSetup

-- | Decrease the reference count of setup.
--   
--   If the reference count reaches zero, the object is freed.
--   
--   Since: 4.14
printSetupUnref :: (HasCallStack, MonadIO m) => PrintSetup -> m ()
instance GHC.Classes.Eq GI.Gtk.Structs.PrintSetup.PrintSetup
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.PrintSetup.PrintSetup
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.PrintSetup.PrintSetup
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.PrintSetup.PrintSetup)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.PrintSetup.PrintSetup
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.PrintSetup.PrintSetup

-- | A sub-parser for GtkBuildable implementations.
module GI.Gtk.Structs.BuildableParser

-- | Memory-managed wrapper type.
newtype BuildableParser
BuildableParser :: ManagedPtr BuildableParser -> BuildableParser

-- | Construct a BuildableParser struct initialized to zero.
newZeroBuildableParser :: MonadIO m => m BuildableParser

-- | Set the value of the “end_element” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #endElement
--   
clearBuildableParserEndElement :: MonadIO m => BuildableParser -> m ()

-- | Get the value of the “end_element” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get buildableParser #endElement
--   
getBuildableParserEndElement :: MonadIO m => BuildableParser -> m (Maybe BuildableParserEndElementFieldCallback_WithClosures)

-- | Set the value of the “end_element” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set buildableParser [ #endElement := value ]
--   
setBuildableParserEndElement :: MonadIO m => BuildableParser -> FunPtr C_BuildableParserEndElementFieldCallback -> m ()

-- | Set the value of the “error” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #error
--   
clearBuildableParserError :: MonadIO m => BuildableParser -> m ()

-- | Get the value of the “error” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get buildableParser #error
--   
getBuildableParserError :: MonadIO m => BuildableParser -> m (Maybe BuildableParserErrorFieldCallback_WithClosures)

-- | Set the value of the “error” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set buildableParser [ #error := value ]
--   
setBuildableParserError :: MonadIO m => BuildableParser -> FunPtr C_BuildableParserErrorFieldCallback -> m ()

-- | Set the value of the “start_element” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #startElement
--   
clearBuildableParserStartElement :: MonadIO m => BuildableParser -> m ()

-- | Get the value of the “start_element” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get buildableParser #startElement
--   
getBuildableParserStartElement :: MonadIO m => BuildableParser -> m (Maybe BuildableParserStartElementFieldCallback_WithClosures)

-- | Set the value of the “start_element” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set buildableParser [ #startElement := value ]
--   
setBuildableParserStartElement :: MonadIO m => BuildableParser -> FunPtr C_BuildableParserStartElementFieldCallback -> m ()

-- | Set the value of the “text” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearBuildableParserText :: MonadIO m => BuildableParser -> m ()

-- | Get the value of the “text” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get buildableParser #text
--   
getBuildableParserText :: MonadIO m => BuildableParser -> m (Maybe BuildableParserTextFieldCallback_WithClosures)

-- | Set the value of the “text” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set buildableParser [ #text := value ]
--   
setBuildableParserText :: MonadIO m => BuildableParser -> FunPtr C_BuildableParserTextFieldCallback -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.BuildableParser.BuildableParser
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.BuildableParser.BuildableParser
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.BuildableParser.BuildableParser tag
instance GHC.Classes.Eq GI.Gtk.Structs.BuildableParser.BuildableParser
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.BuildableParser.BuildableParser

-- | Provides context for parsing GtkBuilder UI files.
--   
--   GtkBuildableParseContext is an opaque struct.
module GI.Gtk.Structs.BuildableParseContext

-- | Memory-managed wrapper type.
newtype BuildableParseContext
BuildableParseContext :: ManagedPtr BuildableParseContext -> BuildableParseContext

-- | Retrieves the name of the currently open element.
--   
--   If called from the start_element or end_element handlers this will
--   give the element_name as passed to those functions. For the parent
--   elements, see buildableParseContextGetElementStack.
buildableParseContextGetElement :: (HasCallStack, MonadIO m) => BuildableParseContext -> m (Maybe Text)

-- | Retrieves the element stack from the internal state of the parser.
--   
--   The returned GPtrArray is an array of strings where the last
--   item is the currently open tag (as would be returned by
--   buildableParseContextGetElement) and the previous item is its
--   immediate parent.
--   
--   This function is intended to be used in the start_element and
--   end_element handlers where buildableParseContextGetElement
--   would merely return the name of the element that is being processed.
buildableParseContextGetElementStack :: (HasCallStack, MonadIO m) => BuildableParseContext -> m [Text]

-- | Retrieves the current line number and the number of the character on
--   that line. Intended for use in error messages; there are no strict
--   semantics for what constitutes the "current" line number other than
--   "the best number we could come up with for error messages."
buildableParseContextGetPosition :: (HasCallStack, MonadIO m) => BuildableParseContext -> m (Int32, Int32)

-- | Completes the process of a temporary sub-parser redirection.
--   
--   This function exists to collect the user_data allocated by a matching
--   call to buildableParseContextPush. It must be called in the
--   end_element handler corresponding to the start_element handler during
--   which buildableParseContextPush was called. You must not call
--   this function from the error callback -- the userData
--   is provided directly to the callback in that case.
--   
--   This function is not intended to be directly called by users
--   interested in invoking subparsers. Instead, it is intended to be used
--   by the subparsers themselves to implement a higher-level interface.
buildableParseContextPop :: (HasCallStack, MonadIO m) => BuildableParseContext -> m (Ptr ())

-- | Temporarily redirects markup data to a sub-parser.
--   
--   This function may only be called from the start_element handler of a
--   GtkBuildableParser. It must be matched with a corresponding
--   call to buildableParseContextPop in the matching end_element
--   handler (except in the case that the parser aborts due to an error).
--   
--   All tags, text and other data between the matching tags is redirected
--   to the subparser given by parser.
--   userData is used as the user_data for that parser.
--   userData is also passed to the error callback in the
--   event that an error occurs. This includes errors that occur in
--   subparsers of the subparser.
--   
--   The end tag matching the start tag for which this call was made is
--   handled by the previous parser (which is given its own user_data)
--   which is why buildableParseContextPop is provided to allow "one
--   last access" to the userData provided to this
--   function. In the case of error, the userData provided
--   here is passed directly to the error callback of the subparser and
--   buildableParseContextPop should not be called. In either case,
--   if userData was allocated then it ought to be freed
--   from both of these locations.
--   
--   This function is not intended to be directly called by users
--   interested in invoking subparsers. Instead, it is intended to be used
--   by the subparsers themselves to implement a higher-level interface.
--   
--   For an example of how to use this, see markupParseContextPush
--   which has the same kind of API.
buildableParseContextPush :: (HasCallStack, MonadIO m) => BuildableParseContext -> BuildableParser -> Ptr () -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.BuildableParseContext.BuildableParseContext
instance GHC.Classes.Eq GI.Gtk.Structs.BuildableParseContext.BuildableParseContext
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.BuildableParseContext.BuildableParseContext

-- | Implements titlebar functionality for a window.
--   
--   When added into a window, it can be dragged to move the window, and it
--   implements the right click, double click and middle click behaviors
--   that are expected of a titlebar.
--   
--   
CSS nodes
--   
--   GtkWindowHandle has a single CSS node with the name
--   windowhandle.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkWindowHandle used the
--   AccessibleRoleGroup role.
--   
--   Starting from GTK 4.12, GtkWindowHandle uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.WindowHandle

-- | Memory-managed wrapper type.
newtype WindowHandle
WindowHandle :: ManagedPtr WindowHandle -> WindowHandle

-- | Type class for types which can be safely cast to WindowHandle,
--   for instance with toWindowHandle.
class (GObject o, IsDescendantOf WindowHandle o) => IsWindowHandle o

-- | Cast to WindowHandle, for types for which this is known to be
--   safe. For general casts, use castTo.
toWindowHandle :: (MonadIO m, IsWindowHandle o) => o -> m WindowHandle

-- | Gets the child widget of self.
windowHandleGetChild :: (HasCallStack, MonadIO m, IsWindowHandle a) => a -> m (Maybe Widget)

-- | Creates a new GtkWindowHandle.
windowHandleNew :: (HasCallStack, MonadIO m) => m WindowHandle

-- | Sets the child widget of self.
windowHandleSetChild :: (HasCallStack, MonadIO m, IsWindowHandle a, IsWidget b) => a -> Maybe b -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearWindowHandleChild :: (MonadIO m, IsWindowHandle o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructWindowHandleChild :: (IsWindowHandle o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get windowHandle #child
--   
getWindowHandleChild :: (MonadIO m, IsWindowHandle o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set windowHandle [ #child := value ]
--   
setWindowHandleChild :: (MonadIO m, IsWindowHandle o, IsWidget a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.WindowHandle.WindowHandle
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.WindowHandle.WindowHandle
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.WindowHandle.WindowHandle
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.WindowHandle.WindowHandle)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.WindowHandle.WindowHandle o) => GI.Gtk.Objects.WindowHandle.IsWindowHandle o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.WindowHandle.WindowHandle
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.WindowHandle.WindowHandle

-- | Creates groups of windows that behave like separate applications.
--   
--   It achieves this by limiting the effect of GTK grabs and modality to
--   windows in the same group.
--   
--   A window can be a member in at most one window group at a time.
--   Windows that have not been explicitly assigned to a group are
--   implicitly treated like windows of the default window group.
--   
--   GtkWindowGroup objects are referenced by each window in the
--   group, so once you have added all windows to a
--   GtkWindowGroup, you can drop the initial reference to the
--   window group with objectUnref. If the windows in the window
--   group are subsequently destroyed, then they will be removed from the
--   window group and drop their references on the window group; when all
--   window have been removed, the window group will be freed.
module GI.Gtk.Objects.WindowGroup

-- | Memory-managed wrapper type.
newtype WindowGroup
WindowGroup :: ManagedPtr WindowGroup -> WindowGroup

-- | Type class for types which can be safely cast to WindowGroup,
--   for instance with toWindowGroup.
class (GObject o, IsDescendantOf WindowGroup o) => IsWindowGroup o

-- | Cast to WindowGroup, for types for which this is known to be
--   safe. For general casts, use castTo.
toWindowGroup :: (MonadIO m, IsWindowGroup o) => o -> m WindowGroup

-- | Adds a window to a GtkWindowGroup.
windowGroupAddWindow :: (HasCallStack, MonadIO m, IsWindowGroup a, IsWindow b) => a -> b -> m ()

-- | Returns a list of the GtkWindows that belong to
--   windowGroup.
windowGroupListWindows :: (HasCallStack, MonadIO m, IsWindowGroup a) => a -> m [Window]

-- | Creates a new GtkWindowGroup object.
--   
--   Modality of windows only affects windows within the same
--   GtkWindowGroup.
windowGroupNew :: (HasCallStack, MonadIO m) => m WindowGroup

-- | Removes a window from a GtkWindowGroup.
windowGroupRemoveWindow :: (HasCallStack, MonadIO m, IsWindowGroup a, IsWindow b) => a -> b -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.WindowGroup.WindowGroup
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.WindowGroup.WindowGroup
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.WindowGroup.WindowGroup
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.WindowGroup.WindowGroup)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.WindowGroup.WindowGroup o) => GI.Gtk.Objects.WindowGroup.IsWindowGroup o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.WindowGroup.WindowGroup
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.WindowGroup.WindowGroup

-- | Shows window frame controls.
--   
--   Typical window frame controls are minimize, maximize and close
--   buttons, and the window icon.
--   
--   <picture> <source srcset="windowcontrols-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkWindowControls" src="windowcontrols.png"> </picture>
--   
--   GtkWindowControls only displays start or end side of the
--   controls (see WindowControls:side), so it's intended to be
--   always used in pair with another GtkWindowControls for the
--   opposite side, for example:
--   
--   
xml code
--   
--   
--   <object class="GtkBox">
--     <child>
--       <object class="GtkWindowControls">
--         <property name="side">start</property>
--       </object>
--     </child>
--   
--     ...
--   
--     <child>
--       <object class="GtkWindowControls">
--         <property name="side">end</property>
--       </object>
--     </child>
--   </object>
--   
--   
--   
CSS nodes
--   
--   
--   windowcontrols
--   ├── [image.icon]
--   ├── [button.minimize]
--   ├── [button.maximize]
--   ╰── [button.close]
--   
--   
--   A GtkWindowControls' CSS node is called windowcontrols. It
--   contains subnodes corresponding to each title button. Which of the
--   title buttons exist and where they are placed exactly depends on the
--   desktop environment and WindowControls:decorationLayout value.
--   
--   When WindowControls:empty is true, it gets the .empty style
--   class.
--   
--   
Accessibility
--   
--   GtkWindowControls uses the AccessibleRoleGroup role.
module GI.Gtk.Objects.WindowControls

-- | Memory-managed wrapper type.
newtype WindowControls
WindowControls :: ManagedPtr WindowControls -> WindowControls

-- | Type class for types which can be safely cast to
--   WindowControls, for instance with toWindowControls.
class (GObject o, IsDescendantOf WindowControls o) => IsWindowControls o

-- | Cast to WindowControls, for types for which this is known to be
--   safe. For general casts, use castTo.
toWindowControls :: (MonadIO m, IsWindowControls o) => o -> m WindowControls

-- | Gets the decoration layout of this window controls widget
windowControlsGetDecorationLayout :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> m (Maybe Text)

-- | Gets whether the widget has any window buttons.
windowControlsGetEmpty :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> m Bool

-- | Gets the side to which this window controls widget belongs.
windowControlsGetSide :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> m PackType

-- | Returns whether platform native window controls are shown.
--   
--   Since: 4.18
windowControlsGetUseNativeControls :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> m Bool

-- | Creates a new GtkWindowControls.
windowControlsNew :: (HasCallStack, MonadIO m) => PackType -> m WindowControls

-- | Sets the decoration layout for the title buttons.
--   
--   This overrides the Settings:gtkDecorationLayout setting.
--   
--   The format of the string is button names, separated by commas. A colon
--   separates the buttons that should appear on the left from those on the
--   right. Recognized button names are minimize, maximize, close and icon
--   (the window icon).
--   
--   For example, “icon:minimize,maximize,close” specifies a icon on the
--   left, and minimize, maximize and close buttons on the right.
--   
--   If WindowControls:side value is PackTypeStart,
--   self will display the part before the colon, otherwise
--   after that.
windowControlsSetDecorationLayout :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> Maybe Text -> m ()

-- | Determines which part of decoration layout the window controls widget
--   uses.
--   
--   See WindowControls:decorationLayout.
windowControlsSetSide :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> PackType -> m ()

-- | Sets whether platform native window controls are used.
--   
--   This option shows the "stoplight" buttons on macOS. For Linux, this
--   option has no effect.
--   
--   See also Using GTK on Apple macOS.
--   
--   Since: 4.18
windowControlsSetUseNativeControls :: (HasCallStack, MonadIO m, IsWindowControls a) => a -> Bool -> m ()

-- | Set the value of the “decoration-layout” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #decorationLayout
--   
clearWindowControlsDecorationLayout :: (MonadIO m, IsWindowControls o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “decoration-layout” property. This is rarely needed directly,
--   but it is used by new.
constructWindowControlsDecorationLayout :: (IsWindowControls o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “decoration-layout” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get windowControls #decorationLayout
--   
getWindowControlsDecorationLayout :: (MonadIO m, IsWindowControls o) => o -> m (Maybe Text)

-- | Set the value of the “decoration-layout” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set windowControls [ #decorationLayout := value ]
--   
setWindowControlsDecorationLayout :: (MonadIO m, IsWindowControls o) => o -> Text -> m ()

-- | Get the value of the “empty” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get windowControls #empty
--   
getWindowControlsEmpty :: (MonadIO m, IsWindowControls o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “side” property. This is rarely needed directly, but it is
--   used by new.
constructWindowControlsSide :: (IsWindowControls o, MonadIO m) => PackType -> m (GValueConstruct o)

-- | Get the value of the “side” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get windowControls #side
--   
getWindowControlsSide :: (MonadIO m, IsWindowControls o) => o -> m PackType

-- | Set the value of the “side” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set windowControls [ #side := value ]
--   
setWindowControlsSide :: (MonadIO m, IsWindowControls o) => o -> PackType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-native-controls” property. This is rarely needed
--   directly, but it is used by new.
constructWindowControlsUseNativeControls :: (IsWindowControls o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-native-controls” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get windowControls #useNativeControls
--   
getWindowControlsUseNativeControls :: (MonadIO m, IsWindowControls o) => o -> m Bool

-- | Set the value of the “use-native-controls” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set windowControls [ #useNativeControls := value ]
--   
setWindowControlsUseNativeControls :: (MonadIO m, IsWindowControls o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.WindowControls.WindowControls
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.WindowControls.WindowControls
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.WindowControls.WindowControls
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.WindowControls.WindowControls)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.WindowControls.WindowControls o) => GI.Gtk.Objects.WindowControls.IsWindowControls o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.WindowControls.WindowControls
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.WindowControls.WindowControls

-- | A toplevel window which can contain other widgets.
--   
--   <picture> <source srcset="window-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkWindow" src="window.png"> </picture>
--   
--   Windows normally have decorations that are under the control of the
--   windowing system and allow the user to manipulate the window (resize
--   it, move it, close it,...).
--   
--   
GtkWindow as GtkBuildable
--   
--   The GtkWindow implementation of the Buildable
--   interface supports setting a child as the titlebar by specifying
--   “titlebar” as the “type” attribute of a <child>
--   element.
--   
--   
Shortcuts and Gestures
--   
--   GtkWindow supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>F10</kbd> activates the menubar, if present.
--   
- <kbd>Alt</kbd> makes the mnemonics visible while
--   pressed.
--   
--   
--   The following signals have default keybindings:
--   
--   
--   
- Window::activateDefault
--   
- Window::activateFocus
--   
- Window::enableDebugging
--   
--   
--   
Actions
--   
--   GtkWindow defines a set of built-in actions:
--   
--   
--   
- default.activate activates the default widget.
--   
- window.minimize minimizes the window.
--   
- window.toggle-maximized maximizes or restores the
--   window.
--   
- window.close closes the window.
--   
--   
--   
CSS nodes
--   
--   
--   window.background [.csd / .solid-csd / .ssd] [.maximized / .fullscreen / .tiled]
--   ├── <child>
--   ╰── <titlebar child>.titlebar [.default-decoration]
--   
--   
--   GtkWindow has a main CSS node with name window and style
--   class .background.
--   
--   Style classes that are typically used with the main CSS node are .csd
--   (when client-side decorations are in use), .solid-csd (for client-side
--   decorations without invisible borders), .ssd (used by mutter when
--   rendering server-side decorations). GtkWindow also represents window
--   states with the following style classes on the main node: .maximized,
--   .fullscreen, .tiled (when supported, also .tiled-top, .tiled-left,
--   .tiled-right, .tiled-bottom).
--   
--   GtkWindow subclasses often add their own discriminating style
--   classes, such as .dialog, .popup or .tooltip.
--   
--   Generally, some CSS properties don't make sense on the toplevel window
--   node, such as margins or padding. When client-side decorations without
--   invisible borders are in use (i.e. the .solid-csd style class is added
--   to the main window node), the CSS border of the toplevel window is
--   used for resize drags. In the .csd case, the shadow area outside of
--   the window can be used to resize it.
--   
--   GtkWindow adds the .titlebar and .default-decoration style
--   classes to the widget that is added as a titlebar child.
--   
--   
Accessibility
--   
--   GtkWindow uses the AccessibleRoleWindow role.
--   
--   From GTK 4.12 to 4.18, it used the AccessibleRoleApplication
--   role.
module GI.Gtk.Objects.Window

-- | Memory-managed wrapper type.
newtype Window
Window :: ManagedPtr Window -> Window

-- | Type class for types which can be safely cast to Window, for
--   instance with toWindow.
class (GObject o, IsDescendantOf Window o) => IsWindow o

-- | Cast to Window, for types for which this is known to be safe.
--   For general casts, use castTo.
toWindow :: (MonadIO m, IsWindow o) => o -> m Window

-- | Requests that the window is closed.
--   
--   This is similar to what happens when a window manager close button is
--   clicked.
--   
--   This function can be used with close buttons in custom titlebars.
windowClose :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Drops the internal reference GTK holds on toplevel windows.
windowDestroy :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Asks to place the window in the fullscreen state.
--   
--   Note that you shouldn’t assume the window is definitely fullscreen
--   afterward, because other entities (e.g. the user or window manager)
--   unfullscreen it again, and not all window managers honor requests to
--   fullscreen windows.
--   
--   If a window is not explicitly fullscreened or unfullscreened before it
--   is shown, the initial state is at the window managers discretion.
--   
--   You can track the result of this operation via the
--   Toplevel:state property, or by listening to notifications of
--   the Window:fullscreened property.
windowFullscreen :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Asks to place the window in the fullscreen state on the given monitor.
--   
--   Note that you shouldn't assume the window is definitely fullscreen
--   afterward, or that the windowing system allows fullscreen windows on
--   any given monitor.
--   
--   You can track the result of this operation via the
--   Toplevel:state property, or by listening to notifications of
--   the Window:fullscreened property.
windowFullscreenOnMonitor :: (HasCallStack, MonadIO m, IsWindow a, IsMonitor b) => a -> b -> m ()

-- | Gets the application object associated with the window.
windowGetApplication :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Application)

-- | Gets the child widget of the window.
windowGetChild :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Widget)

-- | Returns whether the window has been set to have decorations.
windowGetDecorated :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns the fallback icon name for windows.
--   
--   The returned string is owned by GTK and should not be modified. It is
--   only valid until the next call to windowSetDefaultIconName.
windowGetDefaultIconName :: (HasCallStack, MonadIO m) => m (Maybe Text)

-- | Gets the default size of the window.
--   
--   A value of 0 for the width or height indicates that a default size has
--   not been explicitly set for that dimension, so the “natural” size of
--   the window will be used.
--   
--   This function is the recommended way for
--   <https://developer.gnome.org/documentation/tutorials/save-state.html
--   saving window state across restarts of applications>.
windowGetDefaultSize :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Int32, Int32)

-- | Returns the default widget for window.
windowGetDefaultWidget :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Widget)

-- | Returns whether the window has been set to have a close button.
windowGetDeletable :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns whether the window will be destroyed with its transient
--   parent.
windowGetDestroyWithParent :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Retrieves the current focused widget within the window.
--   
--   Note that this is the widget that would have the focus if the toplevel
--   window focused; if the toplevel window is not focused then
--   gtk_widget_has_focus (widget) will not be false for the
--   widget.
windowGetFocus :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Widget)

-- | Gets whether “focus rectangles” are supposed to be visible.
windowGetFocusVisible :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns the gravity that is used when changing the window size
--   programmatically.
--   
--   Since: 4.20
windowGetGravity :: (HasCallStack, MonadIO m, IsWindow a) => a -> m WindowGravity

-- | Returns the group for the window.
--   
--   If the window has no group, then the default group is returned.
windowGetGroup :: (HasCallStack, MonadIO m, IsWindow a) => Maybe a -> m WindowGroup

-- | Returns whether this window reacts to <kbd>F10</kbd>
--   presses by activating a menubar it contains.
--   
--   Since: 4.2
windowGetHandleMenubarAccel :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns whether the window will be hidden instead of destroyed when
--   the close button is clicked.
windowGetHideOnClose :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns the name of the themed icon for the window.
windowGetIconName :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Text)

-- | Gets whether mnemonics are supposed to be visible.
windowGetMnemonicsVisible :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns whether the window is modal.
windowGetModal :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Gets whether the user can resize the window.
windowGetResizable :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Retrieves the title of the window.
windowGetTitle :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Text)

-- | Returns the titlebar that has been set with windowSetTitlebar.
windowGetTitlebar :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Widget)

-- | Returns the list of all existing toplevel windows.
--   
--   If you want to iterate through the list and perform actions involving
--   callbacks that might destroy the widgets or add new ones, be aware
--   that the list of toplevels will change and emit the "items-changed"
--   signal.
windowGetToplevels :: (HasCallStack, MonadIO m) => m ListModel

-- | Fetches the transient parent for this window.
windowGetTransientFor :: (HasCallStack, MonadIO m, IsWindow a) => a -> m (Maybe Window)

-- | Returns whether the window has an explicit window group.
windowHasGroup :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns whether the window is part of the current active toplevel.
--   
--   The active toplevel is the window receiving keystrokes.
--   
--   The return value is True if the window is active toplevel
--   itself. You might use this function if you wanted to draw a widget
--   differently in an active window from a widget in an inactive window.
windowIsActive :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Retrieves the current fullscreen state of the window.
--   
--   Note that since fullscreening is ultimately handled by the window
--   manager and happens asynchronously to an application request, you
--   shouldn’t assume the return value of this function changing
--   immediately (or at all), as an effect of calling
--   windowFullscreen or windowUnfullscreen.
--   
--   If the window isn't yet mapped, the value returned will whether the
--   initial requested state is fullscreen.
windowIsFullscreen :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Retrieves the current maximized state of the window.
--   
--   Note that since maximization is ultimately handled by the window
--   manager and happens asynchronously to an application request, you
--   shouldn’t assume the return value of this function changing
--   immediately (or at all), as an effect of calling windowMaximize
--   or windowUnmaximize.
--   
--   If the window isn't yet mapped, the value returned will whether the
--   initial requested state is maximized.
windowIsMaximized :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Retrieves the current suspended state of the window.
--   
--   A window being suspended means it's currently not visible to the user,
--   for example by being on a inactive workspace, minimized, obstructed.
--   
--   Since: 4.12
windowIsSuspended :: (HasCallStack, MonadIO m, IsWindow a) => a -> m Bool

-- | Returns the list of all existing toplevel windows.
--   
--   The widgets in the list are not individually referenced. If you want
--   to iterate through the list and perform actions involving callbacks
--   that might destroy the widgets, you must call g_list_foreach
--   (result, (GFunc)g_object_ref, NULL) first, and then unref all the
--   widgets afterwards.
windowListToplevels :: (HasCallStack, MonadIO m) => m [Widget]

-- | Asks to maximize the window, so that it fills the screen.
--   
--   Note that you shouldn’t assume the window is definitely maximized
--   afterward, because other entities (e.g. the user or window manager)
--   could unmaximize it again, and not all window managers support
--   maximization.
--   
--   It’s permitted to call this function before showing a window, in which
--   case the window will be maximized when it appears onscreen initially.
--   
--   If a window is not explicitly maximized or unmaximized before it is
--   shown, the initial state is at the window managers discretion. For
--   example, it might decide to maximize a window that almost fills the
--   screen.
--   
--   You can track the result of this operation via the
--   Toplevel:state property, or by listening to notifications on
--   the Window:maximized property.
windowMaximize :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Asks to minimize the window.
--   
--   Note that you shouldn’t assume the window is definitely minimized
--   afterward, because the windowing system might not support this
--   functionality; other entities (e.g. the user or the window manager)
--   could unminimize it again, or there may not be a window manager in
--   which case minimization isn’t possible, etc.
--   
--   It’s permitted to call this function before showing a window, in which
--   case the window will be minimized before it ever appears onscreen.
--   
--   You can track result of this operation via the Toplevel:state
--   property.
windowMinimize :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Creates a new GtkWindow.
--   
--   To get an undecorated window (without window borders), use
--   windowSetDecorated.
--   
--   All top-level windows created by this function are stored in an
--   internal top-level window list. This list can be obtained from
--   windowListToplevels. Due to GTK keeping a reference to the
--   window internally, this function does not return a reference to the
--   caller.
--   
--   To delete a GtkWindow, call windowDestroy.
windowNew :: (HasCallStack, MonadIO m) => m Window

-- | Presents a window to the user.
--   
--   This may mean raising the window in the stacking order, unminimizing
--   it, moving it to the current desktop and/or giving it the keyboard
--   focus (possibly dependent on the user’s platform, window manager and
--   preferences).
--   
--   If window is hidden, this function also makes it
--   visible.
windowPresent :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Presents a window to the user in response to an user interaction.
--   
--   See windowPresent for more details.
--   
--   The timestamp should be gathered when the window was requested to be
--   shown (when clicking a link for example), rather than once the window
--   is ready to be shown.

-- | Deprecated: (Since version 4.14)Use windowPresent
windowPresentWithTime :: (HasCallStack, MonadIO m, IsWindow a) => a -> Word32 -> m ()

-- | Sets or unsets the application object associated with the window.
--   
--   The application will be kept alive for at least as long as it has any
--   windows associated with it (see applicationHold for a way to
--   keep it alive without windows).
--   
--   Normally, the connection between the application and the window will
--   remain until the window is destroyed, but you can explicitly remove it
--   by setting the application to Nothing.
--   
--   This is equivalent to calling applicationRemoveWindow and/or
--   applicationAddWindow on the old/new applications as relevant.
windowSetApplication :: (HasCallStack, MonadIO m, IsWindow a, IsApplication b) => a -> Maybe b -> m ()

-- | Sets whether the window should request startup notification.
--   
--   By default, after showing the first window, GTK calls
--   toplevelSetStartupId. Call this function to disable the
--   automatic startup notification. You might do this if your first window
--   is a splash screen, and you want to delay notification until after
--   your real main window has been shown, for example.
--   
--   In that example, you would disable startup notification temporarily,
--   show your splash screen, then re-enable it so that showing the main
--   window would automatically result in notification.
windowSetAutoStartupNotification :: (HasCallStack, MonadIO m) => Bool -> m ()

-- | Sets the child widget of the window.
windowSetChild :: (HasCallStack, MonadIO m, IsWindow a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the window should be decorated.
--   
--   By default, windows are decorated with a title bar, resize controls,
--   etc. Some window managers allow GTK to disable these decorations,
--   creating a borderless window. If you set the decorated property to
--   false using this function, GTK will do its best to convince the window
--   manager not to decorate the window. Depending on the system, this
--   function may not have any effect when called on a window that is
--   already visible, so you should call it before calling
--   widgetShow.
--   
--   On Windows, this function always works, since there’s no window
--   manager policy involved.
windowSetDecorated :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets an icon to be used as fallback.
--   
--   The fallback icon is used for windows that haven't had
--   windowSetIconName called on them.
windowSetDefaultIconName :: (HasCallStack, MonadIO m) => Text -> m ()

-- | Sets the default size of a window.
--   
--   The default size of a window is the size that will be used if no other
--   constraints apply.
--   
--   The default size will be updated whenever the window is resized to
--   reflect the new size, unless the window is forced to a size, like when
--   it is maximized or fullscreened.
--   
--   If the window’s minimum size request is larger than the default, the
--   default will be ignored.
--   
--   Setting the default size to a value <= 0 will cause it to be
--   ignored and the natural size request will be used instead. It is
--   possible to do this while the window is showing to "reset" it to its
--   initial size.
--   
--   Unlike widgetSetSizeRequest, which sets a size request for a
--   widget and thus would keep users from shrinking the window, this
--   function only sets the initial size, just as if the user had resized
--   the window themselves. Users can still shrink the window again as they
--   normally would. Setting a default size of -1 means to use the
--   “natural” default size (the size request of the window).
--   
--   If you use this function to reestablish a previously saved window
--   size, note that the appropriate size to save is the one returned by
--   windowGetDefaultSize. Using the window allocation directly will
--   not work in all circumstances and can lead to growing or shrinking
--   windows.
windowSetDefaultSize :: (HasCallStack, MonadIO m, IsWindow a) => a -> Int32 -> Int32 -> m ()

-- | Sets the default widget.
--   
--   The default widget is the widget that is activated when the user
--   presses <kbd>Enter</kbd> in a dialog (for example).
windowSetDefaultWidget :: (HasCallStack, MonadIO m, IsWindow a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the window should be deletable.
--   
--   By default, windows have a close button in the window frame. Some
--   window managers allow GTK to disable this button. If you set the
--   deletable property to false using this function, GTK will do its best
--   to convince the window manager not to show a close button. Depending
--   on the system, this function may not have any effect when called on a
--   window that is already visible, so you should call it before calling
--   widgetShow.
--   
--   On Windows, this function always works, since there’s no window
--   manager policy involved.
windowSetDeletable :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets whether to destroy the window when the transient parent is
--   destroyed.
--   
--   This is useful for dialogs that shouldn’t persist beyond the lifetime
--   of the main window they are associated with, for example.
windowSetDestroyWithParent :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets the display where the window is displayed.
--   
--   If the window is already mapped, it will be unmapped, and then
--   remapped on the new display.
windowSetDisplay :: (HasCallStack, MonadIO m, IsWindow a, IsDisplay b) => a -> b -> m ()

-- | Sets the focus widget.
--   
--   If focus is not the current focus widget, and is
--   focusable, sets it as the focus widget for the window. If
--   focus is Nothing, unsets the focus widget for
--   this window. To set the focus to a particular widget in the toplevel,
--   it is usually more convenient to use widgetGrabFocus instead of
--   this function.
windowSetFocus :: (HasCallStack, MonadIO m, IsWindow a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether “focus rectangles” are supposed to be visible.
--   
--   This property is maintained by GTK based on user input, and should not
--   be set by applications.
windowSetFocusVisible :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets the gravity that is used when changing the window size
--   programmatically.
--   
--   Since: 4.20
windowSetGravity :: (HasCallStack, MonadIO m, IsWindow a) => a -> WindowGravity -> m ()

-- | Sets whether this window should react to <kbd>F10</kbd>
--   presses by activating a menubar it contains.
--   
--   Since: 4.2
windowSetHandleMenubarAccel :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets whether clicking the close button will hide the window instead of
--   destroying it.
windowSetHideOnClose :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets the icon for the window from a named themed icon.
--   
--   See the docs for IconTheme for more details. On some platforms,
--   the window icon is not used at all.
--   
--   Note that this has nothing to do with the WM_ICON_NAME property which
--   is mentioned in the ICCCM.
windowSetIconName :: (HasCallStack, MonadIO m, IsWindow a) => a -> Maybe Text -> m ()

-- | Opens or closes the interactive debugger.
--   
--   The debugger offers access to the widget hierarchy of the application
--   and to useful debugging tools.
--   
--   This function allows applications that already use
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd>
--   (or
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd>)
--   for their own key shortcuts to add a different shortcut to open the
--   Inspector.
--   
--   If you are not overriding the default key shortcuts for the Inspector,
--   you should not use this function.
windowSetInteractiveDebugging :: (HasCallStack, MonadIO m) => Bool -> m ()

-- | Sets whether mnemonics are supposed to be visible.
--   
--   This property is maintained by GTK based on user input, and should not
--   be set by applications.
windowSetMnemonicsVisible :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets a window modal or non-modal.
--   
--   Modal windows prevent interaction with other windows in the same
--   application. To keep modal dialogs on top of main application windows,
--   use windowSetTransientFor to make the dialog transient for the
--   parent; most window managers will then disallow lowering the dialog
--   below the parent.
windowSetModal :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets whether the user can resize a window.
--   
--   Windows are user resizable by default.
windowSetResizable :: (HasCallStack, MonadIO m, IsWindow a) => a -> Bool -> m ()

-- | Sets the startup notification ID.
--   
--   Startup notification identifiers are used by desktop environment to
--   track application startup, to provide user feedback and other
--   features. This function changes the corresponding property on the
--   underlying GdkSurface.
--   
--   Normally, startup identifier is managed automatically and you should
--   only use this function in special cases like transferring focus from
--   other processes. You should use this function before calling
--   windowPresent or any equivalent function generating a window
--   map event.
--   
--   This function is only useful on Wayland or X11, not with other GDK
--   backends.
windowSetStartupId :: (HasCallStack, MonadIO m, IsWindow a) => a -> Text -> m ()

-- | Sets the title of the window.
--   
--   The title of a window will be displayed in its title bar; on the X
--   Window System, the title bar is rendered by the window manager so
--   exactly how the title appears to users may vary according to a user’s
--   exact configuration. The title should help a user distinguish this
--   window from other windows they may have open. A good title might
--   include the application name and current document filename, for
--   example.
--   
--   Passing NULL does the same as setting the title to an empty
--   string.
windowSetTitle :: (HasCallStack, MonadIO m, IsWindow a) => a -> Maybe Text -> m ()

-- | Sets a custom titlebar for the window.
--   
--   A typical widget used here is HeaderBar, as it provides various
--   features expected of a titlebar while allowing the addition of child
--   widgets to it.
--   
--   If you set a custom titlebar, GTK will do its best to convince the
--   window manager not to put its own titlebar on the window. Depending on
--   the system, this function may not work for a window that is already
--   visible, so you set the titlebar before calling widgetShow.
windowSetTitlebar :: (HasCallStack, MonadIO m, IsWindow a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets a transient parent for the window.
--   
--   Dialog windows should be set transient for the main application window
--   they were spawned from. This allows window managers to e.g. keep the
--   dialog on top of the main window, or center the dialog over the main
--   window. Dialog.new_with_buttons() and other
--   convenience functions in GTK will sometimes call this function on your
--   behalf.
--   
--   Passing NULL for parent unsets the current
--   transient window.
--   
--   On Windows, this function puts the child window on top of the parent,
--   much as the window manager would have done on X.
windowSetTransientFor :: (HasCallStack, MonadIO m, IsWindow a, IsWindow b) => a -> Maybe b -> m ()

-- | Asks to remove the fullscreen state for the window, and return to its
--   previous state.
--   
--   Note that you shouldn’t assume the window is definitely not fullscreen
--   afterward, because other entities (e.g. the user or window manager)
--   could fullscreen it again, and not all window managers honor requests
--   to unfullscreen windows; normally the window will end up restored to
--   its normal state. Just don’t write code that crashes if not.
--   
--   If a window is not explicitly fullscreened or unfullscreened before it
--   is shown, the initial state is at the window managers discretion.
--   
--   You can track the result of this operation via the
--   Toplevel:state property, or by listening to notifications of
--   the Window:fullscreened property.
windowUnfullscreen :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Asks to unmaximize the window.
--   
--   Note that you shouldn’t assume the window is definitely unmaximized
--   afterward, because other entities (e.g. the user or window manager)
--   maximize it again, and not all window managers honor requests to
--   unmaximize.
--   
--   If a window is not explicitly maximized or unmaximized before it is
--   shown, the initial state is at the window managers discretion. For
--   example, it might decide to maximize a window that almost fills the
--   screen.
--   
--   You can track the result of this operation via the
--   Toplevel:state property, or by listening to notifications on
--   the Window:maximized property.
windowUnmaximize :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Asks to unminimize the window.
--   
--   Note that you shouldn’t assume the window is definitely unminimized
--   afterward, because the windowing system might not support this
--   functionality; other entities (e.g. the user or the window manager)
--   could minimize it again, or there may not be a window manager in which
--   case minimization isn’t possible, etc.
--   
--   You can track result of this operation via the Toplevel:state
--   property.
windowUnminimize :: (HasCallStack, MonadIO m, IsWindow a) => a -> m ()

-- | Set the value of the “application” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #application
--   
clearWindowApplication :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “application” property. This is rarely needed directly, but
--   it is used by new.
constructWindowApplication :: (IsWindow o, MonadIO m, IsApplication a) => a -> m (GValueConstruct o)

-- | Get the value of the “application” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #application
--   
getWindowApplication :: (MonadIO m, IsWindow o) => o -> m (Maybe Application)

-- | Set the value of the “application” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #application := value ]
--   
setWindowApplication :: (MonadIO m, IsWindow o, IsApplication a) => o -> a -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearWindowChild :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructWindowChild :: (IsWindow o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #child
--   
getWindowChild :: (MonadIO m, IsWindow o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #child := value ]
--   
setWindowChild :: (MonadIO m, IsWindow o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “decorated” property. This is rarely needed directly, but it
--   is used by new.
constructWindowDecorated :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “decorated” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #decorated
--   
getWindowDecorated :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “decorated” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #decorated := value ]
--   
setWindowDecorated :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-height” property. This is rarely needed directly,
--   but it is used by new.
constructWindowDefaultHeight :: (IsWindow o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “default-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #defaultHeight
--   
getWindowDefaultHeight :: (MonadIO m, IsWindow o) => o -> m Int32

-- | Set the value of the “default-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #defaultHeight := value ]
--   
setWindowDefaultHeight :: (MonadIO m, IsWindow o) => o -> Int32 -> m ()

-- | Set the value of the “default-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #defaultWidget
--   
clearWindowDefaultWidget :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-widget” property. This is rarely needed directly,
--   but it is used by new.
constructWindowDefaultWidget :: (IsWindow o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “default-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #defaultWidget
--   
getWindowDefaultWidget :: (MonadIO m, IsWindow o) => o -> m (Maybe Widget)

-- | Set the value of the “default-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #defaultWidget := value ]
--   
setWindowDefaultWidget :: (MonadIO m, IsWindow o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-width” property. This is rarely needed directly, but
--   it is used by new.
constructWindowDefaultWidth :: (IsWindow o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “default-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #defaultWidth
--   
getWindowDefaultWidth :: (MonadIO m, IsWindow o) => o -> m Int32

-- | Set the value of the “default-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #defaultWidth := value ]
--   
setWindowDefaultWidth :: (MonadIO m, IsWindow o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “deletable” property. This is rarely needed directly, but it
--   is used by new.
constructWindowDeletable :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “deletable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #deletable
--   
getWindowDeletable :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “deletable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #deletable := value ]
--   
setWindowDeletable :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “destroy-with-parent” property. This is rarely needed
--   directly, but it is used by new.
constructWindowDestroyWithParent :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “destroy-with-parent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #destroyWithParent
--   
getWindowDestroyWithParent :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “destroy-with-parent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #destroyWithParent := value ]
--   
setWindowDestroyWithParent :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “display” property. This is rarely needed directly, but it is
--   used by new.
constructWindowDisplay :: (IsWindow o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #display
--   
getWindowDisplay :: (MonadIO m, IsWindow o) => o -> m (Maybe Display)

-- | Set the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #display := value ]
--   
setWindowDisplay :: (MonadIO m, IsWindow o, IsDisplay a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focus-visible” property. This is rarely needed directly, but
--   it is used by new.
constructWindowFocusVisible :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “focus-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #focusVisible
--   
getWindowFocusVisible :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “focus-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #focusVisible := value ]
--   
setWindowFocusVisible :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Set the value of the “focus-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #focusWidget
--   
clearWindowFocusWidget :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focus-widget” property. This is rarely needed directly, but
--   it is used by new.
constructWindowFocusWidget :: (IsWindow o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “focus-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #focusWidget
--   
getWindowFocusWidget :: (MonadIO m, IsWindow o) => o -> m (Maybe Widget)

-- | Set the value of the “focus-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #focusWidget := value ]
--   
setWindowFocusWidget :: (MonadIO m, IsWindow o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fullscreened” property. This is rarely needed directly, but
--   it is used by new.
constructWindowFullscreened :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “fullscreened” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #fullscreened
--   
getWindowFullscreened :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “fullscreened” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #fullscreened := value ]
--   
setWindowFullscreened :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gravity” property. This is rarely needed directly, but it is
--   used by new.
constructWindowGravity :: (IsWindow o, MonadIO m) => WindowGravity -> m (GValueConstruct o)

-- | Get the value of the “gravity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #gravity
--   
getWindowGravity :: (MonadIO m, IsWindow o) => o -> m WindowGravity

-- | Set the value of the “gravity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #gravity := value ]
--   
setWindowGravity :: (MonadIO m, IsWindow o) => o -> WindowGravity -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “handle-menubar-accel” property. This is rarely needed
--   directly, but it is used by new.
constructWindowHandleMenubarAccel :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “handle-menubar-accel” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #handleMenubarAccel
--   
getWindowHandleMenubarAccel :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “handle-menubar-accel” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #handleMenubarAccel := value ]
--   
setWindowHandleMenubarAccel :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hide-on-close” property. This is rarely needed directly, but
--   it is used by new.
constructWindowHideOnClose :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hide-on-close” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #hideOnClose
--   
getWindowHideOnClose :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “hide-on-close” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #hideOnClose := value ]
--   
setWindowHideOnClose :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Set the value of the “icon-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #iconName
--   
clearWindowIconName :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructWindowIconName :: (IsWindow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #iconName
--   
getWindowIconName :: (MonadIO m, IsWindow o) => o -> m (Maybe Text)

-- | Set the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #iconName := value ]
--   
setWindowIconName :: (MonadIO m, IsWindow o) => o -> Text -> m ()

-- | Get the value of the “is-active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #isActive
--   
getWindowIsActive :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “maximized” property. This is rarely needed directly, but it
--   is used by new.
constructWindowMaximized :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “maximized” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #maximized
--   
getWindowMaximized :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “maximized” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #maximized := value ]
--   
setWindowMaximized :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mnemonics-visible” property. This is rarely needed directly,
--   but it is used by new.
constructWindowMnemonicsVisible :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “mnemonics-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #mnemonicsVisible
--   
getWindowMnemonicsVisible :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “mnemonics-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #mnemonicsVisible := value ]
--   
setWindowMnemonicsVisible :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructWindowModal :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #modal
--   
getWindowModal :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #modal := value ]
--   
setWindowModal :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resizable” property. This is rarely needed directly, but it
--   is used by new.
constructWindowResizable :: (IsWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “resizable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #resizable
--   
getWindowResizable :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “resizable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #resizable := value ]
--   
setWindowResizable :: (MonadIO m, IsWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “startup-id” property. This is rarely needed directly, but it
--   is used by new.
constructWindowStartupId :: (IsWindow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “startup-id” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #startupId := value ]
--   
setWindowStartupId :: (MonadIO m, IsWindow o) => o -> Text -> m ()

-- | Get the value of the “suspended” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #suspended
--   
getWindowSuspended :: (MonadIO m, IsWindow o) => o -> m Bool

-- | Set the value of the “title” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #title
--   
clearWindowTitle :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructWindowTitle :: (IsWindow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #title
--   
getWindowTitle :: (MonadIO m, IsWindow o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #title := value ]
--   
setWindowTitle :: (MonadIO m, IsWindow o) => o -> Text -> m ()

-- | Set the value of the “titlebar” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #titlebar
--   
clearWindowTitlebar :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “titlebar” property. This is rarely needed directly, but it
--   is used by new.
constructWindowTitlebar :: (IsWindow o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “titlebar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #titlebar
--   
getWindowTitlebar :: (MonadIO m, IsWindow o) => o -> m (Maybe Widget)

-- | Set the value of the “titlebar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #titlebar := value ]
--   
setWindowTitlebar :: (MonadIO m, IsWindow o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “transient-for” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #transientFor
--   
clearWindowTransientFor :: (MonadIO m, IsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “transient-for” property. This is rarely needed directly, but
--   it is used by new.
constructWindowTransientFor :: (IsWindow o, MonadIO m, IsWindow a) => a -> m (GValueConstruct o)

-- | Get the value of the “transient-for” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get window #transientFor
--   
getWindowTransientFor :: (MonadIO m, IsWindow o) => o -> m (Maybe Window)

-- | Set the value of the “transient-for” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set window [ #transientFor := value ]
--   
setWindowTransientFor :: (MonadIO m, IsWindow o, IsWindow a) => o -> a -> m ()

-- | Emitted when the user activates the default widget.
--   
--   This is a keybinding signal.
--   
--   The keybindings for this signal are all forms of the
--   <kbd>Enter</kbd> key.
type WindowActivateDefaultCallback = IO ()

-- | Connect a signal handler for the activateDefault signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after window #activateDefault callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWindowActivateDefault :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowActivateDefaultCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateDefault signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on window #activateDefault callback
--   
onWindowActivateDefault :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowActivateDefaultCallback) -> m SignalHandlerId

-- | Emitted when the user activates the currently focused widget of
--   window.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is <kbd>␣</kbd>.
type WindowActivateFocusCallback = IO ()

-- | Connect a signal handler for the activateFocus signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after window #activateFocus callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWindowActivateFocus :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowActivateFocusCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateFocus signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on window #activateFocus callback
--   
onWindowActivateFocus :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowActivateFocusCallback) -> m SignalHandlerId

-- | Emitted when the user clicks on the close button of the window.
type WindowCloseRequestCallback = IO Bool

-- | Connect a signal handler for the closeRequest signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after window #closeRequest callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWindowCloseRequest :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowCloseRequestCallback) -> m SignalHandlerId

-- | Connect a signal handler for the closeRequest signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on window #closeRequest callback
--   
onWindowCloseRequest :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowCloseRequestCallback) -> m SignalHandlerId

-- | Emitted when the user enables or disables interactive debugging.
--   
--   When toggle is true, interactive debugging is toggled
--   on or off, when it is false, the debugger will be pointed at the
--   widget under the pointer.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd>
--   and
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd>.
type WindowEnableDebuggingCallback = Bool -> IO Bool

-- | Connect a signal handler for the enableDebugging signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after window #enableDebugging callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWindowEnableDebugging :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowEnableDebuggingCallback) -> m SignalHandlerId

-- | Connect a signal handler for the enableDebugging signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on window #enableDebugging callback
--   
onWindowEnableDebugging :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowEnableDebuggingCallback) -> m SignalHandlerId

-- | Emitted when the set of accelerators or mnemonics that are associated
--   with the window changes.

-- | Deprecated: (Since version 4.10)Use Shortcut and
--   EventControllerto implement keyboard shortcuts
type WindowKeysChangedCallback = IO ()

-- | Connect a signal handler for the keysChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after window #keysChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWindowKeysChanged :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowKeysChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the keysChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on window #keysChanged callback
--   
onWindowKeysChanged :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowKeysChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Window.Window
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Window.Window
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Window.Window
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Window.Window)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Window.Window o) => GI.Gtk.Objects.Window.IsWindow o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Window.Window
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Window.Window

-- | A GdkPaintable that displays the contents of a widget.
--   
--   GtkWidgetPaintable will also take care of the widget not
--   being in a state where it can be drawn (like when it isn't shown) and
--   just draw nothing or where it does not have a size (like when it is
--   hidden) and report no size in that case.
--   
--   Of course, GtkWidgetPaintable allows you to monitor widgets
--   for size changes by emitting the Paintable::invalidateSize
--   signal whenever the size of the widget changes as well as for visual
--   changes by emitting the Paintable::invalidateContents signal
--   whenever the widget changes.
--   
--   You can use a GtkWidgetPaintable everywhere a
--   GdkPaintable is allowed, including using it on a
--   GtkPicture (or one of its parents) that it was set on itself
--   via pictureSetPaintable. The paintable will take care of
--   recursion when this happens. If you do this however, ensure that the
--   Picture:canShrink property is set to True or you might
--   end up with an infinitely growing widget.
module GI.Gtk.Objects.WidgetPaintable

-- | Memory-managed wrapper type.
newtype WidgetPaintable
WidgetPaintable :: ManagedPtr WidgetPaintable -> WidgetPaintable

-- | Type class for types which can be safely cast to
--   WidgetPaintable, for instance with toWidgetPaintable.
class (GObject o, IsDescendantOf WidgetPaintable o) => IsWidgetPaintable o

-- | Cast to WidgetPaintable, for types for which this is known to
--   be safe. For general casts, use castTo.
toWidgetPaintable :: (MonadIO m, IsWidgetPaintable o) => o -> m WidgetPaintable

-- | Returns the widget that is observed or Nothing if none.
widgetPaintableGetWidget :: (HasCallStack, MonadIO m, IsWidgetPaintable a) => a -> m (Maybe Widget)

-- | Creates a new widget paintable observing the given widget.
widgetPaintableNew :: (HasCallStack, MonadIO m, IsWidget a) => Maybe a -> m WidgetPaintable

-- | Sets the widget that should be observed.
widgetPaintableSetWidget :: (HasCallStack, MonadIO m, IsWidgetPaintable a, IsWidget b) => a -> Maybe b -> m ()

-- | Set the value of the “widget” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #widget
--   
clearWidgetPaintableWidget :: (MonadIO m, IsWidgetPaintable o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “widget” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetPaintableWidget :: (IsWidgetPaintable o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetPaintable #widget
--   
getWidgetPaintableWidget :: (MonadIO m, IsWidgetPaintable o) => o -> m (Maybe Widget)

-- | Set the value of the “widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetPaintable [ #widget := value ]
--   
setWidgetPaintableWidget :: (MonadIO m, IsWidgetPaintable o, IsWidget a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.WidgetPaintable.WidgetPaintable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.WidgetPaintable.WidgetPaintable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.WidgetPaintable.WidgetPaintable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.WidgetPaintable.WidgetPaintable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.WidgetPaintable.WidgetPaintable o) => GI.Gtk.Objects.WidgetPaintable.IsWidgetPaintable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.WidgetPaintable.WidgetPaintable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.WidgetPaintable.WidgetPaintable

-- | The base class for all widgets.
--   
--   It manages the widget lifecycle, layout, states and style.
--   
--   
Height-for-width Geometry Management
--   
--   GTK uses a height-for-width (and width-for-height) geometry management
--   system. Height-for-width means that a widget can change how much
--   vertical space it needs, depending on the amount of horizontal space
--   that it is given (and similar for width-for-height). The most common
--   example is a label that reflows to fill up the available width, wraps
--   to fewer lines, and therefore needs less height.
--   
--   Height-for-width geometry management is implemented in GTK by way of
--   two virtual methods:
--   
--   
--   
- Widget.get_request_mode()
--   
- Widget.measure()
--   
--   
--   There are some important things to keep in mind when implementing
--   height-for-width and when using it in widget implementations.
--   
--   If you implement a direct GtkWidget subclass that supports
--   height-for-width or width-for-height geometry management for itself or
--   its child widgets, the
--   Widget.get_request_mode() virtual function must
--   be implemented as well and return the widget's preferred request mode.
--   The default implementation of this virtual function returns
--   SizeRequestModeConstantSize, which means that the widget will
--   only ever get -1 passed as the for_size value to its
--   Widget.measure() implementation.
--   
--   The geometry management system will query a widget hierarchy in only
--   one orientation at a time. When widgets are initially queried for
--   their minimum sizes it is generally done in two initial passes in the
--   SizeRequestMode chosen by the toplevel.
--   
--   For example, when queried in the normal
--   SizeRequestModeHeightForWidth mode:
--   
--   First, the default minimum and natural width for each widget in the
--   interface will be computed using widgetMeasure with an
--   orientation of OrientationHorizontal and a for_size of -1.
--   Because the preferred widths for each widget depend on the preferred
--   widths of their children, this information propagates up the
--   hierarchy, and finally a minimum and natural width is determined for
--   the entire toplevel. Next, the toplevel will use the minimum width to
--   query for the minimum height contextual to that width using
--   widgetMeasure with an orientation of OrientationVertical
--   and a for_size of the just computed width. This will also be a highly
--   recursive operation. The minimum height for the minimum width is
--   normally used to set the minimum size constraint on the toplevel.
--   
--   After the toplevel window has initially requested its size in both
--   dimensions it can go on to allocate itself a reasonable size (or a
--   size previously specified with windowSetDefaultSize). During
--   the recursive allocation process it’s important to note that request
--   cycles will be recursively executed while widgets allocate their
--   children. Each widget, once allocated a size, will go on to first
--   share the space in one orientation among its children and then request
--   each child's height for its target allocated width or its width for
--   allocated height, depending. In this way a widget will typically be
--   requested its size a number of times before actually being allocated a
--   size. The size a widget is finally allocated can of course differ from
--   the size it has requested. For this reason, GtkWidget caches
--   a small number of results to avoid re-querying for the same sizes in
--   one allocation cycle.
--   
--   If a widget does move content around to intelligently use up the
--   allocated size then it must support the request in both
--   GtkSizeRequestModes even if the widget in question only
--   trades sizes in a single orientation.
--   
--   For instance, a Label that does height-for-width word wrapping
--   will not expect to have Widget.measure() with
--   an orientation of OrientationVertical called because that call
--   is specific to a width-for-height request. In this case the label must
--   return the height required for its own minimum possible width. By
--   following this rule any widget that handles height-for-width or
--   width-for-height requests will always be allocated at least enough
--   space to fit its own content.
--   
--   Here are some examples of how a SizeRequestModeHeightForWidth
--   widget generally deals with width-for-height requests:
--   
--   
c code
--   
--   
--   static void
--   foo_widget_measure (GtkWidget      *widget,
--                       GtkOrientation  orientation,
--                       int             for_size,
--                       int            *minimum_size,
--                       int            *natural_size,
--                       int            *minimum_baseline,
--                       int            *natural_baseline)
--   {
--     if (orientation == GTK_ORIENTATION_HORIZONTAL)
--       {
--         // Calculate minimum and natural width
--       }
--     else // VERTICAL
--       {
--         if (i_am_in_height_for_width_mode)
--           {
--             int min_width, dummy;
--   
--             // First, get the minimum width of our widget
--             GTK_WIDGET_GET_CLASS (widget)->measure (widget, GTK_ORIENTATION_HORIZONTAL, -1,
--                                                     &min_width, &dummy, &dummy, &dummy);
--   
--             // Now use the minimum width to retrieve the minimum and natural height to display
--             // that width.
--             GTK_WIDGET_GET_CLASS (widget)->measure (widget, GTK_ORIENTATION_VERTICAL, min_width,
--                                                     minimum_size, natural_size, &dummy, &dummy);
--           }
--         else
--           {
--             // ... some widgets do both.
--           }
--       }
--   }
--   
--   
--   Often a widget needs to get its own request during size request or
--   allocation. For example, when computing height it may need to also
--   compute width. Or when deciding how to use an allocation, the widget
--   may need to know its natural size. In these cases, the widget should
--   be careful to call its virtual methods directly, like in the code
--   example above.
--   
--   It will not work to use the wrapper function widgetMeasure
--   inside your own Widget.size_allocate()
--   implementation. These return a request adjusted by SizeGroup,
--   the widget's align and expand flags, as well as its CSS style.
--   
--   If a widget used the wrappers inside its virtual method
--   implementations, then the adjustments (such as widget margins) would
--   be applied twice. GTK therefore does not allow this and will warn if
--   you try to do it.
--   
--   Of course if you are getting the size request for another widget, such
--   as a child widget, you must use widgetMeasure; otherwise, you
--   would not properly consider widget margins, SizeGroup, and so
--   forth.
--   
--   GTK also supports baseline vertical alignment of widgets. This means
--   that widgets are positioned such that the typographical baseline of
--   widgets in the same row are aligned. This happens if a widget supports
--   baselines, has a vertical alignment using baselines, and is inside a
--   widget that supports baselines and has a natural “row” that it aligns
--   to the baseline, or a baseline assigned to it by the grandparent.
--   
--   Baseline alignment support for a widget is also done by the
--   Widget.measure() virtual function. It allows
--   you to report both a minimum and natural size.
--   
--   If a widget ends up baseline aligned it will be allocated all the
--   space in the parent as if it was AlignFill, but the selected
--   baseline can be found via widgetGetBaseline. If the baseline
--   has a value other than -1 you need to align the widget such that the
--   baseline appears at the position.
--   
--   
GtkWidget as GtkBuildable
--   
--   The GtkWidget implementation of the GtkBuildable
--   interface supports various custom elements to specify additional
--   aspects of widgets that are not directly expressed as properties.
--   
--   If the widget uses a LayoutManager, GtkWidget supports
--   a custom <layout> element, used to define layout
--   properties:
--   
--   
xml code
--   
--   
--   <object class="GtkGrid" id="my_grid">
--     <child>
--       <object class="GtkLabel" id="label1">
--         <property name="label">Description</property>
--         <layout>
--           <property name="column">0</property>
--           <property name="row">0</property>
--           <property name="row-span">1</property>
--           <property name="column-span">1</property>
--         </layout>
--       </object>
--     </child>
--     <child>
--       <object class="GtkEntry" id="description_entry">
--         <layout>
--           <property name="column">1</property>
--           <property name="row">0</property>
--           <property name="row-span">1</property>
--           <property name="column-span">1</property>
--         </layout>
--       </object>
--     </child>
--   </object>
--   
--   
--   GtkWidget allows style information such as style classes to
--   be associated with widgets, using the custom <style>
--   element:
--   
--   
xml code
--   
--   
--   <object class="GtkButton" id="button1">
--     <style>
--       <class name="my-special-button-class"/>
--       <class name="dark-button"/>
--     </style>
--   </object>
--   
--   
--   GtkWidget allows defining accessibility information, such as
--   properties, relations, and states, using the custom
--   <accessibility> element:
--   
--   
xml code
--   
--   
--   <object class="GtkButton" id="button1">
--     <accessibility>
--       <property name="label">Download</property>
--       <relation name="labelled-by">label1</relation>
--     </accessibility>
--   </object>
--   
--   
--   
Building composite widgets from template XML
--   
--   GtkWidget exposes some facilities to automate the procedure
--   of creating composite widgets using "templates".
--   
--   To create composite widgets with GtkBuilder XML, one must
--   associate the interface description with the widget class at class
--   initialization time using widgetClassSetTemplate.
--   
--   The interface description semantics expected in composite template
--   descriptions is slightly different from regular Builder XML.
--   
--   Unlike regular interface descriptions, widgetClassSetTemplate
--   will expect a <template> tag as a direct child of the
--   toplevel <interface> tag. The <template>
--   tag must specify the “class” attribute which must be the type name of
--   the widget. Optionally, the “parent” attribute may be specified to
--   specify the direct parent type of the widget type; this is ignored by
--   GtkBuilder but can be used by UI design tools to introspect
--   what kind of properties and internal children exist for a given type
--   when the actual type does not exist.
--   
--   The XML which is contained inside the <template> tag
--   behaves as if it were added to the <object> tag
--   defining the widget itself. You may set properties on a widget by
--   inserting <property> tags into the
--   <template> tag, and also add <child>
--   tags to add children and extend a widget in the normal way you would
--   with <object> tags.
--   
--   Additionally, <object> tags can also be added before
--   and after the initial <template> tag in the normal way,
--   allowing one to define auxiliary objects which might be referenced by
--   other widgets declared as children of the <template>
--   tag.
--   
--   Since, unlike the <object> tag, the
--   <template> tag does not contain an “id” attribute, if
--   you need to refer to the instance of the object itself that the
--   template will create, simply refer to the template class name in an
--   applicable element content.
--   
--   Here is an example of a template definition, which includes an example
--   of this in the <signal> tag:
--   
--   
xml code
--   
--   
--   <interface>
--     <template class="FooWidget" parent="GtkBox">
--       <property name="orientation">horizontal</property>
--       <property name="spacing">4</property>
--       <child>
--         <object class="GtkButton" id="hello_button">
--           <property name="label">Hello World</property>
--           <signal name="clicked" handler="hello_button_clicked" object="FooWidget" swapped="yes"/>
--         </object>
--       </child>
--       <child>
--         <object class="GtkButton" id="goodbye_button">
--           <property name="label">Goodbye World</property>
--         </object>
--       </child>
--     </template>
--   </interface>
--   
--   
--   Typically, you'll place the template fragment into a file that is
--   bundled with your project, using GResource. In order to load
--   the template, you need to call
--   widgetClassSetTemplateFromResource from the class
--   initialization of your GtkWidget type:
--   
--   
c code
--   
--   
--   static void
--   foo_widget_class_init (FooWidgetClass *klass)
--   {
--     // ...
--   
--     gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
--                                                  "/com/example/ui/foowidget.ui");
--   }
--   
--   
--   You will also need to call widgetInitTemplate from the instance
--   initialization function:
--   
--   
c code
--   
--   
--   static void
--   foo_widget_init (FooWidget *self)
--   {
--     gtk_widget_init_template (GTK_WIDGET (self));
--   
--     // Initialize the rest of the widget...
--   }
--   
--   
--   as well as calling widgetDisposeTemplate from the dispose
--   function:
--   
--   
c code
--   
--   
--   static void
--   foo_widget_dispose (GObject *gobject)
--   {
--     FooWidget *self = FOO_WIDGET (gobject);
--   
--     // Dispose objects for which you have a reference...
--   
--     // Clear the template children for this widget type
--     gtk_widget_dispose_template (GTK_WIDGET (self), FOO_TYPE_WIDGET);
--   
--     G_OBJECT_CLASS (foo_widget_parent_class)->dispose (gobject);
--   }
--   
--   
--   You can access widgets defined in the template using the
--   widgetGetTemplateChild function, but you will typically declare
--   a pointer in the instance private data structure of your type using
--   the same name as the widget in the template definition, and call
--   widgetClassBindTemplateChildFull (or one of its wrapper macros
--   Gtk.widget_class_bind_template_child and
--   Gtk.widget_class_bind_template_child_private) with
--   that name, e.g.
--   
--   
c code
--   
--   
--   typedef struct {
--     GtkWidget *hello_button;
--     GtkWidget *goodbye_button;
--   } FooWidgetPrivate;
--   
--   G_DEFINE_TYPE_WITH_PRIVATE (FooWidget, foo_widget, GTK_TYPE_BOX)
--   
--   static void
--   foo_widget_dispose (GObject *gobject)
--   {
--     gtk_widget_dispose_template (GTK_WIDGET (gobject), FOO_TYPE_WIDGET);
--   
--     G_OBJECT_CLASS (foo_widget_parent_class)->dispose (gobject);
--   }
--   
--   static void
--   foo_widget_class_init (FooWidgetClass *klass)
--   {
--     // ...
--     G_OBJECT_CLASS (klass)->dispose = foo_widget_dispose;
--   
--     gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
--                                                  "/com/example/ui/foowidget.ui");
--     gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass),
--                                                   FooWidget, hello_button);
--     gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass),
--                                                   FooWidget, goodbye_button);
--   }
--   
--   static void
--   foo_widget_init (FooWidget *widget)
--   {
--     gtk_widget_init_template (GTK_WIDGET (widget));
--   }
--   
--   
--   You can also use widgetClassBindTemplateCallbackFull (or is
--   wrapper macro Gtk.widget_class_bind_template_callback)
--   to connect a signal callback defined in the template with a function
--   visible in the scope of the class, e.g.
--   
--   
c code
--   
--   
--   // the signal handler has the instance and user data swapped
--   // because of the swapped="yes" attribute in the template XML
--   static void
--   hello_button_clicked (FooWidget *self,
--                         GtkButton *button)
--   {
--     g_print ("Hello, world!\n");
--   }
--   
--   static void
--   foo_widget_class_init (FooWidgetClass *klass)
--   {
--     // ...
--     gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
--                                                  "/com/example/ui/foowidget.ui");
--     gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), hello_button_clicked);
--   }
--   
module GI.Gtk.Objects.Widget

-- | Memory-managed wrapper type.
newtype Widget
Widget :: ManagedPtr Widget -> Widget

-- | Type class for types which can be safely cast to Widget, for
--   instance with toWidget.
class (GObject o, IsDescendantOf Widget o) => IsWidget o

-- | Cast to Widget, for types for which this is known to be safe.
--   For general casts, use castTo.
toWidget :: (MonadIO m, IsWidget o) => o -> m Widget

-- | Enables or disables an action installed with
--   widgetClassInstallAction.
widgetActionSetEnabled :: (HasCallStack, MonadIO m, IsWidget a) => a -> Text -> Bool -> m ()

-- | Activates the widget.
--   
--   The activation will emit the signal set using
--   widgetClassSetActivateSignal during class initialization.
--   
--   Activation is what happens when you press <kbd>Enter</kbd>
--   on a widget.
--   
--   If you wish to handle the activation keybinding yourself, it is
--   recommended to use widgetClassAddShortcut with an action
--   created with signalActionNew.
--   
--   If widget is not activatable, the function returns
--   false.
widgetActivate :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Activates an action for the widget.
--   
--   The action is looked up in the action groups associated with
--   widget and its ancestors.
--   
--   If the action is in an action group added with
--   widgetInsertActionGroup, the name is expected
--   to be prefixed with the prefix that was used when the group was
--   inserted.
--   
--   The arguments must match the actions expected parameter type, as
--   returned by actionGetParameterType.
widgetActivateAction :: (HasCallStack, MonadIO m, IsWidget a) => a -> Text -> Maybe GVariant -> m Bool

-- | Activates the default.activate action for the widget.
--   
--   The action is looked up in the same was as for
--   widgetActivateAction.
widgetActivateDefault :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Adds an event controller to the widget.
--   
--   The event controllers of a widget handle the events that are
--   propagated to the widget.
--   
--   You will usually want to call this function right after creating any
--   kind of EventController.
widgetAddController :: (HasCallStack, MonadIO m, IsWidget a, IsEventController b) => a -> b -> m ()

-- | Adds a style class to the widget.
--   
--   After calling this function, the widget’s style will match for
--   cssClass, according to CSS matching rules.
--   
--   Use widgetRemoveCssClass to remove the style again.
widgetAddCssClass :: (HasCallStack, MonadIO m, IsWidget a) => a -> Text -> m ()

-- | Adds a widget to the list of mnemonic labels for this widget.
--   
--   See widgetListMnemonicLabels.
--   
--   Note that the list of mnemonic labels for the widget is cleared when
--   the widget is destroyed, so the caller must make sure to update its
--   internal state at this point as well.
widgetAddMnemonicLabel :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> m ()

-- | Queues an animation frame update and adds a callback to be called
--   before each frame.
--   
--   Until the tick callback is removed, it will be called frequently
--   (usually at the frame rate of the output device or as quickly as the
--   application can be repainted, whichever is slower). For this reason,
--   is most suitable for handling graphics that change every frame or
--   every few frames.
--   
--   The tick callback does not automatically imply a relayout or repaint.
--   If you want a repaint or relayout, and aren’t changing widget
--   properties that would trigger that (for example, changing the text of
--   a label), then you will have to call widgetQueueResize or
--   widgetQueueDraw yourself.
--   
--   frameClockGetFrameTime should generally be used for timing
--   continuous animations and
--   frameTimingsGetPredictedPresentationTime should be used if you
--   are trying to display isolated frames at particular times.
--   
--   This is a more convenient alternative to connecting directly to the
--   FrameClock::update signal of the frame clock, since you don't
--   have to worry about when a frame clock is assigned to a widget.
--   
--   To remove a tick callback, pass the ID that is returned by this
--   function to widgetRemoveTickCallback.
widgetAddTickCallback :: (HasCallStack, MonadIO m, IsWidget a) => a -> TickCallback -> m Word32

-- | Assigns size, position, (optionally) a baseline and transform to a
--   child widget.
--   
--   In this function, the allocation and baseline may be adjusted. The
--   given allocation will be forced to be bigger than the widget's minimum
--   size, as well as at least 0×0 in size.
--   
--   This function is only used by widget implementations.
--   
--   For a version that does not take a transform, see
--   widgetSizeAllocate.
widgetAllocate :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> Int32 -> Int32 -> Maybe Transform -> m ()

-- | Called by widgets as the user moves around the window using keyboard
--   shortcuts.
--   
--   The direction argument indicates what kind of motion
--   is taking place (up, down, left, right, tab forward, tab backward).
--   
--   This function calls the Widget.focus() virtual
--   function; widgets can override the virtual function in order to
--   implement appropriate focus behavior.
--   
--   The default focus() virtual function for a widget should
--   return true if moving in direction left the focus on a
--   focusable location inside that widget, and false if moving in
--   direction moved the focus outside the widget. When
--   returning true, widgets normally call widgetGrabFocus to place
--   the focus accordingly; when returning false, they don’t modify the
--   current focus location.
--   
--   This function is used by custom widget implementations; if you're
--   writing an app, you’d use widgetGrabFocus to move the focus to
--   a particular widget.
widgetChildFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> DirectionType -> m Bool

-- | Computes the bounds for widget in the coordinate space
--   of target.
--   
--   The bounds of widget are (the bounding box of) the region that it is
--   expected to draw in. See the coordinate system overview to
--   learn more.
--   
--   If the operation is successful, true is returned. If
--   widget has no bounds or the bounds cannot be expressed
--   in target's coordinate space (for example if both
--   widgets are in different windows), false is returned and
--   bounds is set to the zero rectangle.
--   
--   It is valid for widget and target to
--   be the same widget.
widgetComputeBounds :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> m (Bool, Rect)

-- | Computes whether a parent widget should give this widget extra space
--   when possible.
--   
--   Widgets with children should check this, rather than looking at
--   widgetGetHexpand or widgetGetVexpand.
--   
--   This function already checks whether the widget is visible, so
--   visibility does not need to be checked separately. Non-visible widgets
--   are not expanded.
--   
--   The computed expand value uses either the expand setting explicitly
--   set on the widget itself, or, if none has been explicitly set, the
--   widget may expand if some of its children do.
widgetComputeExpand :: (HasCallStack, MonadIO m, IsWidget a) => a -> Orientation -> m Bool

-- | Translates the given point in widget's
--   coordinates to coordinates in target’s coordinate
--   system.
--   
--   In order to perform this operation, both widgets must share a a common
--   ancestor. If that is not the case, outPoint is set to
--   (0, 0) and false is returned.
widgetComputePoint :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> Point -> m (Bool, Point)

-- | Computes a matrix suitable to describe a transformation from
--   widget's coordinate system into
--   target's coordinate system.
--   
--   The transform can not be computed in certain cases, for example when
--   widget and target do not share a
--   common ancestor. In that case outTransform gets set to
--   the identity matrix.
--   
--   To learn more about widget coordinate systems, see the coordinate
--   system overview.
widgetComputeTransform :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> m (Bool, Matrix)

-- | Tests if a given point is contained in the widget.
--   
--   The coordinates for (x, y) must be in widget coordinates, so (0, 0) is
--   assumed to be the top left of widget's content area.
widgetContains :: (HasCallStack, MonadIO m, IsWidget a) => a -> Double -> Double -> m Bool

-- | Creates a new PangoContext that is configured for the widget.
--   
--   The PangoContext will have the appropriate font map, font
--   options, font description, and base direction set.
--   
--   See also widgetGetPangoContext.
widgetCreatePangoContext :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Context

-- | Creates a new PangoLayout that is configured for the widget.
--   
--   The PangoLayout will have the appropriate font map, font
--   description, and base direction set.
--   
--   If you keep a PangoLayout created in this way around, you
--   need to re-create it when the widgets PangoContext is
--   replaced. This can be tracked by listening to changes of the
--   Widget:root property on the widget.
widgetCreatePangoLayout :: (HasCallStack, MonadIO m, IsWidget a) => a -> Maybe Text -> m Layout

-- | Clears the template children for the widget.
--   
--   This function is the opposite of widgetInitTemplate, and it is
--   used to clear all the template children from a widget instance. If you
--   bound a template child to a field in the instance structure, or in the
--   instance private data structure, the field will be set to
--   NULL after this function returns.
--   
--   You should call this function inside the
--   GObjectClass.dispose() implementation of any widget that
--   called widgetInitTemplate. Typically, you will want to call
--   this function last, right before chaining up to the parent type's
--   dispose implementation, e.g.
--   
--   
c code
--   
--   
--   static void
--   some_widget_dispose (GObject *gobject)
--   {
--     SomeWidget *self = SOME_WIDGET (gobject);
--   
--     // Clear the template data for SomeWidget
--     gtk_widget_dispose_template (GTK_WIDGET (self), SOME_TYPE_WIDGET);
--   
--     G_OBJECT_CLASS (some_widget_parent_class)->dispose (gobject);
--   }
--   
--   
--   Since: 4.8
widgetDisposeTemplate :: (HasCallStack, MonadIO m, IsWidget a) => a -> GType -> m ()

-- | Checks to see if a drag movement has passed the GTK drag threshold.
widgetDragCheckThreshold :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> Int32 -> Int32 -> Int32 -> m Bool

-- | Notifies the user about an input-related error on the widget.
--   
--   If the Settings:gtkErrorBell setting is true, it calls
--   surfaceBeep, otherwise it does nothing.
--   
--   Note that the effect of surfaceBeep can be configured in many
--   ways, depending on the windowing backend and the desktop environment
--   or window manager that is used.
widgetErrorBell :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Returns the baseline that has currently been allocated to the widget.
--   
--   This function is intended to be used when implementing handlers for
--   the GtkWidgetClass.snapshot() function, and
--   when allocating child widgets in
--   GtkWidgetClass.size_allocate().

-- | Deprecated: (Since version 4.12)Use widgetGetBaseline
--   instead
widgetGetAllocatedBaseline :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Returns the height that has currently been allocated to the widget.
--   
--   To learn more about widget sizes, see the coordinate system
--   overview.

-- | Deprecated: (Since version 4.12)Use widgetGetHeight
--   instead
widgetGetAllocatedHeight :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Returns the width that has currently been allocated to the widget.
--   
--   To learn more about widget sizes, see the coordinate system
--   overview.

-- | Deprecated: (Since version 4.12)Use widgetGetWidth
--   instead
widgetGetAllocatedWidth :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Retrieves the widget’s allocation.
--   
--   Note, when implementing a layout widget: a widget’s allocation will be
--   its “adjusted” allocation, that is, the widget’s parent typically
--   calls widgetSizeAllocate with an allocation, and that
--   allocation is then adjusted (to handle margin and alignment for
--   example) before assignment to the widget. widgetGetAllocation
--   returns the adjusted allocation that was actually assigned to the
--   widget. The adjusted allocation is guaranteed to be completely
--   contained within the widgetSizeAllocate allocation, however.
--   
--   So a layout widget is guaranteed that its children stay inside the
--   assigned bounds, but not that they have exactly the bounds the widget
--   assigned.

-- | Deprecated: (Since version 4.12)Use
--   widgetComputeBounds,widgetGetWidth or
--   widgetGetHeight instead.
widgetGetAllocation :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Rectangle

-- | Gets the first ancestor of the widget with type
--   widgetType.
--   
--   For example, gtk_widget_get_ancestor (widget, GTK_TYPE_BOX)
--   gets the first GtkBox that’s an ancestor of
--   widget. No reference will be added to the returned
--   widget; it should not be unreferenced.
--   
--   Note that unlike widgetIsAncestor, this function considers
--   widget to be an ancestor of itself.
widgetGetAncestor :: (HasCallStack, MonadIO m, IsWidget a) => a -> GType -> m (Maybe Widget)

-- | Returns the baseline that has currently been allocated to the widget.
--   
--   This function is intended to be used when implementing handlers for
--   the GtkWidgetClass.snapshot() function, and when allocating
--   child widgets in GtkWidgetClass.size_allocate().
--   
--   Since: 4.12
widgetGetBaseline :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Determines whether the input focus can enter the widget or any of its
--   children.
--   
--   See widgetSetCanFocus.
widgetGetCanFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Queries whether the widget can be the target of pointer events.
widgetGetCanTarget :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets the value set with widgetSetChildVisible.
--   
--   If you feel a need to use this function, your code probably needs
--   reorganization.
--   
--   This function is only useful for widget implementations and should
--   never be called by an application.
widgetGetChildVisible :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets the clipboard object for the widget.
--   
--   This is a utility function to get the clipboard object for the display
--   that widget is using.
--   
--   Note that this function always works, even when widget
--   is not realized yet.
widgetGetClipboard :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Clipboard

-- | Gets the current foreground color for the widget’s style.
--   
--   This function should only be used in snapshot implementations that
--   need to do custom drawing with the foreground color.
--   
--   Since: 4.10
widgetGetColor :: (HasCallStack, MonadIO m, IsWidget a) => a -> m RGBA

-- | Returns the list of style classes applied to the widget.
widgetGetCssClasses :: (HasCallStack, MonadIO m, IsWidget a) => a -> m [Text]

-- | Returns the CSS name of the widget.
widgetGetCssName :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Text

-- | Gets the cursor set on the widget.
--   
--   See widgetSetCursor for details.
widgetGetCursor :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Cursor)

-- | Obtains the default reading direction.
--   
--   See widgetSetDefaultDirection.
widgetGetDefaultDirection :: (HasCallStack, MonadIO m) => m TextDirection

-- | Gets the reading direction for the widget.
--   
--   See widgetSetDirection.
widgetGetDirection :: (HasCallStack, MonadIO m, IsWidget a) => a -> m TextDirection

-- | Get the display for the window that the widget belongs to.
--   
--   This function can only be called after the widget has been added to a
--   widget hierarchy with a GtkRoot at the top.
--   
--   In general, you should only create display-specific resources when a
--   widget has been realized, and you should free those resources when the
--   widget is unrealized.
widgetGetDisplay :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Display

-- | Returns the widget’s first child.
--   
--   This function is primarily meant for widget implementations.
widgetGetFirstChild :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Widget)

-- | Returns the focus child of the widget.
widgetGetFocusChild :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Widget)

-- | Returns whether the widget should grab focus when it is clicked with
--   the mouse.
--   
--   See widgetSetFocusOnClick.
widgetGetFocusOnClick :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines whether the widget can own the input focus.
--   
--   See widgetSetFocusable.
widgetGetFocusable :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets the font map of the widget.
--   
--   See widgetSetFontMap.
widgetGetFontMap :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe FontMap)

-- | Returns the cairo_font_options_t of the widget.
--   
--   Seee widgetSetFontOptions.

-- | Deprecated: (Since version 4.16)
widgetGetFontOptions :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe FontOptions)

-- | Obtains the frame clock for a widget.
--   
--   The frame clock is a global “ticker” that can be used to drive
--   animations and repaints. The most common reason to get the frame clock
--   is to call frameClockGetFrameTime, in order to get a time to
--   use for animating. For example you might record the start of the
--   animation with an initial value from frameClockGetFrameTime,
--   and then update the animation by calling frameClockGetFrameTime
--   again during each repaint.
--   
--   frameClockRequestPhase will result in a new frame on the clock,
--   but won’t necessarily repaint any widgets. To repaint a widget, you
--   have to use widgetQueueDraw which invalidates the widget (thus
--   scheduling it to receive a draw on the next frame).
--   widgetQueueDraw will also end up requesting a frame on the
--   appropriate frame clock.
--   
--   A widget’s frame clock will not change while the widget is mapped.
--   Reparenting a widget (which implies a temporary unmap) can change the
--   widget’s frame clock.
--   
--   Unrealized widgets do not have a frame clock.
widgetGetFrameClock :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe FrameClock)

-- | Gets the horizontal alignment of the widget.
--   
--   For backwards compatibility reasons this method will never return one
--   of the baseline alignments, but instead it will convert it to
--   AlignFill or AlignCenter.
--   
--   Baselines are not supported for horizontal alignment.
widgetGetHalign :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Align

-- | Returns the current value of the has-tooltip property.
widgetGetHasTooltip :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Returns the content height of the widget.
--   
--   This function returns the height passed to its size-allocate
--   implementation, which is the height you should be using in
--   Widget.snapshot().
--   
--   For pointer events, see widgetContains.
--   
--   To learn more about widget sizes, see the coordinate system
--   overview.
widgetGetHeight :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Gets whether the widget would like any available extra horizontal
--   space.
--   
--   When a user resizes a window, widgets with expand set to true
--   generally receive the extra space. For example, a list or scrollable
--   area or document in your window would often be set to expand.
--   
--   Widgets with children should use widgetComputeExpand rather
--   than this function, to see whether any of its children, has the expand
--   flag set. If any child of a widget wants to expand, the parent may ask
--   to expand also.
--   
--   This function only looks at the widget’s own hexpand flag, rather than
--   computing whether the entire widget tree rooted at this widget wants
--   to expand.
widgetGetHexpand :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets whether the hexpand flag has been explicitly set.
--   
--   If Widget:hexpand property is set, then it overrides any
--   computed expand value based on child widgets. If hexpand is
--   not set, then the expand value depends on whether any children of the
--   widget would like to expand.
--   
--   There are few reasons to use this function, but it’s here for
--   completeness and consistency.
widgetGetHexpandSet :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Returns the widget’s last child.
--   
--   This function is primarily meant for widget implementations.
widgetGetLastChild :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Widget)

-- | Retrieves the layout manager of the widget.
--   
--   See widgetSetLayoutManager.
widgetGetLayoutManager :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe LayoutManager)

-- | Gets the value of the Widget:limitEvents property.
--   
--   Since: 4.18
widgetGetLimitEvents :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Returns whether the widget is mapped.
widgetGetMapped :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets the bottom margin of the widget.
widgetGetMarginBottom :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Gets the end margin of the widget.
widgetGetMarginEnd :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Gets the start margin of the widget.
widgetGetMarginStart :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Gets the top margin of the widget.
widgetGetMarginTop :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Retrieves the name of a widget.
--   
--   See widgetSetName for the significance of widget names.
widgetGetName :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Text

-- | Returns the nearest GtkNative ancestor of the widget.
--   
--   This function will return NULL if the widget is not contained
--   inside a widget tree with a native ancestor.
--   
--   GtkNative widgets will return themselves here.
widgetGetNative :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Native)

-- | Returns the widget’s next sibling.
--   
--   This function is primarily meant for widget implementations.
widgetGetNextSibling :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Widget)

-- | Fetches the requested opacity for the widget.
--   
--   See widgetSetOpacity.
widgetGetOpacity :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Double

-- | Returns the widget’s overflow value.
widgetGetOverflow :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Overflow

-- | Gets a PangoContext that is configured for the widget.
--   
--   The PangoContext will have the appropriate font map, font
--   description, and base direction set.
--   
--   Unlike the context returned by widgetCreatePangoContext, this
--   context is owned by the widget (it can be used until the screen for
--   the widget changes or the widget is removed from its toplevel), and
--   will be updated to match any changes to the widget’s attributes. This
--   can be tracked by listening to changes of the Widget:root
--   property on the widget.
widgetGetPangoContext :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Context

-- | Returns the parent widget of the widget.
widgetGetParent :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Widget)

-- | Retrieves the minimum and natural size of a widget, taking into
--   account the widget’s preference for height-for-width management.
--   
--   This is used to retrieve a suitable size by container widgets which do
--   not impose any restrictions on the child placement. It can be used to
--   deduce toplevel window and menu sizes as well as child widgets in
--   free-form containers such as GtkFixed.
--   
--   Handle with care. Note that the natural height of a height-for-width
--   widget will generally be a smaller size than the minimum height, since
--   the required height for the natural width is generally smaller than
--   the required height for the minimum width.
--   
--   Use widgetMeasure if you want to support baseline alignment.
widgetGetPreferredSize :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Requisition, Requisition)

-- | Returns the widget’s previous sibling.
--   
--   This function is primarily meant for widget implementations.
widgetGetPrevSibling :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Widget)

-- | Gets the primary clipboard of the widget.
--   
--   This is a utility function to get the primary clipboard object for the
--   display that widget is using.
--   
--   Note that this function always works, even when widget
--   is not realized yet.
widgetGetPrimaryClipboard :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Clipboard

-- | Determines whether the widget is realized.
widgetGetRealized :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines whether the widget is always treated as the default widget
--   within its toplevel when it has the focus, even if another widget is
--   the default.
--   
--   See widgetSetReceivesDefault.
widgetGetReceivesDefault :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets whether the widget prefers a height-for-width layout or a
--   width-for-height layout.
--   
--   Single-child widgets generally propagate the preference of their
--   child, more complex widgets need to request something either in
--   context of their children or in context of their allocation
--   capabilities.
widgetGetRequestMode :: (HasCallStack, MonadIO m, IsWidget a) => a -> m SizeRequestMode

-- | Returns the GtkRoot widget of the widget.
--   
--   This function will return NULL if the widget is not contained
--   inside a widget tree with a root widget.
--   
--   GtkRoot widgets will return themselves here.
widgetGetRoot :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Root)

-- | Retrieves the internal scale factor that maps from window coordinates
--   to the actual device pixels.
--   
--   On traditional systems this is 1, on high density outputs, it can be a
--   higher value (typically 2).
--   
--   See surfaceGetScaleFactor.
--   
--   Note that modern systems may support *fractional* scaling, where the
--   scale factor is not an integer. On such systems, this function will
--   return the next higher integer value, but you probably want to use
--   surfaceGetScale to get the fractional scale value.
widgetGetScaleFactor :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Returns the widget’s sensitivity.
--   
--   This function returns the value that has been set using
--   widgetSetSensitive).
--   
--   The effective sensitivity of a widget is however determined by both
--   its own and its parent widget’s sensitivity. See
--   widgetIsSensitive.
widgetGetSensitive :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets the settings object holding the settings used for the widget.
--   
--   Note that this function can only be called when the GtkWidget
--   is attached to a toplevel, since the settings object is specific to a
--   particular display. If you want to monitor the widget for changes in
--   its settings, connect to the notify::display signal.
widgetGetSettings :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Settings

-- | Returns the content width or height of the widget.
--   
--   Which dimension is returned depends on orientation.
--   
--   This is equivalent to calling widgetGetWidth for
--   OrientationHorizontal or widgetGetHeight for
--   OrientationVertical, but can be used when writing
--   orientation-independent code, such as when implementing
--   Orientable widgets.
--   
--   To learn more about widget sizes, see the coordinate system
--   overview.
widgetGetSize :: (HasCallStack, MonadIO m, IsWidget a) => a -> Orientation -> m Int32

-- | Gets the size request that was explicitly set for the widget.
--   
--   A value of -1 stored in width or
--   height indicates that that dimension has not been set
--   explicitly and the natural requisition of the widget will be used
--   instead.
--   
--   See widgetSetSizeRequest.
--   
--   To get the size a widget will actually request, call
--   widgetMeasure instead of this function.
widgetGetSizeRequest :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Int32, Int32)

-- | Returns the widget state as a flag set.
--   
--   It is worth mentioning that the effective
--   [flagsgtk.StateFlags.insensitive] state will be
--   returned, that is, also based on parent insensitivity, even if
--   widget itself is sensitive.
--   
--   Also note that if you are looking for a way to obtain the
--   [flagsgtk.StateFlags] to pass to a StyleContext
--   method, you should look at styleContextGetState.
widgetGetStateFlags :: (HasCallStack, MonadIO m, IsWidget a) => a -> m [StateFlags]

-- | Returns the style context associated to the widget.
--   
--   The returned object is guaranteed to be the same for the lifetime of
--   widget.

-- | Deprecated: (Since version 4.10)Style contexts will be removed in
--   GTK 5
widgetGetStyleContext :: (HasCallStack, MonadIO m, IsWidget a) => a -> m StyleContext

-- | Fetches an object build from the template XML for
--   widgetType in the widget.
--   
--   This will only report children which were previously declared with
--   widgetClassBindTemplateChildFull or one of its variants.
--   
--   This function is only meant to be called for code which is private to
--   the widgetType which declared the child and is meant
--   for language bindings which cannot easily make use of the GObject
--   structure offsets.
widgetGetTemplateChild :: (HasCallStack, MonadIO m, IsWidget a) => a -> GType -> Text -> m Object

-- | Gets the contents of the tooltip for the widget.
--   
--   If the tooltip has not been set using widgetSetTooltipMarkup,
--   this function returns NULL.
widgetGetTooltipMarkup :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Text)

-- | Gets the contents of the tooltip for the widget.
--   
--   If the widget's tooltip was set using
--   widgetSetTooltipMarkup, this function will return the escaped
--   text.
widgetGetTooltipText :: (HasCallStack, MonadIO m, IsWidget a) => a -> m (Maybe Text)

-- | Gets the vertical alignment of the widget.
widgetGetValign :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Align

-- | Gets whether the widget would like any available extra vertical space.
--   
--   See widgetGetHexpand for more detail.
widgetGetVexpand :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Gets whether the vexpand flag has been explicitly set.
--   
--   See widgetGetHexpandSet for more detail.
widgetGetVexpandSet :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines whether the widget is visible.
--   
--   If you want to take into account whether the widget’s parent is also
--   marked as visible, use widgetIsVisible instead.
--   
--   This function does not check if the widget is obscured in any way.
--   
--   See widgetSetVisible.
widgetGetVisible :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Returns the content width of the widget.
--   
--   This function returns the width passed to its size-allocate
--   implementation, which is the width you should be using in
--   Widget.snapshot().
--   
--   For pointer events, see widgetContains.
--   
--   To learn more about widget sizes, see the coordinate system
--   overview.
widgetGetWidth :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Int32

-- | Causes widget to have the keyboard focus for the
--   window that it belongs to.
--   
--   If widget is not focusable, or its
--   Widget.grab_focus() implementation cannot
--   transfer the focus to a descendant of widget that is
--   focusable, it will not take focus and false will be returned.
--   
--   Calling widgetGrabFocus on an already focused widget is
--   allowed, should not have an effect, and return true.
widgetGrabFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Returns whether a style class is currently applied to the widget.
widgetHasCssClass :: (HasCallStack, MonadIO m, IsWidget a) => a -> Text -> m Bool

-- | Determines whether the widget is the current default widget within its
--   toplevel.
widgetHasDefault :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines if the widget has the global input focus.
--   
--   See widgetIsFocus for the difference between having the global
--   input focus, and only having the focus within a toplevel.
widgetHasFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines if the widget should show a visible indication that it has
--   the global input focus.
--   
--   This is a convenience function that takes into account whether focus
--   indication should currently be shown in the toplevel window of
--   widget. See windowGetFocusVisible for more
--   information about focus indication.
--   
--   To find out if the widget has the global input focus, use
--   widgetHasFocus.
widgetHasVisibleFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Reverses the effects of [method.Gtk.Widget.show].
--   
--   This is causing the widget to be hidden (invisible to the user).

-- | Deprecated: (Since version 4.10)Use widgetSetVisible
--   instead
widgetHide :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Returns whether the widget is currently being destroyed.
--   
--   This information can sometimes be used to avoid doing unnecessary
--   work.
widgetInDestruction :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Creates and initializes child widgets defined in templates.
--   
--   This function must be called in the instance initializer for any class
--   which assigned itself a template using widgetClassSetTemplate.
--   
--   It is important to call this function in the instance initializer of a
--   widget subclass and not in GObject.constructed() or
--   GObject.constructor() for two reasons:
--   
--   
--   
- derived widgets will assume that the composite widgets defined by
--   its parent classes have been created in their relative instance
--   initializers
--   
- when calling g_object_new() on a widget with composite
--   templates, it’s important to build the composite widgets before the
--   construct properties are set. Properties passed to
--   g_object_new() should take precedence over properties set in
--   the private template XML
--   
--   
--   A good rule of thumb is to call this function as the first thing in an
--   instance initialization function.
widgetInitTemplate :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Inserts an action group into the widget's actions.
--   
--   Children of widget that implement Actionable
--   can then be associated with actions in group by
--   setting their “action-name” to
--   prefix.action-name.
--   
--   Note that inheritance is defined for individual actions. I.e. even if
--   you insert a group with prefix prefix, actions with
--   the same prefix will still be inherited from the parent, unless the
--   group contains an action with the same name.
--   
--   If group is NULL, a previously inserted group
--   for name is removed from widget.
widgetInsertActionGroup :: (HasCallStack, MonadIO m, IsWidget a, IsActionGroup b) => a -> Text -> Maybe b -> m ()

-- | Sets the parent widget of the widget.
--   
--   In contrast to widgetSetParent, this function inserts
--   widget at a specific position into the list of
--   children of the parent widget.
--   
--   It will be placed after previousSibling, or at the
--   beginning if previousSibling is NULL.
--   
--   After calling this function, gtk_widget_get_prev_sibling
--   (widget) will return previousSibling.
--   
--   If parent is already set as the parent widget of
--   widget, this function can also be used to reorder
--   widget in the child widget list of
--   parent.
--   
--   This function is primarily meant for widget implementations; if you
--   are just using a widget, you *must* use its own API for adding
--   children.
widgetInsertAfter :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m ()

-- | Sets the parent widget of the widget.
--   
--   In contrast to widgetSetParent, this function inserts
--   widget at a specific position into the list of
--   children of the parent widget.
--   
--   It will be placed before nextSibling, or at the end if
--   nextSibling is NULL.
--   
--   After calling this function, gtk_widget_get_next_sibling
--   (widget) will return nextSibling.
--   
--   If parent is already set as the parent widget of
--   widget, this function can also be used to reorder
--   widget in the child widget list of
--   parent.
--   
--   This function is primarily meant for widget implementations; if you
--   are just using a widget, you *must* use its own API for adding
--   children.
widgetInsertBefore :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m ()

-- | Determines whether the widget is a descendent of
--   ancestor.
widgetIsAncestor :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> m Bool

-- | Determines whether the widget can be drawn to.
--   
--   A widget can be drawn if it is mapped and visible.
widgetIsDrawable :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines if the widget is the focus widget within its toplevel.
--   
--   This does not mean that the Widget:hasFocus property is
--   necessarily set; Widget:hasFocus will only be set if the
--   toplevel widget additionally has the global input focus.
widgetIsFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Returns the widget’s effective sensitivity.
--   
--   This means it is sensitive itself and also its parent widget is
--   sensitive.
widgetIsSensitive :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Determines whether the widget and all its parents are marked as
--   visible.
--   
--   This function does not check if the widget is obscured in any way.
--   
--   See also widgetGetVisible and widgetSetVisible.
widgetIsVisible :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Emits the Widget::keynavFailed signal on the widget.
--   
--   This function should be called whenever keyboard navigation within a
--   single widget hits a boundary.
--   
--   The return value of this function should be interpreted in a way
--   similar to the return value of widgetChildFocus. When true is
--   returned, stay in the widget, the failed keyboard navigation is ok
--   and/or there is nowhere we can/should move the focus to. When false is
--   returned, the caller should continue with keyboard navigation outside
--   the widget, e.g. by calling widgetChildFocus on the widget’s
--   toplevel.
--   
--   The default Widget::keynavFailed handler returns false for
--   [enumgtk.DirectionType.tab-forward] and
--   [enumgtk.DirectionType.tab-backward]. For the other
--   values of DirectionType it returns true.
--   
--   Whenever the default handler returns true, it also calls
--   widgetErrorBell to notify the user of the failed keyboard
--   navigation.
--   
--   A use case for providing an own implementation of
--   ::keynav-failed (either by connecting to it or by overriding
--   it) would be a row of Entry widgets where the user should be
--   able to navigate the entire row with the cursor keys, as e.g. known
--   from user interfaces that require entering license keys.
widgetKeynavFailed :: (HasCallStack, MonadIO m, IsWidget a) => a -> DirectionType -> m Bool

-- | Returns the widgets for which this widget is the target of a mnemonic.
--   
--   Typically, these widgets will be labels. See, for example,
--   labelSetMnemonicWidget.
--   
--   The widgets in the list are not individually referenced. If you want
--   to iterate through the list and perform actions involving callbacks
--   that might destroy the widgets, you must call g_list_foreach
--   (result, (GFunc)g_object_ref, NULL) first, and then unref all the
--   widgets afterwards.
widgetListMnemonicLabels :: (HasCallStack, MonadIO m, IsWidget a) => a -> m [Widget]

-- | Causes a widget to be mapped if it isn’t already.
--   
--   This function is only for use in widget implementations.
widgetMap :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Measures widget in the orientation
--   orientation and for the given forSize.
--   
--   As an example, if orientation is
--   OrientationHorizontal and forSize is 300, this
--   functions will compute the minimum and natural width of
--   widget if it is allocated at a height of 300 pixels.
--   
--   See GtkWidget’s geometry management section for a more details
--   on implementing GtkWidgetClass.measure().
widgetMeasure :: (HasCallStack, MonadIO m, IsWidget a) => a -> Orientation -> Int32 -> m (Int32, Int32, Int32, Int32)

-- | Emits the Widget::mnemonicActivate signal.
widgetMnemonicActivate :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m Bool

-- | Returns a list model to track the children of the widget.
--   
--   Calling this function will enable extra internal bookkeeping to track
--   children and emit signals on the returned listmodel. It may slow down
--   operations a lot.
--   
--   Applications should try hard to avoid calling this function because of
--   the slowdowns.
widgetObserveChildren :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ListModel

-- | Returns a list model to track the event controllers of the widget.
--   
--   Calling this function will enable extra internal bookkeeping to track
--   controllers and emit signals on the returned listmodel. It may slow
--   down operations a lot.
--   
--   Applications should try hard to avoid calling this function because of
--   the slowdowns.
widgetObserveControllers :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ListModel

-- | Finds the descendant of the widget closest to a point.
--   
--   The point (x, y) must be given in widget coordinates, so (0, 0) is
--   assumed to be the top left of widget's content area.
--   
--   Usually widgets will return NULL if the given coordinate is
--   not contained in widget checked via
--   widgetContains. Otherwise they will recursively try to find a
--   child that does not return NULL. Widgets are however free to
--   customize their picking algorithm.
--   
--   This function is used on the toplevel to determine the widget below
--   the mouse cursor for purposes of hover highlighting and delivering
--   events.
widgetPick :: (HasCallStack, MonadIO m, IsWidget a) => a -> Double -> Double -> [PickFlags] -> m (Maybe Widget)

-- | Flags the widget for a rerun of the
--   Widget.size_allocate() function.
--   
--   Use this function instead of widgetQueueResize when the
--   widget's size request didn't change but it wants to
--   reposition its contents.
--   
--   An example user of this function is widgetSetHalign.
--   
--   This function is only for use in widget implementations.
widgetQueueAllocate :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Schedules this widget to be redrawn.
--   
--   The redraw will happen in the paint phase of the current or the next
--   frame.
--   
--   This means widget's
--   Widget.snapshot() implementation will be
--   called.
widgetQueueDraw :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Flags a widget to have its size renegotiated.
--   
--   This should be called when a widget for some reason has a new size
--   request. For example, when you change the text in a Label, the
--   label queues a resize to ensure there’s enough space for the new text.
--   
--   Note that you cannot call widgetQueueResize on a widget from
--   inside its implementation of the
--   Widget.size_allocate() virtual method. Calls to
--   widgetQueueResize from inside
--   Widget.size_allocate() will be silently
--   ignored.
--   
--   This function is only for use in widget implementations.
widgetQueueResize :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Creates the GDK resources associated with a widget.
--   
--   Normally realization happens implicitly; if you show a widget and all
--   its parent containers, then the widget will be realized and mapped
--   automatically.
--   
--   Realizing a widget requires all the widget’s parent widgets to be
--   realized; calling this function realizes the widget’s parents in
--   addition to widget itself. If a widget is not yet
--   inside a toplevel window when you realize it, bad things will happen.
--   
--   This function is primarily used in widget implementations, and isn’t
--   very useful otherwise. Many times when you think you might need it, a
--   better approach is to connect to a signal that will be called after
--   the widget is realized automatically, such as Widget::realize.
widgetRealize :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Removes an event controller from the widget.
--   
--   The removed event controller will not receive any more events, and
--   should not be used again.
--   
--   Widgets will remove all event controllers automatically when they are
--   destroyed, there is normally no need to call this function.
widgetRemoveController :: (HasCallStack, MonadIO m, IsWidget a, IsEventController b) => a -> b -> m ()

-- | Removes a style from the widget.
--   
--   After this, the style of widget will stop matching for
--   cssClass.
widgetRemoveCssClass :: (HasCallStack, MonadIO m, IsWidget a) => a -> Text -> m ()

-- | Removes a widget from the list of mnemonic labels for this widget.
--   
--   See widgetListMnemonicLabels.
--   
--   The widget must have previously been added to the list with
--   widgetAddMnemonicLabel.
widgetRemoveMnemonicLabel :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> m ()

-- | Removes a tick callback previously registered with
--   widgetAddTickCallback.
widgetRemoveTickCallback :: (HasCallStack, MonadIO m, IsWidget a) => a -> Word32 -> m ()

-- | Sets whether the input focus can enter the widget or any of its
--   children.
--   
--   Applications should set canFocus to false to mark a
--   widget as for pointer/touch use only.
--   
--   Note that having canFocus be true is only one of the
--   necessary conditions for being focusable. A widget must also be
--   sensitive and focusable and not have an ancestor that is marked as not
--   can-focus in order to receive input focus.
--   
--   See widgetGrabFocus for actually setting the input focus on a
--   widget.
widgetSetCanFocus :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets whether the widget can be the target of pointer events.
widgetSetCanTarget :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets whether the widget should be mapped along with its parent.
--   
--   The child visibility can be set for widget before it is added to a
--   container with widgetSetParent, to avoid mapping children
--   unnecessary before immediately unmapping them. However it will be
--   reset to its default state of true when the widget is removed from a
--   container.
--   
--   Note that changing the child visibility of a widget does not queue a
--   resize on the widget. Most of the time, the size of a widget is
--   computed from all visible children, whether or not they are mapped. If
--   this is not the case, the container can queue a resize itself.
--   
--   This function is only useful for widget implementations and should
--   never be called by an application.
widgetSetChildVisible :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Replaces the current style classes of the widget with
--   classes.
widgetSetCssClasses :: (HasCallStack, MonadIO m, IsWidget a) => a -> [Text] -> m ()

-- | Sets the cursor to be shown when the pointer hovers over the widget.
--   
--   If the cursor is NULL, widget
--   will use the cursor inherited from its parent.
widgetSetCursor :: (HasCallStack, MonadIO m, IsWidget a, IsCursor b) => a -> Maybe b -> m ()

-- | Sets the cursor to be shown when the pointer hovers over the widget.
--   
--   This is a utility function that creates a cursor via
--   cursorNewFromName and then sets it on widget
--   with widgetSetCursor. See those functions for details.
--   
--   On top of that, this function allows name to be
--   NULL, which will do the same as calling
--   widgetSetCursor with a NULL cursor.
widgetSetCursorFromName :: (HasCallStack, MonadIO m, IsWidget a) => a -> Maybe Text -> m ()

-- | Sets the default reading direction for widgets.
--   
--   See widgetSetDirection.
widgetSetDefaultDirection :: (HasCallStack, MonadIO m) => TextDirection -> m ()

-- | Sets the reading direction on the widget.
--   
--   This direction controls the primary direction for widgets containing
--   text, and also the direction in which the children of a container are
--   packed. The ability to set the direction is present in order so that
--   correct localization into languages with right-to-left reading
--   directions can be done.
--   
--   Generally, applications will let the default reading direction
--   prevail, except for widgets where the children are arranged in an
--   order that is explicitly visual rather than logical (such as buttons
--   for text justification).
--   
--   If the direction is set to TextDirectionNone, then the value
--   set by widgetSetDefaultDirection will be used.
widgetSetDirection :: (HasCallStack, MonadIO m, IsWidget a) => a -> TextDirection -> m ()

-- | Set the focus child of the widget.
--   
--   This function is only suitable for widget implementations. If you want
--   a certain widget to get the input focus, call widgetGrabFocus
--   on it.
widgetSetFocusChild :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the widget should grab focus when it is clicked with the
--   mouse.
--   
--   Making mouse clicks not grab focus is useful in places like toolbars
--   where you don’t want the keyboard focus removed from the main area of
--   the application.
widgetSetFocusOnClick :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets whether the widget can own the input focus.
--   
--   Widget implementations should set focusable to true in
--   their init() function if they want to receive keyboard
--   input.
--   
--   Note that having focusable be true is only one of the
--   necessary conditions for being focusable. A widget must also be
--   sensitive and can-focus and not have an ancestor that is marked as not
--   can-focus in order to receive input focus.
--   
--   See widgetGrabFocus for actually setting the input focus on a
--   widget.
widgetSetFocusable :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets the font map to use for text rendering in the widget.
--   
--   The font map is the object that is used to look up fonts. Setting a
--   custom font map can be useful in special situations, e.g. when you
--   need to add application-specific fonts to the set of available fonts.
--   
--   When not set, the widget will inherit the font map from its parent.
widgetSetFontMap :: (HasCallStack, MonadIO m, IsWidget a, IsFontMap b) => a -> Maybe b -> m ()

-- | Sets the cairo_font_options_t used for text rendering in the
--   widget.
--   
--   When not set, the default font options for the GdkDisplay
--   will be used.

-- | Deprecated: (Since version 4.16)
widgetSetFontOptions :: (HasCallStack, MonadIO m, IsWidget a) => a -> Maybe FontOptions -> m ()

-- | Sets the horizontal alignment of the widget.
widgetSetHalign :: (HasCallStack, MonadIO m, IsWidget a) => a -> Align -> m ()

-- | Sets the has-tooltip property on the widget.
widgetSetHasTooltip :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets whether the widget would like any available extra horizontal
--   space.
--   
--   When a user resizes a window, widgets with expand set to true
--   generally receive the extra space. For example, a list or scrollable
--   area or document in your window would often be set to expand.
--   
--   Call this function to set the expand flag if you would like your
--   widget to become larger horizontally when the window has extra room.
--   
--   By default, widgets automatically expand if any of their children want
--   to expand. (To see if a widget will automatically expand given its
--   current children and state, call widgetComputeExpand. A widget
--   can decide how the expandability of children affects its own expansion
--   by overriding the compute_expand virtual method on
--   GtkWidget.).
--   
--   Setting hexpand explicitly with this function will override the
--   automatic expand behavior.
--   
--   This function forces the widget to expand or not to expand, regardless
--   of children. The override occurs because widgetSetHexpand sets
--   the hexpand-set property (see widgetSetHexpandSet) which causes
--   the widget’s hexpand value to be used, rather than looking at children
--   and widget state.
widgetSetHexpand :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets whether the hexpand flag will be used.
--   
--   The Widget:hexpandSet property will be set automatically when
--   you call widgetSetHexpand to set hexpand, so the most likely
--   reason to use this function would be to unset an explicit expand flag.
--   
--   If hexpand is set, then it overrides any computed expand value based
--   on child widgets. If hexpand is not set, then the expand value depends
--   on whether any children of the widget would like to expand.
--   
--   There are few reasons to use this function, but it’s here for
--   completeness and consistency.
widgetSetHexpandSet :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets the layout manager to use for measuring and allocating children
--   of the widget.
widgetSetLayoutManager :: (HasCallStack, MonadIO m, IsWidget a, IsLayoutManager b) => a -> Maybe b -> m ()

-- | Sets whether the widget acts like a modal dialog, with respect to
--   event delivery.
--   
--   Since: 4.18
widgetSetLimitEvents :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets the bottom margin of the widget.
widgetSetMarginBottom :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> m ()

-- | Sets the end margin of the widget.
widgetSetMarginEnd :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> m ()

-- | Sets the start margin of the widget.
widgetSetMarginStart :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> m ()

-- | Sets the top margin of the widget.
widgetSetMarginTop :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> m ()

-- | Sets a widgets name.
--   
--   Setting a name allows you to refer to the widget from a CSS file. You
--   can apply a style to widgets with a particular name in the CSS file.
--   See the documentation for the CSS syntax (on the same page as the docs
--   for StyleContext.
--   
--   Note that the CSS syntax has certain special characters to delimit and
--   represent elements in a selector (period, #, >, *...), so using
--   these will make your widget impossible to match by name. Any
--   combination of alphanumeric symbols, dashes and underscores will
--   suffice.
widgetSetName :: (HasCallStack, MonadIO m, IsWidget a) => a -> Text -> m ()

-- | Requests the widget to be rendered partially transparent.
--   
--   An opacity of 0 is fully transparent and an opacity of 1 is fully
--   opaque.
--   
--   Opacity works on both toplevel widgets and child widgets, although
--   there are some limitations: For toplevel widgets, applying opacity
--   depends on the capabilities of the windowing system. On X11, this has
--   any effect only on X displays with a compositing manager, see
--   displayIsComposited. On Windows and Wayland it will always
--   work, although setting a window’s opacity after the window has been
--   shown may cause some flicker.
--   
--   Note that the opacity is inherited through inclusion — if you set a
--   toplevel to be partially translucent, all of its content will appear
--   translucent, since it is ultimatively rendered on that toplevel. The
--   opacity value itself is not inherited by child widgets (since that
--   would make widgets deeper in the hierarchy progressively more
--   translucent). As a consequence, Popover instances and other
--   Native widgets with their own surface will use their own
--   opacity value, and thus by default appear non-translucent, even if
--   they are attached to a toplevel that is translucent.
widgetSetOpacity :: (HasCallStack, MonadIO m, IsWidget a) => a -> Double -> m ()

-- | Sets how the widget treats content that is drawn outside the it's
--   content area.
--   
--   See the definition of Overflow for details.
--   
--   This setting is provided for widget implementations and should not be
--   used by application code.
--   
--   The default value is OverflowVisible.
widgetSetOverflow :: (HasCallStack, MonadIO m, IsWidget a) => a -> Overflow -> m ()

-- | Sets the parent widget of the widget.
--   
--   This takes care of details such as updating the state and style of the
--   child to reflect its new location and resizing the parent. The
--   opposite function is widgetUnparent.
--   
--   This function is useful only when implementing subclasses of
--   GtkWidget.
widgetSetParent :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> m ()

-- | Sets whether the widget will be treated as the default widget within
--   its toplevel when it has the focus, even if another widget is the
--   default.
widgetSetReceivesDefault :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets the sensitivity of the widget.
--   
--   A widget is sensitive if the user can interact with it. Insensitive
--   widgets are “grayed out” and the user can’t interact with them.
--   Insensitive widgets are known as “inactive”, “disabled”, or “ghosted”
--   in some other toolkits.
widgetSetSensitive :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets the minimum size of the widget.
--   
--   That is, the widget’s size request will be at least
--   width by height. You can use this
--   function to force a widget to be larger than it normally would be.
--   
--   In most cases, windowSetDefaultSize is a better choice for
--   toplevel windows than this function; setting the default size will
--   still allow users to shrink the window. Setting the size request will
--   force them to leave the window at least as large as the size request.
--   
--   Note the inherent danger of setting any fixed size - themes,
--   translations into other languages, different fonts, and user action
--   can all change the appropriate size for a given widget. So, it is
--   basically impossible to hardcode a size that will always work.
--   
--   The size request of a widget is the smallest size a widget can accept
--   while still functioning well and drawing itself correctly. However in
--   some strange cases a widget may be allocated less than its requested
--   size, and in many cases a widget may be allocated more space than it
--   requested.
--   
--   If the size request in a given direction is -1 (unset), then the
--   “natural” size request of the widget will be used instead.
--   
--   The size request set here does not include any margin from the
--   properties Widget:marginStart, Widget:marginEnd,
--   Widget:marginTop, and Widget:marginBottom, but it does
--   include pretty much all other padding or border properties set by any
--   subclass of GtkWidget.
widgetSetSizeRequest :: (HasCallStack, MonadIO m, IsWidget a) => a -> Int32 -> Int32 -> m ()

-- | Turns on flag values in the current widget state.
--   
--   Typical widget states are insensitive, prelighted, etc.
--   
--   This function accepts the values
--   [flagsgtk.StateFlags.dir-ltr] and
--   [flagsgtk.StateFlags.dir-rtl] but ignores them. If you
--   want to set the widget's direction, use widgetSetDirection.
--   
--   This function is for use in widget implementations.
widgetSetStateFlags :: (HasCallStack, MonadIO m, IsWidget a) => a -> [StateFlags] -> Bool -> m ()

-- | Sets the contents of the tooltip for widget.
--   
--   markup must contain Pango markup.
--   
--   This function will take care of setting the Widget:hasTooltip
--   as a side effect, and of the default handler for the
--   Widget::queryTooltip signal.
--   
--   See also tooltipSetMarkup.
widgetSetTooltipMarkup :: (HasCallStack, MonadIO m, IsWidget a) => a -> Maybe Text -> m ()

-- | Sets the contents of the tooltip for the widget.
--   
--   If text contains any markup, it will be escaped.
--   
--   This function will take care of setting Widget:hasTooltip as a
--   side effect, and of the default handler for the
--   Widget::queryTooltip signal.
--   
--   See also tooltipSetText.
widgetSetTooltipText :: (HasCallStack, MonadIO m, IsWidget a) => a -> Maybe Text -> m ()

-- | Sets the vertical alignment of the widget.
widgetSetValign :: (HasCallStack, MonadIO m, IsWidget a) => a -> Align -> m ()

-- | Sets whether the widget would like any available extra vertical space.
--   
--   See widgetSetHexpand for more detail.
widgetSetVexpand :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets whether the vexpand flag will be used.
--   
--   See widgetSetHexpandSet for more detail.
widgetSetVexpandSet :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Sets the visibility state of widget.
--   
--   Note that setting this to true doesn’t mean the widget is actually
--   viewable, see widgetGetVisible.
widgetSetVisible :: (HasCallStack, MonadIO m, IsWidget a) => a -> Bool -> m ()

-- | Returns whether the widget should contribute to the measuring and
--   allocation of its parent.
--   
--   This is false for invisible children, but also for children that have
--   their own surface, such as Popover instances.
widgetShouldLayout :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Bool

-- | Flags a widget to be displayed.
--   
--   Any widget that isn’t shown will not appear on the screen.
--   
--   Remember that you have to show the containers containing a widget, in
--   addition to the widget itself, before it will appear onscreen.
--   
--   When a toplevel widget is shown, it is immediately realized and
--   mapped; other shown widgets are realized and mapped when their
--   toplevel widget is realized and mapped.

-- | Deprecated: (Since version 4.10)Use widgetSetVisible
--   instead
widgetShow :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Allocates widget with a transformation that translates the origin to
--   the position in allocation.
--   
--   This is a simple form of widgetAllocate.
widgetSizeAllocate :: (HasCallStack, MonadIO m, IsWidget a) => a -> Rectangle -> Int32 -> m ()

-- | Snapshots a child of the widget.
--   
--   When a widget receives a call to the snapshot function, it must send
--   synthetic Widget.snapshot() calls to all
--   children. This function provides a convenient way of doing this. A
--   widget, when it receives a call to its
--   Widget.snapshot() function, calls
--   widgetSnapshotChild once for each child, passing in the
--   snapshot the widget received.
--   
--   This function takes care of translating the origin of
--   snapshot, and deciding whether the child needs to be
--   snapshot.
--   
--   It does nothing for children that implement GtkNative.
widgetSnapshotChild :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b, IsSnapshot c) => a -> b -> c -> m ()

-- | Translates coordinates relative to srcWidget’s
--   allocation to coordinates relative to destWidget’s
--   allocations.
--   
--   In order to perform this operation, both widget must share a common
--   ancestor. If that is not the case, destX and
--   destY are set to 0 and false is returned.

-- | Deprecated: (Since version 4.12)Use widgetComputePoint
--   instead
widgetTranslateCoordinates :: (HasCallStack, MonadIO m, IsWidget a, IsWidget b) => a -> b -> Double -> Double -> m (Bool, Double, Double)

-- | Triggers a tooltip query on the display of the widget.
widgetTriggerTooltipQuery :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Causes a widget to be unmapped if it’s currently mapped.
--   
--   This function is only for use in widget implementations.
widgetUnmap :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Removes widget from its parent.
--   
--   This function is only for use in widget implementations, typically in
--   dispose.
widgetUnparent :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Causes a widget to be unrealized.
--   
--   This frees all GDK resources associated with the widget.
--   
--   This function is only useful in widget implementations.
widgetUnrealize :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Turns off flag values for the current widget state.
--   
--   See widgetSetStateFlags.
--   
--   This function is for use in widget implementations.
widgetUnsetStateFlags :: (HasCallStack, MonadIO m, IsWidget a) => a -> [StateFlags] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “can-focus” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetCanFocus :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “can-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #canFocus
--   
getWidgetCanFocus :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “can-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #canFocus := value ]
--   
setWidgetCanFocus :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “can-target” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetCanTarget :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “can-target” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #canTarget
--   
getWidgetCanTarget :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “can-target” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #canTarget := value ]
--   
setWidgetCanTarget :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “css-classes” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetCssClasses :: (IsWidget o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “css-classes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #cssClasses
--   
getWidgetCssClasses :: (MonadIO m, IsWidget o) => o -> m (Maybe [Text])

-- | Set the value of the “css-classes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #cssClasses := value ]
--   
setWidgetCssClasses :: (MonadIO m, IsWidget o) => o -> [Text] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “css-name” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetCssName :: (IsWidget o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “css-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #cssName
--   
getWidgetCssName :: (MonadIO m, IsWidget o) => o -> m Text

-- | Set the value of the “cursor” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #cursor
--   
clearWidgetCursor :: (MonadIO m, IsWidget o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cursor” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetCursor :: (IsWidget o, MonadIO m, IsCursor a) => a -> m (GValueConstruct o)

-- | Get the value of the “cursor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #cursor
--   
getWidgetCursor :: (MonadIO m, IsWidget o) => o -> m (Maybe Cursor)

-- | Set the value of the “cursor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #cursor := value ]
--   
setWidgetCursor :: (MonadIO m, IsWidget o, IsCursor a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focus-on-click” property. This is rarely needed directly,
--   but it is used by new.
constructWidgetFocusOnClick :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “focus-on-click” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #focusOnClick
--   
getWidgetFocusOnClick :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “focus-on-click” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #focusOnClick := value ]
--   
setWidgetFocusOnClick :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focusable” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetFocusable :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #focusable
--   
getWidgetFocusable :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #focusable := value ]
--   
setWidgetFocusable :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “halign” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetHalign :: (IsWidget o, MonadIO m) => Align -> m (GValueConstruct o)

-- | Get the value of the “halign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #halign
--   
getWidgetHalign :: (MonadIO m, IsWidget o) => o -> m Align

-- | Set the value of the “halign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #halign := value ]
--   
setWidgetHalign :: (MonadIO m, IsWidget o) => o -> Align -> m ()

-- | Get the value of the “has-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #hasDefault
--   
getWidgetHasDefault :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Get the value of the “has-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #hasFocus
--   
getWidgetHasFocus :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “has-tooltip” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetHasTooltip :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-tooltip” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #hasTooltip
--   
getWidgetHasTooltip :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “has-tooltip” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #hasTooltip := value ]
--   
setWidgetHasTooltip :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “height-request” property. This is rarely needed directly,
--   but it is used by new.
constructWidgetHeightRequest :: (IsWidget o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “height-request” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #heightRequest
--   
getWidgetHeightRequest :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Set the value of the “height-request” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #heightRequest := value ]
--   
setWidgetHeightRequest :: (MonadIO m, IsWidget o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hexpand” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetHexpand :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hexpand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #hexpand
--   
getWidgetHexpand :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “hexpand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #hexpand := value ]
--   
setWidgetHexpand :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hexpand-set” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetHexpandSet :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hexpand-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #hexpandSet
--   
getWidgetHexpandSet :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “hexpand-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #hexpandSet := value ]
--   
setWidgetHexpandSet :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Set the value of the “layout-manager” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #layoutManager
--   
clearWidgetLayoutManager :: (MonadIO m, IsWidget o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “layout-manager” property. This is rarely needed directly,
--   but it is used by new.
constructWidgetLayoutManager :: (IsWidget o, MonadIO m, IsLayoutManager a) => a -> m (GValueConstruct o)

-- | Get the value of the “layout-manager” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #layoutManager
--   
getWidgetLayoutManager :: (MonadIO m, IsWidget o) => o -> m (Maybe LayoutManager)

-- | Set the value of the “layout-manager” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #layoutManager := value ]
--   
setWidgetLayoutManager :: (MonadIO m, IsWidget o, IsLayoutManager a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “limit-events” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetLimitEvents :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “limit-events” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #limitEvents
--   
getWidgetLimitEvents :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “limit-events” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #limitEvents := value ]
--   
setWidgetLimitEvents :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “margin-bottom” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetMarginBottom :: (IsWidget o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “margin-bottom” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #marginBottom
--   
getWidgetMarginBottom :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Set the value of the “margin-bottom” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #marginBottom := value ]
--   
setWidgetMarginBottom :: (MonadIO m, IsWidget o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “margin-end” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetMarginEnd :: (IsWidget o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “margin-end” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #marginEnd
--   
getWidgetMarginEnd :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Set the value of the “margin-end” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #marginEnd := value ]
--   
setWidgetMarginEnd :: (MonadIO m, IsWidget o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “margin-start” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetMarginStart :: (IsWidget o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “margin-start” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #marginStart
--   
getWidgetMarginStart :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Set the value of the “margin-start” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #marginStart := value ]
--   
setWidgetMarginStart :: (MonadIO m, IsWidget o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “margin-top” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetMarginTop :: (IsWidget o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “margin-top” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #marginTop
--   
getWidgetMarginTop :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Set the value of the “margin-top” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #marginTop := value ]
--   
setWidgetMarginTop :: (MonadIO m, IsWidget o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetName :: (IsWidget o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widget #name
--   
getWidgetName :: (MonadIO m, IsWidget o) => o -> m Text

-- | Set the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set widget [ #name := value ]
--   
setWidgetName :: (MonadIO m, IsWidget o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “opacity” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetOpacity :: (IsWidget o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “opacity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #opacity
--   
getWidgetOpacity :: (MonadIO m, IsWidget o) => o -> m Double

-- | Set the value of the “opacity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #opacity := value ]
--   
setWidgetOpacity :: (MonadIO m, IsWidget o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overflow” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetOverflow :: (IsWidget o, MonadIO m) => Overflow -> m (GValueConstruct o)

-- | Get the value of the “overflow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #overflow
--   
getWidgetOverflow :: (MonadIO m, IsWidget o) => o -> m Overflow

-- | Set the value of the “overflow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #overflow := value ]
--   
setWidgetOverflow :: (MonadIO m, IsWidget o) => o -> Overflow -> m ()

-- | Get the value of the “parent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #parent
--   
getWidgetParent :: (MonadIO m, IsWidget o) => o -> m (Maybe Widget)

-- | Construct a GValueConstruct with valid value for the
--   “receives-default” property. This is rarely needed directly,
--   but it is used by new.
constructWidgetReceivesDefault :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “receives-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #receivesDefault
--   
getWidgetReceivesDefault :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “receives-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #receivesDefault := value ]
--   
setWidgetReceivesDefault :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Get the value of the “root” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widget #root
--   
getWidgetRoot :: (MonadIO m, IsWidget o) => o -> m (Maybe Root)

-- | Get the value of the “scale-factor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #scaleFactor
--   
getWidgetScaleFactor :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “sensitive” property. This is rarely needed directly, but it
--   is used by new.
constructWidgetSensitive :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #sensitive
--   
getWidgetSensitive :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #sensitive := value ]
--   
setWidgetSensitive :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Set the value of the “tooltip-markup” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #tooltipMarkup
--   
clearWidgetTooltipMarkup :: (MonadIO m, IsWidget o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-markup” property. This is rarely needed directly,
--   but it is used by new.
constructWidgetTooltipMarkup :: (IsWidget o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “tooltip-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #tooltipMarkup
--   
getWidgetTooltipMarkup :: (MonadIO m, IsWidget o) => o -> m (Maybe Text)

-- | Set the value of the “tooltip-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #tooltipMarkup := value ]
--   
setWidgetTooltipMarkup :: (MonadIO m, IsWidget o) => o -> Text -> m ()

-- | Set the value of the “tooltip-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #tooltipText
--   
clearWidgetTooltipText :: (MonadIO m, IsWidget o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-text” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetTooltipText :: (IsWidget o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “tooltip-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #tooltipText
--   
getWidgetTooltipText :: (MonadIO m, IsWidget o) => o -> m (Maybe Text)

-- | Set the value of the “tooltip-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #tooltipText := value ]
--   
setWidgetTooltipText :: (MonadIO m, IsWidget o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “valign” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetValign :: (IsWidget o, MonadIO m) => Align -> m (GValueConstruct o)

-- | Get the value of the “valign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #valign
--   
getWidgetValign :: (MonadIO m, IsWidget o) => o -> m Align

-- | Set the value of the “valign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #valign := value ]
--   
setWidgetValign :: (MonadIO m, IsWidget o) => o -> Align -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vexpand” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetVexpand :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “vexpand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #vexpand
--   
getWidgetVexpand :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “vexpand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #vexpand := value ]
--   
setWidgetVexpand :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vexpand-set” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetVexpandSet :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “vexpand-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #vexpandSet
--   
getWidgetVexpandSet :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “vexpand-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #vexpandSet := value ]
--   
setWidgetVexpandSet :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible” property. This is rarely needed directly, but it is
--   used by new.
constructWidgetVisible :: (IsWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #visible
--   
getWidgetVisible :: (MonadIO m, IsWidget o) => o -> m Bool

-- | Set the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #visible := value ]
--   
setWidgetVisible :: (MonadIO m, IsWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “width-request” property. This is rarely needed directly, but
--   it is used by new.
constructWidgetWidthRequest :: (IsWidget o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “width-request” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widget #widthRequest
--   
getWidgetWidthRequest :: (MonadIO m, IsWidget o) => o -> m Int32

-- | Set the value of the “width-request” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widget [ #widthRequest := value ]
--   
setWidgetWidthRequest :: (MonadIO m, IsWidget o) => o -> Int32 -> m ()

-- | Signals that all holders of a reference to the widget should release
--   the reference that they hold.
--   
--   May result in finalization of the widget if all references are
--   released.
--   
--   This signal is not suitable for saving widget state.
type WidgetDestroyCallback = IO ()

-- | Connect a signal handler for the destroy signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #destroy callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetDestroy :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetDestroyCallback) -> m SignalHandlerId

-- | Connect a signal handler for the destroy signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on widget #destroy callback
--   
onWidgetDestroy :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetDestroyCallback) -> m SignalHandlerId

-- | Emitted when the text direction of a widget changes.
type WidgetDirectionChangedCallback = TextDirection -> IO ()

-- | Connect a signal handler for the directionChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after widget #directionChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetDirectionChanged :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetDirectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the directionChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on widget #directionChanged callback
--   
onWidgetDirectionChanged :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetDirectionChangedCallback) -> m SignalHandlerId

-- | Emitted when widget is hidden.
type WidgetHideCallback = IO ()

-- | Connect a signal handler for the hide signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #hide callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetHide :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetHideCallback) -> m SignalHandlerId

-- | Connect a signal handler for the hide signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on widget #hide callback
--   
onWidgetHide :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetHideCallback) -> m SignalHandlerId

-- | Emitted if keyboard navigation fails.
--   
--   See widgetKeynavFailed for details.
type WidgetKeynavFailedCallback = DirectionType -> IO Bool

-- | Connect a signal handler for the keynavFailed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #keynavFailed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetKeynavFailed :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetKeynavFailedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the keynavFailed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on widget #keynavFailed callback
--   
onWidgetKeynavFailed :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetKeynavFailedCallback) -> m SignalHandlerId

-- | Emitted when widget is going to be mapped.
--   
--   A widget is mapped when the widget is visible (which is controlled
--   with Widget:visible) and all its parents up to the toplevel
--   widget are also visible.
--   
--   The ::map signal can be used to determine whether a widget
--   will be drawn, for instance it can resume an animation that was
--   stopped during the emission of Widget::unmap.
type WidgetMapCallback = IO ()

-- | Connect a signal handler for the map signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #map callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetMap :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetMapCallback) -> m SignalHandlerId

-- | Connect a signal handler for the map signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on widget #map callback
--   
onWidgetMap :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetMapCallback) -> m SignalHandlerId

-- | Emitted when a widget is activated via a mnemonic.
--   
--   The default handler for this signal activates widget
--   if groupCycling is false, or just makes
--   widget grab focus if groupCycling is
--   true.
type WidgetMnemonicActivateCallback = Bool -> IO Bool

-- | Connect a signal handler for the mnemonicActivate signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after widget #mnemonicActivate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetMnemonicActivate :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetMnemonicActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the mnemonicActivate signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on widget #mnemonicActivate callback
--   
onWidgetMnemonicActivate :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetMnemonicActivateCallback) -> m SignalHandlerId

-- | Emitted when the focus is moved.
--   
--   The ::move-focus signal is a keybinding signal.
--   
--   The default bindings for this signal are <kbd>Tab</kbd> to
--   move forward, and
--   <kbd>Shift</kbd>+<kbd>Tab</kbd> to move
--   backward.
type WidgetMoveFocusCallback = DirectionType -> IO ()

-- | Connect a signal handler for the moveFocus signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #moveFocus callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetMoveFocus :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetMoveFocusCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveFocus signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on widget #moveFocus callback
--   
onWidgetMoveFocus :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetMoveFocusCallback) -> m SignalHandlerId

-- | Emitted when the widget’s tooltip is about to be shown.
--   
--   This happens when the Widget:hasTooltip property is true and
--   the hover timeout has expired with the cursor hovering above
--   widget; or emitted when widget got
--   focus in keyboard mode.
--   
--   Using the given coordinates, the signal handler should determine
--   whether a tooltip should be shown for widget. If this
--   is the case true should be returned, false otherwise. Note that if
--   keyboardMode is true, the values of x
--   and y are undefined and should not be used.
--   
--   The signal handler is free to manipulate tooltip with
--   the therefore destined function calls.
type WidgetQueryTooltipCallback = Int32 -> Int32 -> Bool -> Tooltip -> IO Bool

-- | Connect a signal handler for the queryTooltip signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #queryTooltip callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetQueryTooltip :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetQueryTooltipCallback) -> m SignalHandlerId

-- | Connect a signal handler for the queryTooltip signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on widget #queryTooltip callback
--   
onWidgetQueryTooltip :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetQueryTooltipCallback) -> m SignalHandlerId

-- | Emitted when widget is associated with a
--   GdkSurface.
--   
--   This means that widgetRealize has been called or the widget has
--   been mapped (that is, it is going to be drawn).
type WidgetRealizeCallback = IO ()

-- | Connect a signal handler for the realize signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #realize callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetRealize :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetRealizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the realize signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on widget #realize callback
--   
onWidgetRealize :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetRealizeCallback) -> m SignalHandlerId

-- | Emitted when widget is shown.
type WidgetShowCallback = IO ()

-- | Connect a signal handler for the show signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #show callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetShow :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetShowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the show signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on widget #show callback
--   
onWidgetShow :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetShowCallback) -> m SignalHandlerId

-- | Emitted when the widget state changes.
--   
--   See widgetGetStateFlags.
type WidgetStateFlagsChangedCallback = [StateFlags] -> IO ()

-- | Connect a signal handler for the stateFlagsChanged signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after widget #stateFlagsChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetStateFlagsChanged :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetStateFlagsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the stateFlagsChanged signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on widget #stateFlagsChanged callback
--   
onWidgetStateFlagsChanged :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetStateFlagsChangedCallback) -> m SignalHandlerId

-- | Emitted when widget is going to be unmapped.
--   
--   A widget is unmapped when either it or any of its parents up to the
--   toplevel widget have been set as hidden.
--   
--   As ::unmap indicates that a widget will not be shown any
--   longer, it can be used to, for example, stop an animation on the
--   widget.
type WidgetUnmapCallback = IO ()

-- | Connect a signal handler for the unmap signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #unmap callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetUnmap :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetUnmapCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unmap signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on widget #unmap callback
--   
onWidgetUnmap :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetUnmapCallback) -> m SignalHandlerId

-- | Emitted when the GdkSurface associated with
--   widget is destroyed.
--   
--   This means that widgetUnrealize has been called or the widget
--   has been unmapped (that is, it is going to be hidden).
type WidgetUnrealizeCallback = IO ()

-- | Connect a signal handler for the unrealize signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after widget #unrealize callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterWidgetUnrealize :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetUnrealizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unrealize signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on widget #unrealize callback
--   
onWidgetUnrealize :: (IsWidget a, MonadIO m) => a -> ((?self :: a) => WidgetUnrealizeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Widget.Widget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Widget.Widget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Widget.Widget
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Widget.Widget)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Widget.Widget o) => GI.Gtk.Objects.Widget.IsWidget o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Widget.Widget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Widget.Widget

-- | GtkVolumeButton is a GtkScaleButton subclass
--   tailored for volume control.
--   
--   <picture> <source srcset="volumebutton-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkVolumeButton" src="volumebutton.png"> </picture>
module GI.Gtk.Objects.VolumeButton

-- | Memory-managed wrapper type.
newtype VolumeButton
VolumeButton :: ManagedPtr VolumeButton -> VolumeButton

-- | Type class for types which can be safely cast to VolumeButton,
--   for instance with toVolumeButton.
class (GObject o, IsDescendantOf VolumeButton o) => IsVolumeButton o

-- | Cast to VolumeButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toVolumeButton :: (MonadIO m, IsVolumeButton o) => o -> m VolumeButton

-- | Creates a GtkVolumeButton.
--   
--   The button has a range between 0.0 and 1.0, with a stepping of 0.02.
--   Volume values can be obtained and modified using the functions from
--   ScaleButton.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
volumeButtonNew :: (HasCallStack, MonadIO m) => m VolumeButton

-- | Construct a GValueConstruct with valid value for the
--   “use-symbolic” property. This is rarely needed directly, but
--   it is used by new.
constructVolumeButtonUseSymbolic :: (IsVolumeButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-symbolic” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get volumeButton #useSymbolic
--   
getVolumeButtonUseSymbolic :: (MonadIO m, IsVolumeButton o) => o -> m Bool

-- | Set the value of the “use-symbolic” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set volumeButton [ #useSymbolic := value ]
--   
setVolumeButtonUseSymbolic :: (MonadIO m, IsVolumeButton o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.VolumeButton.VolumeButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.VolumeButton.VolumeButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.VolumeButton.VolumeButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.VolumeButton.VolumeButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.VolumeButton.VolumeButton o) => GI.Gtk.Objects.VolumeButton.IsVolumeButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.VolumeButton.VolumeButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.VolumeButton.VolumeButton

-- | Implements scrollability for widgets that don't support scrolling on
--   their own.
--   
--   Use GtkViewport to scroll child widgets such as
--   GtkGrid, GtkBox, and so on.
--   
--   The GtkViewport will start scrolling content only if
--   allocated less than the child widget’s minimum size in a given
--   orientation.
--   
--   
CSS nodes
--   
--   GtkViewport has a single CSS node with name
--   viewport.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkViewport used the
--   AccessibleRoleGroup role.
--   
--   Starting from GTK 4.12, GtkViewport uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.Viewport

-- | Memory-managed wrapper type.
newtype Viewport
Viewport :: ManagedPtr Viewport -> Viewport

-- | Type class for types which can be safely cast to Viewport, for
--   instance with toViewport.
class (GObject o, IsDescendantOf Viewport o) => IsViewport o

-- | Cast to Viewport, for types for which this is known to be safe.
--   For general casts, use castTo.
toViewport :: (MonadIO m, IsViewport o) => o -> m Viewport

-- | Gets the child widget of viewport.
viewportGetChild :: (HasCallStack, MonadIO m, IsViewport a) => a -> m (Maybe Widget)

-- | Gets whether the viewport is scrolling to keep the focused child in
--   view.
viewportGetScrollToFocus :: (HasCallStack, MonadIO m, IsViewport a) => a -> m Bool

-- | Creates a new GtkViewport.
--   
--   The new viewport uses the given adjustments, or default adjustments if
--   none are given.
viewportNew :: (HasCallStack, MonadIO m, IsAdjustment a, IsAdjustment b) => Maybe a -> Maybe b -> m Viewport

-- | Scrolls a descendant of the viewport into view.
--   
--   The viewport and the descendant must be visible and mapped for this
--   function to work, otherwise no scrolling will be performed.
--   
--   Since: 4.12
viewportScrollTo :: (HasCallStack, MonadIO m, IsViewport a, IsWidget b) => a -> b -> Maybe ScrollInfo -> m ()

-- | Sets the child widget of viewport.
viewportSetChild :: (HasCallStack, MonadIO m, IsViewport a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the viewport should automatically scroll to keep the
--   focused child in view.
viewportSetScrollToFocus :: (HasCallStack, MonadIO m, IsViewport a) => a -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearViewportChild :: (MonadIO m, IsViewport o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructViewportChild :: (IsViewport o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get viewport #child
--   
getViewportChild :: (MonadIO m, IsViewport o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set viewport [ #child := value ]
--   
setViewportChild :: (MonadIO m, IsViewport o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scroll-to-focus” property. This is rarely needed directly,
--   but it is used by new.
constructViewportScrollToFocus :: (IsViewport o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “scroll-to-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get viewport #scrollToFocus
--   
getViewportScrollToFocus :: (MonadIO m, IsViewport o) => o -> m Bool

-- | Set the value of the “scroll-to-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set viewport [ #scrollToFocus := value ]
--   
setViewportScrollToFocus :: (MonadIO m, IsViewport o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Viewport.Viewport
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Viewport.Viewport
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Viewport.Viewport
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Viewport.Viewport)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Viewport.Viewport o) => GI.Gtk.Objects.Viewport.IsViewport o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Viewport.Viewport
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Viewport.Viewport

-- | Shows a GtkMediaStream with media controls.
--   
--   <picture> <source srcset="video-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkVideo" src="video.png"> </picture>
--   
--   The controls are available separately as MediaControls. If you
--   just want to display a video without controls, you can treat it like
--   any other paintable and for example put it into a Picture.
--   
--   GtkVideo aims to cover use cases such as previews, embedded
--   animations, etc. It supports autoplay, looping, and simple media
--   controls. It does not have support for video overlays, multichannel
--   audio, device selection, or input. If you are writing a full-fledged
--   video player, you may want to use the Paintable API and a media
--   framework such as Gstreamer directly.
module GI.Gtk.Objects.Video

-- | Memory-managed wrapper type.
newtype Video
Video :: ManagedPtr Video -> Video

-- | Type class for types which can be safely cast to Video, for
--   instance with toVideo.
class (GObject o, IsDescendantOf Video o) => IsVideo o

-- | Cast to Video, for types for which this is known to be safe.
--   For general casts, use castTo.
toVideo :: (MonadIO m, IsVideo o) => o -> m Video

-- | Returns True if videos have been set to loop.
videoGetAutoplay :: (HasCallStack, MonadIO m, IsVideo a) => a -> m Bool

-- | Gets the file played by self or Nothing if not
--   playing back a file.
videoGetFile :: (HasCallStack, MonadIO m, IsVideo a) => a -> m (Maybe File)

-- | Returns whether graphics offload is enabled.
--   
--   See GraphicsOffload for more information on graphics offload.
--   
--   Since: 4.14
videoGetGraphicsOffload :: (HasCallStack, MonadIO m, IsVideo a) => a -> m GraphicsOffloadEnabled

-- | Returns True if videos have been set to loop.
videoGetLoop :: (HasCallStack, MonadIO m, IsVideo a) => a -> m Bool

-- | Gets the media stream managed by self or
--   Nothing if none.
videoGetMediaStream :: (HasCallStack, MonadIO m, IsVideo a) => a -> m (Maybe MediaStream)

-- | Creates a new empty GtkVideo.
videoNew :: (HasCallStack, MonadIO m) => m Video

-- | Creates a GtkVideo to play back the given
--   file.
videoNewForFile :: (HasCallStack, MonadIO m, IsFile a) => Maybe a -> m Video

-- | Creates a GtkVideo to play back the given
--   filename.
--   
--   This is a utility function that calls videoNewForFile, See that
--   function for details.
videoNewForFilename :: (HasCallStack, MonadIO m) => Maybe [Char] -> m Video

-- | Creates a GtkVideo to play back the given
--   stream.
videoNewForMediaStream :: (HasCallStack, MonadIO m, IsMediaStream a) => Maybe a -> m Video

-- | Creates a GtkVideo to play back the resource at the given
--   resourcePath.
--   
--   This is a utility function that calls videoNewForFile.
videoNewForResource :: (HasCallStack, MonadIO m) => Maybe Text -> m Video

-- | Sets whether self automatically starts playback when
--   it becomes visible or when a new file gets loaded.
videoSetAutoplay :: (HasCallStack, MonadIO m, IsVideo a) => a -> Bool -> m ()

-- | Makes self play the given file.
videoSetFile :: (HasCallStack, MonadIO m, IsVideo a, IsFile b) => a -> Maybe b -> m ()

-- | Makes self play the given filename.
--   
--   This is a utility function that calls videoSetFile,
videoSetFilename :: (HasCallStack, MonadIO m, IsVideo a) => a -> Maybe [Char] -> m ()

-- | Sets whether to enable graphics offload.
--   
--   See GraphicsOffload for more information on graphics offload.
--   
--   Since: 4.14
videoSetGraphicsOffload :: (HasCallStack, MonadIO m, IsVideo a) => a -> GraphicsOffloadEnabled -> m ()

-- | Sets whether new files loaded by self should be set to
--   loop.
videoSetLoop :: (HasCallStack, MonadIO m, IsVideo a) => a -> Bool -> m ()

-- | Sets the media stream to be played back.
--   
--   self will take full control of managing the media
--   stream. If you want to manage a media stream yourself, consider using
--   a Picture for display.
--   
--   If you want to display a file, consider using videoSetFile
--   instead.
videoSetMediaStream :: (HasCallStack, MonadIO m, IsVideo a, IsMediaStream b) => a -> Maybe b -> m ()

-- | Makes self play the resource at the given
--   resourcePath.
--   
--   This is a utility function that calls videoSetFile.
videoSetResource :: (HasCallStack, MonadIO m, IsVideo a) => a -> Maybe Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “autoplay” property. This is rarely needed directly, but it
--   is used by new.
constructVideoAutoplay :: (IsVideo o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “autoplay” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get video #autoplay
--   
getVideoAutoplay :: (MonadIO m, IsVideo o) => o -> m Bool

-- | Set the value of the “autoplay” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set video [ #autoplay := value ]
--   
setVideoAutoplay :: (MonadIO m, IsVideo o) => o -> Bool -> m ()

-- | Set the value of the “file” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #file
--   
clearVideoFile :: (MonadIO m, IsVideo o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructVideoFile :: (IsVideo o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get video #file
--   
getVideoFile :: (MonadIO m, IsVideo o) => o -> m (Maybe File)

-- | Set the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set video [ #file := value ]
--   
setVideoFile :: (MonadIO m, IsVideo o, IsFile a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “graphics-offload” property. This is rarely needed directly,
--   but it is used by new.
constructVideoGraphicsOffload :: (IsVideo o, MonadIO m) => GraphicsOffloadEnabled -> m (GValueConstruct o)

-- | Get the value of the “graphics-offload” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get video #graphicsOffload
--   
getVideoGraphicsOffload :: (MonadIO m, IsVideo o) => o -> m GraphicsOffloadEnabled

-- | Set the value of the “graphics-offload” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set video [ #graphicsOffload := value ]
--   
setVideoGraphicsOffload :: (MonadIO m, IsVideo o) => o -> GraphicsOffloadEnabled -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “loop” property. This is rarely needed directly, but it is
--   used by new.
constructVideoLoop :: (IsVideo o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “loop” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get video #loop
--   
getVideoLoop :: (MonadIO m, IsVideo o) => o -> m Bool

-- | Set the value of the “loop” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set video [ #loop := value ]
--   
setVideoLoop :: (MonadIO m, IsVideo o) => o -> Bool -> m ()

-- | Set the value of the “media-stream” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #mediaStream
--   
clearVideoMediaStream :: (MonadIO m, IsVideo o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “media-stream” property. This is rarely needed directly, but
--   it is used by new.
constructVideoMediaStream :: (IsVideo o, MonadIO m, IsMediaStream a) => a -> m (GValueConstruct o)

-- | Get the value of the “media-stream” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get video #mediaStream
--   
getVideoMediaStream :: (MonadIO m, IsVideo o) => o -> m (Maybe MediaStream)

-- | Set the value of the “media-stream” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set video [ #mediaStream := value ]
--   
setVideoMediaStream :: (MonadIO m, IsVideo o, IsMediaStream a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Video.Video
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Video.Video
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Video.Video
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Video.Video)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Video.Video o) => GI.Gtk.Objects.Video.IsVideo o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Video.Video
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Video.Video

-- | Asynchronous API to open a uri with an application.
--   
--   GtkUriLauncher collects the arguments that are needed to open
--   the uri.
--   
--   Depending on system configuration, user preferences and available
--   APIs, this may or may not show an app chooser dialog or launch the
--   default application right away.
--   
--   The operation is started with the uriLauncherLaunch function.
--   
--   To launch a file, use FileLauncher.
--   
--   Since: 4.10
module GI.Gtk.Objects.UriLauncher

-- | Memory-managed wrapper type.
newtype UriLauncher
UriLauncher :: ManagedPtr UriLauncher -> UriLauncher

-- | Type class for types which can be safely cast to UriLauncher,
--   for instance with toUriLauncher.
class (GObject o, IsDescendantOf UriLauncher o) => IsUriLauncher o

-- | Cast to UriLauncher, for types for which this is known to be
--   safe. For general casts, use castTo.
toUriLauncher :: (MonadIO m, IsUriLauncher o) => o -> m UriLauncher

-- | Returns whether the launcher is likely to succeed in launching an
--   application for its uri.
--   
--   This can be used to disable controls that trigger the launcher when
--   they are known not to work.
--   
--   Since: 4.20
uriLauncherCanLaunch :: (HasCallStack, MonadIO m, IsUriLauncher a, IsWindow b) => a -> Maybe b -> m Bool

-- | Gets the uri that will be opened.
--   
--   Since: 4.10
uriLauncherGetUri :: (HasCallStack, MonadIO m, IsUriLauncher a) => a -> m (Maybe Text)

-- | Launches an application to open the uri.
--   
--   This may present an app chooser dialog to the user.
--   
--   Since: 4.10
uriLauncherLaunch :: (HasCallStack, MonadIO m, IsUriLauncher a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the uriLauncherLaunch call and returns the result.
--   
--   Since: 4.10
uriLauncherLaunchFinish :: (HasCallStack, MonadIO m, IsUriLauncher a, IsAsyncResult b) => a -> b -> m ()

-- | Creates a new GtkUriLauncher object.
--   
--   Since: 4.10
uriLauncherNew :: (HasCallStack, MonadIO m) => Maybe Text -> m UriLauncher

-- | Sets the uri that will be opened.
--   
--   Since: 4.10
uriLauncherSetUri :: (HasCallStack, MonadIO m, IsUriLauncher a) => a -> Maybe Text -> m ()

-- | Set the value of the “uri” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #uri
--   
clearUriLauncherUri :: (MonadIO m, IsUriLauncher o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “uri” property. This is rarely needed directly, but it is
--   used by new.
constructUriLauncherUri :: (IsUriLauncher o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “uri” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get uriLauncher #uri
--   
getUriLauncherUri :: (MonadIO m, IsUriLauncher o) => o -> m (Maybe Text)

-- | Set the value of the “uri” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set uriLauncher [ #uri := value ]
--   
setUriLauncherUri :: (MonadIO m, IsUriLauncher o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.UriLauncher.UriLauncher
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.UriLauncher.UriLauncher
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.UriLauncher.UriLauncher
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.UriLauncher.UriLauncher)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.UriLauncher.UriLauncher o) => GI.Gtk.Objects.UriLauncher.IsUriLauncher o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.UriLauncher.UriLauncher
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.UriLauncher.UriLauncher

-- | A GtkExpression that tries to evaluate each of its
--   expressions until it succeeds.
--   
--   If all expressions fail to evaluate, the GtkTryExpression's
--   evaluation fails as well.
--   
--   Since: 4.22
module GI.Gtk.Objects.TryExpression

-- | Memory-managed wrapper type.
newtype TryExpression
TryExpression :: ManagedPtr TryExpression -> TryExpression

-- | Type class for types which can be safely cast to TryExpression,
--   for instance with toTryExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf TryExpression o) => IsTryExpression o

-- | Cast to TryExpression, for types for which this is known to be
--   safe. For general casts, use castTo.
toTryExpression :: (MonadIO m, IsTryExpression o) => o -> m TryExpression

-- | Creates a GtkExpression with an array of expressions.
--   
--   When evaluated, the GtkTryExpression tries to evaluate each
--   of its expressions until it succeeds. If all expressions fail to
--   evaluate, the GtkTryExpression's evaluation fails as well.
--   
--   The value type of the expressions in the array must match.
--   
--   Since: 4.22
tryExpressionNew :: (HasCallStack, MonadIO m) => [Expression] -> m TryExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.TryExpression.TryExpression
instance GHC.Classes.Eq GI.Gtk.Objects.TryExpression.TryExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TryExpression.TryExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TryExpression.TryExpression o) => GI.Gtk.Objects.TryExpression.IsTryExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TryExpression.TryExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TryExpression.TryExpression

-- | A visible column in a TreeView widget
--   
--   The GtkTreeViewColumn object represents a visible column in a
--   GtkTreeView widget. It allows to set properties of the column
--   header, and functions as a holding pen for the cell renderers which
--   determine how the data in the column is displayed.
--   
--   Please refer to the tree widget conceptual overview for an
--   overview of all the objects and data types related to the tree widget
--   and how they work together, and to the TreeView documentation
--   for specifics about the CSS node structure for treeviews and their
--   headers.
module GI.Gtk.Objects.TreeViewColumn

-- | Memory-managed wrapper type.
newtype TreeViewColumn
TreeViewColumn :: ManagedPtr TreeViewColumn -> TreeViewColumn

-- | Type class for types which can be safely cast to
--   TreeViewColumn, for instance with toTreeViewColumn.
class (GObject o, IsDescendantOf TreeViewColumn o) => IsTreeViewColumn o

-- | Cast to TreeViewColumn, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeViewColumn :: (MonadIO m, IsTreeViewColumn o) => o -> m TreeViewColumn

-- | Adds an attribute mapping to the list in treeColumn.
--   
--   The column is the column of the model to get a value
--   from, and the attribute is the parameter on
--   cellRenderer to be set from the value. So for example
--   if column 2 of the model contains strings, you could have the “text”
--   attribute of a GtkCellRendererText get its values from column
--   2.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnAddAttribute :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> Text -> Int32 -> m ()

-- | Obtains the horizontal position and size of a cell in a column.
--   
--   If the cell is not found in the column, startPos and
--   width are not changed and False is returned.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnCellGetPosition :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> m (Bool, Int32, Int32)

-- | Obtains the width and height needed to render the column. This is used
--   primarily by the GtkTreeView.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnCellGetSize :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m (Int32, Int32, Int32, Int32)

-- | Returns True if any of the cells packed into the
--   treeColumn are visible. For this to be meaningful, you
--   must first initialize the cells with
--   treeViewColumnCellSetCellData

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnCellIsVisible :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Sets the cell renderer based on the treeModel and
--   iter. That is, for every attribute mapping in
--   treeColumn, it will get a value from the set column on
--   the iter, and use that value to set the attribute on
--   the cell renderer. This is used primarily by the GtkTreeView.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnCellSetCellData :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsTreeModel b) => a -> b -> TreeIter -> Bool -> Bool -> m ()

-- | Unsets all the mappings on all renderers on the
--   treeColumn.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnClear :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m ()

-- | Clears all existing attributes previously set with
--   gtk_tree_view_column_set_attributes().

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnClearAttributes :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> m ()

-- | Emits the “clicked” signal on the column. This function will only work
--   if treeColumn is clickable.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnClicked :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m ()

-- | Sets the current keyboard focus to be at cell, if the
--   column contains 2 or more editable and activatable cells.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnFocusCell :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> m ()

-- | Returns the current x alignment of treeColumn. This
--   value can range between 0.0 and 1.0.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetAlignment :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Float

-- | Returns the button used in the treeview column header

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetButton :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Widget

-- | Returns True if the user can click on the header for the
--   column.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetClickable :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Returns True if the column expands to fill available space.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetExpand :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Gets the fixed width of the column. This may not be the actual
--   displayed width of the column; for that, use
--   treeViewColumnGetWidth.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetFixedWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Returns the maximum width in pixels of the treeColumn,
--   or -1 if no maximum width is set.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetMaxWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Returns the minimum width in pixels of the treeColumn,
--   or -1 if no minimum width is set.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetMinWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Returns True if the treeColumn can be reordered
--   by the user.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetReorderable :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Returns True if the treeColumn can be resized
--   by the end user.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetResizable :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Returns the current type of treeColumn.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetSizing :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m TreeViewColumnSizing

-- | Gets the logical sortColumnId that the model sorts on
--   when this column is selected for sorting.
--   
--   See treeViewColumnSetSortColumnId.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetSortColumnId :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Gets the value set by treeViewColumnSetSortIndicator.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetSortIndicator :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Gets the value set by treeViewColumnSetSortOrder.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetSortOrder :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m SortType

-- | Returns the spacing of treeColumn.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetSpacing :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Returns the title of the widget.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetTitle :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Text

-- | Returns the GtkTreeView wherein treeColumn
--   has been inserted. If column is currently not inserted
--   in any tree view, Nothing is returned.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetTreeView :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m (Maybe Widget)

-- | Returns True if treeColumn is visible.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetVisible :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Bool

-- | Returns the GtkWidget in the button on the column header.
--   
--   If a custom widget has not been set then Nothing is returned.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetWidget :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m (Maybe Widget)

-- | Returns the current size of treeColumn in pixels.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Returns the current X offset of treeColumn in pixels.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnGetXOffset :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m Int32

-- | Creates a new GtkTreeViewColumn.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnNew :: (HasCallStack, MonadIO m) => m TreeViewColumn

-- | Creates a new GtkTreeViewColumn using area to
--   render its cells.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnNewWithArea :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m TreeViewColumn

-- | Adds the cell to end of the column. If
--   expand is False, then the cell
--   is allocated no more space than it needs. Any unused space is divided
--   evenly between cells for which expand is True.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnPackEnd :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> Bool -> m ()

-- | Packs the cell into the beginning of the column. If
--   expand is False, then the cell
--   is allocated no more space than it needs. Any unused space is divided
--   evenly between cells for which expand is True.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnPackStart :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> Bool -> m ()

-- | Flags the column, and the cell renderers added to this column, to have
--   their sizes renegotiated.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnQueueResize :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> m ()

-- | Sets the alignment of the title or custom widget inside the column
--   header. The alignment determines its location inside the button -- 0.0
--   for left, 0.5 for center, 1.0 for right.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetAlignment :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Float -> m ()

-- | Sets the GtkTreeCellDataFunc to use for the column.
--   
--   This function is used instead of the standard attributes mapping for
--   setting the column value, and should set the value of
--   treeColumn's cell renderer as appropriate.
--   func may be Nothing to remove an older one.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetCellDataFunc :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsCellRenderer b) => a -> b -> Maybe TreeCellDataFunc -> m ()

-- | Sets the header to be active if clickable is
--   True. When the header is active, then it can take keyboard
--   focus, and can be clicked.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetClickable :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Bool -> m ()

-- | Sets the column to take available extra space. This space is shared
--   equally amongst all columns that have the expand set to True.
--   If no column has this option set, then the last column gets all extra
--   space. By default, every column is created with this False.
--   
--   Along with “fixed-width”, the “expand” property changes when the
--   column is resized by the user.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetExpand :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Bool -> m ()

-- | If fixedWidth is not -1, sets the fixed width of
--   treeColumn; otherwise unsets it. The effective value
--   of fixedWidth is clamped between the minimum and
--   maximum width of the column; however, the value stored in the
--   “fixed-width” property is not clamped. If the column sizing is
--   TreeViewColumnSizingGrowOnly or
--   TreeViewColumnSizingAutosize, setting a fixed width overrides
--   the automatically calculated width. Note that
--   fixedWidth is only a hint to GTK; the width actually
--   allocated to the column may be greater or less than requested.
--   
--   Along with “expand”, the “fixed-width” property changes when the
--   column is resized by the user.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetFixedWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Int32 -> m ()

-- | Sets the maximum width of the treeColumn. If
--   maxWidth is -1, then the maximum width is unset. Note,
--   the column can actually be wider than max width if it’s the last
--   column in a view. In this case, the column expands to fill any extra
--   space.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetMaxWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Int32 -> m ()

-- | Sets the minimum width of the treeColumn. If
--   minWidth is -1, then the minimum width is unset.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetMinWidth :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Int32 -> m ()

-- | If reorderable is True, then the column can be
--   reordered by the end user dragging the header.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetReorderable :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Bool -> m ()

-- | If resizable is True, then the user can
--   explicitly resize the column by grabbing the outer edge of the column
--   button.
--   
--   If resizable is True and sizing mode of the column is
--   TreeViewColumnSizingAutosize, then the sizing mode is changed
--   to TreeViewColumnSizingGrowOnly.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetResizable :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Bool -> m ()

-- | Sets the growth behavior of treeColumn to
--   type.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetSizing :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> TreeViewColumnSizing -> m ()

-- | Sets the logical sortColumnId that this column sorts
--   on when this column is selected for sorting. Doing so makes the column
--   header clickable.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetSortColumnId :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Int32 -> m ()

-- | Call this function with a setting of True to
--   display an arrow in the header button indicating the column is sorted.
--   Call treeViewColumnSetSortOrder to change the direction of the
--   arrow.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetSortIndicator :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Bool -> m ()

-- | Changes the appearance of the sort indicator.
--   
--   This does not actually sort the model. Use
--   treeViewColumnSetSortColumnId if you want automatic sorting
--   support. This function is primarily for custom sorting behavior, and
--   should be used in conjunction with treeSortableSetSortColumnId
--   to do that. For custom models, the mechanism will vary.
--   
--   The sort indicator changes direction to indicate normal sort or
--   reverse sort. Note that you must have the sort indicator enabled to
--   see anything when calling this function; see
--   treeViewColumnSetSortIndicator.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetSortOrder :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> SortType -> m ()

-- | Sets the spacing field of treeColumn, which is the
--   number of pixels to place between cell renderers packed into it.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetSpacing :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Int32 -> m ()

-- | Sets the title of the treeColumn. If a custom widget
--   has been set, then this value is ignored.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetTitle :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Text -> m ()

-- | Sets the visibility of treeColumn.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetVisible :: (HasCallStack, MonadIO m, IsTreeViewColumn a) => a -> Bool -> m ()

-- | Sets the widget in the header to be widget. If widget
--   is Nothing, then the header button is set with a
--   GtkLabel set to the title of treeColumn.

-- | Deprecated: (Since version 4.10)Use GtkColumnView instead
treeViewColumnSetWidget :: (HasCallStack, MonadIO m, IsTreeViewColumn a, IsWidget b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “alignment” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnAlignment :: (IsTreeViewColumn o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “alignment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #alignment
--   
getTreeViewColumnAlignment :: (MonadIO m, IsTreeViewColumn o) => o -> m Float

-- | Set the value of the “alignment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #alignment := value ]
--   
setTreeViewColumnAlignment :: (MonadIO m, IsTreeViewColumn o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-area” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnCellArea :: (IsTreeViewColumn o, MonadIO m, IsCellArea a) => a -> m (GValueConstruct o)

-- | Get the value of the “cell-area” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #cellArea
--   
getTreeViewColumnCellArea :: (MonadIO m, IsTreeViewColumn o) => o -> m (Maybe CellArea)

-- | Construct a GValueConstruct with valid value for the
--   “clickable” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnClickable :: (IsTreeViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “clickable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #clickable
--   
getTreeViewColumnClickable :: (MonadIO m, IsTreeViewColumn o) => o -> m Bool

-- | Set the value of the “clickable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #clickable := value ]
--   
setTreeViewColumnClickable :: (MonadIO m, IsTreeViewColumn o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expand” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewColumnExpand :: (IsTreeViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #expand
--   
getTreeViewColumnExpand :: (MonadIO m, IsTreeViewColumn o) => o -> m Bool

-- | Set the value of the “expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #expand := value ]
--   
setTreeViewColumnExpand :: (MonadIO m, IsTreeViewColumn o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fixed-width” property. This is rarely needed directly, but
--   it is used by new.
constructTreeViewColumnFixedWidth :: (IsTreeViewColumn o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “fixed-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #fixedWidth
--   
getTreeViewColumnFixedWidth :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Set the value of the “fixed-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #fixedWidth := value ]
--   
setTreeViewColumnFixedWidth :: (MonadIO m, IsTreeViewColumn o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-width” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnMaxWidth :: (IsTreeViewColumn o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #maxWidth
--   
getTreeViewColumnMaxWidth :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Set the value of the “max-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #maxWidth := value ]
--   
setTreeViewColumnMaxWidth :: (MonadIO m, IsTreeViewColumn o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-width” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnMinWidth :: (IsTreeViewColumn o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “min-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #minWidth
--   
getTreeViewColumnMinWidth :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Set the value of the “min-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #minWidth := value ]
--   
setTreeViewColumnMinWidth :: (MonadIO m, IsTreeViewColumn o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “reorderable” property. This is rarely needed directly, but
--   it is used by new.
constructTreeViewColumnReorderable :: (IsTreeViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #reorderable
--   
getTreeViewColumnReorderable :: (MonadIO m, IsTreeViewColumn o) => o -> m Bool

-- | Set the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #reorderable := value ]
--   
setTreeViewColumnReorderable :: (MonadIO m, IsTreeViewColumn o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resizable” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnResizable :: (IsTreeViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “resizable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #resizable
--   
getTreeViewColumnResizable :: (MonadIO m, IsTreeViewColumn o) => o -> m Bool

-- | Set the value of the “resizable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #resizable := value ]
--   
setTreeViewColumnResizable :: (MonadIO m, IsTreeViewColumn o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sizing” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewColumnSizing :: (IsTreeViewColumn o, MonadIO m) => TreeViewColumnSizing -> m (GValueConstruct o)

-- | Get the value of the “sizing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #sizing
--   
getTreeViewColumnSizing :: (MonadIO m, IsTreeViewColumn o) => o -> m TreeViewColumnSizing

-- | Set the value of the “sizing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #sizing := value ]
--   
setTreeViewColumnSizing :: (MonadIO m, IsTreeViewColumn o) => o -> TreeViewColumnSizing -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sort-column-id” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewColumnSortColumnId :: (IsTreeViewColumn o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “sort-column-id” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #sortColumnId
--   
getTreeViewColumnSortColumnId :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Set the value of the “sort-column-id” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #sortColumnId := value ]
--   
setTreeViewColumnSortColumnId :: (MonadIO m, IsTreeViewColumn o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sort-indicator” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewColumnSortIndicator :: (IsTreeViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “sort-indicator” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #sortIndicator
--   
getTreeViewColumnSortIndicator :: (MonadIO m, IsTreeViewColumn o) => o -> m Bool

-- | Set the value of the “sort-indicator” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #sortIndicator := value ]
--   
setTreeViewColumnSortIndicator :: (MonadIO m, IsTreeViewColumn o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sort-order” property. This is rarely needed directly, but it
--   is used by new.
constructTreeViewColumnSortOrder :: (IsTreeViewColumn o, MonadIO m) => SortType -> m (GValueConstruct o)

-- | Get the value of the “sort-order” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #sortOrder
--   
getTreeViewColumnSortOrder :: (MonadIO m, IsTreeViewColumn o) => o -> m SortType

-- | Set the value of the “sort-order” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #sortOrder := value ]
--   
setTreeViewColumnSortOrder :: (MonadIO m, IsTreeViewColumn o) => o -> SortType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “spacing” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewColumnSpacing :: (IsTreeViewColumn o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #spacing
--   
getTreeViewColumnSpacing :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Set the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #spacing := value ]
--   
setTreeViewColumnSpacing :: (MonadIO m, IsTreeViewColumn o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewColumnTitle :: (IsTreeViewColumn o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #title
--   
getTreeViewColumnTitle :: (MonadIO m, IsTreeViewColumn o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #title := value ]
--   
setTreeViewColumnTitle :: (MonadIO m, IsTreeViewColumn o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewColumnVisible :: (IsTreeViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #visible
--   
getTreeViewColumnVisible :: (MonadIO m, IsTreeViewColumn o) => o -> m Bool

-- | Set the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #visible := value ]
--   
setTreeViewColumnVisible :: (MonadIO m, IsTreeViewColumn o) => o -> Bool -> m ()

-- | Set the value of the “widget” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #widget
--   
clearTreeViewColumnWidget :: (MonadIO m, IsTreeViewColumn o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “widget” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewColumnWidget :: (IsTreeViewColumn o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #widget
--   
getTreeViewColumnWidget :: (MonadIO m, IsTreeViewColumn o) => o -> m (Maybe Widget)

-- | Set the value of the “widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeViewColumn [ #widget := value ]
--   
setTreeViewColumnWidget :: (MonadIO m, IsTreeViewColumn o, IsWidget a) => o -> a -> m ()

-- | Get the value of the “width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #width
--   
getTreeViewColumnWidth :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Get the value of the “x-offset” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeViewColumn #xOffset
--   
getTreeViewColumnXOffset :: (MonadIO m, IsTreeViewColumn o) => o -> m Int32

-- | Emitted when the column's header has been clicked.
type TreeViewColumnClickedCallback = IO ()

-- | Connect a signal handler for the clicked signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeViewColumn #clicked callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewColumnClicked :: (IsTreeViewColumn a, MonadIO m) => a -> ((?self :: a) => TreeViewColumnClickedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the clicked signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeViewColumn #clicked callback
--   
onTreeViewColumnClicked :: (IsTreeViewColumn a, MonadIO m) => a -> ((?self :: a) => TreeViewColumnClickedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.TreeViewColumn.TreeViewColumn
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeViewColumn.TreeViewColumn
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeViewColumn.TreeViewColumn
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeViewColumn.TreeViewColumn)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeViewColumn.TreeViewColumn o) => GI.Gtk.Objects.TreeViewColumn.IsTreeViewColumn o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeViewColumn.TreeViewColumn
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeViewColumn.TreeViewColumn

-- | A widget for displaying both trees and lists
--   
--   <picture> <source srcset="list-and-tree-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkTreeView" src="list-and-tree.png"> </picture>
--   
--   Widget that displays any object that implements the TreeModel
--   interface.
--   
--   Please refer to the tree widget conceptual overview for an
--   overview of all the objects and data types related to the tree widget
--   and how they work together.
--   
--   
Coordinate systems in GtkTreeView API
--   
--   Several different coordinate systems are exposed in the
--   GtkTreeView API. These are:
--   
--   
--   
--   
- Widget coordinates: Coordinates relative to the widget (usually
--   widget->window).
--   
- Bin window coordinates: Coordinates relative to the window that
--   GtkTreeView renders to.
--   
- Tree coordinates: Coordinates relative to the entire scrollable
--   area of GtkTreeView. These coordinates start at (0, 0) for row 0 of
--   the tree.
--   
--   
--   Several functions are available for converting between the different
--   coordinate systems. The most common translations are between widget
--   and bin window coordinates and between bin window and tree
--   coordinates. For the former you can use
--   treeViewConvertWidgetToBinWindowCoords (and vice versa), for
--   the latter treeViewConvertBinWindowToTreeCoords (and vice
--   versa).
--   
--   
GtkTreeView as GtkBuildable
--   
--   The GtkTreeView implementation of the GtkBuildable
--   interface accepts TreeViewColumn objects as
--   <child> elements and exposes the internal
--   TreeSelection in UI definitions.
--   
--   An example of a UI definition fragment with GtkTreeView:
--   
--   
xml code
--   
--   
--   <object class="GtkTreeView" id="treeview">
--     <property name="model">liststore1</property>
--     <child>
--       <object class="GtkTreeViewColumn" id="test-column">
--         <property name="title">Test</property>
--         <child>
--           <object class="GtkCellRendererText" id="test-renderer"/>
--           <attributes>
--             <attribute name="text">1</attribute>
--           </attributes>
--         </child>
--       </object>
--     </child>
--     <child internal-child="selection">
--       <object class="GtkTreeSelection" id="selection">
--         <signal name="changed" handler="on_treeview_selection_changed"/>
--       </object>
--     </child>
--   </object>
--   
--   
--   
CSS nodes
--   
--   
--   treeview.view
--   ├── header
--   │   ├── button
--   │   │   ╰── [sort-indicator]
--   ┊   ┊
--   │   ╰── button
--   │       ╰── [sort-indicator]
--   │
--   ├── [rubberband]
--   ╰── [dndtarget]
--   
--   
--   GtkTreeView has a main CSS node with name treeview
--   and style class .view. It has a subnode with name
--   header, which is the parent for all the column header
--   widgets' CSS nodes.
--   
--   Each column header consists of a button, which among other
--   content, has a child with name sort-indicator, which carries
--   the .ascending or .descending style classes when the
--   column header should show a sort indicator. The CSS is expected to
--   provide a suitable image using the -gtk-icon-source property.
--   
--   For rubberband selection, a subnode with name rubberband is
--   used.
--   
--   For the drop target location during DND, a subnode with name
--   dndtarget is used.
module GI.Gtk.Objects.TreeView

-- | Memory-managed wrapper type.
newtype TreeView
TreeView :: ManagedPtr TreeView -> TreeView

-- | Type class for types which can be safely cast to TreeView, for
--   instance with toTreeView.
class (GObject o, IsDescendantOf TreeView o) => IsTreeView o

-- | Cast to TreeView, for types for which this is known to be safe.
--   For general casts, use castTo.
toTreeView :: (MonadIO m, IsTreeView o) => o -> m TreeView

-- | Appends column to the list of columns. If
--   treeView has “fixed_height” mode enabled, then
--   column must have its “sizing” property set to be
--   GTK_TREE_VIEW_COLUMN_FIXED.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewAppendColumn :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> b -> m Int32

-- | Recursively collapses all visible, expanded nodes in
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewCollapseAll :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m ()

-- | Collapses a row (hides its child rows, if they exist).

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewCollapseRow :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreePath -> m Bool

-- | Resizes all columns to their optimal width. Only works after the
--   treeview has been realized.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewColumnsAutosize :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m ()

-- | Converts bin_window coordinates to coordinates for the tree (the full
--   scrollable area of the tree).

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewConvertBinWindowToTreeCoords :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Int32, Int32)

-- | Converts bin_window coordinates to widget relative coordinates.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewConvertBinWindowToWidgetCoords :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Int32, Int32)

-- | Converts tree coordinates (coordinates in full scrollable area of the
--   tree) to bin_window coordinates.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewConvertTreeToBinWindowCoords :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Int32, Int32)

-- | Converts tree coordinates (coordinates in full scrollable area of the
--   tree) to widget coordinates.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewConvertTreeToWidgetCoords :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Int32, Int32)

-- | Converts widget coordinates to coordinates for the bin_window.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewConvertWidgetToBinWindowCoords :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Int32, Int32)

-- | Converts widget coordinates to coordinates for the tree (the full
--   scrollable area of the tree).

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewConvertWidgetToTreeCoords :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Int32, Int32)

-- | Creates a cairo_surface_t representation of the row at
--   path. This image is used for a drag icon.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewCreateRowDragIcon :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreePath -> m (Maybe Paintable)

-- | Turns treeView into a drop destination for automatic
--   DND. Calling this method sets GtkTreeView:reorderable to
--   False.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewEnableModelDragDest :: (HasCallStack, MonadIO m, IsTreeView a) => a -> ContentFormats -> [DragAction] -> m ()

-- | Turns treeView into a drag source for automatic DND.
--   Calling this method sets GtkTreeView:reorderable to
--   False.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewEnableModelDragSource :: (HasCallStack, MonadIO m, IsTreeView a) => a -> [ModifierType] -> ContentFormats -> [DragAction] -> m ()

-- | Recursively expands all nodes in the treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewExpandAll :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m ()

-- | Opens the row so its children are visible.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewExpandRow :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreePath -> Bool -> m Bool

-- | Expands the row at path. This will also expand all
--   parent rows of path as necessary.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewExpandToPath :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreePath -> m ()

-- | Gets the setting set by treeViewSetActivateOnSingleClick.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Fills the bounding rectangle in bin_window coordinates for the cell at
--   the row specified by path and the column specified by
--   column. If path is Nothing, or
--   points to a node not found in the tree, the y and
--   height fields of the rectangle will be filled with 0.
--   If column is Nothing, the x and
--   width fields will be filled with 0. The returned
--   rectangle is equivalent to the backgroundArea passed
--   to gtk_cell_renderer_render(). These background areas
--   tile to cover the entire bin window. Contrast with the
--   cellArea, returned by treeViewGetCellArea,
--   which returns only the cell itself, excluding surrounding borders and
--   the tree expander area.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetBackgroundArea :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> Maybe TreePath -> Maybe b -> m Rectangle

-- | Fills the bounding rectangle in bin_window coordinates for the cell at
--   the row specified by path and the column specified by
--   column. If path is Nothing, or
--   points to a path not currently displayed, the y and
--   height fields of the rectangle will be filled with 0.
--   If column is Nothing, the x and
--   width fields will be filled with 0. The sum of all
--   cell rects does not cover the entire tree; there are extra pixels in
--   between rows, for example. The returned rectangle is equivalent to the
--   cellArea passed to
--   gtk_cell_renderer_render(). This function is only
--   valid if treeView is realized.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetCellArea :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> Maybe TreePath -> Maybe b -> m Rectangle

-- | Gets the GtkTreeViewColumn at the given position in the
--   tree_view.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetColumn :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> m (Maybe TreeViewColumn)

-- | Returns a GList of all the GtkTreeViewColumns
--   currently in treeView. The returned list must be freed
--   with g_list_free ().

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetColumns :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m [TreeViewColumn]

-- | Fills in path and focusColumn with the
--   current path and focus column. If the cursor isn’t currently set, then
--   *path will be Nothing. If no column currently
--   has focus, then *focusColumn will be Nothing.
--   
--   The returned GtkTreePath must be freed with
--   treePathFree when you are done with it.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetCursor :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m (Maybe TreePath, Maybe TreeViewColumn)

-- | Determines the destination row for a given position.
--   dragX and dragY are expected to be in
--   widget coordinates. This function is only meaningful if
--   treeView is realized. Therefore this function will
--   always return False if treeView is not realized
--   or does not have a model.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetDestRowAtPos :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Bool, Maybe TreePath, TreeViewDropPosition)

-- | Gets information about the row that is highlighted for feedback.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetDragDestRow :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m (Maybe TreePath, TreeViewDropPosition)

-- | Returns whether or not the tree allows to start interactive searching
--   by typing in text.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetEnableSearch :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns whether or not tree lines are drawn in
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetEnableTreeLines :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns the column that is the current expander column, or
--   Nothing if none has been set. This column has the expander
--   arrow drawn next to it.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetExpanderColumn :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m (Maybe TreeViewColumn)

-- | Returns whether fixed height mode is turned on for
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetFixedHeightMode :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns which grid lines are enabled in treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetGridLines :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m TreeViewGridLines

-- | Returns whether all header columns are clickable.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetHeadersClickable :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns True if the headers on the treeView are
--   visible.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetHeadersVisible :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns whether hover expansion mode is turned on for
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetHoverExpand :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns whether hover selection mode is turned on for
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetHoverSelection :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns the amount, in pixels, of extra indentation for child levels
--   in treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetLevelIndentation :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Int32

-- | Returns the model the GtkTreeView is based on. Returns
--   Nothing if the model is unset.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetModel :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m (Maybe TreeModel)

-- | Queries the number of columns in the given treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetNColumns :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Word32

-- | Finds the path at the point (x, y),
--   relative to bin_window coordinates. That is, x and
--   y are relative to an events coordinates.
--   Widget-relative coordinates must be converted using
--   treeViewConvertWidgetToBinWindowCoords. It is primarily for
--   things like popup menus. If path is
--   non-Nothing, then it will be filled with the
--   GtkTreePath at that point. This path should be freed with
--   treePathFree. If column is non-Nothing,
--   then it will be filled with the column at that point.
--   cellX and cellY return the coordinates
--   relative to the cell background (i.e. the
--   backgroundArea passed to
--   gtk_cell_renderer_render()). This function is only
--   meaningful if treeView is realized. Therefore this
--   function will always return False if treeView
--   is not realized or does not have a model.
--   
--   For converting widget coordinates (eg. the ones you get from
--   GtkWidgetqueryTooltip), please see
--   treeViewConvertWidgetToBinWindowCoords.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetPathAtPos :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)

-- | Retrieves whether the user can reorder the tree via drag-and-drop. See
--   treeViewSetReorderable.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetReorderable :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns whether rubber banding is turned on for
--   treeView. If the selection mode is
--   SelectionModeMultiple, rubber banding will allow the user to
--   select multiple rows by dragging the mouse.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetRubberBanding :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Gets the column searched on by the interactive search code.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetSearchColumn :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Int32

-- | Returns the GtkEntry which is currently in use as interactive
--   search entry for treeView. In case the built-in entry
--   is being used, Nothing will be returned.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetSearchEntry :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m (Maybe Editable)

-- | Gets the GtkTreeSelection associated with
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetSelection :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m TreeSelection

-- | Returns whether or not expanders are drawn in
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetShowExpanders :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Returns the column of treeView’s model which is being
--   used for displaying tooltips on treeView’s rows.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetTooltipColumn :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Int32

-- | This function is supposed to be used in a queryTooltip signal
--   handler for GtkTreeView. The x,
--   y and keyboardTip values which are
--   received in the signal handler, should be passed to this function
--   without modification.
--   
--   The return value indicates whether there is a tree view row at the
--   given coordinates (True) or not (False) for mouse
--   tooltips. For keyboard tooltips the row returned will be the cursor
--   row. When True, then any of model,
--   path and iter which have been provided
--   will be set to point to that row and the corresponding model.
--   x and y will always be converted to be
--   relative to treeView’s bin_window if
--   keyboardTooltip is False.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetTooltipContext :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> Bool -> m (Bool, Maybe TreeModel, TreePath, TreeIter)

-- | Sets startPath and endPath to be the
--   first and last visible path. Note that there may be invisible paths in
--   between.
--   
--   The paths should be freed with treePathFree after use.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetVisibleRange :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m (Bool, TreePath, TreePath)

-- | Fills visibleRect with the currently-visible region of
--   the buffer, in tree coordinates. Convert to bin_window coordinates
--   with treeViewConvertTreeToBinWindowCoords. Tree coordinates
--   start at 0,0 for row 0 of the tree, and cover the entire scrollable
--   area of the tree.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewGetVisibleRect :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Rectangle

-- | This inserts the column into the
--   treeView at position. If
--   position is -1, then the column is inserted at the
--   end. If treeView has “fixed_height” mode enabled, then
--   column must have its “sizing” property set to be
--   GTK_TREE_VIEW_COLUMN_FIXED.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewInsertColumn :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> b -> Int32 -> m Int32

-- | Convenience function that inserts a new column into the
--   GtkTreeView with the given cell renderer and a
--   GtkTreeCellDataFunc to set cell renderer attributes (normally
--   using data from the model). See also
--   treeViewColumnSetCellDataFunc, treeViewColumnPackStart.
--   If treeView has “fixed_height” mode enabled, then the
--   new column will have its “sizing” property set to be
--   GTK_TREE_VIEW_COLUMN_FIXED.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewInsertColumnWithDataFunc :: (HasCallStack, MonadIO m, IsTreeView a, IsCellRenderer b) => a -> Int32 -> Text -> b -> TreeCellDataFunc -> m Int32

-- | Determine whether the point (x, y) in
--   treeView is blank, that is no cell content nor an
--   expander arrow is drawn at the location. If so, the location can be
--   considered as the background. You might wish to take special action on
--   clicks on the background, such as clearing a current selection, having
--   a custom context menu or starting rubber banding.
--   
--   The x and y coordinate that are
--   provided must be relative to bin_window coordinates. Widget-relative
--   coordinates must be converted using
--   treeViewConvertWidgetToBinWindowCoords.
--   
--   For converting widget coordinates (eg. the ones you get from
--   GtkWidgetqueryTooltip), please see
--   treeViewConvertWidgetToBinWindowCoords.
--   
--   The path, column,
--   cellX and cellY arguments will be
--   filled in likewise as for treeViewGetPathAtPos. Please see
--   treeViewGetPathAtPos for more information.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewIsBlankAtPos :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)

-- | Returns whether a rubber banding operation is currently being done in
--   treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewIsRubberBandingActive :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m Bool

-- | Calls func on all expanded rows.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewMapExpandedRows :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreeViewMappingFunc -> m ()

-- | Moves column to be after to
--   baseColumn. If baseColumn is
--   Nothing, then column is placed in the first
--   position.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewMoveColumnAfter :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b, IsTreeViewColumn c) => a -> b -> Maybe c -> m ()

-- | Creates a new GtkTreeView widget.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewNew :: (HasCallStack, MonadIO m) => m TreeView

-- | Creates a new GtkTreeView widget with the model initialized
--   to model.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewNewWithModel :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m TreeView

-- | Removes column from treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewRemoveColumn :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> b -> m Int32

-- | Activates the cell determined by path and
--   column.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewRowActivated :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> TreePath -> Maybe b -> m ()

-- | Returns True if the node pointed to by path is
--   expanded in treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewRowExpanded :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreePath -> m Bool

-- | Moves the alignments of treeView to the position
--   specified by column and path. If
--   column is Nothing, then no horizontal scrolling
--   occurs. Likewise, if path is Nothing no
--   vertical scrolling occurs. At a minimum, one of column
--   or path need to be non-Nothing.
--   rowAlign determines where the row is placed, and
--   colAlign determines where column is
--   placed. Both are expected to be between 0.0 and 1.0. 0.0 means
--   left/top alignment, 1.0 means right/bottom alignment, 0.5 means
--   center.
--   
--   If useAlign is False, then the alignment
--   arguments are ignored, and the tree does the minimum amount of work to
--   scroll the cell onto the screen. This means that the cell will be
--   scrolled to the edge closest to its current position. If the cell is
--   currently visible on the screen, nothing is done.
--   
--   This function only works if the model is set, and path
--   is a valid row on the model. If the model changes before the
--   treeView is realized, the centered path will be
--   modified to reflect this change.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewScrollToCell :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> Maybe TreePath -> Maybe b -> Bool -> Float -> Float -> m ()

-- | Scrolls the tree view such that the top-left corner of the visible
--   area is treeX, treeY, where
--   treeX and treeY are specified in tree
--   coordinates. The treeView must be realized before this
--   function is called. If it isn't, you probably want to be using
--   treeViewScrollToCell.
--   
--   If either treeX or treeY are -1, then
--   that direction isn’t scrolled.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewScrollToPoint :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> Int32 -> m ()

-- | Cause the GtkTreeViewrowActivated signal to be emitted
--   on a single click instead of a double click.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets a user function for determining where a column may be dropped
--   when dragged. This function is called on every column pair in turn at
--   the beginning of a column drag to determine where a drop can take
--   place. The arguments passed to func are: the
--   treeView, the GtkTreeViewColumn being
--   dragged, the two GtkTreeViewColumns determining the drop
--   spot, and userData. If either of the
--   GtkTreeViewColumn arguments for the drop spot are
--   Nothing, then they indicate an edge. If func is
--   set to be Nothing, then treeView reverts to the
--   default behavior of allowing all columns to be dropped everywhere.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetColumnDragFunction :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Maybe TreeViewColumnDropFunc -> m ()

-- | Sets the current keyboard focus to be at path, and
--   selects it. This is useful when you want to focus the user’s attention
--   on a particular row. If focusColumn is not
--   Nothing, then focus is given to the column specified by it.
--   Additionally, if focusColumn is specified, and
--   startEditing is True, then editing should be
--   started in the specified cell. This function is often followed by
--   gtkWidgetGrabFocus (treeView) in order
--   to give keyboard focus to the widget. Please note that editing can
--   only happen when the widget is realized.
--   
--   If path is invalid for model, the
--   current cursor (if any) will be unset and the function will return
--   without failing.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetCursor :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> TreePath -> Maybe b -> Bool -> m ()

-- | Sets the current keyboard focus to be at path, and
--   selects it. This is useful when you want to focus the user’s attention
--   on a particular row. If focusColumn is not
--   Nothing, then focus is given to the column specified by it. If
--   focusColumn and focusCell are not
--   Nothing, and focusColumn contains 2 or more
--   editable or activatable cells, then focus is given to the cell
--   specified by focusCell. Additionally, if
--   focusColumn is specified, and
--   startEditing is True, then editing should be
--   started in the specified cell. This function is often followed by
--   gtkWidgetGrabFocus (treeView) in order
--   to give keyboard focus to the widget. Please note that editing can
--   only happen when the widget is realized.
--   
--   If path is invalid for model, the
--   current cursor (if any) will be unset and the function will return
--   without failing.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetCursorOnCell :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b, IsCellRenderer c) => a -> TreePath -> Maybe b -> Maybe c -> Bool -> m ()

-- | Sets the row that is highlighted for feedback. If path
--   is Nothing, an existing highlight is removed.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetDragDestRow :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Maybe TreePath -> TreeViewDropPosition -> m ()

-- | If enableSearch is set, then the user can type in text
--   to search through the tree interactively (this is sometimes called
--   "typeahead find").
--   
--   Note that even if this is False, the user can still initiate a
--   search using the “start-interactive-search” key binding.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetEnableSearch :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets whether to draw lines interconnecting the expanders in
--   treeView. This does not have any visible effects for
--   lists.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetEnableTreeLines :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets the column to draw the expander arrow at. It must be in
--   treeView. If column is Nothing,
--   then the expander arrow is always at the first visible column.
--   
--   If you do not want expander arrow to appear in your tree, set the
--   expander column to a hidden column.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetExpanderColumn :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) => a -> Maybe b -> m ()

-- | Enables or disables the fixed height mode of treeView.
--   Fixed height mode speeds up GtkTreeView by assuming that all
--   rows have the same height. Only enable this option if all rows are the
--   same height and all columns are of type
--   TreeViewColumnSizingFixed.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetFixedHeightMode :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets which grid lines to draw in treeView.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetGridLines :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreeViewGridLines -> m ()

-- | Allow the column title buttons to be clicked.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetHeadersClickable :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets the visibility state of the headers.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetHeadersVisible :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Enables or disables the hover expansion mode of
--   treeView. Hover expansion makes rows expand or
--   collapse if the pointer moves over them.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetHoverExpand :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Enables or disables the hover selection mode of
--   treeView. Hover selection makes the selected row
--   follow the pointer. Currently, this works only for the selection modes
--   SelectionModeSingle and SelectionModeBrowse.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetHoverSelection :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets the amount of extra indentation for child levels to use in
--   treeView in addition to the default indentation. The
--   value should be specified in pixels, a value of 0 disables this
--   feature and in this case only the default indentation will be used.
--   This does not have any visible effects for lists.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetLevelIndentation :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> m ()

-- | Sets the model for a GtkTreeView. If the
--   treeView already has a model set, it will remove it
--   before setting the new model. If model is
--   Nothing, then it will unset the old model.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetModel :: (HasCallStack, MonadIO m, IsTreeView a, IsTreeModel b) => a -> Maybe b -> m ()

-- | This function is a convenience function to allow you to reorder models
--   that support the GtkTreeDragSourceIface and the
--   GtkTreeDragDestIface. Both GtkTreeStore and
--   GtkListStore support these. If reorderable is
--   True, then the user can reorder the model by dragging and
--   dropping rows. The developer can listen to these changes by connecting
--   to the model’s GtkTreeModel::row-inserted and
--   GtkTreeModel::row-deleted signals. The reordering is
--   implemented by setting up the tree view as a drag source and
--   destination. Therefore, drag and drop can not be used in a reorderable
--   view for any other purpose.
--   
--   This function does not give you any degree of control over the order
--   -- any reordering is allowed. If more control is needed, you should
--   probably handle drag and drop manually.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetReorderable :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets the row separator function, which is used to determine whether a
--   row should be drawn as a separator. If the row separator function is
--   Nothing, no separators are drawn. This is the default value.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetRowSeparatorFunc :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Maybe TreeViewRowSeparatorFunc -> m ()

-- | Enables or disables rubber banding in treeView. If the
--   selection mode is SelectionModeMultiple, rubber banding will
--   allow the user to select multiple rows by dragging the mouse.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetRubberBanding :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets column as the column where the interactive search
--   code should search in for the current model.
--   
--   If the search column is set, users can use the
--   “start-interactive-search” key binding to bring up search popup. The
--   enable-search property controls whether simply typing text will also
--   start an interactive search.
--   
--   Note that column refers to a column of the current
--   model. The search column is reset to -1 when the model is changed.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetSearchColumn :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> m ()

-- | Sets the entry which the interactive search code will use for this
--   treeView. This is useful when you want to provide a
--   search entry in our interface at all time at a fixed position. Passing
--   Nothing for entry will make the interactive
--   search code use the built-in popup entry again.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetSearchEntry :: (HasCallStack, MonadIO m, IsTreeView a, IsEditable b) => a -> Maybe b -> m ()

-- | Sets the compare function for the interactive search capabilities;
--   note that somewhat like strcmp() returning 0 for
--   equality GtkTreeViewSearchEqualFunc returns False on
--   matches.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetSearchEqualFunc :: (HasCallStack, MonadIO m, IsTreeView a) => a -> TreeViewSearchEqualFunc -> m ()

-- | Sets whether to draw and enable expanders and indent child rows in
--   treeView. When disabled there will be no expanders
--   visible in trees and there will be no way to expand and collapse rows
--   by default. Also note that hiding the expanders will disable the
--   default indentation. You can set a custom indentation in this case
--   using treeViewSetLevelIndentation. This does not have any
--   visible effects for lists.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetShowExpanders :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Bool -> m ()

-- | Sets the tip area of tooltip to the area
--   path, column and cell
--   have in common. For example if path is Nothing
--   and column is set, the tip area will be set to the
--   full area covered by column. See also
--   tooltipSetTipArea.
--   
--   Note that if path is not specified and
--   cell is set and part of a column containing the
--   expander, the tooltip might not show and hide at the correct position.
--   In such cases path must be set to the current node
--   under the mouse cursor for this function to operate correctly.
--   
--   See also treeViewSetTooltipColumn for a simpler alternative.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetTooltipCell :: (HasCallStack, MonadIO m, IsTreeView a, IsTooltip b, IsTreeViewColumn c, IsCellRenderer d) => a -> b -> Maybe TreePath -> Maybe c -> Maybe d -> m ()

-- | If you only plan to have simple (text-only) tooltips on full rows, you
--   can use this function to have GtkTreeView handle these
--   automatically for you. column should be set to the
--   column in treeView’s model containing the tooltip
--   texts, or -1 to disable this feature.
--   
--   When enabled, GtkWidget:has-tooltip will be set to
--   True and treeView will connect a
--   GtkWidget::query-tooltip signal handler.
--   
--   Note that the signal handler sets the text with
--   tooltipSetMarkup, so &, <, etc have to be escaped in the
--   text.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetTooltipColumn :: (HasCallStack, MonadIO m, IsTreeView a) => a -> Int32 -> m ()

-- | Sets the tip area of tooltip to be the area covered by
--   the row at path. See also
--   treeViewSetTooltipColumn for a simpler alternative. See also
--   tooltipSetTipArea.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewSetTooltipRow :: (HasCallStack, MonadIO m, IsTreeView a, IsTooltip b) => a -> b -> TreePath -> m ()

-- | Undoes the effect of treeViewEnableModelDragDest. Calling this
--   method sets GtkTreeView:reorderable to False.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewUnsetRowsDragDest :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m ()

-- | Undoes the effect of treeViewEnableModelDragSource. Calling
--   this method sets GtkTreeView:reorderable to False.

-- | Deprecated: (Since version 4.10)Use ListView or
--   ColumnView instead
treeViewUnsetRowsDragSource :: (HasCallStack, MonadIO m, IsTreeView a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activate-on-single-click” property. This is rarely needed
--   directly, but it is used by new.
constructTreeViewActivateOnSingleClick :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get treeView #activateOnSingleClick
--   
getTreeViewActivateOnSingleClick :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #activateOnSingleClick := value ]
--   
setTreeViewActivateOnSingleClick :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-grid-lines” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewEnableGridLines :: (IsTreeView o, MonadIO m) => TreeViewGridLines -> m (GValueConstruct o)

-- | Get the value of the “enable-grid-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #enableGridLines
--   
getTreeViewEnableGridLines :: (MonadIO m, IsTreeView o) => o -> m TreeViewGridLines

-- | Set the value of the “enable-grid-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #enableGridLines := value ]
--   
setTreeViewEnableGridLines :: (MonadIO m, IsTreeView o) => o -> TreeViewGridLines -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-search” property. This is rarely needed directly, but
--   it is used by new.
constructTreeViewEnableSearch :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-search” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #enableSearch
--   
getTreeViewEnableSearch :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “enable-search” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #enableSearch := value ]
--   
setTreeViewEnableSearch :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-tree-lines” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewEnableTreeLines :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-tree-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #enableTreeLines
--   
getTreeViewEnableTreeLines :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “enable-tree-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #enableTreeLines := value ]
--   
setTreeViewEnableTreeLines :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Set the value of the “expander-column” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #expanderColumn
--   
clearTreeViewExpanderColumn :: (MonadIO m, IsTreeView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expander-column” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewExpanderColumn :: (IsTreeView o, MonadIO m, IsTreeViewColumn a) => a -> m (GValueConstruct o)

-- | Get the value of the “expander-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #expanderColumn
--   
getTreeViewExpanderColumn :: (MonadIO m, IsTreeView o) => o -> m (Maybe TreeViewColumn)

-- | Set the value of the “expander-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #expanderColumn := value ]
--   
setTreeViewExpanderColumn :: (MonadIO m, IsTreeView o, IsTreeViewColumn a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fixed-height-mode” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewFixedHeightMode :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “fixed-height-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #fixedHeightMode
--   
getTreeViewFixedHeightMode :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “fixed-height-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #fixedHeightMode := value ]
--   
setTreeViewFixedHeightMode :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “headers-clickable” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewHeadersClickable :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “headers-clickable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #headersClickable
--   
getTreeViewHeadersClickable :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “headers-clickable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #headersClickable := value ]
--   
setTreeViewHeadersClickable :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “headers-visible” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewHeadersVisible :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “headers-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #headersVisible
--   
getTreeViewHeadersVisible :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “headers-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #headersVisible := value ]
--   
setTreeViewHeadersVisible :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hover-expand” property. This is rarely needed directly, but
--   it is used by new.
constructTreeViewHoverExpand :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hover-expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #hoverExpand
--   
getTreeViewHoverExpand :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “hover-expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #hoverExpand := value ]
--   
setTreeViewHoverExpand :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hover-selection” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewHoverSelection :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hover-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #hoverSelection
--   
getTreeViewHoverSelection :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “hover-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #hoverSelection := value ]
--   
setTreeViewHoverSelection :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “level-indentation” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewLevelIndentation :: (IsTreeView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “level-indentation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #levelIndentation
--   
getTreeViewLevelIndentation :: (MonadIO m, IsTreeView o) => o -> m Int32

-- | Set the value of the “level-indentation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #levelIndentation := value ]
--   
setTreeViewLevelIndentation :: (MonadIO m, IsTreeView o) => o -> Int32 -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearTreeViewModel :: (MonadIO m, IsTreeView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructTreeViewModel :: (IsTreeView o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #model
--   
getTreeViewModel :: (MonadIO m, IsTreeView o) => o -> m (Maybe TreeModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #model := value ]
--   
setTreeViewModel :: (MonadIO m, IsTreeView o, IsTreeModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “reorderable” property. This is rarely needed directly, but
--   it is used by new.
constructTreeViewReorderable :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #reorderable
--   
getTreeViewReorderable :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #reorderable := value ]
--   
setTreeViewReorderable :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rubber-banding” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewRubberBanding :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “rubber-banding” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #rubberBanding
--   
getTreeViewRubberBanding :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “rubber-banding” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #rubberBanding := value ]
--   
setTreeViewRubberBanding :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “search-column” property. This is rarely needed directly, but
--   it is used by new.
constructTreeViewSearchColumn :: (IsTreeView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “search-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #searchColumn
--   
getTreeViewSearchColumn :: (MonadIO m, IsTreeView o) => o -> m Int32

-- | Set the value of the “search-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #searchColumn := value ]
--   
setTreeViewSearchColumn :: (MonadIO m, IsTreeView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-expanders” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewShowExpanders :: (IsTreeView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-expanders” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #showExpanders
--   
getTreeViewShowExpanders :: (MonadIO m, IsTreeView o) => o -> m Bool

-- | Set the value of the “show-expanders” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #showExpanders := value ]
--   
setTreeViewShowExpanders :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-column” property. This is rarely needed directly,
--   but it is used by new.
constructTreeViewTooltipColumn :: (IsTreeView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “tooltip-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeView #tooltipColumn
--   
getTreeViewTooltipColumn :: (MonadIO m, IsTreeView o) => o -> m Int32

-- | Set the value of the “tooltip-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeView [ #tooltipColumn := value ]
--   
setTreeViewTooltipColumn :: (MonadIO m, IsTreeView o) => o -> Int32 -> m ()

-- | The number of columns of the treeview has changed.
type TreeViewColumnsChangedCallback = IO ()

-- | Connect a signal handler for the columnsChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #columnsChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewColumnsChanged :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewColumnsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the columnsChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #columnsChanged callback
--   
onTreeViewColumnsChanged :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewColumnsChangedCallback) -> m SignalHandlerId

-- | The position of the cursor (focused cell) has changed.
type TreeViewCursorChangedCallback = IO ()

-- | Connect a signal handler for the cursorChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #cursorChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewCursorChanged :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewCursorChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cursorChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #cursorChanged callback
--   
onTreeViewCursorChanged :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewCursorChangedCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewExpandCollapseCursorRowCallback = Bool -> Bool -> Bool -> IO Bool

-- | Connect a signal handler for the expandCollapseCursorRow
--   signal, to be run after the default handler. When overloading
--   is enabled, this is equivalent to
--   
--   
--   after treeView #expandCollapseCursorRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewExpandCollapseCursorRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewExpandCollapseCursorRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the expandCollapseCursorRow
--   signal, to be run before the default handler. When overloading
--   is enabled, this is equivalent to
--   
--   
--   on treeView #expandCollapseCursorRow callback
--   
onTreeViewExpandCollapseCursorRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewExpandCollapseCursorRowCallback) -> m SignalHandlerId

-- | The GtkTreeViewmoveCursor signal is a [keybinding
--   signal]tSignalAction which gets emitted when the user presses
--   one of the cursor keys.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control the
--   cursor programmatically. In contrast to treeViewSetCursor and
--   treeViewSetCursorOnCell when moving horizontally
--   GtkTreeViewmoveCursor does not reset the current
--   selection.
type TreeViewMoveCursorCallback = MovementStep -> Int32 -> Bool -> Bool -> IO Bool

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeView #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewMoveCursor :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeView #moveCursor callback
--   
onTreeViewMoveCursor :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewMoveCursorCallback) -> m SignalHandlerId

-- | The "row-activated" signal is emitted when the method
--   treeViewRowActivated is called.
--   
--   This signal is emitted when the user double-clicks a treeview row with
--   the TreeView:activateOnSingleClick property set to
--   False, or when the user single-clicks a row when that property
--   set to True.
--   
--   This signal is also emitted when a non-editable row is selected and
--   one of the keys: <kbd>Space</kbd>,
--   <kbd>Shift</kbd>+<kbd>Space</kbd>,
--   <kbd>Return</kbd> or <kbd>Enter</kbd> is
--   pressed.
--   
--   For selection handling refer to the tree widget conceptual
--   overview as well as GtkTreeSelection.
type TreeViewRowActivatedCallback = TreePath -> Maybe TreeViewColumn -> IO ()

-- | Connect a signal handler for the rowActivated signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeView #rowActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewRowActivated :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewRowActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowActivated signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeView #rowActivated callback
--   
onTreeViewRowActivated :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewRowActivatedCallback) -> m SignalHandlerId

-- | The given row has been collapsed (child nodes are hidden).
type TreeViewRowCollapsedCallback = TreeIter -> TreePath -> IO ()

-- | Connect a signal handler for the rowCollapsed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeView #rowCollapsed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewRowCollapsed :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewRowCollapsedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowCollapsed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeView #rowCollapsed callback
--   
onTreeViewRowCollapsed :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewRowCollapsedCallback) -> m SignalHandlerId

-- | The given row has been expanded (child nodes are shown).
type TreeViewRowExpandedCallback = TreeIter -> TreePath -> IO ()

-- | Connect a signal handler for the rowExpanded signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeView #rowExpanded callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewRowExpanded :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewRowExpandedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowExpanded signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeView #rowExpanded callback
--   
onTreeViewRowExpanded :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewRowExpandedCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewSelectAllCallback = IO Bool

-- | Connect a signal handler for the selectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeView #selectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewSelectAll :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewSelectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeView #selectAll callback
--   
onTreeViewSelectAll :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewSelectAllCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewSelectCursorParentCallback = IO Bool

-- | Connect a signal handler for the selectCursorParent signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #selectCursorParent callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewSelectCursorParent :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewSelectCursorParentCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectCursorParent signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #selectCursorParent callback
--   
onTreeViewSelectCursorParent :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewSelectCursorParentCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewSelectCursorRowCallback = Bool -> IO Bool

-- | Connect a signal handler for the selectCursorRow signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #selectCursorRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewSelectCursorRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewSelectCursorRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectCursorRow signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #selectCursorRow callback
--   
onTreeViewSelectCursorRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewSelectCursorRowCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewStartInteractiveSearchCallback = IO Bool

-- | Connect a signal handler for the startInteractiveSearch signal,
--   to be run after the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   after treeView #startInteractiveSearch callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewStartInteractiveSearch :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewStartInteractiveSearchCallback) -> m SignalHandlerId

-- | Connect a signal handler for the startInteractiveSearch signal,
--   to be run before the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   on treeView #startInteractiveSearch callback
--   
onTreeViewStartInteractiveSearch :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewStartInteractiveSearchCallback) -> m SignalHandlerId

-- | The given row is about to be collapsed (hide its children nodes). Use
--   this signal if you need to control the collapsibility of individual
--   rows.
type TreeViewTestCollapseRowCallback = TreeIter -> TreePath -> IO Bool

-- | Connect a signal handler for the testCollapseRow signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #testCollapseRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewTestCollapseRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewTestCollapseRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the testCollapseRow signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #testCollapseRow callback
--   
onTreeViewTestCollapseRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewTestCollapseRowCallback) -> m SignalHandlerId

-- | The given row is about to be expanded (show its children nodes). Use
--   this signal if you need to control the expandability of individual
--   rows.
type TreeViewTestExpandRowCallback = TreeIter -> TreePath -> IO Bool

-- | Connect a signal handler for the testExpandRow signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #testExpandRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewTestExpandRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewTestExpandRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the testExpandRow signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #testExpandRow callback
--   
onTreeViewTestExpandRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewTestExpandRowCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewToggleCursorRowCallback = IO Bool

-- | Connect a signal handler for the toggleCursorRow signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeView #toggleCursorRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewToggleCursorRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewToggleCursorRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleCursorRow signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeView #toggleCursorRow callback
--   
onTreeViewToggleCursorRow :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewToggleCursorRowCallback) -> m SignalHandlerId

-- | No description available in the introspection data.
type TreeViewUnselectAllCallback = IO Bool

-- | Connect a signal handler for the unselectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeView #unselectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeViewUnselectAll :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewUnselectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unselectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeView #unselectAll callback
--   
onTreeViewUnselectAll :: (IsTreeView a, MonadIO m) => a -> ((?self :: a) => TreeViewUnselectAllCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.TreeView.TreeView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeView.TreeView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeView.TreeView
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeView.TreeView)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeView.TreeView o) => GI.Gtk.Objects.TreeView.IsTreeView o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeView.TreeView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeView.TreeView

-- | A tree-like data structure that can be used with the TreeView.
--   
--   The GtkTreeStore object is a list model for use with a
--   GtkTreeView widget. It implements the TreeModel
--   interface, and consequently, can use all of the methods available
--   there. It also implements the TreeSortable interface so it can
--   be sorted by the view. Finally, it also implements the tree
--   [drag]tTreeDragSource and [drop]tTreeDragDest
--   interfaces.
--   
--   GtkTreeStore is deprecated since GTK 4.10, and should not be
--   used in newly written code. You should use TreeListModel for a
--   tree-like model object.
--   
--   
GtkTreeStore as GtkBuildable
--   
--   The GtkTreeStore implementation of the GtkBuildable interface
--   allows to specify the model columns with a <columns>
--   element that may contain multiple <column> elements,
--   each specifying one model column. The “type” attribute specifies the
--   data type for the column.
--   
--   An example of a UI Definition fragment for a tree store:
--   
--   
xml code
--   
--   
--   <object class="GtkTreeStore">
--     <columns>
--       <column type="gchararray"/>
--       <column type="gchararray"/>
--       <column type="gint"/>
--     </columns>
--   </object>
--   
module GI.Gtk.Objects.TreeStore

-- | Memory-managed wrapper type.
newtype TreeStore
TreeStore :: ManagedPtr TreeStore -> TreeStore

-- | Type class for types which can be safely cast to TreeStore, for
--   instance with toTreeStore.
class (GObject o, IsDescendantOf TreeStore o) => IsTreeStore o

-- | Cast to TreeStore, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeStore :: (MonadIO m, IsTreeStore o) => o -> m TreeStore

-- | Appends a new row to treeStore.
--   
--   If parent is non-Nothing, then it will append
--   the new row after the last child of parent, otherwise
--   it will append a row to the top level.
--   
--   The iter parameter will be changed to point to this
--   new row. The row will be empty after this function is called. To fill
--   in values, you need to call gtk_tree_store_set() or
--   treeStoreSetValue.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreAppend :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> Maybe TreeIter -> m TreeIter

-- | Removes all rows from treeStore

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreClear :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> m ()

-- | Creates a new row at position.
--   
--   If parent is non-Nothing, then the row will be made a child of
--   parent. Otherwise, the row will be created at the
--   toplevel.
--   
--   If position is -1 or is larger than the
--   number of rows at that level, then the new row will be inserted to the
--   end of the list.
--   
--   The iter parameter will be changed to point to this
--   new row. The row will be empty after this function is called. To fill
--   in values, you need to call gtk_tree_store_set() or
--   treeStoreSetValue.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreInsert :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> Maybe TreeIter -> Int32 -> m TreeIter

-- | Inserts a new row after sibling.
--   
--   If sibling is Nothing, then the row will be
--   prepended to parent’s children.
--   
--   If parent and sibling are
--   Nothing, then the row will be prepended to the toplevel.
--   
--   If both sibling and parent are set,
--   then parent must be the parent of
--   sibling. When sibling is set,
--   parent is optional.
--   
--   The iter parameter will be changed to point to this
--   new row. The row will be empty after this function is called. To fill
--   in values, you need to call gtk_tree_store_set() or
--   treeStoreSetValue.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreInsertAfter :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> Maybe TreeIter -> Maybe TreeIter -> m TreeIter

-- | Inserts a new row before sibling.
--   
--   If sibling is Nothing, then the row will be
--   appended to parent’s children.
--   
--   If parent and sibling are
--   Nothing, then the row will be appended to the toplevel.
--   
--   If both sibling and parent are set,
--   then parent must be the parent of
--   sibling. When sibling is set,
--   parent is optional.
--   
--   The iter parameter will be changed to point to this
--   new row. The row will be empty after this function is called. To fill
--   in values, you need to call gtk_tree_store_set() or
--   treeStoreSetValue.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreInsertBefore :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> Maybe TreeIter -> Maybe TreeIter -> m TreeIter

-- | A variant of gtk_tree_store_insert_with_values() which
--   takes the columns and values as two arrays, instead of varargs.
--   
--   This function is mainly intended for language bindings.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreInsertWithValues :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> Maybe TreeIter -> Int32 -> [Int32] -> [GValue] -> m TreeIter

-- | Checks if iter is an ancestor of
--   descendant.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreIsAncestor :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> TreeIter -> m Bool

-- | Returns the depth of the position pointed by the iterator
--   
--   The depth will be 0 for anything on the root level, 1 for anything
--   down a level, etc.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreIterDepth :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> m Int32

-- | Checks if the given iter is a valid iter for this
--   GtkTreeStore.
--   
--   This function is slow. Only use it for debugging and/or testing
--   purposes.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreIterIsValid :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> m Bool

-- | Moves iter in treeStore to the
--   position after position.
--   
--   iter and position should be in the
--   same level.
--   
--   Note that this function only works with unsorted stores.
--   
--   If position is Nothing, iter
--   will be moved to the start of the level.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreMoveAfter :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> Maybe TreeIter -> m ()

-- | Moves iter in treeStore to the
--   position before position.
--   
--   iter and position should be in the
--   same level.
--   
--   Note that this function only works with unsorted stores.
--   
--   If position is Nothing, iter
--   will be moved to the end of the level.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreMoveBefore :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> Maybe TreeIter -> m ()

-- | Creates a new tree store.
--   
--   This constructor is meant for language bindings.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreNew :: (HasCallStack, MonadIO m) => [GType] -> m TreeStore

-- | Prepends a new row to treeStore.
--   
--   If parent is non-Nothing, then it will prepend
--   the new row before the first child of parent,
--   otherwise it will prepend a row to the top level. The iter
--   parameter will be changed to point to this new row. The row will be
--   empty after this function is called. To fill in values, you need to
--   call gtk_tree_store_set() or treeStoreSetValue.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStorePrepend :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> Maybe TreeIter -> m TreeIter

-- | Removes iter from treeStore.
--   
--   After being removed, iter is set to the next valid row
--   at that level, or invalidated if it previously pointed to the last
--   one.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreRemove :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> m Bool

-- | A variant of gtk_tree_store_set_valist() which takes
--   the columns and values as two arrays, instead of using variadic
--   arguments.
--   
--   This function is mainly intended for language bindings or in case the
--   number of columns to change is not known until run-time.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreSet :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> [Int32] -> [GValue] -> m ()

-- | Sets the type of the columns in a tree store.
--   
--   This function is meant primarily for types that inherit from
--   GtkTreeStore, and should only be used when constructing a new
--   GtkTreeStore.
--   
--   This functions cannot be called after a row has been added, or a
--   method on the GtkTreeModel interface is called on the tree
--   store.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreSetColumnTypes :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> [GType] -> m ()

-- | Sets the data in the cell specified by iter and
--   column.
--   
--   The type of value must be convertible to the type of
--   the column.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreSetValue :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> Int32 -> GValue -> m ()

-- | Swaps a and b in the same level of
--   treeStore.
--   
--   Note that this function only works with unsorted stores.

-- | Deprecated: (Since version 4.10)Use TreeListModel
--   instead
treeStoreSwap :: (HasCallStack, MonadIO m, IsTreeStore a) => a -> TreeIter -> TreeIter -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.TreeStore.TreeStore
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeStore.TreeStore
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeStore.TreeStore
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeStore.TreeStore)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeStore.TreeStore o) => GI.Gtk.Objects.TreeStore.IsTreeStore o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeStore.TreeStore
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeStore.TreeStore

-- | The selection object for GtkTreeView
--   
--   The GtkTreeSelection object is a helper object to manage the
--   selection for a GtkTreeView widget. The
--   GtkTreeSelection object is automatically created when a new
--   GtkTreeView widget is created, and cannot exist independently
--   of this widget. The primary reason the GtkTreeSelection
--   objects exists is for cleanliness of code and API. That is, there is
--   no conceptual reason all these functions could not be methods on the
--   GtkTreeView widget instead of a separate function.
--   
--   The GtkTreeSelection object is gotten from a
--   GtkTreeView by calling treeViewGetSelection. It can be
--   manipulated to check the selection status of the tree, as well as
--   select and deselect individual rows. Selection is done completely view
--   side. As a result, multiple views of the same model can have
--   completely different selections. Additionally, you cannot change the
--   selection of a row on the model that is not currently displayed by the
--   view without expanding its parents first.
--   
--   One of the important things to remember when monitoring the selection
--   of a view is that the GtkTreeSelectionchanged signal
--   is mostly a hint. That is, it may only emit one signal when a range of
--   rows is selected. Additionally, it may on occasion emit a
--   GtkTreeSelectionchanged signal when nothing has
--   happened (mostly as a result of programmers calling select_row on an
--   already selected row).
module GI.Gtk.Objects.TreeSelection

-- | Memory-managed wrapper type.
newtype TreeSelection
TreeSelection :: ManagedPtr TreeSelection -> TreeSelection

-- | Type class for types which can be safely cast to TreeSelection,
--   for instance with toTreeSelection.
class (GObject o, IsDescendantOf TreeSelection o) => IsTreeSelection o

-- | Cast to TreeSelection, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeSelection :: (MonadIO m, IsTreeSelection o) => o -> m TreeSelection

-- | Returns the number of rows that have been selected in
--   tree.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionCountSelectedRows :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m Int32

-- | Gets the selection mode for selection. See
--   treeSelectionSetMode.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionGetMode :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m SelectionMode

-- | Sets iter to the currently selected node if
--   selection is set to SelectionModeSingle or
--   SelectionModeBrowse. iter may be NULL if you
--   just want to test if selection has any selected nodes.
--   model is filled with the current model as a
--   convenience. This function will not work if you use
--   selection is SelectionModeMultiple.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionGetSelected :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m (Bool, TreeModel, TreeIter)

-- | Creates a list of path of all selected rows. Additionally, if you are
--   planning on modifying the model after calling this function, you may
--   want to convert the returned list into a list of
--   GtkTreeRowReferences. To do this, you can use
--   treeRowReferenceNew.
--   
--   To free the return value, use:
--   
--   
c code
--   
--   
--   g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
--   

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionGetSelectedRows :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m ([TreePath], TreeModel)

-- | Returns the tree view associated with selection.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionGetTreeView :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m TreeView

-- | Returns True if the row at iter is currently
--   selected.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionIterIsSelected :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreeIter -> m Bool

-- | Returns True if the row pointed to by path is
--   currently selected. If path does not point to a valid
--   location, False is returned

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionPathIsSelected :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreePath -> m Bool

-- | Selects all the nodes. selection must be set to
--   SelectionModeMultiple mode.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSelectAll :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m ()

-- | Selects the specified iterator.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSelectIter :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreeIter -> m ()

-- | Select the row at path.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSelectPath :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreePath -> m ()

-- | Selects a range of nodes, determined by startPath and
--   endPath inclusive. selection must be
--   set to SelectionModeMultiple mode.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSelectRange :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreePath -> TreePath -> m ()

-- | Calls a function for each selected node. Note that you cannot modify
--   the tree or selection from within this function. As a result,
--   treeSelectionGetSelectedRows might be more useful.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSelectedForeach :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreeSelectionForeachFunc -> m ()

-- | Sets the selection mode of the selection. If the
--   previous type was SelectionModeMultiple, then the anchor is
--   kept selected, if it was previously selected.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSetMode :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> SelectionMode -> m ()

-- | Sets the selection function.
--   
--   If set, this function is called before any node is selected or
--   unselected, giving some control over which nodes are selected. The
--   select function should return True if the state of the node may
--   be toggled, and False if the state of the node should be left
--   unchanged.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionSetSelectFunction :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> Maybe TreeSelectionFunc -> m ()

-- | Unselects all the nodes.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionUnselectAll :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> m ()

-- | Unselects the specified iterator.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionUnselectIter :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreeIter -> m ()

-- | Unselects the row at path.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionUnselectPath :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreePath -> m ()

-- | Unselects a range of nodes, determined by startPath
--   and endPath inclusive.

-- | Deprecated: (Since version 4.10)Use GtkListView or
--   GtkColumnView
treeSelectionUnselectRange :: (HasCallStack, MonadIO m, IsTreeSelection a) => a -> TreePath -> TreePath -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mode” property. This is rarely needed directly, but it is
--   used by new.
constructTreeSelectionMode :: (IsTreeSelection o, MonadIO m) => SelectionMode -> m (GValueConstruct o)

-- | Get the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get treeSelection #mode
--   
getTreeSelectionMode :: (MonadIO m, IsTreeSelection o) => o -> m SelectionMode

-- | Set the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set treeSelection [ #mode := value ]
--   
setTreeSelectionMode :: (MonadIO m, IsTreeSelection o) => o -> SelectionMode -> m ()

-- | Emitted whenever the selection has (possibly) changed. Please note
--   that this signal is mostly a hint. It may only be emitted once when a
--   range of rows are selected, and it may occasionally be emitted when
--   nothing has happened.
type TreeSelectionChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeSelection #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeSelectionChanged :: (IsTreeSelection a, MonadIO m) => a -> ((?self :: a) => TreeSelectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeSelection #changed callback
--   
onTreeSelectionChanged :: (IsTreeSelection a, MonadIO m) => a -> ((?self :: a) => TreeSelectionChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.TreeSelection.TreeSelection
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeSelection.TreeSelection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeSelection.TreeSelection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeSelection.TreeSelection)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeSelection.TreeSelection o) => GI.Gtk.Objects.TreeSelection.IsTreeSelection o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeSelection.TreeSelection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeSelection.TreeSelection

-- | A GtkTreeModel which makes an underlying tree model sortable
--   
--   The GtkTreeModelSort is a model which implements the
--   GtkTreeSortable interface. It does not hold any data itself,
--   but rather is created with a child model and proxies its data. It has
--   identical column types to this child model, and the changes in the
--   child are propagated. The primary purpose of this model is to provide
--   a way to sort a different model without modifying it. Note that the
--   sort function used by GtkTreeModelSort is not guaranteed to
--   be stable.
--   
--   The use of this is best demonstrated through an example. In the
--   following sample code we create two GtkTreeView widgets each
--   with a view of the same data. As the model is wrapped here by a
--   GtkTreeModelSort, the two GtkTreeViews can each sort
--   their view of the data without affecting the other. By contrast, if we
--   simply put the same model in each widget, then sorting the first would
--   sort the second.
--   
--   
Using a GtkTreeModelSort
--   
--   
c code
--   
--   
--   {
--     GtkTreeView *tree_view1;
--     GtkTreeView *tree_view2;
--     GtkTreeModel *sort_model1;
--     GtkTreeModel *sort_model2;
--     GtkTreeModel *child_model;
--   
--     // get the child model
--     child_model = get_my_model ();
--   
--     // Create the first tree
--     sort_model1 = gtk_tree_model_sort_new_with_model (child_model);
--     tree_view1 = gtk_tree_view_new_with_model (sort_model1);
--   
--     // Create the second tree
--     sort_model2 = gtk_tree_model_sort_new_with_model (child_model);
--     tree_view2 = gtk_tree_view_new_with_model (sort_model2);
--   
--     // Now we can sort the two models independently
--     gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model1),
--                                           COLUMN_1, GTK_SORT_ASCENDING);
--     gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model2),
--                                           COLUMN_1, GTK_SORT_DESCENDING);
--   }
--   
--   
--   To demonstrate how to access the underlying child model from the sort
--   model, the next example will be a callback for the
--   GtkTreeSelection GtkTreeSelection::changed signal.
--   In this callback, we get a string from COLUMN_1 of the model. We then
--   modify the string, find the same selected row on the child model, and
--   change the row there.
--   
--   
Accessing the child model of in a selection changed callback
--   
--   
c code
--   
--   
--   void
--   selection_changed (GtkTreeSelection *selection, gpointer data)
--   {
--     GtkTreeModel *sort_model = NULL;
--     GtkTreeModel *child_model;
--     GtkTreeIter sort_iter;
--     GtkTreeIter child_iter;
--     char *some_data = NULL;
--     char *modified_data;
--   
--     // Get the current selected row and the model.
--     if (! gtk_tree_selection_get_selected (selection,
--                                            &sort_model,
--                                            &sort_iter))
--       return;
--   
--     // Look up the current value on the selected row and get
--     // a new value to change it to.
--     gtk_tree_model_get (GTK_TREE_MODEL (sort_model), &sort_iter,
--                         COLUMN_1, &some_data,
--                         -1);
--   
--     modified_data = change_the_data (some_data);
--     g_free (some_data);
--   
--     // Get an iterator on the child model, instead of the sort model.
--     gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (sort_model),
--                                                     &child_iter,
--                                                     &sort_iter);
--   
--     // Get the child model and change the value of the row. In this
--     // example, the child model is a GtkListStore. It could be any other
--     // type of model, though.
--     child_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (sort_model));
--     gtk_list_store_set (GTK_LIST_STORE (child_model), &child_iter,
--                         COLUMN_1, &modified_data,
--                         -1);
--     g_free (modified_data);
--   }
--   
module GI.Gtk.Objects.TreeModelSort

-- | Memory-managed wrapper type.
newtype TreeModelSort
TreeModelSort :: ManagedPtr TreeModelSort -> TreeModelSort

-- | Type class for types which can be safely cast to TreeModelSort,
--   for instance with toTreeModelSort.
class (GObject o, IsDescendantOf TreeModelSort o) => IsTreeModelSort o

-- | Cast to TreeModelSort, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeModelSort :: (MonadIO m, IsTreeModelSort o) => o -> m TreeModelSort

-- | This function should almost never be called. It clears the
--   treeModelSort of any cached iterators that haven’t
--   been reffed with treeModelRefNode. This might be useful if the
--   child model being sorted is static (and doesn’t change often) and
--   there has been a lot of unreffed access to nodes. As a side effect of
--   this function, all unreffed iters will be invalid.

-- | Deprecated: (Since version 4.10)
treeModelSortClearCache :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> m ()

-- | Sets sortIter to point to the row in
--   treeModelSort that corresponds to the row pointed at
--   by childIter. If sortIter was not set,
--   False is returned. Note: a boolean is only returned since 2.14.

-- | Deprecated: (Since version 4.10)
treeModelSortConvertChildIterToIter :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> TreeIter -> m (Bool, TreeIter)

-- | Converts childPath to a path relative to
--   treeModelSort. That is, childPath
--   points to a path in the child model. The returned path will point to
--   the same row in the sorted model. If childPath isn’t a
--   valid path on the child model, then Nothing is returned.

-- | Deprecated: (Since version 4.10)
treeModelSortConvertChildPathToPath :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> TreePath -> m (Maybe TreePath)

-- | Sets childIter to point to the row pointed to by
--   sortedIter.

-- | Deprecated: (Since version 4.10)
treeModelSortConvertIterToChildIter :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> TreeIter -> m TreeIter

-- | Converts sortedPath to a path on the child model of
--   treeModelSort. That is, sortedPath
--   points to a location in treeModelSort. The returned
--   path will point to the same location in the model not being sorted. If
--   sortedPath does not point to a location in the child
--   model, Nothing is returned.

-- | Deprecated: (Since version 4.10)
treeModelSortConvertPathToChildPath :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> TreePath -> m (Maybe TreePath)

-- | Returns the model the GtkTreeModelSort is sorting.
treeModelSortGetModel :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> m TreeModel

-- | 
--   This function is slow. Only use it for debugging and\/or testing
--   purposes.
--   
--   
--   Checks if the given iter is a valid iter for this
--   GtkTreeModelSort.

-- | Deprecated: (Since version 4.10)
treeModelSortIterIsValid :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> TreeIter -> m Bool

-- | Creates a new GtkTreeModelSort, with
--   childModel as the child model.
treeModelSortNewWithModel :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m TreeModelSort

-- | This resets the default sort function to be in the “unsorted” state.
--   That is, it is in the same order as the child model. It will re-sort
--   the model to be in the same order as the child model only if the
--   GtkTreeModelSort is in “unsorted” state.

-- | Deprecated: (Since version 4.10)
treeModelSortResetDefaultSortFunc :: (HasCallStack, MonadIO m, IsTreeModelSort a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructTreeModelSortModel :: (IsTreeModelSort o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeModelSort #model
--   
getTreeModelSortModel :: (MonadIO m, IsTreeModelSort o) => o -> m TreeModel
instance GHC.Classes.Eq GI.Gtk.Objects.TreeModelSort.TreeModelSort
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeModelSort.TreeModelSort
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeModelSort.TreeModelSort
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeModelSort.TreeModelSort)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeModelSort.TreeModelSort o) => GI.Gtk.Objects.TreeModelSort.IsTreeModelSort o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeModelSort.TreeModelSort
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeModelSort.TreeModelSort

-- | A GtkTreeModel which hides parts of an underlying tree model
--   
--   A GtkTreeModelFilter is a tree model which wraps another tree
--   model, and can do the following things:
--   
--   
--   
- Filter specific rows, based on data from a “visible column”, a
--   column storing booleans indicating whether the row should be filtered
--   or not, or based on the return value of a “visible function”, which
--   gets a model, iter and user_data and returns a boolean indicating
--   whether the row should be filtered or not.
--   
- Modify the “appearance” of the model, using a modify function.
--   This is extremely powerful and allows for just changing some values
--   and also for creating a completely different model based on the given
--   child model.
--   
- Set a different root node, also known as a “virtual root”. You can
--   pass in a GtkTreePath indicating the root node for the filter
--   at construction time.
--   
--   
--   The basic API is similar to GtkTreeModelSort. For an example
--   on its usage, see the section on GtkTreeModelSort.
--   
--   When using GtkTreeModelFilter, it is important to realize
--   that GtkTreeModelFilter maintains an internal cache of all
--   nodes which are visible in its clients. The cache is likely to be a
--   subtree of the tree exposed by the child model.
--   GtkTreeModelFilter will not cache the entire child model when
--   unnecessary to not compromise the caching mechanism that is exposed by
--   the reference counting scheme. If the child model implements reference
--   counting, unnecessary signals may not be emitted because of reference
--   counting rule 3, see the GtkTreeModel documentation. (Note
--   that e.g. GtkTreeStore does not implement reference counting
--   and will always emit all signals, even when the receiving node is not
--   visible).
--   
--   Because of this, limitations for possible visible functions do apply.
--   In general, visible functions should only use data or properties from
--   the node for which the visibility state must be determined, its
--   siblings or its parents. Usually, having a dependency on the state of
--   any child node is not possible, unless references are taken on these
--   explicitly. When no such reference exists, no signals may be received
--   for these child nodes (see reference counting rule number 3 in the
--   GtkTreeModel section).
--   
--   Determining the visibility state of a given node based on the state of
--   its child nodes is a frequently occurring use case. Therefore,
--   GtkTreeModelFilter explicitly supports this. For example,
--   when a node does not have any children, you might not want the node to
--   be visible. As soon as the first row is added to the node’s child
--   level (or the last row removed), the node’s visibility should be
--   updated.
--   
--   This introduces a dependency from the node on its child nodes. In
--   order to accommodate this, GtkTreeModelFilter must make sure
--   the necessary signals are received from the child model. This is
--   achieved by building, for all nodes which are exposed as visible nodes
--   to GtkTreeModelFilter's clients, the child level (if any) and
--   take a reference on the first node in this level. Furthermore, for
--   every row-inserted, row-changed or row-deleted signal (also these
--   which were not handled because the node was not cached),
--   GtkTreeModelFilter will check if the visibility state of any
--   parent node has changed.
--   
--   Beware, however, that this explicit support is limited to these two
--   cases. For example, if you want a node to be visible only if two nodes
--   in a child’s child level (2 levels deeper) are visible, you are on
--   your own. In this case, either rely on GtkTreeStore to emit
--   all signals because it does not implement reference counting, or for
--   models that do implement reference counting, obtain references on
--   these child levels yourself.
module GI.Gtk.Objects.TreeModelFilter

-- | Memory-managed wrapper type.
newtype TreeModelFilter
TreeModelFilter :: ManagedPtr TreeModelFilter -> TreeModelFilter

-- | Type class for types which can be safely cast to
--   TreeModelFilter, for instance with toTreeModelFilter.
class (GObject o, IsDescendantOf TreeModelFilter o) => IsTreeModelFilter o

-- | Cast to TreeModelFilter, for types for which this is known to
--   be safe. For general casts, use castTo.
toTreeModelFilter :: (MonadIO m, IsTreeModelFilter o) => o -> m TreeModelFilter

-- | This function should almost never be called. It clears the
--   filter of any cached iterators that haven’t been
--   reffed with treeModelRefNode. This might be useful if the child
--   model being filtered is static (and doesn’t change often) and there
--   has been a lot of unreffed access to nodes. As a side effect of this
--   function, all unreffed iters will be invalid.

-- | Deprecated: (Since version 4.10)
treeModelFilterClearCache :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> m ()

-- | Sets filterIter to point to the row in
--   filter that corresponds to the row pointed at by
--   childIter. If filterIter was not set,
--   False is returned.

-- | Deprecated: (Since version 4.10)
treeModelFilterConvertChildIterToIter :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> TreeIter -> m (Bool, TreeIter)

-- | Converts childPath to a path relative to
--   filter. That is, childPath points to a
--   path in the child model. The rerturned path will point to the same row
--   in the filtered model. If childPath isn’t a valid path
--   on the child model or points to a row which is not visible in
--   filter, then Nothing is returned.

-- | Deprecated: (Since version 4.10)
treeModelFilterConvertChildPathToPath :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> TreePath -> m (Maybe TreePath)

-- | Sets childIter to point to the row pointed to by
--   filterIter.

-- | Deprecated: (Since version 4.10)
treeModelFilterConvertIterToChildIter :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> TreeIter -> m TreeIter

-- | Converts filterPath to a path on the child model of
--   filter. That is, filterPath points to
--   a location in filter. The returned path will point to
--   the same location in the model not being filtered. If
--   filterPath does not point to a location in the child
--   model, Nothing is returned.

-- | Deprecated: (Since version 4.10)
treeModelFilterConvertPathToChildPath :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> TreePath -> m (Maybe TreePath)

-- | Returns a pointer to the child model of filter.

-- | Deprecated: (Since version 4.10)
treeModelFilterGetModel :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> m TreeModel

-- | Emits row_changed for each row in the child model, which causes
--   the filter to re-evaluate whether a row is visible or not.

-- | Deprecated: (Since version 4.10)
treeModelFilterRefilter :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> m ()

-- | With the nColumns and types
--   parameters, you give an array of column types for this model (which
--   will be exposed to the parent model/view). The func,
--   data and destroy parameters are for
--   specifying the modify function. The modify function will get called
--   for each data access, the goal of the modify function is to return the
--   data which should be displayed at the location specified using the
--   parameters of the modify function.
--   
--   Note that treeModelFilterSetModifyFunc can only be called once
--   for a given filter model.

-- | Deprecated: (Since version 4.10)
treeModelFilterSetModifyFunc :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> [GType] -> TreeModelFilterModifyFunc -> m ()

-- | Sets column of the child_model to be the column where
--   filter should look for visibility information.
--   columns should be a column of type
--   G_TYPE_BOOLEAN, where True means that a row is
--   visible, and False if not.
--   
--   Note that treeModelFilterSetVisibleFunc or
--   treeModelFilterSetVisibleColumn can only be called once for a
--   given filter model.

-- | Deprecated: (Since version 4.10)
treeModelFilterSetVisibleColumn :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> Int32 -> m ()

-- | Sets the visible function used when filtering the
--   filter to be func. The function should
--   return True if the given row should be visible and False
--   otherwise.
--   
--   If the condition calculated by the function changes over time (e.g.
--   because it depends on some global parameters), you must call
--   treeModelFilterRefilter to keep the visibility information of
--   the model up-to-date.
--   
--   Note that func is called whenever a row is inserted,
--   when it may still be empty. The visible function should therefore take
--   special care of empty rows, like in the example below.
--   
--   
c code
--   
--   
--   static gboolean
--   visible_func (GtkTreeModel *model,
--                 GtkTreeIter  *iter,
--                 gpointer      data)
--   {
--     // Visible if row is non-empty and first column is “HI”
--     char *str;
--     gboolean visible = FALSE;
--   
--     gtk_tree_model_get (model, iter, 0, &str, -1);
--     if (str && strcmp (str, "HI") == 0)
--       visible = TRUE;
--     g_free (str);
--   
--     return visible;
--   }
--   
--   
--   Note that treeModelFilterSetVisibleFunc or
--   treeModelFilterSetVisibleColumn can only be called once for a
--   given filter model.

-- | Deprecated: (Since version 4.10)
treeModelFilterSetVisibleFunc :: (HasCallStack, MonadIO m, IsTreeModelFilter a) => a -> TreeModelFilterVisibleFunc -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child-model” property. This is rarely needed directly, but
--   it is used by new.
constructTreeModelFilterChildModel :: (IsTreeModelFilter o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “child-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeModelFilter #childModel
--   
getTreeModelFilterChildModel :: (MonadIO m, IsTreeModelFilter o) => o -> m (Maybe TreeModel)

-- | Construct a GValueConstruct with valid value for the
--   “virtual-root” property. This is rarely needed directly, but
--   it is used by new.
constructTreeModelFilterVirtualRoot :: (IsTreeModelFilter o, MonadIO m) => TreePath -> m (GValueConstruct o)

-- | Get the value of the “virtual-root” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeModelFilter #virtualRoot
--   
getTreeModelFilterVirtualRoot :: (MonadIO m, IsTreeModelFilter o) => o -> m (Maybe TreePath)
instance GHC.Classes.Eq GI.Gtk.Objects.TreeModelFilter.TreeModelFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeModelFilter.TreeModelFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeModelFilter.TreeModelFilter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeModelFilter.TreeModelFilter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeModelFilter.TreeModelFilter o) => GI.Gtk.Objects.TreeModelFilter.IsTreeModelFilter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeModelFilter.TreeModelFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeModelFilter.TreeModelFilter

-- | A list model that can create child models on demand.
module GI.Gtk.Objects.TreeListModel

-- | Memory-managed wrapper type.
newtype TreeListModel
TreeListModel :: ManagedPtr TreeListModel -> TreeListModel

-- | Type class for types which can be safely cast to TreeListModel,
--   for instance with toTreeListModel.
class (GObject o, IsDescendantOf TreeListModel o) => IsTreeListModel o

-- | Cast to TreeListModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeListModel :: (MonadIO m, IsTreeListModel o) => o -> m TreeListModel

-- | Gets whether the model is set to automatically expand new rows that
--   get added.
--   
--   This can be either rows added by changes to the underlying models or
--   via treeListRowSetExpanded.
treeListModelGetAutoexpand :: (HasCallStack, MonadIO m, IsTreeListModel a) => a -> m Bool

-- | Gets the row item corresponding to the child at index
--   position for self's root model.
--   
--   If position is greater than the number of children in
--   the root model, Nothing is returned.
--   
--   Do not confuse this function with treeListModelGetRow.
treeListModelGetChildRow :: (HasCallStack, MonadIO m, IsTreeListModel a) => a -> Word32 -> m (Maybe TreeListRow)

-- | Gets the root model that self was created with.
treeListModelGetModel :: (HasCallStack, MonadIO m, IsTreeListModel a) => a -> m ListModel

-- | Gets whether the model is passing through original row items.
--   
--   If this function returns False, the GListModel
--   functions for self return custom
--   GtkTreeListRow objects. You need to call
--   treeListRowGetItem on these objects to get the original item.
--   
--   If True, the values of the child models are passed through in
--   their original state. You then need to call treeListModelGetRow
--   to get the custom GtkTreeListRows.
treeListModelGetPassthrough :: (HasCallStack, MonadIO m, IsTreeListModel a) => a -> m Bool

-- | Gets the row object for the given row.
--   
--   If position is greater than the number of items in
--   self, Nothing is returned.
--   
--   The row object can be used to expand and collapse rows as well as to
--   inspect its position in the tree. See its documentation for details.
--   
--   This row object is persistent and will refer to the current item as
--   long as the row is present in self, independent of
--   other rows being added or removed.
--   
--   If self is set to not be passthrough, this function is
--   equivalent to calling g_list_model_get_item().
--   
--   Do not confuse this function with treeListModelGetChildRow.
treeListModelGetRow :: (HasCallStack, MonadIO m, IsTreeListModel a) => a -> Word32 -> m (Maybe TreeListRow)

-- | Creates a new empty GtkTreeListModel displaying
--   root with all rows collapsed.
treeListModelNew :: (HasCallStack, MonadIO m, IsListModel a) => a -> Bool -> Bool -> TreeListModelCreateModelFunc -> m TreeListModel

-- | Sets whether the model should autoexpand.
--   
--   If set to True, the model will recursively expand all rows that
--   get added to the model. This can be either rows added by changes to
--   the underlying models or via treeListRowSetExpanded.
treeListModelSetAutoexpand :: (HasCallStack, MonadIO m, IsTreeListModel a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “autoexpand” property. This is rarely needed directly, but it
--   is used by new.
constructTreeListModelAutoexpand :: (IsTreeListModel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “autoexpand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListModel #autoexpand
--   
getTreeListModelAutoexpand :: (MonadIO m, IsTreeListModel o) => o -> m Bool

-- | Set the value of the “autoexpand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeListModel [ #autoexpand := value ]
--   
setTreeListModelAutoexpand :: (MonadIO m, IsTreeListModel o) => o -> Bool -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListModel #itemType
--   
getTreeListModelItemType :: (MonadIO m, IsTreeListModel o) => o -> m GType

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListModel #model
--   
getTreeListModelModel :: (MonadIO m, IsTreeListModel o) => o -> m ListModel

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListModel #nItems
--   
getTreeListModelNItems :: (MonadIO m, IsTreeListModel o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “passthrough” property. This is rarely needed directly, but
--   it is used by new.
constructTreeListModelPassthrough :: (IsTreeListModel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “passthrough” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeListModel #passthrough
--   
getTreeListModelPassthrough :: (MonadIO m, IsTreeListModel o) => o -> m Bool
instance GHC.Classes.Eq GI.Gtk.Objects.TreeListModel.TreeListModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeListModel.TreeListModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeListModel.TreeListModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeListModel.TreeListModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeListModel.TreeListModel o) => GI.Gtk.Objects.TreeListModel.IsTreeListModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeListModel.TreeListModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeListModel.TreeListModel

-- | Provides an expander for a tree-like list.
--   
--   It is typically placed as a bottommost child into a
--   GtkListView to allow users to expand and collapse children in
--   a list with a TreeListModel. GtkTreeExpander provides
--   the common UI elements, gestures and keybindings for this purpose.
--   
--   On top of this, the "listitem.expand", "listitem.collapse" and
--   "listitem.toggle-expand" actions are provided to allow adding custom
--   UI for managing expanded state.
--   
--   It is important to mention that you want to set the
--   ListItem:focusable property to FALSE when using this widget, as
--   you want the keyboard focus to be in the treexpander, and not inside
--   the list to make use of the keybindings.
--   
--   The GtkTreeListModel must be set to not be passthrough. Then
--   it will provide TreeListRow items which can be set via
--   treeExpanderSetListRow on the expander. The expander will then
--   watch that row item automatically. treeExpanderSetChild sets
--   the widget that displays the actual row contents.
--   
--   GtkTreeExpander can be modified with properties such as
--   TreeExpander:indentForIcon, TreeExpander:indentForDepth,
--   and TreeExpander:hideExpander to achieve a different
--   appearance. This can even be done to influence individual rows, for
--   example by binding the TreeExpander:hideExpander property to
--   the item count of the model of the treelistrow, to hide the expander
--   for rows without children, even if the row is expandable.
--   
--   
Shortcuts and Gestures
--   
--   GtkTreeExpander supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>+</kbd> or <kbd>*</kbd> expands the
--   expander.
--   
- <kbd>-</kbd> or <kbd>/</kbd> collapses the
--   expander.
--   
- Left and right arrow keys, when combined with
--   <kbd>Shift</kbd> or
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>, will expand
--   or collapse, depending on the locale's text direction.
--   
- <kbd>Ctrl</kbd>+<kbd>␣</kbd> toggles the
--   expander state.
--   
--   
--   The row can also expand on drag gestures.
--   
--   
Actions
--   
--   GtkTreeExpander defines a set of built-in actions:
--   
--   
--   
- listitem.expand expands the expander if it can be
--   expanded.
--   
- listitem.collapse collapses the expander.
--   
- listitem.toggle-expand tries to expand the expander if it
--   was collapsed or collapses it if it was expanded.
--   
--   
--   
CSS nodes
--   
--   
--   treeexpander
--   ├── [indent]*
--   ├── [expander]
--   ╰── <child>
--   
--   
--   GtkTreeExpander has zero or one CSS nodes with the name
--   "expander" that should display the expander icon. The node will be
--   :checked when it is expanded. If the node is not expandable,
--   an "indent" node will be displayed instead.
--   
--   For every level of depth, another "indent" node is prepended.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkTreeExpander used the
--   AccessibleRoleGroup role.
--   
--   Since GTK 4.12, GtkTreeExpander uses the
--   AccessibleRoleButton role. Toggling it will change the
--   GTK_ACCESSIBLE_STATE_EXPANDED state.
module GI.Gtk.Objects.TreeExpander

-- | Memory-managed wrapper type.
newtype TreeExpander
TreeExpander :: ManagedPtr TreeExpander -> TreeExpander

-- | Type class for types which can be safely cast to TreeExpander,
--   for instance with toTreeExpander.
class (GObject o, IsDescendantOf TreeExpander o) => IsTreeExpander o

-- | Cast to TreeExpander, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeExpander :: (MonadIO m, IsTreeExpander o) => o -> m TreeExpander

-- | Gets the child widget displayed by self.
treeExpanderGetChild :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> m (Maybe Widget)

-- | Gets whether the TreeExpander should be hidden in a GtkTreeListRow.
--   
--   Since: 4.10
treeExpanderGetHideExpander :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> m Bool

-- | TreeExpander indents each level of depth with an additional indent.
--   
--   Since: 4.10
treeExpanderGetIndentForDepth :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> m Bool

-- | TreeExpander indents the child by the width of an expander-icon if it
--   is not expandable.
--   
--   Since: 4.6
treeExpanderGetIndentForIcon :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> m Bool

-- | Forwards the item set on the GtkTreeListRow that
--   self is managing.
--   
--   This call is essentially equivalent to calling:
--   
--   
c code
--   
--   
--   gtk_tree_list_row_get_item (gtk_tree_expander_get_list_row (@self));
--   
treeExpanderGetItem :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> m (Maybe Object)

-- | Gets the list row managed by self.
treeExpanderGetListRow :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> m (Maybe TreeListRow)

-- | Creates a new GtkTreeExpander
treeExpanderNew :: (HasCallStack, MonadIO m) => m TreeExpander

-- | Sets the content widget to display.
treeExpanderSetChild :: (HasCallStack, MonadIO m, IsTreeExpander a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the expander icon should be visible in a GtkTreeListRow.
--   
--   Since: 4.10
treeExpanderSetHideExpander :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> Bool -> m ()

-- | Sets if the TreeExpander should indent the child according to its
--   depth.
--   
--   Since: 4.10
treeExpanderSetIndentForDepth :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> Bool -> m ()

-- | Sets if the TreeExpander should indent the child by the width of an
--   expander-icon when it is not expandable.
--   
--   Since: 4.6
treeExpanderSetIndentForIcon :: (HasCallStack, MonadIO m, IsTreeExpander a) => a -> Bool -> m ()

-- | Sets the tree list row that this expander should manage.
treeExpanderSetListRow :: (HasCallStack, MonadIO m, IsTreeExpander a, IsTreeListRow b) => a -> Maybe b -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearTreeExpanderChild :: (MonadIO m, IsTreeExpander o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructTreeExpanderChild :: (IsTreeExpander o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeExpander #child
--   
getTreeExpanderChild :: (MonadIO m, IsTreeExpander o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeExpander [ #child := value ]
--   
setTreeExpanderChild :: (MonadIO m, IsTreeExpander o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hide-expander” property. This is rarely needed directly, but
--   it is used by new.
constructTreeExpanderHideExpander :: (IsTreeExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hide-expander” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeExpander #hideExpander
--   
getTreeExpanderHideExpander :: (MonadIO m, IsTreeExpander o) => o -> m Bool

-- | Set the value of the “hide-expander” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeExpander [ #hideExpander := value ]
--   
setTreeExpanderHideExpander :: (MonadIO m, IsTreeExpander o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “indent-for-depth” property. This is rarely needed directly,
--   but it is used by new.
constructTreeExpanderIndentForDepth :: (IsTreeExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “indent-for-depth” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeExpander #indentForDepth
--   
getTreeExpanderIndentForDepth :: (MonadIO m, IsTreeExpander o) => o -> m Bool

-- | Set the value of the “indent-for-depth” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeExpander [ #indentForDepth := value ]
--   
setTreeExpanderIndentForDepth :: (MonadIO m, IsTreeExpander o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “indent-for-icon” property. This is rarely needed directly,
--   but it is used by new.
constructTreeExpanderIndentForIcon :: (IsTreeExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “indent-for-icon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeExpander #indentForIcon
--   
getTreeExpanderIndentForIcon :: (MonadIO m, IsTreeExpander o) => o -> m Bool

-- | Set the value of the “indent-for-icon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeExpander [ #indentForIcon := value ]
--   
setTreeExpanderIndentForIcon :: (MonadIO m, IsTreeExpander o) => o -> Bool -> m ()

-- | Get the value of the “item” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get treeExpander #item
--   
getTreeExpanderItem :: (MonadIO m, IsTreeExpander o) => o -> m (Maybe Object)

-- | Set the value of the “list-row” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #listRow
--   
clearTreeExpanderListRow :: (MonadIO m, IsTreeExpander o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “list-row” property. This is rarely needed directly, but it
--   is used by new.
constructTreeExpanderListRow :: (IsTreeExpander o, MonadIO m, IsTreeListRow a) => a -> m (GValueConstruct o)

-- | Get the value of the “list-row” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get treeExpander #listRow
--   
getTreeExpanderListRow :: (MonadIO m, IsTreeExpander o) => o -> m (Maybe TreeListRow)

-- | Set the value of the “list-row” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set treeExpander [ #listRow := value ]
--   
setTreeExpanderListRow :: (MonadIO m, IsTreeExpander o, IsTreeListRow a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.TreeExpander.TreeExpander
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TreeExpander.TreeExpander
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TreeExpander.TreeExpander
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TreeExpander.TreeExpander)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TreeExpander.TreeExpander o) => GI.Gtk.Objects.TreeExpander.IsTreeExpander o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TreeExpander.TreeExpander
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TreeExpander.TreeExpander

-- | Represents a widget tooltip.
--   
--   Basic tooltips can be realized simply by using
--   widgetSetTooltipText or widgetSetTooltipMarkup without
--   any explicit tooltip object.
--   
--   When you need a tooltip with a little more fancy contents, like adding
--   an image, or you want the tooltip to have different contents per
--   GtkTreeView row or cell, you will have to do a little more
--   work:
--   
--   
--   
- Set the Widget:hasTooltip property to True. This
--   will make GTK monitor the widget for motion and related events which
--   are needed to determine when and where to show a tooltip.
--   
- Connect to the Widget::queryTooltip signal. This signal
--   will be emitted when a tooltip is supposed to be shown. One of the
--   arguments passed to the signal handler is a GtkTooltip
--   object. This is the object that we are about to display as a tooltip,
--   and can be manipulated in your callback using functions like
--   tooltipSetIcon. There are functions for setting the tooltip’s
--   markup, setting an image from a named icon, or even putting in a
--   custom widget.
--   
- Return True from your queryTooltip handler. This
--   causes the tooltip to be show. If you return False, it will not
--   be shown.
--   
module GI.Gtk.Objects.Tooltip

-- | Memory-managed wrapper type.
newtype Tooltip
Tooltip :: ManagedPtr Tooltip -> Tooltip

-- | Type class for types which can be safely cast to Tooltip, for
--   instance with toTooltip.
class (GObject o, IsDescendantOf Tooltip o) => IsTooltip o

-- | Cast to Tooltip, for types for which this is known to be safe.
--   For general casts, use castTo.
toTooltip :: (MonadIO m, IsTooltip o) => o -> m Tooltip

-- | Replaces the widget packed into the tooltip with
--   customWidget. customWidget does not
--   get destroyed when the tooltip goes away. By default a box with a
--   GtkImage and GtkLabel is embedded in the tooltip,
--   which can be configured using tooltipSetMarkup and
--   tooltipSetIcon.
tooltipSetCustom :: (HasCallStack, MonadIO m, IsTooltip a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the icon of the tooltip (which is in front of the text) to be
--   paintable. If paintable is
--   Nothing, the image will be hidden.
tooltipSetIcon :: (HasCallStack, MonadIO m, IsTooltip a, IsPaintable b) => a -> Maybe b -> m ()

-- | Sets the icon of the tooltip (which is in front of the text) to be the
--   icon indicated by gicon with the size indicated by
--   size. If gicon is Nothing, the
--   image will be hidden.
tooltipSetIconFromGicon :: (HasCallStack, MonadIO m, IsTooltip a, IsIcon b) => a -> Maybe b -> m ()

-- | Sets the icon of the tooltip (which is in front of the text) to be the
--   icon indicated by iconName with the size indicated by
--   size. If iconName is Nothing,
--   the image will be hidden.
tooltipSetIconFromIconName :: (HasCallStack, MonadIO m, IsTooltip a) => a -> Maybe Text -> m ()

-- | Sets the text of the tooltip to be markup.
--   
--   The string must be marked up with Pango markup. If
--   markup is Nothing, the label will be hidden.
tooltipSetMarkup :: (HasCallStack, MonadIO m, IsTooltip a) => a -> Maybe Text -> m ()

-- | Sets the text of the tooltip to be text.
--   
--   If text is Nothing, the label will be hidden.
--   See also tooltipSetMarkup.
tooltipSetText :: (HasCallStack, MonadIO m, IsTooltip a) => a -> Maybe Text -> m ()

-- | Sets the area of the widget, where the contents of this tooltip apply,
--   to be rect (in widget coordinates). This is especially
--   useful for properly setting tooltips on GtkTreeView rows and
--   cells, GtkIconViews, etc.
--   
--   For setting tooltips on GtkTreeView, please refer to the
--   convenience functions for this: treeViewSetTooltipRow and
--   treeViewSetTooltipCell.
tooltipSetTipArea :: (HasCallStack, MonadIO m, IsTooltip a) => a -> Rectangle -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Tooltip.Tooltip
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Tooltip.Tooltip
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Tooltip.Tooltip
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Tooltip.Tooltip)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Tooltip.Tooltip o) => GI.Gtk.Objects.Tooltip.IsTooltip o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Tooltip.Tooltip
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Tooltip.Tooltip

-- | Shows a button which remains “pressed-in” when clicked.
--   
--   <picture> <source srcset="toggle-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="Example
--   GtkToggleButtons" src="toggle-button.png"> </picture>
--   
--   Clicking again will cause the toggle button to return to its normal
--   state.
--   
--   A toggle button is created by calling either toggleButtonNew or
--   toggleButtonNewWithLabel. If using the former, it is advisable
--   to pack a widget, (such as a GtkLabel and/or a
--   GtkImage), into the toggle button’s container. (See
--   Button for more information).
--   
--   The state of a GtkToggleButton can be set specifically using
--   toggleButtonSetActive, and retrieved using
--   toggleButtonGetActive.
--   
--   
Grouping
--   
--   Toggle buttons can be grouped together, to form mutually exclusive
--   groups - only one of the buttons can be toggled at a time, and
--   toggling another one will switch the currently toggled one off.
--   
--   To add a GtkToggleButton to a group, use
--   toggleButtonSetGroup.
--   
--   
CSS nodes
--   
--   GtkToggleButton has a single CSS node with name button. To
--   differentiate it from a plain GtkButton, it gets the
--   .toggle style class.
--   
--   
Accessibility
--   
--   GtkToggleButton uses the AccessibleRoleToggleButton
--   role.
--   
--   
Creating two GtkToggleButton widgets.
--   
--   
c code
--   
--   
--   static void
--   output_state (GtkToggleButton *source,
--                 gpointer         user_data)
--   {
--     g_print ("Toggle button "%s" is active: %s",
--              gtk_button_get_label (GTK_BUTTON (source)),
--              gtk_toggle_button_get_active (source) ? "Yes" : "No");
--   }
--   
--   static void
--   make_toggles (void)
--   {
--     GtkWidget *window, *toggle1, *toggle2;
--     GtkWidget *box;
--     const char *text;
--   
--     window = gtk_window_new ();
--     box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
--   
--     text = "Hi, I’m toggle button one";
--     toggle1 = gtk_toggle_button_new_with_label (text);
--   
--     g_signal_connect (toggle1, "toggled",
--                       G_CALLBACK (output_state),
--                       NULL);
--     gtk_box_append (GTK_BOX (box), toggle1);
--   
--     text = "Hi, I’m toggle button two";
--     toggle2 = gtk_toggle_button_new_with_label (text);
--     g_signal_connect (toggle2, "toggled",
--                       G_CALLBACK (output_state),
--                       NULL);
--     gtk_box_append (GTK_BOX (box), toggle2);
--   
--     gtk_window_set_child (GTK_WINDOW (window), box);
--     gtk_window_present (GTK_WINDOW (window));
--   }
--   
module GI.Gtk.Objects.ToggleButton

-- | Memory-managed wrapper type.
newtype ToggleButton
ToggleButton :: ManagedPtr ToggleButton -> ToggleButton

-- | Type class for types which can be safely cast to ToggleButton,
--   for instance with toToggleButton.
class (GObject o, IsDescendantOf ToggleButton o) => IsToggleButton o

-- | Cast to ToggleButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toToggleButton :: (MonadIO m, IsToggleButton o) => o -> m ToggleButton

-- | Queries a GtkToggleButton and returns its current state.
--   
--   Returns True if the toggle button is pressed in and
--   False if it is raised.
toggleButtonGetActive :: (HasCallStack, MonadIO m, IsToggleButton a) => a -> m Bool

-- | Creates a new toggle button.
--   
--   A widget should be packed into the button, as in buttonNew.
toggleButtonNew :: (HasCallStack, MonadIO m) => m ToggleButton

-- | Creates a new toggle button with a text label.
toggleButtonNewWithLabel :: (HasCallStack, MonadIO m) => Text -> m ToggleButton

-- | Creates a new GtkToggleButton containing a label.
--   
--   The label will be created using labelNewWithMnemonic, so
--   underscores in label indicate the mnemonic for the
--   button.
toggleButtonNewWithMnemonic :: (HasCallStack, MonadIO m) => Text -> m ToggleButton

-- | Sets the status of the toggle button.
--   
--   Set to True if you want the GtkToggleButton to be
--   “pressed in”, and False to raise it.
--   
--   If the status of the button changes, this action causes the
--   ToggleButton::toggled signal to be emitted.
toggleButtonSetActive :: (HasCallStack, MonadIO m, IsToggleButton a) => a -> Bool -> m ()

-- | Adds self to the group of group.
--   
--   In a group of multiple toggle buttons, only one button can be active
--   at a time.
--   
--   Setting up groups in a cycle leads to undefined behavior.
--   
--   Note that the same effect can be achieved via the Actionable
--   API, by using the same action with parameter type and state type 's'
--   for all buttons in the group, and giving each button its own target
--   value.
toggleButtonSetGroup :: (HasCallStack, MonadIO m, IsToggleButton a, IsToggleButton b) => a -> Maybe b -> m ()

-- | Emits the toggled signal on the GtkToggleButton.

-- | Deprecated: (Since version 4.10)There is no good reason for an
--   application ever to call this function.
toggleButtonToggled :: (HasCallStack, MonadIO m, IsToggleButton a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructToggleButtonActive :: (IsToggleButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get toggleButton #active
--   
getToggleButtonActive :: (MonadIO m, IsToggleButton o) => o -> m Bool

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set toggleButton [ #active := value ]
--   
setToggleButtonActive :: (MonadIO m, IsToggleButton o) => o -> Bool -> m ()

-- | Set the value of the “group” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #group
--   
clearToggleButtonGroup :: (MonadIO m, IsToggleButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “group” property. This is rarely needed directly, but it is
--   used by new.
constructToggleButtonGroup :: (IsToggleButton o, MonadIO m, IsToggleButton a) => a -> m (GValueConstruct o)

-- | Set the value of the “group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set toggleButton [ #group := value ]
--   
setToggleButtonGroup :: (MonadIO m, IsToggleButton o, IsToggleButton a) => o -> a -> m ()

-- | Emitted whenever the GtkToggleButton's state is changed.
type ToggleButtonToggledCallback = IO ()

-- | Connect a signal handler for the toggled signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after toggleButton #toggled callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterToggleButtonToggled :: (IsToggleButton a, MonadIO m) => a -> ((?self :: a) => ToggleButtonToggledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggled signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on toggleButton #toggled callback
--   
onToggleButtonToggled :: (IsToggleButton a, MonadIO m) => a -> ((?self :: a) => ToggleButtonToggledCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ToggleButton.ToggleButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ToggleButton.ToggleButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ToggleButton.ToggleButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ToggleButton.ToggleButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ToggleButton.ToggleButton o) => GI.Gtk.Objects.ToggleButton.IsToggleButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ToggleButton.ToggleButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ToggleButton.ToggleButton

-- | Displays the contents of a TextBuffer.
--   
--   <picture> <source srcset="multiline-text-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkTextView" src="multiline-text.png"> </picture>
--   
--   You may wish to begin by reading the conceptual overview, which
--   gives an overview of all the objects and data types related to the
--   text widget and how they work together.
--   
--   
Shortcuts and Gestures
--   
--   GtkTextView supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Shift</kbd>+<kbd>F10</kbd> or
--   <kbd>Menu</kbd> opens the context menu.
--   
- <kbd>Ctrl</kbd>+<kbd>Z</kbd> undoes the
--   last modification.
--   
- <kbd>Ctrl</kbd>+<kbd>Y</kbd> or
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Z</kbd>
--   redoes the last undone modification.
--   
- <kbd>Clear</kbd> clears the content.
--   
--   
--   Additionally, the following signals have default keybindings:
--   
--   
--   
- TextView::backspace
--   
- TextView::copyClipboard
--   
- TextView::cutClipboard
--   
- TextView::deleteFromCursor
--   
- TextView::insertEmoji
--   
- TextView::moveCursor
--   
- TextView::pasteClipboard
--   
- TextView::selectAll
--   
- TextView::toggleCursorVisible
--   
- TextView::toggleOverwrite
--   
--   
--   
Actions
--   
--   GtkTextView defines a set of built-in actions:
--   
--   
--   
- clipboard.copy copies the contents to the clipboard.
--   
- clipboard.cut copies the contents to the clipboard and
--   deletes it from the widget.
--   
- clipboard.paste inserts the contents of the clipboard
--   into the widget.
--   
- menu.popup opens the context menu.
--   
- misc.insert-emoji opens the Emoji chooser.
--   
- selection.delete deletes the current selection.
--   
- selection.select-all selects all of the widgets
--   content.
--   
- text.redo redoes the last change to the contents.
--   
- text.undo undoes the last change to the contents.
--   
- text.clear clears the content.
--   
--   
--   
CSS nodes
--   
--   
--   textview.view
--   ├── border.top
--   ├── border.left
--   ├── text
--   │   ╰── [selection]
--   ├── border.right
--   ├── border.bottom
--   ╰── [window.popup]
--   
--   
--   GtkTextView has a main css node with name textview and style
--   class .view, and subnodes for each of the border windows, and the main
--   text area, with names border and text, respectively. The border nodes
--   each get one of the style classes .left, .right, .top or .bottom.
--   
--   A node representing the selection will appear below the text node.
--   
--   If a context menu is opened, the window node will appear as a subnode
--   of the main node.
--   
--   
Accessibility
--   
--   GtkTextView uses the AccessibleRoleTextBox role.
module GI.Gtk.Objects.TextView

-- | Memory-managed wrapper type.
newtype TextView
TextView :: ManagedPtr TextView -> TextView

-- | Type class for types which can be safely cast to TextView, for
--   instance with toTextView.
class (GObject o, IsDescendantOf TextView o) => IsTextView o

-- | Cast to TextView, for types for which this is known to be safe.
--   For general casts, use castTo.
toTextView :: (MonadIO m, IsTextView o) => o -> m TextView

-- | Adds a child widget in the text buffer, at the given
--   anchor.
textViewAddChildAtAnchor :: (HasCallStack, MonadIO m, IsTextView a, IsWidget b, IsTextChildAnchor c) => a -> b -> c -> m ()

-- | Adds child at a fixed coordinate in the
--   GtkTextView's text window.
--   
--   The xpos and ypos must be in buffer
--   coordinates (see textViewGetIterLocation to convert to buffer
--   coordinates).
--   
--   child will scroll with the text view.
--   
--   If instead you want a widget that will not move with the
--   GtkTextView contents see GtkOverlay.
textViewAddOverlay :: (HasCallStack, MonadIO m, IsTextView a, IsWidget b) => a -> b -> Int32 -> Int32 -> m ()

-- | Moves the given iter backward by one display (wrapped)
--   line.
--   
--   A display line is different from a paragraph. Paragraphs are separated
--   by newlines or other paragraph separator characters. Display lines are
--   created by line-wrapping a paragraph. If wrapping is turned off,
--   display lines and paragraphs will be the same. Display lines are
--   divided differently for each view, since they depend on the view’s
--   width; paragraphs are the same in all views, since they depend on the
--   contents of the GtkTextBuffer.
textViewBackwardDisplayLine :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m Bool

-- | Moves the given iter backward to the next display line
--   start.
--   
--   A display line is different from a paragraph. Paragraphs are separated
--   by newlines or other paragraph separator characters. Display lines are
--   created by line-wrapping a paragraph. If wrapping is turned off,
--   display lines and paragraphs will be the same. Display lines are
--   divided differently for each view, since they depend on the view’s
--   width; paragraphs are the same in all views, since they depend on the
--   contents of the GtkTextBuffer.
textViewBackwardDisplayLineStart :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m Bool

-- | Converts buffer coordinates to window coordinates.
textViewBufferToWindowCoords :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextWindowType -> Int32 -> Int32 -> m (Int32, Int32)

-- | Moves the given iter forward by one display (wrapped)
--   line.
--   
--   A display line is different from a paragraph. Paragraphs are separated
--   by newlines or other paragraph separator characters. Display lines are
--   created by line-wrapping a paragraph. If wrapping is turned off,
--   display lines and paragraphs will be the same. Display lines are
--   divided differently for each view, since they depend on the view’s
--   width; paragraphs are the same in all views, since they depend on the
--   contents of the GtkTextBuffer.
textViewForwardDisplayLine :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m Bool

-- | Moves the given iter forward to the next display line
--   end.
--   
--   A display line is different from a paragraph. Paragraphs are separated
--   by newlines or other paragraph separator characters. Display lines are
--   created by line-wrapping a paragraph. If wrapping is turned off,
--   display lines and paragraphs will be the same. Display lines are
--   divided differently for each view, since they depend on the view’s
--   width; paragraphs are the same in all views, since they depend on the
--   contents of the GtkTextBuffer.
textViewForwardDisplayLineEnd :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m Bool

-- | Returns whether pressing the <kbd>Tab</kbd> key inserts a
--   tab characters.
--   
--   See textViewSetAcceptsTab.
textViewGetAcceptsTab :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Bool

-- | Gets the bottom margin for text in the textView.
textViewGetBottomMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Returns the GtkTextBuffer being displayed by this text view.
--   
--   The reference count on the buffer is not incremented; the caller of
--   this function won’t own a new reference.
textViewGetBuffer :: (HasCallStack, MonadIO m, IsTextView a) => a -> m TextBuffer

-- | Determine the positions of the strong and weak cursors if the
--   insertion point is at iter.
--   
--   The position of each cursor is stored as a zero-width rectangle. The
--   strong cursor location is the location where characters of the
--   directionality equal to the base direction of the paragraph are
--   inserted. The weak cursor location is the location where characters of
--   the directionality opposite to the base direction of the paragraph are
--   inserted.
--   
--   If iter is Nothing, the actual cursor position
--   is used.
--   
--   Note that if iter happens to be the actual cursor
--   position, and there is currently an IM preedit sequence being entered,
--   the returned locations will be adjusted to account for the preedit
--   cursor’s offset within the preedit sequence.
--   
--   The rectangle position is in buffer coordinates; use
--   textViewBufferToWindowCoords to convert these coordinates to
--   coordinates for one of the windows in the text view.
textViewGetCursorLocations :: (HasCallStack, MonadIO m, IsTextView a) => a -> Maybe TextIter -> m (Rectangle, Rectangle)

-- | Find out whether the cursor should be displayed.
textViewGetCursorVisible :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Bool

-- | Returns the default editability of the GtkTextView.
--   
--   Tags in the buffer may override this setting for some ranges of text.
textViewGetEditable :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Bool

-- | Gets the menu model that gets added to the context menu or
--   Nothing if none has been set.
textViewGetExtraMenu :: (HasCallStack, MonadIO m, IsTextView a) => a -> m (Maybe MenuModel)

-- | Gets a GtkWidget that has previously been set as gutter.
--   
--   See textViewSetGutter.
--   
--   win must be one of TextWindowTypeLeft,
--   TextWindowTypeRight, TextWindowTypeTop, or
--   TextWindowTypeBottom.
textViewGetGutter :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextWindowType -> m (Maybe Widget)

-- | Gets the default indentation of paragraphs in
--   textView.
--   
--   Tags in the view’s buffer may override the default. The indentation
--   may be negative.
textViewGetIndent :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the input-hints of the GtkTextView.
textViewGetInputHints :: (HasCallStack, MonadIO m, IsTextView a) => a -> m [InputHints]

-- | Gets the input-purpose of the GtkTextView.
textViewGetInputPurpose :: (HasCallStack, MonadIO m, IsTextView a) => a -> m InputPurpose

-- | Retrieves the iterator at buffer coordinates x and
--   y.
--   
--   Buffer coordinates are coordinates for the entire buffer, not just the
--   currently-displayed portion. If you have coordinates from an event,
--   you have to convert those to buffer coordinates with
--   textViewWindowToBufferCoords.
textViewGetIterAtLocation :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> Int32 -> m (Bool, TextIter)

-- | Retrieves the iterator pointing to the character at buffer coordinates
--   x and y.
--   
--   Buffer coordinates are coordinates for the entire buffer, not just the
--   currently-displayed portion. If you have coordinates from an event,
--   you have to convert those to buffer coordinates with
--   textViewWindowToBufferCoords.
--   
--   Note that this is different from textViewGetIterAtLocation,
--   which returns cursor locations, i.e. positions between characters.
textViewGetIterAtPosition :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> Int32 -> m (Bool, TextIter, Int32)

-- | Gets a rectangle which roughly contains the character at
--   iter.
--   
--   The rectangle position is in buffer coordinates; use
--   textViewBufferToWindowCoords to convert these coordinates to
--   coordinates for one of the windows in the text view.
textViewGetIterLocation :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m Rectangle

-- | Gets the default justification of paragraphs in
--   textView.
--   
--   Tags in the buffer may override the default.
textViewGetJustification :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Justification

-- | Gets the default left margin size of paragraphs in the
--   textView.
--   
--   Tags in the buffer may override the default.
textViewGetLeftMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the GtkTextIter at the start of the line containing the
--   coordinate y.
--   
--   y is in buffer coordinates, convert from window
--   coordinates with textViewWindowToBufferCoords. If
--   non-Nothing, lineTop will be filled with the
--   coordinate of the top edge of the line.
textViewGetLineAtY :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m (TextIter, Int32)

-- | Gets the y coordinate of the top of the line containing
--   iter, and the height of the line.
--   
--   The coordinate is a buffer coordinate; convert to window coordinates
--   with textViewBufferToWindowCoords.
textViewGetLineYrange :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m (Int32, Int32)

-- | Gets the PangoContext that is used for rendering LTR directed
--   text layouts.
--   
--   The context may be replaced when CSS changes occur.
--   
--   Since: 4.4
textViewGetLtrContext :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Context

-- | Gets whether the GtkTextView uses monospace styling.
textViewGetMonospace :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Bool

-- | Returns whether the GtkTextView is in overwrite mode or not.
textViewGetOverwrite :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Bool

-- | Gets the default number of pixels to put above paragraphs.
--   
--   Adding this function with textViewGetPixelsBelowLines is equal
--   to the line space between each paragraph.
textViewGetPixelsAboveLines :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the default number of pixels to put below paragraphs.
--   
--   The line space is the sum of the value returned by this function and
--   the value returned by textViewGetPixelsAboveLines.
textViewGetPixelsBelowLines :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the default number of pixels to put between wrapped lines inside
--   a paragraph.
textViewGetPixelsInsideWrap :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the default right margin for text in textView.
--   
--   Tags in the buffer may override the default.
textViewGetRightMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the PangoContext that is used for rendering RTL directed
--   text layouts.
--   
--   The context may be replaced when CSS changes occur.
--   
--   Since: 4.4
textViewGetRtlContext :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Context

-- | Gets the default tabs for textView.
--   
--   Tags in the buffer may override the defaults. The returned array will
--   be Nothing if “standard” (8-space) tabs are used. Free the
--   return value with tabArrayFree.
textViewGetTabs :: (HasCallStack, MonadIO m, IsTextView a) => a -> m (Maybe TabArray)

-- | Gets the top margin for text in the textView.
textViewGetTopMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Int32

-- | Gets the X,Y offset in buffer coordinates of the top-left corner of
--   the textview's text contents.
--   
--   This allows for more-precise positioning than what is provided by
--   textViewGetVisibleRect as you can discover what device pixel is
--   being quantized for text positioning.
--   
--   You might want this when making ulterior widgets align with quantized
--   device pixels of the textview contents such as line numbers.
--   
--   Since: 4.18
textViewGetVisibleOffset :: (HasCallStack, MonadIO m, IsTextView a) => a -> m (Double, Double)

-- | Fills visibleRect with the currently-visible region of
--   the buffer, in buffer coordinates.
--   
--   Convert to window coordinates with
--   textViewBufferToWindowCoords.
textViewGetVisibleRect :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Rectangle

-- | Gets the line wrapping for the view.
textViewGetWrapMode :: (HasCallStack, MonadIO m, IsTextView a) => a -> m WrapMode

-- | Allow the GtkTextView input method to internally handle key
--   press and release events.
--   
--   If this function returns True, then no further processing
--   should be done for this key event. See iMContextFilterKeypress.
--   
--   Note that you are expected to call this function from your handler
--   when overriding key event handling. This is needed in the case when
--   you need to insert your own key handling between the input method and
--   the default key event handling of the GtkTextView.
--   
--   
c code
--   
--   
--   static gboolean
--   gtk_foo_bar_key_press_event (GtkWidget *widget,
--                                GdkEvent  *event)
--   {
--     guint keyval;
--   
--     gdk_event_get_keyval ((GdkEvent*)event, &keyval);
--   
--     if (keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter)
--       {
--         if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (widget), event))
--           return TRUE;
--       }
--   
--     // Do some stuff
--   
--     return GTK_WIDGET_CLASS (gtk_foo_bar_parent_class)->key_press_event (widget, event);
--   }
--   
textViewImContextFilterKeypress :: (HasCallStack, MonadIO m, IsTextView a, IsEvent b) => a -> b -> m Bool

-- | Moves a mark within the buffer so that it's located within the
--   currently-visible text area.
textViewMoveMarkOnscreen :: (HasCallStack, MonadIO m, IsTextView a, IsTextMark b) => a -> b -> m Bool

-- | Updates the position of a child.
--   
--   See textViewAddOverlay.
textViewMoveOverlay :: (HasCallStack, MonadIO m, IsTextView a, IsWidget b) => a -> b -> Int32 -> Int32 -> m ()

-- | Move the iterator a given number of characters visually, treating it
--   as the strong cursor position.
--   
--   If count is positive, then the new strong cursor
--   position will be count positions to the right of the
--   old cursor position. If count is negative then the new
--   strong cursor position will be count positions to the
--   left of the old cursor position.
--   
--   In the presence of bi-directional text, the correspondence between
--   logical and visual order will depend on the direction of the current
--   run, and there may be jumps when the cursor is moved off of the end of
--   a run.
textViewMoveVisually :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> Int32 -> m Bool

-- | Creates a new GtkTextView.
--   
--   If you don’t call textViewSetBuffer before using the text view,
--   an empty default buffer will be created for you. Get the buffer with
--   textViewGetBuffer. If you want to specify your own buffer,
--   consider textViewNewWithBuffer.
textViewNew :: (HasCallStack, MonadIO m) => m TextView

-- | Creates a new GtkTextView widget displaying the buffer
--   buffer.
--   
--   One buffer can be shared among many widgets. buffer
--   may be Nothing to create a default buffer, in which case this
--   function is equivalent to textViewNew. The text view adds its
--   own reference count to the buffer; it does not take over an existing
--   reference.
textViewNewWithBuffer :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m TextView

-- | Moves the cursor to the currently visible region of the buffer.
textViewPlaceCursorOnscreen :: (HasCallStack, MonadIO m, IsTextView a) => a -> m Bool

-- | Removes a child widget from textView.
textViewRemove :: (HasCallStack, MonadIO m, IsTextView a, IsWidget b) => a -> b -> m ()

-- | Ensures that the cursor is shown.
--   
--   This also resets the time that it will stay blinking (or visible, in
--   case blinking is disabled).
--   
--   This function should be called in response to user input (e.g. from
--   derived classes that override the textview's event handlers).
textViewResetCursorBlink :: (HasCallStack, MonadIO m, IsTextView a) => a -> m ()

-- | Reset the input method context of the text view if needed.
--   
--   This can be necessary in the case where modifying the buffer would
--   confuse on-going input method behavior.
textViewResetImContext :: (HasCallStack, MonadIO m, IsTextView a) => a -> m ()

-- | Scrolls textView the minimum distance such that
--   mark is contained within the visible area of the
--   widget.
textViewScrollMarkOnscreen :: (HasCallStack, MonadIO m, IsTextView a, IsTextMark b) => a -> b -> m ()

-- | Scrolls textView so that iter is on
--   the screen in the position indicated by xalign and
--   yalign.
--   
--   An alignment of 0.0 indicates left or top, 1.0 indicates right or
--   bottom, 0.5 means center. If useAlign is False,
--   the text scrolls the minimal distance to get the mark onscreen,
--   possibly not scrolling at all. The effective screen for purposes of
--   this function is reduced by a margin of size
--   withinMargin.
--   
--   Note that this function uses the currently-computed height of the
--   lines in the text buffer. Line heights are computed in an idle
--   handler; so this function may not have the desired effect if it’s
--   called before the height computations. To avoid oddness, consider
--   using textViewScrollToMark which saves a point to be scrolled
--   to after line validation.
textViewScrollToIter :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> Double -> Bool -> Double -> Double -> m Bool

-- | Scrolls textView so that mark is on
--   the screen in the position indicated by xalign and
--   yalign.
--   
--   An alignment of 0.0 indicates left or top, 1.0 indicates right or
--   bottom, 0.5 means center. If useAlign is False,
--   the text scrolls the minimal distance to get the mark onscreen,
--   possibly not scrolling at all. The effective screen for purposes of
--   this function is reduced by a margin of size
--   withinMargin.
textViewScrollToMark :: (HasCallStack, MonadIO m, IsTextView a, IsTextMark b) => a -> b -> Double -> Bool -> Double -> Double -> m ()

-- | Sets the behavior of the text widget when the
--   <kbd>Tab</kbd> key is pressed.
--   
--   If acceptsTab is True, a tab character is
--   inserted. If acceptsTab is False the keyboard
--   focus is moved to the next widget in the focus chain.
--   
--   Focus can always be moved using
--   <kbd>Ctrl</kbd>+<kbd>Tab</kbd>.
textViewSetAcceptsTab :: (HasCallStack, MonadIO m, IsTextView a) => a -> Bool -> m ()

-- | Sets the bottom margin for text in textView.
--   
--   Note that this function is confusingly named. In CSS terms, the value
--   set here is padding.
textViewSetBottomMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets buffer as the buffer being displayed by
--   textView.
--   
--   The previous buffer displayed by the text view is unreferenced, and a
--   reference is added to buffer. If you owned a reference
--   to buffer before passing it to this function, you must
--   remove that reference yourself; GtkTextView will not “adopt”
--   it.
textViewSetBuffer :: (HasCallStack, MonadIO m, IsTextView a, IsTextBuffer b) => a -> Maybe b -> m ()

-- | Toggles whether the insertion point should be displayed.
--   
--   A buffer with no editable text probably shouldn’t have a visible
--   cursor, so you may want to turn the cursor off.
--   
--   Note that this property may be overridden by the
--   Settings:gtkKeynavUseCaret setting.
textViewSetCursorVisible :: (HasCallStack, MonadIO m, IsTextView a) => a -> Bool -> m ()

-- | Sets the default editability of the GtkTextView.
--   
--   You can override this default setting with tags in the buffer, using
--   the “editable” attribute of tags.
textViewSetEditable :: (HasCallStack, MonadIO m, IsTextView a) => a -> Bool -> m ()

-- | Sets a menu model to add when constructing the context menu for
--   textView.
--   
--   You can pass Nothing to remove a previously set extra menu.
textViewSetExtraMenu :: (HasCallStack, MonadIO m, IsTextView a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Places widget into the gutter specified by
--   win.
--   
--   win must be one of TextWindowTypeLeft,
--   TextWindowTypeRight, TextWindowTypeTop, or
--   TextWindowTypeBottom.
textViewSetGutter :: (HasCallStack, MonadIO m, IsTextView a, IsWidget b) => a -> TextWindowType -> Maybe b -> m ()

-- | Sets the default indentation for paragraphs in
--   textView.
--   
--   Tags in the buffer may override the default.
textViewSetIndent :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets the input-hints of the GtkTextView.
--   
--   The input-hints allow input methods to fine-tune their
--   behaviour.
textViewSetInputHints :: (HasCallStack, MonadIO m, IsTextView a) => a -> [InputHints] -> m ()

-- | Sets the input-purpose of the GtkTextView.
--   
--   The input-purpose can be used by on-screen keyboards and
--   other input methods to adjust their behaviour.
textViewSetInputPurpose :: (HasCallStack, MonadIO m, IsTextView a) => a -> InputPurpose -> m ()

-- | Sets the default justification of text in textView.
--   
--   Tags in the view’s buffer may override the default.
textViewSetJustification :: (HasCallStack, MonadIO m, IsTextView a) => a -> Justification -> m ()

-- | Sets the default left margin for text in textView.
--   
--   Tags in the buffer may override the default.
--   
--   Note that this function is confusingly named. In CSS terms, the value
--   set here is padding.
textViewSetLeftMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets whether the GtkTextView should display text in monospace
--   styling.
textViewSetMonospace :: (HasCallStack, MonadIO m, IsTextView a) => a -> Bool -> m ()

-- | Changes the GtkTextView overwrite mode.
textViewSetOverwrite :: (HasCallStack, MonadIO m, IsTextView a) => a -> Bool -> m ()

-- | Sets the default number of blank pixels above paragraphs in
--   textView.
--   
--   Tags in the buffer for textView may override the
--   defaults.
textViewSetPixelsAboveLines :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets the default number of pixels of blank space to put below
--   paragraphs in textView.
--   
--   May be overridden by tags applied to textView’s
--   buffer.
textViewSetPixelsBelowLines :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets the default number of pixels of blank space to leave between
--   display/wrapped lines within a paragraph.
--   
--   May be overridden by tags in textView’s buffer.
textViewSetPixelsInsideWrap :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets the default right margin for text in the text view.
--   
--   Tags in the buffer may override the default.
--   
--   Note that this function is confusingly named. In CSS terms, the value
--   set here is padding.
textViewSetRightMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets the default tab stops for paragraphs in textView.
--   
--   Tags in the buffer may override the default.
textViewSetTabs :: (HasCallStack, MonadIO m, IsTextView a) => a -> TabArray -> m ()

-- | Sets the top margin for text in textView.
--   
--   Note that this function is confusingly named. In CSS terms, the value
--   set here is padding.
textViewSetTopMargin :: (HasCallStack, MonadIO m, IsTextView a) => a -> Int32 -> m ()

-- | Sets the line wrapping for the view.
textViewSetWrapMode :: (HasCallStack, MonadIO m, IsTextView a) => a -> WrapMode -> m ()

-- | Determines whether iter is at the start of a display
--   line.
--   
--   See textViewForwardDisplayLine for an explanation of display
--   lines vs. paragraphs.
textViewStartsDisplayLine :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextIter -> m Bool

-- | Converts coordinates on the window identified by win
--   to buffer coordinates.
textViewWindowToBufferCoords :: (HasCallStack, MonadIO m, IsTextView a) => a -> TextWindowType -> Int32 -> Int32 -> m (Int32, Int32)

-- | Construct a GValueConstruct with valid value for the
--   “accepts-tab” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewAcceptsTab :: (IsTextView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “accepts-tab” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #acceptsTab
--   
getTextViewAcceptsTab :: (MonadIO m, IsTextView o) => o -> m Bool

-- | Set the value of the “accepts-tab” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #acceptsTab := value ]
--   
setTextViewAcceptsTab :: (MonadIO m, IsTextView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “bottom-margin” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewBottomMargin :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “bottom-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #bottomMargin
--   
getTextViewBottomMargin :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “bottom-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #bottomMargin := value ]
--   
setTextViewBottomMargin :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Set the value of the “buffer” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #buffer
--   
clearTextViewBuffer :: (MonadIO m, IsTextView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “buffer” property. This is rarely needed directly, but it is
--   used by new.
constructTextViewBuffer :: (IsTextView o, MonadIO m, IsTextBuffer a) => a -> m (GValueConstruct o)

-- | Get the value of the “buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #buffer
--   
getTextViewBuffer :: (MonadIO m, IsTextView o) => o -> m TextBuffer

-- | Set the value of the “buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #buffer := value ]
--   
setTextViewBuffer :: (MonadIO m, IsTextView o, IsTextBuffer a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cursor-visible” property. This is rarely needed directly,
--   but it is used by new.
constructTextViewCursorVisible :: (IsTextView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “cursor-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #cursorVisible
--   
getTextViewCursorVisible :: (MonadIO m, IsTextView o) => o -> m Bool

-- | Set the value of the “cursor-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #cursorVisible := value ]
--   
setTextViewCursorVisible :: (MonadIO m, IsTextView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editable” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewEditable :: (IsTextView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #editable
--   
getTextViewEditable :: (MonadIO m, IsTextView o) => o -> m Bool

-- | Set the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #editable := value ]
--   
setTextViewEditable :: (MonadIO m, IsTextView o) => o -> Bool -> m ()

-- | Set the value of the “extra-menu” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #extraMenu
--   
clearTextViewExtraMenu :: (MonadIO m, IsTextView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “extra-menu” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewExtraMenu :: (IsTextView o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #extraMenu
--   
getTextViewExtraMenu :: (MonadIO m, IsTextView o) => o -> m (Maybe MenuModel)

-- | Set the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #extraMenu := value ]
--   
setTextViewExtraMenu :: (MonadIO m, IsTextView o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “im-module” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #imModule
--   
clearTextViewImModule :: (MonadIO m, IsTextView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “im-module” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewImModule :: (IsTextView o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #imModule
--   
getTextViewImModule :: (MonadIO m, IsTextView o) => o -> m (Maybe Text)

-- | Set the value of the “im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #imModule := value ]
--   
setTextViewImModule :: (MonadIO m, IsTextView o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “indent” property. This is rarely needed directly, but it is
--   used by new.
constructTextViewIndent :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “indent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #indent
--   
getTextViewIndent :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “indent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #indent := value ]
--   
setTextViewIndent :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-hints” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewInputHints :: (IsTextView o, MonadIO m) => [InputHints] -> m (GValueConstruct o)

-- | Get the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #inputHints
--   
getTextViewInputHints :: (MonadIO m, IsTextView o) => o -> m [InputHints]

-- | Set the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #inputHints := value ]
--   
setTextViewInputHints :: (MonadIO m, IsTextView o) => o -> [InputHints] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-purpose” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewInputPurpose :: (IsTextView o, MonadIO m) => InputPurpose -> m (GValueConstruct o)

-- | Get the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #inputPurpose
--   
getTextViewInputPurpose :: (MonadIO m, IsTextView o) => o -> m InputPurpose

-- | Set the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #inputPurpose := value ]
--   
setTextViewInputPurpose :: (MonadIO m, IsTextView o) => o -> InputPurpose -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “justification” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewJustification :: (IsTextView o, MonadIO m) => Justification -> m (GValueConstruct o)

-- | Get the value of the “justification” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #justification
--   
getTextViewJustification :: (MonadIO m, IsTextView o) => o -> m Justification

-- | Set the value of the “justification” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #justification := value ]
--   
setTextViewJustification :: (MonadIO m, IsTextView o) => o -> Justification -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “left-margin” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewLeftMargin :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “left-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #leftMargin
--   
getTextViewLeftMargin :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “left-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #leftMargin := value ]
--   
setTextViewLeftMargin :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “monospace” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewMonospace :: (IsTextView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “monospace” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #monospace
--   
getTextViewMonospace :: (MonadIO m, IsTextView o) => o -> m Bool

-- | Set the value of the “monospace” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #monospace := value ]
--   
setTextViewMonospace :: (MonadIO m, IsTextView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overwrite” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewOverwrite :: (IsTextView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “overwrite” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #overwrite
--   
getTextViewOverwrite :: (MonadIO m, IsTextView o) => o -> m Bool

-- | Set the value of the “overwrite” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #overwrite := value ]
--   
setTextViewOverwrite :: (MonadIO m, IsTextView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-above-lines” property. This is rarely needed
--   directly, but it is used by new.
constructTextViewPixelsAboveLines :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixels-above-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #pixelsAboveLines
--   
getTextViewPixelsAboveLines :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “pixels-above-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #pixelsAboveLines := value ]
--   
setTextViewPixelsAboveLines :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-below-lines” property. This is rarely needed
--   directly, but it is used by new.
constructTextViewPixelsBelowLines :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixels-below-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #pixelsBelowLines
--   
getTextViewPixelsBelowLines :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “pixels-below-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #pixelsBelowLines := value ]
--   
setTextViewPixelsBelowLines :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixels-inside-wrap” property. This is rarely needed
--   directly, but it is used by new.
constructTextViewPixelsInsideWrap :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixels-inside-wrap” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #pixelsInsideWrap
--   
getTextViewPixelsInsideWrap :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “pixels-inside-wrap” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #pixelsInsideWrap := value ]
--   
setTextViewPixelsInsideWrap :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “right-margin” property. This is rarely needed directly, but
--   it is used by new.
constructTextViewRightMargin :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “right-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #rightMargin
--   
getTextViewRightMargin :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “right-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #rightMargin := value ]
--   
setTextViewRightMargin :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tabs” property. This is rarely needed directly, but it is
--   used by new.
constructTextViewTabs :: (IsTextView o, MonadIO m) => TabArray -> m (GValueConstruct o)

-- | Get the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textView #tabs
--   
getTextViewTabs :: (MonadIO m, IsTextView o) => o -> m (Maybe TabArray)

-- | Set the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textView [ #tabs := value ]
--   
setTextViewTabs :: (MonadIO m, IsTextView o) => o -> TabArray -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “top-margin” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewTopMargin :: (IsTextView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “top-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #topMargin
--   
getTextViewTopMargin :: (MonadIO m, IsTextView o) => o -> m Int32

-- | Set the value of the “top-margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #topMargin := value ]
--   
setTextViewTopMargin :: (MonadIO m, IsTextView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-mode” property. This is rarely needed directly, but it
--   is used by new.
constructTextViewWrapMode :: (IsTextView o, MonadIO m) => WrapMode -> m (GValueConstruct o)

-- | Get the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textView #wrapMode
--   
getTextViewWrapMode :: (MonadIO m, IsTextView o) => o -> m WrapMode

-- | Set the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textView [ #wrapMode := value ]
--   
setTextViewWrapMode :: (MonadIO m, IsTextView o) => o -> WrapMode -> m ()

-- | Gets emitted when the user asks for it.
--   
--   The backspace signal is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Backspace</kbd> and
--   <kbd>Shift</kbd>+<kbd>Backspace</kbd>.
type TextViewBackspaceCallback = IO ()

-- | Connect a signal handler for the backspace signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #backspace callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewBackspace :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewBackspaceCallback) -> m SignalHandlerId

-- | Connect a signal handler for the backspace signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #backspace callback
--   
onTextViewBackspace :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewBackspaceCallback) -> m SignalHandlerId

-- | Gets emitted to copy the selection to the clipboard.
--   
--   The copyClipboard signal is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>c</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>Insert</kbd>.
type TextViewCopyClipboardCallback = IO ()

-- | Connect a signal handler for the copyClipboard signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #copyClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewCopyClipboard :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewCopyClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the copyClipboard signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #copyClipboard callback
--   
onTextViewCopyClipboard :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewCopyClipboardCallback) -> m SignalHandlerId

-- | Gets emitted to cut the selection to the clipboard.
--   
--   The cutClipboard signal is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>x</kbd> and
--   <kbd>Shift</kbd>+<kbd>Delete</kbd>.
type TextViewCutClipboardCallback = IO ()

-- | Connect a signal handler for the cutClipboard signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #cutClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewCutClipboard :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewCutClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cutClipboard signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #cutClipboard callback
--   
onTextViewCutClipboard :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewCutClipboardCallback) -> m SignalHandlerId

-- | Gets emitted when the user initiates a text deletion.
--   
--   The deleteFromCursor signal is a keybinding signal.
--   
--   If the type is DeleteTypeChars, GTK deletes the
--   selection if there is one, otherwise it deletes the requested number
--   of characters.
--   
--   The default bindings for this signal are <kbd>Delete</kbd>
--   for deleting a character,
--   <kbd>Ctrl</kbd>+<kbd>Delete</kbd> for deleting
--   a word and
--   <kbd>Ctrl</kbd>+<kbd>Backspace</kbd> for
--   deleting a word backwards.
type TextViewDeleteFromCursorCallback = DeleteType -> Int32 -> IO ()

-- | Connect a signal handler for the deleteFromCursor signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #deleteFromCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewDeleteFromCursor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewDeleteFromCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the deleteFromCursor signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #deleteFromCursor callback
--   
onTextViewDeleteFromCursor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewDeleteFromCursorCallback) -> m SignalHandlerId

-- | Emitted when the selection needs to be extended at
--   location.
type TextViewExtendSelectionCallback = TextExtendSelection -> TextIter -> TextIter -> TextIter -> IO Bool

-- | Connect a signal handler for the extendSelection signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #extendSelection callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewExtendSelection :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewExtendSelectionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the extendSelection signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #extendSelection callback
--   
onTextViewExtendSelection :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewExtendSelectionCallback) -> m SignalHandlerId

-- | Gets emitted when the user initiates the insertion of a fixed string
--   at the cursor.
--   
--   The insertAtCursor signal is a keybinding signal.
--   
--   This signal has no default bindings.
type TextViewInsertAtCursorCallback = Text -> IO ()

-- | Connect a signal handler for the insertAtCursor signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #insertAtCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewInsertAtCursor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewInsertAtCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertAtCursor signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #insertAtCursor callback
--   
onTextViewInsertAtCursor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewInsertAtCursorCallback) -> m SignalHandlerId

-- | Gets emitted to present the Emoji chooser for the
--   textView.
--   
--   The insertEmoji signal is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>.</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>;</kbd>
type TextViewInsertEmojiCallback = IO ()

-- | Connect a signal handler for the insertEmoji signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #insertEmoji callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewInsertEmoji :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewInsertEmojiCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertEmoji signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #insertEmoji callback
--   
onTextViewInsertEmoji :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewInsertEmojiCallback) -> m SignalHandlerId

-- | Gets emitted when the user initiates a cursor movement.
--   
--   The moveCursor signal is a keybinding signal. If the
--   cursor is not visible in textView, this signal causes
--   the viewport to be moved instead.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control the
--   cursor programmatically.
--   
--   The default bindings for this signal come in two variants, the variant
--   with the <kbd>Shift</kbd> modifier extends the selection,
--   the variant without it does not. There are too many key combinations
--   to list them all here.
--   
--   
--   
- <kbd>←</kbd>, <kbd>→</kbd>,
--   <kbd>↑</kbd>, <kbd>↓</kbd> move by individual
--   characters/lines
--   
- <kbd>Ctrl</kbd>+<kbd>←</kbd>, etc. move by
--   words/paragraphs
--   
- <kbd>Home</kbd> and <kbd>End</kbd> move to
--   the ends of the buffer
--   
- <kbd>PgUp</kbd> and <kbd>PgDn</kbd> move
--   vertically by pages
--   
- <kbd>Ctrl</kbd>+<kbd>PgUp</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>PgDn</kbd> move
--   horizontally by pages
--   
type TextViewMoveCursorCallback = MovementStep -> Int32 -> Bool -> IO ()

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewMoveCursor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #moveCursor callback
--   
onTextViewMoveCursor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewMoveCursorCallback) -> m SignalHandlerId

-- | Gets emitted to move the viewport.
--   
--   The moveViewport signal is a keybinding signal, which
--   can be bound to key combinations to allow the user to move the
--   viewport, i.e. change what part of the text view is visible in a
--   containing scrolled window.
--   
--   There are no default bindings for this signal.
type TextViewMoveViewportCallback = ScrollStep -> Int32 -> IO ()

-- | Connect a signal handler for the moveViewport signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #moveViewport callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewMoveViewport :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewMoveViewportCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveViewport signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #moveViewport callback
--   
onTextViewMoveViewport :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewMoveViewportCallback) -> m SignalHandlerId

-- | Gets emitted to paste the contents of the clipboard into the text
--   view.
--   
--   The pasteClipboard signal is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>v</kbd> and
--   <kbd>Shift</kbd>+<kbd>Insert</kbd>.
type TextViewPasteClipboardCallback = IO ()

-- | Connect a signal handler for the pasteClipboard signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #pasteClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewPasteClipboard :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewPasteClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pasteClipboard signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #pasteClipboard callback
--   
onTextViewPasteClipboard :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewPasteClipboardCallback) -> m SignalHandlerId

-- | Emitted when preedit text of the active IM changes.
--   
--   If an input method is used, the typed text will not immediately be
--   committed to the buffer. So if you are interested in the text, connect
--   to this signal.
--   
--   This signal is only emitted if the text at the given position is
--   actually editable.
type TextViewPreeditChangedCallback = Text -> IO ()

-- | Connect a signal handler for the preeditChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #preeditChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewPreeditChanged :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewPreeditChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the preeditChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #preeditChanged callback
--   
onTextViewPreeditChanged :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewPreeditChangedCallback) -> m SignalHandlerId

-- | Gets emitted to select or unselect the complete contents of the text
--   view.
--   
--   The selectAll signal is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>a</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>/</kbd> for selecting and
--   <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>a</kbd>
--   and <kbd>Ctrl</kbd>+<kbd>\</kbd> for
--   unselecting.
type TextViewSelectAllCallback = Bool -> IO ()

-- | Connect a signal handler for the selectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #selectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewSelectAll :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewSelectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #selectAll callback
--   
onTextViewSelectAll :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewSelectAllCallback) -> m SignalHandlerId

-- | Gets emitted when the user initiates settings the "anchor" mark.
--   
--   The setAnchor signal is a keybinding signal which gets
--   emitted when the user initiates setting the "anchor" mark. The
--   "anchor" mark gets placed at the same position as the "insert" mark.
--   
--   This signal has no default bindings.
type TextViewSetAnchorCallback = IO ()

-- | Connect a signal handler for the setAnchor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textView #setAnchor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewSetAnchor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewSetAnchorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the setAnchor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textView #setAnchor callback
--   
onTextViewSetAnchor :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewSetAnchorCallback) -> m SignalHandlerId

-- | Gets emitted to toggle the cursor-visible property.
--   
--   The toggleCursorVisible signal is a keybinding signal.
--   
--   The default binding for this signal is <kbd>F7</kbd>.
type TextViewToggleCursorVisibleCallback = IO ()

-- | Connect a signal handler for the toggleCursorVisible signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #toggleCursorVisible callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewToggleCursorVisible :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewToggleCursorVisibleCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleCursorVisible signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #toggleCursorVisible callback
--   
onTextViewToggleCursorVisible :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewToggleCursorVisibleCallback) -> m SignalHandlerId

-- | Gets emitted to toggle the overwrite mode of the text view.
--   
--   The toggleOverwrite signal is a keybinding signal.
--   
--   The default binding for this signal is <kbd>Insert</kbd>.
type TextViewToggleOverwriteCallback = IO ()

-- | Connect a signal handler for the toggleOverwrite signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textView #toggleOverwrite callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextViewToggleOverwrite :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewToggleOverwriteCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleOverwrite signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textView #toggleOverwrite callback
--   
onTextViewToggleOverwrite :: (IsTextView a, MonadIO m) => a -> ((?self :: a) => TextViewToggleOverwriteCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.TextView.TextView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TextView.TextView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TextView.TextView
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TextView.TextView)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TextView.TextView o) => GI.Gtk.Objects.TextView.IsTextView o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TextView.TextView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TextView.TextView

-- | Collects the tags in a GtkTextBuffer.
--   
--   You may wish to begin by reading the text widget conceptual
--   overview, which gives an overview of all the objects and data
--   types related to the text widget and how they work together.
--   
--   
GtkTextTagTables as GtkBuildable
--   
--   The GtkTextTagTable implementation of the
--   GtkBuildable interface supports adding tags by specifying
--   “tag” as the “type” attribute of a <child> element.
--   
--   An example of a UI definition fragment specifying tags:
--   
--   
xml code
--   
--   
--   <object class="GtkTextTagTable">
--    <child type="tag">
--      <object class="GtkTextTag"/>
--    </child>
--   </object>
--   
module GI.Gtk.Objects.TextTagTable

-- | Memory-managed wrapper type.
newtype TextTagTable
TextTagTable :: ManagedPtr TextTagTable -> TextTagTable

-- | Type class for types which can be safely cast to TextTagTable,
--   for instance with toTextTagTable.
class (GObject o, IsDescendantOf TextTagTable o) => IsTextTagTable o

-- | Cast to TextTagTable, for types for which this is known to be
--   safe. For general casts, use castTo.
toTextTagTable :: (MonadIO m, IsTextTagTable o) => o -> m TextTagTable

-- | Add a tag to the table.
--   
--   The tag is assigned the highest priority in the table.
--   
--   tag must not be in a tag table already, and may not
--   have the same name as an already-added tag.
textTagTableAdd :: (HasCallStack, MonadIO m, IsTextTagTable a, IsTextTag b) => a -> b -> m Bool

-- | Calls func on each tag in table, with
--   user data data.
--   
--   Note that the table may not be modified while iterating over it (you
--   can’t add/remove tags).
textTagTableForeach :: (HasCallStack, MonadIO m, IsTextTagTable a) => a -> TextTagTableForeach -> m ()

-- | Returns the size of the table (number of tags)
textTagTableGetSize :: (HasCallStack, MonadIO m, IsTextTagTable a) => a -> m Int32

-- | Look up a named tag.
textTagTableLookup :: (HasCallStack, MonadIO m, IsTextTagTable a) => a -> Text -> m (Maybe TextTag)

-- | Creates a new GtkTextTagTable.
--   
--   The table contains no tags by default.
textTagTableNew :: (HasCallStack, MonadIO m) => m TextTagTable

-- | Remove a tag from the table.
--   
--   If a GtkTextBuffer has table as its tag
--   table, the tag is removed from the buffer. The table’s reference to
--   the tag is removed, so the tag will end up destroyed if you don’t have
--   a reference to it.
textTagTableRemove :: (HasCallStack, MonadIO m, IsTextTagTable a, IsTextTag b) => a -> b -> m ()

-- | Emitted every time a new tag is added in the GtkTextTagTable.
type TextTagTableTagAddedCallback = TextTag -> IO ()

-- | Connect a signal handler for the tagAdded signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textTagTable #tagAdded callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextTagTableTagAdded :: (IsTextTagTable a, MonadIO m) => a -> ((?self :: a) => TextTagTableTagAddedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the tagAdded signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textTagTable #tagAdded callback
--   
onTextTagTableTagAdded :: (IsTextTagTable a, MonadIO m) => a -> ((?self :: a) => TextTagTableTagAddedCallback) -> m SignalHandlerId

-- | Emitted every time a tag in the GtkTextTagTable changes.
type TextTagTableTagChangedCallback = TextTag -> Bool -> IO ()

-- | Connect a signal handler for the tagChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textTagTable #tagChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextTagTableTagChanged :: (IsTextTagTable a, MonadIO m) => a -> ((?self :: a) => TextTagTableTagChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the tagChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textTagTable #tagChanged callback
--   
onTextTagTableTagChanged :: (IsTextTagTable a, MonadIO m) => a -> ((?self :: a) => TextTagTableTagChangedCallback) -> m SignalHandlerId

-- | Emitted every time a tag is removed from the GtkTextTagTable.
--   
--   The tag is still valid by the time the signal is
--   emitted, but it is not associated with a tag table any more.
type TextTagTableTagRemovedCallback = TextTag -> IO ()

-- | Connect a signal handler for the tagRemoved signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textTagTable #tagRemoved callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextTagTableTagRemoved :: (IsTextTagTable a, MonadIO m) => a -> ((?self :: a) => TextTagTableTagRemovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the tagRemoved signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textTagTable #tagRemoved callback
--   
onTextTagTableTagRemoved :: (IsTextTagTable a, MonadIO m) => a -> ((?self :: a) => TextTagTableTagRemovedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.TextTagTable.TextTagTable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TextTagTable.TextTagTable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TextTagTable.TextTagTable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TextTagTable.TextTagTable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TextTagTable.TextTagTable o) => GI.Gtk.Objects.TextTagTable.IsTextTagTable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TextTagTable.TextTagTable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TextTagTable.TextTagTable

-- | Marks a position in a GtkTextbuffer that is preserved across
--   modifications.
--   
--   You may wish to begin by reading the text widget conceptual
--   overview, which gives an overview of all the objects and data
--   types related to the text widget and how they work together.
--   
--   A GtkTextMark is like a bookmark in a text buffer; it
--   preserves a position in the text. You can convert the mark to an
--   iterator using textBufferGetIterAtMark. Unlike iterators, marks
--   remain valid across buffer mutations, because their behavior is
--   defined when text is inserted or deleted. When text containing a mark
--   is deleted, the mark remains in the position originally occupied by
--   the deleted text. When text is inserted at a mark, a mark with “left
--   gravity” will be moved to the beginning of the newly-inserted text,
--   and a mark with “right gravity” will be moved to the end.
--   
--   Note that “left” and “right” here refer to logical direction (left is
--   the toward the start of the buffer); in some languages such as Hebrew
--   the logically-leftmost text is not actually on the left when
--   displayed.
--   
--   Marks are reference counted, but the reference count only controls the
--   validity of the memory; marks can be deleted from the buffer at any
--   time with textBufferDeleteMark. Once deleted from the buffer, a
--   mark is essentially useless.
--   
--   Marks optionally have names; these can be convenient to avoid passing
--   the GtkTextMark object around.
--   
--   Marks are typically created using the textBufferCreateMark
--   function.
module GI.Gtk.Objects.TextMark

-- | Memory-managed wrapper type.
newtype TextMark
TextMark :: ManagedPtr TextMark -> TextMark

-- | Type class for types which can be safely cast to TextMark, for
--   instance with toTextMark.
class (GObject o, IsDescendantOf TextMark o) => IsTextMark o

-- | Cast to TextMark, for types for which this is known to be safe.
--   For general casts, use castTo.
toTextMark :: (MonadIO m, IsTextMark o) => o -> m TextMark

-- | Gets the buffer this mark is located inside.
--   
--   Returns Nothing if the mark is deleted.
textMarkGetBuffer :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m (Maybe TextBuffer)

-- | Returns True if the mark has been removed from its buffer.
--   
--   See textBufferAddMark for a way to add it to a buffer again.
textMarkGetDeleted :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Bool

-- | Determines whether the mark has left gravity.
textMarkGetLeftGravity :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Bool

-- | Returns the mark name.
--   
--   Returns Nothing for anonymous marks.
textMarkGetName :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m (Maybe Text)

-- | Returns True if the mark is visible.
--   
--   A cursor is displayed for visible marks.
textMarkGetVisible :: (HasCallStack, MonadIO m, IsTextMark a) => a -> m Bool

-- | Creates a text mark.
--   
--   Add it to a buffer using textBufferAddMark. If
--   name is Nothing, the mark is anonymous;
--   otherwise, the mark can be retrieved by name using
--   textBufferGetMark. If a mark has left gravity, and text is
--   inserted at the mark’s current location, the mark will be moved to the
--   left of the newly-inserted text. If the mark has right gravity
--   (leftGravity = False), the mark will end up on
--   the right of newly-inserted text. The standard left-to-right cursor is
--   a mark with right gravity (when you type, the cursor stays on the
--   right side of the text you’re typing).
textMarkNew :: (HasCallStack, MonadIO m) => Maybe Text -> Bool -> m TextMark

-- | Sets the visibility of mark.
--   
--   The insertion point is normally visible, i.e. you can see it as a
--   vertical bar. Also, the text widget uses a visible mark to indicate
--   where a drop will occur when dragging-and-dropping text. Most other
--   marks are not visible.
--   
--   Marks are not visible by default.
textMarkSetVisible :: (HasCallStack, MonadIO m, IsTextMark a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “left-gravity” property. This is rarely needed directly, but
--   it is used by new.
constructTextMarkLeftGravity :: (IsTextMark o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “left-gravity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textMark #leftGravity
--   
getTextMarkLeftGravity :: (MonadIO m, IsTextMark o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructTextMarkName :: (IsTextMark o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textMark #name
--   
getTextMarkName :: (MonadIO m, IsTextMark o) => o -> m (Maybe Text)
instance GHC.Classes.Eq GI.Gtk.Objects.TextMark.TextMark
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TextMark.TextMark
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TextMark.TextMark
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TextMark.TextMark)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TextMark.TextMark o) => GI.Gtk.Objects.TextMark.IsTextMark o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TextMark.TextMark
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TextMark.TextMark

-- | Marks a spot in a GtkTextBuffer where child widgets can be
--   “anchored”.
--   
--   The anchor can have multiple widgets anchored, to allow for multiple
--   views.
module GI.Gtk.Objects.TextChildAnchor

-- | Memory-managed wrapper type.
newtype TextChildAnchor
TextChildAnchor :: ManagedPtr TextChildAnchor -> TextChildAnchor

-- | Type class for types which can be safely cast to
--   TextChildAnchor, for instance with toTextChildAnchor.
class (GObject o, IsDescendantOf TextChildAnchor o) => IsTextChildAnchor o

-- | Cast to TextChildAnchor, for types for which this is known to
--   be safe. For general casts, use castTo.
toTextChildAnchor :: (MonadIO m, IsTextChildAnchor o) => o -> m TextChildAnchor

-- | Determines whether a child anchor has been deleted from the buffer.
--   
--   Keep in mind that the child anchor will be unreferenced when removed
--   from the buffer, so you need to hold your own reference (with
--   objectRef) if you plan to use this function — otherwise all
--   deleted child anchors will also be finalized.
textChildAnchorGetDeleted :: (HasCallStack, MonadIO m, IsTextChildAnchor a) => a -> m Bool

-- | Gets a list of all widgets anchored at this child anchor.
--   
--   The order in which the widgets are returned is not defined.
textChildAnchorGetWidgets :: (HasCallStack, MonadIO m, IsTextChildAnchor a) => a -> m [Widget]

-- | Creates a new GtkTextChildAnchor.
--   
--   Usually you would then insert it into a GtkTextBuffer with
--   textBufferInsertChildAnchor. To perform the creation and
--   insertion in one step, use the convenience function
--   textBufferCreateChildAnchor.
textChildAnchorNew :: (HasCallStack, MonadIO m) => m TextChildAnchor

-- | Creates a new GtkTextChildAnchor with the given replacement
--   character.
--   
--   Usually you would then insert it into a GtkTextBuffer with
--   textBufferInsertChildAnchor.
--   
--   Since: 4.6
textChildAnchorNewWithReplacement :: (HasCallStack, MonadIO m) => Text -> m TextChildAnchor
instance GHC.Classes.Eq GI.Gtk.Objects.TextChildAnchor.TextChildAnchor
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TextChildAnchor.TextChildAnchor
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TextChildAnchor.TextChildAnchor
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TextChildAnchor.TextChildAnchor)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TextChildAnchor.TextChildAnchor o) => GI.Gtk.Objects.TextChildAnchor.IsTextChildAnchor o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TextChildAnchor.TextChildAnchor
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TextChildAnchor.TextChildAnchor

-- | Stores text and attributes for display in a GtkTextView.
--   
--   You may wish to begin by reading the text widget conceptual
--   overview, which gives an overview of all the objects and data
--   types related to the text widget and how they work together.
--   
--   GtkTextBuffer can support undoing changes to the buffer content, see
--   textBufferSetEnableUndo.
module GI.Gtk.Objects.TextBuffer

-- | Memory-managed wrapper type.
newtype TextBuffer
TextBuffer :: ManagedPtr TextBuffer -> TextBuffer

-- | Type class for types which can be safely cast to TextBuffer,
--   for instance with toTextBuffer.
class (GObject o, IsDescendantOf TextBuffer o) => IsTextBuffer o

-- | Cast to TextBuffer, for types for which this is known to be
--   safe. For general casts, use castTo.
toTextBuffer :: (MonadIO m, IsTextBuffer o) => o -> m TextBuffer

-- | Adds a [callbackgtk.TextBufferCommitNotify] to be
--   called when a change is to be made to the
--   [typegtk.TextBuffer].
--   
--   Functions are explicitly forbidden from making changes to the
--   [typegtk.TextBuffer] from this callback. It is
--   intended for tracking changes to the buffer only.
--   
--   It may be advantageous to use
--   [callbackgtk.TextBufferCommitNotify] over connecting
--   to the TextBuffer::insertText or TextBuffer::deleteRange
--   signals to avoid ordering issues with other signal handlers which may
--   further modify the [typegtk.TextBuffer].
--   
--   Since: 4.16
textBufferAddCommitNotify :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> [TextBufferNotifyFlags] -> TextBufferCommitNotify -> m Word32

-- | Adds the mark at position where.
--   
--   The mark must not be added to another buffer, and if its name is not
--   Nothing then there must not be another mark in the buffer with
--   the same name.
--   
--   Emits the TextBuffer::markSet signal as notification of the
--   mark's initial placement.
textBufferAddMark :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextMark b) => a -> b -> TextIter -> m ()

-- | Adds clipboard to the list of clipboards in which the
--   selection contents of buffer are available.
--   
--   In most cases, clipboard will be the
--   GdkClipboard returned by widgetGetPrimaryClipboard for
--   a view of buffer.
textBufferAddSelectionClipboard :: (HasCallStack, MonadIO m, IsTextBuffer a, IsClipboard b) => a -> b -> m ()

-- | Emits the “apply-tag” signal on buffer.
--   
--   The default handler for the signal applies tag to the
--   given range. start and end do not have
--   to be in order.
textBufferApplyTag :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextTag b) => a -> b -> TextIter -> TextIter -> m ()

-- | Emits the “apply-tag” signal on buffer.
--   
--   Calls textTagTableLookup on the buffer’s tag table to get a
--   GtkTextTag, then calls textBufferApplyTag.
textBufferApplyTagByName :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> TextIter -> TextIter -> m ()

-- | Performs the appropriate action as if the user hit the delete key with
--   the cursor at the position specified by iter.
--   
--   In the normal case a single character will be deleted, but when
--   combining accents are involved, more than one character can be
--   deleted, and when precomposed character and accent combinations are
--   involved, less than one character will be deleted.
--   
--   Because the buffer is modified, all outstanding iterators become
--   invalid after calling this function; however, the iter
--   will be re-initialized to point to the location where text was
--   deleted.
textBufferBackspace :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> Bool -> Bool -> m Bool

-- | Denotes the beginning of an action that may not be undone.
--   
--   This will cause any previous operations in the undo/redo queue to be
--   cleared.
--   
--   This should be paired with a call to
--   textBufferEndIrreversibleAction after the irreversible action
--   has completed.
--   
--   You may nest calls to textBufferBeginIrreversibleAction and
--   textBufferEndIrreversibleAction pairs.
textBufferBeginIrreversibleAction :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ()

-- | Called to indicate that the buffer operations between here and a call
--   to textBufferEndUserAction are part of a single user-visible
--   operation.
--   
--   The operations between textBufferBeginUserAction and
--   textBufferEndUserAction can then be grouped when creating an
--   undo stack. GtkTextBuffer maintains a count of calls to
--   textBufferBeginUserAction that have not been closed with a call
--   to textBufferEndUserAction, and emits the “begin-user-action”
--   and “end-user-action” signals only for the outermost pair of calls.
--   This allows you to build user actions from other user actions.
--   
--   The “interactive” buffer mutation functions, such as
--   textBufferInsertInteractive, automatically call begin/end user
--   action around the buffer operations they perform, so there's no need
--   to add extra calls if you user action consists solely of a single call
--   to one of those functions.
textBufferBeginUserAction :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ()

-- | Copies the currently-selected text to a clipboard.
textBufferCopyClipboard :: (HasCallStack, MonadIO m, IsTextBuffer a, IsClipboard b) => a -> b -> m ()

-- | Creates and inserts a child anchor.
--   
--   This is a convenience function which simply creates a child anchor
--   with textChildAnchorNew and inserts it into the buffer with
--   textBufferInsertChildAnchor.
--   
--   The new anchor is owned by the buffer; no reference count is returned
--   to the caller of this function.
textBufferCreateChildAnchor :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> m TextChildAnchor

-- | Creates a mark at position where.
--   
--   If markName is Nothing, the mark is anonymous;
--   otherwise, the mark can be retrieved by name using
--   textBufferGetMark. If a mark has left gravity, and text is
--   inserted at the mark’s current location, the mark will be moved to the
--   left of the newly-inserted text. If the mark has right gravity
--   (leftGravity = False), the mark will end up on
--   the right of newly-inserted text. The standard left-to-right cursor is
--   a mark with right gravity (when you type, the cursor stays on the
--   right side of the text you’re typing).
--   
--   The caller of this function does not own a reference to the returned
--   GtkTextMark, so you can ignore the return value if you like.
--   Marks are owned by the buffer and go away when the buffer does.
--   
--   Emits the TextBuffer::markSet signal as notification of the
--   mark's initial placement.
textBufferCreateMark :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Maybe Text -> TextIter -> Bool -> m TextMark

-- | Copies the currently-selected text to a clipboard, then deletes said
--   text if it’s editable.
textBufferCutClipboard :: (HasCallStack, MonadIO m, IsTextBuffer a, IsClipboard b) => a -> b -> Bool -> m ()

-- | Deletes text between start and end.
--   
--   The order of start and end is not
--   actually relevant; textBufferDelete will reorder them.
--   
--   This function actually emits the “delete-range” signal, and the
--   default handler of that signal deletes the text. Because the buffer is
--   modified, all outstanding iterators become invalid after calling this
--   function; however, the start and end
--   will be re-initialized to point to the location where text was
--   deleted.
textBufferDelete :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> m ()

-- | Deletes all editable text in the given range.
--   
--   Calls textBufferDelete for each editable sub-range of
--   [start,end). start and
--   end are revalidated to point to the location of the
--   last deleted range, or left untouched if no text was deleted.
textBufferDeleteInteractive :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> Bool -> m Bool

-- | Deletes mark, so that it’s no longer located anywhere
--   in the buffer.
--   
--   Removes the reference the buffer holds to the mark, so if you haven’t
--   called objectRef on the mark, it will be freed. Even if the
--   mark isn’t freed, most operations on mark become
--   invalid, until it gets added to a buffer again with
--   textBufferAddMark. Use textMarkGetDeleted to find out if
--   a mark has been removed from its buffer.
--   
--   The TextBuffer::markDeleted signal will be emitted as
--   notification after the mark is deleted.
textBufferDeleteMark :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextMark b) => a -> b -> m ()

-- | Deletes the mark named name; the mark must exist.
--   
--   See textBufferDeleteMark for details.
textBufferDeleteMarkByName :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> m ()

-- | Deletes the range between the “insert” and “selection_bound” marks,
--   that is, the currently-selected text.
--   
--   If interactive is True, the editability of the
--   selection will be considered (users can’t delete uneditable text).
textBufferDeleteSelection :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Bool -> Bool -> m Bool

-- | Denotes the end of an action that may not be undone.
--   
--   This will cause any previous operations in the undo/redo queue to be
--   cleared.
--   
--   This should be called after completing modifications to the text
--   buffer after textBufferBeginIrreversibleAction was called.
--   
--   You may nest calls to textBufferBeginIrreversibleAction and
--   textBufferEndIrreversibleAction pairs.
textBufferEndIrreversibleAction :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ()

-- | Ends a user-visible operation.
--   
--   Should be paired with a call to textBufferBeginUserAction. See
--   that function for a full explanation.
textBufferEndUserAction :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ()

-- | Retrieves the first and last iterators in the buffer, i.e. the entire
--   buffer lies within the range
--   [start,end).
textBufferGetBounds :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m (TextIter, TextIter)

-- | Gets whether there is a redoable action in the history.
textBufferGetCanRedo :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Bool

-- | Gets whether there is an undoable action in the history.
textBufferGetCanUndo :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Bool

-- | Gets the number of characters in the buffer.
--   
--   Note that characters and bytes are not the same, you can’t e.g. expect
--   the contents of the buffer in string form to be this many bytes long.
--   
--   The character count is cached, so this function is very fast.
textBufferGetCharCount :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Int32

-- | Gets whether the buffer is saving modifications to the buffer to allow
--   for undo and redo actions.
--   
--   See textBufferBeginIrreversibleAction and
--   textBufferEndIrreversibleAction to create changes to the buffer
--   that cannot be undone.
textBufferGetEnableUndo :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Bool

-- | Initializes iter with the “end iterator,” one past the
--   last valid character in the text buffer.
--   
--   If dereferenced with textIterGetChar, the end iterator has a
--   character value of 0. The entire buffer lies in the range from the
--   first position in the buffer (call textBufferGetStartIter to
--   get character position 0) to the end iterator.
textBufferGetEndIter :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m TextIter

-- | Indicates whether the buffer has some text currently selected.
textBufferGetHasSelection :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Bool

-- | Returns the mark that represents the cursor (insertion point).
--   
--   Equivalent to calling textBufferGetMark to get the mark named
--   “insert”, but very slightly more efficient, and involves less typing.
textBufferGetInsert :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m TextMark

-- | Obtains the location of anchor within
--   buffer.
textBufferGetIterAtChildAnchor :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextChildAnchor b) => a -> b -> m TextIter

-- | Initializes iter to the start of the given line.
--   
--   If lineNumber is greater than or equal to the number
--   of lines in the buffer, the end iterator is returned.
textBufferGetIterAtLine :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Int32 -> m (Bool, TextIter)

-- | Obtains an iterator pointing to byteIndex within the
--   given line.
--   
--   byteIndex must be the start of a UTF-8 character. Note
--   bytes, not characters; UTF-8 may encode one character as multiple
--   bytes.
--   
--   If lineNumber is greater than or equal to the number
--   of lines in the buffer, the end iterator is returned.
--   And if byteIndex is off the end of the line, the
--   iterator at the end of the line is returned.
textBufferGetIterAtLineIndex :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Int32 -> Int32 -> m (Bool, TextIter)

-- | Obtains an iterator pointing to charOffset within the
--   given line.
--   
--   Note characters, not bytes; UTF-8 may encode one character as multiple
--   bytes.
--   
--   If lineNumber is greater than or equal to the number
--   of lines in the buffer, the end iterator is returned.
--   And if charOffset is off the end of the line, the
--   iterator at the end of the line is returned.
textBufferGetIterAtLineOffset :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Int32 -> Int32 -> m (Bool, TextIter)

-- | Initializes iter with the current position of
--   mark.
textBufferGetIterAtMark :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextMark b) => a -> b -> m TextIter

-- | Initializes iter to a position
--   charOffset chars from the start of the entire buffer.
--   
--   If charOffset is -1 or greater than the number of
--   characters in the buffer, iter is initialized to the
--   end iterator, the iterator one past the last valid character in the
--   buffer.
textBufferGetIterAtOffset :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Int32 -> m TextIter

-- | Obtains the number of lines in the buffer.
--   
--   This value is cached, so the function is very fast.
textBufferGetLineCount :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Int32

-- | Returns the mark named name in buffer
--   buffer, or Nothing if no such mark exists in
--   the buffer.
textBufferGetMark :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> m (Maybe TextMark)

-- | Gets the maximum number of undo levels to perform.
--   
--   If 0, unlimited undo actions may be performed. Note that this may have
--   a memory usage impact as it requires storing an additional copy of the
--   inserted or removed text within the text buffer.
textBufferGetMaxUndoLevels :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Word32

-- | Indicates whether the buffer has been modified since the last call to
--   textBufferSetModified set the modification flag to
--   False.
--   
--   Used for example to enable a “save” function in a text editor.
textBufferGetModified :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m Bool

-- | Returns the mark that represents the selection bound.
--   
--   Equivalent to calling textBufferGetMark to get the mark named
--   “selection_bound”, but very slightly more efficient, and involves less
--   typing.
--   
--   The currently-selected text in buffer is the region
--   between the “selection_bound” and “insert” marks. If “selection_bound”
--   and “insert” are in the same place, then there is no current
--   selection. textBufferGetSelectionBounds is another convenient
--   function for handling the selection, if you just want to know whether
--   there’s a selection and what its bounds are.
textBufferGetSelectionBound :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m TextMark

-- | Returns True if some text is selected; places the bounds of the
--   selection in start and end.
--   
--   If the selection has length 0, then start and
--   end are filled in with the same value.
--   start and end will be in ascending
--   order. If start and end are
--   Nothing, then they are not filled in, but the return value
--   still indicates whether text is selected.
textBufferGetSelectionBounds :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m (Bool, TextIter, TextIter)

-- | Get a content provider for this buffer.
--   
--   It can be used to make the content of buffer available
--   in a GdkClipboard, see clipboardSetContent.
textBufferGetSelectionContent :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ContentProvider

-- | Returns the text in the range
--   [start,end).
--   
--   Excludes undisplayed text (text marked with tags that set the
--   invisibility attribute) if includeHiddenChars is
--   False. The returned string includes a 0xFFFC character whenever
--   the buffer contains embedded images, so byte and character indexes
--   into the returned string do correspond to byte and character indexes
--   into the buffer. Contrast with textBufferGetText. Note that
--   0xFFFC can occur in normal text as well, so it is not a reliable
--   indicator that a paintable or widget is in the buffer.
textBufferGetSlice :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> Bool -> m Text

-- | Initialized iter with the first position in the text
--   buffer.
--   
--   This is the same as using textBufferGetIterAtOffset to get the
--   iter at character offset 0.
textBufferGetStartIter :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m TextIter

-- | Get the GtkTextTagTable associated with this buffer.
textBufferGetTagTable :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m TextTagTable

-- | Returns the text in the range
--   [start,end).
--   
--   Excludes undisplayed text (text marked with tags that set the
--   invisibility attribute) if includeHiddenChars is
--   False. Does not include characters representing embedded
--   images, so byte and character indexes into the returned string do not
--   correspond to byte and character indexes into the buffer. Contrast
--   with textBufferGetSlice.
textBufferGetText :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> Bool -> m Text

-- | Inserts len bytes of text at position
--   iter.
--   
--   If len is -1, text must be
--   nul-terminated and will be inserted in its entirety. Emits the
--   “insert-text” signal; insertion actually occurs in the default handler
--   for the signal. iter is invalidated when insertion
--   occurs (because the buffer contents change), but the default signal
--   handler revalidates it to point to the end of the inserted text.
textBufferInsert :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> Text -> Int32 -> m ()

-- | Inserts text in buffer.
--   
--   Simply calls textBufferInsert, using the current cursor
--   position as the insertion point.
textBufferInsertAtCursor :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> Int32 -> m ()

-- | Inserts a child widget anchor into the text buffer at
--   iter.
--   
--   The anchor will be counted as one character in character counts, and
--   when obtaining the buffer contents as a string, will be represented by
--   the Unicode “object replacement character” 0xFFFC. Note that the
--   “slice” variants for obtaining portions of the buffer as a string
--   include this character for child anchors, but the “text” variants do
--   not. E.g. see textBufferGetSlice and textBufferGetText.
--   
--   Consider textBufferCreateChildAnchor as a more convenient
--   alternative to this function. The buffer will add a reference to the
--   anchor, so you can unref it after insertion.
textBufferInsertChildAnchor :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextChildAnchor b) => a -> TextIter -> b -> m ()

-- | Inserts text in buffer.
--   
--   Like textBufferInsert, but the insertion will not occur if
--   iter is at a non-editable location in the buffer.
--   Usually you want to prevent insertions at ineditable locations if the
--   insertion results from a user action (is interactive).
--   
--   defaultEditable indicates the editability of text that
--   doesn't have a tag affecting editability applied to it. Typically the
--   result of textViewGetEditable is appropriate here.
textBufferInsertInteractive :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> Text -> Int32 -> Bool -> m Bool

-- | Inserts text in buffer.
--   
--   Calls textBufferInsertInteractive at the cursor position.
--   
--   defaultEditable indicates the editability of text that
--   doesn't have a tag affecting editability applied to it. Typically the
--   result of textViewGetEditable is appropriate here.
textBufferInsertInteractiveAtCursor :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> Int32 -> Bool -> m Bool

-- | Inserts the text in markup at position
--   iter.
--   
--   markup will be inserted in its entirety and must be
--   nul-terminated and valid UTF-8. Emits the
--   TextBuffer::insertText signal, possibly multiple times;
--   insertion actually occurs in the default handler for the signal.
--   iter will point to the end of the inserted text on
--   return.
textBufferInsertMarkup :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> Text -> Int32 -> m ()

-- | Inserts an image into the text buffer at iter.
--   
--   The image will be counted as one character in character counts, and
--   when obtaining the buffer contents as a string, will be represented by
--   the Unicode “object replacement character” 0xFFFC. Note that the
--   “slice” variants for obtaining portions of the buffer as a string
--   include this character for paintable, but the “text” variants do not.
--   e.g. see textBufferGetSlice and textBufferGetText.
textBufferInsertPaintable :: (HasCallStack, MonadIO m, IsTextBuffer a, IsPaintable b) => a -> TextIter -> b -> m ()

-- | Copies text, tags, and paintables between start and
--   end and inserts the copy at iter.
--   
--   The order of start and end doesn’t
--   matter.
--   
--   Used instead of simply getting/inserting text because it preserves
--   images and tags. If start and end are
--   in a different buffer from buffer, the two buffers
--   must share the same tag table.
--   
--   Implemented via emissions of the insertText and applyTag
--   signals, so expect those.
textBufferInsertRange :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> TextIter -> m ()

-- | Copies text, tags, and paintables between start and
--   end and inserts the copy at iter.
--   
--   Same as textBufferInsertRange, but does nothing if the
--   insertion point isn’t editable. The defaultEditable
--   parameter indicates whether the text is editable at
--   iter if no tags enclosing iter affect
--   editability. Typically the result of textViewGetEditable is
--   appropriate here.
textBufferInsertRangeInteractive :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> TextIter -> Bool -> m Bool

-- | Moves mark to the new location where.
--   
--   Emits the TextBuffer::markSet signal as notification of the
--   move.
textBufferMoveMark :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextMark b) => a -> b -> TextIter -> m ()

-- | Moves the mark named name (which must exist) to
--   location where.
--   
--   See textBufferMoveMark for details.
textBufferMoveMarkByName :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> TextIter -> m ()

-- | Creates a new text buffer.
textBufferNew :: (HasCallStack, MonadIO m, IsTextTagTable a) => Maybe a -> m TextBuffer

-- | Pastes the contents of a clipboard.
--   
--   If overrideLocation is Nothing, the pasted text
--   will be inserted at the cursor position, or the buffer selection will
--   be replaced if the selection is non-empty.
--   
--   Note: pasting is asynchronous, that is, we’ll ask for the paste data
--   and return, and at some point later after the main loop runs, the
--   paste data will be inserted.
textBufferPasteClipboard :: (HasCallStack, MonadIO m, IsTextBuffer a, IsClipboard b) => a -> b -> Maybe TextIter -> Bool -> m ()

-- | This function moves the “insert” and “selection_bound” marks
--   simultaneously.
--   
--   If you move them to the same place in two steps with
--   textBufferMoveMark, you will temporarily select a region in
--   between their old and new locations, which can be pretty inefficient
--   since the temporarily-selected region will force stuff to be
--   recalculated. This function moves them as a unit, which can be
--   optimized.
textBufferPlaceCursor :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> m ()

-- | Redoes the next redoable action on the buffer, if there is one.
textBufferRedo :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ()

-- | Removes all tags in the range between start and
--   end.
--   
--   Be careful with this function; it could remove tags added in code
--   unrelated to the code you’re currently writing. That is, using this
--   function is probably a bad idea if you have two or more unrelated code
--   sections that add tags.
textBufferRemoveAllTags :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> m ()

-- | Removes the GtkTextBufferCommitNotify handler previously
--   registered with textBufferAddCommitNotify.
--   
--   This may result in the user_data_destroy being called that
--   was passed when registering the commit notify functions.
--   
--   Since: 4.16
textBufferRemoveCommitNotify :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Word32 -> m ()

-- | Removes a GdkClipboard added with
--   textBufferAddSelectionClipboard
textBufferRemoveSelectionClipboard :: (HasCallStack, MonadIO m, IsTextBuffer a, IsClipboard b) => a -> b -> m ()

-- | Emits the “remove-tag” signal.
--   
--   The default handler for the signal removes all occurrences of
--   tag from the given range. start and
--   end don’t have to be in order.
textBufferRemoveTag :: (HasCallStack, MonadIO m, IsTextBuffer a, IsTextTag b) => a -> b -> TextIter -> TextIter -> m ()

-- | Emits the “remove-tag” signal.
--   
--   Calls textTagTableLookup on the buffer’s tag table to get a
--   GtkTextTag, then calls textBufferRemoveTag.
textBufferRemoveTagByName :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> TextIter -> TextIter -> m ()

-- | This function moves the “insert” and “selection_bound” marks
--   simultaneously.
--   
--   If you move them in two steps with textBufferMoveMark, you will
--   temporarily select a region in between their old and new locations,
--   which can be pretty inefficient since the temporarily-selected region
--   will force stuff to be recalculated. This function moves them as a
--   unit, which can be optimized.
textBufferSelectRange :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> TextIter -> TextIter -> m ()

-- | Sets whether or not to enable undoable actions in the text buffer.
--   
--   Undoable actions in this context are changes to the text content of
--   the buffer. Changes to tags and marks are not tracked.
--   
--   If enabled, the user will be able to undo the last number of actions
--   up to textBufferGetMaxUndoLevels.
--   
--   See textBufferBeginIrreversibleAction and
--   textBufferEndIrreversibleAction to create changes to the buffer
--   that cannot be undone.
textBufferSetEnableUndo :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Bool -> m ()

-- | Sets the maximum number of undo levels to perform.
--   
--   If 0, unlimited undo actions may be performed. Note that this may have
--   a memory usage impact as it requires storing an additional copy of the
--   inserted or removed text within the text buffer.
textBufferSetMaxUndoLevels :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Word32 -> m ()

-- | Used to keep track of whether the buffer has been modified since the
--   last time it was saved.
--   
--   Whenever the buffer is saved to disk, call
--   gtk_text_buffer_set_modified (@buffer, FALSE). When the
--   buffer is modified, it will automatically toggle on the modified bit
--   again. When the modified bit flips, the buffer emits the
--   TextBuffer::modifiedChanged signal.
textBufferSetModified :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Bool -> m ()

-- | Deletes current contents of buffer, and inserts
--   text instead. This is automatically marked as an
--   irreversible action in the undo stack. If you wish to mark this action
--   as part of a larger undo operation, call
--   [methodtextBuffer.delete] and
--   [methodtextBuffer.insert] directly instead.
--   
--   If len is -1, text must be
--   nul-terminated. text must be valid UTF-8.
textBufferSetText :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> Text -> Int32 -> m ()

-- | Undoes the last undoable action on the buffer, if there is one.
textBufferUndo :: (HasCallStack, MonadIO m, IsTextBuffer a) => a -> m ()

-- | Get the value of the “can-redo” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textBuffer #canRedo
--   
getTextBufferCanRedo :: (MonadIO m, IsTextBuffer o) => o -> m Bool

-- | Get the value of the “can-undo” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textBuffer #canUndo
--   
getTextBufferCanUndo :: (MonadIO m, IsTextBuffer o) => o -> m Bool

-- | Get the value of the “cursor-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textBuffer #cursorPosition
--   
getTextBufferCursorPosition :: (MonadIO m, IsTextBuffer o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “enable-undo” property. This is rarely needed directly, but
--   it is used by new.
constructTextBufferEnableUndo :: (IsTextBuffer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-undo” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textBuffer #enableUndo
--   
getTextBufferEnableUndo :: (MonadIO m, IsTextBuffer o) => o -> m Bool

-- | Set the value of the “enable-undo” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set textBuffer [ #enableUndo := value ]
--   
setTextBufferEnableUndo :: (MonadIO m, IsTextBuffer o) => o -> Bool -> m ()

-- | Get the value of the “has-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textBuffer #hasSelection
--   
getTextBufferHasSelection :: (MonadIO m, IsTextBuffer o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “tag-table” property. This is rarely needed directly, but it
--   is used by new.
constructTextBufferTagTable :: (IsTextBuffer o, MonadIO m, IsTextTagTable a) => a -> m (GValueConstruct o)

-- | Get the value of the “tag-table” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get textBuffer #tagTable
--   
getTextBufferTagTable :: (MonadIO m, IsTextBuffer o) => o -> m TextTagTable

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearTextBufferText :: (MonadIO m, IsTextBuffer o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructTextBufferText :: (IsTextBuffer o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get textBuffer #text
--   
getTextBufferText :: (MonadIO m, IsTextBuffer o) => o -> m (Maybe Text)

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set textBuffer [ #text := value ]
--   
setTextBufferText :: (MonadIO m, IsTextBuffer o) => o -> Text -> m ()

-- | Emitted to apply a tag to a range of text in a GtkTextBuffer.
--   
--   Applying actually occurs in the default handler.
--   
--   Note that if your handler runs before the default handler it must not
--   invalidate the start and end iters (or
--   has to revalidate them).
--   
--   See also: textBufferApplyTag,
--   TextBuffer.insert_with_tags(),
--   textBufferInsertRange.
type TextBufferApplyTagCallback = TextTag -> TextIter -> TextIter -> IO ()

-- | Connect a signal handler for the applyTag signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #applyTag callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferApplyTag :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferApplyTagCallback) -> m SignalHandlerId

-- | Connect a signal handler for the applyTag signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #applyTag callback
--   
onTextBufferApplyTag :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferApplyTagCallback) -> m SignalHandlerId

-- | Emitted at the beginning of a single user-visible operation on a
--   GtkTextBuffer.
--   
--   See also: textBufferBeginUserAction,
--   textBufferInsertInteractive,
--   textBufferInsertRangeInteractive,
--   textBufferDeleteInteractive, textBufferBackspace,
--   textBufferDeleteSelection.
type TextBufferBeginUserActionCallback = IO ()

-- | Connect a signal handler for the beginUserAction signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textBuffer #beginUserAction callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferBeginUserAction :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferBeginUserActionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the beginUserAction signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textBuffer #beginUserAction callback
--   
onTextBufferBeginUserAction :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferBeginUserActionCallback) -> m SignalHandlerId

-- | Emitted when the content of a GtkTextBuffer has changed.
type TextBufferChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferChanged :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #changed callback
--   
onTextBufferChanged :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferChangedCallback) -> m SignalHandlerId

-- | Emitted to delete a range from a GtkTextBuffer.
--   
--   Note that if your handler runs before the default handler it must not
--   invalidate the start and end iters (or
--   has to revalidate them). The default signal handler revalidates the
--   start and end iters to both point to
--   the location where text was deleted. Handlers which run after the
--   default handler (see g_signal_connect_after()) do not
--   have access to the deleted text.
--   
--   See also: textBufferDelete.
type TextBufferDeleteRangeCallback = TextIter -> TextIter -> IO ()

-- | Connect a signal handler for the deleteRange signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #deleteRange callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferDeleteRange :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferDeleteRangeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the deleteRange signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #deleteRange callback
--   
onTextBufferDeleteRange :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferDeleteRangeCallback) -> m SignalHandlerId

-- | Emitted at the end of a single user-visible operation on the
--   GtkTextBuffer.
--   
--   See also: textBufferEndUserAction,
--   textBufferInsertInteractive,
--   textBufferInsertRangeInteractive,
--   textBufferDeleteInteractive, textBufferBackspace,
--   textBufferDeleteSelection, textBufferBackspace.
type TextBufferEndUserActionCallback = IO ()

-- | Connect a signal handler for the endUserAction signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textBuffer #endUserAction callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferEndUserAction :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferEndUserActionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the endUserAction signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textBuffer #endUserAction callback
--   
onTextBufferEndUserAction :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferEndUserActionCallback) -> m SignalHandlerId

-- | Emitted to insert a GtkTextChildAnchor in a
--   GtkTextBuffer.
--   
--   Insertion actually occurs in the default handler.
--   
--   Note that if your handler runs before the default handler it must not
--   invalidate the location iter (or has to revalidate
--   it). The default signal handler revalidates it to be placed after the
--   inserted anchor.
--   
--   See also: textBufferInsertChildAnchor.
type TextBufferInsertChildAnchorCallback = TextIter -> TextChildAnchor -> IO ()

-- | Connect a signal handler for the insertChildAnchor signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textBuffer #insertChildAnchor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferInsertChildAnchor :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferInsertChildAnchorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertChildAnchor signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textBuffer #insertChildAnchor callback
--   
onTextBufferInsertChildAnchor :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferInsertChildAnchorCallback) -> m SignalHandlerId

-- | Emitted to insert a GdkPaintable in a GtkTextBuffer.
--   
--   Insertion actually occurs in the default handler.
--   
--   Note that if your handler runs before the default handler it must not
--   invalidate the location iter (or has to revalidate
--   it). The default signal handler revalidates it to be placed after the
--   inserted paintable.
--   
--   See also: textBufferInsertPaintable.
type TextBufferInsertPaintableCallback = TextIter -> Paintable -> IO ()

-- | Connect a signal handler for the insertPaintable signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textBuffer #insertPaintable callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferInsertPaintable :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferInsertPaintableCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertPaintable signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textBuffer #insertPaintable callback
--   
onTextBufferInsertPaintable :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferInsertPaintableCallback) -> m SignalHandlerId

-- | Emitted to insert text in a GtkTextBuffer.
--   
--   Insertion actually occurs in the default handler.
--   
--   Note that if your handler runs before the default handler it must not
--   invalidate the location iter (or has to revalidate
--   it). The default signal handler revalidates it to point to the end of
--   the inserted text.
--   
--   See also: textBufferInsert, textBufferInsertRange.
type TextBufferInsertTextCallback = TextIter -> Text -> Int32 -> IO ()

-- | Connect a signal handler for the insertText signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #insertText callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferInsertText :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferInsertTextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertText signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #insertText callback
--   
onTextBufferInsertText :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferInsertTextCallback) -> m SignalHandlerId

-- | Emitted as notification after a GtkTextMark is deleted.
--   
--   See also: textBufferDeleteMark.
type TextBufferMarkDeletedCallback = TextMark -> IO ()

-- | Connect a signal handler for the markDeleted signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #markDeleted callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferMarkDeleted :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferMarkDeletedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the markDeleted signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #markDeleted callback
--   
onTextBufferMarkDeleted :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferMarkDeletedCallback) -> m SignalHandlerId

-- | Emitted as notification after a GtkTextMark is set.
--   
--   See also: textBufferCreateMark, textBufferMoveMark.
type TextBufferMarkSetCallback = TextIter -> TextMark -> IO ()

-- | Connect a signal handler for the markSet signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #markSet callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferMarkSet :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferMarkSetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the markSet signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #markSet callback
--   
onTextBufferMarkSet :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferMarkSetCallback) -> m SignalHandlerId

-- | Emitted when the modified bit of a GtkTextBuffer flips.
--   
--   See also: textBufferSetModified.
type TextBufferModifiedChangedCallback = IO ()

-- | Connect a signal handler for the modifiedChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after textBuffer #modifiedChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferModifiedChanged :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferModifiedChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the modifiedChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on textBuffer #modifiedChanged callback
--   
onTextBufferModifiedChanged :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferModifiedChangedCallback) -> m SignalHandlerId

-- | Emitted after paste operation has been completed.
--   
--   This is useful to properly scroll the view to the end of the pasted
--   text. See textBufferPasteClipboard for more details.
type TextBufferPasteDoneCallback = Clipboard -> IO ()

-- | Connect a signal handler for the pasteDone signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #pasteDone callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferPasteDone :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferPasteDoneCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pasteDone signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #pasteDone callback
--   
onTextBufferPasteDone :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferPasteDoneCallback) -> m SignalHandlerId

-- | Emitted when a request has been made to redo the previously undone
--   operation.
type TextBufferRedoCallback = IO ()

-- | Connect a signal handler for the redo signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #redo callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferRedo :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferRedoCallback) -> m SignalHandlerId

-- | Connect a signal handler for the redo signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on textBuffer #redo callback
--   
onTextBufferRedo :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferRedoCallback) -> m SignalHandlerId

-- | Emitted to remove all occurrences of tag from a range
--   of text in a GtkTextBuffer.
--   
--   Removal actually occurs in the default handler.
--   
--   Note that if your handler runs before the default handler it must not
--   invalidate the start and end iters (or
--   has to revalidate them).
--   
--   See also: textBufferRemoveTag.
type TextBufferRemoveTagCallback = TextTag -> TextIter -> TextIter -> IO ()

-- | Connect a signal handler for the removeTag signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #removeTag callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferRemoveTag :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferRemoveTagCallback) -> m SignalHandlerId

-- | Connect a signal handler for the removeTag signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on textBuffer #removeTag callback
--   
onTextBufferRemoveTag :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferRemoveTagCallback) -> m SignalHandlerId

-- | Emitted when a request has been made to undo the previous operation or
--   set of operations that have been grouped together.
type TextBufferUndoCallback = IO ()

-- | Connect a signal handler for the undo signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after textBuffer #undo callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBufferUndo :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferUndoCallback) -> m SignalHandlerId

-- | Connect a signal handler for the undo signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on textBuffer #undo callback
--   
onTextBufferUndo :: (IsTextBuffer a, MonadIO m) => a -> ((?self :: a) => TextBufferUndoCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.TextBuffer.TextBuffer
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.TextBuffer.TextBuffer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.TextBuffer.TextBuffer
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.TextBuffer.TextBuffer)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.TextBuffer.TextBuffer o) => GI.Gtk.Objects.TextBuffer.IsTextBuffer o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.TextBuffer.TextBuffer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.TextBuffer.TextBuffer

-- | A single-line text entry.
--   
--   GtkText is the common implementation of single-line text
--   editing that is shared between Entry, PasswordEntry,
--   SpinButton, and other widgets. In all of these, a
--   GtkText instance is used as the delegate for the
--   Editable implementation.
--   
--   A large number of key bindings s supported by default. If the entered
--   text is longer than the allocation of the widget, the widget will
--   scroll so that the cursor position is visible.
--   
--   When using an entry for passwords and other sensitive information, it
--   can be put into “password mode” using textSetVisibility. In
--   this mode, entered text is displayed using an “invisible” character.
--   By default, GTK picks the best invisible character that is available
--   in the current font, but it can be changed with
--   textSetInvisibleChar.
--   
--   If you want to add icons or progress display in an entry, look at
--   Entry. There are other alternatives for more specialized use
--   cases, such as SearchEntry.
--   
--   If you need multi-line editable text, use TextView.
--   
--   
Shortcuts and Gestures
--   
--   GtkText supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Shift</kbd>+<kbd>F10</kbd> or
--   <kbd>Menu</kbd> opens the context menu.
--   
- <kbd>Ctrl</kbd>+<kbd>A</kbd> or
--   <kbd>Ctrl</kbd>+<kbd>&sol;</kbd> selects
--   all the text.
--   
--   
- <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd>
--   or <kbd>Ctrl</kbd>+<kbd>&bsol;</kbd>
--   unselects all.
--   
- <kbd>Ctrl</kbd>+<kbd>Z</kbd> undoes the
--   last modification.
--   
- <kbd>Ctrl</kbd>+<kbd>Y</kbd> or
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Z</kbd>
--   redoes the last undone modification.
--   
--   
- <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>T</kbd>
--   toggles the text direction.
--   
- <kbd>Clear</kbd> clears the content.
--   
--   
--   Additionally, the following signals have default keybindings:
--   
--   
--   
- Text::activate
--   
- Text::backspace
--   
- Text::copyClipboard
--   
- Text::cutClipboard
--   
- Text::deleteFromCursor
--   
- Text::insertEmoji
--   
- Text::moveCursor
--   
- Text::pasteClipboard
--   
- Text::toggleOverwrite
--   
--   
--   
Actions
--   
--   GtkText defines a set of built-in actions:
--   
--   
--   
- clipboard.copy copies the contents to the clipboard.
--   
- clipboard.cut copies the contents to the clipboard and
--   deletes it from the widget.
--   
- clipboard.paste inserts the contents of the clipboard
--   into the widget.
--   
- menu.popup opens the context menu.
--   
- misc.insert-emoji opens the Emoji chooser.
--   
- misc.toggle-visibility toggles the
--   GtkText:visibility property.
--   
- misc.toggle-direction toggles the text direction.
--   
- selection.delete deletes the current selection.
--   
- selection.select-all selects all of the widgets
--   content.
--   
- text.redo redoes the last change to the contents.
--   
- text.undo undoes the last change to the contents.
--   
- text.clear removes all content.
--   
--   
--   
CSS nodes
--   
--   
--   text[.read-only]
--   ├── placeholder
--   ├── undershoot.left
--   ├── undershoot.right
--   ├── [selection]
--   ├── [cursor-handle[.top]
--   ├── [cursor-handle.bottom]
--   ├── [block-cursor]
--   ├── [cursor-handle[.top/.bottom][.insertion-cursor]]
--   ╰── [window.popup]
--   
--   
--   GtkText has a main node with the name text.
--   Depending on the properties of the widget, the .read-only
--   style class may appear.
--   
--   When the entry has a selection, it adds a subnode with the name
--   selection.
--   
--   When the entry is in overwrite mode, it adds a subnode with the name
--   block-cursor that determines how the block cursor is drawn.
--   
--   The CSS node for a context menu is added as a subnode with the name
--   popup.
--   
--   The undershoot nodes are used to draw the underflow
--   indication when content is scrolled out of view. These nodes get the
--   .left or .right style class added depending on where
--   the indication is drawn.
--   
--   When touch is used and touch selection handles are shown, they are
--   using CSS nodes with name cursor-handle. They get the
--   .top or .bottom style class depending on where they
--   are shown in relation to the selection. If there is just a single
--   handle for the text cursor, it gets the style class
--   .insertion-cursor.
--   
--   
Accessibility
--   
--   GtkText uses the AccessibleRoleNone role, which causes
--   it to be skipped for accessibility. This is because GtkText
--   is expected to be used as a delegate for a GtkEditable
--   implementation that will be represented to accessibility.
module GI.Gtk.Objects.Text

-- | Memory-managed wrapper type.
newtype Text
Text :: ManagedPtr Text -> Text

-- | Type class for types which can be safely cast to Text, for
--   instance with toText.
class (GObject o, IsDescendantOf Text o) => IsText o

-- | Cast to Text, for types for which this is known to be safe. For
--   general casts, use castTo.
toText :: (MonadIO m, IsText o) => o -> m Text

-- | Determines the positions of the strong and weak cursors for a given
--   character position.
--   
--   The position of each cursor is stored as a zero-width rectangle. The
--   strong cursor location is the location where characters of the
--   directionality equal to the base direction are inserted. The weak
--   cursor location is the location where characters of the directionality
--   opposite to the base direction are inserted.
--   
--   The rectangle positions are in widget coordinates.
--   
--   Since: 4.4
textComputeCursorExtents :: (HasCallStack, MonadIO m, IsText a) => a -> CSize -> m (Rect, Rect)

-- | Returns whether pressing <kbd>Enter</kbd> will activate
--   the default widget for the window containing the widget.
--   
--   See textSetActivatesDefault.
textGetActivatesDefault :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Gets the attribute list that was set on the text widget.
--   
--   See textSetAttributes.
textGetAttributes :: (HasCallStack, MonadIO m, IsText a) => a -> m (Maybe AttrList)

-- | Get the entry buffer object which holds the text for this widget.
textGetBuffer :: (HasCallStack, MonadIO m, IsText a) => a -> m EntryBuffer

-- | Returns whether Emoji completion is enabled.
textGetEnableEmojiCompletion :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Gets the extra menu model of the text widget.
--   
--   See textSetExtraMenu.
textGetExtraMenu :: (HasCallStack, MonadIO m, IsText a) => a -> m (Maybe MenuModel)

-- | Gets the input hints of the text widget.
textGetInputHints :: (HasCallStack, MonadIO m, IsText a) => a -> m [InputHints]

-- | Gets the input purpose of the text widget.
textGetInputPurpose :: (HasCallStack, MonadIO m, IsText a) => a -> m InputPurpose

-- | Retrieves the character displayed when visibility is set to false.
--   
--   Note that GTK does not compute this value unless it needs it, so the
--   value returned by this function is not very useful unless it has been
--   explicitly set with textSetInvisibleChar.
textGetInvisibleChar :: (HasCallStack, MonadIO m, IsText a) => a -> m Char

-- | Retrieves the maximum allowed length of the contents.
--   
--   See textSetMaxLength.
--   
--   This is equivalent to getting self's
--   GtkEntryBuffer and calling entryBufferGetMaxLength on
--   it.
textGetMaxLength :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32

-- | Gets whether text is overwritten when typing.
--   
--   See textSetOverwriteMode.
textGetOverwriteMode :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Retrieves the text that will be displayed when the text widget is
--   empty and unfocused
--   
--   See textSetPlaceholderText.
textGetPlaceholderText :: (HasCallStack, MonadIO m, IsText a) => a -> m (Maybe Text)

-- | Returns whether the text widget will grow and shrink with the content.
textGetPropagateTextWidth :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Gets the tab stops for the text widget.
--   
--   See textSetTabs.
textGetTabs :: (HasCallStack, MonadIO m, IsText a) => a -> m (Maybe TabArray)

-- | Retrieves the length of the contents.
--   
--   This is equivalent to getting self's
--   GtkEntryBuffer and calling entryBufferGetLength on it.
textGetTextLength :: (HasCallStack, MonadIO m, IsText a) => a -> m Word16

-- | Returns whether pasted text will be truncated to the first line.
textGetTruncateMultiline :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Retrieves whether the text is visible.
textGetVisibility :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Causes the text widget to have the keyboard focus.
--   
--   It behaves like widgetGrabFocus, except that it does not select
--   the contents of self.
--   
--   You only want to call this on some special entries which the user
--   usually doesn't want to replace all text in, such as
--   search-as-you-type entries.
textGrabFocusWithoutSelecting :: (HasCallStack, MonadIO m, IsText a) => a -> m Bool

-- | Creates a new GtkText.
textNew :: (HasCallStack, MonadIO m) => m Text

-- | Creates a new GtkText with the specified buffer.
textNewWithBuffer :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> m Text

-- | Sets whether pressing <kbd>Enter</kbd> will activate the
--   default widget.
--   
--   This usually means that the dialog containing self
--   will be closed, since the default widget is usually one of the dialog
--   buttons.
textSetActivatesDefault :: (HasCallStack, MonadIO m, IsText a) => a -> Bool -> m ()

-- | Apply attributes to the contents of the text widget.
textSetAttributes :: (HasCallStack, MonadIO m, IsText a) => a -> Maybe AttrList -> m ()

-- | Set the entry buffer object which holds the text for this widget.
textSetBuffer :: (HasCallStack, MonadIO m, IsText a, IsEntryBuffer b) => a -> b -> m ()

-- | Sets whether Emoji completion is enabled.
--   
--   If it is, typing ':', followed by a recognized keyword, will pop up a
--   window with suggested Emojis matching the keyword.
textSetEnableEmojiCompletion :: (HasCallStack, MonadIO m, IsText a) => a -> Bool -> m ()

-- | Sets a menu model to add to the context menu of the text widget.
textSetExtraMenu :: (HasCallStack, MonadIO m, IsText a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets hints that allow input methods to fine-tune their behaviour.
textSetInputHints :: (HasCallStack, MonadIO m, IsText a) => a -> [InputHints] -> m ()

-- | Sets the input purpose of the text widget.
--   
--   The input purpose can be used by on-screen keyboards and other input
--   methods to adjust their behaviour.
textSetInputPurpose :: (HasCallStack, MonadIO m, IsText a) => a -> InputPurpose -> m ()

-- | Sets the character to use when in “password mode”.
--   
--   By default, GTK picks the best invisible char available in the current
--   font. If you set the invisible char to 0, then the user will get no
--   feedback at all; there will be no text on the screen as they type.
textSetInvisibleChar :: (HasCallStack, MonadIO m, IsText a) => a -> Char -> m ()

-- | Sets the maximum allowed length of the contents.
--   
--   If the current contents are longer than the given length, they will be
--   truncated to fit.
--   
--   This is equivalent to getting self's
--   GtkEntryBuffer and calling entryBufferSetMaxLength on
--   it.
textSetMaxLength :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m ()

-- | Sets whether the text is overwritten when typing.
textSetOverwriteMode :: (HasCallStack, MonadIO m, IsText a) => a -> Bool -> m ()

-- | Sets the text to be displayed when the text widget is empty and
--   unfocused.
--   
--   This can be used to give a visual hint of the expected contents of the
--   text widget.
textSetPlaceholderText :: (HasCallStack, MonadIO m, IsText a) => a -> Maybe Text -> m ()

-- | Sets whether the text widget should grow and shrink with the content.
textSetPropagateTextWidth :: (HasCallStack, MonadIO m, IsText a) => a -> Bool -> m ()

-- | Sets tab stops for the text widget.
textSetTabs :: (HasCallStack, MonadIO m, IsText a) => a -> Maybe TabArray -> m ()

-- | Sets whether pasted text should be truncated to the first line.
textSetTruncateMultiline :: (HasCallStack, MonadIO m, IsText a) => a -> Bool -> m ()

-- | Sets whether the contents of the text widget are visible or not.
--   
--   When visibility is set to false, characters are displayed as the
--   invisible char, and it will also appear that way when the text in the
--   widget is copied to the clipboard.
--   
--   By default, GTK picks the best invisible character available in the
--   current font, but it can be changed with textSetInvisibleChar.
--   
--   Note that you probably want to set Text:inputPurpose to
--   InputPurposePassword or InputPurposePin to inform input
--   methods about the purpose of this widget, in addition to setting
--   visibility to false.
textSetVisibility :: (HasCallStack, MonadIO m, IsText a) => a -> Bool -> m ()

-- | Unsets the invisible char.
--   
--   After calling this, the default invisible char is used again.
textUnsetInvisibleChar :: (HasCallStack, MonadIO m, IsText a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activates-default” property. This is rarely needed directly,
--   but it is used by new.
constructTextActivatesDefault :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #activatesDefault
--   
getTextActivatesDefault :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #activatesDefault := value ]
--   
setTextActivatesDefault :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Set the value of the “attributes” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #attributes
--   
clearTextAttributes :: (MonadIO m, IsText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructTextAttributes :: (IsText o, MonadIO m) => AttrList -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #attributes
--   
getTextAttributes :: (MonadIO m, IsText o) => o -> m (Maybe AttrList)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #attributes := value ]
--   
setTextAttributes :: (MonadIO m, IsText o) => o -> AttrList -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “buffer” property. This is rarely needed directly, but it is
--   used by new.
constructTextBuffer :: (IsText o, MonadIO m, IsEntryBuffer a) => a -> m (GValueConstruct o)

-- | Get the value of the “buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #buffer
--   
getTextBuffer :: (MonadIO m, IsText o) => o -> m EntryBuffer

-- | Set the value of the “buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #buffer := value ]
--   
setTextBuffer :: (MonadIO m, IsText o, IsEntryBuffer a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-emoji-completion” property. This is rarely needed
--   directly, but it is used by new.
constructTextEnableEmojiCompletion :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-emoji-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #enableEmojiCompletion
--   
getTextEnableEmojiCompletion :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “enable-emoji-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #enableEmojiCompletion := value ]
--   
setTextEnableEmojiCompletion :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Set the value of the “extra-menu” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #extraMenu
--   
clearTextExtraMenu :: (MonadIO m, IsText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “extra-menu” property. This is rarely needed directly, but it
--   is used by new.
constructTextExtraMenu :: (IsText o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #extraMenu
--   
getTextExtraMenu :: (MonadIO m, IsText o) => o -> m (Maybe MenuModel)

-- | Set the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #extraMenu := value ]
--   
setTextExtraMenu :: (MonadIO m, IsText o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “im-module” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #imModule
--   
clearTextImModule :: (MonadIO m, IsText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “im-module” property. This is rarely needed directly, but it
--   is used by new.
constructTextImModule :: (IsText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #imModule
--   
getTextImModule :: (MonadIO m, IsText o) => o -> m (Maybe Text)

-- | Set the value of the “im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #imModule := value ]
--   
setTextImModule :: (MonadIO m, IsText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-hints” property. This is rarely needed directly, but
--   it is used by new.
constructTextInputHints :: (IsText o, MonadIO m) => [InputHints] -> m (GValueConstruct o)

-- | Get the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #inputHints
--   
getTextInputHints :: (MonadIO m, IsText o) => o -> m [InputHints]

-- | Set the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #inputHints := value ]
--   
setTextInputHints :: (MonadIO m, IsText o) => o -> [InputHints] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-purpose” property. This is rarely needed directly, but
--   it is used by new.
constructTextInputPurpose :: (IsText o, MonadIO m) => InputPurpose -> m (GValueConstruct o)

-- | Get the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #inputPurpose
--   
getTextInputPurpose :: (MonadIO m, IsText o) => o -> m InputPurpose

-- | Set the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #inputPurpose := value ]
--   
setTextInputPurpose :: (MonadIO m, IsText o) => o -> InputPurpose -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invisible-char” property. This is rarely needed directly,
--   but it is used by new.
constructTextInvisibleChar :: (IsText o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “invisible-char” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #invisibleChar
--   
getTextInvisibleChar :: (MonadIO m, IsText o) => o -> m Word32

-- | Set the value of the “invisible-char” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #invisibleChar := value ]
--   
setTextInvisibleChar :: (MonadIO m, IsText o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invisible-char-set” property. This is rarely needed
--   directly, but it is used by new.
constructTextInvisibleCharSet :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “invisible-char-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #invisibleCharSet
--   
getTextInvisibleCharSet :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “invisible-char-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #invisibleCharSet := value ]
--   
setTextInvisibleCharSet :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-length” property. This is rarely needed directly, but it
--   is used by new.
constructTextMaxLength :: (IsText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #maxLength
--   
getTextMaxLength :: (MonadIO m, IsText o) => o -> m Int32

-- | Set the value of the “max-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #maxLength := value ]
--   
setTextMaxLength :: (MonadIO m, IsText o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overwrite-mode” property. This is rarely needed directly,
--   but it is used by new.
constructTextOverwriteMode :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “overwrite-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #overwriteMode
--   
getTextOverwriteMode :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “overwrite-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #overwriteMode := value ]
--   
setTextOverwriteMode :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Set the value of the “placeholder-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #placeholderText
--   
clearTextPlaceholderText :: (MonadIO m, IsText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “placeholder-text” property. This is rarely needed directly,
--   but it is used by new.
constructTextPlaceholderText :: (IsText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #placeholderText
--   
getTextPlaceholderText :: (MonadIO m, IsText o) => o -> m (Maybe Text)

-- | Set the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #placeholderText := value ]
--   
setTextPlaceholderText :: (MonadIO m, IsText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “propagate-text-width” property. This is rarely needed
--   directly, but it is used by new.
constructTextPropagateTextWidth :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “propagate-text-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #propagateTextWidth
--   
getTextPropagateTextWidth :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “propagate-text-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #propagateTextWidth := value ]
--   
setTextPropagateTextWidth :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Get the value of the “scroll-offset” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #scrollOffset
--   
getTextScrollOffset :: (MonadIO m, IsText o) => o -> m Int32

-- | Set the value of the “tabs” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #tabs
--   
clearTextTabs :: (MonadIO m, IsText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tabs” property. This is rarely needed directly, but it is
--   used by new.
constructTextTabs :: (IsText o, MonadIO m) => TabArray -> m (GValueConstruct o)

-- | Get the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get text #tabs
--   
getTextTabs :: (MonadIO m, IsText o) => o -> m (Maybe TabArray)

-- | Set the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set text [ #tabs := value ]
--   
setTextTabs :: (MonadIO m, IsText o) => o -> TabArray -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “truncate-multiline” property. This is rarely needed
--   directly, but it is used by new.
constructTextTruncateMultiline :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “truncate-multiline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #truncateMultiline
--   
getTextTruncateMultiline :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “truncate-multiline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #truncateMultiline := value ]
--   
setTextTruncateMultiline :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visibility” property. This is rarely needed directly, but it
--   is used by new.
constructTextVisibility :: (IsText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visibility” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get text #visibility
--   
getTextVisibility :: (MonadIO m, IsText o) => o -> m Bool

-- | Set the value of the “visibility” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set text [ #visibility := value ]
--   
setTextVisibility :: (MonadIO m, IsText o) => o -> Bool -> m ()

-- | Emitted when the user hits the <kbd>Enter</kbd> key.
--   
--   The default bindings for this signal are all forms of the
--   <kbd>Enter</kbd> key.
type TextActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after text #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextActivate :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on text #activate callback
--   
onTextActivate :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextActivateCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Backspace</kbd> and
--   <kbd>Shift</kbd>+<kbd>Backspace</kbd>.
type TextBackspaceCallback = IO ()

-- | Connect a signal handler for the backspace signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after text #backspace callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextBackspace :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextBackspaceCallback) -> m SignalHandlerId

-- | Connect a signal handler for the backspace signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on text #backspace callback
--   
onTextBackspace :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextBackspaceCallback) -> m SignalHandlerId

-- | Emitted to copy the selection to the clipboard.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>c</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>Insert</kbd>.
type TextCopyClipboardCallback = IO ()

-- | Connect a signal handler for the copyClipboard signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after text #copyClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextCopyClipboard :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextCopyClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the copyClipboard signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on text #copyClipboard callback
--   
onTextCopyClipboard :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextCopyClipboardCallback) -> m SignalHandlerId

-- | Emitted to cut the selection to the clipboard.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>x</kbd> and
--   <kbd>Shift</kbd>+<kbd>Delete</kbd>.
type TextCutClipboardCallback = IO ()

-- | Connect a signal handler for the cutClipboard signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after text #cutClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextCutClipboard :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextCutClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cutClipboard signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on text #cutClipboard callback
--   
onTextCutClipboard :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextCutClipboardCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a text deletion.
--   
--   This is a keybinding signal.
--   
--   If the type is DeleteTypeChars, GTK deletes the
--   selection if there is one, otherwise it deletes the requested number
--   of characters.
--   
--   The default bindings for this signal are <kbd>Delete</kbd>
--   for deleting a character and
--   <kbd>Ctrl</kbd>+<kbd>Delete</kbd> for deleting
--   a word.
type TextDeleteFromCursorCallback = DeleteType -> Int32 -> IO ()

-- | Connect a signal handler for the deleteFromCursor signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after text #deleteFromCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextDeleteFromCursor :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextDeleteFromCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the deleteFromCursor signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on text #deleteFromCursor callback
--   
onTextDeleteFromCursor :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextDeleteFromCursorCallback) -> m SignalHandlerId

-- | Emitted when the user initiates the insertion of a fixed string at the
--   cursor.
--   
--   This is a keybinding signal.
--   
--   This signal has no default bindings.
type TextInsertAtCursorCallback = Text -> IO ()

-- | Connect a signal handler for the insertAtCursor signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after text #insertAtCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextInsertAtCursor :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextInsertAtCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertAtCursor signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on text #insertAtCursor callback
--   
onTextInsertAtCursor :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextInsertAtCursorCallback) -> m SignalHandlerId

-- | Emitted to present the Emoji chooser.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>.</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>;</kbd>
type TextInsertEmojiCallback = IO ()

-- | Connect a signal handler for the insertEmoji signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after text #insertEmoji callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextInsertEmoji :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextInsertEmojiCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertEmoji signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on text #insertEmoji callback
--   
onTextInsertEmoji :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextInsertEmojiCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a cursor movement.
--   
--   If the cursor is not visible in self, this signal
--   causes the viewport to be moved instead.
--   
--   This is a keybinding signal.
--   
--   Applications should not connect to it, but may emit it with
--   GObject.signal_emit_by_name if they need to control
--   the cursor programmatically.
--   
--   The default bindings for this signal come in two variants, the variant
--   with the <kbd>Shift</kbd> modifier extends the selection,
--   the variant without it does not. There are too many key combinations
--   to list them all here.
--   
--   
--   
- <kbd>←</kbd>, <kbd>→</kbd>,
--   <kbd>↑</kbd>, <kbd>↓</kbd> move by individual
--   characters/lines
--   
- <kbd>Ctrl</kbd>+<kbd>←</kbd>, etc. move by
--   words/paragraphs
--   
- <kbd>Home</kbd> and <kbd>End</kbd> move to
--   the ends of the buffer
--   
type TextMoveCursorCallback = MovementStep -> Int32 -> Bool -> IO ()

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after text #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextMoveCursor :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on text #moveCursor callback
--   
onTextMoveCursor :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextMoveCursorCallback) -> m SignalHandlerId

-- | Emitted to paste the contents of the clipboard.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>v</kbd> and
--   <kbd>Shift</kbd>+<kbd>Insert</kbd>.
type TextPasteClipboardCallback = IO ()

-- | Connect a signal handler for the pasteClipboard signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after text #pasteClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextPasteClipboard :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextPasteClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pasteClipboard signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on text #pasteClipboard callback
--   
onTextPasteClipboard :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextPasteClipboardCallback) -> m SignalHandlerId

-- | Emitted when the preedit text changes.
--   
--   If an input method is used, the typed text will not immediately be
--   committed to the buffer. So if you are interested in the text, connect
--   to this signal.
type TextPreeditChangedCallback = Text -> IO ()

-- | Connect a signal handler for the preeditChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after text #preeditChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextPreeditChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextPreeditChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the preeditChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on text #preeditChanged callback
--   
onTextPreeditChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextPreeditChangedCallback) -> m SignalHandlerId

-- | Emitted to toggle the overwrite mode.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal is <kbd>Insert</kbd>.
type TextToggleOverwriteCallback = IO ()

-- | Connect a signal handler for the toggleOverwrite signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after text #toggleOverwrite callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTextToggleOverwrite :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextToggleOverwriteCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleOverwrite signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on text #toggleOverwrite callback
--   
onTextToggleOverwrite :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextToggleOverwriteCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Text.Text
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Text.Text
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Text.Text
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Text.Text)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Text.Text o) => GI.Gtk.Objects.Text.IsText o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Text.Text
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Text.Text

-- | Shows a "light switch" that has two states: on or off.
--   
--   <picture> <source srcset="switch-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkSwitch" src="switch.png"> </picture>
--   
--   The user can control which state should be active by clicking the
--   empty area, or by dragging the slider.
--   
--   GtkSwitch can also express situations where the underlying
--   state changes with a delay. In this case, the slider position
--   indicates the user's recent change (represented by the
--   Switch:active property), while the trough color indicates the
--   present underlying state (represented by the Switch:state
--   property).
--   
--   <picture> <source srcset="switch-state-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="GtkSwitch with
--   delayed state change" src="switch-state.png"> </picture>
--   
--   See Switch::stateSet for details.
--   
--   
Shortcuts and Gestures
--   
--   GtkSwitch supports pan and drag gestures to move the slider.
--   
--   
CSS nodes
--   
--   
--   switch
--   ├── image
--   ├── image
--   ╰── slider
--   
--   
--   GtkSwitch has four css nodes, the main node with the name
--   switch and subnodes for the slider and the on and off images. Neither
--   of them is using any style classes.
--   
--   
Accessibility
--   
--   GtkSwitch uses the AccessibleRoleSwitch role.
module GI.Gtk.Objects.Switch

-- | Memory-managed wrapper type.
newtype Switch
Switch :: ManagedPtr Switch -> Switch

-- | Type class for types which can be safely cast to Switch, for
--   instance with toSwitch.
class (GObject o, IsDescendantOf Switch o) => IsSwitch o

-- | Cast to Switch, for types for which this is known to be safe.
--   For general casts, use castTo.
toSwitch :: (MonadIO m, IsSwitch o) => o -> m Switch

-- | Gets whether the GtkSwitch is in its “on” or “off” state.
switchGetActive :: (HasCallStack, MonadIO m, IsSwitch a) => a -> m Bool

-- | Gets the underlying state of the GtkSwitch.
switchGetState :: (HasCallStack, MonadIO m, IsSwitch a) => a -> m Bool

-- | Creates a new GtkSwitch widget.
switchNew :: (HasCallStack, MonadIO m) => m Switch

-- | Changes the state of self to the desired one.
switchSetActive :: (HasCallStack, MonadIO m, IsSwitch a) => a -> Bool -> m ()

-- | Sets the underlying state of the GtkSwitch.
--   
--   This function is typically called from a Switch::stateSet
--   signal handler in order to set up delayed state changes.
--   
--   See Switch::stateSet for details.
switchSetState :: (HasCallStack, MonadIO m, IsSwitch a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructSwitchActive :: (IsSwitch o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get switch #active
--   
getSwitchActive :: (MonadIO m, IsSwitch o) => o -> m Bool

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set switch [ #active := value ]
--   
setSwitchActive :: (MonadIO m, IsSwitch o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “state” property. This is rarely needed directly, but it is
--   used by new.
constructSwitchState :: (IsSwitch o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “state” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get switch #state
--   
getSwitchState :: (MonadIO m, IsSwitch o) => o -> m Bool

-- | Set the value of the “state” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set switch [ #state := value ]
--   
setSwitchState :: (MonadIO m, IsSwitch o) => o -> Bool -> m ()

-- | Emitted to animate the switch.
--   
--   Applications should never connect to this signal, but use the
--   Switch:active property.
type SwitchActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after switch #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSwitchActivate :: (IsSwitch a, MonadIO m) => a -> ((?self :: a) => SwitchActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on switch #activate callback
--   
onSwitchActivate :: (IsSwitch a, MonadIO m) => a -> ((?self :: a) => SwitchActivateCallback) -> m SignalHandlerId

-- | Emitted to change the underlying state.
--   
--   The stateSet signal is emitted when the user changes the switch
--   position. The default handler calls switchSetState with the
--   value of state.
--   
--   To implement delayed state change, applications can connect to this
--   signal, initiate the change of the underlying state, and call
--   switchSetState when the underlying state change is complete.
--   The signal handler should return True to prevent the default
--   handler from running.
type SwitchStateSetCallback = Bool -> IO Bool

-- | Connect a signal handler for the stateSet signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after switch #stateSet callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSwitchStateSet :: (IsSwitch a, MonadIO m) => a -> ((?self :: a) => SwitchStateSetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the stateSet signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on switch #stateSet callback
--   
onSwitchStateSet :: (IsSwitch a, MonadIO m) => a -> ((?self :: a) => SwitchStateSetCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Switch.Switch
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Switch.Switch
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Switch.Switch
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Switch.Switch)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Switch.Switch o) => GI.Gtk.Objects.Switch.IsSwitch o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Switch.Switch
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Switch.Switch

-- | Sorts items by comparing strings.
--   
--   To obtain the strings to compare, this sorter evaluates a
--   Expression.
--   
--   It does the comparison in a linguistically correct way using the
--   current locale by normalizing Unicode strings and possibly
--   case-folding them before performing the comparison.
module GI.Gtk.Objects.StringSorter

-- | Memory-managed wrapper type.
newtype StringSorter
StringSorter :: ManagedPtr StringSorter -> StringSorter

-- | Type class for types which can be safely cast to StringSorter,
--   for instance with toStringSorter.
class (GObject o, IsDescendantOf StringSorter o) => IsStringSorter o

-- | Cast to StringSorter, for types for which this is known to be
--   safe. For general casts, use castTo.
toStringSorter :: (MonadIO m, IsStringSorter o) => o -> m StringSorter

-- | Gets which collation method the sorter uses.
--   
--   Since: 4.10
stringSorterGetCollation :: (HasCallStack, MonadIO m, IsStringSorter a) => a -> m Collation

-- | Gets the expression that is evaluated to obtain strings from items.
stringSorterGetExpression :: (HasCallStack, MonadIO m, IsStringSorter a) => a -> m (Maybe Expression)

-- | Gets whether the sorter ignores case differences.
stringSorterGetIgnoreCase :: (HasCallStack, MonadIO m, IsStringSorter a) => a -> m Bool

-- | Creates a new string sorter that compares items using the given
--   expression.
--   
--   Unless an expression is set on it, this sorter will always compare
--   items as invalid.
stringSorterNew :: (HasCallStack, MonadIO m, IsExpression a) => Maybe a -> m StringSorter

-- | Sets the collation method to use for sorting.
--   
--   Since: 4.10
stringSorterSetCollation :: (HasCallStack, MonadIO m, IsStringSorter a) => a -> Collation -> m ()

-- | Sets the expression that is evaluated to obtain strings from items.
--   
--   The expression must have the type G_TYPE_STRING.
stringSorterSetExpression :: (HasCallStack, MonadIO m, IsStringSorter a, IsExpression b) => a -> Maybe b -> m ()

-- | Sets whether the sorter will ignore case differences.
stringSorterSetIgnoreCase :: (HasCallStack, MonadIO m, IsStringSorter a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “collation” property. This is rarely needed directly, but it
--   is used by new.
constructStringSorterCollation :: (IsStringSorter o, MonadIO m) => Collation -> m (GValueConstruct o)

-- | Get the value of the “collation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringSorter #collation
--   
getStringSorterCollation :: (MonadIO m, IsStringSorter o) => o -> m Collation

-- | Set the value of the “collation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringSorter [ #collation := value ]
--   
setStringSorterCollation :: (MonadIO m, IsStringSorter o) => o -> Collation -> m ()

-- | Set the value of the “expression” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #expression
--   
clearStringSorterExpression :: (MonadIO m, IsStringSorter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expression” property. This is rarely needed directly, but it
--   is used by new.
constructStringSorterExpression :: (IsStringSorter o, MonadIO m, IsExpression a) => a -> m (GValueConstruct o)

-- | Get the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringSorter #expression
--   
getStringSorterExpression :: (MonadIO m, IsStringSorter o) => o -> m (Maybe Expression)

-- | Set the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringSorter [ #expression := value ]
--   
setStringSorterExpression :: (MonadIO m, IsStringSorter o, IsExpression a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ignore-case” property. This is rarely needed directly, but
--   it is used by new.
constructStringSorterIgnoreCase :: (IsStringSorter o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “ignore-case” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringSorter #ignoreCase
--   
getStringSorterIgnoreCase :: (MonadIO m, IsStringSorter o) => o -> m Bool

-- | Set the value of the “ignore-case” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringSorter [ #ignoreCase := value ]
--   
setStringSorterIgnoreCase :: (MonadIO m, IsStringSorter o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.StringSorter.StringSorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StringSorter.StringSorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StringSorter.StringSorter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StringSorter.StringSorter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StringSorter.StringSorter o) => GI.Gtk.Objects.StringSorter.IsStringSorter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StringSorter.StringSorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StringSorter.StringSorter

-- | Determines whether to include items by comparing strings to a fixed
--   search term.
--   
--   The strings are obtained from the items by evaluating an expression
--   set with stringFilterSetExpression, and they are compared
--   against a search term set with stringFilterSetSearch.
--   
--   GtkStringFilter has several different modes of comparison -
--   it can match the whole string, just a prefix, or any substring. Use
--   stringFilterSetMatchMode choose a mode.
--   
--   It is also possible to make case-insensitive comparisons, with
--   stringFilterSetIgnoreCase.
module GI.Gtk.Objects.StringFilter

-- | Memory-managed wrapper type.
newtype StringFilter
StringFilter :: ManagedPtr StringFilter -> StringFilter

-- | Type class for types which can be safely cast to StringFilter,
--   for instance with toStringFilter.
class (GObject o, IsDescendantOf StringFilter o) => IsStringFilter o

-- | Cast to StringFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toStringFilter :: (MonadIO m, IsStringFilter o) => o -> m StringFilter

-- | Gets the expression that the string filter uses to obtain strings from
--   items.
stringFilterGetExpression :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> m (Maybe Expression)

-- | Returns whether the filter ignores case differences.
stringFilterGetIgnoreCase :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> m Bool

-- | Returns the match mode that the filter is using.
stringFilterGetMatchMode :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> m StringFilterMatchMode

-- | Gets the search term.
stringFilterGetSearch :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> m (Maybe Text)

-- | Creates a new string filter.
--   
--   You will want to set up the filter by providing a string to search for
--   and by providing a property to look up on the item.
stringFilterNew :: (HasCallStack, MonadIO m, IsExpression a) => Maybe a -> m StringFilter

-- | Sets the expression that the string filter uses to obtain strings from
--   items.
--   
--   The expression must have a value type of G_TYPE_STRING.
stringFilterSetExpression :: (HasCallStack, MonadIO m, IsStringFilter a, IsExpression b) => a -> Maybe b -> m ()

-- | Sets whether the filter ignores case differences.
stringFilterSetIgnoreCase :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> Bool -> m ()

-- | Sets the match mode for the filter.
stringFilterSetMatchMode :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> StringFilterMatchMode -> m ()

-- | Sets the string to search for.
stringFilterSetSearch :: (HasCallStack, MonadIO m, IsStringFilter a) => a -> Maybe Text -> m ()

-- | Set the value of the “expression” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #expression
--   
clearStringFilterExpression :: (MonadIO m, IsStringFilter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expression” property. This is rarely needed directly, but it
--   is used by new.
constructStringFilterExpression :: (IsStringFilter o, MonadIO m, IsExpression a) => a -> m (GValueConstruct o)

-- | Get the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringFilter #expression
--   
getStringFilterExpression :: (MonadIO m, IsStringFilter o) => o -> m (Maybe Expression)

-- | Set the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringFilter [ #expression := value ]
--   
setStringFilterExpression :: (MonadIO m, IsStringFilter o, IsExpression a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ignore-case” property. This is rarely needed directly, but
--   it is used by new.
constructStringFilterIgnoreCase :: (IsStringFilter o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “ignore-case” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringFilter #ignoreCase
--   
getStringFilterIgnoreCase :: (MonadIO m, IsStringFilter o) => o -> m Bool

-- | Set the value of the “ignore-case” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringFilter [ #ignoreCase := value ]
--   
setStringFilterIgnoreCase :: (MonadIO m, IsStringFilter o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “match-mode” property. This is rarely needed directly, but it
--   is used by new.
constructStringFilterMatchMode :: (IsStringFilter o, MonadIO m) => StringFilterMatchMode -> m (GValueConstruct o)

-- | Get the value of the “match-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringFilter #matchMode
--   
getStringFilterMatchMode :: (MonadIO m, IsStringFilter o) => o -> m StringFilterMatchMode

-- | Set the value of the “match-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringFilter [ #matchMode := value ]
--   
setStringFilterMatchMode :: (MonadIO m, IsStringFilter o) => o -> StringFilterMatchMode -> m ()

-- | Set the value of the “search” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #search
--   
clearStringFilterSearch :: (MonadIO m, IsStringFilter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “search” property. This is rarely needed directly, but it is
--   used by new.
constructStringFilterSearch :: (IsStringFilter o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “search” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stringFilter #search
--   
getStringFilterSearch :: (MonadIO m, IsStringFilter o) => o -> m (Maybe Text)

-- | Set the value of the “search” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stringFilter [ #search := value ]
--   
setStringFilterSearch :: (MonadIO m, IsStringFilter o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.StringFilter.StringFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StringFilter.StringFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StringFilter.StringFilter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StringFilter.StringFilter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StringFilter.StringFilter o) => GI.Gtk.Objects.StringFilter.IsStringFilter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StringFilter.StringFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StringFilter.StringFilter

-- | A GtkStatusbar widget is usually placed along the bottom of
--   an application's main Window.
--   
--   <picture> <source srcset="statusbar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkStatusbar" src="statusbar.png"> </picture>
--   
--   A GtkStatusBar may provide a regular commentary of the
--   application's status (as is usually the case in a web browser, for
--   example), or may be used to simply output a message when the status
--   changes, (when an upload is complete in an FTP client, for example).
--   
--   Status bars in GTK maintain a stack of messages. The message at the
--   top of the each bar’s stack is the one that will currently be
--   displayed.
--   
--   Any messages added to a statusbar’s stack must specify a context id
--   that is used to uniquely identify the source of a message. This
--   context id can be generated by statusbarGetContextId, given a
--   message and the statusbar that it will be added to. Note that messages
--   are stored in a stack, and when choosing which message to display, the
--   stack structure is adhered to, regardless of the context identifier of
--   a message.
--   
--   One could say that a statusbar maintains one stack of messages for
--   display purposes, but allows multiple message producers to maintain
--   sub-stacks of the messages they produced (via context ids).
--   
--   Status bars are created using statusbarNew.
--   
--   Messages are added to the bar’s stack with statusbarPush.
--   
--   The message at the top of the stack can be removed using
--   statusbarPop. A message can be removed from anywhere in the
--   stack if its message id was recorded at the time it was added. This is
--   done using statusbarRemove.
--   
--   
CSS node
--   
--   GtkStatusbar has a single CSS node with name
--   statusbar.
module GI.Gtk.Objects.Statusbar

-- | Memory-managed wrapper type.
newtype Statusbar
Statusbar :: ManagedPtr Statusbar -> Statusbar

-- | Type class for types which can be safely cast to Statusbar, for
--   instance with toStatusbar.
class (GObject o, IsDescendantOf Statusbar o) => IsStatusbar o

-- | Cast to Statusbar, for types for which this is known to be
--   safe. For general casts, use castTo.
toStatusbar :: (MonadIO m, IsStatusbar o) => o -> m Statusbar

-- | Returns a new context identifier, given a description of the actual
--   context.
--   
--   Note that the description is not shown in the UI.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
statusbarGetContextId :: (HasCallStack, MonadIO m, IsStatusbar a) => a -> Text -> m Word32

-- | Creates a new GtkStatusbar ready for messages.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
statusbarNew :: (HasCallStack, MonadIO m) => m Statusbar

-- | Removes the first message in the GtkStatusbar’s stack with
--   the given context id.
--   
--   Note that this may not change the displayed message, if the message at
--   the top of the stack has a different context id.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
statusbarPop :: (HasCallStack, MonadIO m, IsStatusbar a) => a -> Word32 -> m ()

-- | Pushes a new message onto a statusbar’s stack.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
statusbarPush :: (HasCallStack, MonadIO m, IsStatusbar a) => a -> Word32 -> Text -> m Word32

-- | Forces the removal of a message from a statusbar’s stack. The exact
--   contextId and messageId must be
--   specified.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
statusbarRemove :: (HasCallStack, MonadIO m, IsStatusbar a) => a -> Word32 -> Word32 -> m ()

-- | Forces the removal of all messages from a statusbar's stack with the
--   exact contextId.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
statusbarRemoveAll :: (HasCallStack, MonadIO m, IsStatusbar a) => a -> Word32 -> m ()

-- | Emitted whenever a new message is popped off a statusbar's stack.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type StatusbarTextPoppedCallback = Word32 -> Text -> IO ()

-- | Connect a signal handler for the textPopped signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after statusbar #textPopped callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterStatusbarTextPopped :: (IsStatusbar a, MonadIO m) => a -> ((?self :: a) => StatusbarTextPoppedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the textPopped signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on statusbar #textPopped callback
--   
onStatusbarTextPopped :: (IsStatusbar a, MonadIO m) => a -> ((?self :: a) => StatusbarTextPoppedCallback) -> m SignalHandlerId

-- | Emitted whenever a new message gets pushed onto a statusbar's stack.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type StatusbarTextPushedCallback = Word32 -> Text -> IO ()

-- | Connect a signal handler for the textPushed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after statusbar #textPushed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterStatusbarTextPushed :: (IsStatusbar a, MonadIO m) => a -> ((?self :: a) => StatusbarTextPushedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the textPushed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on statusbar #textPushed callback
--   
onStatusbarTextPushed :: (IsStatusbar a, MonadIO m) => a -> ((?self :: a) => StatusbarTextPushedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Statusbar.Statusbar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Statusbar.Statusbar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Statusbar.Statusbar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Statusbar.Statusbar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Statusbar.Statusbar o) => GI.Gtk.Objects.Statusbar.IsStatusbar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Statusbar.Statusbar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Statusbar.Statusbar

-- | Shows a row of buttons to switch between GtkStack pages.
--   
--   <picture> <source srcset="stackswitcher-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkStackSwitcher" src="stackswitcher.png"> </picture>
--   
--   It acts as a controller for the associated GtkStack.
--   
--   All the content for the buttons comes from the properties of the
--   stacks StackPage objects; the button visibility in a
--   GtkStackSwitcher widget is controlled by the visibility of
--   the child in the GtkStack.
--   
--   It is possible to associate multiple GtkStackSwitcher widgets
--   with the same GtkStack widget.
--   
--   
CSS nodes
--   
--   GtkStackSwitcher has a single CSS node named stackswitcher
--   and style class .stack-switcher.
--   
--   When circumstances require it, GtkStackSwitcher adds the
--   .needs-attention style class to the widgets representing the stack
--   pages.
--   
--   
Accessibility
--   
--   GtkStackSwitcher uses the AccessibleRoleTabList role
--   and uses the AccessibleRoleTab role for its buttons.
--   
--   
Orientable
--   
--   Since GTK 4.4, GtkStackSwitcher implements
--   GtkOrientable allowing the stack switcher to be made vertical
--   with gtk_orientable_set_orientation().
module GI.Gtk.Objects.StackSwitcher

-- | Memory-managed wrapper type.
newtype StackSwitcher
StackSwitcher :: ManagedPtr StackSwitcher -> StackSwitcher

-- | Type class for types which can be safely cast to StackSwitcher,
--   for instance with toStackSwitcher.
class (GObject o, IsDescendantOf StackSwitcher o) => IsStackSwitcher o

-- | Cast to StackSwitcher, for types for which this is known to be
--   safe. For general casts, use castTo.
toStackSwitcher :: (MonadIO m, IsStackSwitcher o) => o -> m StackSwitcher

-- | Retrieves the stack.
stackSwitcherGetStack :: (HasCallStack, MonadIO m, IsStackSwitcher a) => a -> m (Maybe Stack)

-- | Create a new GtkStackSwitcher.
stackSwitcherNew :: (HasCallStack, MonadIO m) => m StackSwitcher

-- | Sets the stack to control.
stackSwitcherSetStack :: (HasCallStack, MonadIO m, IsStackSwitcher a, IsStack b) => a -> Maybe b -> m ()

-- | Set the value of the “stack” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #stack
--   
clearStackSwitcherStack :: (MonadIO m, IsStackSwitcher o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stack” property. This is rarely needed directly, but it is
--   used by new.
constructStackSwitcherStack :: (IsStackSwitcher o, MonadIO m, IsStack a) => a -> m (GValueConstruct o)

-- | Get the value of the “stack” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackSwitcher #stack
--   
getStackSwitcherStack :: (MonadIO m, IsStackSwitcher o) => o -> m (Maybe Stack)

-- | Set the value of the “stack” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackSwitcher [ #stack := value ]
--   
setStackSwitcherStack :: (MonadIO m, IsStackSwitcher o, IsStack a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.StackSwitcher.StackSwitcher
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StackSwitcher.StackSwitcher
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StackSwitcher.StackSwitcher
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StackSwitcher.StackSwitcher)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StackSwitcher.StackSwitcher o) => GI.Gtk.Objects.StackSwitcher.IsStackSwitcher o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StackSwitcher.StackSwitcher
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StackSwitcher.StackSwitcher

-- | Uses a sidebar to switch between GtkStack pages.
--   
--   <picture> <source srcset="sidebar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkStackSidebar" src="sidebar.png"> </picture>
--   
--   In order to use a GtkStackSidebar, you simply use a
--   GtkStack to organize your UI flow, and add the sidebar to
--   your sidebar area. You can use stackSidebarSetStack to connect
--   the GtkStackSidebar to the GtkStack.
--   
--   
CSS nodes
--   
--   GtkStackSidebar has a single CSS node with name stacksidebar
--   and style class .sidebar.
--   
--   When circumstances require it, GtkStackSidebar adds the
--   .needs-attention style class to the widgets representing the stack
--   pages.
module GI.Gtk.Objects.StackSidebar

-- | Memory-managed wrapper type.
newtype StackSidebar
StackSidebar :: ManagedPtr StackSidebar -> StackSidebar

-- | Type class for types which can be safely cast to StackSidebar,
--   for instance with toStackSidebar.
class (GObject o, IsDescendantOf StackSidebar o) => IsStackSidebar o

-- | Cast to StackSidebar, for types for which this is known to be
--   safe. For general casts, use castTo.
toStackSidebar :: (MonadIO m, IsStackSidebar o) => o -> m StackSidebar

-- | Retrieves the stack.
stackSidebarGetStack :: (HasCallStack, MonadIO m, IsStackSidebar a) => a -> m (Maybe Stack)

-- | Creates a new GtkStackSidebar.
stackSidebarNew :: (HasCallStack, MonadIO m) => m StackSidebar

-- | Set the GtkStack associated with this
--   GtkStackSidebar.
--   
--   The sidebar widget will automatically update according to the order
--   and items within the given GtkStack.
stackSidebarSetStack :: (HasCallStack, MonadIO m, IsStackSidebar a, IsStack b) => a -> b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stack” property. This is rarely needed directly, but it is
--   used by new.
constructStackSidebarStack :: (IsStackSidebar o, MonadIO m, IsStack a) => a -> m (GValueConstruct o)

-- | Get the value of the “stack” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackSidebar #stack
--   
getStackSidebarStack :: (MonadIO m, IsStackSidebar o) => o -> m (Maybe Stack)

-- | Set the value of the “stack” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackSidebar [ #stack := value ]
--   
setStackSidebarStack :: (MonadIO m, IsStackSidebar o, IsStack a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.StackSidebar.StackSidebar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StackSidebar.StackSidebar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StackSidebar.StackSidebar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StackSidebar.StackSidebar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StackSidebar.StackSidebar o) => GI.Gtk.Objects.StackSidebar.IsStackSidebar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StackSidebar.StackSidebar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StackSidebar.StackSidebar

-- | An auxiliary class used by GtkStack.
module GI.Gtk.Objects.StackPage

-- | Memory-managed wrapper type.
newtype StackPage
StackPage :: ManagedPtr StackPage -> StackPage

-- | Type class for types which can be safely cast to StackPage, for
--   instance with toStackPage.
class (GObject o, IsDescendantOf StackPage o) => IsStackPage o

-- | Cast to StackPage, for types for which this is known to be
--   safe. For general casts, use castTo.
toStackPage :: (MonadIO m, IsStackPage o) => o -> m StackPage

-- | Returns the stack child to which self belongs.
stackPageGetChild :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m Widget

-- | Returns the icon name of the page.
stackPageGetIconName :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m (Maybe Text)

-- | Returns the name of the page.
stackPageGetName :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m (Maybe Text)

-- | Returns whether the page is marked as “needs attention”.
stackPageGetNeedsAttention :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m Bool

-- | Gets the page title.
stackPageGetTitle :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m (Maybe Text)

-- | Gets whether underlines in the page title indicate mnemonics.
stackPageGetUseUnderline :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m Bool

-- | Returns whether page is visible in its
--   GtkStack.
--   
--   This is independent from the Widget:visible property of its
--   widget.
stackPageGetVisible :: (HasCallStack, MonadIO m, IsStackPage a) => a -> m Bool

-- | Sets the icon name of the page.
stackPageSetIconName :: (HasCallStack, MonadIO m, IsStackPage a) => a -> Text -> m ()

-- | Sets the name of the page.
stackPageSetName :: (HasCallStack, MonadIO m, IsStackPage a) => a -> Text -> m ()

-- | Sets whether the page is marked as “needs attention”.
stackPageSetNeedsAttention :: (HasCallStack, MonadIO m, IsStackPage a) => a -> Bool -> m ()

-- | Sets the page title.
stackPageSetTitle :: (HasCallStack, MonadIO m, IsStackPage a) => a -> Text -> m ()

-- | Sets whether underlines in the page title indicate mnemonics.
stackPageSetUseUnderline :: (HasCallStack, MonadIO m, IsStackPage a) => a -> Bool -> m ()

-- | Sets whether page is visible in its GtkStack.
stackPageSetVisible :: (HasCallStack, MonadIO m, IsStackPage a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructStackPageChild :: (IsStackPage o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackPage #child
--   
getStackPageChild :: (MonadIO m, IsStackPage o) => o -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructStackPageIconName :: (IsStackPage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackPage #iconName
--   
getStackPageIconName :: (MonadIO m, IsStackPage o) => o -> m (Maybe Text)

-- | Set the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackPage [ #iconName := value ]
--   
setStackPageIconName :: (MonadIO m, IsStackPage o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructStackPageName :: (IsStackPage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get stackPage #name
--   
getStackPageName :: (MonadIO m, IsStackPage o) => o -> m (Maybe Text)

-- | Set the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set stackPage [ #name := value ]
--   
setStackPageName :: (MonadIO m, IsStackPage o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “needs-attention” property. This is rarely needed directly,
--   but it is used by new.
constructStackPageNeedsAttention :: (IsStackPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “needs-attention” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackPage #needsAttention
--   
getStackPageNeedsAttention :: (MonadIO m, IsStackPage o) => o -> m Bool

-- | Set the value of the “needs-attention” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackPage [ #needsAttention := value ]
--   
setStackPageNeedsAttention :: (MonadIO m, IsStackPage o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructStackPageTitle :: (IsStackPage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackPage #title
--   
getStackPageTitle :: (MonadIO m, IsStackPage o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackPage [ #title := value ]
--   
setStackPageTitle :: (MonadIO m, IsStackPage o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-underline” property. This is rarely needed directly, but
--   it is used by new.
constructStackPageUseUnderline :: (IsStackPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackPage #useUnderline
--   
getStackPageUseUnderline :: (MonadIO m, IsStackPage o) => o -> m Bool

-- | Set the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackPage [ #useUnderline := value ]
--   
setStackPageUseUnderline :: (MonadIO m, IsStackPage o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible” property. This is rarely needed directly, but it is
--   used by new.
constructStackPageVisible :: (IsStackPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stackPage #visible
--   
getStackPageVisible :: (MonadIO m, IsStackPage o) => o -> m Bool

-- | Set the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stackPage [ #visible := value ]
--   
setStackPageVisible :: (MonadIO m, IsStackPage o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.StackPage.StackPage
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.StackPage.StackPage
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.StackPage.StackPage
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.StackPage.StackPage)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.StackPage.StackPage o) => GI.Gtk.Objects.StackPage.IsStackPage o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.StackPage.StackPage
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.StackPage.StackPage

-- | Shows one of its children at a time.
--   
--   <picture> <source srcset="stack-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkStack" src="stack.png"> </picture>
--   
--   In contrast to GtkNotebook, GtkStack does not
--   provide a means for users to change the visible child. Instead, a
--   separate widget such as StackSwitcher or StackSidebar
--   can be used with GtkStack to provide this functionality.
--   
--   Transitions between pages can be animated as slides or fades. This can
--   be controlled with stackSetTransitionType. These animations
--   respect the Settings:gtkEnableAnimations setting.
--   
--   GtkStack maintains a StackPage object for each added
--   child, which holds additional per-child properties. You obtain the
--   GtkStackPage for a child with stackGetPage and you can
--   obtain a GtkSelectionModel containing all the pages with
--   stackGetPages.
--   
--   
GtkStack as GtkBuildable
--   
--   To set child-specific properties in a .ui file, create
--   GtkStackPage objects explicitly, and set the child widget as
--   a property on it:
--   
--   
xml code
--   
--   
--   <object class="GtkStack" id="stack">
--     <child>
--       <object class="GtkStackPage">
--         <property name="name">page1</property>
--         <property name="title">In the beginning…</property>
--         <property name="child">
--           <object class="GtkLabel">
--             <property name="label">It was dark</property>
--           </object>
--         </property>
--       </object>
--     </child>
--   
--   
--   
CSS nodes
--   
--   GtkStack has a single CSS node named stack.
--   
--   
Accessibility
--   
--   GtkStack uses the AccessibleRoleTabPanel role for the
--   stack pages, which are the accessible parent objects of the child
--   widgets.
module GI.Gtk.Objects.Stack

-- | Memory-managed wrapper type.
newtype Stack
Stack :: ManagedPtr Stack -> Stack

-- | Type class for types which can be safely cast to Stack, for
--   instance with toStack.
class (GObject o, IsDescendantOf Stack o) => IsStack o

-- | Cast to Stack, for types for which this is known to be safe.
--   For general casts, use castTo.
toStack :: (MonadIO m, IsStack o) => o -> m Stack

-- | Adds a child to stack.
stackAddChild :: (HasCallStack, MonadIO m, IsStack a, IsWidget b) => a -> b -> m StackPage

-- | Adds a child to stack.
--   
--   The child is identified by the name.
stackAddNamed :: (HasCallStack, MonadIO m, IsStack a, IsWidget b) => a -> b -> Maybe Text -> m StackPage

-- | Adds a child to stack.
--   
--   The child is identified by the name. The
--   title will be used by GtkStackSwitcher to
--   represent child in a tab bar, so it should be short.
stackAddTitled :: (HasCallStack, MonadIO m, IsStack a, IsWidget b) => a -> b -> Maybe Text -> Text -> m StackPage

-- | Finds the child with the name given as the argument.
--   
--   Returns Nothing if there is no child with this name.
stackGetChildByName :: (HasCallStack, MonadIO m, IsStack a) => a -> Text -> m (Maybe Widget)

-- | Gets whether stack is horizontally homogeneous.
stackGetHhomogeneous :: (HasCallStack, MonadIO m, IsStack a) => a -> m Bool

-- | Returns whether the GtkStack is set up to interpolate between
--   the sizes of children on page switch.
stackGetInterpolateSize :: (HasCallStack, MonadIO m, IsStack a) => a -> m Bool

-- | Returns the GtkStackPage object for child.
stackGetPage :: (HasCallStack, MonadIO m, IsStack a, IsWidget b) => a -> b -> m StackPage

-- | Returns a GListModel that contains the pages of the stack.
--   
--   This can be used to keep an up-to-date view. The model also implements
--   SelectionModel and can be used to track and modify the visible
--   page.
stackGetPages :: (HasCallStack, MonadIO m, IsStack a) => a -> m SelectionModel

-- | Returns the amount of time (in milliseconds) that transitions between
--   pages in stack will take.
stackGetTransitionDuration :: (HasCallStack, MonadIO m, IsStack a) => a -> m Word32

-- | Returns whether the stack is currently in a transition
--   from one page to another.
stackGetTransitionRunning :: (HasCallStack, MonadIO m, IsStack a) => a -> m Bool

-- | Gets the type of animation that will be used for transitions between
--   pages in stack.
stackGetTransitionType :: (HasCallStack, MonadIO m, IsStack a) => a -> m StackTransitionType

-- | Gets whether stack is vertically homogeneous.
stackGetVhomogeneous :: (HasCallStack, MonadIO m, IsStack a) => a -> m Bool

-- | Gets the currently visible child of stack.
--   
--   Returns Nothing if there are no visible children.
stackGetVisibleChild :: (HasCallStack, MonadIO m, IsStack a) => a -> m (Maybe Widget)

-- | Returns the name of the currently visible child of
--   stack.
--   
--   Returns Nothing if there is no visible child.
stackGetVisibleChildName :: (HasCallStack, MonadIO m, IsStack a) => a -> m (Maybe Text)

-- | Creates a new GtkStack.
stackNew :: (HasCallStack, MonadIO m) => m Stack

-- | Removes a child widget from stack.
stackRemove :: (HasCallStack, MonadIO m, IsStack a, IsWidget b) => a -> b -> m ()

-- | Sets the GtkStack to be horizontally homogeneous or not.
--   
--   If it is homogeneous, the GtkStack will request the same
--   width for all its children. If it isn't, the stack may change width
--   when a different child becomes visible.
stackSetHhomogeneous :: (HasCallStack, MonadIO m, IsStack a) => a -> Bool -> m ()

-- | Sets whether or not stack will interpolate its size
--   when changing the visible child.
--   
--   If the Stack:interpolateSize property is set to True,
--   stack will interpolate its size between the current
--   one and the one it'll take after changing the visible child, according
--   to the set transition duration.
stackSetInterpolateSize :: (HasCallStack, MonadIO m, IsStack a) => a -> Bool -> m ()

-- | Sets the duration that transitions between pages in
--   stack will take.
stackSetTransitionDuration :: (HasCallStack, MonadIO m, IsStack a) => a -> Word32 -> m ()

-- | Sets the type of animation that will be used for transitions between
--   pages in stack.
--   
--   Available types include various kinds of fades and slides.
--   
--   The transition type can be changed without problems at runtime, so it
--   is possible to change the animation based on the page that is about to
--   become current.
stackSetTransitionType :: (HasCallStack, MonadIO m, IsStack a) => a -> StackTransitionType -> m ()

-- | Sets the GtkStack to be vertically homogeneous or not.
--   
--   If it is homogeneous, the GtkStack will request the same
--   height for all its children. If it isn't, the stack may change height
--   when a different child becomes visible.
stackSetVhomogeneous :: (HasCallStack, MonadIO m, IsStack a) => a -> Bool -> m ()

-- | Makes child the visible child of
--   stack.
--   
--   If child is different from the currently visible
--   child, the transition between the two will be animated with the
--   current transition type of stack.
--   
--   Note that the child widget has to be visible itself
--   (see widgetShow) in order to become the visible child of
--   stack.
stackSetVisibleChild :: (HasCallStack, MonadIO m, IsStack a, IsWidget b) => a -> b -> m ()

-- | Makes the child with the given name visible.
--   
--   Note that the child widget has to be visible itself (see
--   widgetShow) in order to become the visible child of
--   stack.
stackSetVisibleChildFull :: (HasCallStack, MonadIO m, IsStack a) => a -> Text -> StackTransitionType -> m ()

-- | Makes the child with the given name visible.
--   
--   If child is different from the currently visible
--   child, the transition between the two will be animated with the
--   current transition type of stack.
--   
--   Note that the child widget has to be visible itself (see
--   widgetShow) in order to become the visible child of
--   stack.
stackSetVisibleChildName :: (HasCallStack, MonadIO m, IsStack a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hhomogeneous” property. This is rarely needed directly, but
--   it is used by new.
constructStackHhomogeneous :: (IsStack o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “hhomogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #hhomogeneous
--   
getStackHhomogeneous :: (MonadIO m, IsStack o) => o -> m Bool

-- | Set the value of the “hhomogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #hhomogeneous := value ]
--   
setStackHhomogeneous :: (MonadIO m, IsStack o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “interpolate-size” property. This is rarely needed directly,
--   but it is used by new.
constructStackInterpolateSize :: (IsStack o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “interpolate-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #interpolateSize
--   
getStackInterpolateSize :: (MonadIO m, IsStack o) => o -> m Bool

-- | Set the value of the “interpolate-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #interpolateSize := value ]
--   
setStackInterpolateSize :: (MonadIO m, IsStack o) => o -> Bool -> m ()

-- | Get the value of the “pages” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #pages
--   
getStackPages :: (MonadIO m, IsStack o) => o -> m (Maybe SelectionModel)

-- | Construct a GValueConstruct with valid value for the
--   “transition-duration” property. This is rarely needed
--   directly, but it is used by new.
constructStackTransitionDuration :: (IsStack o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “transition-duration” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #transitionDuration
--   
getStackTransitionDuration :: (MonadIO m, IsStack o) => o -> m Word32

-- | Set the value of the “transition-duration” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #transitionDuration := value ]
--   
setStackTransitionDuration :: (MonadIO m, IsStack o) => o -> Word32 -> m ()

-- | Get the value of the “transition-running” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #transitionRunning
--   
getStackTransitionRunning :: (MonadIO m, IsStack o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “transition-type” property. This is rarely needed directly,
--   but it is used by new.
constructStackTransitionType :: (IsStack o, MonadIO m) => StackTransitionType -> m (GValueConstruct o)

-- | Get the value of the “transition-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #transitionType
--   
getStackTransitionType :: (MonadIO m, IsStack o) => o -> m StackTransitionType

-- | Set the value of the “transition-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #transitionType := value ]
--   
setStackTransitionType :: (MonadIO m, IsStack o) => o -> StackTransitionType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vhomogeneous” property. This is rarely needed directly, but
--   it is used by new.
constructStackVhomogeneous :: (IsStack o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “vhomogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #vhomogeneous
--   
getStackVhomogeneous :: (MonadIO m, IsStack o) => o -> m Bool

-- | Set the value of the “vhomogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #vhomogeneous := value ]
--   
setStackVhomogeneous :: (MonadIO m, IsStack o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible-child” property. This is rarely needed directly, but
--   it is used by new.
constructStackVisibleChild :: (IsStack o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “visible-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #visibleChild
--   
getStackVisibleChild :: (MonadIO m, IsStack o) => o -> m (Maybe Widget)

-- | Set the value of the “visible-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #visibleChild := value ]
--   
setStackVisibleChild :: (MonadIO m, IsStack o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible-child-name” property. This is rarely needed
--   directly, but it is used by new.
constructStackVisibleChildName :: (IsStack o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “visible-child-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get stack #visibleChildName
--   
getStackVisibleChildName :: (MonadIO m, IsStack o) => o -> m (Maybe Text)

-- | Set the value of the “visible-child-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set stack [ #visibleChildName := value ]
--   
setStackVisibleChildName :: (MonadIO m, IsStack o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Stack.Stack
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Stack.Stack
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Stack.Stack
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Stack.Stack)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Stack.Stack o) => GI.Gtk.Objects.Stack.IsStack o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Stack.Stack
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Stack.Stack

-- | Displays an icon-size spinning animation.
--   
--   It is often used as an alternative to a ProgressBar for
--   displaying indefinite activity, instead of actual progress.
--   
--   <picture> <source srcset="spinner-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkSpinner" src="spinner.png"> </picture>
--   
--   To start the animation, use spinnerStart, to stop it use
--   spinnerStop.
--   
--   
CSS nodes
--   
--   GtkSpinner has a single CSS node with the name spinner. When
--   the animation is active, the :checked pseudoclass is added to this
--   node.
--   
--   
Accessibility
--   
--   GtkSpinner uses the AccessibleRoleProgressBar role.
module GI.Gtk.Objects.Spinner

-- | Memory-managed wrapper type.
newtype Spinner
Spinner :: ManagedPtr Spinner -> Spinner

-- | Type class for types which can be safely cast to Spinner, for
--   instance with toSpinner.
class (GObject o, IsDescendantOf Spinner o) => IsSpinner o

-- | Cast to Spinner, for types for which this is known to be safe.
--   For general casts, use castTo.
toSpinner :: (MonadIO m, IsSpinner o) => o -> m Spinner

-- | Returns whether the spinner is spinning.
spinnerGetSpinning :: (HasCallStack, MonadIO m, IsSpinner a) => a -> m Bool

-- | Returns a new spinner widget. Not yet started.
spinnerNew :: (HasCallStack, MonadIO m) => m Spinner

-- | Sets the activity of the spinner.
spinnerSetSpinning :: (HasCallStack, MonadIO m, IsSpinner a) => a -> Bool -> m ()

-- | Starts the animation of the spinner.
spinnerStart :: (HasCallStack, MonadIO m, IsSpinner a) => a -> m ()

-- | Stops the animation of the spinner.
spinnerStop :: (HasCallStack, MonadIO m, IsSpinner a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “spinning” property. This is rarely needed directly, but it
--   is used by new.
constructSpinnerSpinning :: (IsSpinner o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “spinning” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinner #spinning
--   
getSpinnerSpinning :: (MonadIO m, IsSpinner o) => o -> m Bool

-- | Set the value of the “spinning” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinner [ #spinning := value ]
--   
setSpinnerSpinning :: (MonadIO m, IsSpinner o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Spinner.Spinner
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Spinner.Spinner
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Spinner.Spinner
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Spinner.Spinner)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Spinner.Spinner o) => GI.Gtk.Objects.Spinner.IsSpinner o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Spinner.Spinner
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Spinner.Spinner

-- | Allows to enter or change numeric values.
--   
--   <picture> <source srcset="spinbutton-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkSpinButton" src="spinbutton.png"> </picture>
--   
--   Rather than having to directly type a number into a GtkEntry,
--   GtkSpinButton allows the user to click on one of two arrows
--   to increment or decrement the displayed value. A value can still be
--   typed in, with the bonus that it can be checked to ensure it is in a
--   given range.
--   
--   The main properties of a GtkSpinButton are through an
--   adjustment. See the Adjustment documentation for more details
--   about an adjustment's properties.
--   
--   Note that GtkSpinButton will by default make its entry large
--   enough to accommodate the lower and upper bounds of the adjustment. If
--   this is not desired, the automatic sizing can be turned off by
--   explicitly setting Editable:widthChars to a value != -1.
--   
--   
Using a GtkSpinButton to get an integer
--   
--   
c code
--   
--   
--   // Provides a function to retrieve an integer value from a GtkSpinButton
--   // and creates a spin button to model percentage values.
--   
--   int
--   grab_int_value (GtkSpinButton *button,
--                   gpointer       user_data)
--   {
--     return gtk_spin_button_get_value_as_int (button);
--   }
--   
--   void
--   create_integer_spin_button (void)
--   {
--   
--     GtkWidget *window, *button;
--     GtkAdjustment *adjustment;
--   
--     adjustment = gtk_adjustment_new (50.0, 0.0, 100.0, 1.0, 5.0, 0.0);
--   
--     window = gtk_window_new ();
--   
--     // creates the spinbutton, with no decimal places
--     button = gtk_spin_button_new (adjustment, 1.0, 0);
--     gtk_window_set_child (GTK_WINDOW (window), button);
--   
--     gtk_window_present (GTK_WINDOW (window));
--   }
--   
--   
--   
Using a GtkSpinButton to get a floating point value
--   
--   
c code
--   
--   
--   // Provides a function to retrieve a floating point value from a
--   // GtkSpinButton, and creates a high precision spin button.
--   
--   float
--   grab_float_value (GtkSpinButton *button,
--                     gpointer       user_data)
--   {
--     return gtk_spin_button_get_value (button);
--   }
--   
--   void
--   create_floating_spin_button (void)
--   {
--     GtkWidget *window, *button;
--     GtkAdjustment *adjustment;
--   
--     adjustment = gtk_adjustment_new (2.500, 0.0, 5.0, 0.001, 0.1, 0.0);
--   
--     window = gtk_window_new ();
--   
--     // creates the spinbutton, with three decimal places
--     button = gtk_spin_button_new (adjustment, 0.001, 3);
--     gtk_window_set_child (GTK_WINDOW (window), button);
--   
--     gtk_window_present (GTK_WINDOW (window));
--   }
--   
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- SpinButton::changeValue
--   
--   
--   
CSS nodes
--   
--   
--   spinbutton.horizontal
--   ├── text
--   │    ├── undershoot.left
--   │    ╰── undershoot.right
--   ├── button.down
--   ╰── button.up
--   
--   
--   
--   spinbutton.vertical
--   ├── button.up
--   ├── text
--   │    ├── undershoot.left
--   │    ╰── undershoot.right
--   ╰── button.down
--   
--   
--   GtkSpinButtons main CSS node has the name spinbutton. It
--   creates subnodes for the entry and the two buttons, with these names.
--   The button nodes have the style classes .up and .down. The
--   GtkText subnodes (if present) are put below the text node.
--   The orientation of the spin button is reflected in the .vertical or
--   .horizontal style class on the main node.
--   
--   
Accessibility
--   
--   GtkSpinButton uses the AccessibleRoleSpinButton role.
module GI.Gtk.Objects.SpinButton

-- | Memory-managed wrapper type.
newtype SpinButton
SpinButton :: ManagedPtr SpinButton -> SpinButton

-- | Type class for types which can be safely cast to SpinButton,
--   for instance with toSpinButton.
class (GObject o, IsDescendantOf SpinButton o) => IsSpinButton o

-- | Cast to SpinButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toSpinButton :: (MonadIO m, IsSpinButton o) => o -> m SpinButton

-- | Changes the properties of an existing spin button.
--   
--   The adjustment, climb rate, and number of decimal places are updated
--   accordingly.
spinButtonConfigure :: (HasCallStack, MonadIO m, IsSpinButton a, IsAdjustment b) => a -> Maybe b -> Double -> Word32 -> m ()

-- | Retrieves the value set by spinButtonSetActivatesDefault.
--   
--   Since: 4.14
spinButtonGetActivatesDefault :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Bool

-- | Get the adjustment associated with a GtkSpinButton.
spinButtonGetAdjustment :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Adjustment

-- | Returns the acceleration rate for repeated changes.
spinButtonGetClimbRate :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Double

-- | Fetches the precision of spinButton.
spinButtonGetDigits :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Word32

-- | Gets the current step and page the increments used by
--   spinButton.
--   
--   See spinButtonSetIncrements.
spinButtonGetIncrements :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m (Double, Double)

-- | Returns whether non-numeric text can be typed into the spin button.
spinButtonGetNumeric :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Bool

-- | Gets the range allowed for spinButton.
--   
--   See spinButtonSetRange.
spinButtonGetRange :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m (Double, Double)

-- | Returns whether the values are corrected to the nearest step.
spinButtonGetSnapToTicks :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Bool

-- | Gets the update behavior of a spin button.
--   
--   See spinButtonSetUpdatePolicy.
spinButtonGetUpdatePolicy :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m SpinButtonUpdatePolicy

-- | Get the value in the spinButton.
spinButtonGetValue :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Double

-- | Get the value spinButton represented as an integer.
spinButtonGetValueAsInt :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Int32

-- | Returns whether the spin button’s value wraps around to the opposite
--   limit when the upper or lower limit of the range is exceeded.
spinButtonGetWrap :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m Bool

-- | Creates a new GtkSpinButton.
spinButtonNew :: (HasCallStack, MonadIO m, IsAdjustment a) => Maybe a -> Double -> Word32 -> m SpinButton

-- | Creates a new GtkSpinButton with the given properties.
--   
--   This is a convenience constructor that allows creation of a numeric
--   GtkSpinButton without manually creating an adjustment. The
--   value is initially set to the minimum value and a page increment of 10
--   * step is the default. The precision of the spin
--   button is equivalent to the precision of step.
--   
--   Note that the way in which the precision is derived works best if
--   step is a power of ten. If the resulting precision is
--   not suitable for your needs, use spinButtonSetDigits to correct
--   it.
spinButtonNewWithRange :: (HasCallStack, MonadIO m) => Double -> Double -> Double -> m SpinButton

-- | Sets whether activating the spin button will activate the default
--   widget for the window containing the spin button.
--   
--   See SpinButton::activate for what counts as activation.
--   
--   Since: 4.14
spinButtonSetActivatesDefault :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Bool -> m ()

-- | Replaces the GtkAdjustment associated with
--   spinButton.
spinButtonSetAdjustment :: (HasCallStack, MonadIO m, IsSpinButton a, IsAdjustment b) => a -> b -> m ()

-- | Sets the acceleration rate for repeated changes when you hold down a
--   button or key.
spinButtonSetClimbRate :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Double -> m ()

-- | Set the precision to be displayed by spinButton.
--   
--   Up to 20 digit precision is allowed.
spinButtonSetDigits :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Word32 -> m ()

-- | Sets the step and page increments for spin_button.
--   
--   This affects how quickly the value changes when the spin button’s
--   arrows are activated.
spinButtonSetIncrements :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Double -> Double -> m ()

-- | Sets the flag that determines if non-numeric text can be typed into
--   the spin button.
spinButtonSetNumeric :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Bool -> m ()

-- | Sets the minimum and maximum allowable values for
--   spinButton.
--   
--   If the current value is outside this range, it will be adjusted to fit
--   within the range, otherwise it will remain unchanged.
spinButtonSetRange :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Double -> Double -> m ()

-- | Sets the policy as to whether values are corrected to the nearest step
--   increment when a spin button is activated after providing an invalid
--   value.
spinButtonSetSnapToTicks :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Bool -> m ()

-- | Sets the update behavior of a spin button.
--   
--   This determines whether the spin button is always updated or only when
--   a valid value is set.
spinButtonSetUpdatePolicy :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> SpinButtonUpdatePolicy -> m ()

-- | Sets the value of spinButton.
spinButtonSetValue :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Double -> m ()

-- | Sets the flag that determines if a spin button value wraps around to
--   the opposite limit when the upper or lower limit of the range is
--   exceeded.
spinButtonSetWrap :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> Bool -> m ()

-- | Increment or decrement a spin button’s value in a specified direction
--   by a specified amount.
spinButtonSpin :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> SpinType -> Double -> m ()

-- | Manually force an update of the spin button.
spinButtonUpdate :: (HasCallStack, MonadIO m, IsSpinButton a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activates-default” property. This is rarely needed directly,
--   but it is used by new.
constructSpinButtonActivatesDefault :: (IsSpinButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #activatesDefault
--   
getSpinButtonActivatesDefault :: (MonadIO m, IsSpinButton o) => o -> m Bool

-- | Set the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #activatesDefault := value ]
--   
setSpinButtonActivatesDefault :: (MonadIO m, IsSpinButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “adjustment” property. This is rarely needed directly, but it
--   is used by new.
constructSpinButtonAdjustment :: (IsSpinButton o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #adjustment
--   
getSpinButtonAdjustment :: (MonadIO m, IsSpinButton o) => o -> m Adjustment

-- | Set the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #adjustment := value ]
--   
setSpinButtonAdjustment :: (MonadIO m, IsSpinButton o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “climb-rate” property. This is rarely needed directly, but it
--   is used by new.
constructSpinButtonClimbRate :: (IsSpinButton o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “climb-rate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #climbRate
--   
getSpinButtonClimbRate :: (MonadIO m, IsSpinButton o) => o -> m Double

-- | Set the value of the “climb-rate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #climbRate := value ]
--   
setSpinButtonClimbRate :: (MonadIO m, IsSpinButton o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “digits” property. This is rarely needed directly, but it is
--   used by new.
constructSpinButtonDigits :: (IsSpinButton o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #digits
--   
getSpinButtonDigits :: (MonadIO m, IsSpinButton o) => o -> m Word32

-- | Set the value of the “digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #digits := value ]
--   
setSpinButtonDigits :: (MonadIO m, IsSpinButton o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “numeric” property. This is rarely needed directly, but it is
--   used by new.
constructSpinButtonNumeric :: (IsSpinButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “numeric” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #numeric
--   
getSpinButtonNumeric :: (MonadIO m, IsSpinButton o) => o -> m Bool

-- | Set the value of the “numeric” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #numeric := value ]
--   
setSpinButtonNumeric :: (MonadIO m, IsSpinButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “snap-to-ticks” property. This is rarely needed directly, but
--   it is used by new.
constructSpinButtonSnapToTicks :: (IsSpinButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “snap-to-ticks” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #snapToTicks
--   
getSpinButtonSnapToTicks :: (MonadIO m, IsSpinButton o) => o -> m Bool

-- | Set the value of the “snap-to-ticks” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #snapToTicks := value ]
--   
setSpinButtonSnapToTicks :: (MonadIO m, IsSpinButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “update-policy” property. This is rarely needed directly, but
--   it is used by new.
constructSpinButtonUpdatePolicy :: (IsSpinButton o, MonadIO m) => SpinButtonUpdatePolicy -> m (GValueConstruct o)

-- | Get the value of the “update-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #updatePolicy
--   
getSpinButtonUpdatePolicy :: (MonadIO m, IsSpinButton o) => o -> m SpinButtonUpdatePolicy

-- | Set the value of the “update-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #updatePolicy := value ]
--   
setSpinButtonUpdatePolicy :: (MonadIO m, IsSpinButton o) => o -> SpinButtonUpdatePolicy -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “value” property. This is rarely needed directly, but it is
--   used by new.
constructSpinButtonValue :: (IsSpinButton o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get spinButton #value
--   
getSpinButtonValue :: (MonadIO m, IsSpinButton o) => o -> m Double

-- | Set the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set spinButton [ #value := value ]
--   
setSpinButtonValue :: (MonadIO m, IsSpinButton o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap” property. This is rarely needed directly, but it is
--   used by new.
constructSpinButtonWrap :: (IsSpinButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “wrap” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get spinButton #wrap
--   
getSpinButtonWrap :: (MonadIO m, IsSpinButton o) => o -> m Bool

-- | Set the value of the “wrap” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set spinButton [ #wrap := value ]
--   
setSpinButtonWrap :: (MonadIO m, IsSpinButton o) => o -> Bool -> m ()

-- | Emitted when the spin button is activated.
--   
--   The keybindings for this signal are all forms of the
--   <kbd>Enter</kbd> key.
--   
--   If the <kbd>Enter</kbd> key results in the value being
--   committed to the spin button, then activation does not occur until
--   <kbd>Enter</kbd> is pressed again.
--   
--   Since: 4.14
type SpinButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after spinButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSpinButtonActivate :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on spinButton #activate callback
--   
onSpinButtonActivate :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonActivateCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a value change.
--   
--   This is a keybinding signal.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control the
--   cursor programmatically.
--   
--   The default bindings for this signal are Up/Down and PageUp/PageDown.
type SpinButtonChangeValueCallback = ScrollType -> IO ()

-- | Connect a signal handler for the changeValue signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after spinButton #changeValue callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSpinButtonChangeValue :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonChangeValueCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changeValue signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on spinButton #changeValue callback
--   
onSpinButtonChangeValue :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonChangeValueCallback) -> m SignalHandlerId

-- | Emitted to convert the users input into a double value.
--   
--   The signal handler is expected to use editableGetText to
--   retrieve the text of the spinbutton and set newValue
--   to the new value.
--   
--   The default conversion uses strtod.
type SpinButtonInputCallback = IO (Int32, Double)

-- | Connect a signal handler for the input signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after spinButton #input callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSpinButtonInput :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonInputCallback) -> m SignalHandlerId

-- | Connect a signal handler for the input signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on spinButton #input callback
--   
onSpinButtonInput :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonInputCallback) -> m SignalHandlerId

-- | Emitted to tweak the formatting of the value for display.
--   
--   
c code
--   
--   
--   // show leading zeros
--   static gboolean
--   on_output (GtkSpinButton *spin,
--              gpointer       data)
--   {
--      char *text;
--      int value;
--   
--      value = gtk_spin_button_get_value_as_int (spin);
--      text = g_strdup_printf ("%02d", value);
--      gtk_editable_set_text (GTK_EDITABLE (spin), text):
--      g_free (text);
--   
--      return TRUE;
--   }
--   
type SpinButtonOutputCallback = IO Bool

-- | Connect a signal handler for the output signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after spinButton #output callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSpinButtonOutput :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonOutputCallback) -> m SignalHandlerId

-- | Connect a signal handler for the output signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on spinButton #output callback
--   
onSpinButtonOutput :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonOutputCallback) -> m SignalHandlerId

-- | Emitted when the value is changed.
--   
--   Also see the SpinButton::output signal.
type SpinButtonValueChangedCallback = IO ()

-- | Connect a signal handler for the valueChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after spinButton #valueChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSpinButtonValueChanged :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonValueChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the valueChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on spinButton #valueChanged callback
--   
onSpinButtonValueChanged :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonValueChangedCallback) -> m SignalHandlerId

-- | Emitted right after the spinbutton wraps from its maximum to its
--   minimum value or vice-versa.
type SpinButtonWrappedCallback = IO ()

-- | Connect a signal handler for the wrapped signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after spinButton #wrapped callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSpinButtonWrapped :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonWrappedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the wrapped signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on spinButton #wrapped callback
--   
onSpinButtonWrapped :: (IsSpinButton a, MonadIO m) => a -> ((?self :: a) => SpinButtonWrappedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.SpinButton.SpinButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SpinButton.SpinButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SpinButton.SpinButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SpinButton.SpinButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SpinButton.SpinButton o) => GI.Gtk.Objects.SpinButton.IsSpinButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SpinButton.SpinButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SpinButton.SpinButton

-- | Groups widgets together so they all request the same size.
--   
--   This is typically useful when you want a column of widgets to have the
--   same size, but you can’t use a Grid or Box.
--   
--   In detail, the size requested for each widget in a
--   GtkSizeGroup is the maximum of the sizes that would have been
--   requested for each widget in the size group if they were not in the
--   size group. The [mode]sizeGroupSetMode of the size group
--   determines whether this applies to the horizontal size, the vertical
--   size, or both sizes.
--   
--   Note that size groups only affect the amount of space requested, not
--   the size that the widgets finally receive. If you want the widgets in
--   a GtkSizeGroup to actually be the same size, you need to pack
--   them in such a way that they get the size they request and not more.
--   In particular it doesn't make a lot of sense to set [the expand
--   flags]widgetSetHexpand on the widgets that are members of a
--   size group.
--   
--   GtkSizeGroup objects are referenced by each widget in the
--   size group, so once you have added all widgets to a
--   GtkSizeGroup, you can drop the initial reference to the size
--   group with objectUnref. If the widgets in the size group are
--   subsequently destroyed, then they will be removed from the size group
--   and drop their references on the size group; when all widgets have
--   been removed, the size group will be freed.
--   
--   Widgets can be part of multiple size groups; GTK will compute the
--   horizontal size of a widget from the horizontal requisition of all
--   widgets that can be reached from the widget by a chain of size groups
--   with mode SizeGroupModeHorizontal or SizeGroupModeBoth,
--   and the vertical size from the vertical requisition of all widgets
--   that can be reached from the widget by a chain of size groups with
--   mode SizeGroupModeVertical or SizeGroupModeBoth.
--   
--   
Size groups and trading height-for-width
--   
--   ::: warning Generally, size groups don't interact well with widgets
--   that trade height for width (or width for height), such as wrappable
--   labels. Avoid using size groups with such widgets.
--   
--   A size group with mode SizeGroupModeHorizontal or
--   SizeGroupModeVertical only consults non-contextual sizes of
--   widgets other than the one being measured, since it has no knowledge
--   of what size a widget will get allocated in the other orientation.
--   This can lead to widgets in a group actually requesting different
--   contextual sizes, contrary to the purpose of GtkSizeGroup.
--   
--   In contrast, a size group with mode SizeGroupModeBoth can
--   properly propagate the available size in the opposite orientation when
--   measuring widgets in the group, which results in consistent and
--   accurate measurements.
--   
--   In case some mechanism other than a size group is already used to
--   ensure that widgets in a group all get the same size in one
--   orientation (for example, some common ancestor is known to allocate
--   the same width to all its children), and the size group is only really
--   needed to also make the widgets request the same size in the other
--   orientation, it is beneficial to still set the group's mode to
--   SizeGroupModeBoth. This lets the group assume and count on
--   sizes of the widgets in the former orientation being the same, which
--   enables it to propagate the available size as described above.
--   
--   
Alternatives to size groups
--   
--   Size groups have many limitations, such as only influencing size
--   requests but not allocations, and poor height-for-width support. When
--   possible, prefer using dedicated mechanisms that can properly ensure
--   that the widgets get the same size.
--   
--   Various container widgets and layout managers support a homogeneous
--   layout mode, where they will explicitly give the same size to their
--   children (see Box:homogeneous). Using homogeneous mode can also
--   have large performance benefits compared to either the same container
--   in non-homogeneous mode, or to size groups.
--   
--   Grid can be used to position widgets into rows and columns.
--   Members of each column will have the same width among them; likewise,
--   members of each row will have the same height. On top of that, the
--   heights can be made equal between all rows with
--   Grid:rowHomogeneous, and the widths can be made equal between
--   all columns with Grid:columnHomogeneous.
--   
--   
GtkSizeGroup as GtkBuildable
--   
--   Size groups can be specified in a UI definition by placing an
--   <object> element with class="GtkSizeGroup"
--   somewhere in the UI definition. The widgets that belong to the size
--   group are specified by a <widgets> element that may
--   contain multiple <widget> elements, one for each member
--   of the size group. The ”name” attribute gives the id of the widget.
--   
--   An example of a UI definition fragment with GtkSizeGroup:
--   
--   
xml code
--   
--   
--   <object class="GtkSizeGroup">
--     <property name="mode">horizontal</property>
--     <widgets>
--       <widget name="radio1"/>
--       <widget name="radio2"/>
--     </widgets>
--   </object>
--   
module GI.Gtk.Objects.SizeGroup

-- | Memory-managed wrapper type.
newtype SizeGroup
SizeGroup :: ManagedPtr SizeGroup -> SizeGroup

-- | Type class for types which can be safely cast to SizeGroup, for
--   instance with toSizeGroup.
class (GObject o, IsDescendantOf SizeGroup o) => IsSizeGroup o

-- | Cast to SizeGroup, for types for which this is known to be
--   safe. For general casts, use castTo.
toSizeGroup :: (MonadIO m, IsSizeGroup o) => o -> m SizeGroup

-- | Adds a widget to a GtkSizeGroup.
--   
--   In the future, the requisition of the widget will be determined as the
--   maximum of its requisition and the requisition of the other widgets in
--   the size group. Whether this applies horizontally, vertically, or in
--   both directions depends on the mode of the size group. See
--   sizeGroupSetMode.
--   
--   When the widget is destroyed or no longer referenced elsewhere, it
--   will be removed from the size group.
sizeGroupAddWidget :: (HasCallStack, MonadIO m, IsSizeGroup a, IsWidget b) => a -> b -> m ()

-- | Gets the current mode of the size group.
sizeGroupGetMode :: (HasCallStack, MonadIO m, IsSizeGroup a) => a -> m SizeGroupMode

-- | Returns the list of widgets associated with sizeGroup.
sizeGroupGetWidgets :: (HasCallStack, MonadIO m, IsSizeGroup a) => a -> m [Widget]

-- | Create a new GtkSizeGroup.
sizeGroupNew :: (HasCallStack, MonadIO m) => SizeGroupMode -> m SizeGroup

-- | Removes a widget from a GtkSizeGroup.
sizeGroupRemoveWidget :: (HasCallStack, MonadIO m, IsSizeGroup a, IsWidget b) => a -> b -> m ()

-- | Sets the GtkSizeGroupMode of the size group.
--   
--   The mode of the size group determines whether the widgets in the size
--   group should all have the same horizontal requisition
--   (SizeGroupModeHorizontal) all have the same vertical
--   requisition (SizeGroupModeVertical), or should all have the
--   same requisition in both directions (SizeGroupModeBoth).
sizeGroupSetMode :: (HasCallStack, MonadIO m, IsSizeGroup a) => a -> SizeGroupMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mode” property. This is rarely needed directly, but it is
--   used by new.
constructSizeGroupMode :: (IsSizeGroup o, MonadIO m) => SizeGroupMode -> m (GValueConstruct o)

-- | Get the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get sizeGroup #mode
--   
getSizeGroupMode :: (MonadIO m, IsSizeGroup o) => o -> m SizeGroupMode

-- | Set the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set sizeGroup [ #mode := value ]
--   
setSizeGroupMode :: (MonadIO m, IsSizeGroup o) => o -> SizeGroupMode -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.SizeGroup.SizeGroup
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SizeGroup.SizeGroup
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SizeGroup.SizeGroup
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SizeGroup.SizeGroup)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SizeGroup.SizeGroup o) => GI.Gtk.Objects.SizeGroup.IsSizeGroup o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SizeGroup.SizeGroup
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SizeGroup.SizeGroup

-- | Emits a signal on a widget.
--   
--   Signals that are used in this way are referred to as keybinding
--   signals, and they are expected to be defined with the
--   G_SIGNAL_ACTION flag.
module GI.Gtk.Objects.SignalAction

-- | Memory-managed wrapper type.
newtype SignalAction
SignalAction :: ManagedPtr SignalAction -> SignalAction

-- | Type class for types which can be safely cast to SignalAction,
--   for instance with toSignalAction.
class (GObject o, IsDescendantOf SignalAction o) => IsSignalAction o

-- | Cast to SignalAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toSignalAction :: (MonadIO m, IsSignalAction o) => o -> m SignalAction

-- | Returns the name of the signal that will be emitted.
signalActionGetSignalName :: (HasCallStack, MonadIO m, IsSignalAction a) => a -> m Text

-- | Creates an action that when activated, emits the given action signal
--   on the provided widget.
--   
--   It will also unpack the args into arguments passed to the signal.
signalActionNew :: (HasCallStack, MonadIO m) => Text -> m SignalAction

-- | Construct a GValueConstruct with valid value for the
--   “signal-name” property. This is rarely needed directly, but
--   it is used by new.
constructSignalActionSignalName :: (IsSignalAction o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “signal-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get signalAction #signalName
--   
getSignalActionSignalName :: (MonadIO m, IsSignalAction o) => o -> m Text
instance GHC.Classes.Eq GI.Gtk.Objects.SignalAction.SignalAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SignalAction.SignalAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SignalAction.SignalAction
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SignalAction.SignalAction)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SignalAction.SignalAction o) => GI.Gtk.Objects.SignalAction.IsSignalAction o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SignalAction.SignalAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SignalAction.SignalAction

-- | A GtkShortcutsWindow shows information about the keyboard
--   shortcuts and gestures of an application.
--   
--   The shortcuts can be grouped, and you can have multiple sections in
--   this window, corresponding to the major modes of your application.
--   
--   Additionally, the shortcuts can be filtered by the current view, to
--   avoid showing information that is not relevant in the current
--   application context.
--   
--   The recommended way to construct a GtkShortcutsWindow is with
--   Builder, by using the <child> tag to populate a
--   GtkShortcutsWindow with one or more ShortcutsSection
--   objects, which contain one or more ShortcutsGroup instances,
--   which, in turn, contain ShortcutsShortcut instances.
--   
--   If you need to add a section programmatically, use
--   shortcutsWindowAddSection instead of windowSetChild, as
--   the shortcuts window manages its children directly.
--   
--   
A simple example:
--   
--   <picture> <source srcset="gedit-shortcuts-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="A simple
--   example" src="gedit-shortcuts.png"> </picture>
--   
--   This example has as single section. As you can see, the shortcut
--   groups are arranged in columns, and spread across several pages if
--   there are too many to find on a single page.
--   
--   The .ui file for this example can be found here.
--   
--   
An example with multiple views:
--   
--   <picture> <source srcset="clocks-shortcuts-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example with
--   multiple views" src="clocks-shortcuts.png"> </picture>
--   
--   This example shows a GtkShortcutsWindow that has been
--   configured to show only the shortcuts relevant to the “Stopwatch”
--   view.
--   
--   The .ui file for this example can be found here.
--   
--   
An example with multiple sections:
--   
--   <picture> <source srcset="builder-shortcuts-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example with
--   multiple sections" src="builder-shortcuts.png"> </picture>
--   
--   This example shows a GtkShortcutsWindow with two sections,
--   “Editor Shortcuts” and “Terminal Shortcuts”.
--   
--   The .ui file for this example can be found here.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- ShortcutsWindow::close
--   
- ShortcutsWindow::search
--   
--   
--   
CSS nodes
--   
--   GtkShortcutsWindow has a single CSS node with the name
--   window and style class .shortcuts.
module GI.Gtk.Objects.ShortcutsWindow

-- | Memory-managed wrapper type.
newtype ShortcutsWindow
ShortcutsWindow :: ManagedPtr ShortcutsWindow -> ShortcutsWindow

-- | Type class for types which can be safely cast to
--   ShortcutsWindow, for instance with toShortcutsWindow.
class (GObject o, IsDescendantOf ShortcutsWindow o) => IsShortcutsWindow o

-- | Cast to ShortcutsWindow, for types for which this is known to
--   be safe. For general casts, use castTo.
toShortcutsWindow :: (MonadIO m, IsShortcutsWindow o) => o -> m ShortcutsWindow

-- | Adds a section to the shortcuts window.
--   
--   This is the programmatic equivalent to using Builder and a
--   <child> tag to add the child.
--   
--   Using windowSetChild is not appropriate as the shortcuts window
--   manages its children internally.
--   
--   Since: 4.14

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutsWindowAddSection :: (HasCallStack, MonadIO m, IsShortcutsWindow a, IsShortcutsSection b) => a -> b -> m ()

-- | Set the value of the “section-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #sectionName
--   
clearShortcutsWindowSectionName :: (MonadIO m, IsShortcutsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “section-name” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutsWindowSectionName :: (IsShortcutsWindow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “section-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsWindow #sectionName
--   
getShortcutsWindowSectionName :: (MonadIO m, IsShortcutsWindow o) => o -> m (Maybe Text)

-- | Set the value of the “section-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsWindow [ #sectionName := value ]
--   
setShortcutsWindowSectionName :: (MonadIO m, IsShortcutsWindow o) => o -> Text -> m ()

-- | Set the value of the “view-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #viewName
--   
clearShortcutsWindowViewName :: (MonadIO m, IsShortcutsWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “view-name” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutsWindowViewName :: (IsShortcutsWindow o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “view-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsWindow #viewName
--   
getShortcutsWindowViewName :: (MonadIO m, IsShortcutsWindow o) => o -> m (Maybe Text)

-- | Set the value of the “view-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsWindow [ #viewName := value ]
--   
setShortcutsWindowViewName :: (MonadIO m, IsShortcutsWindow o) => o -> Text -> m ()

-- | Emitted when the user uses a keybinding to close the window.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is the
--   <kbd>Escape</kbd> key.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
type ShortcutsWindowCloseCallback = IO ()

-- | Connect a signal handler for the close signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after shortcutsWindow #close callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterShortcutsWindowClose :: (IsShortcutsWindow a, MonadIO m) => a -> ((?self :: a) => ShortcutsWindowCloseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the close signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on shortcutsWindow #close callback
--   
onShortcutsWindowClose :: (IsShortcutsWindow a, MonadIO m) => a -> ((?self :: a) => ShortcutsWindowCloseCallback) -> m SignalHandlerId

-- | Emitted when the user uses a keybinding to start a search.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is
--   <kbd>Control</kbd>+<kbd>F</kbd>.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
type ShortcutsWindowSearchCallback = IO ()

-- | Connect a signal handler for the search signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after shortcutsWindow #search callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterShortcutsWindowSearch :: (IsShortcutsWindow a, MonadIO m) => a -> ((?self :: a) => ShortcutsWindowSearchCallback) -> m SignalHandlerId

-- | Connect a signal handler for the search signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on shortcutsWindow #search callback
--   
onShortcutsWindowSearch :: (IsShortcutsWindow a, MonadIO m) => a -> ((?self :: a) => ShortcutsWindowSearchCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow o) => GI.Gtk.Objects.ShortcutsWindow.IsShortcutsWindow o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutsWindow.ShortcutsWindow

-- | A GtkShortcutsShortcut represents a single keyboard shortcut
--   or gesture with a short text.
--   
--   This widget is only meant to be used with GtkShortcutsWindow.
module GI.Gtk.Objects.ShortcutsShortcut

-- | Memory-managed wrapper type.
newtype ShortcutsShortcut
ShortcutsShortcut :: ManagedPtr ShortcutsShortcut -> ShortcutsShortcut

-- | Type class for types which can be safely cast to
--   ShortcutsShortcut, for instance with
--   toShortcutsShortcut.
class (GObject o, IsDescendantOf ShortcutsShortcut o) => IsShortcutsShortcut o

-- | Cast to ShortcutsShortcut, for types for which this is known to
--   be safe. For general casts, use castTo.
toShortcutsShortcut :: (MonadIO m, IsShortcutsShortcut o) => o -> m ShortcutsShortcut

-- | Set the value of the “accel-size-group” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #accelSizeGroup
--   
clearShortcutsShortcutAccelSizeGroup :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accel-size-group” property. This is rarely needed directly,
--   but it is used by new.
constructShortcutsShortcutAccelSizeGroup :: (IsShortcutsShortcut o, MonadIO m, IsSizeGroup a) => a -> m (GValueConstruct o)

-- | Set the value of the “accel-size-group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #accelSizeGroup := value ]
--   
setShortcutsShortcutAccelSizeGroup :: (MonadIO m, IsShortcutsShortcut o, IsSizeGroup a) => o -> a -> m ()

-- | Set the value of the “accelerator” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #accelerator
--   
clearShortcutsShortcutAccelerator :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accelerator” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutsShortcutAccelerator :: (IsShortcutsShortcut o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accelerator” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #accelerator
--   
getShortcutsShortcutAccelerator :: (MonadIO m, IsShortcutsShortcut o) => o -> m (Maybe Text)

-- | Set the value of the “accelerator” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #accelerator := value ]
--   
setShortcutsShortcutAccelerator :: (MonadIO m, IsShortcutsShortcut o) => o -> Text -> m ()

-- | Set the value of the “action-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #actionName
--   
clearShortcutsShortcutActionName :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “action-name” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutsShortcutActionName :: (IsShortcutsShortcut o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “action-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #actionName
--   
getShortcutsShortcutActionName :: (MonadIO m, IsShortcutsShortcut o) => o -> m (Maybe Text)

-- | Set the value of the “action-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #actionName := value ]
--   
setShortcutsShortcutActionName :: (MonadIO m, IsShortcutsShortcut o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “direction” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutsShortcutDirection :: (IsShortcutsShortcut o, MonadIO m) => TextDirection -> m (GValueConstruct o)

-- | Get the value of the “direction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #direction
--   
getShortcutsShortcutDirection :: (MonadIO m, IsShortcutsShortcut o) => o -> m TextDirection

-- | Set the value of the “direction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #direction := value ]
--   
setShortcutsShortcutDirection :: (MonadIO m, IsShortcutsShortcut o) => o -> TextDirection -> m ()

-- | Set the value of the “icon” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #icon
--   
clearShortcutsShortcutIcon :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutsShortcutIcon :: (IsShortcutsShortcut o, MonadIO m, IsIcon a) => a -> m (GValueConstruct o)

-- | Get the value of the “icon” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #icon
--   
getShortcutsShortcutIcon :: (MonadIO m, IsShortcutsShortcut o) => o -> m (Maybe Icon)

-- | Set the value of the “icon” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #icon := value ]
--   
setShortcutsShortcutIcon :: (MonadIO m, IsShortcutsShortcut o, IsIcon a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-set” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutsShortcutIconSet :: (IsShortcutsShortcut o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “icon-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #iconSet
--   
getShortcutsShortcutIconSet :: (MonadIO m, IsShortcutsShortcut o) => o -> m Bool

-- | Set the value of the “icon-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #iconSet := value ]
--   
setShortcutsShortcutIconSet :: (MonadIO m, IsShortcutsShortcut o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “shortcut-type” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutsShortcutShortcutType :: (IsShortcutsShortcut o, MonadIO m) => ShortcutType -> m (GValueConstruct o)

-- | Get the value of the “shortcut-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #shortcutType
--   
getShortcutsShortcutShortcutType :: (MonadIO m, IsShortcutsShortcut o) => o -> m ShortcutType

-- | Set the value of the “shortcut-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #shortcutType := value ]
--   
setShortcutsShortcutShortcutType :: (MonadIO m, IsShortcutsShortcut o) => o -> ShortcutType -> m ()

-- | Set the value of the “subtitle” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #subtitle
--   
clearShortcutsShortcutSubtitle :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “subtitle” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutsShortcutSubtitle :: (IsShortcutsShortcut o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “subtitle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #subtitle
--   
getShortcutsShortcutSubtitle :: (MonadIO m, IsShortcutsShortcut o) => o -> m (Maybe Text)

-- | Set the value of the “subtitle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #subtitle := value ]
--   
setShortcutsShortcutSubtitle :: (MonadIO m, IsShortcutsShortcut o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “subtitle-set” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutsShortcutSubtitleSet :: (IsShortcutsShortcut o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “subtitle-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #subtitleSet
--   
getShortcutsShortcutSubtitleSet :: (MonadIO m, IsShortcutsShortcut o) => o -> m Bool

-- | Set the value of the “subtitle-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #subtitleSet := value ]
--   
setShortcutsShortcutSubtitleSet :: (MonadIO m, IsShortcutsShortcut o) => o -> Bool -> m ()

-- | Set the value of the “title” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #title
--   
clearShortcutsShortcutTitle :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutsShortcutTitle :: (IsShortcutsShortcut o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsShortcut #title
--   
getShortcutsShortcutTitle :: (MonadIO m, IsShortcutsShortcut o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #title := value ]
--   
setShortcutsShortcutTitle :: (MonadIO m, IsShortcutsShortcut o) => o -> Text -> m ()

-- | Set the value of the “title-size-group” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #titleSizeGroup
--   
clearShortcutsShortcutTitleSizeGroup :: (MonadIO m, IsShortcutsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title-size-group” property. This is rarely needed directly,
--   but it is used by new.
constructShortcutsShortcutTitleSizeGroup :: (IsShortcutsShortcut o, MonadIO m, IsSizeGroup a) => a -> m (GValueConstruct o)

-- | Set the value of the “title-size-group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsShortcut [ #titleSizeGroup := value ]
--   
setShortcutsShortcutTitleSizeGroup :: (MonadIO m, IsShortcutsShortcut o, IsSizeGroup a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut o) => GI.Gtk.Objects.ShortcutsShortcut.IsShortcutsShortcut o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutsShortcut.ShortcutsShortcut

-- | A GtkShortcutsSection collects all the keyboard shortcuts and
--   gestures for a major application mode.
--   
--   If your application needs multiple sections, you should give each
--   section a unique ShortcutsSection:sectionName and a
--   ShortcutsSection:title that can be shown in the section
--   selector of the ShortcutsWindow.
--   
--   The ShortcutsSection:maxHeight property can be used to
--   influence how the groups in the section are distributed over pages and
--   columns.
--   
--   This widget is only meant to be used with ShortcutsWindow.
--   
--   The recommended way to construct a GtkShortcutsSection is
--   with Builder, by using the <child> tag to
--   populate a GtkShortcutsSection with one or more
--   ShortcutsGroup instances, which in turn contain one or more
--   ShortcutsShortcut objects.
--   
--   If you need to add a group programmatically, use
--   shortcutsSectionAddGroup.
--   
--   
Shortcuts and Gestures
--   
--   Pan gestures allow to navigate between sections.
--   
--   The following signals have default keybindings:
--   
--   
--   
- ShortcutsSection::changeCurrentPage
--   
module GI.Gtk.Objects.ShortcutsSection

-- | Memory-managed wrapper type.
newtype ShortcutsSection
ShortcutsSection :: ManagedPtr ShortcutsSection -> ShortcutsSection

-- | Type class for types which can be safely cast to
--   ShortcutsSection, for instance with toShortcutsSection.
class (GObject o, IsDescendantOf ShortcutsSection o) => IsShortcutsSection o

-- | Cast to ShortcutsSection, for types for which this is known to
--   be safe. For general casts, use castTo.
toShortcutsSection :: (MonadIO m, IsShortcutsSection o) => o -> m ShortcutsSection

-- | Adds a group to the shortcuts section.
--   
--   This is the programmatic equivalent to using Builder and a
--   <child> tag to add the child.
--   
--   Adding children with the GtkBox API is not appropriate, as
--   GtkShortcutsSection manages its children internally.
--   
--   Since: 4.14

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutsSectionAddGroup :: (HasCallStack, MonadIO m, IsShortcutsSection a, IsShortcutsGroup b) => a -> b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-height” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutsSectionMaxHeight :: (IsShortcutsSection o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “max-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsSection #maxHeight
--   
getShortcutsSectionMaxHeight :: (MonadIO m, IsShortcutsSection o) => o -> m Word32

-- | Set the value of the “max-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsSection [ #maxHeight := value ]
--   
setShortcutsSectionMaxHeight :: (MonadIO m, IsShortcutsSection o) => o -> Word32 -> m ()

-- | Set the value of the “section-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #sectionName
--   
clearShortcutsSectionSectionName :: (MonadIO m, IsShortcutsSection o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “section-name” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutsSectionSectionName :: (IsShortcutsSection o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “section-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsSection #sectionName
--   
getShortcutsSectionSectionName :: (MonadIO m, IsShortcutsSection o) => o -> m (Maybe Text)

-- | Set the value of the “section-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsSection [ #sectionName := value ]
--   
setShortcutsSectionSectionName :: (MonadIO m, IsShortcutsSection o) => o -> Text -> m ()

-- | Set the value of the “title” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #title
--   
clearShortcutsSectionTitle :: (MonadIO m, IsShortcutsSection o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutsSectionTitle :: (IsShortcutsSection o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsSection #title
--   
getShortcutsSectionTitle :: (MonadIO m, IsShortcutsSection o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsSection [ #title := value ]
--   
setShortcutsSectionTitle :: (MonadIO m, IsShortcutsSection o) => o -> Text -> m ()

-- | Set the value of the “view-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #viewName
--   
clearShortcutsSectionViewName :: (MonadIO m, IsShortcutsSection o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “view-name” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutsSectionViewName :: (IsShortcutsSection o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “view-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsSection #viewName
--   
getShortcutsSectionViewName :: (MonadIO m, IsShortcutsSection o) => o -> m (Maybe Text)

-- | Set the value of the “view-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsSection [ #viewName := value ]
--   
setShortcutsSectionViewName :: (MonadIO m, IsShortcutsSection o) => o -> Text -> m ()

-- | Emitted when we change the current page.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>PgUp</kbd>,
--   <kbd>PgUp</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>PgDn</kbd>,
--   <kbd>PgDn</kbd>.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
type ShortcutsSectionChangeCurrentPageCallback = Int32 -> IO Bool

-- | Connect a signal handler for the changeCurrentPage signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after shortcutsSection #changeCurrentPage callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterShortcutsSectionChangeCurrentPage :: (IsShortcutsSection a, MonadIO m) => a -> ((?self :: a) => ShortcutsSectionChangeCurrentPageCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changeCurrentPage signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on shortcutsSection #changeCurrentPage callback
--   
onShortcutsSectionChangeCurrentPage :: (IsShortcutsSection a, MonadIO m) => a -> ((?self :: a) => ShortcutsSectionChangeCurrentPageCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutsSection.ShortcutsSection
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutsSection.ShortcutsSection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutsSection.ShortcutsSection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutsSection.ShortcutsSection)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutsSection.ShortcutsSection o) => GI.Gtk.Objects.ShortcutsSection.IsShortcutsSection o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutsSection.ShortcutsSection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutsSection.ShortcutsSection

-- | A GtkShortcutsGroup represents a group of related keyboard
--   shortcuts or gestures.
--   
--   The group has a title. It may optionally be associated with a view of
--   the application, which can be used to show only relevant shortcuts
--   depending on the application context.
--   
--   This widget is only meant to be used with ShortcutsWindow.
--   
--   The recommended way to construct a GtkShortcutsGroup is with
--   Builder, by using the <child> tag to populate a
--   GtkShortcutsGroup with one or more ShortcutsShortcut
--   instances.
--   
--   If you need to add a shortcut programmatically, use
--   shortcutsGroupAddShortcut.
module GI.Gtk.Objects.ShortcutsGroup

-- | Memory-managed wrapper type.
newtype ShortcutsGroup
ShortcutsGroup :: ManagedPtr ShortcutsGroup -> ShortcutsGroup

-- | Type class for types which can be safely cast to
--   ShortcutsGroup, for instance with toShortcutsGroup.
class (GObject o, IsDescendantOf ShortcutsGroup o) => IsShortcutsGroup o

-- | Cast to ShortcutsGroup, for types for which this is known to be
--   safe. For general casts, use castTo.
toShortcutsGroup :: (MonadIO m, IsShortcutsGroup o) => o -> m ShortcutsGroup

-- | Adds a shortcut to the shortcuts group.
--   
--   This is the programmatic equivalent to using Builder and a
--   <child> tag to add the child. Adding children with
--   other API is not appropriate as GtkShortcutsGroup manages its
--   children internally.
--   
--   Since: 4.14

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutsGroupAddShortcut :: (HasCallStack, MonadIO m, IsShortcutsGroup a, IsShortcutsShortcut b) => a -> b -> m ()

-- | Set the value of the “accel-size-group” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #accelSizeGroup
--   
clearShortcutsGroupAccelSizeGroup :: (MonadIO m, IsShortcutsGroup o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accel-size-group” property. This is rarely needed directly,
--   but it is used by new.
constructShortcutsGroupAccelSizeGroup :: (IsShortcutsGroup o, MonadIO m, IsSizeGroup a) => a -> m (GValueConstruct o)

-- | Set the value of the “accel-size-group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsGroup [ #accelSizeGroup := value ]
--   
setShortcutsGroupAccelSizeGroup :: (MonadIO m, IsShortcutsGroup o, IsSizeGroup a) => o -> a -> m ()

-- | Get the value of the “height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsGroup #height
--   
getShortcutsGroupHeight :: (MonadIO m, IsShortcutsGroup o) => o -> m Word32

-- | Set the value of the “title” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #title
--   
clearShortcutsGroupTitle :: (MonadIO m, IsShortcutsGroup o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutsGroupTitle :: (IsShortcutsGroup o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutsGroup #title
--   
getShortcutsGroupTitle :: (MonadIO m, IsShortcutsGroup o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsGroup [ #title := value ]
--   
setShortcutsGroupTitle :: (MonadIO m, IsShortcutsGroup o) => o -> Text -> m ()

-- | Set the value of the “title-size-group” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #titleSizeGroup
--   
clearShortcutsGroupTitleSizeGroup :: (MonadIO m, IsShortcutsGroup o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title-size-group” property. This is rarely needed directly,
--   but it is used by new.
constructShortcutsGroupTitleSizeGroup :: (IsShortcutsGroup o, MonadIO m, IsSizeGroup a) => a -> m (GValueConstruct o)

-- | Set the value of the “title-size-group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutsGroup [ #titleSizeGroup := value ]
--   
setShortcutsGroupTitleSizeGroup :: (MonadIO m, IsShortcutsGroup o, IsSizeGroup a) => o -> a -> m ()

-- | Set the value of the “view” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #view
--   
clearShortcutsGroupView :: (MonadIO m, IsShortcutsGroup o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “view” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutsGroupView :: (IsShortcutsGroup o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “view” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get shortcutsGroup #view
--   
getShortcutsGroupView :: (MonadIO m, IsShortcutsGroup o) => o -> m (Maybe Text)

-- | Set the value of the “view” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set shortcutsGroup [ #view := value ]
--   
setShortcutsGroupView :: (MonadIO m, IsShortcutsGroup o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup o) => GI.Gtk.Objects.ShortcutsGroup.IsShortcutsGroup o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutsGroup.ShortcutsGroup

-- | GtkShortcutLabel displays a single keyboard shortcut or
--   gesture.
--   
--   The main use case for GtkShortcutLabel is inside a
--   ShortcutsWindow.
module GI.Gtk.Objects.ShortcutLabel

-- | Memory-managed wrapper type.
newtype ShortcutLabel
ShortcutLabel :: ManagedPtr ShortcutLabel -> ShortcutLabel

-- | Type class for types which can be safely cast to ShortcutLabel,
--   for instance with toShortcutLabel.
class (GObject o, IsDescendantOf ShortcutLabel o) => IsShortcutLabel o

-- | Cast to ShortcutLabel, for types for which this is known to be
--   safe. For general casts, use castTo.
toShortcutLabel :: (MonadIO m, IsShortcutLabel o) => o -> m ShortcutLabel

-- | Retrieves the current accelerator of self.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutLabelGetAccelerator :: (HasCallStack, MonadIO m, IsShortcutLabel a) => a -> m (Maybe Text)

-- | Retrieves the text that is displayed when no accelerator is set.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutLabelGetDisabledText :: (HasCallStack, MonadIO m, IsShortcutLabel a) => a -> m (Maybe Text)

-- | Creates a new GtkShortcutLabel with
--   accelerator set.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutLabelNew :: (HasCallStack, MonadIO m) => Text -> m ShortcutLabel

-- | Sets the accelerator to be displayed by self.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutLabelSetAccelerator :: (HasCallStack, MonadIO m, IsShortcutLabel a) => a -> Text -> m ()

-- | Sets the text to be displayed by self when no
--   accelerator is set.

-- | Deprecated: (Since version 4.18)This widget will be removed in GTK
--   5
shortcutLabelSetDisabledText :: (HasCallStack, MonadIO m, IsShortcutLabel a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accelerator” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutLabelAccelerator :: (IsShortcutLabel o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accelerator” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutLabel #accelerator
--   
getShortcutLabelAccelerator :: (MonadIO m, IsShortcutLabel o) => o -> m (Maybe Text)

-- | Set the value of the “accelerator” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutLabel [ #accelerator := value ]
--   
setShortcutLabelAccelerator :: (MonadIO m, IsShortcutLabel o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “disabled-text” property. This is rarely needed directly, but
--   it is used by new.
constructShortcutLabelDisabledText :: (IsShortcutLabel o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “disabled-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutLabel #disabledText
--   
getShortcutLabelDisabledText :: (MonadIO m, IsShortcutLabel o) => o -> m (Maybe Text)

-- | Set the value of the “disabled-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutLabel [ #disabledText := value ]
--   
setShortcutLabelDisabledText :: (MonadIO m, IsShortcutLabel o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutLabel.ShortcutLabel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutLabel.ShortcutLabel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutLabel.ShortcutLabel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutLabel.ShortcutLabel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutLabel.ShortcutLabel o) => GI.Gtk.Objects.ShortcutLabel.IsShortcutLabel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutLabel.ShortcutLabel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutLabel.ShortcutLabel

-- | Manages keyboard shortcuts and their activation.
--   
--   Most common shortcuts are using this controller implicitly, e.g. by
--   adding a mnemonic underline to a Label, or by installing a key
--   binding using WidgetClass.add_binding(), or by
--   adding accelerators to global actions using
--   applicationSetAccelsForAction.
--   
--   But it is possible to create your own shortcut controller, and add
--   shortcuts to it.
--   
--   GtkShortcutController implements ListModel for
--   querying the shortcuts that have been added to it.
--   
--   
GtkShortcutController as GtkBuildable
--   
--   GtkShortcutControllers can be created in Builder ui
--   files, to set up shortcuts in the same place as the widgets.
--   
--   An example of a UI definition fragment with
--   GtkShortcutController:
--   
--   
xml code
--   
--   
--   <object class='GtkButton'>
--     <child>
--       <object class='GtkShortcutController'>
--         <property name='scope'>managed</property>
--         <child>
--           <object class='GtkShortcut'>
--             <property name='trigger'>&lt;Control&gt;k</property>
--             <property name='action'>activate</property>
--           </object>
--         </child>
--       </object>
--     </child>
--   </object>
--   
--   
--   This example creates a ActivateAction for triggering the
--   activate signal of the Button. See
--   shortcutActionParseString for the syntax for other kinds of
--   ShortcutAction. See shortcutTriggerParseString to learn
--   more about the syntax for triggers.
module GI.Gtk.Objects.ShortcutController

-- | Memory-managed wrapper type.
newtype ShortcutController
ShortcutController :: ManagedPtr ShortcutController -> ShortcutController

-- | Type class for types which can be safely cast to
--   ShortcutController, for instance with
--   toShortcutController.
class (GObject o, IsDescendantOf ShortcutController o) => IsShortcutController o

-- | Cast to ShortcutController, for types for which this is known
--   to be safe. For general casts, use castTo.
toShortcutController :: (MonadIO m, IsShortcutController o) => o -> m ShortcutController

-- | Adds shortcut to the list of shortcuts handled by
--   self.
--   
--   If this controller uses an external shortcut list, this function does
--   nothing.
shortcutControllerAddShortcut :: (HasCallStack, MonadIO m, IsShortcutController a, IsShortcut b) => a -> b -> m ()

-- | Gets the mnemonics modifiers for when this controller activates its
--   shortcuts.
shortcutControllerGetMnemonicsModifiers :: (HasCallStack, MonadIO m, IsShortcutController a) => a -> m [ModifierType]

-- | Gets the scope for when this controller activates its shortcuts.
--   
--   See shortcutControllerSetScope for details.
shortcutControllerGetScope :: (HasCallStack, MonadIO m, IsShortcutController a) => a -> m ShortcutScope

-- | Creates a new shortcut controller.
shortcutControllerNew :: (HasCallStack, MonadIO m) => m ShortcutController

-- | Creates a new shortcut controller that takes its shortcuts from the
--   given list model.
--   
--   A controller created by this function does not let you add or remove
--   individual shortcuts using the shortcut controller api, but you can
--   change the contents of the model.
shortcutControllerNewForModel :: (HasCallStack, MonadIO m, IsListModel a) => a -> m ShortcutController

-- | Removes shortcut from the list of shortcuts handled by
--   self.
--   
--   If shortcut had not been added to
--   controller or this controller uses an external
--   shortcut list, this function does nothing.
shortcutControllerRemoveShortcut :: (HasCallStack, MonadIO m, IsShortcutController a, IsShortcut b) => a -> b -> m ()

-- | Sets the controller to use the given modifier for mnemonics.
--   
--   The mnemonics modifiers determines which modifiers need to be pressed
--   to allow activation of shortcuts with mnemonics triggers.
--   
--   GTK normally uses the Alt modifier for mnemonics, except in
--   GtkPopoverMenus, where mnemonics can be triggered without any
--   modifiers. It should be very rarely necessary to change this, and
--   doing so is likely to interfere with other shortcuts.
--   
--   This value is only relevant for local shortcut controllers. Global and
--   managed shortcut controllers will have their shortcuts activated from
--   other places which have their own modifiers for activating mnemonics.
shortcutControllerSetMnemonicsModifiers :: (HasCallStack, MonadIO m, IsShortcutController a) => a -> [ModifierType] -> m ()

-- | Sets the controller to have the given scope.
--   
--   The scope allows shortcuts to be activated outside of the normal event
--   propagation. In particular, it allows installing global keyboard
--   shortcuts that can be activated even when a widget does not have
--   focus.
--   
--   With ShortcutScopeLocal, shortcuts will only be activated when
--   the widget has focus.
shortcutControllerSetScope :: (HasCallStack, MonadIO m, IsShortcutController a) => a -> ShortcutScope -> m ()

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutController #itemType
--   
getShortcutControllerItemType :: (MonadIO m, IsShortcutController o) => o -> m GType

-- | Construct a GValueConstruct with valid value for the
--   “mnemonic-modifiers” property. This is rarely needed
--   directly, but it is used by new.
constructShortcutControllerMnemonicModifiers :: (IsShortcutController o, MonadIO m) => [ModifierType] -> m (GValueConstruct o)

-- | Get the value of the “mnemonic-modifiers” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutController #mnemonicModifiers
--   
getShortcutControllerMnemonicModifiers :: (MonadIO m, IsShortcutController o) => o -> m [ModifierType]

-- | Set the value of the “mnemonic-modifiers” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutController [ #mnemonicModifiers := value ]
--   
setShortcutControllerMnemonicModifiers :: (MonadIO m, IsShortcutController o) => o -> [ModifierType] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutControllerModel :: (IsShortcutController o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutController #nItems
--   
getShortcutControllerNItems :: (MonadIO m, IsShortcutController o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “scope” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutControllerScope :: (IsShortcutController o, MonadIO m) => ShortcutScope -> m (GValueConstruct o)

-- | Get the value of the “scope” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcutController #scope
--   
getShortcutControllerScope :: (MonadIO m, IsShortcutController o) => o -> m ShortcutScope

-- | Set the value of the “scope” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcutController [ #scope := value ]
--   
setShortcutControllerScope :: (MonadIO m, IsShortcutController o) => o -> ShortcutScope -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutController.ShortcutController
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutController.ShortcutController
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutController.ShortcutController
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutController.ShortcutController)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutController.ShortcutController o) => GI.Gtk.Objects.ShortcutController.IsShortcutController o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutController.ShortcutController
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutController.ShortcutController

-- | Encodes an action that can be triggered by a keyboard shortcut.
--   
--   GtkShortcutActions contain functions that allow easy
--   presentation to end users as well as being printed for debugging.
--   
--   All GtkShortcutActions are immutable, you can only specify
--   their properties during construction. If you want to change a action,
--   you have to replace it with a new one. If you need to pass arguments
--   to an action, these are specified by the higher-level
--   GtkShortcut object.
--   
--   To activate a GtkShortcutAction manually,
--   shortcutActionActivate can be called.
--   
--   GTK provides various actions:
--   
--   
--   
- MnemonicAction: a shortcut action that calls
--   widgetMnemonicActivate
--   
- CallbackAction: a shortcut action that invokes a given
--   callback
--   
- SignalAction: a shortcut action that emits a given
--   signal
--   
- ActivateAction: a shortcut action that calls
--   widgetActivate
--   
- NamedAction: a shortcut action that calls
--   gtk_widget_activate_action()
--   
- NothingAction: a shortcut action that does nothing
--   
module GI.Gtk.Objects.ShortcutAction

-- | Memory-managed wrapper type.
newtype ShortcutAction
ShortcutAction :: ManagedPtr ShortcutAction -> ShortcutAction

-- | Type class for types which can be safely cast to
--   ShortcutAction, for instance with toShortcutAction.
class (GObject o, IsDescendantOf ShortcutAction o) => IsShortcutAction o

-- | Cast to ShortcutAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toShortcutAction :: (MonadIO m, IsShortcutAction o) => o -> m ShortcutAction

-- | Activates the action on the widget with the given
--   args.
--   
--   Note that some actions ignore the passed in flags,
--   widget or args.
--   
--   Activation of an action can fail for various reasons. If the action is
--   not supported by the widget, if the
--   args don't match the action or if the activation
--   otherwise had no effect, False will be returned.
shortcutActionActivate :: (HasCallStack, MonadIO m, IsShortcutAction a, IsWidget b) => a -> [ShortcutActionFlags] -> b -> Maybe GVariant -> m Bool

-- | Tries to parse the given string into an action.
--   
--   On success, the parsed action is returned. When parsing failed,
--   Nothing is returned.
--   
--   The accepted strings are:
--   
--   
--   
- nothing, for GtkNothingAction
--   
- activate, for GtkActivateAction
--   
- mnemonic-activate, for GtkMnemonicAction
--   
- action(NAME), for a GtkNamedAction for the
--   action named NAME
--   
- signal(NAME), for a GtkSignalAction for the
--   signal NAME
--   
shortcutActionParseString :: (HasCallStack, MonadIO m) => Text -> m (Maybe ShortcutAction)

-- | Prints the given action into a string for the developer.
--   
--   This is meant for debugging and logging.
--   
--   The form of the representation may change at any time and is not
--   guaranteed to stay identical.
shortcutActionPrint :: (HasCallStack, MonadIO m, IsShortcutAction a) => a -> String -> m ()

-- | Prints the given action into a human-readable string.
--   
--   This is a small wrapper around shortcutActionPrint to help when
--   debugging.
shortcutActionToString :: (HasCallStack, MonadIO m, IsShortcutAction a) => a -> m Text
instance GHC.Classes.Eq GI.Gtk.Objects.ShortcutAction.ShortcutAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ShortcutAction.ShortcutAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ShortcutAction.ShortcutAction
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ShortcutAction.ShortcutAction)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ShortcutAction.ShortcutAction o) => GI.Gtk.Objects.ShortcutAction.IsShortcutAction o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ShortcutAction.ShortcutAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ShortcutAction.ShortcutAction

-- | Describes a keyboard shortcut.
--   
--   It contains a description of how to trigger the shortcut via a
--   ShortcutTrigger and a way to activate the shortcut on a widget
--   via a ShortcutAction.
--   
--   The actual work is usually done via ShortcutController, which
--   decides if and when to activate a shortcut. Using that controller
--   directly however is rarely necessary as various higher level
--   convenience APIs exist on GtkWidgets that make it easier to
--   use shortcuts in GTK.
--   
--   GtkShortcut does provide functionality to make it easy for
--   users to work with shortcuts, either by providing informational
--   strings for display purposes or by allowing shortcuts to be
--   configured.
module GI.Gtk.Objects.Shortcut

-- | Memory-managed wrapper type.
newtype Shortcut
Shortcut :: ManagedPtr Shortcut -> Shortcut

-- | Type class for types which can be safely cast to Shortcut, for
--   instance with toShortcut.
class (GObject o, IsDescendantOf Shortcut o) => IsShortcut o

-- | Cast to Shortcut, for types for which this is known to be safe.
--   For general casts, use castTo.
toShortcut :: (MonadIO m, IsShortcut o) => o -> m Shortcut

-- | Gets the action that is activated by this shortcut.
shortcutGetAction :: (HasCallStack, MonadIO m, IsShortcut a) => a -> m (Maybe ShortcutAction)

-- | Gets the arguments that are passed when activating the shortcut.
shortcutGetArguments :: (HasCallStack, MonadIO m, IsShortcut a) => a -> m (Maybe GVariant)

-- | Gets the trigger used to trigger self.
shortcutGetTrigger :: (HasCallStack, MonadIO m, IsShortcut a) => a -> m (Maybe ShortcutTrigger)

-- | Creates a new GtkShortcut that is triggered by
--   trigger and then activates action.
shortcutNew :: (HasCallStack, MonadIO m, IsShortcutTrigger a, IsShortcutAction b) => Maybe a -> Maybe b -> m Shortcut

-- | Sets the new action for self to be
--   action.
shortcutSetAction :: (HasCallStack, MonadIO m, IsShortcut a, IsShortcutAction b) => a -> Maybe b -> m ()

-- | Sets the arguments to pass when activating the shortcut.
shortcutSetArguments :: (HasCallStack, MonadIO m, IsShortcut a) => a -> Maybe GVariant -> m ()

-- | Sets the new trigger for self to be
--   trigger.
shortcutSetTrigger :: (HasCallStack, MonadIO m, IsShortcut a, IsShortcutTrigger b) => a -> Maybe b -> m ()

-- | Set the value of the “action” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #action
--   
clearShortcutAction :: (MonadIO m, IsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “action” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutAction :: (IsShortcut o, MonadIO m, IsShortcutAction a) => a -> m (GValueConstruct o)

-- | Get the value of the “action” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcut #action
--   
getShortcutAction :: (MonadIO m, IsShortcut o) => o -> m (Maybe ShortcutAction)

-- | Set the value of the “action” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcut [ #action := value ]
--   
setShortcutAction :: (MonadIO m, IsShortcut o, IsShortcutAction a) => o -> a -> m ()

-- | Set the value of the “arguments” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #arguments
--   
clearShortcutArguments :: (MonadIO m, IsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “arguments” property. This is rarely needed directly, but it
--   is used by new.
constructShortcutArguments :: (IsShortcut o, MonadIO m) => GVariant -> m (GValueConstruct o)

-- | Get the value of the “arguments” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcut #arguments
--   
getShortcutArguments :: (MonadIO m, IsShortcut o) => o -> m (Maybe GVariant)

-- | Set the value of the “arguments” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcut [ #arguments := value ]
--   
setShortcutArguments :: (MonadIO m, IsShortcut o) => o -> GVariant -> m ()

-- | Set the value of the “trigger” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #trigger
--   
clearShortcutTrigger :: (MonadIO m, IsShortcut o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “trigger” property. This is rarely needed directly, but it is
--   used by new.
constructShortcutTrigger :: (IsShortcut o, MonadIO m, IsShortcutTrigger a) => a -> m (GValueConstruct o)

-- | Get the value of the “trigger” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get shortcut #trigger
--   
getShortcutTrigger :: (MonadIO m, IsShortcut o) => o -> m (Maybe ShortcutTrigger)

-- | Set the value of the “trigger” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set shortcut [ #trigger := value ]
--   
setShortcutTrigger :: (MonadIO m, IsShortcut o, IsShortcutTrigger a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Shortcut.Shortcut
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Shortcut.Shortcut
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Shortcut.Shortcut
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Shortcut.Shortcut)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Shortcut.Shortcut o) => GI.Gtk.Objects.Shortcut.IsShortcut o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Shortcut.Shortcut
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Shortcut.Shortcut

-- | Draws a horizontal or vertical line to separate other widgets.
--   
--   <picture> <source srcset="separator-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkSeparator" src="separator.png"> </picture>
--   
--   A GtkSeparator can be used to group the widgets within a
--   window. It displays a line with a shadow to make it appear sunken into
--   the interface.
--   
--   
CSS nodes
--   
--   GtkSeparator has a single CSS node with name separator. The
--   node gets one of the .horizontal or .vertical style classes.
--   
--   
Accessibility
--   
--   GtkSeparator uses the AccessibleRoleSeparator role.
module GI.Gtk.Objects.Separator

-- | Memory-managed wrapper type.
newtype Separator
Separator :: ManagedPtr Separator -> Separator

-- | Type class for types which can be safely cast to Separator, for
--   instance with toSeparator.
class (GObject o, IsDescendantOf Separator o) => IsSeparator o

-- | Cast to Separator, for types for which this is known to be
--   safe. For general casts, use castTo.
toSeparator :: (MonadIO m, IsSeparator o) => o -> m Separator

-- | Creates a new GtkSeparator with the given orientation.
separatorNew :: (HasCallStack, MonadIO m) => Orientation -> m Separator
instance GHC.Classes.Eq GI.Gtk.Objects.Separator.Separator
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Separator.Separator
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Separator.Separator
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Separator.Separator)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Separator.Separator o) => GI.Gtk.Objects.Separator.IsSeparator o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Separator.Separator
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Separator.Separator

-- | A single-line text entry widget for use as a search entry.
--   
--   The main API for interacting with a GtkSearchEntry as entry
--   is the GtkEditable interface.
--   
--   <picture> <source srcset="search-entry-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkSearchEntry" src="search-entry.png"> </picture>
--   
--   It will show an inactive symbolic “find” icon when the search entry is
--   empty, and a symbolic “clear” icon when there is text. Clicking on the
--   “clear” icon will empty the search entry.
--   
--   To make filtering appear more reactive, it is a good idea to not react
--   to every change in the entry text immediately, but only after a short
--   delay. To support this, GtkSearchEntry emits the
--   SearchEntry::searchChanged signal which can be used instead of
--   the Editable::changed signal.
--   
--   The SearchEntry::previousMatch, SearchEntry::nextMatch
--   and SearchEntry::stopSearch signals can be used to implement
--   moving between search results and ending the search.
--   
--   Often, GtkSearchEntry will be fed events by means of being
--   placed inside a SearchBar. If that is not the case, you can use
--   searchEntrySetKeyCaptureWidget to let it capture key input from
--   another widget.
--   
--   GtkSearchEntry provides only minimal API and should be used
--   with the Editable API.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- SearchEntry::activate
--   
- SearchEntry::nextMatch
--   
- SearchEntry::previousMatch
--   
- SearchEntry::stopSearch
--   
--   
--   
CSS Nodes
--   
--   
--   entry.search
--   ╰── text
--   
--   
--   GtkSearchEntry has a single CSS node with name entry that
--   carries a .search style class, and the text node is a child
--   of that.
--   
--   
Accessibility
--   
--   GtkSearchEntry uses the AccessibleRoleSearchBox role.
module GI.Gtk.Objects.SearchEntry

-- | Memory-managed wrapper type.
newtype SearchEntry
SearchEntry :: ManagedPtr SearchEntry -> SearchEntry

-- | Type class for types which can be safely cast to SearchEntry,
--   for instance with toSearchEntry.
class (GObject o, IsDescendantOf SearchEntry o) => IsSearchEntry o

-- | Cast to SearchEntry, for types for which this is known to be
--   safe. For general casts, use castTo.
toSearchEntry :: (MonadIO m, IsSearchEntry o) => o -> m SearchEntry

-- | Gets the input purpose for entry.
--   
--   Since: 4.14
searchEntryGetInputHints :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> m [InputHints]

-- | Gets the input purpose of entry.
--   
--   Since: 4.14
searchEntryGetInputPurpose :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> m InputPurpose

-- | Gets the widget that entry is capturing key events
--   from.
searchEntryGetKeyCaptureWidget :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> m (Maybe Widget)

-- | Gets the placeholder text associated with entry.
--   
--   Since: 4.10
searchEntryGetPlaceholderText :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> m (Maybe Text)

-- | Get the delay to be used between the last keypress and the
--   SearchEntry::searchChanged signal being emitted.
--   
--   Since: 4.8
searchEntryGetSearchDelay :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> m Word32

-- | Creates a GtkSearchEntry.
searchEntryNew :: (HasCallStack, MonadIO m) => m SearchEntry

-- | Sets the input hints for entry.
--   
--   Since: 4.14
searchEntrySetInputHints :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> [InputHints] -> m ()

-- | Sets the input purpose of entry.
--   
--   Since: 4.14
searchEntrySetInputPurpose :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> InputPurpose -> m ()

-- | Sets widget as the widget that entry
--   will capture key events from.
--   
--   Key events are consumed by the search entry to start or continue a
--   search.
--   
--   If the entry is part of a GtkSearchBar, it is preferable to
--   call searchBarSetKeyCaptureWidget instead, which will reveal
--   the entry in addition to triggering the search entry.
--   
--   Note that despite the name of this function, the events are only
--   'captured' in the bubble phase, which means that editable child
--   widgets of widget will receive text input before it
--   gets captured. If that is not desired, you can capture and forward the
--   events yourself with eventControllerKeyForward.
searchEntrySetKeyCaptureWidget :: (HasCallStack, MonadIO m, IsSearchEntry a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the placeholder text associated with entry.
--   
--   Since: 4.10
searchEntrySetPlaceholderText :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> Maybe Text -> m ()

-- | Set the delay to be used between the last keypress and the
--   SearchEntry::searchChanged signal being emitted.
--   
--   Since: 4.8
searchEntrySetSearchDelay :: (HasCallStack, MonadIO m, IsSearchEntry a) => a -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activates-default” property. This is rarely needed directly,
--   but it is used by new.
constructSearchEntryActivatesDefault :: (IsSearchEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchEntry #activatesDefault
--   
getSearchEntryActivatesDefault :: (MonadIO m, IsSearchEntry o) => o -> m Bool

-- | Set the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchEntry [ #activatesDefault := value ]
--   
setSearchEntryActivatesDefault :: (MonadIO m, IsSearchEntry o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-hints” property. This is rarely needed directly, but
--   it is used by new.
constructSearchEntryInputHints :: (IsSearchEntry o, MonadIO m) => [InputHints] -> m (GValueConstruct o)

-- | Get the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchEntry #inputHints
--   
getSearchEntryInputHints :: (MonadIO m, IsSearchEntry o) => o -> m [InputHints]

-- | Set the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchEntry [ #inputHints := value ]
--   
setSearchEntryInputHints :: (MonadIO m, IsSearchEntry o) => o -> [InputHints] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-purpose” property. This is rarely needed directly, but
--   it is used by new.
constructSearchEntryInputPurpose :: (IsSearchEntry o, MonadIO m) => InputPurpose -> m (GValueConstruct o)

-- | Get the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchEntry #inputPurpose
--   
getSearchEntryInputPurpose :: (MonadIO m, IsSearchEntry o) => o -> m InputPurpose

-- | Set the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchEntry [ #inputPurpose := value ]
--   
setSearchEntryInputPurpose :: (MonadIO m, IsSearchEntry o) => o -> InputPurpose -> m ()

-- | Set the value of the “key-capture-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #keyCaptureWidget
--   
clearSearchEntryKeyCaptureWidget :: (MonadIO m, IsSearchEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “key-capture-widget” property. This is rarely needed
--   directly, but it is used by new.
constructSearchEntryKeyCaptureWidget :: (IsSearchEntry o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “key-capture-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchEntry #keyCaptureWidget
--   
getSearchEntryKeyCaptureWidget :: (MonadIO m, IsSearchEntry o) => o -> m (Maybe Widget)

-- | Set the value of the “key-capture-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchEntry [ #keyCaptureWidget := value ]
--   
setSearchEntryKeyCaptureWidget :: (MonadIO m, IsSearchEntry o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “placeholder-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #placeholderText
--   
clearSearchEntryPlaceholderText :: (MonadIO m, IsSearchEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “placeholder-text” property. This is rarely needed directly,
--   but it is used by new.
constructSearchEntryPlaceholderText :: (IsSearchEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchEntry #placeholderText
--   
getSearchEntryPlaceholderText :: (MonadIO m, IsSearchEntry o) => o -> m (Maybe Text)

-- | Set the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchEntry [ #placeholderText := value ]
--   
setSearchEntryPlaceholderText :: (MonadIO m, IsSearchEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “search-delay” property. This is rarely needed directly, but
--   it is used by new.
constructSearchEntrySearchDelay :: (IsSearchEntry o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “search-delay” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchEntry #searchDelay
--   
getSearchEntrySearchDelay :: (MonadIO m, IsSearchEntry o) => o -> m Word32

-- | Set the value of the “search-delay” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchEntry [ #searchDelay := value ]
--   
setSearchEntrySearchDelay :: (MonadIO m, IsSearchEntry o) => o -> Word32 -> m ()

-- | Emitted when the entry is activated.
--   
--   The keybindings for this signal are all forms of the
--   <kbd>Enter</kbd> key.
type SearchEntryActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after searchEntry #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSearchEntryActivate :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on searchEntry #activate callback
--   
onSearchEntryActivate :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryActivateCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a move to the next match for the
--   current search string.
--   
--   This is a keybinding signal.
--   
--   Applications should connect to it, to implement moving between
--   matches.
--   
--   The default bindings for this signal is
--   <kbd>Ctrl</kbd>+<kbd>g</kbd>.
type SearchEntryNextMatchCallback = IO ()

-- | Connect a signal handler for the nextMatch signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after searchEntry #nextMatch callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSearchEntryNextMatch :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryNextMatchCallback) -> m SignalHandlerId

-- | Connect a signal handler for the nextMatch signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on searchEntry #nextMatch callback
--   
onSearchEntryNextMatch :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryNextMatchCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a move to the previous match for the
--   current search string.
--   
--   This is a keybinding signal.
--   
--   Applications should connect to it, to implement moving between
--   matches.
--   
--   The default bindings for this signal is
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>g</kbd>.
type SearchEntryPreviousMatchCallback = IO ()

-- | Connect a signal handler for the previousMatch signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after searchEntry #previousMatch callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSearchEntryPreviousMatch :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryPreviousMatchCallback) -> m SignalHandlerId

-- | Connect a signal handler for the previousMatch signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on searchEntry #previousMatch callback
--   
onSearchEntryPreviousMatch :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryPreviousMatchCallback) -> m SignalHandlerId

-- | Emitted with a delay. The length of the delay can be changed with the
--   SearchEntry:searchDelay property.
type SearchEntrySearchChangedCallback = IO ()

-- | Connect a signal handler for the searchChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after searchEntry #searchChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSearchEntrySearchChanged :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntrySearchChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the searchChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on searchEntry #searchChanged callback
--   
onSearchEntrySearchChanged :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntrySearchChangedCallback) -> m SignalHandlerId

-- | Emitted when the user initiated a search on the entry.
type SearchEntrySearchStartedCallback = IO ()

-- | Connect a signal handler for the searchStarted signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after searchEntry #searchStarted callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSearchEntrySearchStarted :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntrySearchStartedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the searchStarted signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on searchEntry #searchStarted callback
--   
onSearchEntrySearchStarted :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntrySearchStartedCallback) -> m SignalHandlerId

-- | Emitted when the user stops a search via keyboard input.
--   
--   This is a keybinding signal.
--   
--   Applications should connect to it, to implement hiding the search
--   entry in this case.
--   
--   The default bindings for this signal is <kbd>Escape</kbd>.
type SearchEntryStopSearchCallback = IO ()

-- | Connect a signal handler for the stopSearch signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after searchEntry #stopSearch callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterSearchEntryStopSearch :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryStopSearchCallback) -> m SignalHandlerId

-- | Connect a signal handler for the stopSearch signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on searchEntry #stopSearch callback
--   
onSearchEntryStopSearch :: (IsSearchEntry a, MonadIO m) => a -> ((?self :: a) => SearchEntryStopSearchCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.SearchEntry.SearchEntry
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SearchEntry.SearchEntry
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SearchEntry.SearchEntry
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SearchEntry.SearchEntry)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SearchEntry.SearchEntry o) => GI.Gtk.Objects.SearchEntry.IsSearchEntry o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SearchEntry.SearchEntry
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SearchEntry.SearchEntry

-- | Reveals a search entry when search is started.
--   
--   <picture> <source srcset="search-bar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkSearchBar" src="search-bar.png"> </picture>
--   
--   It can also contain additional widgets, such as drop-down menus, or
--   buttons. The search bar would appear when a search is started through
--   typing on the keyboard, or the application’s search mode is toggled
--   on.
--   
--   For keyboard presses to start a search, the search bar must be told of
--   a widget to capture key events from through
--   searchBarSetKeyCaptureWidget. This widget will typically be the
--   top-level window, or a parent container of the search bar. Common
--   shortcuts such as Ctrl+F should be handled as an application action,
--   or through the menu items.
--   
--   You will also need to tell the search bar about which entry you are
--   using as your search entry using searchBarConnectEntry.
--   
--   
Creating a search bar
--   
--   The following example shows you how to create a more complex search
--   entry.
--   
--   A simple example
--   
--   
Shortcuts and Gestures
--   
--   GtkSearchBar supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Escape</kbd> hides the search bar.
--   
--   
--   
CSS nodes
--   
--   
--   searchbar
--   ╰── revealer
--       ╰── box
--            ├── [child]
--            ╰── [button.close]
--   
--   
--   GtkSearchBar has a main CSS node with name searchbar. It has
--   a child node with name revealer that contains a node with name box.
--   The box node contains both the CSS node of the child widget as well as
--   an optional button node which gets the .close style class applied.
--   
--   
Accessibility
--   
--   GtkSearchBar uses the AccessibleRoleSearch role.
module GI.Gtk.Objects.SearchBar

-- | Memory-managed wrapper type.
newtype SearchBar
SearchBar :: ManagedPtr SearchBar -> SearchBar

-- | Type class for types which can be safely cast to SearchBar, for
--   instance with toSearchBar.
class (GObject o, IsDescendantOf SearchBar o) => IsSearchBar o

-- | Cast to SearchBar, for types for which this is known to be
--   safe. For general casts, use castTo.
toSearchBar :: (MonadIO m, IsSearchBar o) => o -> m SearchBar

-- | Connects the GtkEditable widget passed as the one to be used
--   in this search bar.
--   
--   The entry should be a descendant of the search bar. Calling this
--   function manually is only required if the entry isn’t the direct child
--   of the search bar (as in our main example).
searchBarConnectEntry :: (HasCallStack, MonadIO m, IsSearchBar a, IsEditable b) => a -> b -> m ()

-- | Gets the child widget of bar.
searchBarGetChild :: (HasCallStack, MonadIO m, IsSearchBar a) => a -> m (Maybe Widget)

-- | Gets the widget that bar is capturing key events from.
searchBarGetKeyCaptureWidget :: (HasCallStack, MonadIO m, IsSearchBar a) => a -> m (Maybe Widget)

-- | Returns whether the search mode is on or off.
searchBarGetSearchMode :: (HasCallStack, MonadIO m, IsSearchBar a) => a -> m Bool

-- | Returns whether the close button is shown.
searchBarGetShowCloseButton :: (HasCallStack, MonadIO m, IsSearchBar a) => a -> m Bool

-- | Creates a GtkSearchBar.
--   
--   You will need to tell it about which widget is going to be your text
--   entry using searchBarConnectEntry.
searchBarNew :: (HasCallStack, MonadIO m) => m SearchBar

-- | Sets the child widget of bar.
searchBarSetChild :: (HasCallStack, MonadIO m, IsSearchBar a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets widget as the widget that bar
--   will capture key events from.
--   
--   If key events are handled by the search bar, the bar will be shown,
--   and the entry populated with the entered text.
--   
--   Note that despite the name of this function, the events are only
--   'captured' in the bubble phase, which means that editable child
--   widgets of widget will receive text input before it
--   gets captured. If that is not desired, you can capture and forward the
--   events yourself with eventControllerKeyForward.
searchBarSetKeyCaptureWidget :: (HasCallStack, MonadIO m, IsSearchBar a, IsWidget b) => a -> Maybe b -> m ()

-- | Switches the search mode on or off.
searchBarSetSearchMode :: (HasCallStack, MonadIO m, IsSearchBar a) => a -> Bool -> m ()

-- | Shows or hides the close button.
--   
--   Applications that already have a “search” toggle button should not
--   show a close button in their search bar, as it duplicates the role of
--   the toggle button.
searchBarSetShowCloseButton :: (HasCallStack, MonadIO m, IsSearchBar a) => a -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearSearchBarChild :: (MonadIO m, IsSearchBar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructSearchBarChild :: (IsSearchBar o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchBar #child
--   
getSearchBarChild :: (MonadIO m, IsSearchBar o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchBar [ #child := value ]
--   
setSearchBarChild :: (MonadIO m, IsSearchBar o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “key-capture-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #keyCaptureWidget
--   
clearSearchBarKeyCaptureWidget :: (MonadIO m, IsSearchBar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “key-capture-widget” property. This is rarely needed
--   directly, but it is used by new.
constructSearchBarKeyCaptureWidget :: (IsSearchBar o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “key-capture-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchBar #keyCaptureWidget
--   
getSearchBarKeyCaptureWidget :: (MonadIO m, IsSearchBar o) => o -> m (Maybe Widget)

-- | Set the value of the “key-capture-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchBar [ #keyCaptureWidget := value ]
--   
setSearchBarKeyCaptureWidget :: (MonadIO m, IsSearchBar o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “search-mode-enabled” property. This is rarely needed
--   directly, but it is used by new.
constructSearchBarSearchModeEnabled :: (IsSearchBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “search-mode-enabled” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchBar #searchModeEnabled
--   
getSearchBarSearchModeEnabled :: (MonadIO m, IsSearchBar o) => o -> m Bool

-- | Set the value of the “search-mode-enabled” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchBar [ #searchModeEnabled := value ]
--   
setSearchBarSearchModeEnabled :: (MonadIO m, IsSearchBar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-close-button” property. This is rarely needed directly,
--   but it is used by new.
constructSearchBarShowCloseButton :: (IsSearchBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-close-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get searchBar #showCloseButton
--   
getSearchBarShowCloseButton :: (MonadIO m, IsSearchBar o) => o -> m Bool

-- | Set the value of the “show-close-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set searchBar [ #showCloseButton := value ]
--   
setSearchBarShowCloseButton :: (MonadIO m, IsSearchBar o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.SearchBar.SearchBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.SearchBar.SearchBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.SearchBar.SearchBar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.SearchBar.SearchBar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.SearchBar.SearchBar o) => GI.Gtk.Objects.SearchBar.IsSearchBar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.SearchBar.SearchBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.SearchBar.SearchBar

-- | Makes its child scrollable.
--   
--   <picture> <source srcset="scrolledwindow-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkScrolledWindow" src="scrolledwindow.png"> </picture>
--   
--   It does so using either internally added scrollbars or externally
--   associated adjustments, and optionally draws a frame around the child.
--   
--   Widgets with native scrolling support, i.e. those whose classes
--   implement the Scrollable interface, are added directly. For
--   other types of widget, the class Viewport acts as an adaptor,
--   giving scrollability to other widgets. scrolledWindowSetChild
--   intelligently accounts for whether or not the added child is a
--   GtkScrollable. If it isn’t, then it wraps the child in a
--   GtkViewport. Therefore, you can just add any child widget and
--   not worry about the details.
--   
--   If scrolledWindowSetChild has added a GtkViewport for
--   you, it will be automatically removed when you unset the child. Unless
--   ScrolledWindow:hscrollbarPolicy and
--   ScrolledWindow:vscrollbarPolicy are PolicyTypeNever or
--   PolicyTypeExternal, GtkScrolledWindow adds internal
--   GtkScrollbar widgets around its child. The scroll position of
--   the child, and if applicable the scrollbars, is controlled by the
--   ScrolledWindow:hadjustment and
--   ScrolledWindow:vadjustment that are associated with the
--   GtkScrolledWindow. See the docs on Scrollbar for the
--   details, but note that the “step_increment” and “page_increment”
--   fields are only effective if the policy causes scrollbars to be
--   present.
--   
--   If a GtkScrolledWindow doesn’t behave quite as you would
--   like, or doesn’t have exactly the right layout, it’s very possible to
--   set up your own scrolling with GtkScrollbar and for example a
--   GtkGrid.
--   
--   
Touch support
--   
--   GtkScrolledWindow has built-in support for touch devices.
--   When a touchscreen is used, swiping will move the scrolled window, and
--   will expose 'kinetic' behavior. This can be turned off with the
--   ScrolledWindow:kineticScrolling property if it is undesired.
--   
--   GtkScrolledWindow also displays visual 'overshoot' indication
--   when the content is pulled beyond the end, and this situation can be
--   captured with the ScrolledWindow::edgeOvershot signal.
--   
--   If no mouse device is present, the scrollbars will overlaid as narrow,
--   auto-hiding indicators over the content. If traditional scrollbars are
--   desired although no mouse is present, this behaviour can be turned off
--   with the ScrolledWindow:overlayScrolling property.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- ScrolledWindow::scrollChild
--   
--   
--   
CSS nodes
--   
--   GtkScrolledWindow has a main CSS node with name
--   scrolledwindow. It gets a .frame style class added when
--   ScrolledWindow:hasFrame is True.
--   
--   It uses subnodes with names overshoot and undershoot to draw the
--   overflow and underflow indications. These nodes get the .left, .right,
--   .top or .bottom style class added depending on where the indication is
--   drawn.
--   
--   GtkScrolledWindow also sets the positional style classes
--   (.left, .right, .top, .bottom) and style classes related to overlay
--   scrolling (.overlay-indicator, .dragging, .hovering) on its
--   scrollbars.
--   
--   If both scrollbars are visible, the area where they meet is drawn with
--   a subnode named junction.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkScrolledWindow used the
--   AccessibleRoleGroup role.
--   
--   Starting from GTK 4.12, GtkScrolledWindow uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.ScrolledWindow

-- | Memory-managed wrapper type.
newtype ScrolledWindow
ScrolledWindow :: ManagedPtr ScrolledWindow -> ScrolledWindow

-- | Type class for types which can be safely cast to
--   ScrolledWindow, for instance with toScrolledWindow.
class (GObject o, IsDescendantOf ScrolledWindow o) => IsScrolledWindow o

-- | Cast to ScrolledWindow, for types for which this is known to be
--   safe. For general casts, use castTo.
toScrolledWindow :: (MonadIO m, IsScrolledWindow o) => o -> m ScrolledWindow

-- | Gets the child widget of scrolledWindow.
--   
--   If the scrolled window automatically added a Viewport, this
--   function will return the viewport widget, and you can retrieve its
--   child using viewportGetChild.
scrolledWindowGetChild :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m (Maybe Widget)

-- | Returns the horizontal scrollbar’s adjustment.
--   
--   This is the adjustment used to connect the horizontal scrollbar to the
--   child widget’s horizontal scroll functionality.
scrolledWindowGetHadjustment :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Adjustment

-- | Gets whether the scrolled window draws a frame.
scrolledWindowGetHasFrame :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Bool

-- | Returns the horizontal scrollbar of scrolledWindow.
scrolledWindowGetHscrollbar :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Widget

-- | Returns the specified kinetic scrolling behavior.
scrolledWindowGetKineticScrolling :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Bool

-- | Returns the maximum content height set.
scrolledWindowGetMaxContentHeight :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Int32

-- | Returns the maximum content width set.
scrolledWindowGetMaxContentWidth :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Int32

-- | Gets the minimal content height of scrolledWindow.
scrolledWindowGetMinContentHeight :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Int32

-- | Gets the minimum content width of scrolledWindow.
scrolledWindowGetMinContentWidth :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Int32

-- | Returns whether overlay scrolling is enabled for this scrolled window.
scrolledWindowGetOverlayScrolling :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Bool

-- | Gets the placement of the contents with respect to the scrollbars.
scrolledWindowGetPlacement :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m CornerType

-- | Retrieves the current policy values for the horizontal and vertical
--   scrollbars.
--   
--   See scrolledWindowSetPolicy.
scrolledWindowGetPolicy :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m (PolicyType, PolicyType)

-- | Reports whether the natural height of the child will be calculated and
--   propagated through the scrolled window’s requested natural height.
scrolledWindowGetPropagateNaturalHeight :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Bool

-- | Reports whether the natural width of the child will be calculated and
--   propagated through the scrolled window’s requested natural width.
scrolledWindowGetPropagateNaturalWidth :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Bool

-- | Returns the vertical scrollbar’s adjustment.
--   
--   This is the adjustment used to connect the vertical scrollbar to the
--   child widget’s vertical scroll functionality.
scrolledWindowGetVadjustment :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Adjustment

-- | Returns the vertical scrollbar of scrolledWindow.
scrolledWindowGetVscrollbar :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m Widget

-- | Creates a new scrolled window.
scrolledWindowNew :: (HasCallStack, MonadIO m) => m ScrolledWindow

-- | Sets the child widget of scrolledWindow.
--   
--   If child does not implement the Scrollable
--   interface, the scrolled window will add child to a
--   Viewport instance and then add the viewport as its child
--   widget.
scrolledWindowSetChild :: (HasCallStack, MonadIO m, IsScrolledWindow a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the GtkAdjustment for the horizontal scrollbar.
scrolledWindowSetHadjustment :: (HasCallStack, MonadIO m, IsScrolledWindow a, IsAdjustment b) => a -> Maybe b -> m ()

-- | Changes the frame drawn around the contents of
--   scrolledWindow.
scrolledWindowSetHasFrame :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Bool -> m ()

-- | Turns kinetic scrolling on or off.
--   
--   Kinetic scrolling only applies to devices with source
--   InputSourceTouchscreen.
scrolledWindowSetKineticScrolling :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Bool -> m ()

-- | Sets the maximum height that scrolledWindow should
--   keep visible.
--   
--   The scrolledWindow will grow up to this height before
--   it starts scrolling the content.
--   
--   It is a programming error to set the maximum content height to a value
--   smaller than ScrolledWindow:minContentHeight.
scrolledWindowSetMaxContentHeight :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Int32 -> m ()

-- | Sets the maximum width that scrolledWindow should keep
--   visible.
--   
--   The scrolledWindow will grow up to this width before
--   it starts scrolling the content.
--   
--   It is a programming error to set the maximum content width to a value
--   smaller than ScrolledWindow:minContentWidth.
scrolledWindowSetMaxContentWidth :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Int32 -> m ()

-- | Sets the minimum height that scrolledWindow should
--   keep visible.
--   
--   Note that this can and (usually will) be smaller than the minimum size
--   of the content.
--   
--   It is a programming error to set the minimum content height to a value
--   greater than ScrolledWindow:maxContentHeight.
scrolledWindowSetMinContentHeight :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Int32 -> m ()

-- | Sets the minimum width that scrolledWindow should keep
--   visible.
--   
--   Note that this can and (usually will) be smaller than the minimum size
--   of the content.
--   
--   It is a programming error to set the minimum content width to a value
--   greater than ScrolledWindow:maxContentWidth.
scrolledWindowSetMinContentWidth :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Int32 -> m ()

-- | Enables or disables overlay scrolling for this scrolled window.
scrolledWindowSetOverlayScrolling :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Bool -> m ()

-- | Sets the placement of the contents with respect to the scrollbars for
--   the scrolled window.
--   
--   The default is CornerTypeTopLeft, meaning the child is in the
--   top left, with the scrollbars underneath and to the right. Other
--   values in CornerType are CornerTypeTopRight,
--   CornerTypeBottomLeft, and CornerTypeBottomRight.
--   
--   See also scrolledWindowGetPlacement and
--   scrolledWindowUnsetPlacement.
scrolledWindowSetPlacement :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> CornerType -> m ()

-- | Sets the scrollbar policy for the horizontal and vertical scrollbars.
--   
--   The policy determines when the scrollbar should appear; it is a value
--   from the PolicyType enumeration. If PolicyTypeAlways,
--   the scrollbar is always present; if PolicyTypeNever, the
--   scrollbar is never present; if PolicyTypeAutomatic, the
--   scrollbar is present only if needed (that is, if the slider part of
--   the bar would be smaller than the trough — the display is larger than
--   the page size).
scrolledWindowSetPolicy :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> PolicyType -> PolicyType -> m ()

-- | Sets whether the natural height of the child should be calculated and
--   propagated through the scrolled window’s requested natural height.
scrolledWindowSetPropagateNaturalHeight :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Bool -> m ()

-- | Sets whether the natural width of the child should be calculated and
--   propagated through the scrolled window’s requested natural width.
scrolledWindowSetPropagateNaturalWidth :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> Bool -> m ()

-- | Sets the GtkAdjustment for the vertical scrollbar.
scrolledWindowSetVadjustment :: (HasCallStack, MonadIO m, IsScrolledWindow a, IsAdjustment b) => a -> Maybe b -> m ()

-- | Unsets the placement of the contents with respect to the scrollbars.
--   
--   If no window placement is set for a scrolled window, it defaults to
--   CornerTypeTopLeft.
scrolledWindowUnsetPlacement :: (HasCallStack, MonadIO m, IsScrolledWindow a) => a -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearScrolledWindowChild :: (MonadIO m, IsScrolledWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructScrolledWindowChild :: (IsScrolledWindow o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #child
--   
getScrolledWindowChild :: (MonadIO m, IsScrolledWindow o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #child := value ]
--   
setScrolledWindowChild :: (MonadIO m, IsScrolledWindow o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “hadjustment” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #hadjustment
--   
clearScrolledWindowHadjustment :: (MonadIO m, IsScrolledWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hadjustment” property. This is rarely needed directly, but
--   it is used by new.
constructScrolledWindowHadjustment :: (IsScrolledWindow o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “hadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #hadjustment
--   
getScrolledWindowHadjustment :: (MonadIO m, IsScrolledWindow o) => o -> m Adjustment

-- | Set the value of the “hadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #hadjustment := value ]
--   
setScrolledWindowHadjustment :: (MonadIO m, IsScrolledWindow o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-frame” property. This is rarely needed directly, but it
--   is used by new.
constructScrolledWindowHasFrame :: (IsScrolledWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #hasFrame
--   
getScrolledWindowHasFrame :: (MonadIO m, IsScrolledWindow o) => o -> m Bool

-- | Set the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #hasFrame := value ]
--   
setScrolledWindowHasFrame :: (MonadIO m, IsScrolledWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “hscrollbar-policy” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowHscrollbarPolicy :: (IsScrolledWindow o, MonadIO m) => PolicyType -> m (GValueConstruct o)

-- | Get the value of the “hscrollbar-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #hscrollbarPolicy
--   
getScrolledWindowHscrollbarPolicy :: (MonadIO m, IsScrolledWindow o) => o -> m PolicyType

-- | Set the value of the “hscrollbar-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #hscrollbarPolicy := value ]
--   
setScrolledWindowHscrollbarPolicy :: (MonadIO m, IsScrolledWindow o) => o -> PolicyType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “kinetic-scrolling” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowKineticScrolling :: (IsScrolledWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “kinetic-scrolling” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #kineticScrolling
--   
getScrolledWindowKineticScrolling :: (MonadIO m, IsScrolledWindow o) => o -> m Bool

-- | Set the value of the “kinetic-scrolling” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #kineticScrolling := value ]
--   
setScrolledWindowKineticScrolling :: (MonadIO m, IsScrolledWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-content-height” property. This is rarely needed
--   directly, but it is used by new.
constructScrolledWindowMaxContentHeight :: (IsScrolledWindow o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-content-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #maxContentHeight
--   
getScrolledWindowMaxContentHeight :: (MonadIO m, IsScrolledWindow o) => o -> m Int32

-- | Set the value of the “max-content-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #maxContentHeight := value ]
--   
setScrolledWindowMaxContentHeight :: (MonadIO m, IsScrolledWindow o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-content-width” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowMaxContentWidth :: (IsScrolledWindow o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-content-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #maxContentWidth
--   
getScrolledWindowMaxContentWidth :: (MonadIO m, IsScrolledWindow o) => o -> m Int32

-- | Set the value of the “max-content-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #maxContentWidth := value ]
--   
setScrolledWindowMaxContentWidth :: (MonadIO m, IsScrolledWindow o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-content-height” property. This is rarely needed
--   directly, but it is used by new.
constructScrolledWindowMinContentHeight :: (IsScrolledWindow o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “min-content-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #minContentHeight
--   
getScrolledWindowMinContentHeight :: (MonadIO m, IsScrolledWindow o) => o -> m Int32

-- | Set the value of the “min-content-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #minContentHeight := value ]
--   
setScrolledWindowMinContentHeight :: (MonadIO m, IsScrolledWindow o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-content-width” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowMinContentWidth :: (IsScrolledWindow o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “min-content-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #minContentWidth
--   
getScrolledWindowMinContentWidth :: (MonadIO m, IsScrolledWindow o) => o -> m Int32

-- | Set the value of the “min-content-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #minContentWidth := value ]
--   
setScrolledWindowMinContentWidth :: (MonadIO m, IsScrolledWindow o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overlay-scrolling” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowOverlayScrolling :: (IsScrolledWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “overlay-scrolling” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #overlayScrolling
--   
getScrolledWindowOverlayScrolling :: (MonadIO m, IsScrolledWindow o) => o -> m Bool

-- | Set the value of the “overlay-scrolling” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #overlayScrolling := value ]
--   
setScrolledWindowOverlayScrolling :: (MonadIO m, IsScrolledWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “propagate-natural-height” property. This is rarely needed
--   directly, but it is used by new.
constructScrolledWindowPropagateNaturalHeight :: (IsScrolledWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “propagate-natural-height” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #propagateNaturalHeight
--   
getScrolledWindowPropagateNaturalHeight :: (MonadIO m, IsScrolledWindow o) => o -> m Bool

-- | Set the value of the “propagate-natural-height” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #propagateNaturalHeight := value ]
--   
setScrolledWindowPropagateNaturalHeight :: (MonadIO m, IsScrolledWindow o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “propagate-natural-width” property. This is rarely needed
--   directly, but it is used by new.
constructScrolledWindowPropagateNaturalWidth :: (IsScrolledWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “propagate-natural-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #propagateNaturalWidth
--   
getScrolledWindowPropagateNaturalWidth :: (MonadIO m, IsScrolledWindow o) => o -> m Bool

-- | Set the value of the “propagate-natural-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #propagateNaturalWidth := value ]
--   
setScrolledWindowPropagateNaturalWidth :: (MonadIO m, IsScrolledWindow o) => o -> Bool -> m ()

-- | Set the value of the “vadjustment” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #vadjustment
--   
clearScrolledWindowVadjustment :: (MonadIO m, IsScrolledWindow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vadjustment” property. This is rarely needed directly, but
--   it is used by new.
constructScrolledWindowVadjustment :: (IsScrolledWindow o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “vadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #vadjustment
--   
getScrolledWindowVadjustment :: (MonadIO m, IsScrolledWindow o) => o -> m Adjustment

-- | Set the value of the “vadjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #vadjustment := value ]
--   
setScrolledWindowVadjustment :: (MonadIO m, IsScrolledWindow o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “vscrollbar-policy” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowVscrollbarPolicy :: (IsScrolledWindow o, MonadIO m) => PolicyType -> m (GValueConstruct o)

-- | Get the value of the “vscrollbar-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #vscrollbarPolicy
--   
getScrolledWindowVscrollbarPolicy :: (MonadIO m, IsScrolledWindow o) => o -> m PolicyType

-- | Set the value of the “vscrollbar-policy” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #vscrollbarPolicy := value ]
--   
setScrolledWindowVscrollbarPolicy :: (MonadIO m, IsScrolledWindow o) => o -> PolicyType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “window-placement” property. This is rarely needed directly,
--   but it is used by new.
constructScrolledWindowWindowPlacement :: (IsScrolledWindow o, MonadIO m) => CornerType -> m (GValueConstruct o)

-- | Get the value of the “window-placement” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrolledWindow #windowPlacement
--   
getScrolledWindowWindowPlacement :: (MonadIO m, IsScrolledWindow o) => o -> m CornerType

-- | Set the value of the “window-placement” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrolledWindow [ #windowPlacement := value ]
--   
setScrolledWindowWindowPlacement :: (MonadIO m, IsScrolledWindow o) => o -> CornerType -> m ()

-- | Emitted whenever user initiated scrolling makes the scrolled window
--   firmly surpass the limits defined by the adjustment in that
--   orientation.
--   
--   A similar behavior without edge resistance is provided by the
--   ScrolledWindow::edgeReached signal.
--   
--   Note: The pos argument is LTR/RTL aware, so callers
--   should be aware too if intending to provide behavior on horizontal
--   edges.
type ScrolledWindowEdgeOvershotCallback = PositionType -> IO ()

-- | Connect a signal handler for the edgeOvershot signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scrolledWindow #edgeOvershot callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScrolledWindowEdgeOvershot :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowEdgeOvershotCallback) -> m SignalHandlerId

-- | Connect a signal handler for the edgeOvershot signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on scrolledWindow #edgeOvershot callback
--   
onScrolledWindowEdgeOvershot :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowEdgeOvershotCallback) -> m SignalHandlerId

-- | Emitted whenever user-initiated scrolling makes the scrolled window
--   exactly reach the lower or upper limits defined by the adjustment in
--   that orientation.
--   
--   A similar behavior with edge resistance is provided by the
--   ScrolledWindow::edgeOvershot signal.
--   
--   Note: The pos argument is LTR/RTL aware, so callers
--   should be aware too if intending to provide behavior on horizontal
--   edges.
type ScrolledWindowEdgeReachedCallback = PositionType -> IO ()

-- | Connect a signal handler for the edgeReached signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scrolledWindow #edgeReached callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScrolledWindowEdgeReached :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowEdgeReachedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the edgeReached signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on scrolledWindow #edgeReached callback
--   
onScrolledWindowEdgeReached :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowEdgeReachedCallback) -> m SignalHandlerId

-- | Emitted when focus is moved away from the scrolled window by a
--   keybinding.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>Tab</kbd> to move forward
--   and
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd>`
--   to move backward.
type ScrolledWindowMoveFocusOutCallback = DirectionType -> IO ()

-- | Connect a signal handler for the moveFocusOut signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scrolledWindow #moveFocusOut callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScrolledWindowMoveFocusOut :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowMoveFocusOutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveFocusOut signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on scrolledWindow #moveFocusOut callback
--   
onScrolledWindowMoveFocusOut :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowMoveFocusOutCallback) -> m SignalHandlerId

-- | Emitted when a keybinding that scrolls is pressed.
--   
--   This is a keybinding signal.
--   
--   The horizontal or vertical adjustment is updated which triggers a
--   signal that the scrolled window’s child may listen to and scroll
--   itself.
type ScrolledWindowScrollChildCallback = ScrollType -> Bool -> IO Bool

-- | Connect a signal handler for the scrollChild signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scrolledWindow #scrollChild callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScrolledWindowScrollChild :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowScrollChildCallback) -> m SignalHandlerId

-- | Connect a signal handler for the scrollChild signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on scrolledWindow #scrollChild callback
--   
onScrolledWindowScrollChild :: (IsScrolledWindow a, MonadIO m) => a -> ((?self :: a) => ScrolledWindowScrollChildCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ScrolledWindow.ScrolledWindow
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ScrolledWindow.ScrolledWindow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ScrolledWindow.ScrolledWindow
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ScrolledWindow.ScrolledWindow)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ScrolledWindow.ScrolledWindow o) => GI.Gtk.Objects.ScrolledWindow.IsScrolledWindow o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ScrolledWindow.ScrolledWindow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ScrolledWindow.ScrolledWindow

-- | Shows a horizontal or vertical scrollbar.
--   
--   <picture> <source srcset="scrollbar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkScrollbar" src="scrollbar.png"> </picture>
--   
--   Its position and movement are controlled by the adjustment that is
--   passed to or created by scrollbarNew. See Adjustment for
--   more details. The Adjustment:value field sets the position of
--   the thumb and must be between Adjustment:lower and
--   Adjustment:upper - Adjustment:pageSize. The
--   Adjustment:pageSize represents the size of the visible
--   scrollable area.
--   
--   The fields Adjustment:stepIncrement and
--   Adjustment:pageIncrement fields are added to or subtracted from
--   the Adjustment:value when the user asks to move by a step
--   (using e.g. the cursor arrow keys) or by a page (using e.g. the Page
--   Down/Up keys).
--   
--   
CSS nodes
--   
--   
--   scrollbar
--   ╰── range[.fine-tune]
--       ╰── trough
--           ╰── slider
--   
--   
--   GtkScrollbar has a main CSS node with name scrollbar and a
--   subnode for its contents. The main node gets the .horizontal or
--   .vertical style classes applied, depending on the scrollbar's
--   orientation.
--   
--   The range node gets the style class .fine-tune added when the
--   scrollbar is in 'fine-tuning' mode.
--   
--   Other style classes that may be added to scrollbars inside
--   ScrolledWindow include the positional classes (.left, .right,
--   .top, .bottom) and style classes related to overlay scrolling
--   (.overlay-indicator, .dragging, .hovering).
--   
--   
Accessibility
--   
--   GtkScrollbar uses the AccessibleRoleScrollbar role.
module GI.Gtk.Objects.Scrollbar

-- | Memory-managed wrapper type.
newtype Scrollbar
Scrollbar :: ManagedPtr Scrollbar -> Scrollbar

-- | Type class for types which can be safely cast to Scrollbar, for
--   instance with toScrollbar.
class (GObject o, IsDescendantOf Scrollbar o) => IsScrollbar o

-- | Cast to Scrollbar, for types for which this is known to be
--   safe. For general casts, use castTo.
toScrollbar :: (MonadIO m, IsScrollbar o) => o -> m Scrollbar

-- | Returns the scrollbar's adjustment.
scrollbarGetAdjustment :: (HasCallStack, MonadIO m, IsScrollbar a) => a -> m Adjustment

-- | Creates a new scrollbar with the given orientation.
scrollbarNew :: (HasCallStack, MonadIO m, IsAdjustment a) => Orientation -> Maybe a -> m Scrollbar

-- | Makes the scrollbar use the given adjustment.
scrollbarSetAdjustment :: (HasCallStack, MonadIO m, IsScrollbar a, IsAdjustment b) => a -> Maybe b -> m ()

-- | Set the value of the “adjustment” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #adjustment
--   
clearScrollbarAdjustment :: (MonadIO m, IsScrollbar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “adjustment” property. This is rarely needed directly, but it
--   is used by new.
constructScrollbarAdjustment :: (IsScrollbar o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scrollbar #adjustment
--   
getScrollbarAdjustment :: (MonadIO m, IsScrollbar o) => o -> m Adjustment

-- | Set the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scrollbar [ #adjustment := value ]
--   
setScrollbarAdjustment :: (MonadIO m, IsScrollbar o, IsAdjustment a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Scrollbar.Scrollbar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Scrollbar.Scrollbar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Scrollbar.Scrollbar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Scrollbar.Scrollbar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Scrollbar.Scrollbar o) => GI.Gtk.Objects.Scrollbar.IsScrollbar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Scrollbar.Scrollbar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Scrollbar.Scrollbar

-- | Provides a button which pops up a scale widget.
--   
--   This kind of widget is commonly used for volume controls in multimedia
--   applications, and GTK provides a VolumeButton subclass that is
--   tailored for this use case.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- ScaleButton::popup
--   
--   
--   
CSS nodes
--   
--   
--   scalebutton.scale
--   ╰── button.toggle
--       ╰── <icon>
--   
--   
--   GtkScaleButton has a single CSS node with name scalebutton
--   and .scale style class, and contains a button node
--   with a .toggle style class.
module GI.Gtk.Objects.ScaleButton

-- | Memory-managed wrapper type.
newtype ScaleButton
ScaleButton :: ManagedPtr ScaleButton -> ScaleButton

-- | Type class for types which can be safely cast to ScaleButton,
--   for instance with toScaleButton.
class (GObject o, IsDescendantOf ScaleButton o) => IsScaleButton o

-- | Cast to ScaleButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toScaleButton :: (MonadIO m, IsScaleButton o) => o -> m ScaleButton

-- | Queries a GtkScaleButton and returns its current state.
--   
--   Returns True if the scale button is pressed in and False
--   if it is raised.
--   
--   Since: 4.10
scaleButtonGetActive :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Bool

-- | Gets the GtkAdjustment associated with the
--   GtkScaleButton’s scale.
--   
--   See rangeGetAdjustment for details.
scaleButtonGetAdjustment :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Adjustment

-- | Returns whether the button has a frame.
--   
--   Since: 4.14
scaleButtonGetHasFrame :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Bool

-- | Retrieves the minus button of the GtkScaleButton.
scaleButtonGetMinusButton :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Button

-- | Retrieves the plus button of the GtkScaleButton.
scaleButtonGetPlusButton :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Button

-- | Retrieves the popup of the GtkScaleButton.
scaleButtonGetPopup :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Widget

-- | Gets the current value of the scale button.
scaleButtonGetValue :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> m Double

-- | Creates a GtkScaleButton.
--   
--   The new scale button has a range between min and
--   max, with a stepping of step.
scaleButtonNew :: (HasCallStack, MonadIO m) => Double -> Double -> Double -> Maybe [Text] -> m ScaleButton

-- | Sets the GtkAdjustment to be used as a model for the
--   GtkScaleButton’s scale.
--   
--   See rangeSetAdjustment for details.
scaleButtonSetAdjustment :: (HasCallStack, MonadIO m, IsScaleButton a, IsAdjustment b) => a -> b -> m ()

-- | Sets the style of the button.
--   
--   Since: 4.14
scaleButtonSetHasFrame :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> Bool -> m ()

-- | Sets the icons to be used by the scale button.
scaleButtonSetIcons :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> [Text] -> m ()

-- | Sets the current value of the scale.
--   
--   If the value is outside the minimum or maximum range values, it will
--   be clamped to fit inside them.
--   
--   The scale button emits the ScaleButton::valueChanged signal if
--   the value changes.
scaleButtonSetValue :: (HasCallStack, MonadIO m, IsScaleButton a) => a -> Double -> m ()

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scaleButton #active
--   
getScaleButtonActive :: (MonadIO m, IsScaleButton o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “adjustment” property. This is rarely needed directly, but it
--   is used by new.
constructScaleButtonAdjustment :: (IsScaleButton o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scaleButton #adjustment
--   
getScaleButtonAdjustment :: (MonadIO m, IsScaleButton o) => o -> m Adjustment

-- | Set the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scaleButton [ #adjustment := value ]
--   
setScaleButtonAdjustment :: (MonadIO m, IsScaleButton o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-frame” property. This is rarely needed directly, but it
--   is used by new.
constructScaleButtonHasFrame :: (IsScaleButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scaleButton #hasFrame
--   
getScaleButtonHasFrame :: (MonadIO m, IsScaleButton o) => o -> m Bool

-- | Set the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scaleButton [ #hasFrame := value ]
--   
setScaleButtonHasFrame :: (MonadIO m, IsScaleButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icons” property. This is rarely needed directly, but it is
--   used by new.
constructScaleButtonIcons :: (IsScaleButton o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “icons” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scaleButton #icons
--   
getScaleButtonIcons :: (MonadIO m, IsScaleButton o) => o -> m (Maybe [Text])

-- | Set the value of the “icons” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scaleButton [ #icons := value ]
--   
setScaleButtonIcons :: (MonadIO m, IsScaleButton o) => o -> [Text] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “value” property. This is rarely needed directly, but it is
--   used by new.
constructScaleButtonValue :: (IsScaleButton o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scaleButton #value
--   
getScaleButtonValue :: (MonadIO m, IsScaleButton o) => o -> m Double

-- | Set the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scaleButton [ #value := value ]
--   
setScaleButtonValue :: (MonadIO m, IsScaleButton o) => o -> Double -> m ()

-- | Emitted to dismiss the popup.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is <kbd>Escape</kbd>.
type ScaleButtonPopdownCallback = IO ()

-- | Connect a signal handler for the popdown signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scaleButton #popdown callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScaleButtonPopdown :: (IsScaleButton a, MonadIO m) => a -> ((?self :: a) => ScaleButtonPopdownCallback) -> m SignalHandlerId

-- | Connect a signal handler for the popdown signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on scaleButton #popdown callback
--   
onScaleButtonPopdown :: (IsScaleButton a, MonadIO m) => a -> ((?self :: a) => ScaleButtonPopdownCallback) -> m SignalHandlerId

-- | Emitted to popup the scale widget.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are <kbd>Space</kbd>,
--   <kbd>Enter</kbd> and <kbd>Return</kbd>.
type ScaleButtonPopupCallback = IO ()

-- | Connect a signal handler for the popup signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scaleButton #popup callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScaleButtonPopup :: (IsScaleButton a, MonadIO m) => a -> ((?self :: a) => ScaleButtonPopupCallback) -> m SignalHandlerId

-- | Connect a signal handler for the popup signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on scaleButton #popup callback
--   
onScaleButtonPopup :: (IsScaleButton a, MonadIO m) => a -> ((?self :: a) => ScaleButtonPopupCallback) -> m SignalHandlerId

-- | Emitted when the value field has changed.
type ScaleButtonValueChangedCallback = Double -> IO ()

-- | Connect a signal handler for the valueChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after scaleButton #valueChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterScaleButtonValueChanged :: (IsScaleButton a, MonadIO m) => a -> ((?self :: a) => ScaleButtonValueChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the valueChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on scaleButton #valueChanged callback
--   
onScaleButtonValueChanged :: (IsScaleButton a, MonadIO m) => a -> ((?self :: a) => ScaleButtonValueChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ScaleButton.ScaleButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ScaleButton.ScaleButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ScaleButton.ScaleButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ScaleButton.ScaleButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ScaleButton.ScaleButton o) => GI.Gtk.Objects.ScaleButton.IsScaleButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ScaleButton.ScaleButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ScaleButton.ScaleButton

-- | Allows to select a numeric value with a slider control.
--   
--   <picture> <source srcset="scales-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkScale" src="scales.png"> </picture>
--   
--   To use it, you’ll probably want to investigate the methods on its base
--   class, Range, in addition to the methods for GtkScale
--   itself. To set the value of a scale, you would normally use
--   rangeSetValue. To detect changes to the value, you would
--   normally use the Range::valueChanged signal.
--   
--   Note that using the same upper and lower bounds for the
--   GtkScale (through the GtkRange methods) will hide
--   the slider itself. This is useful for applications that want to show
--   an undeterminate value on the scale, without changing the layout of
--   the application (such as movie or music players).
--   
--   
GtkScale as GtkBuildable
--   
--   GtkScale supports a custom <marks> element,
--   which can contain multiple <mark\> elements. The
--   “value” and “position” attributes have the same meaning as
--   scaleAddMark parameters of the same name. If the element is not
--   empty, its content is taken as the markup to show at the mark. It can
--   be translated with the usual ”translatable” and “context” attributes.
--   
--   
Shortcuts and Gestures
--   
--   GtkPopoverMenu supports the following keyboard shortcuts:
--   
--   
--   
- Arrow keys, <kbd>+</kbd> and <kbd>-</kbd>
--   will increment or decrement by step, or by page when combined with
--   <kbd>Ctrl</kbd>.
--   
- <kbd>PgUp</kbd> and <kbd>PgDn</kbd> will
--   increment or decrement by page.
--   
- <kbd>Home</kbd> and <kbd>End</kbd> will
--   set the minimum or maximum value.
--   
--   
--   
CSS nodes
--   
--   
--   scale[.fine-tune][.marks-before][.marks-after]
--   ├── [value][.top][.right][.bottom][.left]
--   ├── marks.top
--   │   ├── mark
--   │   ┊    ├── [label]
--   │   ┊    ╰── indicator
--   ┊   ┊
--   │   ╰── mark
--   ├── marks.bottom
--   │   ├── mark
--   │   ┊    ├── indicator
--   │   ┊    ╰── [label]
--   ┊   ┊
--   │   ╰── mark
--   ╰── trough
--       ├── [fill]
--       ├── [highlight]
--       ╰── slider
--   
--   
--   GtkScale has a main CSS node with name scale and a subnode
--   for its contents, with subnodes named trough and slider.
--   
--   The main node gets the style class .fine-tune added when the scale is
--   in 'fine-tuning' mode.
--   
--   If the scale has an origin (see scaleSetHasOrigin), there is a
--   subnode with name highlight below the trough node that is used for
--   rendering the highlighted part of the trough.
--   
--   If the scale is showing a fill level (see
--   rangeSetShowFillLevel), there is a subnode with name fill below
--   the trough node that is used for rendering the filled in part of the
--   trough.
--   
--   If marks are present, there is a marks subnode before or after the
--   trough node, below which each mark gets a node with name mark. The
--   marks nodes get either the .top or .bottom style class.
--   
--   The mark node has a subnode named indicator. If the mark has text, it
--   also has a subnode named label. When the mark is either above or left
--   of the scale, the label subnode is the first when present. Otherwise,
--   the indicator subnode is the first.
--   
--   The main CSS node gets the 'marks-before' and/or 'marks-after' style
--   classes added depending on what marks are present.
--   
--   If the scale is displaying the value (see Scale:drawValue),
--   there is subnode with name value. This node will get the .top or
--   .bottom style classes similar to the marks node.
--   
--   
Accessibility
--   
--   GtkScale uses the AccessibleRoleSlider role.
module GI.Gtk.Objects.Scale

-- | Memory-managed wrapper type.
newtype Scale
Scale :: ManagedPtr Scale -> Scale

-- | Type class for types which can be safely cast to Scale, for
--   instance with toScale.
class (GObject o, IsDescendantOf Scale o) => IsScale o

-- | Cast to Scale, for types for which this is known to be safe.
--   For general casts, use castTo.
toScale :: (MonadIO m, IsScale o) => o -> m Scale

-- | Adds a mark at value.
--   
--   A mark is indicated visually by drawing a tick mark next to the scale,
--   and GTK makes it easy for the user to position the scale exactly at
--   the marks value.
--   
--   If markup is not Nothing, text is shown next to
--   the tick mark.
--   
--   To remove marks from a scale, use scaleClearMarks.
scaleAddMark :: (HasCallStack, MonadIO m, IsScale a) => a -> Double -> PositionType -> Maybe Text -> m ()

-- | Removes any marks that have been added.
scaleClearMarks :: (HasCallStack, MonadIO m, IsScale a) => a -> m ()

-- | Gets the number of decimal places that are displayed in the value.
scaleGetDigits :: (HasCallStack, MonadIO m, IsScale a) => a -> m Int32

-- | Returns whether the current value is displayed as a string next to the
--   slider.
scaleGetDrawValue :: (HasCallStack, MonadIO m, IsScale a) => a -> m Bool

-- | Returns whether the scale has an origin.
scaleGetHasOrigin :: (HasCallStack, MonadIO m, IsScale a) => a -> m Bool

-- | Gets the PangoLayout used to display the scale.
--   
--   The returned object is owned by the scale so does not need to be freed
--   by the caller.
scaleGetLayout :: (HasCallStack, MonadIO m, IsScale a) => a -> m (Maybe Layout)

-- | Obtains the coordinates where the scale will draw the
--   PangoLayout representing the text in the scale.
--   
--   Remember when using the PangoLayout function you need to
--   convert to and from pixels using PANGO_PIXELS() or
--   PANGO_SCALE.
--   
--   If the Scale:drawValue property is False, the return
--   values are undefined.
scaleGetLayoutOffsets :: (HasCallStack, MonadIO m, IsScale a) => a -> m (Int32, Int32)

-- | Gets the position in which the current value is displayed.
scaleGetValuePos :: (HasCallStack, MonadIO m, IsScale a) => a -> m PositionType

-- | Creates a new GtkScale.
scaleNew :: (HasCallStack, MonadIO m, IsAdjustment a) => Orientation -> Maybe a -> m Scale

-- | Creates a new scale widget with a range from min to
--   max.
--   
--   The returns scale will have the given orientation and will let the
--   user input a number between min and
--   max (including min and
--   max) with the increment step.
--   step must be nonzero; it’s the distance the slider
--   moves when using the arrow keys to adjust the scale value.
--   
--   Note that the way in which the precision is derived works best if
--   step is a power of ten. If the resulting precision is
--   not suitable for your needs, use scaleSetDigits to correct it.
scaleNewWithRange :: (HasCallStack, MonadIO m) => Orientation -> Double -> Double -> Double -> m Scale

-- | Sets the number of decimal places that are displayed in the value.
--   
--   Also causes the value of the adjustment to be rounded to this number
--   of digits, so the retrieved value matches the displayed one, if
--   Scale:drawValue is True when the value changes. If you
--   want to enforce rounding the value when Scale:drawValue is
--   False, you can set Range:roundDigits instead.
--   
--   Note that rounding to a small number of digits can interfere with the
--   smooth autoscrolling that is built into GtkScale. As an
--   alternative, you can use scaleSetFormatValueFunc to format the
--   displayed value yourself.
scaleSetDigits :: (HasCallStack, MonadIO m, IsScale a) => a -> Int32 -> m ()

-- | Specifies whether the current value is displayed as a string next to
--   the slider.
scaleSetDrawValue :: (HasCallStack, MonadIO m, IsScale a) => a -> Bool -> m ()

-- | func allows you to change how the scale value is
--   displayed.
--   
--   The given function will return an allocated string representing
--   value. That string will then be used to display the
--   scale's value.
--   
--   If NULL is passed as func, the value
--   will be displayed on its own, rounded according to the value of the
--   Scale:digits property.
scaleSetFormatValueFunc :: (HasCallStack, MonadIO m, IsScale a) => a -> Maybe ScaleFormatValueFunc -> m ()

-- | Sets whether the scale has an origin.
--   
--   If Scale:hasOrigin is set to True (the default), the
--   scale will highlight the part of the trough between the origin (bottom
--   or left side) and the current value.
scaleSetHasOrigin :: (HasCallStack, MonadIO m, IsScale a) => a -> Bool -> m ()

-- | Sets the position in which the current value is displayed.
scaleSetValuePos :: (HasCallStack, MonadIO m, IsScale a) => a -> PositionType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “digits” property. This is rarely needed directly, but it is
--   used by new.
constructScaleDigits :: (IsScale o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scale #digits
--   
getScaleDigits :: (MonadIO m, IsScale o) => o -> m Int32

-- | Set the value of the “digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scale [ #digits := value ]
--   
setScaleDigits :: (MonadIO m, IsScale o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “draw-value” property. This is rarely needed directly, but it
--   is used by new.
constructScaleDrawValue :: (IsScale o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “draw-value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scale #drawValue
--   
getScaleDrawValue :: (MonadIO m, IsScale o) => o -> m Bool

-- | Set the value of the “draw-value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scale [ #drawValue := value ]
--   
setScaleDrawValue :: (MonadIO m, IsScale o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-origin” property. This is rarely needed directly, but it
--   is used by new.
constructScaleHasOrigin :: (IsScale o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-origin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scale #hasOrigin
--   
getScaleHasOrigin :: (MonadIO m, IsScale o) => o -> m Bool

-- | Set the value of the “has-origin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scale [ #hasOrigin := value ]
--   
setScaleHasOrigin :: (MonadIO m, IsScale o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “value-pos” property. This is rarely needed directly, but it
--   is used by new.
constructScaleValuePos :: (IsScale o, MonadIO m) => PositionType -> m (GValueConstruct o)

-- | Get the value of the “value-pos” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get scale #valuePos
--   
getScaleValuePos :: (MonadIO m, IsScale o) => o -> m PositionType

-- | Set the value of the “value-pos” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set scale [ #valuePos := value ]
--   
setScaleValuePos :: (MonadIO m, IsScale o) => o -> PositionType -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Scale.Scale
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Scale.Scale
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Scale.Scale
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Scale.Scale)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Scale.Scale o) => GI.Gtk.Objects.Scale.IsScale o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Scale.Scale
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Scale.Scale

-- | Animates the transition of its child from invisible to visible.
--   
--   The style of transition can be controlled with
--   revealerSetTransitionType.
--   
--   These animations respect the Settings:gtkEnableAnimations
--   setting.
--   
--   
CSS nodes
--   
--   GtkRevealer has a single CSS node with name revealer. When
--   styling GtkRevealer using CSS, remember that it only hides
--   its contents, not itself. That means applied margin, padding and
--   borders will be visible even when the Revealer:revealChild
--   property is set to False.
--   
--   
Accessibility
--   
--   GtkRevealer uses the AccessibleRoleGroup role.
--   
--   The child of GtkRevealer, if set, is always available in the
--   accessibility tree, regardless of the state of the revealer widget.
module GI.Gtk.Objects.Revealer

-- | Memory-managed wrapper type.
newtype Revealer
Revealer :: ManagedPtr Revealer -> Revealer

-- | Type class for types which can be safely cast to Revealer, for
--   instance with toRevealer.
class (GObject o, IsDescendantOf Revealer o) => IsRevealer o

-- | Cast to Revealer, for types for which this is known to be safe.
--   For general casts, use castTo.
toRevealer :: (MonadIO m, IsRevealer o) => o -> m Revealer

-- | Gets the child widget of revealer.
revealerGetChild :: (HasCallStack, MonadIO m, IsRevealer a) => a -> m (Maybe Widget)

-- | Returns whether the child is fully revealed.
--   
--   In other words, this returns whether the transition to the revealed
--   state is completed.
revealerGetChildRevealed :: (HasCallStack, MonadIO m, IsRevealer a) => a -> m Bool

-- | Returns whether the child is currently revealed.
--   
--   This function returns True as soon as the transition is to the
--   revealed state is started. To learn whether the child is fully
--   revealed (ie the transition is completed), use
--   revealerGetChildRevealed.
revealerGetRevealChild :: (HasCallStack, MonadIO m, IsRevealer a) => a -> m Bool

-- | Returns the amount of time (in milliseconds) that transitions will
--   take.
revealerGetTransitionDuration :: (HasCallStack, MonadIO m, IsRevealer a) => a -> m Word32

-- | Gets the type of animation that will be used for transitions in
--   revealer.
revealerGetTransitionType :: (HasCallStack, MonadIO m, IsRevealer a) => a -> m RevealerTransitionType

-- | Creates a new GtkRevealer.
revealerNew :: (HasCallStack, MonadIO m) => m Revealer

-- | Sets the child widget of revealer.
revealerSetChild :: (HasCallStack, MonadIO m, IsRevealer a, IsWidget b) => a -> Maybe b -> m ()

-- | Tells the GtkRevealer to reveal or conceal its child.
--   
--   The transition will be animated with the current transition type of
--   revealer.
revealerSetRevealChild :: (HasCallStack, MonadIO m, IsRevealer a) => a -> Bool -> m ()

-- | Sets the duration that transitions will take.
revealerSetTransitionDuration :: (HasCallStack, MonadIO m, IsRevealer a) => a -> Word32 -> m ()

-- | Sets the type of animation that will be used for transitions in
--   revealer.
--   
--   Available types include various kinds of fades and slides.
revealerSetTransitionType :: (HasCallStack, MonadIO m, IsRevealer a) => a -> RevealerTransitionType -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearRevealerChild :: (MonadIO m, IsRevealer o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructRevealerChild :: (IsRevealer o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get revealer #child
--   
getRevealerChild :: (MonadIO m, IsRevealer o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set revealer [ #child := value ]
--   
setRevealerChild :: (MonadIO m, IsRevealer o, IsWidget a) => o -> a -> m ()

-- | Get the value of the “child-revealed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get revealer #childRevealed
--   
getRevealerChildRevealed :: (MonadIO m, IsRevealer o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “reveal-child” property. This is rarely needed directly, but
--   it is used by new.
constructRevealerRevealChild :: (IsRevealer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “reveal-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get revealer #revealChild
--   
getRevealerRevealChild :: (MonadIO m, IsRevealer o) => o -> m Bool

-- | Set the value of the “reveal-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set revealer [ #revealChild := value ]
--   
setRevealerRevealChild :: (MonadIO m, IsRevealer o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “transition-duration” property. This is rarely needed
--   directly, but it is used by new.
constructRevealerTransitionDuration :: (IsRevealer o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “transition-duration” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get revealer #transitionDuration
--   
getRevealerTransitionDuration :: (MonadIO m, IsRevealer o) => o -> m Word32

-- | Set the value of the “transition-duration” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set revealer [ #transitionDuration := value ]
--   
setRevealerTransitionDuration :: (MonadIO m, IsRevealer o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “transition-type” property. This is rarely needed directly,
--   but it is used by new.
constructRevealerTransitionType :: (IsRevealer o, MonadIO m) => RevealerTransitionType -> m (GValueConstruct o)

-- | Get the value of the “transition-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get revealer #transitionType
--   
getRevealerTransitionType :: (MonadIO m, IsRevealer o) => o -> m RevealerTransitionType

-- | Set the value of the “transition-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set revealer [ #transitionType := value ]
--   
setRevealerTransitionType :: (MonadIO m, IsRevealer o) => o -> RevealerTransitionType -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Revealer.Revealer
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Revealer.Revealer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Revealer.Revealer
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Revealer.Revealer)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Revealer.Revealer o) => GI.Gtk.Objects.Revealer.IsRevealer o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Revealer.Revealer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Revealer.Revealer

-- | Base class for widgets which visualize an adjustment.
--   
--   Widgets that are derived from GtkRange include Scale
--   and Scrollbar.
--   
--   Apart from signals for monitoring the parameters of the adjustment,
--   GtkRange provides properties and methods for setting a “fill
--   level” on range widgets. See rangeSetFillLevel.
--   
--   
Shortcuts and Gestures
--   
--   The GtkRange slider is draggable. Holding the
--   <kbd>Shift</kbd> key while dragging, or initiating the
--   drag with a long-press will enable the fine-tuning mode.
module GI.Gtk.Objects.Range

-- | Memory-managed wrapper type.
newtype Range
Range :: ManagedPtr Range -> Range

-- | Type class for types which can be safely cast to Range, for
--   instance with toRange.
class (GObject o, IsDescendantOf Range o) => IsRange o

-- | Cast to Range, for types for which this is known to be safe.
--   For general casts, use castTo.
toRange :: (MonadIO m, IsRange o) => o -> m Range

-- | Get the adjustment which is the “model” object for GtkRange.
rangeGetAdjustment :: (HasCallStack, MonadIO m, IsRange a) => a -> m Adjustment

-- | Gets the current position of the fill level indicator.
rangeGetFillLevel :: (HasCallStack, MonadIO m, IsRange a) => a -> m Double

-- | Gets whether the GtkRange respects text direction.
--   
--   See rangeSetFlippable.
rangeGetFlippable :: (HasCallStack, MonadIO m, IsRange a) => a -> m Bool

-- | Gets whether the range is inverted.
--   
--   See rangeSetInverted.
rangeGetInverted :: (HasCallStack, MonadIO m, IsRange a) => a -> m Bool

-- | This function returns the area that contains the range’s trough, in
--   coordinates relative to range's origin.
--   
--   This function is useful mainly for GtkRange subclasses.
rangeGetRangeRect :: (HasCallStack, MonadIO m, IsRange a) => a -> m Rectangle

-- | Gets whether the range is restricted to the fill level.
rangeGetRestrictToFillLevel :: (HasCallStack, MonadIO m, IsRange a) => a -> m Bool

-- | Gets the number of digits to round the value to when it changes.
--   
--   See Range::changeValue.
rangeGetRoundDigits :: (HasCallStack, MonadIO m, IsRange a) => a -> m Int32

-- | Gets whether the range displays the fill level graphically.
rangeGetShowFillLevel :: (HasCallStack, MonadIO m, IsRange a) => a -> m Bool

-- | This function returns sliders range along the long dimension, in
--   widget->window coordinates.
--   
--   This function is useful mainly for GtkRange subclasses.
rangeGetSliderRange :: (HasCallStack, MonadIO m, IsRange a) => a -> m (Int32, Int32)

-- | This function is useful mainly for GtkRange subclasses.
--   
--   See rangeSetSliderSizeFixed.
rangeGetSliderSizeFixed :: (HasCallStack, MonadIO m, IsRange a) => a -> m Bool

-- | Gets the current value of the range.
rangeGetValue :: (HasCallStack, MonadIO m, IsRange a) => a -> m Double

-- | Sets the adjustment to be used as the “model” object for the
--   GtkRange
--   
--   The adjustment indicates the current range value, the minimum and
--   maximum range values, the step/page increments used for keybindings
--   and scrolling, and the page size.
--   
--   The page size is normally 0 for GtkScale and nonzero for
--   GtkScrollbar, and indicates the size of the visible area of
--   the widget being scrolled. The page size affects the size of the
--   scrollbar slider.
rangeSetAdjustment :: (HasCallStack, MonadIO m, IsRange a, IsAdjustment b) => a -> b -> m ()

-- | Set the new position of the fill level indicator.
--   
--   The “fill level” is probably best described by its most prominent use
--   case, which is an indicator for the amount of pre-buffering in a
--   streaming media player. In that use case, the value of the range would
--   indicate the current play position, and the fill level would be the
--   position up to which the file/stream has been downloaded.
--   
--   This amount of prebuffering can be displayed on the range’s trough and
--   is themeable separately from the trough. To enable fill level display,
--   use rangeSetShowFillLevel. The range defaults to not showing
--   the fill level.
--   
--   Additionally, it’s possible to restrict the range’s slider position to
--   values which are smaller than the fill level. This is controlled by
--   rangeSetRestrictToFillLevel and is by default enabled.
rangeSetFillLevel :: (HasCallStack, MonadIO m, IsRange a) => a -> Double -> m ()

-- | Sets whether the GtkRange respects text direction.
--   
--   If a range is flippable, it will switch its direction if it is
--   horizontal and its direction is TextDirectionRtl.
--   
--   See widgetGetDirection.
rangeSetFlippable :: (HasCallStack, MonadIO m, IsRange a) => a -> Bool -> m ()

-- | Sets the step and page sizes for the range.
--   
--   The step size is used when the user clicks the GtkScrollbar
--   arrows or moves a GtkScale via arrow keys. The page size is
--   used for example when moving via Page Up or Page Down keys.
rangeSetIncrements :: (HasCallStack, MonadIO m, IsRange a) => a -> Double -> Double -> m ()

-- | Sets whether to invert the range.
--   
--   Ranges normally move from lower to higher values as the slider moves
--   from top to bottom or left to right. Inverted ranges have higher
--   values at the top or on the right rather than on the bottom or left.
rangeSetInverted :: (HasCallStack, MonadIO m, IsRange a) => a -> Bool -> m ()

-- | Sets the allowable values in the GtkRange.
--   
--   The range value is clamped to be between min and
--   max. (If the range has a non-zero page size, it is
--   clamped between min and max -
--   page-size.)
rangeSetRange :: (HasCallStack, MonadIO m, IsRange a) => a -> Double -> Double -> m ()

-- | Sets whether the slider is restricted to the fill level.
--   
--   See rangeSetFillLevel for a general description of the fill
--   level concept.
rangeSetRestrictToFillLevel :: (HasCallStack, MonadIO m, IsRange a) => a -> Bool -> m ()

-- | Sets the number of digits to round the value to when it changes.
--   
--   See Range::changeValue.
rangeSetRoundDigits :: (HasCallStack, MonadIO m, IsRange a) => a -> Int32 -> m ()

-- | Sets whether a graphical fill level is show on the trough.
--   
--   See rangeSetFillLevel for a general description of the fill
--   level concept.
rangeSetShowFillLevel :: (HasCallStack, MonadIO m, IsRange a) => a -> Bool -> m ()

-- | Sets whether the range’s slider has a fixed size, or a size that
--   depends on its adjustment’s page size.
--   
--   This function is useful mainly for GtkRange subclasses.
rangeSetSliderSizeFixed :: (HasCallStack, MonadIO m, IsRange a) => a -> Bool -> m ()

-- | Sets the current value of the range.
--   
--   If the value is outside the minimum or maximum range values, it will
--   be clamped to fit inside them. The range emits the
--   Range::valueChanged signal if the value changes.
rangeSetValue :: (HasCallStack, MonadIO m, IsRange a) => a -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “adjustment” property. This is rarely needed directly, but it
--   is used by new.
constructRangeAdjustment :: (IsRange o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get range #adjustment
--   
getRangeAdjustment :: (MonadIO m, IsRange o) => o -> m Adjustment

-- | Set the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set range [ #adjustment := value ]
--   
setRangeAdjustment :: (MonadIO m, IsRange o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fill-level” property. This is rarely needed directly, but it
--   is used by new.
constructRangeFillLevel :: (IsRange o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “fill-level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get range #fillLevel
--   
getRangeFillLevel :: (MonadIO m, IsRange o) => o -> m Double

-- | Set the value of the “fill-level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set range [ #fillLevel := value ]
--   
setRangeFillLevel :: (MonadIO m, IsRange o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “inverted” property. This is rarely needed directly, but it
--   is used by new.
constructRangeInverted :: (IsRange o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get range #inverted
--   
getRangeInverted :: (MonadIO m, IsRange o) => o -> m Bool

-- | Set the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set range [ #inverted := value ]
--   
setRangeInverted :: (MonadIO m, IsRange o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “restrict-to-fill-level” property. This is rarely needed
--   directly, but it is used by new.
constructRangeRestrictToFillLevel :: (IsRange o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “restrict-to-fill-level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get range #restrictToFillLevel
--   
getRangeRestrictToFillLevel :: (MonadIO m, IsRange o) => o -> m Bool

-- | Set the value of the “restrict-to-fill-level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set range [ #restrictToFillLevel := value ]
--   
setRangeRestrictToFillLevel :: (MonadIO m, IsRange o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “round-digits” property. This is rarely needed directly, but
--   it is used by new.
constructRangeRoundDigits :: (IsRange o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “round-digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get range #roundDigits
--   
getRangeRoundDigits :: (MonadIO m, IsRange o) => o -> m Int32

-- | Set the value of the “round-digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set range [ #roundDigits := value ]
--   
setRangeRoundDigits :: (MonadIO m, IsRange o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-fill-level” property. This is rarely needed directly,
--   but it is used by new.
constructRangeShowFillLevel :: (IsRange o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-fill-level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get range #showFillLevel
--   
getRangeShowFillLevel :: (MonadIO m, IsRange o) => o -> m Bool

-- | Set the value of the “show-fill-level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set range [ #showFillLevel := value ]
--   
setRangeShowFillLevel :: (MonadIO m, IsRange o) => o -> Bool -> m ()

-- | Emitted before clamping a value, to give the application a chance to
--   adjust the bounds.
type RangeAdjustBoundsCallback = Double -> IO ()

-- | Connect a signal handler for the adjustBounds signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after range #adjustBounds callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterRangeAdjustBounds :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeAdjustBoundsCallback) -> m SignalHandlerId

-- | Connect a signal handler for the adjustBounds signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on range #adjustBounds callback
--   
onRangeAdjustBounds :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeAdjustBoundsCallback) -> m SignalHandlerId

-- | Emitted when a scroll action is performed on a range.
--   
--   It allows an application to determine the type of scroll event that
--   occurred and the resultant new value. The application can handle the
--   event itself and return True to prevent further processing. Or,
--   by returning False, it can pass the event to other handlers
--   until the default GTK handler is reached.
--   
--   The value parameter is unrounded. An application that overrides the
--   changeValue signal is responsible for clamping the value to the
--   desired number of decimal digits; the default GTK handler clamps the
--   value based on Range:roundDigits.
type RangeChangeValueCallback = ScrollType -> Double -> IO Bool

-- | Connect a signal handler for the changeValue signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after range #changeValue callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterRangeChangeValue :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeChangeValueCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changeValue signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on range #changeValue callback
--   
onRangeChangeValue :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeChangeValueCallback) -> m SignalHandlerId

-- | Virtual function that moves the slider.
--   
--   Used for keybindings.
type RangeMoveSliderCallback = ScrollType -> IO ()

-- | Connect a signal handler for the moveSlider signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after range #moveSlider callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterRangeMoveSlider :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeMoveSliderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveSlider signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on range #moveSlider callback
--   
onRangeMoveSlider :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeMoveSliderCallback) -> m SignalHandlerId

-- | Emitted when the range value changes.
type RangeValueChangedCallback = IO ()

-- | Connect a signal handler for the valueChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after range #valueChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterRangeValueChanged :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeValueChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the valueChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on range #valueChanged callback
--   
onRangeValueChanged :: (IsRange a, MonadIO m) => a -> ((?self :: a) => RangeValueChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Range.Range
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Range.Range
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Range.Range
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Range.Range)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Range.Range o) => GI.Gtk.Objects.Range.IsRange o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Range.Range
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Range.Range

-- | A GObject property value in a GtkExpression.
module GI.Gtk.Objects.PropertyExpression

-- | Memory-managed wrapper type.
newtype PropertyExpression
PropertyExpression :: ManagedPtr PropertyExpression -> PropertyExpression

-- | Type class for types which can be safely cast to
--   PropertyExpression, for instance with
--   toPropertyExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf PropertyExpression o) => IsPropertyExpression o

-- | Cast to PropertyExpression, for types for which this is known
--   to be safe. For general casts, use castTo.
toPropertyExpression :: (MonadIO m, IsPropertyExpression o) => o -> m PropertyExpression

-- | Gets the expression specifying the object of a property expression.
propertyExpressionGetExpression :: (HasCallStack, MonadIO m, IsPropertyExpression a) => a -> m (Maybe Expression)

-- | Gets the GParamSpec specifying the property of a property
--   expression.
propertyExpressionGetPspec :: (HasCallStack, MonadIO m, IsPropertyExpression a) => a -> m GParamSpec

-- | Creates an expression that looks up a property.
--   
--   The object to use is found by evaluating the expression, or
--   using the this argument when expression is
--   NULL.
--   
--   If the resulting object conforms to this_type, its property
--   named property_name will be queried. Otherwise, this
--   expression's evaluation will fail.
--   
--   The given this_type must have a property with
--   property_name.
propertyExpressionNew :: (HasCallStack, MonadIO m, IsExpression a) => GType -> Maybe a -> Text -> m PropertyExpression

-- | Creates an expression that looks up a property.
--   
--   The object to use is found by evaluating the expression, or
--   using the this argument when expression is
--   NULL.
--   
--   If the resulting object conforms to this_type, its property
--   specified by pspec will be queried. Otherwise, this
--   expression's evaluation will fail.
propertyExpressionNewForPspec :: (HasCallStack, MonadIO m, IsExpression a) => Maybe a -> GParamSpec -> m PropertyExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.PropertyExpression.PropertyExpression
instance GHC.Classes.Eq GI.Gtk.Objects.PropertyExpression.PropertyExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PropertyExpression.PropertyExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PropertyExpression.PropertyExpression o) => GI.Gtk.Objects.PropertyExpression.IsPropertyExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PropertyExpression.PropertyExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PropertyExpression.PropertyExpression

-- | Displays the progress of a long-running operation.
--   
--   GtkProgressBar provides a visual clue that processing is
--   underway. It can be used in two different modes: percentage mode and
--   activity mode.
--   
--   <picture> <source srcset="progressbar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkProgressBar" src="progressbar.png"> </picture>
--   
--   When an application can determine how much work needs to take place
--   (e.g. read a fixed number of bytes from a file) and can monitor its
--   progress, it can use the GtkProgressBar in percentage mode
--   and the user sees a growing bar indicating the percentage of the work
--   that has been completed. In this mode, the application is required to
--   call progressBarSetFraction periodically to update the progress
--   bar.
--   
--   When an application has no accurate way of knowing the amount of work
--   to do, it can use the GtkProgressBar in activity mode, which
--   shows activity by a block moving back and forth within the progress
--   area. In this mode, the application is required to call
--   progressBarPulse periodically to update the progress bar.
--   
--   There is quite a bit of flexibility provided to control the appearance
--   of the GtkProgressBar. Functions are provided to control the
--   orientation of the bar, optional text can be displayed along with the
--   bar, and the step size used in activity mode can be set.
--   
--   
CSS nodes
--   
--   
--   progressbar[.osd]
--   ├── [text]
--   ╰── trough[.empty][.full]
--       ╰── progress[.pulse]
--   
--   
--   GtkProgressBar has a main CSS node with name progressbar and
--   subnodes with names text and trough, of which the latter has a subnode
--   named progress. The text subnode is only present if text is shown. The
--   progress subnode has the style class .pulse when in activity mode. It
--   gets the style classes .left, .right, .top or .bottom added when the
--   progress 'touches' the corresponding end of the GtkProgressBar. The
--   .osd class on the progressbar node is for use in overlays like the one
--   Epiphany has for page loading progress.
--   
--   
Accessibility
--   
--   GtkProgressBar uses the AccessibleRoleProgressBar role
--   and sets the AccessiblePropertyValueMin,
--   AccessiblePropertyValueMax and
--   AccessiblePropertyValueNow properties to reflect the progress.
module GI.Gtk.Objects.ProgressBar

-- | Memory-managed wrapper type.
newtype ProgressBar
ProgressBar :: ManagedPtr ProgressBar -> ProgressBar

-- | Type class for types which can be safely cast to ProgressBar,
--   for instance with toProgressBar.
class (GObject o, IsDescendantOf ProgressBar o) => IsProgressBar o

-- | Cast to ProgressBar, for types for which this is known to be
--   safe. For general casts, use castTo.
toProgressBar :: (MonadIO m, IsProgressBar o) => o -> m ProgressBar

-- | Returns the ellipsizing position of the progress bar.
--   
--   See progressBarSetEllipsize.
progressBarGetEllipsize :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m EllipsizeMode

-- | Returns the current fraction of the task that’s been completed.
progressBarGetFraction :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m Double

-- | Returns whether the progress bar is inverted.
progressBarGetInverted :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m Bool

-- | Retrieves the pulse step.
--   
--   See progressBarSetPulseStep.
progressBarGetPulseStep :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m Double

-- | Returns whether the GtkProgressBar shows text.
--   
--   See progressBarSetShowText.
progressBarGetShowText :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m Bool

-- | Retrieves the text that is displayed with the progress bar.
--   
--   The return value is a reference to the text, not a copy of it, so will
--   become invalid if you change the text in the progress bar.
progressBarGetText :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m (Maybe Text)

-- | Creates a new GtkProgressBar.
progressBarNew :: (HasCallStack, MonadIO m) => m ProgressBar

-- | Indicates that some progress has been made, but you don’t know how
--   much.
--   
--   Causes the progress bar to enter “activity mode,” where a block
--   bounces back and forth. Each call to progressBarPulse causes
--   the block to move by a little bit (the amount of movement per pulse is
--   determined by progressBarSetPulseStep).
progressBarPulse :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> m ()

-- | Sets the mode used to ellipsize the text.
--   
--   The text is ellipsized if there is not enough space to render the
--   entire string.
progressBarSetEllipsize :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> EllipsizeMode -> m ()

-- | Causes the progress bar to “fill in” the given fraction of the bar.
--   
--   The fraction should be between 0.0 and 1.0, inclusive.
progressBarSetFraction :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> Double -> m ()

-- | Sets whether the progress bar is inverted.
--   
--   Progress bars normally grow from top to bottom or left to right.
--   Inverted progress bars grow in the opposite direction.
progressBarSetInverted :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> Bool -> m ()

-- | Sets the fraction of total progress bar length to move the bouncing
--   block.
--   
--   The bouncing block is moved when progressBarPulse is called.
progressBarSetPulseStep :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> Double -> m ()

-- | Sets whether the progress bar will show text next to the bar.
--   
--   The shown text is either the value of the ProgressBar:text
--   property or, if that is Nothing, the
--   ProgressBar:fraction value, as a percentage.
--   
--   To make a progress bar that is styled and sized suitably for
--   containing text (even if the actual text is blank), set
--   ProgressBar:showText to True and ProgressBar:text
--   to the empty string (not Nothing).
progressBarSetShowText :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> Bool -> m ()

-- | Causes the given text to appear next to the progress
--   bar.
--   
--   If text is Nothing and
--   ProgressBar:showText is True, the current value of
--   ProgressBar:fraction will be displayed as a percentage.
--   
--   If text is non-Nothing and
--   ProgressBar:showText is True, the text will be
--   displayed. In this case, it will not display the progress percentage.
--   If text is the empty string, the progress bar will
--   still be styled and sized suitably for containing text, as long as
--   ProgressBar:showText is True.
progressBarSetText :: (HasCallStack, MonadIO m, IsProgressBar a) => a -> Maybe Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ellipsize” property. This is rarely needed directly, but it
--   is used by new.
constructProgressBarEllipsize :: (IsProgressBar o, MonadIO m) => EllipsizeMode -> m (GValueConstruct o)

-- | Get the value of the “ellipsize” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get progressBar #ellipsize
--   
getProgressBarEllipsize :: (MonadIO m, IsProgressBar o) => o -> m EllipsizeMode

-- | Set the value of the “ellipsize” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set progressBar [ #ellipsize := value ]
--   
setProgressBarEllipsize :: (MonadIO m, IsProgressBar o) => o -> EllipsizeMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fraction” property. This is rarely needed directly, but it
--   is used by new.
constructProgressBarFraction :: (IsProgressBar o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “fraction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get progressBar #fraction
--   
getProgressBarFraction :: (MonadIO m, IsProgressBar o) => o -> m Double

-- | Set the value of the “fraction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set progressBar [ #fraction := value ]
--   
setProgressBarFraction :: (MonadIO m, IsProgressBar o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “inverted” property. This is rarely needed directly, but it
--   is used by new.
constructProgressBarInverted :: (IsProgressBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get progressBar #inverted
--   
getProgressBarInverted :: (MonadIO m, IsProgressBar o) => o -> m Bool

-- | Set the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set progressBar [ #inverted := value ]
--   
setProgressBarInverted :: (MonadIO m, IsProgressBar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pulse-step” property. This is rarely needed directly, but it
--   is used by new.
constructProgressBarPulseStep :: (IsProgressBar o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “pulse-step” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get progressBar #pulseStep
--   
getProgressBarPulseStep :: (MonadIO m, IsProgressBar o) => o -> m Double

-- | Set the value of the “pulse-step” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set progressBar [ #pulseStep := value ]
--   
setProgressBarPulseStep :: (MonadIO m, IsProgressBar o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-text” property. This is rarely needed directly, but it
--   is used by new.
constructProgressBarShowText :: (IsProgressBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get progressBar #showText
--   
getProgressBarShowText :: (MonadIO m, IsProgressBar o) => o -> m Bool

-- | Set the value of the “show-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set progressBar [ #showText := value ]
--   
setProgressBarShowText :: (MonadIO m, IsProgressBar o) => o -> Bool -> m ()

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearProgressBarText :: (MonadIO m, IsProgressBar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructProgressBarText :: (IsProgressBar o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get progressBar #text
--   
getProgressBarText :: (MonadIO m, IsProgressBar o) => o -> m (Maybe Text)

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set progressBar [ #text := value ]
--   
setProgressBarText :: (MonadIO m, IsProgressBar o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ProgressBar.ProgressBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ProgressBar.ProgressBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ProgressBar.ProgressBar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ProgressBar.ProgressBar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ProgressBar.ProgressBar o) => GI.Gtk.Objects.ProgressBar.IsProgressBar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ProgressBar.ProgressBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ProgressBar.ProgressBar

-- | A print dialog for platforms which don’t provide a native print
--   dialog, like Unix.
--   
--   <picture> <source srcset="printdialog-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPrintUnixDialog" src="printdialog.png"> </picture>
--   
--   It can be used very much like any other GTK dialog, at the cost of the
--   portability offered by the high-level printing API with
--   PrintOperation.
--   
--   In order to print something with GtkPrintUnixDialog, you need
--   to use printUnixDialogGetSelectedPrinter to obtain a
--   Printer object and use it to construct a PrintJob using
--   printJobNew.
--   
--   GtkPrintUnixDialog uses the following response values:
--   
--   
--   
- ResponseTypeOk: for the “Print” button
--   
- ResponseTypeApply: for the “Preview” button
--   
- ResponseTypeCancel: for the “Cancel” button
--   
--   
--   
GtkPrintUnixDialog as GtkBuildable
--   
--   The GtkPrintUnixDialog implementation of the
--   GtkBuildable interface exposes its notebook
--   internal children with the name “notebook”.
--   
--   An example of a GtkPrintUnixDialog UI definition fragment:
--   
--   
xml code
--   
--   
--   <object class="GtkPrintUnixDialog" id="dialog1">
--     <child internal-child="notebook">
--       <object class="GtkNotebook" id="notebook">
--         <child>
--           <object type="GtkNotebookPage">
--             <property name="tab_expand">False</property>
--             <property name="tab_fill">False</property>
--             <property name="tab">
--               <object class="GtkLabel" id="tablabel">
--                 <property name="label">Tab label</property>
--               </object>
--             </property>
--             <property name="child">
--               <object class="GtkLabel" id="tabcontent">
--                 <property name="label">Content on notebook tab</property>
--               </object>
--             </property>
--           </object>
--         </child>
--       </object>
--     </child>
--   </object>
--   
--   
--   
CSS nodes
--   
--   GtkPrintUnixDialog has a single CSS node with name window.
--   The style classes dialog and print are added.
module GI.Gtk.Objects.PrintUnixDialog

-- | Memory-managed wrapper type.
newtype PrintUnixDialog
PrintUnixDialog :: ManagedPtr PrintUnixDialog -> PrintUnixDialog

-- | Type class for types which can be safely cast to
--   PrintUnixDialog, for instance with toPrintUnixDialog.
class (GObject o, IsDescendantOf PrintUnixDialog o) => IsPrintUnixDialog o

-- | Cast to PrintUnixDialog, for types for which this is known to
--   be safe. For general casts, use castTo.
toPrintUnixDialog :: (MonadIO m, IsPrintUnixDialog o) => o -> m PrintUnixDialog

-- | Adds a custom tab to the print dialog.
printUnixDialogAddCustomTab :: (HasCallStack, MonadIO m, IsPrintUnixDialog a, IsWidget b, IsWidget c) => a -> b -> c -> m ()

-- | Gets the current page of the GtkPrintUnixDialog.
printUnixDialogGetCurrentPage :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m Int32

-- | Gets whether to embed the page setup.
printUnixDialogGetEmbedPageSetup :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m Bool

-- | Gets whether there is a selection.
printUnixDialogGetHasSelection :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m Bool

-- | Gets the capabilities that have been set on this
--   GtkPrintUnixDialog.
printUnixDialogGetManualCapabilities :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m [PrintCapabilities]

-- | Gets the page setup that is used by the GtkPrintUnixDialog.
printUnixDialogGetPageSetup :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m PageSetup

-- | Gets whether a page setup was set by the user.
printUnixDialogGetPageSetupSet :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m Bool

-- | Gets the currently selected printer.
printUnixDialogGetSelectedPrinter :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m (Maybe Printer)

-- | Gets a new GtkPrintSettings object that represents the
--   current values in the print dialog.
--   
--   Note that this creates a new object, and you need to unref it if don’t
--   want to keep it.
printUnixDialogGetSettings :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m PrintSettings

-- | Gets whether the print dialog allows user to print a selection.
printUnixDialogGetSupportSelection :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> m Bool

-- | Creates a new GtkPrintUnixDialog.
printUnixDialogNew :: (HasCallStack, MonadIO m, IsWindow a) => Maybe Text -> Maybe a -> m PrintUnixDialog

-- | Sets the current page number.
--   
--   If currentPage is not -1, this enables the current
--   page choice for the range of pages to print.
printUnixDialogSetCurrentPage :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> Int32 -> m ()

-- | Embed page size combo box and orientation combo box into page setup
--   page.
printUnixDialogSetEmbedPageSetup :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> Bool -> m ()

-- | Sets whether a selection exists.
printUnixDialogSetHasSelection :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> Bool -> m ()

-- | This lets you specify the printing capabilities your application
--   supports.
--   
--   For instance, if you can handle scaling the output then you pass
--   PrintCapabilitiesScale. If you don’t pass that, then the dialog
--   will only let you select the scale if the printing system
--   automatically handles scaling.
printUnixDialogSetManualCapabilities :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> [PrintCapabilities] -> m ()

-- | Sets the page setup of the GtkPrintUnixDialog.
printUnixDialogSetPageSetup :: (HasCallStack, MonadIO m, IsPrintUnixDialog a, IsPageSetup b) => a -> b -> m ()

-- | Sets the GtkPrintSettings for the
--   GtkPrintUnixDialog.
--   
--   Typically, this is used to restore saved print settings from a
--   previous print operation before the print dialog is shown.
printUnixDialogSetSettings :: (HasCallStack, MonadIO m, IsPrintUnixDialog a, IsPrintSettings b) => a -> Maybe b -> m ()

-- | Sets whether the print dialog allows user to print a selection.
printUnixDialogSetSupportSelection :: (HasCallStack, MonadIO m, IsPrintUnixDialog a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “current-page” property. This is rarely needed directly, but
--   it is used by new.
constructPrintUnixDialogCurrentPage :: (IsPrintUnixDialog o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “current-page” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #currentPage
--   
getPrintUnixDialogCurrentPage :: (MonadIO m, IsPrintUnixDialog o) => o -> m Int32

-- | Set the value of the “current-page” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #currentPage := value ]
--   
setPrintUnixDialogCurrentPage :: (MonadIO m, IsPrintUnixDialog o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “embed-page-setup” property. This is rarely needed directly,
--   but it is used by new.
constructPrintUnixDialogEmbedPageSetup :: (IsPrintUnixDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “embed-page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #embedPageSetup
--   
getPrintUnixDialogEmbedPageSetup :: (MonadIO m, IsPrintUnixDialog o) => o -> m Bool

-- | Set the value of the “embed-page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #embedPageSetup := value ]
--   
setPrintUnixDialogEmbedPageSetup :: (MonadIO m, IsPrintUnixDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-selection” property. This is rarely needed directly, but
--   it is used by new.
constructPrintUnixDialogHasSelection :: (IsPrintUnixDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #hasSelection
--   
getPrintUnixDialogHasSelection :: (MonadIO m, IsPrintUnixDialog o) => o -> m Bool

-- | Set the value of the “has-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #hasSelection := value ]
--   
setPrintUnixDialogHasSelection :: (MonadIO m, IsPrintUnixDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “manual-capabilities” property. This is rarely needed
--   directly, but it is used by new.
constructPrintUnixDialogManualCapabilities :: (IsPrintUnixDialog o, MonadIO m) => [PrintCapabilities] -> m (GValueConstruct o)

-- | Get the value of the “manual-capabilities” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #manualCapabilities
--   
getPrintUnixDialogManualCapabilities :: (MonadIO m, IsPrintUnixDialog o) => o -> m [PrintCapabilities]

-- | Set the value of the “manual-capabilities” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #manualCapabilities := value ]
--   
setPrintUnixDialogManualCapabilities :: (MonadIO m, IsPrintUnixDialog o) => o -> [PrintCapabilities] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page-setup” property. This is rarely needed directly, but it
--   is used by new.
constructPrintUnixDialogPageSetup :: (IsPrintUnixDialog o, MonadIO m, IsPageSetup a) => a -> m (GValueConstruct o)

-- | Get the value of the “page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #pageSetup
--   
getPrintUnixDialogPageSetup :: (MonadIO m, IsPrintUnixDialog o) => o -> m PageSetup

-- | Set the value of the “page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #pageSetup := value ]
--   
setPrintUnixDialogPageSetup :: (MonadIO m, IsPrintUnixDialog o, IsPageSetup a) => o -> a -> m ()

-- | Set the value of the “print-settings” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #printSettings
--   
clearPrintUnixDialogPrintSettings :: (MonadIO m, IsPrintUnixDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “print-settings” property. This is rarely needed directly,
--   but it is used by new.
constructPrintUnixDialogPrintSettings :: (IsPrintUnixDialog o, MonadIO m, IsPrintSettings a) => a -> m (GValueConstruct o)

-- | Get the value of the “print-settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #printSettings
--   
getPrintUnixDialogPrintSettings :: (MonadIO m, IsPrintUnixDialog o) => o -> m (Maybe PrintSettings)

-- | Set the value of the “print-settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #printSettings := value ]
--   
setPrintUnixDialogPrintSettings :: (MonadIO m, IsPrintUnixDialog o, IsPrintSettings a) => o -> a -> m ()

-- | Get the value of the “selected-printer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #selectedPrinter
--   
getPrintUnixDialogSelectedPrinter :: (MonadIO m, IsPrintUnixDialog o) => o -> m (Maybe Printer)

-- | Construct a GValueConstruct with valid value for the
--   “support-selection” property. This is rarely needed directly,
--   but it is used by new.
constructPrintUnixDialogSupportSelection :: (IsPrintUnixDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “support-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printUnixDialog #supportSelection
--   
getPrintUnixDialogSupportSelection :: (MonadIO m, IsPrintUnixDialog o) => o -> m Bool

-- | Set the value of the “support-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printUnixDialog [ #supportSelection := value ]
--   
setPrintUnixDialogSupportSelection :: (MonadIO m, IsPrintUnixDialog o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog o) => GI.Gtk.Objects.PrintUnixDialog.IsPrintUnixDialog o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PrintUnixDialog.PrintUnixDialog

-- | Collects the settings of a print dialog in a system-independent way.
--   
--   The main use for this object is that once you’ve printed you can get a
--   settings object that represents the settings the user chose, and the
--   next time you print you can pass that object in so that the user
--   doesn’t have to re-set all his settings.
--   
--   Its also possible to enumerate the settings so that you can easily
--   save the settings for the next time your app runs, or even store them
--   in a document. The predefined keys try to use shared values as much as
--   possible so that moving such a document between systems still works.
module GI.Gtk.Objects.PrintSettings

-- | Memory-managed wrapper type.
newtype PrintSettings
PrintSettings :: ManagedPtr PrintSettings -> PrintSettings

-- | Type class for types which can be safely cast to PrintSettings,
--   for instance with toPrintSettings.
class (GObject o, IsDescendantOf PrintSettings o) => IsPrintSettings o

-- | Cast to PrintSettings, for types for which this is known to be
--   safe. For general casts, use castTo.
toPrintSettings :: (MonadIO m, IsPrintSettings o) => o -> m PrintSettings

-- | Copies a GtkPrintSettings object.
printSettingsCopy :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m PrintSettings

-- | Calls func for each key-value pair of
--   settings.
printSettingsForeach :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PrintSettingsFunc -> m ()

-- | Looks up the string value associated with key.
printSettingsGet :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m (Maybe Text)

-- | Returns the boolean represented by the value that is associated with
--   key.
--   
--   The string “true” represents True, any other string
--   False.
printSettingsGetBool :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m Bool

-- | Gets the value of PRINT_SETTINGS_COLLATE.
printSettingsGetCollate :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Bool

-- | Gets the value of PRINT_SETTINGS_DEFAULT_SOURCE.
printSettingsGetDefaultSource :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe Text)

-- | Gets the value of PRINT_SETTINGS_DITHER.
printSettingsGetDither :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe Text)

-- | Returns the double value associated with key, or 0.
printSettingsGetDouble :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m Double

-- | Returns the floating point number represented by the value that is
--   associated with key, or defaultVal if
--   the value does not represent a floating point number.
--   
--   Floating point numbers are parsed with asciiStrtod.
printSettingsGetDoubleWithDefault :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Double -> m Double

-- | Gets the value of PRINT_SETTINGS_DUPLEX.
printSettingsGetDuplex :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m PrintDuplex

-- | Gets the value of PRINT_SETTINGS_FINISHINGS.
printSettingsGetFinishings :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe Text)

-- | Returns the integer value of key, or 0.
printSettingsGetInt :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m Int32

-- | Returns the value of key, interpreted as an integer,
--   or the default value.
printSettingsGetIntWithDefault :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Int32 -> m Int32

-- | Returns the value associated with key, interpreted as
--   a length.
--   
--   The returned value is converted to units.
printSettingsGetLength :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Unit -> m Double

-- | Gets the value of PRINT_SETTINGS_MEDIA_TYPE.
--   
--   The set of media types is defined in PWG 5101.1-2002 PWG.
printSettingsGetMediaType :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe Text)

-- | Gets the value of PRINT_SETTINGS_N_COPIES.
printSettingsGetNCopies :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Int32

-- | Gets the value of PRINT_SETTINGS_NUMBER_UP.
printSettingsGetNumberUp :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Int32

-- | Gets the value of PRINT_SETTINGS_NUMBER_UP_LAYOUT.
printSettingsGetNumberUpLayout :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m NumberUpLayout

-- | Get the value of PRINT_SETTINGS_ORIENTATION, converted to a
--   GtkPageOrientation.
printSettingsGetOrientation :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m PageOrientation

-- | Gets the value of PRINT_SETTINGS_OUTPUT_BIN.
printSettingsGetOutputBin :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe Text)

-- | Gets the value of PRINT_SETTINGS_PAGE_RANGES.
printSettingsGetPageRanges :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m [PageRange]

-- | Gets the value of PRINT_SETTINGS_PAGE_SET.
printSettingsGetPageSet :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m PageSet

-- | Gets the value of PRINT_SETTINGS_PAPER_HEIGHT, converted to
--   unit.
printSettingsGetPaperHeight :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Unit -> m Double

-- | Gets the value of PRINT_SETTINGS_PAPER_FORMAT, converted to a
--   GtkPaperSize.
printSettingsGetPaperSize :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe PaperSize)

-- | Gets the value of PRINT_SETTINGS_PAPER_WIDTH, converted to
--   unit.
printSettingsGetPaperWidth :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Unit -> m Double

-- | Gets the value of PRINT_SETTINGS_PRINT_PAGES.
printSettingsGetPrintPages :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m PrintPages

-- | Convenience function to obtain the value of
--   PRINT_SETTINGS_PRINTER.
printSettingsGetPrinter :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m (Maybe Text)

-- | Gets the value of PRINT_SETTINGS_PRINTER_LPI.
printSettingsGetPrinterLpi :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Double

-- | Gets the value of PRINT_SETTINGS_QUALITY.
printSettingsGetQuality :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m PrintQuality

-- | Gets the value of PRINT_SETTINGS_RESOLUTION.
printSettingsGetResolution :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Int32

-- | Gets the value of PRINT_SETTINGS_RESOLUTION_X.
printSettingsGetResolutionX :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Int32

-- | Gets the value of PRINT_SETTINGS_RESOLUTION_Y.
printSettingsGetResolutionY :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Int32

-- | Gets the value of PRINT_SETTINGS_REVERSE.
printSettingsGetReverse :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Bool

-- | Gets the value of PRINT_SETTINGS_SCALE.
printSettingsGetScale :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Double

-- | Gets the value of PRINT_SETTINGS_USE_COLOR.
printSettingsGetUseColor :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m Bool

-- | Returns True, if a value is associated with
--   key.
printSettingsHasKey :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m Bool

-- | Reads the print settings from fileName.
--   
--   If the file could not be loaded then error is set to either a
--   GFileError or GKeyFileError.
--   
--   See printSettingsToFile.
printSettingsLoadFile :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> [Char] -> m ()

-- | Reads the print settings from the group groupName in
--   keyFile.
--   
--   If the file could not be loaded then error is set to either a
--   GFileError or GKeyFileError.
printSettingsLoadKeyFile :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> KeyFile -> Maybe Text -> m ()

-- | Creates a new GtkPrintSettings object.
printSettingsNew :: (HasCallStack, MonadIO m) => m PrintSettings

-- | Reads the print settings from fileName.
--   
--   Returns a new GtkPrintSettings object with the restored
--   settings, or Nothing if an error occurred. If the file could
--   not be loaded then error is set to either a GFileError or
--   GKeyFileError.
--   
--   See printSettingsToFile.
printSettingsNewFromFile :: (HasCallStack, MonadIO m) => [Char] -> m PrintSettings

-- | Deserialize print settings from an a{sv} variant.
--   
--   The variant must be in the format produced by
--   printSettingsToGvariant.
printSettingsNewFromGvariant :: (HasCallStack, MonadIO m) => GVariant -> m PrintSettings

-- | Reads the print settings from the group groupName in
--   keyFile.
--   
--   Returns a new GtkPrintSettings object with the restored
--   settings, or Nothing if an error occurred. If the file could
--   not be loaded then error is set to either GFileError or
--   GKeyFileError.
printSettingsNewFromKeyFile :: (HasCallStack, MonadIO m) => KeyFile -> Maybe Text -> m PrintSettings

-- | Associates value with key.
printSettingsSet :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Maybe Text -> m ()

-- | Sets key to a boolean value.
printSettingsSetBool :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Bool -> m ()

-- | Sets the value of PRINT_SETTINGS_COLLATE.
printSettingsSetCollate :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Bool -> m ()

-- | Sets the value of PRINT_SETTINGS_DEFAULT_SOURCE.
printSettingsSetDefaultSource :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()

-- | Sets the value of PRINT_SETTINGS_DITHER.
printSettingsSetDither :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()

-- | Sets key to a double value.
printSettingsSetDouble :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Double -> m ()

-- | Sets the value of PRINT_SETTINGS_DUPLEX.
printSettingsSetDuplex :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PrintDuplex -> m ()

-- | Sets the value of PRINT_SETTINGS_FINISHINGS.
printSettingsSetFinishings :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()

-- | Sets key to an integer value.
printSettingsSetInt :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Int32 -> m ()

-- | Associates a length in units of unit with
--   key.
printSettingsSetLength :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> Double -> Unit -> m ()

-- | Sets the value of PRINT_SETTINGS_MEDIA_TYPE.
--   
--   The set of media types is defined in PWG 5101.1-2002 PWG.
printSettingsSetMediaType :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()

-- | Sets the value of PRINT_SETTINGS_N_COPIES.
printSettingsSetNCopies :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Int32 -> m ()

-- | Sets the value of PRINT_SETTINGS_NUMBER_UP.
printSettingsSetNumberUp :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Int32 -> m ()

-- | Sets the value of PRINT_SETTINGS_NUMBER_UP_LAYOUT.
printSettingsSetNumberUpLayout :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> NumberUpLayout -> m ()

-- | Sets the value of PRINT_SETTINGS_ORIENTATION.
printSettingsSetOrientation :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PageOrientation -> m ()

-- | Sets the value of PRINT_SETTINGS_OUTPUT_BIN.
printSettingsSetOutputBin :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()

-- | Sets the value of PRINT_SETTINGS_PAGE_RANGES.
printSettingsSetPageRanges :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> [PageRange] -> m ()

-- | Sets the value of PRINT_SETTINGS_PAGE_SET.
printSettingsSetPageSet :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PageSet -> m ()

-- | Sets the value of PRINT_SETTINGS_PAPER_HEIGHT.
printSettingsSetPaperHeight :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Double -> Unit -> m ()

-- | Sets the value of PRINT_SETTINGS_PAPER_FORMAT,
--   PRINT_SETTINGS_PAPER_WIDTH and
--   PRINT_SETTINGS_PAPER_HEIGHT.
printSettingsSetPaperSize :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PaperSize -> m ()

-- | Sets the value of PRINT_SETTINGS_PAPER_WIDTH.
printSettingsSetPaperWidth :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Double -> Unit -> m ()

-- | Sets the value of PRINT_SETTINGS_PRINT_PAGES.
printSettingsSetPrintPages :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PrintPages -> m ()

-- | Convenience function to set PRINT_SETTINGS_PRINTER to
--   printer.
printSettingsSetPrinter :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()

-- | Sets the value of PRINT_SETTINGS_PRINTER_LPI.
printSettingsSetPrinterLpi :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Double -> m ()

-- | Sets the value of PRINT_SETTINGS_QUALITY.
printSettingsSetQuality :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> PrintQuality -> m ()

-- | Sets the values of PRINT_SETTINGS_RESOLUTION,
--   PRINT_SETTINGS_RESOLUTION_X and
--   PRINT_SETTINGS_RESOLUTION_Y.
printSettingsSetResolution :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Int32 -> m ()

-- | Sets the values of PRINT_SETTINGS_RESOLUTION,
--   PRINT_SETTINGS_RESOLUTION_X and
--   PRINT_SETTINGS_RESOLUTION_Y.
printSettingsSetResolutionXy :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Int32 -> Int32 -> m ()

-- | Sets the value of PRINT_SETTINGS_REVERSE.
printSettingsSetReverse :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Bool -> m ()

-- | Sets the value of PRINT_SETTINGS_SCALE.
printSettingsSetScale :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Double -> m ()

-- | Sets the value of PRINT_SETTINGS_USE_COLOR.
printSettingsSetUseColor :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Bool -> m ()

-- | This function saves the print settings from settings
--   to fileName.
--   
--   If the file could not be written then error is set to either a
--   GFileError or GKeyFileError.
printSettingsToFile :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> [Char] -> m ()

-- | Serialize print settings to an a{sv} variant.
printSettingsToGvariant :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> m GVariant

-- | This function adds the print settings from settings to
--   keyFile.
printSettingsToKeyFile :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> KeyFile -> Maybe Text -> m ()

-- | Removes any value associated with key.
--   
--   This has the same effect as setting the value to Nothing.
printSettingsUnset :: (HasCallStack, MonadIO m, IsPrintSettings a) => a -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PrintSettings.PrintSettings
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PrintSettings.PrintSettings
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PrintSettings.PrintSettings
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PrintSettings.PrintSettings)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PrintSettings.PrintSettings o) => GI.Gtk.Objects.PrintSettings.IsPrintSettings o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PrintSettings.PrintSettings
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PrintSettings.PrintSettings

-- | High-level, portable printing API.
--   
--   It looks a bit different than other GTK dialogs such as the
--   GtkFileChooser, since some platforms don’t expose enough
--   infrastructure to implement a good print dialog. On such platforms,
--   GtkPrintOperation uses the native print dialog. On platforms
--   which do not provide a native print dialog, GTK uses its own, see
--   PrintUnixDialog.
--   
--   The typical way to use the high-level printing API is to create a
--   GtkPrintOperation object with printOperationNew when
--   the user selects to print. Then you set some properties on it, e.g.
--   the page size, any PrintSettings from previous print
--   operations, the number of pages, the current page, etc.
--   
--   Then you start the print operation by calling
--   printOperationRun. It will then show a dialog, let the user
--   select a printer and options. When the user finished the dialog,
--   various signals will be emitted on the GtkPrintOperation, the
--   main one being PrintOperation::drawPage, which you are supposed
--   to handle and render the page on the provided PrintContext
--   using Cairo.
--   
--   
The high-level printing API
--   
--   
c code
--   
--   
--   static GtkPrintSettings *settings = NULL;
--   
--   static void
--   do_print (void)
--   {
--     GtkPrintOperation *print;
--     GtkPrintOperationResult res;
--   
--     print = gtk_print_operation_new ();
--   
--     if (settings != NULL)
--       gtk_print_operation_set_print_settings (print, settings);
--   
--     g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL);
--     g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL);
--   
--     res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
--                                    GTK_WINDOW (main_window), NULL);
--   
--     if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
--       {
--         if (settings != NULL)
--           g_object_unref (settings);
--         settings = g_object_ref (gtk_print_operation_get_print_settings (print));
--       }
--   
--     g_object_unref (print);
--   }
--   
--   
--   By default GtkPrintOperation uses an external application to
--   do print preview. To implement a custom print preview, an application
--   must connect to the preview signal. The functions
--   printOperationPreviewRenderPage,
--   printOperationPreviewEndPreview and
--   printOperationPreviewIsSelected are useful when implementing a
--   print preview.
module GI.Gtk.Objects.PrintOperation

-- | Memory-managed wrapper type.
newtype PrintOperation
PrintOperation :: ManagedPtr PrintOperation -> PrintOperation

-- | Type class for types which can be safely cast to
--   PrintOperation, for instance with toPrintOperation.
class (GObject o, IsDescendantOf PrintOperation o) => IsPrintOperation o

-- | Cast to PrintOperation, for types for which this is known to be
--   safe. For general casts, use castTo.
toPrintOperation :: (MonadIO m, IsPrintOperation o) => o -> m PrintOperation

-- | Cancels a running print operation.
--   
--   This function may be called from a PrintOperation::beginPrint,
--   PrintOperation::paginate or PrintOperation::drawPage
--   signal handler to stop the currently running print operation.
printOperationCancel :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m ()

-- | Signal that drawing of particular page is complete.
--   
--   It is called after completion of page drawing (e.g. drawing in another
--   thread). If printOperationSetDeferDrawing was called before,
--   then this function has to be called by application. Otherwise it is
--   called by GTK itself.
printOperationDrawPageFinish :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m ()

-- | Returns the default page setup.
printOperationGetDefaultPageSetup :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m (Maybe PageSetup)

-- | Gets whether page setup selection combos are embedded
printOperationGetEmbedPageSetup :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m Bool

-- | Call this when the result of a print operation is
--   PrintOperationResultError.
--   
--   It can be called either after printOperationRun returns, or in
--   the PrintOperation::done signal handler.
--   
--   The returned GError will contain more details on what went
--   wrong.
printOperationGetError :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m ()

-- | Gets whether there is a selection.
printOperationGetHasSelection :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m Bool

-- | Returns the number of pages that will be printed.
--   
--   Note that this value is set during print preparation phase
--   (PrintStatusPreparing), so this function should never be called
--   before the data generation phase (PrintStatusGeneratingData).
--   You can connect to the PrintOperation::statusChanged signal and
--   call printOperationGetNPagesToPrint when print status is
--   PrintStatusGeneratingData.
--   
--   This is typically used to track the progress of print operation.
printOperationGetNPagesToPrint :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m Int32

-- | Returns the current print settings.
--   
--   Note that the return value is Nothing until either
--   printOperationSetPrintSettings or printOperationRun have
--   been called.
printOperationGetPrintSettings :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m (Maybe PrintSettings)

-- | Returns the status of the print operation.
--   
--   Also see printOperationGetStatusString.
printOperationGetStatus :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m PrintStatus

-- | Returns a string representation of the status of the print operation.
--   
--   The string is translated and suitable for displaying the print status
--   e.g. in a GtkStatusbar.
--   
--   Use printOperationGetStatus to obtain a status value that is
--   suitable for programmatic use.
printOperationGetStatusString :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m Text

-- | Gets whether the application supports print of selection
printOperationGetSupportSelection :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m Bool

-- | A convenience function to find out if the print operation is finished.
--   
--   a print operation is finished if its status is either
--   PrintStatusFinished or PrintStatusFinishedAborted.
--   
--   Note: when you enable print status tracking the print operation can be
--   in a non-finished state even after done has been called, as the
--   operation status then tracks the print job status on the printer.
printOperationIsFinished :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m Bool

-- | Creates a new GtkPrintOperation.
printOperationNew :: (HasCallStack, MonadIO m) => m PrintOperation

-- | Runs the print operation.
--   
--   Normally that this function does not return until the rendering of all
--   pages is complete. You can connect to the
--   PrintOperation::statusChanged signal on op to
--   obtain some information about the progress of the print operation.
--   
--   Furthermore, it may use a recursive mainloop to show the print dialog.
--   
--   If you set the [Gtk.PrintOperation:allow-async] property, the
--   operation will run asynchronously if this is supported on the
--   platform. The PrintOperation::done signal will be emitted with
--   the result of the operation when the it is done (i.e. when the dialog
--   is canceled, or when the print succeeds or fails).
--   
--   
c code
--   
--   
--   if (settings != NULL)
--     gtk_print_operation_set_print_settings (print, settings);
--   
--   if (page_setup != NULL)
--     gtk_print_operation_set_default_page_setup (print, page_setup);
--   
--   g_signal_connect (print, "begin-print",
--                     G_CALLBACK (begin_print), &data);
--   g_signal_connect (print, "draw-page",
--                     G_CALLBACK (draw_page), &data);
--   
--   res = gtk_print_operation_run (print,
--                                  GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
--                                  parent,
--                                  &error);
--   
--   if (res == GTK_PRINT_OPERATION_RESULT_ERROR)
--    {
--      error_dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
--     			                     GTK_DIALOG_DESTROY_WITH_PARENT,
--   					     GTK_MESSAGE_ERROR,
--   					     GTK_BUTTONS_CLOSE,
--   					     "Error printing file:\n%s",
--   					     error->message);
--      g_signal_connect (error_dialog, "response",
--                        G_CALLBACK (gtk_window_destroy), NULL);
--      gtk_window_present (GTK_WINDOW (error_dialog));
--      g_error_free (error);
--    }
--   else if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
--    {
--      if (settings != NULL)
--   g_object_unref (settings);
--      settings = g_object_ref (gtk_print_operation_get_print_settings (print));
--    }
--   
--   
--   Note that printOperationRun can only be called once on a given
--   GtkPrintOperation.
printOperationRun :: (HasCallStack, MonadIO m, IsPrintOperation a, IsWindow b) => a -> PrintOperationAction -> Maybe b -> m PrintOperationResult

-- | Sets whether printOperationRun may return before the print
--   operation is completed.
--   
--   Note that some platforms may not allow asynchronous operation.
printOperationSetAllowAsync :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | Sets the current page.
--   
--   If this is called before printOperationRun, the user will be
--   able to select to print only the current page.
--   
--   Note that this only makes sense for pre-paginated documents.
printOperationSetCurrentPage :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Int32 -> m ()

-- | Sets the label for the tab holding custom widgets.
printOperationSetCustomTabLabel :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Maybe Text -> m ()

-- | Makes defaultPageSetup the default page setup for
--   op.
--   
--   This page setup will be used by printOperationRun, but it can
--   be overridden on a per-page basis by connecting to the
--   PrintOperation::requestPageSetup signal.
printOperationSetDefaultPageSetup :: (HasCallStack, MonadIO m, IsPrintOperation a, IsPageSetup b) => a -> Maybe b -> m ()

-- | Sets up the GtkPrintOperation to wait for calling of
--   [methodgtk.PrintOperation.draw_page_finish from
--   application.
--   
--   This can be used for drawing page in another thread.
--   
--   This function must be called in the callback of the
--   PrintOperation::drawPage signal.
printOperationSetDeferDrawing :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> m ()

-- | Embed page size combo box and orientation combo box into page setup
--   page.
--   
--   Selected page setup is stored as default page setup in
--   GtkPrintOperation.
printOperationSetEmbedPageSetup :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | Sets up the GtkPrintOperation to generate a file instead of
--   showing the print dialog.
--   
--   The intended use of this function is for implementing “Export to PDF”
--   actions. Currently, PDF is the only supported format.
--   
--   “Print to PDF” support is independent of this and is done by letting
--   the user pick the “Print to PDF” item from the list of printers in the
--   print dialog.
printOperationSetExportFilename :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> [Char] -> m ()

-- | Sets whether there is a selection to print.
--   
--   Application has to set number of pages to which the selection will
--   draw by printOperationSetNPages in a handler for the
--   PrintOperation::beginPrint signal.
printOperationSetHasSelection :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | Sets the name of the print job.
--   
--   The name is used to identify the job (e.g. in monitoring applications
--   like eggcups).
--   
--   If you don’t set a job name, GTK picks a default one by numbering
--   successive print jobs.
printOperationSetJobName :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Text -> m ()

-- | Sets the number of pages in the document.
--   
--   This must be set to a positive number before the rendering starts. It
--   may be set in a PrintOperation::beginPrint signal handler.
--   
--   Note that the page numbers passed to the
--   PrintOperation::requestPageSetup and
--   PrintOperation::drawPage signals are 0-based, i.e. if the user
--   chooses to print all pages, the last drawPage signal will be
--   for page nPages - 1.
printOperationSetNPages :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Int32 -> m ()

-- | Sets the print settings for op.
--   
--   This is typically used to re-establish print settings from a previous
--   print operation, see printOperationRun.
printOperationSetPrintSettings :: (HasCallStack, MonadIO m, IsPrintOperation a, IsPrintSettings b) => a -> Maybe b -> m ()

-- | If showProgress is True, the print operation
--   will show a progress dialog during the print operation.
printOperationSetShowProgress :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | Sets whether selection is supported by GtkPrintOperation.
printOperationSetSupportSelection :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | If track_status is True, the print operation will try to
--   continue report on the status of the print job in the printer queues
--   and printer.
--   
--   This can allow your application to show things like “out of paper”
--   issues, and when the print job actually reaches the printer.
--   
--   This function is often implemented using some form of polling, so it
--   should not be enabled unless needed.
printOperationSetTrackPrintStatus :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | Sets up the transformation for the cairo context obtained from
--   GtkPrintContext in such a way that distances are measured in
--   units of unit.
printOperationSetUnit :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Unit -> m ()

-- | If fullPage is True, the transformation for the
--   cairo context obtained from GtkPrintContext puts the origin
--   at the top left corner of the page.
--   
--   This may not be the top left corner of the sheet, depending on page
--   orientation and the number of pages per sheet). Otherwise, the origin
--   is at the top left corner of the imageable area (i.e. inside the
--   margins).
printOperationSetUseFullPage :: (HasCallStack, MonadIO m, IsPrintOperation a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “allow-async” property. This is rarely needed directly, but
--   it is used by new.
constructPrintOperationAllowAsync :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “allow-async” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #allowAsync
--   
getPrintOperationAllowAsync :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “allow-async” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #allowAsync := value ]
--   
setPrintOperationAllowAsync :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “current-page” property. This is rarely needed directly, but
--   it is used by new.
constructPrintOperationCurrentPage :: (IsPrintOperation o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “current-page” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #currentPage
--   
getPrintOperationCurrentPage :: (MonadIO m, IsPrintOperation o) => o -> m Int32

-- | Set the value of the “current-page” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #currentPage := value ]
--   
setPrintOperationCurrentPage :: (MonadIO m, IsPrintOperation o) => o -> Int32 -> m ()

-- | Set the value of the “custom-tab-label” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #customTabLabel
--   
clearPrintOperationCustomTabLabel :: (MonadIO m, IsPrintOperation o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “custom-tab-label” property. This is rarely needed directly,
--   but it is used by new.
constructPrintOperationCustomTabLabel :: (IsPrintOperation o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “custom-tab-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #customTabLabel
--   
getPrintOperationCustomTabLabel :: (MonadIO m, IsPrintOperation o) => o -> m (Maybe Text)

-- | Set the value of the “custom-tab-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #customTabLabel := value ]
--   
setPrintOperationCustomTabLabel :: (MonadIO m, IsPrintOperation o) => o -> Text -> m ()

-- | Set the value of the “default-page-setup” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #defaultPageSetup
--   
clearPrintOperationDefaultPageSetup :: (MonadIO m, IsPrintOperation o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-page-setup” property. This is rarely needed
--   directly, but it is used by new.
constructPrintOperationDefaultPageSetup :: (IsPrintOperation o, MonadIO m, IsPageSetup a) => a -> m (GValueConstruct o)

-- | Get the value of the “default-page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #defaultPageSetup
--   
getPrintOperationDefaultPageSetup :: (MonadIO m, IsPrintOperation o) => o -> m (Maybe PageSetup)

-- | Set the value of the “default-page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #defaultPageSetup := value ]
--   
setPrintOperationDefaultPageSetup :: (MonadIO m, IsPrintOperation o, IsPageSetup a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “embed-page-setup” property. This is rarely needed directly,
--   but it is used by new.
constructPrintOperationEmbedPageSetup :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “embed-page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #embedPageSetup
--   
getPrintOperationEmbedPageSetup :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “embed-page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #embedPageSetup := value ]
--   
setPrintOperationEmbedPageSetup :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Set the value of the “export-filename” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #exportFilename
--   
clearPrintOperationExportFilename :: (MonadIO m, IsPrintOperation o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “export-filename” property. This is rarely needed directly,
--   but it is used by new.
constructPrintOperationExportFilename :: (IsPrintOperation o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “export-filename” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #exportFilename
--   
getPrintOperationExportFilename :: (MonadIO m, IsPrintOperation o) => o -> m (Maybe Text)

-- | Set the value of the “export-filename” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #exportFilename := value ]
--   
setPrintOperationExportFilename :: (MonadIO m, IsPrintOperation o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-selection” property. This is rarely needed directly, but
--   it is used by new.
constructPrintOperationHasSelection :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #hasSelection
--   
getPrintOperationHasSelection :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “has-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #hasSelection := value ]
--   
setPrintOperationHasSelection :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “job-name” property. This is rarely needed directly, but it
--   is used by new.
constructPrintOperationJobName :: (IsPrintOperation o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “job-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #jobName
--   
getPrintOperationJobName :: (MonadIO m, IsPrintOperation o) => o -> m (Maybe Text)

-- | Set the value of the “job-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #jobName := value ]
--   
setPrintOperationJobName :: (MonadIO m, IsPrintOperation o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “n-pages” property. This is rarely needed directly, but it is
--   used by new.
constructPrintOperationNPages :: (IsPrintOperation o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “n-pages” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #nPages
--   
getPrintOperationNPages :: (MonadIO m, IsPrintOperation o) => o -> m Int32

-- | Set the value of the “n-pages” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #nPages := value ]
--   
setPrintOperationNPages :: (MonadIO m, IsPrintOperation o) => o -> Int32 -> m ()

-- | Get the value of the “n-pages-to-print” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #nPagesToPrint
--   
getPrintOperationNPagesToPrint :: (MonadIO m, IsPrintOperation o) => o -> m Int32

-- | Set the value of the “print-settings” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #printSettings
--   
clearPrintOperationPrintSettings :: (MonadIO m, IsPrintOperation o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “print-settings” property. This is rarely needed directly,
--   but it is used by new.
constructPrintOperationPrintSettings :: (IsPrintOperation o, MonadIO m, IsPrintSettings a) => a -> m (GValueConstruct o)

-- | Get the value of the “print-settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #printSettings
--   
getPrintOperationPrintSettings :: (MonadIO m, IsPrintOperation o) => o -> m (Maybe PrintSettings)

-- | Set the value of the “print-settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #printSettings := value ]
--   
setPrintOperationPrintSettings :: (MonadIO m, IsPrintOperation o, IsPrintSettings a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-progress” property. This is rarely needed directly, but
--   it is used by new.
constructPrintOperationShowProgress :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-progress” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #showProgress
--   
getPrintOperationShowProgress :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “show-progress” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #showProgress := value ]
--   
setPrintOperationShowProgress :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Get the value of the “status” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #status
--   
getPrintOperationStatus :: (MonadIO m, IsPrintOperation o) => o -> m PrintStatus

-- | Get the value of the “status-string” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #statusString
--   
getPrintOperationStatusString :: (MonadIO m, IsPrintOperation o) => o -> m Text

-- | Construct a GValueConstruct with valid value for the
--   “support-selection” property. This is rarely needed directly,
--   but it is used by new.
constructPrintOperationSupportSelection :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “support-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #supportSelection
--   
getPrintOperationSupportSelection :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “support-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #supportSelection := value ]
--   
setPrintOperationSupportSelection :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “track-print-status” property. This is rarely needed
--   directly, but it is used by new.
constructPrintOperationTrackPrintStatus :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “track-print-status” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #trackPrintStatus
--   
getPrintOperationTrackPrintStatus :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “track-print-status” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #trackPrintStatus := value ]
--   
setPrintOperationTrackPrintStatus :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “unit” property. This is rarely needed directly, but it is
--   used by new.
constructPrintOperationUnit :: (IsPrintOperation o, MonadIO m) => Unit -> m (GValueConstruct o)

-- | Get the value of the “unit” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get printOperation #unit
--   
getPrintOperationUnit :: (MonadIO m, IsPrintOperation o) => o -> m Unit

-- | Set the value of the “unit” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set printOperation [ #unit := value ]
--   
setPrintOperationUnit :: (MonadIO m, IsPrintOperation o) => o -> Unit -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-full-page” property. This is rarely needed directly, but
--   it is used by new.
constructPrintOperationUseFullPage :: (IsPrintOperation o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-full-page” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printOperation #useFullPage
--   
getPrintOperationUseFullPage :: (MonadIO m, IsPrintOperation o) => o -> m Bool

-- | Set the value of the “use-full-page” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printOperation [ #useFullPage := value ]
--   
setPrintOperationUseFullPage :: (MonadIO m, IsPrintOperation o) => o -> Bool -> m ()

-- | Emitted after the user has finished changing print settings in the
--   dialog, before the actual rendering starts.
--   
--   A typical use for beginPrint is to use the parameters from the
--   PrintContext and paginate the document accordingly, and then
--   set the number of pages with printOperationSetNPages.
type PrintOperationBeginPrintCallback = PrintContext -> IO ()

-- | Connect a signal handler for the beginPrint signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperation #beginPrint callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationBeginPrint :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationBeginPrintCallback) -> m SignalHandlerId

-- | Connect a signal handler for the beginPrint signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on printOperation #beginPrint callback
--   
onPrintOperationBeginPrint :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationBeginPrintCallback) -> m SignalHandlerId

-- | Emitted when displaying the print dialog.
--   
--   If you return a widget in a handler for this signal it will be added
--   to a custom tab in the print dialog. You typically return a container
--   widget with multiple widgets in it.
--   
--   The print dialog owns the returned widget, and its lifetime is not
--   controlled by the application. However, the widget is guaranteed to
--   stay around until the PrintOperation::customWidgetApply signal
--   is emitted on the operation. Then you can read out any information you
--   need from the widgets.
type PrintOperationCreateCustomWidgetCallback = IO Maybe Object

-- | Connect a signal handler for the createCustomWidget signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printOperation #createCustomWidget callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationCreateCustomWidget :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationCreateCustomWidgetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the createCustomWidget signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printOperation #createCustomWidget callback
--   
onPrintOperationCreateCustomWidget :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationCreateCustomWidgetCallback) -> m SignalHandlerId

-- | Emitted right before beginPrint if you added a custom widget in
--   the createCustomWidget handler.
--   
--   When you get this signal you should read the information from the
--   custom widgets, as the widgets are not guaranteed to be around at a
--   later time.
type PrintOperationCustomWidgetApplyCallback = Widget -> IO ()

-- | Connect a signal handler for the customWidgetApply signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printOperation #customWidgetApply callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationCustomWidgetApply :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationCustomWidgetApplyCallback) -> m SignalHandlerId

-- | Connect a signal handler for the customWidgetApply signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printOperation #customWidgetApply callback
--   
onPrintOperationCustomWidgetApply :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationCustomWidgetApplyCallback) -> m SignalHandlerId

-- | Emitted when the print operation run has finished doing everything
--   required for printing.
--   
--   result gives you information about what happened
--   during the run. If result is
--   PrintOperationResultError then you can call
--   printOperationGetError for more information.
--   
--   If you enabled print status tracking then
--   printOperationIsFinished may still return False after
--   the done signal was emitted.
type PrintOperationDoneCallback = PrintOperationResult -> IO ()

-- | Connect a signal handler for the done signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperation #done callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationDone :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationDoneCallback) -> m SignalHandlerId

-- | Connect a signal handler for the done signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on printOperation #done callback
--   
onPrintOperationDone :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationDoneCallback) -> m SignalHandlerId

-- | Emitted for every page that is printed.
--   
--   The signal handler must render the pageNr's page onto
--   the cairo context obtained from context using
--   printContextGetCairoContext.
--   
--   
c code
--   
--   
--   static void
--   draw_page (GtkPrintOperation *operation,
--              GtkPrintContext   *context,
--              int                page_nr,
--              gpointer           user_data)
--   {
--     cairo_t *cr;
--     PangoLayout *layout;
--     double width, text_height;
--     int layout_height;
--     PangoFontDescription *desc;
--     
--     cr = gtk_print_context_get_cairo_context (context);
--     width = gtk_print_context_get_width (context);
--     
--     cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT);
--     
--     cairo_set_source_rgb (cr, 0.8, 0.8, 0.8);
--     cairo_fill (cr);
--     
--     layout = gtk_print_context_create_pango_layout (context);
--     
--     desc = pango_font_description_from_string ("sans 14");
--     pango_layout_set_font_description (layout, desc);
--     pango_font_description_free (desc);
--     
--     pango_layout_set_text (layout, "some text", -1);
--     pango_layout_set_width (layout, width * PANGO_SCALE);
--     pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER);
--        		      
--     pango_layout_get_size (layout, NULL, &layout_height);
--     text_height = (double)layout_height / PANGO_SCALE;
--     
--     cairo_move_to (cr, width / 2,  (HEADER_HEIGHT - text_height) / 2);
--     pango_cairo_show_layout (cr, layout);
--     
--     g_object_unref (layout);
--   }
--   
--   
--   Use printOperationSetUseFullPage and
--   printOperationSetUnit before starting the print operation to
--   set up the transformation of the cairo context according to your
--   needs.
type PrintOperationDrawPageCallback = PrintContext -> Int32 -> IO ()

-- | Connect a signal handler for the drawPage signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperation #drawPage callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationDrawPage :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationDrawPageCallback) -> m SignalHandlerId

-- | Connect a signal handler for the drawPage signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on printOperation #drawPage callback
--   
onPrintOperationDrawPage :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationDrawPageCallback) -> m SignalHandlerId

-- | Emitted after all pages have been rendered.
--   
--   A handler for this signal can clean up any resources that have been
--   allocated in the PrintOperation::beginPrint handler.
type PrintOperationEndPrintCallback = PrintContext -> IO ()

-- | Connect a signal handler for the endPrint signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperation #endPrint callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationEndPrint :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationEndPrintCallback) -> m SignalHandlerId

-- | Connect a signal handler for the endPrint signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on printOperation #endPrint callback
--   
onPrintOperationEndPrint :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationEndPrintCallback) -> m SignalHandlerId

-- | Emitted after the beginPrint signal, but before the actual
--   rendering starts.
--   
--   It keeps getting emitted until a connected signal handler returns
--   True.
--   
--   The paginate signal is intended to be used for paginating a
--   document in small chunks, to avoid blocking the user interface for a
--   long time. The signal handler should update the number of pages using
--   printOperationSetNPages, and return True if the document
--   has been completely paginated.
--   
--   If you don't need to do pagination in chunks, you can simply do it all
--   in the beginPrint handler, and set the number of pages from
--   there.
type PrintOperationPaginateCallback = PrintContext -> IO Bool

-- | Connect a signal handler for the paginate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperation #paginate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationPaginate :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationPaginateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the paginate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on printOperation #paginate callback
--   
onPrintOperationPaginate :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationPaginateCallback) -> m SignalHandlerId

-- | Gets emitted when a preview is requested from the native dialog.
--   
--   The default handler for this signal uses an external viewer
--   application to preview.
--   
--   To implement a custom print preview, an application must return
--   True from its handler for this signal. In order to use the
--   provided context for the preview implementation, it
--   must be given a suitable cairo context with
--   printContextSetCairoContext.
--   
--   The custom preview implementation can use
--   printOperationPreviewIsSelected and
--   printOperationPreviewRenderPage to find pages which are
--   selected for print and render them. The preview must be finished by
--   calling printOperationPreviewEndPreview (typically in response
--   to the user clicking a close button).
type PrintOperationPreviewCallback = PrintOperationPreview -> PrintContext -> Maybe Window -> IO Bool

-- | Connect a signal handler for the preview signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after printOperation #preview callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationPreview :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationPreviewCallback) -> m SignalHandlerId

-- | Connect a signal handler for the preview signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on printOperation #preview callback
--   
onPrintOperationPreview :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationPreviewCallback) -> m SignalHandlerId

-- | Emitted once for every page that is printed.
--   
--   This gives the application a chance to modify the page setup. Any
--   changes done to setup will be in force only for
--   printing this page.
type PrintOperationRequestPageSetupCallback = PrintContext -> Int32 -> PageSetup -> IO ()

-- | Connect a signal handler for the requestPageSetup signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printOperation #requestPageSetup callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationRequestPageSetup :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationRequestPageSetupCallback) -> m SignalHandlerId

-- | Connect a signal handler for the requestPageSetup signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printOperation #requestPageSetup callback
--   
onPrintOperationRequestPageSetup :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationRequestPageSetupCallback) -> m SignalHandlerId

-- | Emitted at between the various phases of the print operation.
--   
--   See PrintStatus for the phases that are being discriminated.
--   Use printOperationGetStatus to find out the current status.
type PrintOperationStatusChangedCallback = IO ()

-- | Connect a signal handler for the statusChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printOperation #statusChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationStatusChanged :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationStatusChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the statusChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printOperation #statusChanged callback
--   
onPrintOperationStatusChanged :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationStatusChangedCallback) -> m SignalHandlerId

-- | Emitted after change of selected printer.
--   
--   The actual page setup and print settings are passed to the custom
--   widget, which can actualize itself according to this change.
type PrintOperationUpdateCustomWidgetCallback = Widget -> PageSetup -> PrintSettings -> IO ()

-- | Connect a signal handler for the updateCustomWidget signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printOperation #updateCustomWidget callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintOperationUpdateCustomWidget :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationUpdateCustomWidgetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the updateCustomWidget signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printOperation #updateCustomWidget callback
--   
onPrintOperationUpdateCustomWidget :: (IsPrintOperation a, MonadIO m) => a -> ((?self :: a) => PrintOperationUpdateCustomWidgetCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.PrintOperation.PrintOperation
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PrintOperation.PrintOperation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PrintOperation.PrintOperation
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PrintOperation.PrintOperation)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PrintOperation.PrintOperation o) => GI.Gtk.Objects.PrintOperation.IsPrintOperation o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PrintOperation.PrintOperation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PrintOperation.PrintOperation

-- | Represents a job that is sent to a printer.
--   
--   You only need to deal directly with print jobs if you use the
--   non-portable PrintUnixDialog API.
--   
--   Use printJobGetSurface to obtain the cairo surface onto which
--   the pages must be drawn. Use printJobSend to send the finished
--   job to the printer. If you don’t use cairo GtkPrintJob also
--   supports printing of manually generated PostScript, via
--   printJobSetSourceFile.
module GI.Gtk.Objects.PrintJob

-- | Memory-managed wrapper type.
newtype PrintJob
PrintJob :: ManagedPtr PrintJob -> PrintJob

-- | Type class for types which can be safely cast to PrintJob, for
--   instance with toPrintJob.
class (GObject o, IsDescendantOf PrintJob o) => IsPrintJob o

-- | Cast to PrintJob, for types for which this is known to be safe.
--   For general casts, use castTo.
toPrintJob :: (MonadIO m, IsPrintJob o) => o -> m PrintJob

-- | Gets whether this job is printed collated.
printJobGetCollate :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Bool

-- | Gets the n-up setting for this job.
printJobGetNUp :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Word32

-- | Gets the n-up layout setting for this job.
printJobGetNUpLayout :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m NumberUpLayout

-- | Gets the number of copies of this job.
printJobGetNumCopies :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Int32

-- | Gets the page ranges for this job.
printJobGetPageRanges :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m [PageRange]

-- | Gets the GtkPageSet setting for this job.
printJobGetPageSet :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m PageSet

-- | Gets the GtkPrintPages setting for this job.
printJobGetPages :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m PrintPages

-- | Gets the GtkPrinter of the print job.
printJobGetPrinter :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Printer

-- | Gets whether this job is printed reversed.
printJobGetReverse :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Bool

-- | Gets whether the job is printed rotated.
printJobGetRotate :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Bool

-- | Gets the scale for this job.
printJobGetScale :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Double

-- | Gets the GtkPrintSettings of the print job.
printJobGetSettings :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m PrintSettings

-- | Gets the status of the print job.
printJobGetStatus :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m PrintStatus

-- | Gets a cairo surface onto which the pages of the print job should be
--   rendered.
printJobGetSurface :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Surface

-- | Gets the job title.
printJobGetTitle :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Text

-- | Returns whether jobs will be tracked after printing.
--   
--   For details, see printJobSetTrackPrintStatus.
printJobGetTrackPrintStatus :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> m Bool

-- | Creates a new GtkPrintJob.
printJobNew :: (HasCallStack, MonadIO m, IsPrinter a, IsPrintSettings b, IsPageSetup c) => Text -> a -> b -> c -> m PrintJob

-- | Sends the print job off to the printer.
printJobSend :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> PrintJobCompleteFunc -> m ()

-- | Sets whether this job is printed collated.
printJobSetCollate :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Bool -> m ()

-- | Sets the n-up setting for this job.
printJobSetNUp :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Word32 -> m ()

-- | Sets the n-up layout setting for this job.
printJobSetNUpLayout :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> NumberUpLayout -> m ()

-- | Sets the number of copies for this job.
printJobSetNumCopies :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Int32 -> m ()

-- | Sets the page ranges for this job.
printJobSetPageRanges :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> [PageRange] -> m ()

-- | Sets the GtkPageSet setting for this job.
printJobSetPageSet :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> PageSet -> m ()

-- | Sets the GtkPrintPages setting for this job.
printJobSetPages :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> PrintPages -> m ()

-- | Sets whether this job is printed reversed.
printJobSetReverse :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Bool -> m ()

-- | Sets whether this job is printed rotated.
printJobSetRotate :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Bool -> m ()

-- | Sets the scale for this job.
--   
--   
--   
- 0 means unscaled.
--   
printJobSetScale :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Double -> m ()

-- | Make the GtkPrintJob send an existing document to the
--   printing system.
--   
--   The file can be in any format understood by the platforms printing
--   system (typically PostScript, but on many platforms PDF may work too).
--   See printerAcceptsPdf and printerAcceptsPs.
--   
--   This is similar to printJobSetSourceFile, but takes expects an
--   open file descriptor for the file, instead of a filename.
printJobSetSourceFd :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Int32 -> m ()

-- | Make the GtkPrintJob send an existing document to the
--   printing system.
--   
--   The file can be in any format understood by the platforms printing
--   system (typically PostScript, but on many platforms PDF may work too).
--   See printerAcceptsPdf and printerAcceptsPs.
printJobSetSourceFile :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> [Char] -> m ()

-- | If track_status is True, the print job will try to continue
--   report on the status of the print job in the printer queues and
--   printer.
--   
--   This can allow your application to show things like “out of paper”
--   issues, and when the print job actually reaches the printer.
--   
--   This function is often implemented using some form of polling, so it
--   should not be enabled unless needed.
printJobSetTrackPrintStatus :: (HasCallStack, MonadIO m, IsPrintJob a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page-setup” property. This is rarely needed directly, but it
--   is used by new.
constructPrintJobPageSetup :: (IsPrintJob o, MonadIO m, IsPageSetup a) => a -> m (GValueConstruct o)

-- | Get the value of the “page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printJob #pageSetup
--   
getPrintJobPageSetup :: (MonadIO m, IsPrintJob o) => o -> m (Maybe PageSetup)

-- | Construct a GValueConstruct with valid value for the
--   “printer” property. This is rarely needed directly, but it is
--   used by new.
constructPrintJobPrinter :: (IsPrintJob o, MonadIO m, IsPrinter a) => a -> m (GValueConstruct o)

-- | Get the value of the “printer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printJob #printer
--   
getPrintJobPrinter :: (MonadIO m, IsPrintJob o) => o -> m Printer

-- | Construct a GValueConstruct with valid value for the
--   “settings” property. This is rarely needed directly, but it
--   is used by new.
constructPrintJobSettings :: (IsPrintJob o, MonadIO m, IsPrintSettings a) => a -> m (GValueConstruct o)

-- | Get the value of the “settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printJob #settings
--   
getPrintJobSettings :: (MonadIO m, IsPrintJob o) => o -> m PrintSettings

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructPrintJobTitle :: (IsPrintJob o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printJob #title
--   
getPrintJobTitle :: (MonadIO m, IsPrintJob o) => o -> m Text

-- | Construct a GValueConstruct with valid value for the
--   “track-print-status” property. This is rarely needed
--   directly, but it is used by new.
constructPrintJobTrackPrintStatus :: (IsPrintJob o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “track-print-status” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printJob #trackPrintStatus
--   
getPrintJobTrackPrintStatus :: (MonadIO m, IsPrintJob o) => o -> m Bool

-- | Set the value of the “track-print-status” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printJob [ #trackPrintStatus := value ]
--   
setPrintJobTrackPrintStatus :: (MonadIO m, IsPrintJob o) => o -> Bool -> m ()

-- | Emitted when the status of a job changes.
--   
--   The signal handler can use printJobGetStatus to obtain the new
--   status.
type PrintJobStatusChangedCallback = IO ()

-- | Connect a signal handler for the statusChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after printJob #statusChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPrintJobStatusChanged :: (IsPrintJob a, MonadIO m) => a -> ((?self :: a) => PrintJobStatusChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the statusChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on printJob #statusChanged callback
--   
onPrintJobStatusChanged :: (IsPrintJob a, MonadIO m) => a -> ((?self :: a) => PrintJobStatusChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.PrintJob.PrintJob
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PrintJob.PrintJob
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PrintJob.PrintJob
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PrintJob.PrintJob)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PrintJob.PrintJob o) => GI.Gtk.Objects.PrintJob.IsPrintJob o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PrintJob.PrintJob
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PrintJob.PrintJob

-- | Asynchronous API to present a print dialog to the user.
--   
--   GtkPrintDialog collects the arguments that are needed to
--   present the dialog, such as a title for the dialog and whether it
--   should be modal.
--   
--   The dialog is shown with the printDialogSetup function.
--   
--   The actual printing can be done with printDialogPrint or
--   printDialogPrintFile. These APIs follows the GIO async pattern,
--   and the results can be obtained by calling the corresponding finish
--   methods.
--   
--   Since: 4.14
module GI.Gtk.Objects.PrintDialog

-- | Memory-managed wrapper type.
newtype PrintDialog
PrintDialog :: ManagedPtr PrintDialog -> PrintDialog

-- | Type class for types which can be safely cast to PrintDialog,
--   for instance with toPrintDialog.
class (GObject o, IsDescendantOf PrintDialog o) => IsPrintDialog o

-- | Cast to PrintDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toPrintDialog :: (MonadIO m, IsPrintDialog o) => o -> m PrintDialog

-- | Returns the label that will be shown on the accept button of the print
--   dialog.
--   
--   Since: 4.14
printDialogGetAcceptLabel :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> m Text

-- | Returns whether the print dialog blocks interaction with the parent
--   window while it is presented.
--   
--   Since: 4.14
printDialogGetModal :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> m Bool

-- | Returns the page setup.
--   
--   Since: 4.14
printDialogGetPageSetup :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> m (Maybe PageSetup)

-- | Returns the print settings for the print dialog.
--   
--   Since: 4.14
printDialogGetPrintSettings :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> m (Maybe PrintSettings)

-- | Returns the title that will be shown on the print dialog.
--   
--   Since: 4.14
printDialogGetTitle :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> m Text

-- | Creates a new GtkPrintDialog object.
--   
--   Since: 4.14
printDialogNew :: (HasCallStack, MonadIO m) => m PrintDialog

-- | This function prints content from a stream.
--   
--   If you pass NULL as setup, then this method
--   will present a print dialog. Otherwise, it will attempt to print
--   directly, without user interaction.
--   
--   The callback will be called when the printing is done.
--   
--   Since: 4.14
printDialogPrint :: (HasCallStack, MonadIO m, IsPrintDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe PrintSetup -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | This function prints a file.
--   
--   If you pass NULL as setup, then this method
--   will present a print dialog. Otherwise, it will attempt to print
--   directly, without user interaction.
--   
--   Since: 4.14
printDialogPrintFile :: (HasCallStack, MonadIO m, IsPrintDialog a, IsWindow b, IsFile c, IsCancellable d) => a -> Maybe b -> Maybe PrintSetup -> c -> Maybe d -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the printDialogPrintFile call and returns the results.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.14
printDialogPrintFileFinish :: (HasCallStack, MonadIO m, IsPrintDialog a, IsAsyncResult b) => a -> b -> m ()

-- | Finishes the printDialogPrint call and returns the results.
--   
--   If the call was successful, the content to be printed should be
--   written to the returned output stream. Otherwise, NULL is
--   returned.
--   
--   The overall results of the print operation will be returned in the
--   outputStreamClose call, so if you are interested in the
--   results, you need to explicitly close the output stream (it will be
--   closed automatically if you just unref it). Be aware that the close
--   call may not be instant as it operation will for the printer to finish
--   printing.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.14
printDialogPrintFinish :: (HasCallStack, MonadIO m, IsPrintDialog a, IsAsyncResult b) => a -> b -> m OutputStream

-- | Sets the label that will be shown on the accept button of the print
--   dialog shown for printDialogSetup.
--   
--   Since: 4.14
printDialogSetAcceptLabel :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> Text -> m ()

-- | Sets whether the print dialog blocks interaction with the parent
--   window while it is presented.
--   
--   Since: 4.14
printDialogSetModal :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> Bool -> m ()

-- | Set the page setup for the print dialog.
--   
--   Since: 4.14
printDialogSetPageSetup :: (HasCallStack, MonadIO m, IsPrintDialog a, IsPageSetup b) => a -> b -> m ()

-- | Sets the print settings for the print dialog.
--   
--   Since: 4.14
printDialogSetPrintSettings :: (HasCallStack, MonadIO m, IsPrintDialog a, IsPrintSettings b) => a -> b -> m ()

-- | Sets the title that will be shown on the print dialog.
--   
--   Since: 4.14
printDialogSetTitle :: (HasCallStack, MonadIO m, IsPrintDialog a) => a -> Text -> m ()

-- | This function presents a print dialog to let the user select a
--   printer, and set up print settings and page setup.
--   
--   The callback will be called when the dialog is
--   dismissed. The obtained PrintSetup can then be passed to
--   printDialogPrint or printDialogPrintFile.
--   
--   One possible use for this method is to have the user select a printer,
--   then show a page setup UI in the application (e.g. to arrange images
--   on a page), then call printDialogPrint on self
--   to do the printing without further user interaction.
--   
--   Since: 4.14
printDialogSetup :: (HasCallStack, MonadIO m, IsPrintDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the printDialogSetup call.
--   
--   If the call was successful, it returns a PrintSetup which
--   contains the print settings and page setup information that will be
--   used to print.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.14
printDialogSetupFinish :: (HasCallStack, MonadIO m, IsPrintDialog a, IsAsyncResult b) => a -> b -> m PrintSetup

-- | Construct a GValueConstruct with valid value for the
--   “accept-label” property. This is rarely needed directly, but
--   it is used by new.
constructPrintDialogAcceptLabel :: (IsPrintDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accept-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printDialog #acceptLabel
--   
getPrintDialogAcceptLabel :: (MonadIO m, IsPrintDialog o) => o -> m Text

-- | Set the value of the “accept-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printDialog [ #acceptLabel := value ]
--   
setPrintDialogAcceptLabel :: (MonadIO m, IsPrintDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructPrintDialogModal :: (IsPrintDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printDialog #modal
--   
getPrintDialogModal :: (MonadIO m, IsPrintDialog o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printDialog [ #modal := value ]
--   
setPrintDialogModal :: (MonadIO m, IsPrintDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page-setup” property. This is rarely needed directly, but it
--   is used by new.
constructPrintDialogPageSetup :: (IsPrintDialog o, MonadIO m, IsPageSetup a) => a -> m (GValueConstruct o)

-- | Get the value of the “page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printDialog #pageSetup
--   
getPrintDialogPageSetup :: (MonadIO m, IsPrintDialog o) => o -> m (Maybe PageSetup)

-- | Set the value of the “page-setup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printDialog [ #pageSetup := value ]
--   
setPrintDialogPageSetup :: (MonadIO m, IsPrintDialog o, IsPageSetup a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “print-settings” property. This is rarely needed directly,
--   but it is used by new.
constructPrintDialogPrintSettings :: (IsPrintDialog o, MonadIO m, IsPrintSettings a) => a -> m (GValueConstruct o)

-- | Get the value of the “print-settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printDialog #printSettings
--   
getPrintDialogPrintSettings :: (MonadIO m, IsPrintDialog o) => o -> m (Maybe PrintSettings)

-- | Set the value of the “print-settings” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printDialog [ #printSettings := value ]
--   
setPrintDialogPrintSettings :: (MonadIO m, IsPrintDialog o, IsPrintSettings a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructPrintDialogTitle :: (IsPrintDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get printDialog #title
--   
getPrintDialogTitle :: (MonadIO m, IsPrintDialog o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set printDialog [ #title := value ]
--   
setPrintDialogTitle :: (MonadIO m, IsPrintDialog o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PrintDialog.PrintDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PrintDialog.PrintDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PrintDialog.PrintDialog
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PrintDialog.PrintDialog)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PrintDialog.PrintDialog o) => GI.Gtk.Objects.PrintDialog.IsPrintDialog o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PrintDialog.PrintDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PrintDialog.PrintDialog

-- | Presents a horizontal bar of items that pop up menus when clicked.
--   
--   <picture> <source srcset="menubar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPopoverMenuBar" src="menubar.png"> </picture>
--   
--   The only way to create instances of GtkPopoverMenuBar is from
--   a GMenuModel.
--   
--   
CSS nodes
--   
--   
--   menubar
--   ├── item[.active]
--   ┊   ╰── popover
--   ╰── item
--       ╰── popover
--   
--   
--   GtkPopoverMenuBar has a single CSS node with name menubar,
--   below which each item has its CSS node, and below that the
--   corresponding popover.
--   
--   The item whose popover is currently open gets the .active style class.
--   
--   
Accessibility
--   
--   GtkPopoverMenuBar uses the AccessibleRoleMenuBar role,
--   the menu items use the AccessibleRoleMenuItem role and the
--   menus use the AccessibleRoleMenu role.
module GI.Gtk.Objects.PopoverMenuBar

-- | Memory-managed wrapper type.
newtype PopoverMenuBar
PopoverMenuBar :: ManagedPtr PopoverMenuBar -> PopoverMenuBar

-- | Type class for types which can be safely cast to
--   PopoverMenuBar, for instance with toPopoverMenuBar.
class (GObject o, IsDescendantOf PopoverMenuBar o) => IsPopoverMenuBar o

-- | Cast to PopoverMenuBar, for types for which this is known to be
--   safe. For general casts, use castTo.
toPopoverMenuBar :: (MonadIO m, IsPopoverMenuBar o) => o -> m PopoverMenuBar

-- | Adds a custom widget to a generated menubar.
--   
--   For this to work, the menu model of bar must have an
--   item with a custom attribute that matches id.
popoverMenuBarAddChild :: (HasCallStack, MonadIO m, IsPopoverMenuBar a, IsWidget b) => a -> b -> Text -> m Bool

-- | Returns the model from which the contents of bar are
--   taken.
popoverMenuBarGetMenuModel :: (HasCallStack, MonadIO m, IsPopoverMenuBar a) => a -> m (Maybe MenuModel)

-- | Creates a GtkPopoverMenuBar from a GMenuModel.
popoverMenuBarNewFromModel :: (HasCallStack, MonadIO m, IsMenuModel a) => Maybe a -> m PopoverMenuBar

-- | Removes a widget that has previously been added with
--   popoverMenuBarAddChild.
popoverMenuBarRemoveChild :: (HasCallStack, MonadIO m, IsPopoverMenuBar a, IsWidget b) => a -> b -> m Bool

-- | Sets a menu model from which bar should take its
--   contents.
popoverMenuBarSetMenuModel :: (HasCallStack, MonadIO m, IsPopoverMenuBar a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Set the value of the “menu-model” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #menuModel
--   
clearPopoverMenuBarMenuModel :: (MonadIO m, IsPopoverMenuBar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-model” property. This is rarely needed directly, but it
--   is used by new.
constructPopoverMenuBarMenuModel :: (IsPopoverMenuBar o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverMenuBar #menuModel
--   
getPopoverMenuBarMenuModel :: (MonadIO m, IsPopoverMenuBar o) => o -> m (Maybe MenuModel)

-- | Set the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverMenuBar [ #menuModel := value ]
--   
setPopoverMenuBarMenuModel :: (MonadIO m, IsPopoverMenuBar o, IsMenuModel a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar o) => GI.Gtk.Objects.PopoverMenuBar.IsPopoverMenuBar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PopoverMenuBar.PopoverMenuBar

-- | A subclass of GtkPopover that implements menu behavior.
--   
--   <picture> <source srcset="menu-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPopoverMenu" src="menu.png"> </picture>
--   
--   GtkPopoverMenu treats its children like menus and allows
--   switching between them. It can open submenus as traditional, nested
--   submenus, or in a more touch-friendly sliding fashion. The property
--   PopoverMenu:flags controls this appearance.
--   
--   GtkPopoverMenu is meant to be used primarily with menu
--   models, using popoverMenuNewFromModel. If you need to put other
--   widgets such as a GtkSpinButton or a GtkSwitch into
--   a popover, you can use popoverMenuAddChild.
--   
--   For more dialog-like behavior, use a plain GtkPopover.
--   
--   
Menu models
--   
--   The XML format understood by GtkBuilder for
--   GMenuModel consists of a toplevel <menu>
--   element, which contains one or more <item> elements.
--   Each <item> element contains <attribute>
--   and <link> elements with a mandatory name attribute.
--   <link> elements have the same content model as
--   <menu>. Instead of <link name="submenu">
--   or <link name="section">, you can use
--   <submenu> or <section> elements.
--   
--   
xml code
--   
--   
--   <menu id='app-menu'>
--     <section>
--       <item>
--         <attribute name='label' translatable='yes'>_New Window</attribute>
--         <attribute name='action'>app.new</attribute>
--       </item>
--       <item>
--         <attribute name='label' translatable='yes'>_About Sunny</attribute>
--         <attribute name='action'>app.about</attribute>
--       </item>
--       <item>
--         <attribute name='label' translatable='yes'>_Quit</attribute>
--         <attribute name='action'>app.quit</attribute>
--       </item>
--     </section>
--   </menu>
--   
--   
--   Attribute values can be translated using gettext, like other
--   GtkBuilder content. <attribute> elements can
--   be marked for translation with a translatable="yes"
--   attribute. It is also possible to specify message context and
--   translator comments, using the context and comments attributes. To
--   make use of this, the GtkBuilder must have been given the
--   gettext domain to use.
--   
--   The following attributes are used when constructing menu items:
--   
--   
--   
- "label": a user-visible string to display
--   
- "use-markup": whether the text in the menu item includes Pango
--   markup
--   
- "action": the prefixed name of the action to trigger
--   
- "target": the parameter to use when activating the action
--   
- "icon" and "verb-icon": names of icons that may be displayed
--   
- "submenu-action": name of an action that may be used to track
--   whether a submenu is open
--   
- "hidden-when": a string used to determine when the item will be
--   hidden. Possible values include "action-disabled", "action-missing",
--   "macos-menubar". This is mainly useful for exported menus, see
--   applicationSetMenubar.
--   
- "custom": a string used to match against the ID of a custom child
--   added with popoverMenuAddChild, popoverMenuBarAddChild,
--   or in the ui file with <child type="ID">.
--   
--   
--   The following attributes are used when constructing sections:
--   
--   
--   
- "label": a user-visible string to use as section heading
--   
- "display-hint": a string used to determine special formatting for
--   the section. Possible values include "horizontal-buttons",
--   "circular-buttons" and "inline-buttons". They all indicate that
--   section should be displayed as a horizontal row of buttons.
--   
- "text-direction": a string used to determine the
--   GtkTextDirection to use when "display-hint" is set to
--   "horizontal-buttons". Possible values include "rtl", "ltr", and
--   "none".
--   
--   
--   The following attributes are used when constructing submenus:
--   
--   
--   
- "label": a user-visible string to display
--   
- "icon": icon name to display
--   
- "gtk-macos-special": (macOS only, ignored by others) Add special
--   meaning to a menu in the macOS menu bar. See Using GTK on Apple
--   macOS.
--   
--   
--   Menu items will also show accelerators, which are usually associated
--   with actions via applicationSetAccelsForAction,
--   [methodwidgetClass.add_binding_action] or
--   shortcutControllerAddShortcut.
--   
--   
Shortcuts and Gestures
--   
--   GtkPopoverMenu supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Space</kbd> activates the default widget.
--   
--   
--   
CSS Nodes
--   
--   GtkPopoverMenu is just a subclass of GtkPopover that
--   adds custom content to it, therefore it has the same CSS nodes. It is
--   one of the cases that add a .menu style class to the main
--   popover node.
--   
--   Menu items have nodes with name button and class
--   .model. If a section display-hint is set, the section gets a
--   node box with class horizontal plus a class with the
--   same text as the display hint. Note that said box may not be the
--   direct ancestor of the item buttons. Thus, for example, to
--   style items in an inline-buttons section, select
--   .inline-buttons button.model. Other things that may be of
--   interest to style in menus include label nodes.
--   
--   
Accessibility
--   
--   GtkPopoverMenu uses the AccessibleRoleMenu role, and
--   its items use the AccessibleRoleMenuItem,
--   AccessibleRoleCheckbox or AccessibleRoleMenuItemRadio
--   roles, depending on the action they are connected to.
module GI.Gtk.Objects.PopoverMenu

-- | Memory-managed wrapper type.
newtype PopoverMenu
PopoverMenu :: ManagedPtr PopoverMenu -> PopoverMenu

-- | Type class for types which can be safely cast to PopoverMenu,
--   for instance with toPopoverMenu.
class (GObject o, IsDescendantOf PopoverMenu o) => IsPopoverMenu o

-- | Cast to PopoverMenu, for types for which this is known to be
--   safe. For general casts, use castTo.
toPopoverMenu :: (MonadIO m, IsPopoverMenu o) => o -> m PopoverMenu

-- | Adds a custom widget to a generated menu.
--   
--   For this to work, the menu model of popover must have
--   an item with a custom attribute that matches
--   id.
popoverMenuAddChild :: (HasCallStack, MonadIO m, IsPopoverMenu a, IsWidget b) => a -> b -> Text -> m Bool

-- | Returns the flags that popover uses to create/display
--   a menu from its model.
--   
--   Since: 4.14
popoverMenuGetFlags :: (HasCallStack, MonadIO m, IsPopoverMenu a) => a -> m [PopoverMenuFlags]

-- | Returns the menu model used to populate the popover.
popoverMenuGetMenuModel :: (HasCallStack, MonadIO m, IsPopoverMenu a) => a -> m (Maybe MenuModel)

-- | Creates a GtkPopoverMenu and populates it according to
--   model.
--   
--   The created buttons are connected to actions found in the
--   GtkApplicationWindow to which the popover belongs - typically
--   by means of being attached to a widget that is contained within the
--   GtkApplicationWindows widget hierarchy.
--   
--   Actions can also be added using widgetInsertActionGroup on the
--   menus attach widget or on any of its parent widgets.
--   
--   This function creates menus with sliding submenus. See
--   popoverMenuNewFromModelFull for a way to control this.
popoverMenuNewFromModel :: (HasCallStack, MonadIO m, IsMenuModel a) => Maybe a -> m PopoverMenu

-- | Creates a GtkPopoverMenu and populates it according to
--   model.
--   
--   The created buttons are connected to actions found in the action
--   groups that are accessible from the parent widget. This includes the
--   GtkApplicationWindow to which the popover belongs. Actions
--   can also be added using widgetInsertActionGroup on the parent
--   widget or on any of its parent widgets.
popoverMenuNewFromModelFull :: (HasCallStack, MonadIO m, IsMenuModel a) => a -> [PopoverMenuFlags] -> m PopoverMenu

-- | Removes a widget that has previously been added with
--   popoverMenuAddChild
popoverMenuRemoveChild :: (HasCallStack, MonadIO m, IsPopoverMenu a, IsWidget b) => a -> b -> m Bool

-- | Sets the flags that popover uses to create/display a
--   menu from its model.
--   
--   If a model is set and the flags change, contents are rebuilt, so if
--   setting properties individually, set flags before model to avoid a
--   redundant rebuild.
--   
--   Since: 4.14
popoverMenuSetFlags :: (HasCallStack, MonadIO m, IsPopoverMenu a) => a -> [PopoverMenuFlags] -> m ()

-- | Sets a new menu model on popover.
--   
--   The existing contents of popover are removed, and the
--   popover is populated with new contents according to
--   model.
popoverMenuSetMenuModel :: (HasCallStack, MonadIO m, IsPopoverMenu a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “flags” property. This is rarely needed directly, but it is
--   used by new.
constructPopoverMenuFlags :: (IsPopoverMenu o, MonadIO m) => [PopoverMenuFlags] -> m (GValueConstruct o)

-- | Get the value of the “flags” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverMenu #flags
--   
getPopoverMenuFlags :: (MonadIO m, IsPopoverMenu o) => o -> m [PopoverMenuFlags]

-- | Set the value of the “flags” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverMenu [ #flags := value ]
--   
setPopoverMenuFlags :: (MonadIO m, IsPopoverMenu o) => o -> [PopoverMenuFlags] -> m ()

-- | Set the value of the “menu-model” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #menuModel
--   
clearPopoverMenuMenuModel :: (MonadIO m, IsPopoverMenu o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-model” property. This is rarely needed directly, but it
--   is used by new.
constructPopoverMenuMenuModel :: (IsPopoverMenu o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverMenu #menuModel
--   
getPopoverMenuMenuModel :: (MonadIO m, IsPopoverMenu o) => o -> m (Maybe MenuModel)

-- | Set the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverMenu [ #menuModel := value ]
--   
setPopoverMenuMenuModel :: (MonadIO m, IsPopoverMenu o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “visible-submenu” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #visibleSubmenu
--   
clearPopoverMenuVisibleSubmenu :: (MonadIO m, IsPopoverMenu o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible-submenu” property. This is rarely needed directly,
--   but it is used by new.
constructPopoverMenuVisibleSubmenu :: (IsPopoverMenu o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “visible-submenu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverMenu #visibleSubmenu
--   
getPopoverMenuVisibleSubmenu :: (MonadIO m, IsPopoverMenu o) => o -> m (Maybe Text)

-- | Set the value of the “visible-submenu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverMenu [ #visibleSubmenu := value ]
--   
setPopoverMenuVisibleSubmenu :: (MonadIO m, IsPopoverMenu o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PopoverMenu.PopoverMenu
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PopoverMenu.PopoverMenu
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PopoverMenu.PopoverMenu
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PopoverMenu.PopoverMenu)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PopoverMenu.PopoverMenu o) => GI.Gtk.Objects.PopoverMenu.IsPopoverMenu o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PopoverMenu.PopoverMenu
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PopoverMenu.PopoverMenu

-- | A single child container with a popover.
--   
--   You should use GtkPopoverBin whenever you need to present a
--   Popover to the user.
--   
--   
Actions
--   
--   GtkPopoverBin defines the menu.popup action, which
--   can be activated to present the popover to the user.
--   
--   
CSS nodes
--   
--   GtkPopoverBin has a single CSS node with the name
--   popoverbin.
--   
--   Since: 4.22
module GI.Gtk.Objects.PopoverBin

-- | Memory-managed wrapper type.
newtype PopoverBin
PopoverBin :: ManagedPtr PopoverBin -> PopoverBin

-- | Type class for types which can be safely cast to PopoverBin,
--   for instance with toPopoverBin.
class (GObject o, IsDescendantOf PopoverBin o) => IsPopoverBin o

-- | Cast to PopoverBin, for types for which this is known to be
--   safe. For general casts, use castTo.
toPopoverBin :: (MonadIO m, IsPopoverBin o) => o -> m PopoverBin

-- | Retrieves the child widget of the popover bin.
--   
--   Since: 4.22
popoverBinGetChild :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> m (Maybe Widget)

-- | No description available in the introspection data.
popoverBinGetHandleInput :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> m Bool

-- | Retrieves the menu model set using popoverBinSetMenuModel.
--   
--   Since: 4.22
popoverBinGetMenuModel :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> m (Maybe MenuModel)

-- | Retrieves the GtkPopover set using
--   popoverBinSetPopover.
--   
--   Since: 4.22
popoverBinGetPopover :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> m (Maybe Popover)

-- | Creates a new popover bin widget.
--   
--   Since: 4.22
popoverBinNew :: (HasCallStack, MonadIO m) => m PopoverBin

-- | Hides the popover from the user.
--   
--   See: popoverBinPopup
--   
--   Since: 4.22
popoverBinPopdown :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> m ()

-- | Presents the popover to the user.
--   
--   Use popoverBinSetPopover or popoverBinSetMenuModel to
--   define the popover.
--   
--   See: popoverBinPopdown
--   
--   Since: 4.22
popoverBinPopup :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> m ()

-- | Sets the child of the popover bin.
--   
--   Since: 4.22
popoverBinSetChild :: (HasCallStack, MonadIO m, IsPopoverBin a, IsWidget b) => a -> Maybe b -> m ()

-- | Enables or disables input handling.
--   
--   If enabled, the popover bin will pop up the popover on right-click or
--   long press, as expected for a context menu.
--   
--   Since: 4.22
popoverBinSetHandleInput :: (HasCallStack, MonadIO m, IsPopoverBin a) => a -> Bool -> m ()

-- | Sets the menu model used to create the popover that will be presented
--   when calling popoverBinPopup.
--   
--   If model is NULL, the popover will be unset.
--   
--   A Popover will be created from the menu model with
--   popoverMenuNewFromModel. Actions will be connected as
--   documented for this function.
--   
--   If PopoverBin:popover is already set, it will be dissociated
--   from the popover bin, and the property is set to NULL.
--   
--   See: popoverBinSetPopover
--   
--   Since: 4.22
popoverBinSetMenuModel :: (HasCallStack, MonadIO m, IsPopoverBin a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets the GtkPopover that will be presented when calling
--   popoverBinPopup.
--   
--   If popover is NULL, the popover will be
--   unset.
--   
--   If PopoverBin:menuModel is set before calling this function,
--   then the menu model property will be unset.
--   
--   See: popoverBinSetMenuModel
--   
--   Since: 4.22
popoverBinSetPopover :: (HasCallStack, MonadIO m, IsPopoverBin a, IsPopover b) => a -> Maybe b -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearPopoverBinChild :: (MonadIO m, IsPopoverBin o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructPopoverBinChild :: (IsPopoverBin o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverBin #child
--   
getPopoverBinChild :: (MonadIO m, IsPopoverBin o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverBin [ #child := value ]
--   
setPopoverBinChild :: (MonadIO m, IsPopoverBin o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “handle-input” property. This is rarely needed directly, but
--   it is used by new.
constructPopoverBinHandleInput :: (IsPopoverBin o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “handle-input” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverBin #handleInput
--   
getPopoverBinHandleInput :: (MonadIO m, IsPopoverBin o) => o -> m Bool

-- | Set the value of the “handle-input” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverBin [ #handleInput := value ]
--   
setPopoverBinHandleInput :: (MonadIO m, IsPopoverBin o) => o -> Bool -> m ()

-- | Set the value of the “menu-model” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #menuModel
--   
clearPopoverBinMenuModel :: (MonadIO m, IsPopoverBin o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-model” property. This is rarely needed directly, but it
--   is used by new.
constructPopoverBinMenuModel :: (IsPopoverBin o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverBin #menuModel
--   
getPopoverBinMenuModel :: (MonadIO m, IsPopoverBin o) => o -> m (Maybe MenuModel)

-- | Set the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverBin [ #menuModel := value ]
--   
setPopoverBinMenuModel :: (MonadIO m, IsPopoverBin o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “popover” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #popover
--   
clearPopoverBinPopover :: (MonadIO m, IsPopoverBin o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “popover” property. This is rarely needed directly, but it is
--   used by new.
constructPopoverBinPopover :: (IsPopoverBin o, MonadIO m, IsPopover a) => a -> m (GValueConstruct o)

-- | Get the value of the “popover” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popoverBin #popover
--   
getPopoverBinPopover :: (MonadIO m, IsPopoverBin o) => o -> m (Maybe Popover)

-- | Set the value of the “popover” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popoverBin [ #popover := value ]
--   
setPopoverBinPopover :: (MonadIO m, IsPopoverBin o, IsPopover a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PopoverBin.PopoverBin
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PopoverBin.PopoverBin
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PopoverBin.PopoverBin
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PopoverBin.PopoverBin)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PopoverBin.PopoverBin o) => GI.Gtk.Objects.PopoverBin.IsPopoverBin o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PopoverBin.PopoverBin
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PopoverBin.PopoverBin

-- | Presents a bubble-like popup.
--   
--   <picture> <source srcset="popover-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPopover" src="popover.png"> </picture>
--   
--   It is primarily meant to provide context-dependent information or
--   options. Popovers are attached to a parent widget. The parent widget
--   must support popover children, as MenuButton and
--   PopoverMenuBar do. If you want to make a custom widget that has
--   an attached popover, you need to call popoverPresent in your
--   Widget.size_allocate() vfunc, in order to
--   update the positioning of the popover.
--   
--   The position of a popover relative to the widget it is attached to can
--   also be changed with popoverSetPosition. By default, it points
--   to the whole widget area, but it can be made to point to a specific
--   area using popoverSetPointingTo.
--   
--   By default, GtkPopover performs a grab, in order to ensure
--   input events get redirected to it while it is shown, and also so the
--   popover is dismissed in the expected situations (clicks outside the
--   popover, or the Escape key being pressed). If no such modal behavior
--   is desired on a popover, popoverSetAutohide may be called on it
--   to tweak its behavior.
--   
--   
GtkPopover as menu replacement
--   
--   GtkPopover is often used to replace menus. The best way to do
--   this is to use the PopoverMenu subclass which supports being
--   populated from a GMenuModel with
--   popoverMenuNewFromModel.
--   
--   
xml code
--   
--   
--   <section>
--     <attribute name="display-hint">horizontal-buttons</attribute>
--     <item>
--       <attribute name="label">Cut</attribute>
--       <attribute name="action">app.cut</attribute>
--       <attribute name="verb-icon">edit-cut-symbolic</attribute>
--     </item>
--     <item>
--       <attribute name="label">Copy</attribute>
--       <attribute name="action">app.copy</attribute>
--       <attribute name="verb-icon">edit-copy-symbolic</attribute>
--     </item>
--     <item>
--       <attribute name="label">Paste</attribute>
--       <attribute name="action">app.paste</attribute>
--       <attribute name="verb-icon">edit-paste-symbolic</attribute>
--     </item>
--   </section>
--   
--   
--   
Shortcuts and Gestures
--   
--   GtkPopover supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Escape</kbd> closes the popover.
--   
- <kbd>Alt</kbd> makes the mnemonics visible.
--   
--   
--   The following signals have default keybindings:
--   
--   
--   
- Popover::activateDefault
--   
--   
--   
CSS nodes
--   
--   
--   popover.background[.menu]
--   ├── arrow
--   ╰── contents
--       ╰── <child>
--   
--   
--   GtkPopover has a main node with name popover, an
--   arrow with name arrow, and another node for the content named
--   contents. The popover node always gets the
--   .background style class. It also gets the .menu
--   style class if the popover is menu-like, e.g. is a PopoverMenu.
--   
--   Particular uses of GtkPopover, such as touch selection popups
--   or magnifiers in GtkEntry or GtkTextView get style
--   classes like .touch-selection or .magnifier to
--   differentiate from plain popovers.
--   
--   When styling a popover directly, the popover node should
--   usually not have any background. The visible part of the popover can
--   have a shadow. To specify it in CSS, set the box-shadow of the
--   contents node.
--   
--   Note that, in order to accomplish appropriate arrow visuals,
--   GtkPopover uses custom drawing for the arrow node.
--   This makes it possible for the arrow to change its shape dynamically,
--   but it also limits the possibilities of styling it using CSS. In
--   particular, the arrow gets drawn over the content
--   node's border and shadow, so they look like one shape, which means
--   that the border width of the content node and the
--   arrow node should be the same. The arrow also does not
--   support any border shape other than solid, no border-radius, only one
--   border width (border-bottom-width is used) and no box-shadow.
module GI.Gtk.Objects.Popover

-- | Memory-managed wrapper type.
newtype Popover
Popover :: ManagedPtr Popover -> Popover

-- | Type class for types which can be safely cast to Popover, for
--   instance with toPopover.
class (GObject o, IsDescendantOf Popover o) => IsPopover o

-- | Cast to Popover, for types for which this is known to be safe.
--   For general casts, use castTo.
toPopover :: (MonadIO m, IsPopover o) => o -> m Popover

-- | Returns whether the popover is modal.
--   
--   See popoverSetAutohide for the implications of this.
popoverGetAutohide :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool

-- | Returns whether the popover will close after a modal child is closed.
popoverGetCascadePopdown :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool

-- | Gets the child widget of popover.
popoverGetChild :: (HasCallStack, MonadIO m, IsPopover a) => a -> m (Maybe Widget)

-- | Gets whether this popover is showing an arrow pointing at the widget
--   that it is relative to.
popoverGetHasArrow :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool

-- | Gets whether mnemonics are visible.
popoverGetMnemonicsVisible :: (HasCallStack, MonadIO m, IsPopover a) => a -> m Bool

-- | Gets the offset previous set with popoverSetOffset.
popoverGetOffset :: (HasCallStack, MonadIO m, IsPopover a) => a -> m (Int32, Int32)

-- | Gets the rectangle that the popover points to.
--   
--   If a rectangle to point to has been set, this function will return
--   True and fill in rect with such rectangle,
--   otherwise it will return False and fill in rect
--   with the parent widget coordinates.
popoverGetPointingTo :: (HasCallStack, MonadIO m, IsPopover a) => a -> m (Bool, Rectangle)

-- | Returns the preferred position of popover.
popoverGetPosition :: (HasCallStack, MonadIO m, IsPopover a) => a -> m PositionType

-- | Creates a new GtkPopover.
popoverNew :: (HasCallStack, MonadIO m) => m Popover

-- | Pops popover down.
--   
--   This may have the side-effect of closing a parent popover as well. See
--   Popover:cascadePopdown.
popoverPopdown :: (HasCallStack, MonadIO m, IsPopover a) => a -> m ()

-- | Pops popover up.
popoverPopup :: (HasCallStack, MonadIO m, IsPopover a) => a -> m ()

-- | Allocate a size for the GtkPopover.
--   
--   This function needs to be called in size-allocate by widgets who have
--   a GtkPopover as child. When using a layout manager, this is
--   happening automatically.
--   
--   To make a popover appear on screen, use popoverPopup.
popoverPresent :: (HasCallStack, MonadIO m, IsPopover a) => a -> m ()

-- | Sets whether popover is modal.
--   
--   A modal popover will grab the keyboard focus on it when being
--   displayed. Focus will wrap around within the popover. Clicking outside
--   the popover area or pressing Esc will dismiss the popover.
--   
--   Called this function on an already showing popup with a new autohide
--   value different from the current one, will cause the popup to be
--   hidden.
popoverSetAutohide :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()

-- | If cascadePopdown is True, the popover will be
--   closed when a child modal popover is closed.
--   
--   If False, popover will stay visible.
popoverSetCascadePopdown :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()

-- | Sets the child widget of popover.
popoverSetChild :: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the default widget of a GtkPopover.
--   
--   The default widget is the widget that’s activated when the user
--   presses Enter in a dialog (for example). This function sets or unsets
--   the default widget for a GtkPopover.
popoverSetDefaultWidget :: (HasCallStack, MonadIO m, IsPopover a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether this popover should draw an arrow pointing at the widget
--   it is relative to.
popoverSetHasArrow :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()

-- | Sets whether mnemonics should be visible.
popoverSetMnemonicsVisible :: (HasCallStack, MonadIO m, IsPopover a) => a -> Bool -> m ()

-- | Sets the offset to use when calculating the position of the popover.
--   
--   These values are used when preparing the PopupLayout for
--   positioning the popover.
popoverSetOffset :: (HasCallStack, MonadIO m, IsPopover a) => a -> Int32 -> Int32 -> m ()

-- | Sets the rectangle that popover points to.
--   
--   This is in the coordinate space of the popover parent.
popoverSetPointingTo :: (HasCallStack, MonadIO m, IsPopover a) => a -> Maybe Rectangle -> m ()

-- | Sets the preferred position for popover to appear.
--   
--   If the popover is currently visible, it will be
--   immediately updated.
--   
--   This preference will be respected where possible, although on lack of
--   space (eg. if close to the window edges), the GtkPopover may
--   choose to appear on the opposite side.
popoverSetPosition :: (HasCallStack, MonadIO m, IsPopover a) => a -> PositionType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “autohide” property. This is rarely needed directly, but it
--   is used by new.
constructPopoverAutohide :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “autohide” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #autohide
--   
getPopoverAutohide :: (MonadIO m, IsPopover o) => o -> m Bool

-- | Set the value of the “autohide” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #autohide := value ]
--   
setPopoverAutohide :: (MonadIO m, IsPopover o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cascade-popdown” property. This is rarely needed directly,
--   but it is used by new.
constructPopoverCascadePopdown :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “cascade-popdown” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #cascadePopdown
--   
getPopoverCascadePopdown :: (MonadIO m, IsPopover o) => o -> m Bool

-- | Set the value of the “cascade-popdown” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #cascadePopdown := value ]
--   
setPopoverCascadePopdown :: (MonadIO m, IsPopover o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearPopoverChild :: (MonadIO m, IsPopover o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructPopoverChild :: (IsPopover o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #child
--   
getPopoverChild :: (MonadIO m, IsPopover o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #child := value ]
--   
setPopoverChild :: (MonadIO m, IsPopover o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “default-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #defaultWidget
--   
clearPopoverDefaultWidget :: (MonadIO m, IsPopover o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-widget” property. This is rarely needed directly,
--   but it is used by new.
constructPopoverDefaultWidget :: (IsPopover o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “default-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #defaultWidget
--   
getPopoverDefaultWidget :: (MonadIO m, IsPopover o) => o -> m (Maybe Widget)

-- | Set the value of the “default-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #defaultWidget := value ]
--   
setPopoverDefaultWidget :: (MonadIO m, IsPopover o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-arrow” property. This is rarely needed directly, but it
--   is used by new.
constructPopoverHasArrow :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-arrow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #hasArrow
--   
getPopoverHasArrow :: (MonadIO m, IsPopover o) => o -> m Bool

-- | Set the value of the “has-arrow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #hasArrow := value ]
--   
setPopoverHasArrow :: (MonadIO m, IsPopover o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mnemonics-visible” property. This is rarely needed directly,
--   but it is used by new.
constructPopoverMnemonicsVisible :: (IsPopover o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “mnemonics-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #mnemonicsVisible
--   
getPopoverMnemonicsVisible :: (MonadIO m, IsPopover o) => o -> m Bool

-- | Set the value of the “mnemonics-visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #mnemonicsVisible := value ]
--   
setPopoverMnemonicsVisible :: (MonadIO m, IsPopover o) => o -> Bool -> m ()

-- | Set the value of the “pointing-to” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #pointingTo
--   
clearPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pointing-to” property. This is rarely needed directly, but
--   it is used by new.
constructPopoverPointingTo :: (IsPopover o, MonadIO m) => Rectangle -> m (GValueConstruct o)

-- | Get the value of the “pointing-to” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #pointingTo
--   
getPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> m (Maybe Rectangle)

-- | Set the value of the “pointing-to” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #pointingTo := value ]
--   
setPopoverPointingTo :: (MonadIO m, IsPopover o) => o -> Rectangle -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “position” property. This is rarely needed directly, but it
--   is used by new.
constructPopoverPosition :: (IsPopover o, MonadIO m) => PositionType -> m (GValueConstruct o)

-- | Get the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get popover #position
--   
getPopoverPosition :: (MonadIO m, IsPopover o) => o -> m PositionType

-- | Set the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set popover [ #position := value ]
--   
setPopoverPosition :: (MonadIO m, IsPopover o) => o -> PositionType -> m ()

-- | Emitted whend the user activates the default widget.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is <kbd>Enter</kbd>.
type PopoverActivateDefaultCallback = IO ()

-- | Connect a signal handler for the activateDefault signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after popover #activateDefault callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPopoverActivateDefault :: (IsPopover a, MonadIO m) => a -> ((?self :: a) => PopoverActivateDefaultCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateDefault signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on popover #activateDefault callback
--   
onPopoverActivateDefault :: (IsPopover a, MonadIO m) => a -> ((?self :: a) => PopoverActivateDefaultCallback) -> m SignalHandlerId

-- | Emitted when the popover is closed.
type PopoverClosedCallback = IO ()

-- | Connect a signal handler for the closed signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after popover #closed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPopoverClosed :: (IsPopover a, MonadIO m) => a -> ((?self :: a) => PopoverClosedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the closed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on popover #closed callback
--   
onPopoverClosed :: (IsPopover a, MonadIO m) => a -> ((?self :: a) => PopoverClosedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Popover.Popover
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Popover.Popover
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Popover.Popover
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Popover.Popover)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Popover.Popover o) => GI.Gtk.Objects.Popover.IsPopover o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Popover.Popover
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Popover.Popover

-- | Displays a GdkPaintable.
--   
--   <picture> <source srcset="picture-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPicture" src="picture.png"> </picture>
--   
--   Many convenience functions are provided to make pictures simple to
--   use. For example, if you want to load an image from a file, and then
--   display it, there’s a convenience function to do this:
--   
--   
c code
--   
--   
--   GtkWidget *widget = gtk_picture_new_for_filename ("myfile.png");
--   
--   
--   If the file isn’t loaded successfully, the picture will contain a
--   “broken image” icon similar to that used in many web browsers. If you
--   want to handle errors in loading the file yourself, for example by
--   displaying an error message, then load the image with and image
--   loading framework such as libglycin, then create the
--   GtkPicture with pictureNewForPaintable.
--   
--   Sometimes an application will want to avoid depending on external data
--   files, such as image files. See the documentation of
--   GResource for details. In this case,
--   pictureNewForResource and pictureSetResource should be
--   used.
--   
--   GtkPicture displays an image at its natural size. See
--   Image if you want to display a fixed-size image, such as an
--   icon.
--   
--   
Sizing the paintable
--   
--   You can influence how the paintable is displayed inside the
--   GtkPicture by changing Picture:contentFit. See
--   ContentFit for details. Picture:canShrink can be unset
--   to make sure that paintables are never made smaller than their ideal
--   size - but be careful if you do not know the size of the paintable in
--   use (like when displaying user-loaded images). This can easily cause
--   the picture to grow larger than the screen. And Widget:halign
--   and Widget:valign can be used to make sure the paintable
--   doesn't fill all available space but is instead displayed at its
--   original size.
--   
--   
CSS nodes
--   
--   GtkPicture has a single CSS node with the name
--   picture.
--   
--   
Accessibility
--   
--   GtkPicture uses the AccessibleRoleImg role.
module GI.Gtk.Objects.Picture

-- | Memory-managed wrapper type.
newtype Picture
Picture :: ManagedPtr Picture -> Picture

-- | Type class for types which can be safely cast to Picture, for
--   instance with toPicture.
class (GObject o, IsDescendantOf Picture o) => IsPicture o

-- | Cast to Picture, for types for which this is known to be safe.
--   For general casts, use castTo.
toPicture :: (MonadIO m, IsPicture o) => o -> m Picture

-- | Gets the alternative textual description of the picture.
--   
--   The returned string will be Nothing if the picture cannot be
--   described textually.
pictureGetAlternativeText :: (HasCallStack, MonadIO m, IsPicture a) => a -> m (Maybe Text)

-- | Returns whether the GtkPicture respects its contents size.
pictureGetCanShrink :: (HasCallStack, MonadIO m, IsPicture a) => a -> m Bool

-- | Returns the fit mode for the content of the GtkPicture.
--   
--   See ContentFit for details.
--   
--   Since: 4.8
pictureGetContentFit :: (HasCallStack, MonadIO m, IsPicture a) => a -> m ContentFit

-- | Gets the GFile currently displayed if self is
--   displaying a file.
--   
--   If self is not displaying a file, for example when
--   pictureSetPaintable was used, then Nothing is returned.
pictureGetFile :: (HasCallStack, MonadIO m, IsPicture a) => a -> m (Maybe File)

-- | Returns whether the contents are isolated.
--   
--   Since: 4.22
pictureGetIsolateContents :: (HasCallStack, MonadIO m, IsPicture a) => a -> m Bool

-- | Returns whether the GtkPicture preserves its contents aspect
--   ratio.

-- | Deprecated: (Since version 4.8)Use pictureGetContentFit
--   instead. This willnow return FALSE only if
--   Picture:contentFit isGTK_CONTENT_FIT_FILL. Returns
--   TRUE otherwise.
pictureGetKeepAspectRatio :: (HasCallStack, MonadIO m, IsPicture a) => a -> m Bool

-- | Gets the GdkPaintable being displayed by the
--   GtkPicture.
pictureGetPaintable :: (HasCallStack, MonadIO m, IsPicture a) => a -> m (Maybe Paintable)

-- | Creates a new empty GtkPicture widget.
pictureNew :: (HasCallStack, MonadIO m) => m Picture

-- | Creates a new GtkPicture displaying the given
--   file.
--   
--   If the file isn’t found or can’t be loaded, the resulting
--   GtkPicture is empty.
--   
--   If you need to detect failures to load the file, use an image loading
--   framework such as libglycin to load the file yourself, then create the
--   GtkPicture from the texture.
pictureNewForFile :: (HasCallStack, MonadIO m, IsFile a) => Maybe a -> m Picture

-- | Creates a new GtkPicture displaying the file
--   filename.
--   
--   This is a utility function that calls pictureNewForFile. See
--   that function for details.
pictureNewForFilename :: (HasCallStack, MonadIO m) => Maybe [Char] -> m Picture

-- | Creates a new GtkPicture displaying
--   paintable.
--   
--   The GtkPicture will track changes to the
--   paintable and update its size and contents in response
--   to it.
pictureNewForPaintable :: (HasCallStack, MonadIO m, IsPaintable a) => Maybe a -> m Picture

-- | Creates a new GtkPicture displaying pixbuf.
--   
--   This is a utility function that calls pictureNewForPaintable,
--   See that function for details.
--   
--   The pixbuf must not be modified after passing it to this function.

-- | Deprecated: (Since version 4.12)Use pictureNewForPaintable
--   andtextureNewForPixbuf instead
pictureNewForPixbuf :: (HasCallStack, MonadIO m, IsPixbuf a) => Maybe a -> m Picture

-- | Creates a new GtkPicture displaying the resource at
--   resourcePath.
--   
--   This is a utility function that calls pictureNewForFile. See
--   that function for details.
pictureNewForResource :: (HasCallStack, MonadIO m) => Maybe Text -> m Picture

-- | Sets an alternative textual description for the picture contents.
--   
--   It is equivalent to the "alt" attribute for images on websites.
--   
--   This text will be made available to accessibility tools.
--   
--   If the picture cannot be described textually, set this property to
--   Nothing.
pictureSetAlternativeText :: (HasCallStack, MonadIO m, IsPicture a) => a -> Maybe Text -> m ()

-- | If set to True, then self can be made smaller
--   than its contents.
--   
--   The contents will then be scaled down when rendering.
--   
--   If you want to still force a minimum size manually, consider using
--   widgetSetSizeRequest.
--   
--   Also of note is that a similar function for growing does not exist
--   because the grow behavior can be controlled via widgetSetHalign
--   and widgetSetValign.
pictureSetCanShrink :: (HasCallStack, MonadIO m, IsPicture a) => a -> Bool -> m ()

-- | Sets how the content should be resized to fit the GtkPicture.
--   
--   See ContentFit for details.
--   
--   Since: 4.8
pictureSetContentFit :: (HasCallStack, MonadIO m, IsPicture a) => a -> ContentFit -> m ()

-- | Makes self load and display file.
--   
--   See pictureNewForFile for details.
--   
--   ::: warning Note that this function should not be used with untrusted
--   data. Use a proper image loading framework such as libglycin, which
--   can load many image formats into a GdkTexture, and then use
--   imageSetFromPaintable.
pictureSetFile :: (HasCallStack, MonadIO m, IsPicture a, IsFile b) => a -> Maybe b -> m ()

-- | Makes self load and display the given
--   filename.
--   
--   This is a utility function that calls pictureSetFile.
--   
--   ::: warning Note that this function should not be used with untrusted
--   data. Use a proper image loading framework such as libglycin, which
--   can load many image formats into a GdkTexture, and then use
--   imageSetFromPaintable.
pictureSetFilename :: (HasCallStack, MonadIO m, IsPicture a) => a -> Maybe [Char] -> m ()

-- | If set to true, then the contents will be rendered individually.
--   
--   If set to false they will be able to erase or otherwise mix with the
--   background.
--   
--   GTK supports finer grained isolation, in rare cases where you need
--   this, you can use snapshotPushIsolation yourself to achieve
--   this.
--   
--   By default contents are isolated.
--   
--   Since: 4.22
pictureSetIsolateContents :: (HasCallStack, MonadIO m, IsPicture a) => a -> Bool -> m ()

-- | If set to True, the self will render its
--   contents according to their aspect ratio.
--   
--   That means that empty space may show up at the top/bottom or
--   left/right of self.
--   
--   If set to False or if the contents provide no aspect ratio, the
--   contents will be stretched over the picture's whole area.

-- | Deprecated: (Since version 4.8)Use pictureSetContentFit
--   instead. If stillused, this method will always set the
--   Picture:contentFitproperty to GTK_CONTENT_FIT_CONTAIN
--   if keepAspectRatio is true,otherwise it will set it to
--   GTK_CONTENT_FIT_FILL.
pictureSetKeepAspectRatio :: (HasCallStack, MonadIO m, IsPicture a) => a -> Bool -> m ()

-- | Makes self display the given
--   paintable.
--   
--   If paintable is NULL, nothing will be
--   displayed.
--   
--   See pictureNewForPaintable for details.
pictureSetPaintable :: (HasCallStack, MonadIO m, IsPicture a, IsPaintable b) => a -> Maybe b -> m ()

-- | Sets a GtkPicture to show a GdkPixbuf.
--   
--   See pictureNewForPixbuf for details.
--   
--   This is a utility function that calls pictureSetPaintable.

-- | Deprecated: (Since version 4.12)Use pictureSetPaintable
--   instead
pictureSetPixbuf :: (HasCallStack, MonadIO m, IsPicture a, IsPixbuf b) => a -> Maybe b -> m ()

-- | Makes self load and display the resource at the given
--   resourcePath.
--   
--   This is a utility function that calls pictureSetFile.
pictureSetResource :: (HasCallStack, MonadIO m, IsPicture a) => a -> Maybe Text -> m ()

-- | Set the value of the “alternative-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #alternativeText
--   
clearPictureAlternativeText :: (MonadIO m, IsPicture o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “alternative-text” property. This is rarely needed directly,
--   but it is used by new.
constructPictureAlternativeText :: (IsPicture o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “alternative-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get picture #alternativeText
--   
getPictureAlternativeText :: (MonadIO m, IsPicture o) => o -> m (Maybe Text)

-- | Set the value of the “alternative-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set picture [ #alternativeText := value ]
--   
setPictureAlternativeText :: (MonadIO m, IsPicture o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “can-shrink” property. This is rarely needed directly, but it
--   is used by new.
constructPictureCanShrink :: (IsPicture o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “can-shrink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get picture #canShrink
--   
getPictureCanShrink :: (MonadIO m, IsPicture o) => o -> m Bool

-- | Set the value of the “can-shrink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set picture [ #canShrink := value ]
--   
setPictureCanShrink :: (MonadIO m, IsPicture o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “content-fit” property. This is rarely needed directly, but
--   it is used by new.
constructPictureContentFit :: (IsPicture o, MonadIO m) => ContentFit -> m (GValueConstruct o)

-- | Get the value of the “content-fit” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get picture #contentFit
--   
getPictureContentFit :: (MonadIO m, IsPicture o) => o -> m ContentFit

-- | Set the value of the “content-fit” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set picture [ #contentFit := value ]
--   
setPictureContentFit :: (MonadIO m, IsPicture o) => o -> ContentFit -> m ()

-- | Set the value of the “file” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #file
--   
clearPictureFile :: (MonadIO m, IsPicture o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructPictureFile :: (IsPicture o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get picture #file
--   
getPictureFile :: (MonadIO m, IsPicture o) => o -> m (Maybe File)

-- | Set the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set picture [ #file := value ]
--   
setPictureFile :: (MonadIO m, IsPicture o, IsFile a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “isolate-contents” property. This is rarely needed directly,
--   but it is used by new.
constructPictureIsolateContents :: (IsPicture o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “isolate-contents” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get picture #isolateContents
--   
getPictureIsolateContents :: (MonadIO m, IsPicture o) => o -> m Bool

-- | Set the value of the “isolate-contents” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set picture [ #isolateContents := value ]
--   
setPictureIsolateContents :: (MonadIO m, IsPicture o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “keep-aspect-ratio” property. This is rarely needed directly,
--   but it is used by new.
constructPictureKeepAspectRatio :: (IsPicture o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “keep-aspect-ratio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get picture #keepAspectRatio
--   
getPictureKeepAspectRatio :: (MonadIO m, IsPicture o) => o -> m Bool

-- | Set the value of the “keep-aspect-ratio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set picture [ #keepAspectRatio := value ]
--   
setPictureKeepAspectRatio :: (MonadIO m, IsPicture o) => o -> Bool -> m ()

-- | Set the value of the “paintable” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #paintable
--   
clearPicturePaintable :: (MonadIO m, IsPicture o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “paintable” property. This is rarely needed directly, but it
--   is used by new.
constructPicturePaintable :: (IsPicture o, MonadIO m, IsPaintable a) => a -> m (GValueConstruct o)

-- | Get the value of the “paintable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get picture #paintable
--   
getPicturePaintable :: (MonadIO m, IsPicture o) => o -> m (Maybe Paintable)

-- | Set the value of the “paintable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set picture [ #paintable := value ]
--   
setPicturePaintable :: (MonadIO m, IsPicture o, IsPaintable a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Picture.Picture
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Picture.Picture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Picture.Picture
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Picture.Picture)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Picture.Picture o) => GI.Gtk.Objects.Picture.IsPicture o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Picture.Picture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Picture.Picture

-- | A single-line text entry widget for entering passwords and other
--   secrets.
--   
--   <picture> <source srcset="password-entry-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPasswordEntry" src="password-entry.png"> </picture>
--   
--   It does not show its contents in clear text, does not allow to copy it
--   to the clipboard, and it shows a warning when Caps Lock is engaged. If
--   the underlying platform allows it, GtkPasswordEntry will also
--   place the text in a non-pageable memory area, to avoid it being
--   written out to disk by the operating system.
--   
--   Optionally, it can offer a way to reveal the contents in clear text.
--   
--   GtkPasswordEntry provides only minimal API and should be used
--   with the Editable API.
--   
--   
CSS Nodes
--   
--   
--   entry.password
--   ╰── text
--       ├── image.caps-lock-indicator
--       ┊
--   
--   
--   GtkPasswordEntry has a single CSS node with name entry that
--   carries a .passwordstyle class. The text Css node below it has a child
--   with name image and style class .caps-lock-indicator for the Caps Lock
--   icon, and possibly other children.
--   
--   
Accessibility
--   
--   GtkPasswordEntry uses the AccessibleRoleTextBox role.
module GI.Gtk.Objects.PasswordEntry

-- | Memory-managed wrapper type.
newtype PasswordEntry
PasswordEntry :: ManagedPtr PasswordEntry -> PasswordEntry

-- | Type class for types which can be safely cast to PasswordEntry,
--   for instance with toPasswordEntry.
class (GObject o, IsDescendantOf PasswordEntry o) => IsPasswordEntry o

-- | Cast to PasswordEntry, for types for which this is known to be
--   safe. For general casts, use castTo.
toPasswordEntry :: (MonadIO m, IsPasswordEntry o) => o -> m PasswordEntry

-- | Gets the menu model set with passwordEntrySetExtraMenu.
passwordEntryGetExtraMenu :: (HasCallStack, MonadIO m, IsPasswordEntry a) => a -> m (Maybe MenuModel)

-- | Returns whether the entry is showing an icon to reveal the contents.
passwordEntryGetShowPeekIcon :: (HasCallStack, MonadIO m, IsPasswordEntry a) => a -> m Bool

-- | Creates a GtkPasswordEntry.
passwordEntryNew :: (HasCallStack, MonadIO m) => m PasswordEntry

-- | Sets a menu model to add when constructing the context menu for
--   entry.
passwordEntrySetExtraMenu :: (HasCallStack, MonadIO m, IsPasswordEntry a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets whether the entry should have a clickable icon to reveal the
--   contents.
--   
--   Setting this to False also hides the text again.
passwordEntrySetShowPeekIcon :: (HasCallStack, MonadIO m, IsPasswordEntry a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activates-default” property. This is rarely needed directly,
--   but it is used by new.
constructPasswordEntryActivatesDefault :: (IsPasswordEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get passwordEntry #activatesDefault
--   
getPasswordEntryActivatesDefault :: (MonadIO m, IsPasswordEntry o) => o -> m Bool

-- | Set the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set passwordEntry [ #activatesDefault := value ]
--   
setPasswordEntryActivatesDefault :: (MonadIO m, IsPasswordEntry o) => o -> Bool -> m ()

-- | Set the value of the “extra-menu” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #extraMenu
--   
clearPasswordEntryExtraMenu :: (MonadIO m, IsPasswordEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “extra-menu” property. This is rarely needed directly, but it
--   is used by new.
constructPasswordEntryExtraMenu :: (IsPasswordEntry o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get passwordEntry #extraMenu
--   
getPasswordEntryExtraMenu :: (MonadIO m, IsPasswordEntry o) => o -> m (Maybe MenuModel)

-- | Set the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set passwordEntry [ #extraMenu := value ]
--   
setPasswordEntryExtraMenu :: (MonadIO m, IsPasswordEntry o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “placeholder-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #placeholderText
--   
clearPasswordEntryPlaceholderText :: (MonadIO m, IsPasswordEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “placeholder-text” property. This is rarely needed directly,
--   but it is used by new.
constructPasswordEntryPlaceholderText :: (IsPasswordEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get passwordEntry #placeholderText
--   
getPasswordEntryPlaceholderText :: (MonadIO m, IsPasswordEntry o) => o -> m (Maybe Text)

-- | Set the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set passwordEntry [ #placeholderText := value ]
--   
setPasswordEntryPlaceholderText :: (MonadIO m, IsPasswordEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-peek-icon” property. This is rarely needed directly,
--   but it is used by new.
constructPasswordEntryShowPeekIcon :: (IsPasswordEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-peek-icon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get passwordEntry #showPeekIcon
--   
getPasswordEntryShowPeekIcon :: (MonadIO m, IsPasswordEntry o) => o -> m Bool

-- | Set the value of the “show-peek-icon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set passwordEntry [ #showPeekIcon := value ]
--   
setPasswordEntryShowPeekIcon :: (MonadIO m, IsPasswordEntry o) => o -> Bool -> m ()

-- | Emitted when the entry is activated.
--   
--   The keybindings for this signal are all forms of the Enter key.
type PasswordEntryActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after passwordEntry #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPasswordEntryActivate :: (IsPasswordEntry a, MonadIO m) => a -> ((?self :: a) => PasswordEntryActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on passwordEntry #activate callback
--   
onPasswordEntryActivate :: (IsPasswordEntry a, MonadIO m) => a -> ((?self :: a) => PasswordEntryActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.PasswordEntry.PasswordEntry
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PasswordEntry.PasswordEntry
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PasswordEntry.PasswordEntry
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PasswordEntry.PasswordEntry)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PasswordEntry.PasswordEntry o) => GI.Gtk.Objects.PasswordEntry.IsPasswordEntry o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PasswordEntry.PasswordEntry
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PasswordEntry.PasswordEntry

-- | Arranges its children in two panes, horizontally or vertically.
--   
--   <picture> <source srcset="panes-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPaned" src="panes.png"> </picture>
--   
--   The division between the two panes is adjustable by the user by
--   dragging a handle.
--   
--   Child widgets are added to the panes of the widget with
--   panedSetStartChild and panedSetEndChild. The division
--   between the two children is set by default from the size requests of
--   the children, but it can be adjusted by the user.
--   
--   A paned widget draws a separator between the two child widgets and a
--   small handle that the user can drag to adjust the division. It does
--   not draw any relief around the children or around the separator. (The
--   space in which the separator is called the gutter.) Often, it is
--   useful to put each child inside a Frame so that the gutter
--   appears as a ridge. No separator is drawn if one of the children is
--   missing.
--   
--   Each child has two options that can be set, "resize" and "shrink". If
--   "resize" is true then, when the GtkPaned is resized, that
--   child will expand or shrink along with the paned widget. If "shrink"
--   is true, then that child can be made smaller than its requisition by
--   the user. Setting "shrink" to false allows the application to set a
--   minimum size. If "resize" is false for both children, then this is
--   treated as if "resize" is true for both children.
--   
--   The application can set the position of the slider as if it were set
--   by the user, by calling panedSetPosition.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- Paned::acceptPosition
--   
- Paned::cancelPosition
--   
- Paned::cycleChildFocus
--   
- Paned::cycleHandleFocus
--   
- Paned::moveHandle
--   
- Paned::toggleHandleFocus
--   
--   
--   
CSS nodes
--   
--   
--   paned
--   ├── <child>
--   ├── separator[.wide]
--   ╰── <child>
--   
--   
--   GtkPaned has a main CSS node with name paned, and a subnode
--   for the separator with name separator. The subnode gets a .wide style
--   class when the paned is supposed to be wide.
--   
--   In horizontal orientation, the nodes are arranged based on the text
--   direction, so in left-to-right mode, :first-child will select the
--   leftmost child, while it will select the rightmost child in RTL
--   layouts.
--   
--   
Creating a paned widget with minimum sizes.
--   
--   
c code
--   
--   
--   GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
--   GtkWidget *frame1 = gtk_frame_new (NULL);
--   GtkWidget *frame2 = gtk_frame_new (NULL);
--   
--   gtk_widget_set_size_request (hpaned, 200, -1);
--   
--   gtk_paned_set_start_child (GTK_PANED (hpaned), frame1);
--   gtk_paned_set_resize_start_child (GTK_PANED (hpaned), TRUE);
--   gtk_paned_set_shrink_start_child (GTK_PANED (hpaned), FALSE);
--   gtk_widget_set_size_request (frame1, 50, -1);
--   
--   gtk_paned_set_end_child (GTK_PANED (hpaned), frame2);
--   gtk_paned_set_resize_end_child (GTK_PANED (hpaned), FALSE);
--   gtk_paned_set_shrink_end_child (GTK_PANED (hpaned), FALSE);
--   gtk_widget_set_size_request (frame2, 50, -1);
--   
module GI.Gtk.Objects.Paned

-- | Memory-managed wrapper type.
newtype Paned
Paned :: ManagedPtr Paned -> Paned

-- | Type class for types which can be safely cast to Paned, for
--   instance with toPaned.
class (GObject o, IsDescendantOf Paned o) => IsPaned o

-- | Cast to Paned, for types for which this is known to be safe.
--   For general casts, use castTo.
toPaned :: (MonadIO m, IsPaned o) => o -> m Paned

-- | Retrieves the end child of the given GtkPaned.
panedGetEndChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> m (Maybe Widget)

-- | Obtains the position of the divider between the two panes.
panedGetPosition :: (HasCallStack, MonadIO m, IsPaned a) => a -> m Int32

-- | Returns whether the Paned:endChild can be resized.
panedGetResizeEndChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> m Bool

-- | Returns whether the Paned:startChild can be resized.
panedGetResizeStartChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> m Bool

-- | Returns whether the Paned:endChild can shrink.
panedGetShrinkEndChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> m Bool

-- | Returns whether the Paned:startChild can shrink.
panedGetShrinkStartChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> m Bool

-- | Retrieves the start child of the given GtkPaned.
panedGetStartChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> m (Maybe Widget)

-- | Gets whether the separator should be wide.
panedGetWideHandle :: (HasCallStack, MonadIO m, IsPaned a) => a -> m Bool

-- | Creates a new GtkPaned widget.
panedNew :: (HasCallStack, MonadIO m) => Orientation -> m Paned

-- | Sets the end child of paned to child.
--   
--   If child is NULL, the existing child will be
--   removed.
panedSetEndChild :: (HasCallStack, MonadIO m, IsPaned a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the position of the divider between the two panes.
panedSetPosition :: (HasCallStack, MonadIO m, IsPaned a) => a -> Int32 -> m ()

-- | Sets whether the Paned:endChild can be resized.
panedSetResizeEndChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> Bool -> m ()

-- | Sets whether the Paned:startChild can be resized.
panedSetResizeStartChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> Bool -> m ()

-- | Sets whether the Paned:endChild can shrink.
panedSetShrinkEndChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> Bool -> m ()

-- | Sets whether the Paned:startChild can shrink.
panedSetShrinkStartChild :: (HasCallStack, MonadIO m, IsPaned a) => a -> Bool -> m ()

-- | Sets the start child of paned to
--   child.
--   
--   If child is NULL, the existing child will be
--   removed.
panedSetStartChild :: (HasCallStack, MonadIO m, IsPaned a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the separator should be wide.
panedSetWideHandle :: (HasCallStack, MonadIO m, IsPaned a) => a -> Bool -> m ()

-- | Set the value of the “end-child” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #endChild
--   
clearPanedEndChild :: (MonadIO m, IsPaned o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “end-child” property. This is rarely needed directly, but it
--   is used by new.
constructPanedEndChild :: (IsPaned o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “end-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #endChild
--   
getPanedEndChild :: (MonadIO m, IsPaned o) => o -> m (Maybe Widget)

-- | Set the value of the “end-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #endChild := value ]
--   
setPanedEndChild :: (MonadIO m, IsPaned o, IsWidget a) => o -> a -> m ()

-- | Get the value of the “max-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #maxPosition
--   
getPanedMaxPosition :: (MonadIO m, IsPaned o) => o -> m Int32

-- | Get the value of the “min-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #minPosition
--   
getPanedMinPosition :: (MonadIO m, IsPaned o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “position” property. This is rarely needed directly, but it
--   is used by new.
constructPanedPosition :: (IsPaned o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #position
--   
getPanedPosition :: (MonadIO m, IsPaned o) => o -> m Int32

-- | Set the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #position := value ]
--   
setPanedPosition :: (MonadIO m, IsPaned o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “position-set” property. This is rarely needed directly, but
--   it is used by new.
constructPanedPositionSet :: (IsPaned o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “position-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #positionSet
--   
getPanedPositionSet :: (MonadIO m, IsPaned o) => o -> m Bool

-- | Set the value of the “position-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #positionSet := value ]
--   
setPanedPositionSet :: (MonadIO m, IsPaned o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resize-end-child” property. This is rarely needed directly,
--   but it is used by new.
constructPanedResizeEndChild :: (IsPaned o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “resize-end-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #resizeEndChild
--   
getPanedResizeEndChild :: (MonadIO m, IsPaned o) => o -> m Bool

-- | Set the value of the “resize-end-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #resizeEndChild := value ]
--   
setPanedResizeEndChild :: (MonadIO m, IsPaned o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resize-start-child” property. This is rarely needed
--   directly, but it is used by new.
constructPanedResizeStartChild :: (IsPaned o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “resize-start-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #resizeStartChild
--   
getPanedResizeStartChild :: (MonadIO m, IsPaned o) => o -> m Bool

-- | Set the value of the “resize-start-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #resizeStartChild := value ]
--   
setPanedResizeStartChild :: (MonadIO m, IsPaned o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “shrink-end-child” property. This is rarely needed directly,
--   but it is used by new.
constructPanedShrinkEndChild :: (IsPaned o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “shrink-end-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #shrinkEndChild
--   
getPanedShrinkEndChild :: (MonadIO m, IsPaned o) => o -> m Bool

-- | Set the value of the “shrink-end-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #shrinkEndChild := value ]
--   
setPanedShrinkEndChild :: (MonadIO m, IsPaned o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “shrink-start-child” property. This is rarely needed
--   directly, but it is used by new.
constructPanedShrinkStartChild :: (IsPaned o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “shrink-start-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #shrinkStartChild
--   
getPanedShrinkStartChild :: (MonadIO m, IsPaned o) => o -> m Bool

-- | Set the value of the “shrink-start-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #shrinkStartChild := value ]
--   
setPanedShrinkStartChild :: (MonadIO m, IsPaned o) => o -> Bool -> m ()

-- | Set the value of the “start-child” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #startChild
--   
clearPanedStartChild :: (MonadIO m, IsPaned o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “start-child” property. This is rarely needed directly, but
--   it is used by new.
constructPanedStartChild :: (IsPaned o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “start-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #startChild
--   
getPanedStartChild :: (MonadIO m, IsPaned o) => o -> m (Maybe Widget)

-- | Set the value of the “start-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #startChild := value ]
--   
setPanedStartChild :: (MonadIO m, IsPaned o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wide-handle” property. This is rarely needed directly, but
--   it is used by new.
constructPanedWideHandle :: (IsPaned o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “wide-handle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get paned #wideHandle
--   
getPanedWideHandle :: (MonadIO m, IsPaned o) => o -> m Bool

-- | Set the value of the “wide-handle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set paned [ #wideHandle := value ]
--   
setPanedWideHandle :: (MonadIO m, IsPaned o) => o -> Bool -> m ()

-- | Emitted to accept the current position of the handle when moving it
--   using key bindings.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is <kbd>Return</kbd>
--   or <kbd>Space</kbd>.
type PanedAcceptPositionCallback = IO Bool

-- | Connect a signal handler for the acceptPosition signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after paned #acceptPosition callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPanedAcceptPosition :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedAcceptPositionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the acceptPosition signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on paned #acceptPosition callback
--   
onPanedAcceptPosition :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedAcceptPositionCallback) -> m SignalHandlerId

-- | Emitted to cancel moving the position of the handle using key
--   bindings.
--   
--   The position of the handle will be reset to the value prior to moving
--   it.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is <kbd>Escape</kbd>.
type PanedCancelPositionCallback = IO Bool

-- | Connect a signal handler for the cancelPosition signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after paned #cancelPosition callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPanedCancelPosition :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedCancelPositionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cancelPosition signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on paned #cancelPosition callback
--   
onPanedCancelPosition :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedCancelPositionCallback) -> m SignalHandlerId

-- | Emitted to cycle the focus between the children of the paned.
--   
--   This is a keybinding signal.
--   
--   The default binding is <kbd>F6</kbd>.
type PanedCycleChildFocusCallback = Bool -> IO Bool

-- | Connect a signal handler for the cycleChildFocus signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after paned #cycleChildFocus callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPanedCycleChildFocus :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedCycleChildFocusCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cycleChildFocus signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on paned #cycleChildFocus callback
--   
onPanedCycleChildFocus :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedCycleChildFocusCallback) -> m SignalHandlerId

-- | Emitted to cycle whether the paned should grab focus to allow the user
--   to change position of the handle by using key bindings.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is <kbd>F8</kbd>.
type PanedCycleHandleFocusCallback = Bool -> IO Bool

-- | Connect a signal handler for the cycleHandleFocus signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after paned #cycleHandleFocus callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPanedCycleHandleFocus :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedCycleHandleFocusCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cycleHandleFocus signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on paned #cycleHandleFocus callback
--   
onPanedCycleHandleFocus :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedCycleHandleFocusCallback) -> m SignalHandlerId

-- | Emitted to move the handle with key bindings.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>←</kbd>,
--   <kbd>←</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>→</kbd>,
--   <kbd>→</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>↑</kbd>,
--   <kbd>↑</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>↓</kbd>,
--   <kbd>↓</kbd>, <kbd>PgUp</kbd>,
--   <kbd>PgDn</kbd>, <kbd>Home</kbd>,
--   <kbd>End</kbd>.
type PanedMoveHandleCallback = ScrollType -> IO Bool

-- | Connect a signal handler for the moveHandle signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after paned #moveHandle callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPanedMoveHandle :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedMoveHandleCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveHandle signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on paned #moveHandle callback
--   
onPanedMoveHandle :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedMoveHandleCallback) -> m SignalHandlerId

-- | Emitted to accept the current position of the handle and then move
--   focus to the next widget in the focus chain.
--   
--   This is a keybinding signal.
--   
--   The default binding is <kbd>Tab</kbd>.
type PanedToggleHandleFocusCallback = IO Bool

-- | Connect a signal handler for the toggleHandleFocus signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after paned #toggleHandleFocus callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterPanedToggleHandleFocus :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedToggleHandleFocusCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleHandleFocus signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on paned #toggleHandleFocus callback
--   
onPanedToggleHandleFocus :: (IsPaned a, MonadIO m) => a -> ((?self :: a) => PanedToggleHandleFocusCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Paned.Paned
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Paned.Paned
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Paned.Paned
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Paned.Paned)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Paned.Paned o) => GI.Gtk.Objects.Paned.IsPaned o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Paned.Paned
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Paned.Paned

-- | Presents a page setup dialog for platforms which don’t provide a
--   native page setup dialog, like Unix.
--   
--   <picture> <source srcset="pagesetupdialog-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkPageSetupUnixDialog" src="pagesetupdialog.png"> </picture>
--   
--   It can be used very much like any other GTK dialog, at the cost of the
--   portability offered by the high-level printing API in
--   PrintOperation.
--   
--   
CSS nodes
--   
--   GtkPageSetupUnixDialog has a single CSS node with the name
--   window and style class .pagesetup.
module GI.Gtk.Objects.PageSetupUnixDialog

-- | Memory-managed wrapper type.
newtype PageSetupUnixDialog
PageSetupUnixDialog :: ManagedPtr PageSetupUnixDialog -> PageSetupUnixDialog

-- | Type class for types which can be safely cast to
--   PageSetupUnixDialog, for instance with
--   toPageSetupUnixDialog.
class (GObject o, IsDescendantOf PageSetupUnixDialog o) => IsPageSetupUnixDialog o

-- | Cast to PageSetupUnixDialog, for types for which this is known
--   to be safe. For general casts, use castTo.
toPageSetupUnixDialog :: (MonadIO m, IsPageSetupUnixDialog o) => o -> m PageSetupUnixDialog

-- | Gets the currently selected page setup from the dialog.
pageSetupUnixDialogGetPageSetup :: (HasCallStack, MonadIO m, IsPageSetupUnixDialog a) => a -> m PageSetup

-- | Gets the current print settings from the dialog.
pageSetupUnixDialogGetPrintSettings :: (HasCallStack, MonadIO m, IsPageSetupUnixDialog a) => a -> m (Maybe PrintSettings)

-- | Creates a new page setup dialog.
pageSetupUnixDialogNew :: (HasCallStack, MonadIO m, IsWindow a) => Maybe Text -> Maybe a -> m PageSetupUnixDialog

-- | Sets the GtkPageSetup from which the page setup dialog takes
--   its values.
pageSetupUnixDialogSetPageSetup :: (HasCallStack, MonadIO m, IsPageSetupUnixDialog a, IsPageSetup b) => a -> b -> m ()

-- | Sets the GtkPrintSettings from which the page setup dialog
--   takes its values.
pageSetupUnixDialogSetPrintSettings :: (HasCallStack, MonadIO m, IsPageSetupUnixDialog a, IsPrintSettings b) => a -> Maybe b -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog o) => GI.Gtk.Objects.PageSetupUnixDialog.IsPageSetupUnixDialog o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PageSetupUnixDialog.PageSetupUnixDialog

-- | Handles input from the pads found in drawing tablets.
--   
--   Pads are the collection of buttons and tactile sensors often found
--   around the stylus-sensitive area.
--   
--   These buttons and sensors have no implicit meaning, and by default
--   they perform no action. GtkPadController is provided to map
--   those to Action objects, thus letting the application give them
--   a more semantic meaning.
--   
--   Buttons and sensors are not constrained to triggering a single action,
--   some InputSourceTabletPad devices feature multiple "modes". All
--   these input elements have one current mode, which may determine the
--   final action being triggered.
--   
--   Pad devices often divide buttons and sensors into groups. All elements
--   in a group share the same current mode, but different groups may have
--   different modes. See devicePadGetNGroups and
--   devicePadGetGroupNModes.
--   
--   Each of the actions that a given button/strip/ring performs for a
--   given mode is defined by a PadActionEntry. It contains an
--   action name that will be looked up in the given ActionGroup and
--   activated whenever the specified input element and mode are triggered.
--   
--   A simple example of GtkPadController usage: Assigning button
--   1 in all modes and pad devices to an "invert-selection" action:
--   
--   
c code
--   
--   
--   GtkPadActionEntry *pad_actions[] = {
--     { GTK_PAD_ACTION_BUTTON, 1, -1, "Invert selection", "pad-actions.invert-selection" },
--     …
--   };
--   
--   …
--   action_group = g_simple_action_group_new ();
--   action = g_simple_action_new ("pad-actions.invert-selection", NULL);
--   g_signal_connect (action, "activate", on_invert_selection_activated, NULL);
--   g_action_map_add_action (G_ACTION_MAP (action_group), action);
--   …
--   pad_controller = gtk_pad_controller_new (action_group, NULL);
--   
--   
--   The actions belonging to rings/strips/dials will be activated with a
--   parameter of type G_VARIANT_TYPE_DOUBLE bearing the
--   value of the given axis, it is required that those are made stateful
--   and accepting this GVariantType. For rings the value is the
--   angle of the ring position in degrees with 0 facing up. For strips the
--   value is the absolute position on the strip, normalized to the [0.0,
--   1.0] range. For dials the value is the relative movement of the dial,
--   normalized so that the value 120 represents one logical scroll wheel
--   detent in the positive direction. Devices that support high-resolution
--   scrolling may send events with fractions of 120 to signify a smaller
--   motion.
module GI.Gtk.Objects.PadController

-- | Memory-managed wrapper type.
newtype PadController
PadController :: ManagedPtr PadController -> PadController

-- | Type class for types which can be safely cast to PadController,
--   for instance with toPadController.
class (GObject o, IsDescendantOf PadController o) => IsPadController o

-- | Cast to PadController, for types for which this is known to be
--   safe. For general casts, use castTo.
toPadController :: (MonadIO m, IsPadController o) => o -> m PadController

-- | Creates a new GtkPadController that will associate events
--   from pad to actions.
--   
--   A Nothing pad may be provided so the controller manages all pad
--   devices generically, it is discouraged to mix
--   GtkPadController objects with Nothing and
--   non-Nothing pad argument on the same toplevel
--   window, as execution order is not guaranteed.
--   
--   The GtkPadController is created with no mapped actions. In
--   order to map pad events to actions, use
--   padControllerSetActionEntries or padControllerSetAction.
--   
--   Be aware that pad events will only be delivered to
--   GtkWindows, so adding a pad controller to any other type of
--   widget will not have an effect.
padControllerNew :: (HasCallStack, MonadIO m, IsActionGroup a, IsDevice b) => a -> Maybe b -> m PadController

-- | Adds an individual action to controller.
--   
--   This action will only be activated if the given button/ring/strip
--   number in index is interacted while the current mode
--   is mode. -1 may be used for simple cases, so the
--   action is triggered on all modes.
--   
--   The given label should be considered user-visible, so
--   internationalization rules apply. Some windowing systems may be able
--   to use those for user feedback.
padControllerSetAction :: (HasCallStack, MonadIO m, IsPadController a) => a -> PadActionType -> Int32 -> Int32 -> Text -> Text -> m ()

-- | A convenience function to add a group of action entries on
--   controller.
--   
--   See PadActionEntry and padControllerSetAction.
padControllerSetActionEntries :: (HasCallStack, MonadIO m, IsPadController a) => a -> [PadActionEntry] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “action-group” property. This is rarely needed directly, but
--   it is used by new.
constructPadControllerActionGroup :: (IsPadController o, MonadIO m, IsActionGroup a) => a -> m (GValueConstruct o)

-- | Get the value of the “action-group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get padController #actionGroup
--   
getPadControllerActionGroup :: (MonadIO m, IsPadController o) => o -> m (Maybe ActionGroup)

-- | Construct a GValueConstruct with valid value for the
--   “pad” property. This is rarely needed directly, but it is
--   used by new.
constructPadControllerPad :: (IsPadController o, MonadIO m, IsDevice a) => a -> m (GValueConstruct o)

-- | Get the value of the “pad” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get padController #pad
--   
getPadControllerPad :: (MonadIO m, IsPadController o) => o -> m (Maybe Device)
instance GHC.Classes.Eq GI.Gtk.Objects.PadController.PadController
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.PadController.PadController
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.PadController.PadController
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.PadController.PadController)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.PadController.PadController o) => GI.Gtk.Objects.PadController.IsPadController o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.PadController.PadController
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.PadController.PadController

-- | GtkLayoutChild subclass for children in a
--   GtkOverlayLayout.
module GI.Gtk.Objects.OverlayLayoutChild

-- | Memory-managed wrapper type.
newtype OverlayLayoutChild
OverlayLayoutChild :: ManagedPtr OverlayLayoutChild -> OverlayLayoutChild

-- | Type class for types which can be safely cast to
--   OverlayLayoutChild, for instance with
--   toOverlayLayoutChild.
class (GObject o, IsDescendantOf OverlayLayoutChild o) => IsOverlayLayoutChild o

-- | Cast to OverlayLayoutChild, for types for which this is known
--   to be safe. For general casts, use castTo.
toOverlayLayoutChild :: (MonadIO m, IsOverlayLayoutChild o) => o -> m OverlayLayoutChild

-- | Retrieves whether the child is clipped.
overlayLayoutChildGetClipOverlay :: (HasCallStack, MonadIO m, IsOverlayLayoutChild a) => a -> m Bool

-- | Retrieves whether the child is measured.
overlayLayoutChildGetMeasure :: (HasCallStack, MonadIO m, IsOverlayLayoutChild a) => a -> m Bool

-- | Sets whether to clip this child.
overlayLayoutChildSetClipOverlay :: (HasCallStack, MonadIO m, IsOverlayLayoutChild a) => a -> Bool -> m ()

-- | Sets whether to measure this child.
overlayLayoutChildSetMeasure :: (HasCallStack, MonadIO m, IsOverlayLayoutChild a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “clip-overlay” property. This is rarely needed directly, but
--   it is used by new.
constructOverlayLayoutChildClipOverlay :: (IsOverlayLayoutChild o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “clip-overlay” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get overlayLayoutChild #clipOverlay
--   
getOverlayLayoutChildClipOverlay :: (MonadIO m, IsOverlayLayoutChild o) => o -> m Bool

-- | Set the value of the “clip-overlay” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set overlayLayoutChild [ #clipOverlay := value ]
--   
setOverlayLayoutChildClipOverlay :: (MonadIO m, IsOverlayLayoutChild o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “measure” property. This is rarely needed directly, but it is
--   used by new.
constructOverlayLayoutChildMeasure :: (IsOverlayLayoutChild o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “measure” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get overlayLayoutChild #measure
--   
getOverlayLayoutChildMeasure :: (MonadIO m, IsOverlayLayoutChild o) => o -> m Bool

-- | Set the value of the “measure” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set overlayLayoutChild [ #measure := value ]
--   
setOverlayLayoutChildMeasure :: (MonadIO m, IsOverlayLayoutChild o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild o) => GI.Gtk.Objects.OverlayLayoutChild.IsOverlayLayoutChild o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild

-- | The layout manager used by Overlay.
--   
--   It places widgets as overlays on top of the main child.
--   
--   This is not a reusable layout manager, since it expects its widget to
--   be a GtkOverlay. It is only listed here so that its layout
--   properties get documented.
module GI.Gtk.Objects.OverlayLayout

-- | Memory-managed wrapper type.
newtype OverlayLayout
OverlayLayout :: ManagedPtr OverlayLayout -> OverlayLayout

-- | Type class for types which can be safely cast to OverlayLayout,
--   for instance with toOverlayLayout.
class (GObject o, IsDescendantOf OverlayLayout o) => IsOverlayLayout o

-- | Cast to OverlayLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toOverlayLayout :: (MonadIO m, IsOverlayLayout o) => o -> m OverlayLayout

-- | Creates a new GtkOverlayLayout instance.
overlayLayoutNew :: (HasCallStack, MonadIO m) => m OverlayLayout
instance GHC.Classes.Eq GI.Gtk.Objects.OverlayLayout.OverlayLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.OverlayLayout.OverlayLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.OverlayLayout.OverlayLayout
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.OverlayLayout.OverlayLayout)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.OverlayLayout.OverlayLayout o) => GI.Gtk.Objects.OverlayLayout.IsOverlayLayout o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.OverlayLayout.OverlayLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.OverlayLayout.OverlayLayout

-- | Places “overlay” widgets on top of a single main child.
--   
--   <picture> <source srcset="overlay-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkOverlay" src="overlay.png"> </picture>
--   
--   The position of each overlay widget is determined by its
--   Widget:halign and Widget:valign properties. E.g. a
--   widget with both alignments set to AlignStart will be placed at
--   the top left corner of the GtkOverlay container, whereas an
--   overlay with halign set to AlignCenter and valign set to
--   AlignEnd will be placed a the bottom edge of the
--   GtkOverlay, horizontally centered. The position can be
--   adjusted by setting the margin properties of the child to non-zero
--   values.
--   
--   More complicated placement of overlays is possible by connecting to
--   the Overlay::getChildPosition signal.
--   
--   An overlay’s minimum and natural sizes are those of its main child.
--   The sizes of overlay children are not considered when measuring these
--   preferred sizes.
--   
--   
GtkOverlay as GtkBuildable
--   
--   The GtkOverlay implementation of the GtkBuildable
--   interface supports placing a child as an overlay by specifying
--   “overlay” as the “type” attribute of a <child> element.
--   
--   
CSS nodes
--   
--   GtkOverlay has a single CSS node with the name “overlay”.
--   Overlay children whose alignments cause them to be positioned at an
--   edge get the style classes “.left”, “.right”, “.top”, and/or “.bottom”
--   according to their position.
module GI.Gtk.Objects.Overlay

-- | Memory-managed wrapper type.
newtype Overlay
Overlay :: ManagedPtr Overlay -> Overlay

-- | Type class for types which can be safely cast to Overlay, for
--   instance with toOverlay.
class (GObject o, IsDescendantOf Overlay o) => IsOverlay o

-- | Cast to Overlay, for types for which this is known to be safe.
--   For general casts, use castTo.
toOverlay :: (MonadIO m, IsOverlay o) => o -> m Overlay

-- | Adds widget to overlay.
--   
--   The widget will be stacked on top of the main widget added with
--   overlaySetChild.
--   
--   The position at which widget is placed is determined
--   from its Widget:halign and Widget:valign properties.
overlayAddOverlay :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> b -> m ()

-- | Gets the child widget of overlay.
overlayGetChild :: (HasCallStack, MonadIO m, IsOverlay a) => a -> m (Maybe Widget)

-- | Gets whether widget should be clipped within the
--   parent.
overlayGetClipOverlay :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> b -> m Bool

-- | Gets whether widget's size is included in the
--   measurement of overlay.
overlayGetMeasureOverlay :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> b -> m Bool

-- | Creates a new GtkOverlay.
overlayNew :: (HasCallStack, MonadIO m) => m Overlay

-- | Removes an overlay that was added with overlayAddOverlay.
overlayRemoveOverlay :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> b -> m ()

-- | Sets the child widget of overlay.
overlaySetChild :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether widget should be clipped within the
--   parent.
overlaySetClipOverlay :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> b -> Bool -> m ()

-- | Sets whether widget is included in the measured size
--   of overlay.
--   
--   The overlay will request the size of the largest child that has this
--   property set to True. Children who are not included may be
--   drawn outside of overlay's allocation if they are too
--   large.
overlaySetMeasureOverlay :: (HasCallStack, MonadIO m, IsOverlay a, IsWidget b) => a -> b -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearOverlayChild :: (MonadIO m, IsOverlay o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructOverlayChild :: (IsOverlay o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get overlay #child
--   
getOverlayChild :: (MonadIO m, IsOverlay o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set overlay [ #child := value ]
--   
setOverlayChild :: (MonadIO m, IsOverlay o, IsWidget a) => o -> a -> m ()

-- | Emitted to determine the position and size of any overlay child
--   widgets.
--   
--   A handler for this signal should fill allocation with
--   the desired position and size for widget, relative to
--   the 'main' child of overlay.
--   
--   The default handler for this signal uses the widget's
--   halign and valign properties to determine the position and gives the
--   widget its natural size (except that an alignment of AlignFill
--   will cause the overlay to be full-width/height). If the main child is
--   a GtkScrolledWindow, the overlays are placed relative to its
--   contents.
type OverlayGetChildPositionCallback = Widget -> IO (Bool, Rectangle)

-- | Connect a signal handler for the getChildPosition signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after overlay #getChildPosition callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterOverlayGetChildPosition :: (IsOverlay a, MonadIO m) => a -> ((?self :: a) => OverlayGetChildPositionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the getChildPosition signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on overlay #getChildPosition callback
--   
onOverlayGetChildPosition :: (IsOverlay a, MonadIO m) => a -> ((?self :: a) => OverlayGetChildPositionCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Overlay.Overlay
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Overlay.Overlay
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Overlay.Overlay
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Overlay.Overlay)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Overlay.Overlay o) => GI.Gtk.Objects.Overlay.IsOverlay o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Overlay.Overlay
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Overlay.Overlay

-- | A GObject value in a GtkExpression.
module GI.Gtk.Objects.ObjectExpression

-- | Memory-managed wrapper type.
newtype ObjectExpression
ObjectExpression :: ManagedPtr ObjectExpression -> ObjectExpression

-- | Type class for types which can be safely cast to
--   ObjectExpression, for instance with toObjectExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf ObjectExpression o) => IsObjectExpression o

-- | Cast to ObjectExpression, for types for which this is known to
--   be safe. For general casts, use castTo.
toObjectExpression :: (MonadIO m, IsObjectExpression o) => o -> m ObjectExpression

-- | Gets the object that the expression evaluates to.
objectExpressionGetObject :: (HasCallStack, MonadIO m, IsObjectExpression a) => a -> m (Maybe Object)

-- | Creates an expression evaluating to the given object with a
--   weak reference.
--   
--   Once the object is disposed, it will fail to evaluate.
--   
--   This expression is meant to break reference cycles.
--   
--   If you want to keep a reference to object, use
--   ConstantExpression.new().
objectExpressionNew :: (HasCallStack, MonadIO m, IsObject a) => a -> m ObjectExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.ObjectExpression.ObjectExpression
instance GHC.Classes.Eq GI.Gtk.Objects.ObjectExpression.ObjectExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ObjectExpression.ObjectExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ObjectExpression.ObjectExpression o) => GI.Gtk.Objects.ObjectExpression.IsObjectExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ObjectExpression.ObjectExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ObjectExpression.ObjectExpression

-- | Sorts items numerically.
--   
--   To obtain the numbers to compare, this sorter evaluates a
--   Expression.
module GI.Gtk.Objects.NumericSorter

-- | Memory-managed wrapper type.
newtype NumericSorter
NumericSorter :: ManagedPtr NumericSorter -> NumericSorter

-- | Type class for types which can be safely cast to NumericSorter,
--   for instance with toNumericSorter.
class (GObject o, IsDescendantOf NumericSorter o) => IsNumericSorter o

-- | Cast to NumericSorter, for types for which this is known to be
--   safe. For general casts, use castTo.
toNumericSorter :: (MonadIO m, IsNumericSorter o) => o -> m NumericSorter

-- | Gets the expression that is evaluated to obtain numbers from items.
numericSorterGetExpression :: (HasCallStack, MonadIO m, IsNumericSorter a) => a -> m (Maybe Expression)

-- | Gets whether this sorter will sort smaller numbers first.
numericSorterGetSortOrder :: (HasCallStack, MonadIO m, IsNumericSorter a) => a -> m SortType

-- | Creates a new numeric sorter using the given
--   expression.
--   
--   Smaller numbers will be sorted first. You can call
--   numericSorterSetSortOrder to change this.
numericSorterNew :: (HasCallStack, MonadIO m, IsExpression a) => Maybe a -> m NumericSorter

-- | Sets the expression that is evaluated to obtain numbers from items.
--   
--   Unless an expression is set on self, the sorter will
--   always compare items as invalid.
--   
--   The expression must have a return type that can be compared
--   numerically, such as G_TYPE_INT or
--   G_TYPE_DOUBLE.
numericSorterSetExpression :: (HasCallStack, MonadIO m, IsNumericSorter a, IsExpression b) => a -> Maybe b -> m ()

-- | Sets whether to sort smaller numbers before larger ones.
numericSorterSetSortOrder :: (HasCallStack, MonadIO m, IsNumericSorter a) => a -> SortType -> m ()

-- | Set the value of the “expression” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #expression
--   
clearNumericSorterExpression :: (MonadIO m, IsNumericSorter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expression” property. This is rarely needed directly, but it
--   is used by new.
constructNumericSorterExpression :: (IsNumericSorter o, MonadIO m, IsExpression a) => a -> m (GValueConstruct o)

-- | Get the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get numericSorter #expression
--   
getNumericSorterExpression :: (MonadIO m, IsNumericSorter o) => o -> m (Maybe Expression)

-- | Set the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set numericSorter [ #expression := value ]
--   
setNumericSorterExpression :: (MonadIO m, IsNumericSorter o, IsExpression a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sort-order” property. This is rarely needed directly, but it
--   is used by new.
constructNumericSorterSortOrder :: (IsNumericSorter o, MonadIO m) => SortType -> m (GValueConstruct o)

-- | Get the value of the “sort-order” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get numericSorter #sortOrder
--   
getNumericSorterSortOrder :: (MonadIO m, IsNumericSorter o) => o -> m SortType

-- | Set the value of the “sort-order” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set numericSorter [ #sortOrder := value ]
--   
setNumericSorterSortOrder :: (MonadIO m, IsNumericSorter o) => o -> SortType -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.NumericSorter.NumericSorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NumericSorter.NumericSorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NumericSorter.NumericSorter
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NumericSorter.NumericSorter)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NumericSorter.NumericSorter o) => GI.Gtk.Objects.NumericSorter.IsNumericSorter o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NumericSorter.NumericSorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NumericSorter.NumericSorter

-- | Does nothing.
module GI.Gtk.Objects.NothingAction

-- | Memory-managed wrapper type.
newtype NothingAction
NothingAction :: ManagedPtr NothingAction -> NothingAction

-- | Type class for types which can be safely cast to NothingAction,
--   for instance with toNothingAction.
class (GObject o, IsDescendantOf NothingAction o) => IsNothingAction o

-- | Cast to NothingAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toNothingAction :: (MonadIO m, IsNothingAction o) => o -> m NothingAction

-- | Gets the nothing action.
--   
--   This is an action that does nothing and where activating it always
--   fails.
nothingActionGet :: (HasCallStack, MonadIO m) => m NothingAction
instance GHC.Classes.Eq GI.Gtk.Objects.NothingAction.NothingAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NothingAction.NothingAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NothingAction.NothingAction
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NothingAction.NothingAction)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NothingAction.NothingAction o) => GI.Gtk.Objects.NothingAction.IsNothingAction o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NothingAction.NothingAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NothingAction.NothingAction

-- | An auxiliary object used by GtkNotebook.
module GI.Gtk.Objects.NotebookPage

-- | Memory-managed wrapper type.
newtype NotebookPage
NotebookPage :: ManagedPtr NotebookPage -> NotebookPage

-- | Type class for types which can be safely cast to NotebookPage,
--   for instance with toNotebookPage.
class (GObject o, IsDescendantOf NotebookPage o) => IsNotebookPage o

-- | Cast to NotebookPage, for types for which this is known to be
--   safe. For general casts, use castTo.
toNotebookPage :: (MonadIO m, IsNotebookPage o) => o -> m NotebookPage

-- | Returns the notebook child to which page belongs.
notebookPageGetChild :: (HasCallStack, MonadIO m, IsNotebookPage a) => a -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructNotebookPageChild :: (IsNotebookPage o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #child
--   
getNotebookPageChild :: (MonadIO m, IsNotebookPage o) => o -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “detachable” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookPageDetachable :: (IsNotebookPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “detachable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #detachable
--   
getNotebookPageDetachable :: (MonadIO m, IsNotebookPage o) => o -> m Bool

-- | Set the value of the “detachable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #detachable := value ]
--   
setNotebookPageDetachable :: (MonadIO m, IsNotebookPage o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu” property. This is rarely needed directly, but it is
--   used by new.
constructNotebookPageMenu :: (IsNotebookPage o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “menu” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get notebookPage #menu
--   
getNotebookPageMenu :: (MonadIO m, IsNotebookPage o) => o -> m (Maybe Widget)

-- | Set the value of the “menu-label” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #menuLabel
--   
clearNotebookPageMenuLabel :: (MonadIO m, IsNotebookPage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-label” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookPageMenuLabel :: (IsNotebookPage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “menu-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #menuLabel
--   
getNotebookPageMenuLabel :: (MonadIO m, IsNotebookPage o) => o -> m (Maybe Text)

-- | Set the value of the “menu-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #menuLabel := value ]
--   
setNotebookPageMenuLabel :: (MonadIO m, IsNotebookPage o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “position” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookPagePosition :: (IsNotebookPage o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #position
--   
getNotebookPagePosition :: (MonadIO m, IsNotebookPage o) => o -> m Int32

-- | Set the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #position := value ]
--   
setNotebookPagePosition :: (MonadIO m, IsNotebookPage o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “reorderable” property. This is rarely needed directly, but
--   it is used by new.
constructNotebookPageReorderable :: (IsNotebookPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #reorderable
--   
getNotebookPageReorderable :: (MonadIO m, IsNotebookPage o) => o -> m Bool

-- | Set the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #reorderable := value ]
--   
setNotebookPageReorderable :: (MonadIO m, IsNotebookPage o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab” property. This is rarely needed directly, but it is
--   used by new.
constructNotebookPageTab :: (IsNotebookPage o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “tab” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get notebookPage #tab
--   
getNotebookPageTab :: (MonadIO m, IsNotebookPage o) => o -> m (Maybe Widget)

-- | Construct a GValueConstruct with valid value for the
--   “tab-expand” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookPageTabExpand :: (IsNotebookPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “tab-expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #tabExpand
--   
getNotebookPageTabExpand :: (MonadIO m, IsNotebookPage o) => o -> m Bool

-- | Set the value of the “tab-expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #tabExpand := value ]
--   
setNotebookPageTabExpand :: (MonadIO m, IsNotebookPage o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab-fill” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookPageTabFill :: (IsNotebookPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “tab-fill” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #tabFill
--   
getNotebookPageTabFill :: (MonadIO m, IsNotebookPage o) => o -> m Bool

-- | Set the value of the “tab-fill” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #tabFill := value ]
--   
setNotebookPageTabFill :: (MonadIO m, IsNotebookPage o) => o -> Bool -> m ()

-- | Set the value of the “tab-label” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #tabLabel
--   
clearNotebookPageTabLabel :: (MonadIO m, IsNotebookPage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab-label” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookPageTabLabel :: (IsNotebookPage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “tab-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebookPage #tabLabel
--   
getNotebookPageTabLabel :: (MonadIO m, IsNotebookPage o) => o -> m (Maybe Text)

-- | Set the value of the “tab-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebookPage [ #tabLabel := value ]
--   
setNotebookPageTabLabel :: (MonadIO m, IsNotebookPage o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.NotebookPage.NotebookPage
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NotebookPage.NotebookPage
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NotebookPage.NotebookPage
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NotebookPage.NotebookPage)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NotebookPage.NotebookPage o) => GI.Gtk.Objects.NotebookPage.IsNotebookPage o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NotebookPage.NotebookPage
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NotebookPage.NotebookPage

-- | Switches between children using tabs.
--   
--   <picture> <source srcset="notebook-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkNotebook" src="notebook.png"> </picture>
--   
--   There are many configuration options for GtkNotebook. Among
--   other things, you can choose on which edge the tabs appear (see
--   notebookSetTabPos), whether, if there are too many tabs to fit
--   the notebook should be made bigger or scrolling arrows added (see
--   notebookSetScrollable), and whether there will be a popup menu
--   allowing the users to switch pages. (see notebookPopupEnable).
--   
--   
GtkNotebook as GtkBuildable
--   
--   The GtkNotebook implementation of the GtkBuildable
--   interface supports placing children into tabs by specifying “tab” as
--   the “type” attribute of a <child> element. Note that
--   the content of the tab must be created before the tab can be filled. A
--   tab child can be specified without specifying a <child>
--   type attribute.
--   
--   To add a child widget in the notebooks action area, specify
--   "action-start" or “action-end” as the “type” attribute of the
--   <child> element.
--   
--   An example of a UI definition fragment with GtkNotebook:
--   
--   
xml code
--   
--   
--   <object class="GtkNotebook">
--     <child>
--       <object class="GtkLabel" id="notebook-content">
--         <property name="label">Content</property>
--       </object>
--     </child>
--     <child type="tab">
--       <object class="GtkLabel" id="notebook-tab">
--         <property name="label">Tab</property>
--       </object>
--     </child>
--   </object>
--   
--   
--   
Shortcuts and Gestures
--   
--   GtkNotebook supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Shift</kbd>+<kbd>F10</kbd> or
--   <kbd>Menu</kbd> opens the context menu.
--   
- <kbd>Home</kbd> moves the focus to the first tab.
--   
- <kbd>End</kbd> moves the focus to the last tab.
--   
--   
--   Additionally, the following signals have default keybindings:
--   
--   
--   
- Notebook::changeCurrentPage
--   
- Notebook::focusTab
--   
- Notebook::moveFocusOut
--   
- Notebook::reorderTab
--   
- Notebook::selectPage
--   
--   
--   Tabs support drag-and-drop between notebooks sharing the same
--   group-name, or to new windows by handling the
--   ::create-window signal.
--   
--   
Actions
--   
--   GtkNotebook defines a set of built-in actions:
--   
--   
--   
- menu.popup opens the tabs context menu.
--   
--   
--   
CSS nodes
--   
--   
--   notebook
--   ├── header.top
--   │   ├── [<action widget>]
--   │   ├── tabs
--   │   │   ├── [arrow]
--   │   │   ├── tab
--   │   │   │   ╰── <tab label>
--   ┊   ┊   ┊
--   │   │   ├── tab[.reorderable-page]
--   │   │   │   ╰── <tab label>
--   │   │   ╰── [arrow]
--   │   ╰── [<action widget>]
--   │
--   ╰── stack
--       ├── <child>
--       ┊
--       ╰── <child>
--   
--   
--   GtkNotebook has a main CSS node with name notebook,
--   a subnode with name header and below that a subnode with name
--   tabs which contains one subnode per tab with name
--   tab.
--   
--   If action widgets are present, their CSS nodes are placed next to the
--   tabs node. If the notebook is scrollable, CSS nodes with name
--   arrow are placed as first and last child of the tabs
--   node.
--   
--   The main node gets the .frame style class when the notebook
--   has a border (see notebookSetShowBorder).
--   
--   The header node gets one of the style class .top,
--   .bottom, .left or .right, depending on
--   where the tabs are placed. For reorderable pages, the tab node gets
--   the .reorderable-page class.
--   
--   A tab node gets the .dnd style class while it is
--   moved with drag-and-drop.
--   
--   The nodes are always arranged from left-to-right, regardless of text
--   direction.
--   
--   
Accessibility
--   
--   GtkNotebook uses the following roles:
--   
--   
--   
- AccessibleRoleGroup for the notebook widget
--   
- AccessibleRoleTabList for the list of tabs
--   
- AccessibleRoleTab role for each tab
--   
- AccessibleRoleTabPanel for each page
--   
module GI.Gtk.Objects.Notebook

-- | Memory-managed wrapper type.
newtype Notebook
Notebook :: ManagedPtr Notebook -> Notebook

-- | Type class for types which can be safely cast to Notebook, for
--   instance with toNotebook.
class (GObject o, IsDescendantOf Notebook o) => IsNotebook o

-- | Cast to Notebook, for types for which this is known to be safe.
--   For general casts, use castTo.
toNotebook :: (MonadIO m, IsNotebook o) => o -> m Notebook

-- | Appends a page to notebook.
notebookAppendPage :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m Int32

-- | Appends a page to notebook, specifying the widget to
--   use as the label in the popup menu.
notebookAppendPageMenu :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c, IsWidget d) => a -> b -> Maybe c -> Maybe d -> m Int32

-- | Removes the child from the notebook.
--   
--   This function is very similar to notebookRemovePage, but
--   additionally informs the notebook that the removal is happening as
--   part of a tab DND operation, which should not be cancelled.
notebookDetachTab :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m ()

-- | Gets one of the action widgets.
--   
--   See notebookSetActionWidget.
notebookGetActionWidget :: (HasCallStack, MonadIO m, IsNotebook a) => a -> PackType -> m (Maybe Widget)

-- | Returns the page number of the current page.
notebookGetCurrentPage :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m Int32

-- | Gets the current group name for notebook.
notebookGetGroupName :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m (Maybe Text)

-- | Retrieves the menu label widget of the page containing
--   child.
notebookGetMenuLabel :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m (Maybe Widget)

-- | Retrieves the text of the menu label for the page containing
--   child.
notebookGetMenuLabelText :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m (Maybe Text)

-- | Gets the number of pages in a notebook.
notebookGetNPages :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m Int32

-- | Returns the child widget contained in page number
--   pageNum.
notebookGetNthPage :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Int32 -> m (Maybe Widget)

-- | Returns the GtkNotebookPage for child.
notebookGetPage :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m NotebookPage

-- | Returns a GListModel that contains the pages of the notebook.
--   
--   This can be used to keep an up-to-date view. The model also implements
--   SelectionModel and can be used to track and modify the visible
--   page.
notebookGetPages :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m ListModel

-- | Returns whether the tab label area has arrows for scrolling.
notebookGetScrollable :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m Bool

-- | Returns whether a bevel will be drawn around the notebook pages.
notebookGetShowBorder :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m Bool

-- | Returns whether the tabs of the notebook are shown.
notebookGetShowTabs :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m Bool

-- | Returns whether the tab contents can be detached from
--   notebook.
notebookGetTabDetachable :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m Bool

-- | Returns the tab label widget for the page child.
--   
--   Nothing is returned if child is not in
--   notebook or if no tab label has specifically been set
--   for child.
notebookGetTabLabel :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m (Maybe Widget)

-- | Retrieves the text of the tab label for the page containing
--   child.
notebookGetTabLabelText :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m (Maybe Text)

-- | Gets the edge at which the tabs are drawn.
notebookGetTabPos :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m PositionType

-- | Gets whether the tab can be reordered via drag and drop or not.
notebookGetTabReorderable :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m Bool

-- | Insert a page into notebook at the given position.
notebookInsertPage :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> Int32 -> m Int32

-- | Insert a page into notebook at the given position,
--   specifying the widget to use as the label in the popup menu.
notebookInsertPageMenu :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c, IsWidget d) => a -> b -> Maybe c -> Maybe d -> Int32 -> m Int32

-- | Creates a new GtkNotebook widget with no pages.
notebookNew :: (HasCallStack, MonadIO m) => m Notebook

-- | Switches to the next page.
--   
--   Nothing happens if the current page is the last page.
notebookNextPage :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m ()

-- | Finds the index of the page which contains the given child widget.
notebookPageNum :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> m Int32

-- | Disables the popup menu.
notebookPopupDisable :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m ()

-- | Enables the popup menu.
--   
--   If the user clicks with the right mouse button on the tab labels, a
--   menu with all the pages will be popped up.
notebookPopupEnable :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m ()

-- | Prepends a page to notebook.
notebookPrependPage :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m Int32

-- | Prepends a page to notebook, specifying the widget to
--   use as the label in the popup menu.
notebookPrependPageMenu :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c, IsWidget d) => a -> b -> Maybe c -> Maybe d -> m Int32

-- | Switches to the previous page.
--   
--   Nothing happens if the current page is the first page.
notebookPrevPage :: (HasCallStack, MonadIO m, IsNotebook a) => a -> m ()

-- | Removes a page from the notebook given its index in the notebook.
notebookRemovePage :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Int32 -> m ()

-- | Reorders the page containing child, so that it appears
--   in position position.
--   
--   If position is greater than or equal to the number of
--   children in the list or negative, child will be moved
--   to the end of the list.
notebookReorderChild :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> Int32 -> m ()

-- | Sets widget as one of the action widgets.
--   
--   Depending on the pack type the widget will be placed before or after
--   the tabs. You can use a GtkBox if you need to pack more than
--   one widget on the same side.
notebookSetActionWidget :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> PackType -> m ()

-- | Switches to the page number pageNum.
--   
--   Note that due to historical reasons, GtkNotebook refuses to switch to
--   a page unless the child widget is visible. Therefore, it is
--   recommended to show child widgets before adding them to a notebook.
notebookSetCurrentPage :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Int32 -> m ()

-- | Sets a group name for notebook.
--   
--   Notebooks with the same name will be able to exchange tabs via drag
--   and drop. A notebook with a Nothing group name will not be able
--   to exchange tabs with any other notebook.
notebookSetGroupName :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Maybe Text -> m ()

-- | Changes the menu label for the page containing child.
notebookSetMenuLabel :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m ()

-- | Creates a new label and sets it as the menu label of
--   child.
notebookSetMenuLabelText :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> Text -> m ()

-- | Sets whether the tab label area will have arrows for scrolling if
--   there are too many tabs to fit in the area.
notebookSetScrollable :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Bool -> m ()

-- | Sets whether a bevel will be drawn around the notebook pages.
--   
--   This only has a visual effect when the tabs are not shown.
notebookSetShowBorder :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Bool -> m ()

-- | Sets whether to show the tabs for the notebook or not.
notebookSetShowTabs :: (HasCallStack, MonadIO m, IsNotebook a) => a -> Bool -> m ()

-- | Sets whether the tab can be detached from notebook to
--   another notebook or widget.
--   
--   Note that two notebooks must share a common group identifier (see
--   notebookSetGroupName) to allow automatic tabs interchange
--   between them.
--   
--   If you want a widget to interact with a notebook through DnD (i.e.:
--   accept dragged tabs from it) it must be set as a drop destination by
--   adding to it a DropTarget controller that accepts the GType
--   GTK_TYPE_NOTEBOOK_PAGE. The :value of said drop
--   target will be preloaded with a NotebookPage object that
--   corresponds to the dropped tab, so you can process the value via
--   ::accept or ::drop signals.
--   
--   Note that you should use notebookDetachTab instead of
--   notebookRemovePage if you want to remove the tab from the
--   source notebook as part of accepting a drop. Otherwise, the source
--   notebook will think that the dragged tab was removed from underneath
--   the ongoing drag operation, and will initiate a drag cancel animation.
--   
--   
c code
--   
--   
--   static void
--   on_drag_data_received (GtkWidget        *widget,
--                          GdkDrop          *drop,
--                          GtkSelectionData *data,
--                          guint             time,
--                          gpointer          user_data)
--   {
--     GtkDrag *drag;
--     GtkWidget *notebook;
--     GtkWidget **child;
--   
--     drag = gtk_drop_get_drag (drop);
--     notebook = g_object_get_data (drag, "gtk-notebook-drag-origin");
--     child = (void*) gtk_selection_data_get_data (data);
--   
--     // process_widget (*child);
--   
--     gtk_notebook_detach_tab (GTK_NOTEBOOK (notebook), *child);
--   }
--   
--   
--   If you want a notebook to accept drags from other widgets, you will
--   have to set your own DnD code to do it.
notebookSetTabDetachable :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> Bool -> m ()

-- | Changes the tab label for child.
--   
--   If Nothing is specified for tabLabel, then the
--   page will have the label “page N”.
notebookSetTabLabel :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m ()

-- | Creates a new label and sets it as the tab label for the page
--   containing child.
notebookSetTabLabelText :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> Text -> m ()

-- | Sets the edge at which the tabs are drawn.
notebookSetTabPos :: (HasCallStack, MonadIO m, IsNotebook a) => a -> PositionType -> m ()

-- | Sets whether the notebook tab can be reordered via drag and drop or
--   not.
notebookSetTabReorderable :: (HasCallStack, MonadIO m, IsNotebook a, IsWidget b) => a -> b -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-popup” property. This is rarely needed directly, but
--   it is used by new.
constructNotebookEnablePopup :: (IsNotebook o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-popup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #enablePopup
--   
getNotebookEnablePopup :: (MonadIO m, IsNotebook o) => o -> m Bool

-- | Set the value of the “enable-popup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebook [ #enablePopup := value ]
--   
setNotebookEnablePopup :: (MonadIO m, IsNotebook o) => o -> Bool -> m ()

-- | Set the value of the “group-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #groupName
--   
clearNotebookGroupName :: (MonadIO m, IsNotebook o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “group-name” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookGroupName :: (IsNotebook o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “group-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #groupName
--   
getNotebookGroupName :: (MonadIO m, IsNotebook o) => o -> m (Maybe Text)

-- | Set the value of the “group-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebook [ #groupName := value ]
--   
setNotebookGroupName :: (MonadIO m, IsNotebook o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page” property. This is rarely needed directly, but it is
--   used by new.
constructNotebookPage :: (IsNotebook o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “page” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get notebook #page
--   
getNotebookPage :: (MonadIO m, IsNotebook o) => o -> m Int32

-- | Set the value of the “page” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set notebook [ #page := value ]
--   
setNotebookPage :: (MonadIO m, IsNotebook o) => o -> Int32 -> m ()

-- | Get the value of the “pages” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #pages
--   
getNotebookPages :: (MonadIO m, IsNotebook o) => o -> m (Maybe ListModel)

-- | Construct a GValueConstruct with valid value for the
--   “scrollable” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookScrollable :: (IsNotebook o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “scrollable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #scrollable
--   
getNotebookScrollable :: (MonadIO m, IsNotebook o) => o -> m Bool

-- | Set the value of the “scrollable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebook [ #scrollable := value ]
--   
setNotebookScrollable :: (MonadIO m, IsNotebook o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-border” property. This is rarely needed directly, but
--   it is used by new.
constructNotebookShowBorder :: (IsNotebook o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-border” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #showBorder
--   
getNotebookShowBorder :: (MonadIO m, IsNotebook o) => o -> m Bool

-- | Set the value of the “show-border” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebook [ #showBorder := value ]
--   
setNotebookShowBorder :: (MonadIO m, IsNotebook o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-tabs” property. This is rarely needed directly, but it
--   is used by new.
constructNotebookShowTabs :: (IsNotebook o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-tabs” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #showTabs
--   
getNotebookShowTabs :: (MonadIO m, IsNotebook o) => o -> m Bool

-- | Set the value of the “show-tabs” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebook [ #showTabs := value ]
--   
setNotebookShowTabs :: (MonadIO m, IsNotebook o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab-pos” property. This is rarely needed directly, but it is
--   used by new.
constructNotebookTabPos :: (IsNotebook o, MonadIO m) => PositionType -> m (GValueConstruct o)

-- | Get the value of the “tab-pos” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get notebook #tabPos
--   
getNotebookTabPos :: (MonadIO m, IsNotebook o) => o -> m PositionType

-- | Set the value of the “tab-pos” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set notebook [ #tabPos := value ]
--   
setNotebookTabPos :: (MonadIO m, IsNotebook o) => o -> PositionType -> m ()

-- | Emitted when the current page should be changed.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>PgUp</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>PgDn</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>PgUp</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>PgDn</kbd>.
type NotebookChangeCurrentPageCallback = Int32 -> IO Bool

-- | Connect a signal handler for the changeCurrentPage signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after notebook #changeCurrentPage callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookChangeCurrentPage :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookChangeCurrentPageCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changeCurrentPage signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on notebook #changeCurrentPage callback
--   
onNotebookChangeCurrentPage :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookChangeCurrentPageCallback) -> m SignalHandlerId

-- | The createWindow signal is emitted when a detachable tab is
--   dropped on the root window.
--   
--   A handler for this signal can create a window containing a notebook
--   where the tab will be attached. It is also responsible for
--   moving/resizing the window and adding the necessary properties to the
--   notebook (e.g. the GtkNotebook:group-name ).
type NotebookCreateWindowCallback = Widget -> IO Maybe Notebook

-- | Connect a signal handler for the createWindow signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #createWindow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookCreateWindow :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookCreateWindowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the createWindow signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #createWindow callback
--   
onNotebookCreateWindow :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookCreateWindowCallback) -> m SignalHandlerId

-- | Emitted when a tab should be focused.
type NotebookFocusTabCallback = NotebookTab -> IO Bool

-- | Connect a signal handler for the focusTab signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #focusTab callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookFocusTab :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookFocusTabCallback) -> m SignalHandlerId

-- | Connect a signal handler for the focusTab signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #focusTab callback
--   
onNotebookFocusTab :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookFocusTabCallback) -> m SignalHandlerId

-- | Emitted when focus was moved out.
--   
--   The default bindings for this signal are
--   <kbd>Ctrl</kbd>+<kbd>Tab</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>←</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>→</kbd>,
--   <kbd>Ctrl</kbd>+<kbd>↑</kbd> and
--   <kbd>Ctrl</kbd>+<kbd>↓</kbd>.
type NotebookMoveFocusOutCallback = DirectionType -> IO ()

-- | Connect a signal handler for the moveFocusOut signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #moveFocusOut callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookMoveFocusOut :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookMoveFocusOutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveFocusOut signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #moveFocusOut callback
--   
onNotebookMoveFocusOut :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookMoveFocusOutCallback) -> m SignalHandlerId

-- | the pageAdded signal is emitted in the notebook right after a
--   page is added to the notebook.
type NotebookPageAddedCallback = Widget -> Word32 -> IO ()

-- | Connect a signal handler for the pageAdded signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #pageAdded callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookPageAdded :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookPageAddedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pageAdded signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #pageAdded callback
--   
onNotebookPageAdded :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookPageAddedCallback) -> m SignalHandlerId

-- | the pageRemoved signal is emitted in the notebook right after a
--   page is removed from the notebook.
type NotebookPageRemovedCallback = Widget -> Word32 -> IO ()

-- | Connect a signal handler for the pageRemoved signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #pageRemoved callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookPageRemoved :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookPageRemovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pageRemoved signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #pageRemoved callback
--   
onNotebookPageRemoved :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookPageRemovedCallback) -> m SignalHandlerId

-- | the pageReordered signal is emitted in the notebook right after
--   a page has been reordered.
type NotebookPageReorderedCallback = Widget -> Word32 -> IO ()

-- | Connect a signal handler for the pageReordered signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after notebook #pageReordered callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookPageReordered :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookPageReorderedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pageReordered signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on notebook #pageReordered callback
--   
onNotebookPageReordered :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookPageReorderedCallback) -> m SignalHandlerId

-- | Emitted when the tab should be reordered.
--   
--   The default bindings for this signal are
--   <kbd>Alt</kbd>+<kbd>Home</kbd>,
--   <kbd>Alt</kbd>+<kbd>End</kbd>,
--   <kbd>Alt</kbd>+<kbd>PgUp</kbd>,
--   <kbd>Alt</kbd>+<kbd>PgDn</kbd>,
--   <kbd>Alt</kbd>+<kbd>←</kbd>,
--   <kbd>Alt</kbd>+<kbd>→</kbd>,
--   <kbd>Alt</kbd>+<kbd>↑</kbd> and
--   <kbd>Alt</kbd>+<kbd>↓</kbd>.
type NotebookReorderTabCallback = DirectionType -> Bool -> IO Bool

-- | Connect a signal handler for the reorderTab signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #reorderTab callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookReorderTab :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookReorderTabCallback) -> m SignalHandlerId

-- | Connect a signal handler for the reorderTab signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #reorderTab callback
--   
onNotebookReorderTab :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookReorderTabCallback) -> m SignalHandlerId

-- | Emitted when a page should be selected.
--   
--   The default binding for this signal is <kbd>␣</kbd>.
type NotebookSelectPageCallback = Bool -> IO Bool

-- | Connect a signal handler for the selectPage signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #selectPage callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookSelectPage :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookSelectPageCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectPage signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #selectPage callback
--   
onNotebookSelectPage :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookSelectPageCallback) -> m SignalHandlerId

-- | Emitted when the user or a function changes the current page.
type NotebookSwitchPageCallback = Widget -> Word32 -> IO ()

-- | Connect a signal handler for the switchPage signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after notebook #switchPage callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNotebookSwitchPage :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookSwitchPageCallback) -> m SignalHandlerId

-- | Connect a signal handler for the switchPage signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on notebook #switchPage callback
--   
onNotebookSwitchPage :: (IsNotebook a, MonadIO m) => a -> ((?self :: a) => NotebookSwitchPageCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Notebook.Notebook
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Notebook.Notebook
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Notebook.Notebook
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Notebook.Notebook)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Notebook.Notebook o) => GI.Gtk.Objects.Notebook.IsNotebook o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Notebook.Notebook
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Notebook.Notebook

-- | Base class for platform dialogs that don't use GtkDialog.
--   
--   Native dialogs are used in order to integrate better with a platform,
--   by looking the same as other native applications and supporting
--   platform specific features.
--   
--   The Dialog functions cannot be used on such objects, but we
--   need a similar API in order to drive them. The
--   GtkNativeDialog object is an API that allows you to do this.
--   It allows you to set various common properties on the dialog, as well
--   as show and hide it and get a NativeDialog::response signal
--   when the user finished with the dialog.
--   
--   Note that unlike GtkDialog, GtkNativeDialog objects
--   are not toplevel widgets, and GTK does not keep them alive. It is your
--   responsibility to keep a reference until you are done with the object.
module GI.Gtk.Objects.NativeDialog

-- | Memory-managed wrapper type.
newtype NativeDialog
NativeDialog :: ManagedPtr NativeDialog -> NativeDialog

-- | Type class for types which can be safely cast to NativeDialog,
--   for instance with toNativeDialog.
class (GObject o, IsDescendantOf NativeDialog o) => IsNativeDialog o

-- | Cast to NativeDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toNativeDialog :: (MonadIO m, IsNativeDialog o) => o -> m NativeDialog

-- | Destroys a dialog.
--   
--   When a dialog is destroyed, it will break any references it holds to
--   other objects.
--   
--   If it is visible it will be hidden and any underlying window system
--   resources will be destroyed.
--   
--   Note that this does not release any reference to the object (as
--   opposed to destroying a GtkWindow) because there is no
--   reference from the windowing system to the GtkNativeDialog.
nativeDialogDestroy :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m ()

-- | Returns whether the dialog is modal.
nativeDialogGetModal :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m Bool

-- | Gets the title of the GtkNativeDialog.
nativeDialogGetTitle :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m (Maybe Text)

-- | Fetches the transient parent for this window.
nativeDialogGetTransientFor :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m (Maybe Window)

-- | Determines whether the dialog is visible.
nativeDialogGetVisible :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m Bool

-- | Hides the dialog if it is visible, aborting any interaction.
--   
--   Once this is called the NativeDialog::response signal will
--   *not* be emitted until after the next call to nativeDialogShow.
--   
--   If the dialog is not visible this does nothing.
nativeDialogHide :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m ()

-- | Sets a dialog modal or non-modal.
--   
--   Modal dialogs prevent interaction with other windows in the same
--   application. To keep modal dialogs on top of main application windows,
--   use nativeDialogSetTransientFor to make the dialog transient
--   for the parent; most window managers will then disallow lowering the
--   dialog below the parent.
nativeDialogSetModal :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> Bool -> m ()

-- | Sets the title of the GtkNativeDialog.
nativeDialogSetTitle :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> Text -> m ()

-- | Dialog windows should be set transient for the main application window
--   they were spawned from.
--   
--   This allows window managers to e.g. keep the dialog on top of the main
--   window, or center the dialog over the main window.
--   
--   Passing Nothing for parent unsets the current
--   transient window.
nativeDialogSetTransientFor :: (HasCallStack, MonadIO m, IsNativeDialog a, IsWindow b) => a -> Maybe b -> m ()

-- | Shows the dialog on the display.
--   
--   When the user accepts the state of the dialog the dialog will be
--   automatically hidden and the NativeDialog::response signal will
--   be emitted.
--   
--   Multiple calls while the dialog is visible will be ignored.
nativeDialogShow :: (HasCallStack, MonadIO m, IsNativeDialog a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructNativeDialogModal :: (IsNativeDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get nativeDialog #modal
--   
getNativeDialogModal :: (MonadIO m, IsNativeDialog o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set nativeDialog [ #modal := value ]
--   
setNativeDialogModal :: (MonadIO m, IsNativeDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructNativeDialogTitle :: (IsNativeDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get nativeDialog #title
--   
getNativeDialogTitle :: (MonadIO m, IsNativeDialog o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set nativeDialog [ #title := value ]
--   
setNativeDialogTitle :: (MonadIO m, IsNativeDialog o) => o -> Text -> m ()

-- | Set the value of the “transient-for” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #transientFor
--   
clearNativeDialogTransientFor :: (MonadIO m, IsNativeDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “transient-for” property. This is rarely needed directly, but
--   it is used by new.
constructNativeDialogTransientFor :: (IsNativeDialog o, MonadIO m, IsWindow a) => a -> m (GValueConstruct o)

-- | Get the value of the “transient-for” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get nativeDialog #transientFor
--   
getNativeDialogTransientFor :: (MonadIO m, IsNativeDialog o) => o -> m (Maybe Window)

-- | Set the value of the “transient-for” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set nativeDialog [ #transientFor := value ]
--   
setNativeDialogTransientFor :: (MonadIO m, IsNativeDialog o, IsWindow a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible” property. This is rarely needed directly, but it is
--   used by new.
constructNativeDialogVisible :: (IsNativeDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get nativeDialog #visible
--   
getNativeDialogVisible :: (MonadIO m, IsNativeDialog o) => o -> m Bool

-- | Set the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set nativeDialog [ #visible := value ]
--   
setNativeDialogVisible :: (MonadIO m, IsNativeDialog o) => o -> Bool -> m ()

-- | Emitted when the user responds to the dialog.
--   
--   When this is called the dialog has been hidden.
--   
--   If you call nativeDialogHide before the user responds to the
--   dialog this signal will not be emitted.
type NativeDialogResponseCallback = Int32 -> IO ()

-- | Connect a signal handler for the response signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after nativeDialog #response callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterNativeDialogResponse :: (IsNativeDialog a, MonadIO m) => a -> ((?self :: a) => NativeDialogResponseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the response signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on nativeDialog #response callback
--   
onNativeDialogResponse :: (IsNativeDialog a, MonadIO m) => a -> ((?self :: a) => NativeDialogResponseCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.NativeDialog.NativeDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NativeDialog.NativeDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NativeDialog.NativeDialog
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NativeDialog.NativeDialog)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NativeDialog.NativeDialog o) => GI.Gtk.Objects.NativeDialog.IsNativeDialog o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NativeDialog.NativeDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NativeDialog.NativeDialog

-- | Activates a named action.
--   
--   See widgetClassInstallAction and widgetInsertActionGroup
--   for ways to associate named actions with widgets.
module GI.Gtk.Objects.NamedAction

-- | Memory-managed wrapper type.
newtype NamedAction
NamedAction :: ManagedPtr NamedAction -> NamedAction

-- | Type class for types which can be safely cast to NamedAction,
--   for instance with toNamedAction.
class (GObject o, IsDescendantOf NamedAction o) => IsNamedAction o

-- | Cast to NamedAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toNamedAction :: (MonadIO m, IsNamedAction o) => o -> m NamedAction

-- | Returns the name of the action that will be activated.
namedActionGetActionName :: (HasCallStack, MonadIO m, IsNamedAction a) => a -> m Text

-- | Creates an action that when activated, activates the named action on
--   the widget.
--   
--   It also passes the given arguments to it.
--   
--   See widgetInsertActionGroup for how to add actions to widgets.
namedActionNew :: (HasCallStack, MonadIO m) => Text -> m NamedAction

-- | Construct a GValueConstruct with valid value for the
--   “action-name” property. This is rarely needed directly, but
--   it is used by new.
constructNamedActionActionName :: (IsNamedAction o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “action-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get namedAction #actionName
--   
getNamedActionActionName :: (MonadIO m, IsNamedAction o) => o -> m Text
instance GHC.Classes.Eq GI.Gtk.Objects.NamedAction.NamedAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.NamedAction.NamedAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.NamedAction.NamedAction
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.NamedAction.NamedAction)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.NamedAction.NamedAction o) => GI.Gtk.Objects.NamedAction.IsNamedAction o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.NamedAction.NamedAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.NamedAction.NamedAction

-- | Asks the user for passwords and other information required to mount a
--   volume.
--   
--   GtkMountOperation is needed when mounting volumes: It is an
--   implementation of GMountOperation that can be used with GIO
--   functions for mounting volumes such as
--   fileMountEnclosingVolume, fileMountMountable,
--   volumeMount, mountUnmountWithOperation and others.
--   
--   When necessary, GtkMountOperation shows dialogs to let the
--   user enter passwords, ask questions or show processes blocking
--   unmount.
module GI.Gtk.Objects.MountOperation

-- | Memory-managed wrapper type.
newtype MountOperation
MountOperation :: ManagedPtr MountOperation -> MountOperation

-- | Type class for types which can be safely cast to
--   MountOperation, for instance with toMountOperation.
class (GObject o, IsDescendantOf MountOperation o) => IsMountOperation o

-- | Cast to MountOperation, for types for which this is known to be
--   safe. For general casts, use castTo.
toMountOperation :: (MonadIO m, IsMountOperation o) => o -> m MountOperation

-- | Gets the display on which windows of the GtkMountOperation
--   will be shown.
mountOperationGetDisplay :: (HasCallStack, MonadIO m, IsMountOperation a) => a -> m Display

-- | Gets the transient parent used by the GtkMountOperation.
mountOperationGetParent :: (HasCallStack, MonadIO m, IsMountOperation a) => a -> m (Maybe Window)

-- | Returns whether the GtkMountOperation is currently displaying
--   a window.
mountOperationIsShowing :: (HasCallStack, MonadIO m, IsMountOperation a) => a -> m Bool

-- | Creates a new GtkMountOperation.
mountOperationNew :: (HasCallStack, MonadIO m, IsWindow a) => Maybe a -> m MountOperation

-- | Sets the display to show windows of the GtkMountOperation on.
mountOperationSetDisplay :: (HasCallStack, MonadIO m, IsMountOperation a, IsDisplay b) => a -> b -> m ()

-- | Sets the transient parent for windows shown by the
--   GtkMountOperation.
mountOperationSetParent :: (HasCallStack, MonadIO m, IsMountOperation a, IsWindow b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “display” property. This is rarely needed directly, but it is
--   used by new.
constructMountOperationDisplay :: (IsMountOperation o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mountOperation #display
--   
getMountOperationDisplay :: (MonadIO m, IsMountOperation o) => o -> m Display

-- | Set the value of the “display” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mountOperation [ #display := value ]
--   
setMountOperationDisplay :: (MonadIO m, IsMountOperation o, IsDisplay a) => o -> a -> m ()

-- | Get the value of the “is-showing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mountOperation #isShowing
--   
getMountOperationIsShowing :: (MonadIO m, IsMountOperation o) => o -> m Bool

-- | Set the value of the “parent” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #parent
--   
clearMountOperationParent :: (MonadIO m, IsMountOperation o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “parent” property. This is rarely needed directly, but it is
--   used by new.
constructMountOperationParent :: (IsMountOperation o, MonadIO m, IsWindow a) => a -> m (GValueConstruct o)

-- | Get the value of the “parent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mountOperation #parent
--   
getMountOperationParent :: (MonadIO m, IsMountOperation o) => o -> m (Maybe Window)

-- | Set the value of the “parent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mountOperation [ #parent := value ]
--   
setMountOperationParent :: (MonadIO m, IsMountOperation o, IsWindow a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.MountOperation.MountOperation
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MountOperation.MountOperation
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MountOperation.MountOperation
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MountOperation.MountOperation)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MountOperation.MountOperation o) => GI.Gtk.Objects.MountOperation.IsMountOperation o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MountOperation.MountOperation
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MountOperation.MountOperation

-- | Activates a widget with a mnemonic.
--   
--   This means that widgetMnemonicActivate is called.
module GI.Gtk.Objects.MnemonicAction

-- | Memory-managed wrapper type.
newtype MnemonicAction
MnemonicAction :: ManagedPtr MnemonicAction -> MnemonicAction

-- | Type class for types which can be safely cast to
--   MnemonicAction, for instance with toMnemonicAction.
class (GObject o, IsDescendantOf MnemonicAction o) => IsMnemonicAction o

-- | Cast to MnemonicAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toMnemonicAction :: (MonadIO m, IsMnemonicAction o) => o -> m MnemonicAction

-- | Gets the mnemonic action.
--   
--   This is an action that calls widgetMnemonicActivate on the
--   given widget upon activation.
mnemonicActionGet :: (HasCallStack, MonadIO m) => m MnemonicAction
instance GHC.Classes.Eq GI.Gtk.Objects.MnemonicAction.MnemonicAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MnemonicAction.MnemonicAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MnemonicAction.MnemonicAction
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MnemonicAction.MnemonicAction)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MnemonicAction.MnemonicAction o) => GI.Gtk.Objects.MnemonicAction.IsMnemonicAction o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MnemonicAction.MnemonicAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MnemonicAction.MnemonicAction

-- | GtkMessageDialog presents a dialog with some message text.
--   
--   <picture> <source srcset="messagedialog-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkMessageDialog" src="messagedialog.png"> </picture>
--   
--   It’s simply a convenience widget; you could construct the equivalent
--   of GtkMessageDialog from GtkDialog without too much
--   effort, but GtkMessageDialog saves typing.
--   
--   The easiest way to do a modal message dialog is to use the
--   DialogFlagsModal flag, which will call windowSetModal
--   internally. The dialog will prevent interaction with the parent window
--   until it's hidden or destroyed. You can use the
--   Dialog::response signal to know when the user dismissed the
--   dialog.
--   
--   An example for using a modal dialog:
--   
--   
c code
--   
--   
--   GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL;
--   dialog = gtk_message_dialog_new (parent_window,
--                                    flags,
--                                    GTK_MESSAGE_ERROR,
--                                    GTK_BUTTONS_CLOSE,
--                                    "Error reading “%s”: %s",
--                                    filename,
--                                    g_strerror (errno));
--   // Destroy the dialog when the user responds to it
--   // (e.g. clicks a button)
--   
--   g_signal_connect (dialog, "response",
--                     G_CALLBACK (gtk_window_destroy),
--                     NULL);
--   
--   
--   You might do a non-modal GtkMessageDialog simply by omitting
--   the DialogFlagsModal flag:
--   
--   
c code
--   
--   
--   GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
--   dialog = gtk_message_dialog_new (parent_window,
--                                    flags,
--                                    GTK_MESSAGE_ERROR,
--                                    GTK_BUTTONS_CLOSE,
--                                    "Error reading “%s”: %s",
--                                    filename,
--                                    g_strerror (errno));
--   
--   // Destroy the dialog when the user responds to it
--   // (e.g. clicks a button)
--   g_signal_connect (dialog, "response",
--                     G_CALLBACK (gtk_window_destroy),
--                     NULL);
--   
--   
--   
GtkMessageDialog as GtkBuildable
--   
--   The GtkMessageDialog implementation of the
--   GtkBuildable interface exposes the message area as an
--   internal child with the name “message_area”.
module GI.Gtk.Objects.MessageDialog

-- | Memory-managed wrapper type.
newtype MessageDialog
MessageDialog :: ManagedPtr MessageDialog -> MessageDialog

-- | Type class for types which can be safely cast to MessageDialog,
--   for instance with toMessageDialog.
class (GObject o, IsDescendantOf MessageDialog o) => IsMessageDialog o

-- | Cast to MessageDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toMessageDialog :: (MonadIO m, IsMessageDialog o) => o -> m MessageDialog

-- | Returns the message area of the dialog.
--   
--   This is the box where the dialog’s primary and secondary labels are
--   packed. You can add your own extra content to that box and it will
--   appear below those labels. See dialogGetContentArea for the
--   corresponding function in the parent Dialog.

-- | Deprecated: (Since version 4.10)Use AlertDialog instead
messageDialogGetMessageArea :: (HasCallStack, MonadIO m, IsMessageDialog a) => a -> m Widget

-- | Sets the text of the message dialog.

-- | Deprecated: (Since version 4.10)Use AlertDialog instead
messageDialogSetMarkup :: (HasCallStack, MonadIO m, IsMessageDialog a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “buttons” property. This is rarely needed directly, but it is
--   used by new.
constructMessageDialogButtons :: (IsMessageDialog o, MonadIO m) => ButtonsType -> m (GValueConstruct o)

-- | Get the value of the “message-area” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get messageDialog #messageArea
--   
getMessageDialogMessageArea :: (MonadIO m, IsMessageDialog o) => o -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “message-type” property. This is rarely needed directly, but
--   it is used by new.
constructMessageDialogMessageType :: (IsMessageDialog o, MonadIO m) => MessageType -> m (GValueConstruct o)

-- | Get the value of the “message-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get messageDialog #messageType
--   
getMessageDialogMessageType :: (MonadIO m, IsMessageDialog o) => o -> m MessageType

-- | Set the value of the “message-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set messageDialog [ #messageType := value ]
--   
setMessageDialogMessageType :: (MonadIO m, IsMessageDialog o) => o -> MessageType -> m ()

-- | Set the value of the “secondary-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #secondaryText
--   
clearMessageDialogSecondaryText :: (MonadIO m, IsMessageDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-text” property. This is rarely needed directly,
--   but it is used by new.
constructMessageDialogSecondaryText :: (IsMessageDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “secondary-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get messageDialog #secondaryText
--   
getMessageDialogSecondaryText :: (MonadIO m, IsMessageDialog o) => o -> m (Maybe Text)

-- | Set the value of the “secondary-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set messageDialog [ #secondaryText := value ]
--   
setMessageDialogSecondaryText :: (MonadIO m, IsMessageDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-use-markup” property. This is rarely needed
--   directly, but it is used by new.
constructMessageDialogSecondaryUseMarkup :: (IsMessageDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “secondary-use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get messageDialog #secondaryUseMarkup
--   
getMessageDialogSecondaryUseMarkup :: (MonadIO m, IsMessageDialog o) => o -> m Bool

-- | Set the value of the “secondary-use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set messageDialog [ #secondaryUseMarkup := value ]
--   
setMessageDialogSecondaryUseMarkup :: (MonadIO m, IsMessageDialog o) => o -> Bool -> m ()

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearMessageDialogText :: (MonadIO m, IsMessageDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructMessageDialogText :: (IsMessageDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get messageDialog #text
--   
getMessageDialogText :: (MonadIO m, IsMessageDialog o) => o -> m (Maybe Text)

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set messageDialog [ #text := value ]
--   
setMessageDialogText :: (MonadIO m, IsMessageDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-markup” property. This is rarely needed directly, but it
--   is used by new.
constructMessageDialogUseMarkup :: (IsMessageDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get messageDialog #useMarkup
--   
getMessageDialogUseMarkup :: (MonadIO m, IsMessageDialog o) => o -> m Bool

-- | Set the value of the “use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set messageDialog [ #useMarkup := value ]
--   
setMessageDialogUseMarkup :: (MonadIO m, IsMessageDialog o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.MessageDialog.MessageDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MessageDialog.MessageDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MessageDialog.MessageDialog
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MessageDialog.MessageDialog)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MessageDialog.MessageDialog o) => GI.Gtk.Objects.MessageDialog.IsMessageDialog o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MessageDialog.MessageDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MessageDialog.MessageDialog

-- | Displays a popup when clicked.
--   
--   <picture> <source srcset="menu-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkMenuButton" src="menu-button.png"> </picture>
--   
--   This popup can be provided either as a GtkPopover or as an
--   abstract GMenuModel.
--   
--   The GtkMenuButton widget can show either an icon (set with
--   the MenuButton:iconName property) or a label (set with the
--   MenuButton:label property). If neither is explicitly set, a
--   Image is automatically created, using an arrow image oriented
--   according to MenuButton:direction or the generic
--   “open-menu-symbolic” icon if the direction is not set.
--   
--   The positioning of the popup is determined by the
--   MenuButton:direction property of the menu button.
--   
--   For menus, the Widget:halign and Widget:valign
--   properties of the menu are also taken into account. For example, when
--   the direction is ArrowTypeDown and the horizontal alignment is
--   AlignStart, the menu will be positioned below the button, with
--   the starting edge (depending on the text direction) of the menu
--   aligned with the starting edge of the button. If there is not enough
--   space below the button, the menu is popped up above the button
--   instead. If the alignment would move part of the menu offscreen, it is
--   “pushed in”.
--   
--   | | start | center | end | | - | --- | --- | --- | | down | | |
--   | | up | | | | | left | | | | | right | | | |
--   
--   
CSS nodes
--   
--   
--   menubutton
--   ╰── button.toggle
--       ╰── <content>
--            ╰── [arrow]
--   
--   
--   GtkMenuButton has a single CSS node with name
--   menubutton which contains a button node with a
--   .toggle style class.
--   
--   If the button contains an icon, it will have the
--   .image-button style class, if it contains text, it will have
--   .text-button style class. If an arrow is visible in addition
--   to an icon, text or a custom child, it will also have
--   .arrow-button style class.
--   
--   Inside the toggle button content, there is an arrow node for
--   the indicator, which will carry one of the .none,
--   .up, .down, .left or .right style
--   classes to indicate the direction that the menu will appear in. The
--   CSS is expected to provide a suitable image for each of these cases
--   using the -gtk-icon-source property.
--   
--   Optionally, the menubutton node can carry the
--   .circular style class to request a round appearance.
--   
--   
Accessibility
--   
--   GtkMenuButton uses the AccessibleRoleButton role.
module GI.Gtk.Objects.MenuButton

-- | Memory-managed wrapper type.
newtype MenuButton
MenuButton :: ManagedPtr MenuButton -> MenuButton

-- | Type class for types which can be safely cast to MenuButton,
--   for instance with toMenuButton.
class (GObject o, IsDescendantOf MenuButton o) => IsMenuButton o

-- | Cast to MenuButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toMenuButton :: (MonadIO m, IsMenuButton o) => o -> m MenuButton

-- | Returns whether the menu button is active.
--   
--   Since: 4.10
menuButtonGetActive :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m Bool

-- | Gets whether to show a dropdown arrow even when using an icon or a
--   custom child.
--   
--   Since: 4.4
menuButtonGetAlwaysShowArrow :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m Bool

-- | Retrieves whether the button can be smaller than the natural size of
--   its contents.
--   
--   Since: 4.12
menuButtonGetCanShrink :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m Bool

-- | Gets the child widget of menuButton.
--   
--   Since: 4.6
menuButtonGetChild :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m (Maybe Widget)

-- | Returns the direction the popup will be pointing at when popped up.
menuButtonGetDirection :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m ArrowType

-- | Returns whether the button has a frame.
menuButtonGetHasFrame :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m Bool

-- | Gets the name of the icon shown in the button.
menuButtonGetIconName :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m (Maybe Text)

-- | Gets the label shown in the button
menuButtonGetLabel :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m (Maybe Text)

-- | Returns the GMenuModel used to generate the popup.
menuButtonGetMenuModel :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m (Maybe MenuModel)

-- | Returns the GtkPopover that pops out of the button.
--   
--   If the button is not using a GtkPopover, this function
--   returns Nothing.
menuButtonGetPopover :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m (Maybe Popover)

-- | Returns whether the menu button acts as a primary menu.
--   
--   Since: 4.4
menuButtonGetPrimary :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m Bool

-- | Returns whether an embedded underline in the text indicates a
--   mnemonic.
menuButtonGetUseUnderline :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m Bool

-- | Creates a new GtkMenuButton widget with downwards-pointing
--   arrow as the only child.
--   
--   You can replace the child widget with another GtkWidget
--   should you wish to.
menuButtonNew :: (HasCallStack, MonadIO m) => m MenuButton

-- | Dismiss the menu.
menuButtonPopdown :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m ()

-- | Pop up the menu.
menuButtonPopup :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> m ()

-- | Sets whether the menu button is active.
--   
--   Since: 4.10
menuButtonSetActive :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Bool -> m ()

-- | Sets whether to show a dropdown arrow even when using an icon or a
--   custom child.
--   
--   Since: 4.4
menuButtonSetAlwaysShowArrow :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Bool -> m ()

-- | Sets whether the button size can be smaller than the natural size of
--   its contents.
--   
--   For text buttons, setting canShrink to true will
--   ellipsize the label.
--   
--   For icon buttons, this function has no effect.
--   
--   Since: 4.12
menuButtonSetCanShrink :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Bool -> m ()

-- | Sets the child widget of menuButton.
--   
--   Setting a child resets MenuButton:label and
--   MenuButton:iconName.
--   
--   If MenuButton:alwaysShowArrow is set to TRUE and
--   MenuButton:direction is not GTK_ARROW_NONE, a dropdown
--   arrow will be shown next to the child.
--   
--   Since: 4.6
menuButtonSetChild :: (HasCallStack, MonadIO m, IsMenuButton a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets func to be called when a popup is about to be
--   shown.
--   
--   func should use one of
--   
--   
--   
- menuButtonSetPopover
--   
- menuButtonSetMenuModel
--   
--   
--   to set a popup for menuButton. If func
--   is non-Nothing, menuButton will always be
--   sensitive.
--   
--   Using this function will not reset the menu widget attached to
--   menuButton. Instead, this can be done manually in
--   func.
menuButtonSetCreatePopupFunc :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Maybe MenuButtonCreatePopupFunc -> m ()

-- | Sets the direction in which the popup will be popped up.
--   
--   If the button is automatically populated with an arrow icon, its
--   direction will be changed to match.
--   
--   If the does not fit in the available space in the given direction, GTK
--   will its best to keep it inside the screen and fully visible.
--   
--   If you pass ArrowTypeNone for a direction, the
--   popup will behave as if you passed ArrowTypeDown (although you
--   won’t see any arrows).
menuButtonSetDirection :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> ArrowType -> m ()

-- | Sets the style of the button.
menuButtonSetHasFrame :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Bool -> m ()

-- | Sets the name of an icon to show inside the menu button.
--   
--   Setting icon name resets MenuButton:label and
--   MenuButton:child.
--   
--   If MenuButton:alwaysShowArrow is set to TRUE and
--   MenuButton:direction is not GTK_ARROW_NONE, a dropdown
--   arrow will be shown next to the icon.
menuButtonSetIconName :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Text -> m ()

-- | Sets the label to show inside the menu button.
--   
--   Setting a label resets MenuButton:iconName and
--   MenuButton:child.
--   
--   If MenuButton:direction is not GTK_ARROW_NONE, a
--   dropdown arrow will be shown next to the label.
menuButtonSetLabel :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Text -> m ()

-- | Sets the GMenuModel from which the popup will be constructed.
--   
--   If menuModel is Nothing, the button is
--   disabled.
--   
--   A Popover will be created from the menu model with
--   popoverMenuNewFromModel. Actions will be connected as
--   documented for this function.
--   
--   If MenuButton:popover is already set, it will be dissociated
--   from the menuButton, and the property is set to
--   Nothing.
menuButtonSetMenuModel :: (HasCallStack, MonadIO m, IsMenuButton a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets the GtkPopover that will be popped up when the
--   menuButton is clicked.
--   
--   If popover is Nothing, the button is disabled.
--   
--   If MenuButton:menuModel is set, the menu model is dissociated
--   from the menuButton, and the property is set to
--   Nothing.
menuButtonSetPopover :: (HasCallStack, MonadIO m, IsMenuButton a, IsPopover b) => a -> Maybe b -> m ()

-- | Sets whether menu button acts as a primary menu.
--   
--   Primary menus can be opened with the <kbd>F10</kbd> key.
--   
--   Since: 4.4
menuButtonSetPrimary :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Bool -> m ()

-- | If true, an underline in the text indicates a mnemonic.
menuButtonSetUseUnderline :: (HasCallStack, MonadIO m, IsMenuButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructMenuButtonActive :: (IsMenuButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #active
--   
getMenuButtonActive :: (MonadIO m, IsMenuButton o) => o -> m Bool

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #active := value ]
--   
setMenuButtonActive :: (MonadIO m, IsMenuButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “always-show-arrow” property. This is rarely needed directly,
--   but it is used by new.
constructMenuButtonAlwaysShowArrow :: (IsMenuButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “always-show-arrow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #alwaysShowArrow
--   
getMenuButtonAlwaysShowArrow :: (MonadIO m, IsMenuButton o) => o -> m Bool

-- | Set the value of the “always-show-arrow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #alwaysShowArrow := value ]
--   
setMenuButtonAlwaysShowArrow :: (MonadIO m, IsMenuButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “can-shrink” property. This is rarely needed directly, but it
--   is used by new.
constructMenuButtonCanShrink :: (IsMenuButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “can-shrink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #canShrink
--   
getMenuButtonCanShrink :: (MonadIO m, IsMenuButton o) => o -> m Bool

-- | Set the value of the “can-shrink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #canShrink := value ]
--   
setMenuButtonCanShrink :: (MonadIO m, IsMenuButton o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearMenuButtonChild :: (MonadIO m, IsMenuButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructMenuButtonChild :: (IsMenuButton o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #child
--   
getMenuButtonChild :: (MonadIO m, IsMenuButton o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #child := value ]
--   
setMenuButtonChild :: (MonadIO m, IsMenuButton o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “direction” property. This is rarely needed directly, but it
--   is used by new.
constructMenuButtonDirection :: (IsMenuButton o, MonadIO m) => ArrowType -> m (GValueConstruct o)

-- | Get the value of the “direction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #direction
--   
getMenuButtonDirection :: (MonadIO m, IsMenuButton o) => o -> m ArrowType

-- | Set the value of the “direction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #direction := value ]
--   
setMenuButtonDirection :: (MonadIO m, IsMenuButton o) => o -> ArrowType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-frame” property. This is rarely needed directly, but it
--   is used by new.
constructMenuButtonHasFrame :: (IsMenuButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #hasFrame
--   
getMenuButtonHasFrame :: (MonadIO m, IsMenuButton o) => o -> m Bool

-- | Set the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #hasFrame := value ]
--   
setMenuButtonHasFrame :: (MonadIO m, IsMenuButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructMenuButtonIconName :: (IsMenuButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #iconName
--   
getMenuButtonIconName :: (MonadIO m, IsMenuButton o) => o -> m (Maybe Text)

-- | Set the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #iconName := value ]
--   
setMenuButtonIconName :: (MonadIO m, IsMenuButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label” property. This is rarely needed directly, but it is
--   used by new.
constructMenuButtonLabel :: (IsMenuButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #label
--   
getMenuButtonLabel :: (MonadIO m, IsMenuButton o) => o -> m (Maybe Text)

-- | Set the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #label := value ]
--   
setMenuButtonLabel :: (MonadIO m, IsMenuButton o) => o -> Text -> m ()

-- | Set the value of the “menu-model” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #menuModel
--   
clearMenuButtonMenuModel :: (MonadIO m, IsMenuButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-model” property. This is rarely needed directly, but it
--   is used by new.
constructMenuButtonMenuModel :: (IsMenuButton o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #menuModel
--   
getMenuButtonMenuModel :: (MonadIO m, IsMenuButton o) => o -> m (Maybe MenuModel)

-- | Set the value of the “menu-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #menuModel := value ]
--   
setMenuButtonMenuModel :: (MonadIO m, IsMenuButton o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “popover” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #popover
--   
clearMenuButtonPopover :: (MonadIO m, IsMenuButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “popover” property. This is rarely needed directly, but it is
--   used by new.
constructMenuButtonPopover :: (IsMenuButton o, MonadIO m, IsPopover a) => a -> m (GValueConstruct o)

-- | Get the value of the “popover” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #popover
--   
getMenuButtonPopover :: (MonadIO m, IsMenuButton o) => o -> m (Maybe Popover)

-- | Set the value of the “popover” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #popover := value ]
--   
setMenuButtonPopover :: (MonadIO m, IsMenuButton o, IsPopover a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary” property. This is rarely needed directly, but it is
--   used by new.
constructMenuButtonPrimary :: (IsMenuButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “primary” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #primary
--   
getMenuButtonPrimary :: (MonadIO m, IsMenuButton o) => o -> m Bool

-- | Set the value of the “primary” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #primary := value ]
--   
setMenuButtonPrimary :: (MonadIO m, IsMenuButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-underline” property. This is rarely needed directly, but
--   it is used by new.
constructMenuButtonUseUnderline :: (IsMenuButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get menuButton #useUnderline
--   
getMenuButtonUseUnderline :: (MonadIO m, IsMenuButton o) => o -> m Bool

-- | Set the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set menuButton [ #useUnderline := value ]
--   
setMenuButtonUseUnderline :: (MonadIO m, IsMenuButton o) => o -> Bool -> m ()

-- | Emitted to when the menu button is activated.
--   
--   The ::activate signal on GtkMenuButton is an action
--   signal and emitting it causes the button to pop up its menu.
--   
--   Since: 4.4
type MenuButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after menuButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterMenuButtonActivate :: (IsMenuButton a, MonadIO m) => a -> ((?self :: a) => MenuButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on menuButton #activate callback
--   
onMenuButtonActivate :: (IsMenuButton a, MonadIO m) => a -> ((?self :: a) => MenuButtonActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.MenuButton.MenuButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MenuButton.MenuButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MenuButton.MenuButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MenuButton.MenuButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MenuButton.MenuButton o) => GI.Gtk.Objects.MenuButton.IsMenuButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MenuButton.MenuButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MenuButton.MenuButton

-- | Shows controls for video playback.
--   
--   <picture> <source srcset="media-controls-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkMediaControls" src="media-controls.png"> </picture>
--   
--   Usually, GtkMediaControls is used as part of Video.
module GI.Gtk.Objects.MediaControls

-- | Memory-managed wrapper type.
newtype MediaControls
MediaControls :: ManagedPtr MediaControls -> MediaControls

-- | Type class for types which can be safely cast to MediaControls,
--   for instance with toMediaControls.
class (GObject o, IsDescendantOf MediaControls o) => IsMediaControls o

-- | Cast to MediaControls, for types for which this is known to be
--   safe. For general casts, use castTo.
toMediaControls :: (MonadIO m, IsMediaControls o) => o -> m MediaControls

-- | Gets the media stream managed by controls or
--   Nothing if none.
mediaControlsGetMediaStream :: (HasCallStack, MonadIO m, IsMediaControls a) => a -> m (Maybe MediaStream)

-- | Creates a new GtkMediaControls managing the
--   stream passed to it.
mediaControlsNew :: (HasCallStack, MonadIO m, IsMediaStream a) => Maybe a -> m MediaControls

-- | Sets the stream that is controlled by controls.
mediaControlsSetMediaStream :: (HasCallStack, MonadIO m, IsMediaControls a, IsMediaStream b) => a -> Maybe b -> m ()

-- | Set the value of the “media-stream” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #mediaStream
--   
clearMediaControlsMediaStream :: (MonadIO m, IsMediaControls o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “media-stream” property. This is rarely needed directly, but
--   it is used by new.
constructMediaControlsMediaStream :: (IsMediaControls o, MonadIO m, IsMediaStream a) => a -> m (GValueConstruct o)

-- | Get the value of the “media-stream” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mediaControls #mediaStream
--   
getMediaControlsMediaStream :: (MonadIO m, IsMediaControls o) => o -> m (Maybe MediaStream)

-- | Set the value of the “media-stream” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mediaControls [ #mediaStream := value ]
--   
setMediaControlsMediaStream :: (MonadIO m, IsMediaControls o, IsMediaStream a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.MediaControls.MediaControls
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MediaControls.MediaControls
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MediaControls.MediaControls
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MediaControls.MediaControls)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MediaControls.MediaControls o) => GI.Gtk.Objects.MediaControls.IsMediaControls o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MediaControls.MediaControls
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MediaControls.MediaControls

-- | A list model that maps the items in another model to different items.
--   
--   GtkMapListModel uses a
--   [callbackgtk.MapListModelMapFunc].
--   
--   Example: Create a list of GtkEventControllers
--   
--   
c code
--   
--   
--   static gpointer
--   map_to_controllers (gpointer widget,
--                       gpointer data)
--   {
--     gpointer result = gtk_widget_observe_controllers (widget);
--     g_object_unref (widget);
--     return result;
--   }
--   
--   widgets = gtk_widget_observe_children (widget);
--   
--   controllers = gtk_map_list_model_new (widgets,
--                                         map_to_controllers,
--                                         NULL, NULL);
--   
--   model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER,
--                                       controllers);
--   
--   
--   GtkMapListModel will attempt to discard the mapped objects as
--   soon as they are no longer needed and recreate them if necessary.
--   
--   GtkMapListModel passes through sections from the underlying
--   model.
module GI.Gtk.Objects.MapListModel

-- | Memory-managed wrapper type.
newtype MapListModel
MapListModel :: ManagedPtr MapListModel -> MapListModel

-- | Type class for types which can be safely cast to MapListModel,
--   for instance with toMapListModel.
class (GObject o, IsDescendantOf MapListModel o) => IsMapListModel o

-- | Cast to MapListModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toMapListModel :: (MonadIO m, IsMapListModel o) => o -> m MapListModel

-- | Gets the model that is currently being mapped or Nothing if
--   none.
mapListModelGetModel :: (HasCallStack, MonadIO m, IsMapListModel a) => a -> m (Maybe ListModel)

-- | Checks if a map function is currently set on self.
mapListModelHasMap :: (HasCallStack, MonadIO m, IsMapListModel a) => a -> m Bool

-- | Creates a new GtkMapListModel for the given arguments.
mapListModelNew :: (HasCallStack, MonadIO m, IsListModel a) => Maybe a -> Maybe MapListModelMapFunc -> m MapListModel

-- | Sets the function used to map items.
--   
--   The function will be called whenever an item needs to be mapped and
--   must return the item to use for the given input item.
--   
--   Note that GtkMapListModel may call this function multiple
--   times on the same item, because it may delete items it doesn't need
--   anymore.
--   
--   GTK makes no effort to ensure that mapFunc conforms to
--   the item type of self. It assumes that the caller
--   knows what they are doing and the map function returns items of the
--   appropriate type.
mapListModelSetMapFunc :: (HasCallStack, MonadIO m, IsMapListModel a) => a -> Maybe MapListModelMapFunc -> m ()

-- | Sets the model to be mapped.
--   
--   GTK makes no effort to ensure that model conforms to
--   the item type expected by the map function. It assumes that the caller
--   knows what they are doing and have set up an appropriate map function.
mapListModelSetModel :: (HasCallStack, MonadIO m, IsMapListModel a, IsListModel b) => a -> Maybe b -> m ()

-- | Get the value of the “has-map” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mapListModel #hasMap
--   
getMapListModelHasMap :: (MonadIO m, IsMapListModel o) => o -> m Bool

-- | Get the value of the “item-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mapListModel #itemType
--   
getMapListModelItemType :: (MonadIO m, IsMapListModel o) => o -> m GType

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearMapListModelModel :: (MonadIO m, IsMapListModel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructMapListModelModel :: (IsMapListModel o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mapListModel #model
--   
getMapListModelModel :: (MonadIO m, IsMapListModel o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set mapListModel [ #model := value ]
--   
setMapListModelModel :: (MonadIO m, IsMapListModel o, IsListModel a) => o -> a -> m ()

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get mapListModel #nItems
--   
getMapListModelNItems :: (MonadIO m, IsMapListModel o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.MapListModel.MapListModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.MapListModel.MapListModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.MapListModel.MapListModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.MapListModel.MapListModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.MapListModel.MapListModel o) => GI.Gtk.Objects.MapListModel.IsMapListModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.MapListModel.MapListModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.MapListModel.MapListModel

-- | GtkLockButton is a widget to obtain and revoke authorizations
--   needed to operate the controls.
--   
--   <picture> <source srcset="lockbutton-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkLockButton" src="lockbutton.png"> </picture>
--   
--   It is typically used in preference dialogs or control panels.
--   
--   The required authorization is represented by a GPermission
--   object. Concrete implementations of GPermission may use
--   PolicyKit or some other authorization framework. To obtain a
--   PolicyKit-based GPermission, use
--   polkit_permission_new().
--   
--   If the user is not currently allowed to perform the action, but can
--   obtain the permission, the widget looks like this:
--   
--   <picture> <source srcset="lockbutton-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An locked
--   GtkLockButton" src="lockbutton.png"> </picture>
--   
--   and the user can click the button to request the permission. Depending
--   on the platform, this may pop up an authentication dialog or ask the
--   user to authenticate in some other way. Once the user has obtained the
--   permission, the widget changes to this:
--   
--   <picture> <source srcset="lockbutton-unlocked-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An unlocked
--   GtkLockButton" src="lockbutton-unlocked.png"> </picture>
--   
--   and the permission can be dropped again by clicking the button. If the
--   user is not able to obtain the permission at all, the widget looks
--   like this:
--   
--   <picture> <source srcset="lockbutton-sorry-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An unobtainable
--   GtkLockButton" src="lockbutton-sorry.png"> </picture>
--   
--   If the user has the permission and cannot drop it, the button is
--   hidden.
--   
--   The text (and tooltips) that are shown in the various cases can be
--   adjusted with the LockButton:textLock,
--   LockButton:textUnlock, LockButton:tooltipLock,
--   LockButton:tooltipUnlock and
--   LockButton:tooltipNotAuthorized properties.
module GI.Gtk.Objects.LockButton

-- | Memory-managed wrapper type.
newtype LockButton
LockButton :: ManagedPtr LockButton -> LockButton

-- | Type class for types which can be safely cast to LockButton,
--   for instance with toLockButton.
class (GObject o, IsDescendantOf LockButton o) => IsLockButton o

-- | Cast to LockButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toLockButton :: (MonadIO m, IsLockButton o) => o -> m LockButton

-- | Obtains the GPermission object that controls
--   button.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
lockButtonGetPermission :: (HasCallStack, MonadIO m, IsLockButton a) => a -> m (Maybe Permission)

-- | Creates a new lock button which reflects the
--   permission.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
lockButtonNew :: (HasCallStack, MonadIO m, IsPermission a) => Maybe a -> m LockButton

-- | Sets the GPermission object that controls
--   button.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
lockButtonSetPermission :: (HasCallStack, MonadIO m, IsLockButton a, IsPermission b) => a -> Maybe b -> m ()

-- | Set the value of the “permission” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #permission
--   
clearLockButtonPermission :: (MonadIO m, IsLockButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “permission” property. This is rarely needed directly, but it
--   is used by new.
constructLockButtonPermission :: (IsLockButton o, MonadIO m, IsPermission a) => a -> m (GValueConstruct o)

-- | Get the value of the “permission” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get lockButton #permission
--   
getLockButtonPermission :: (MonadIO m, IsLockButton o) => o -> m (Maybe Permission)

-- | Set the value of the “permission” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set lockButton [ #permission := value ]
--   
setLockButtonPermission :: (MonadIO m, IsLockButton o, IsPermission a) => o -> a -> m ()

-- | Set the value of the “text-lock” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #textLock
--   
clearLockButtonTextLock :: (MonadIO m, IsLockButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-lock” property. This is rarely needed directly, but it
--   is used by new.
constructLockButtonTextLock :: (IsLockButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text-lock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get lockButton #textLock
--   
getLockButtonTextLock :: (MonadIO m, IsLockButton o) => o -> m (Maybe Text)

-- | Set the value of the “text-lock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set lockButton [ #textLock := value ]
--   
setLockButtonTextLock :: (MonadIO m, IsLockButton o) => o -> Text -> m ()

-- | Set the value of the “text-unlock” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #textUnlock
--   
clearLockButtonTextUnlock :: (MonadIO m, IsLockButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-unlock” property. This is rarely needed directly, but
--   it is used by new.
constructLockButtonTextUnlock :: (IsLockButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text-unlock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get lockButton #textUnlock
--   
getLockButtonTextUnlock :: (MonadIO m, IsLockButton o) => o -> m (Maybe Text)

-- | Set the value of the “text-unlock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set lockButton [ #textUnlock := value ]
--   
setLockButtonTextUnlock :: (MonadIO m, IsLockButton o) => o -> Text -> m ()

-- | Set the value of the “tooltip-lock” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #tooltipLock
--   
clearLockButtonTooltipLock :: (MonadIO m, IsLockButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-lock” property. This is rarely needed directly, but
--   it is used by new.
constructLockButtonTooltipLock :: (IsLockButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “tooltip-lock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get lockButton #tooltipLock
--   
getLockButtonTooltipLock :: (MonadIO m, IsLockButton o) => o -> m (Maybe Text)

-- | Set the value of the “tooltip-lock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set lockButton [ #tooltipLock := value ]
--   
setLockButtonTooltipLock :: (MonadIO m, IsLockButton o) => o -> Text -> m ()

-- | Set the value of the “tooltip-not-authorized” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #tooltipNotAuthorized
--   
clearLockButtonTooltipNotAuthorized :: (MonadIO m, IsLockButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-not-authorized” property. This is rarely needed
--   directly, but it is used by new.
constructLockButtonTooltipNotAuthorized :: (IsLockButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “tooltip-not-authorized” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get lockButton #tooltipNotAuthorized
--   
getLockButtonTooltipNotAuthorized :: (MonadIO m, IsLockButton o) => o -> m (Maybe Text)

-- | Set the value of the “tooltip-not-authorized” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set lockButton [ #tooltipNotAuthorized := value ]
--   
setLockButtonTooltipNotAuthorized :: (MonadIO m, IsLockButton o) => o -> Text -> m ()

-- | Set the value of the “tooltip-unlock” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #tooltipUnlock
--   
clearLockButtonTooltipUnlock :: (MonadIO m, IsLockButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-unlock” property. This is rarely needed directly,
--   but it is used by new.
constructLockButtonTooltipUnlock :: (IsLockButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “tooltip-unlock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get lockButton #tooltipUnlock
--   
getLockButtonTooltipUnlock :: (MonadIO m, IsLockButton o) => o -> m (Maybe Text)

-- | Set the value of the “tooltip-unlock” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set lockButton [ #tooltipUnlock := value ]
--   
setLockButtonTooltipUnlock :: (MonadIO m, IsLockButton o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.LockButton.LockButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.LockButton.LockButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.LockButton.LockButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.LockButton.LockButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.LockButton.LockButton o) => GI.Gtk.Objects.LockButton.IsLockButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.LockButton.LockButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.LockButton.LockButton

-- | Presents a large dynamic list of items.
--   
--   GtkListView uses its factory to generate one row widget for
--   each visible item and shows them in a linear display, either
--   vertically or horizontally.
--   
--   The ListView:showSeparators property offers a simple way to
--   display separators between the rows.
--   
--   GtkListView allows the user to select items according to the
--   selection characteristics of the model. For models that allow multiple
--   selected items, it is possible to turn on _rubberband selection_,
--   using ListView:enableRubberband.
--   
--   If you need multiple columns with headers, see ColumnView.
--   
--   To learn more about the list widget framework, see the
--   overview.
--   
--   An example of using GtkListView:
--   
--   
c code
--   
--   
--   static void
--   setup_listitem_cb (GtkListItemFactory *factory,
--                      GtkListItem        *list_item)
--   {
--     GtkWidget *image;
--   
--     image = gtk_image_new ();
--     gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
--     gtk_list_item_set_child (list_item, image);
--   }
--   
--   static void
--   bind_listitem_cb (GtkListItemFactory *factory,
--                     GtkListItem        *list_item)
--   {
--     GtkWidget *image;
--     GAppInfo *app_info;
--   
--     image = gtk_list_item_get_child (list_item);
--     app_info = gtk_list_item_get_item (list_item);
--     gtk_image_set_from_gicon (GTK_IMAGE (image), g_app_info_get_icon (app_info));
--   }
--   
--   static void
--   activate_cb (GtkListView  *list,
--                guint         position,
--                gpointer      unused)
--   {
--     GAppInfo *app_info;
--   
--     app_info = g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (list)), position);
--     g_app_info_launch (app_info, NULL, NULL, NULL);
--     g_object_unref (app_info);
--   }
--   
--   ...
--   
--     model = create_application_list ();
--   
--     factory = gtk_signal_list_item_factory_new ();
--     g_signal_connect (factory, "setup", G_CALLBACK (setup_listitem_cb), NULL);
--     g_signal_connect (factory, "bind", G_CALLBACK (bind_listitem_cb), NULL);
--   
--     list = gtk_list_view_new (GTK_SELECTION_MODEL (gtk_single_selection_new (model)), factory);
--   
--     g_signal_connect (list, "activate", G_CALLBACK (activate_cb), NULL);
--   
--     gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), list);
--   
--   
--   
Actions
--   
--   GtkListView defines a set of built-in actions:
--   
--   
--   
- list.activate-item activates the item at given position
--   by emitting the ListView::activate signal.
--   
--   
--   
CSS nodes
--   
--   
--   listview[.separators][.rich-list][.navigation-sidebar][.data-table]
--   ├── row[.activatable]
--   │
--   ├── row[.activatable]
--   │
--   ┊
--   ╰── [rubberband]
--   
--   
--   GtkListView uses a single CSS node named listview.
--   It may carry the .separators style class, when
--   ListView:showSeparators property is set. Each child widget uses
--   a single CSS node named row. If the
--   ListItem:activatable property is set, the corresponding row
--   will have the .activatable style class. For rubberband
--   selection, a node with name rubberband is used.
--   
--   The main listview node may also carry style classes to select the
--   style of list presentation: .rich-list, .navigation-sidebar or
--   .data-table.
--   
--   
Accessibility
--   
--   GtkListView uses the AccessibleRoleList role, and the
--   list items use the AccessibleRoleListItem role.
module GI.Gtk.Objects.ListView

-- | Memory-managed wrapper type.
newtype ListView
ListView :: ManagedPtr ListView -> ListView

-- | Type class for types which can be safely cast to ListView, for
--   instance with toListView.
class (GObject o, IsDescendantOf ListView o) => IsListView o

-- | Cast to ListView, for types for which this is known to be safe.
--   For general casts, use castTo.
toListView :: (MonadIO m, IsListView o) => o -> m ListView

-- | Returns whether rows can be selected by dragging with the mouse.
listViewGetEnableRubberband :: (HasCallStack, MonadIO m, IsListView a) => a -> m Bool

-- | Gets the factory that's currently used to populate list items.
listViewGetFactory :: (HasCallStack, MonadIO m, IsListView a) => a -> m (Maybe ListItemFactory)

-- | Gets the factory that's currently used to populate section headers.
--   
--   Since: 4.12
listViewGetHeaderFactory :: (HasCallStack, MonadIO m, IsListView a) => a -> m (Maybe ListItemFactory)

-- | Gets the model that's currently used to read the items displayed.
listViewGetModel :: (HasCallStack, MonadIO m, IsListView a) => a -> m (Maybe SelectionModel)

-- | Returns whether the listview should show separators between rows.
listViewGetShowSeparators :: (HasCallStack, MonadIO m, IsListView a) => a -> m Bool

-- | Returns whether rows will be activated on single click and selected on
--   hover.
listViewGetSingleClickActivate :: (HasCallStack, MonadIO m, IsListView a) => a -> m Bool

-- | Gets the behavior set for the <kbd>Tab</kbd> key.
--   
--   Since: 4.12
listViewGetTabBehavior :: (HasCallStack, MonadIO m, IsListView a) => a -> m ListTabBehavior

-- | Creates a new GtkListView that uses the given
--   factory for mapping items to widgets.
--   
--   The function takes ownership of the arguments, so you can write code
--   like
--   
--   
c code
--   
--   
--   list_view = gtk_list_view_new (create_model (),
--     gtk_builder_list_item_factory_new_from_resource ("/resource.ui"));
--   
listViewNew :: (HasCallStack, MonadIO m, IsSelectionModel a, IsListItemFactory b) => Maybe a -> Maybe b -> m ListView

-- | Scrolls to the item at the given position and performs the actions
--   specified in flags.
--   
--   This function works no matter if the listview is shown or focused. If
--   it isn't, then the changes will take effect once that happens.
--   
--   Since: 4.12
listViewScrollTo :: (HasCallStack, MonadIO m, IsListView a) => a -> Word32 -> [ListScrollFlags] -> Maybe ScrollInfo -> m ()

-- | Sets whether selections can be changed by dragging with the mouse.
listViewSetEnableRubberband :: (HasCallStack, MonadIO m, IsListView a) => a -> Bool -> m ()

-- | Sets the GtkListItemFactory to use for populating list items.
listViewSetFactory :: (HasCallStack, MonadIO m, IsListView a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the GtkListItemFactory to use for populating the
--   ListHeader objects used in section headers.
--   
--   If this factory is set to NULL, the list will not show
--   section headers.
--   
--   Since: 4.12
listViewSetHeaderFactory :: (HasCallStack, MonadIO m, IsListView a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the model to use.
--   
--   This must be a SelectionModel to use.
listViewSetModel :: (HasCallStack, MonadIO m, IsListView a, IsSelectionModel b) => a -> Maybe b -> m ()

-- | Sets whether the listview should show separators between rows.
listViewSetShowSeparators :: (HasCallStack, MonadIO m, IsListView a) => a -> Bool -> m ()

-- | Sets whether rows should be activated on single click and selected on
--   hover.
listViewSetSingleClickActivate :: (HasCallStack, MonadIO m, IsListView a) => a -> Bool -> m ()

-- | Sets the <kbd>Tab</kbd> key behavior.
--   
--   This influences how the <kbd>Tab</kbd> and
--   <kbd>Shift</kbd>+<kbd>Tab</kbd> keys move the
--   focus in the listview.
--   
--   Since: 4.12
listViewSetTabBehavior :: (HasCallStack, MonadIO m, IsListView a) => a -> ListTabBehavior -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-rubberband” property. This is rarely needed directly,
--   but it is used by new.
constructListViewEnableRubberband :: (IsListView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-rubberband” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #enableRubberband
--   
getListViewEnableRubberband :: (MonadIO m, IsListView o) => o -> m Bool

-- | Set the value of the “enable-rubberband” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #enableRubberband := value ]
--   
setListViewEnableRubberband :: (MonadIO m, IsListView o) => o -> Bool -> m ()

-- | Set the value of the “factory” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #factory
--   
clearListViewFactory :: (MonadIO m, IsListView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “factory” property. This is rarely needed directly, but it is
--   used by new.
constructListViewFactory :: (IsListView o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #factory
--   
getListViewFactory :: (MonadIO m, IsListView o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #factory := value ]
--   
setListViewFactory :: (MonadIO m, IsListView o, IsListItemFactory a) => o -> a -> m ()

-- | Set the value of the “header-factory” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #headerFactory
--   
clearListViewHeaderFactory :: (MonadIO m, IsListView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “header-factory” property. This is rarely needed directly,
--   but it is used by new.
constructListViewHeaderFactory :: (IsListView o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “header-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #headerFactory
--   
getListViewHeaderFactory :: (MonadIO m, IsListView o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “header-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #headerFactory := value ]
--   
setListViewHeaderFactory :: (MonadIO m, IsListView o, IsListItemFactory a) => o -> a -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearListViewModel :: (MonadIO m, IsListView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructListViewModel :: (IsListView o, MonadIO m, IsSelectionModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #model
--   
getListViewModel :: (MonadIO m, IsListView o) => o -> m (Maybe SelectionModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #model := value ]
--   
setListViewModel :: (MonadIO m, IsListView o, IsSelectionModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-separators” property. This is rarely needed directly,
--   but it is used by new.
constructListViewShowSeparators :: (IsListView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #showSeparators
--   
getListViewShowSeparators :: (MonadIO m, IsListView o) => o -> m Bool

-- | Set the value of the “show-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #showSeparators := value ]
--   
setListViewShowSeparators :: (MonadIO m, IsListView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “single-click-activate” property. This is rarely needed
--   directly, but it is used by new.
constructListViewSingleClickActivate :: (IsListView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “single-click-activate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #singleClickActivate
--   
getListViewSingleClickActivate :: (MonadIO m, IsListView o) => o -> m Bool

-- | Set the value of the “single-click-activate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #singleClickActivate := value ]
--   
setListViewSingleClickActivate :: (MonadIO m, IsListView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab-behavior” property. This is rarely needed directly, but
--   it is used by new.
constructListViewTabBehavior :: (IsListView o, MonadIO m) => ListTabBehavior -> m (GValueConstruct o)

-- | Get the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listView #tabBehavior
--   
getListViewTabBehavior :: (MonadIO m, IsListView o) => o -> m ListTabBehavior

-- | Set the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listView [ #tabBehavior := value ]
--   
setListViewTabBehavior :: (MonadIO m, IsListView o) => o -> ListTabBehavior -> m ()

-- | Emitted when a row has been activated by the user.
--   
--   Activation usually happens via the list.activate-item action of the
--   GtkListView.
--   
--   This allows for a convenient way to handle activation in a listview.
--   See listItemSetActivatable for details on how to use this
--   signal.
type ListViewActivateCallback = Word32 -> IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listView #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListViewActivate :: (IsListView a, MonadIO m) => a -> ((?self :: a) => ListViewActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listView #activate callback
--   
onListViewActivate :: (IsListView a, MonadIO m) => a -> ((?self :: a) => ListViewActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ListView.ListView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListView.ListView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListView.ListView
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListView.ListView)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListView.ListView o) => GI.Gtk.Objects.ListView.IsListView o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListView.ListView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListView.ListView

-- | A list-like data structure that can be used with the TreeView.
--   
--   The GtkListStore object is a list model for use with a
--   GtkTreeView widget. It implements the GtkTreeModel
--   interface, and consequentialy, can use all of the methods available
--   there. It also implements the GtkTreeSortable interface so it
--   can be sorted by the view. Finally, it also implements the tree
--   drag and drop interfaces.
--   
--   The GtkListStore can accept most GTypes as a column
--   type, though it can’t accept all custom types. Internally, it will
--   keep a copy of data passed in (such as a string or a boxed pointer).
--   Columns that accept GObjects are handled a little
--   differently. The GtkListStore will keep a reference to the
--   object instead of copying the value. As a result, if the object is
--   modified, it is up to the application writer to call
--   treeModelRowChanged to emit the
--   signalgtk.TreeModel[row_changed] signal. This
--   most commonly affects lists with Textures stored.
--   
--   An example for creating a simple list store:
--   
--   
c code
--   
--   
--   enum {
--     COLUMN_STRING,
--     COLUMN_INT,
--     COLUMN_BOOLEAN,
--     N_COLUMNS
--   };
--   
--   {
--     GtkListStore *list_store;
--     GtkTreePath *path;
--     GtkTreeIter iter;
--     int i;
--   
--     list_store = gtk_list_store_new (N_COLUMNS,
--                                      G_TYPE_STRING,
--                                      G_TYPE_INT,
--                                      G_TYPE_BOOLEAN);
--   
--     for (i = 0; i < 10; i++)
--       {
--         char *some_data;
--   
--         some_data = get_some_data (i);
--   
--         // Add a new row to the model
--         gtk_list_store_append (list_store, &iter);
--         gtk_list_store_set (list_store, &iter,
--                             COLUMN_STRING, some_data,
--                             COLUMN_INT, i,
--                             COLUMN_BOOLEAN,  FALSE,
--                             -1);
--   
--         // As the store will keep a copy of the string internally,
--         // we free some_data.
--         g_free (some_data);
--       }
--   
--     // Modify a particular row
--     path = gtk_tree_path_new_from_string ("4");
--     gtk_tree_model_get_iter (GTK_TREE_MODEL (list_store),
--                              &iter,
--                              path);
--     gtk_tree_path_free (path);
--     gtk_list_store_set (list_store, &iter,
--                         COLUMN_BOOLEAN, TRUE,
--                         -1);
--   }
--   
--   
--   GtkListStore is deprecated since GTK 4.10, and should not be
--   used in newly written code. You should use ListStore instead,
--   and the various list models provided by GTK.
--   
--   
Performance Considerations
--   
--   Internally, the GtkListStore was originally implemented with
--   a linked list with a tail pointer. As a result, it was fast at data
--   insertion and deletion, and not fast at random data access. The
--   GtkListStore sets the GTK_TREE_MODEL_ITERS_PERSIST
--   flag, which means that GtkTreeIters can be cached while the
--   row exists. Thus, if access to a particular row is needed often and
--   your code is expected to run on older versions of GTK, it is worth
--   keeping the iter around.
--   
--   
Atomic Operations
--   
--   It is important to note that only the methods
--   gtk_list_store_insert_with_values() and
--   listStoreInsertWithValues are atomic, in the sense that the row
--   is being appended to the store and the values filled in in a single
--   operation with regard to GtkTreeModel signaling. In contrast,
--   using e.g. listStoreAppend and then
--   gtk_list_store_set() will first create a row, which
--   triggers the GtkTreeModel::row-inserted signal on
--   GtkListStore. The row, however, is still empty, and any
--   signal handler connecting to GtkTreeModel::row-inserted on
--   this particular store should be prepared for the situation that the
--   row might be empty. This is especially important if you are wrapping
--   the GtkListStore inside a GtkTreeModelFilter and are
--   using a GtkTreeModelFilterVisibleFunc. Using any of the
--   non-atomic operations to append rows to the GtkListStore will
--   cause the GtkTreeModelFilterVisibleFunc to be visited with an
--   empty row first; the function must be prepared for that.
--   
--   
GtkListStore as GtkBuildable
--   
--   The GtkListStore implementation of the Buildable interface
--   allows to specify the model columns with a <columns>
--   element that may contain multiple <column> elements,
--   each specifying one model column. The “type” attribute specifies the
--   data type for the column.
--   
--   Additionally, it is possible to specify content for the list store in
--   the UI definition, with the <data> element. It can
--   contain multiple <row> elements, each specifying to
--   content for one row of the list model. Inside a <row>,
--   the <col> elements specify the content for individual
--   cells.
--   
--   Note that it is probably more common to define your models in the
--   code, and one might consider it a layering violation to specify the
--   content of a list store in a UI definition, data, not presentation,
--   and common wisdom is to separate the two, as far as possible.
--   
--   An example of a UI Definition fragment for a list store:
--   
--   
xml code
--   
--   
--   <object class="GtkListStore">
--     <columns>
--       <column type="gchararray"/>
--       <column type="gchararray"/>
--       <column type="gint"/>
--     </columns>
--     <data>
--       <row>
--         <col id="0">John</col>
--         <col id="1">Doe</col>
--         <col id="2">25</col>
--       </row>
--       <row>
--         <col id="0">Johan</col>
--         <col id="1">Dahlin</col>
--         <col id="2">50</col>
--       </row>
--     </data>
--   </object>
--   
module GI.Gtk.Objects.ListStore

-- | Memory-managed wrapper type.
newtype ListStore
ListStore :: ManagedPtr ListStore -> ListStore

-- | Type class for types which can be safely cast to ListStore, for
--   instance with toListStore.
class (GObject o, IsDescendantOf ListStore o) => IsListStore o

-- | Cast to ListStore, for types for which this is known to be
--   safe. For general casts, use castTo.
toListStore :: (MonadIO m, IsListStore o) => o -> m ListStore

-- | Appends a new row to listStore. iter
--   will be changed to point to this new row. The row will be empty after
--   this function is called. To fill in values, you need to call
--   gtk_list_store_set() or listStoreSetValue.

-- | Deprecated: (Since version 4.10)Use list models
listStoreAppend :: (HasCallStack, MonadIO m, IsListStore a) => a -> m TreeIter

-- | Removes all rows from the list store.

-- | Deprecated: (Since version 4.10)Use list models
listStoreClear :: (HasCallStack, MonadIO m, IsListStore a) => a -> m ()

-- | Creates a new row at position. iter
--   will be changed to point to this new row. If position
--   is -1 or is larger than the number of rows on the list, then the new
--   row will be appended to the list. The row will be empty after this
--   function is called. To fill in values, you need to call
--   gtk_list_store_set() or listStoreSetValue.

-- | Deprecated: (Since version 4.10)Use list models
listStoreInsert :: (HasCallStack, MonadIO m, IsListStore a) => a -> Int32 -> m TreeIter

-- | Inserts a new row after sibling. If
--   sibling is Nothing, then the row will be
--   prepended to the beginning of the list. iter will be
--   changed to point to this new row. The row will be empty after this
--   function is called. To fill in values, you need to call
--   gtk_list_store_set() or listStoreSetValue.

-- | Deprecated: (Since version 4.10)Use list models
listStoreInsertAfter :: (HasCallStack, MonadIO m, IsListStore a) => a -> Maybe TreeIter -> m TreeIter

-- | Inserts a new row before sibling. If
--   sibling is Nothing, then the row will be
--   appended to the end of the list. iter will be changed
--   to point to this new row. The row will be empty after this function is
--   called. To fill in values, you need to call
--   gtk_list_store_set() or listStoreSetValue.

-- | Deprecated: (Since version 4.10)Use list models
listStoreInsertBefore :: (HasCallStack, MonadIO m, IsListStore a) => a -> Maybe TreeIter -> m TreeIter

-- | A variant of gtk_list_store_insert_with_values() which
--   takes the columns and values as two arrays, instead of varargs.
--   
--   This function is mainly intended for language-bindings.

-- | Deprecated: (Since version 4.10)Use list models
listStoreInsertWithValues :: (HasCallStack, MonadIO m, IsListStore a) => a -> Int32 -> [Int32] -> [GValue] -> m TreeIter

-- | Checks if the given iter is a valid iter for this
--   GtkListStore.
--   
--   This function is slow. Only use it for debugging and/or testing
--   purposes.

-- | Deprecated: (Since version 4.10)Use list models
listStoreIterIsValid :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> m Bool

-- | Moves iter in store to the position
--   after position. Note that this function only works
--   with unsorted stores. If position is Nothing,
--   iter will be moved to the start of the list.

-- | Deprecated: (Since version 4.10)Use list models
listStoreMoveAfter :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> Maybe TreeIter -> m ()

-- | Moves iter in store to the position
--   before position. Note that this function only works
--   with unsorted stores. If position is Nothing,
--   iter will be moved to the end of the list.

-- | Deprecated: (Since version 4.10)Use list models
listStoreMoveBefore :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> Maybe TreeIter -> m ()

-- | Creates a new GtkListStore.
--   
--   This function is meant to be used by language bindings.

-- | Deprecated: (Since version 4.10)Use ListStore instead
listStoreNew :: (HasCallStack, MonadIO m) => [GType] -> m ListStore

-- | Prepends a new row to listStore. iter
--   will be changed to point to this new row. The row will be empty after
--   this function is called. To fill in values, you need to call
--   gtk_list_store_set() or listStoreSetValue.

-- | Deprecated: (Since version 4.10)Use list models
listStorePrepend :: (HasCallStack, MonadIO m, IsListStore a) => a -> m TreeIter

-- | Removes the given row from the list store. After being removed,
--   iter is set to be the next valid row, or invalidated
--   if it pointed to the last row in listStore.

-- | Deprecated: (Since version 4.10)Use list models
listStoreRemove :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> m Bool

-- | Reorders store to follow the order indicated by
--   newOrder. Note that this function only works with
--   unsorted stores.

-- | Deprecated: (Since version 4.10)Use list models
listStoreReorder :: (HasCallStack, MonadIO m, IsListStore a) => a -> [Int32] -> m ()

-- | A variant of gtk_list_store_set_valist() which takes
--   the columns and values as two arrays, instead of varargs. This
--   function is mainly intended for language-bindings and in case the
--   number of columns to change is not known until run-time.

-- | Deprecated: (Since version 4.10)Use list models
listStoreSet :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> [Int32] -> [GValue] -> m ()

-- | Sets the types of the columns of a list store.
--   
--   This function is meant primarily for objects that inherit from
--   GtkListStore, and should only be used when constructing a new
--   instance.
--   
--   This function cannot be called after a row has been added, or a method
--   on the GtkTreeModel interface is called.

-- | Deprecated: (Since version 4.10)Use list models
listStoreSetColumnTypes :: (HasCallStack, MonadIO m, IsListStore a) => a -> [GType] -> m ()

-- | Sets the data in the cell specified by iter and
--   column. The type of value must be
--   convertible to the type of the column.

-- | Deprecated: (Since version 4.10)Use list models
listStoreSetValue :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> Int32 -> GValue -> m ()

-- | Swaps a and b in
--   store. Note that this function only works with
--   unsorted stores.

-- | Deprecated: (Since version 4.10)Use list models
listStoreSwap :: (HasCallStack, MonadIO m, IsListStore a) => a -> TreeIter -> TreeIter -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ListStore.ListStore
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListStore.ListStore
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListStore.ListStore
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListStore.ListStore)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListStore.ListStore o) => GI.Gtk.Objects.ListStore.IsListStore o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListStore.ListStore
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListStore.ListStore

-- | Used by list widgets to represent items in a ListModel.
--   
--   GtkListItem objects are managed by the list widget (with its
--   factory) and cannot be created by applications, but they need to be
--   populated by application code. This is done by calling
--   listItemSetChild.
--   
--   GtkListItem objects exist in 2 stages:
--   
--   
--   
- The unbound stage where the listitem is not currently connected to
--   an item in the list. In that case, the ListItem:item property
--   is set to NULL.
--   
- The bound stage where the listitem references an item from the
--   list. The ListItem:item property is not NULL.
--   
module GI.Gtk.Objects.ListItem

-- | Memory-managed wrapper type.
newtype ListItem
ListItem :: ManagedPtr ListItem -> ListItem

-- | Type class for types which can be safely cast to ListItem, for
--   instance with toListItem.
class (GObject o, IsDescendantOf ListItem o) => IsListItem o

-- | Cast to ListItem, for types for which this is known to be safe.
--   For general casts, use castTo.
toListItem :: (MonadIO m, IsListItem o) => o -> m ListItem

-- | Gets the accessible description of self.
--   
--   Since: 4.12
listItemGetAccessibleDescription :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Text

-- | Gets the accessible label of self.
--   
--   Since: 4.12
listItemGetAccessibleLabel :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Text

-- | Checks if a listitem has been set to be activatable via
--   listItemSetActivatable.
listItemGetActivatable :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Bool

-- | Gets the child previously set via listItemSetChild or
--   NULL if none was set.
listItemGetChild :: (HasCallStack, MonadIO m, IsListItem a) => a -> m (Maybe Widget)

-- | Checks if a listitem has been set to be focusable via
--   listItemSetFocusable.
--   
--   Since: 4.12
listItemGetFocusable :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Bool

-- | Gets the model item that associated with self.
--   
--   If self is unbound, this function returns
--   NULL.
listItemGetItem :: (HasCallStack, MonadIO m, IsListItem a) => a -> m (Maybe Object)

-- | Gets the position in the model that self currently
--   displays.
--   
--   If self is unbound, GTK_INVALID_LIST_POSITION
--   is returned.
listItemGetPosition :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Word32

-- | Checks if a listitem has been set to be selectable via
--   listItemSetSelectable.
--   
--   Do not confuse this function with listItemGetSelected.
listItemGetSelectable :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Bool

-- | Checks if the item is displayed as selected.
--   
--   The selected state is maintained by the list widget and its model and
--   cannot be set otherwise.
listItemGetSelected :: (HasCallStack, MonadIO m, IsListItem a) => a -> m Bool

-- | Sets the accessible description for the listitem.
--   
--   The accessible description may be used by e.g. screen readers.
--   
--   Since: 4.12
listItemSetAccessibleDescription :: (HasCallStack, MonadIO m, IsListItem a) => a -> Text -> m ()

-- | Sets the accessible label for the listitem.
--   
--   The accessible label may be used by e.g. screen readers.
--   
--   Since: 4.12
listItemSetAccessibleLabel :: (HasCallStack, MonadIO m, IsListItem a) => a -> Text -> m ()

-- | Sets self to be activatable.
--   
--   If an item is activatable, double-clicking on the item, using the
--   Return key or calling widgetActivate will activate the item.
--   Activating instructs the containing view to handle activation.
--   GtkListView for example will be emitting the
--   ListView::activate signal.
--   
--   By default, listitems are activatable.
listItemSetActivatable :: (HasCallStack, MonadIO m, IsListItem a) => a -> Bool -> m ()

-- | Sets the child to be used for this listitem.
--   
--   This function is typically called by applications when setting up a
--   listitem so that the widget can be reused when binding it multiple
--   times.
listItemSetChild :: (HasCallStack, MonadIO m, IsListItem a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets self to be focusable.
--   
--   If an item is focusable, it can be focused using the keyboard. This
--   works similar to widgetSetFocusable.
--   
--   Note that if items are not focusable, the keyboard cannot be used to
--   activate them and selecting only works if one of the listitem's
--   children is focusable.
--   
--   By default, listitems are focusable.
--   
--   Since: 4.12
listItemSetFocusable :: (HasCallStack, MonadIO m, IsListItem a) => a -> Bool -> m ()

-- | Sets self to be selectable.
--   
--   If an item is selectable, clicking on the item or using the keyboard
--   will try to select or unselect the item. If this succeeds is up to the
--   model to determine, as it is managing the selected state.
--   
--   Note that this means that making an item non-selectable has no
--   influence on the selected state at all. A non-selectable item may
--   still be selected.
--   
--   By default, listitems are selectable. When rebinding them to a new
--   item, they will also be reset to be selectable by GTK.
listItemSetSelectable :: (HasCallStack, MonadIO m, IsListItem a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accessible-description” property. This is rarely needed
--   directly, but it is used by new.
constructListItemAccessibleDescription :: (IsListItem o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accessible-description” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #accessibleDescription
--   
getListItemAccessibleDescription :: (MonadIO m, IsListItem o) => o -> m Text

-- | Set the value of the “accessible-description” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listItem [ #accessibleDescription := value ]
--   
setListItemAccessibleDescription :: (MonadIO m, IsListItem o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accessible-label” property. This is rarely needed directly,
--   but it is used by new.
constructListItemAccessibleLabel :: (IsListItem o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accessible-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #accessibleLabel
--   
getListItemAccessibleLabel :: (MonadIO m, IsListItem o) => o -> m Text

-- | Set the value of the “accessible-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listItem [ #accessibleLabel := value ]
--   
setListItemAccessibleLabel :: (MonadIO m, IsListItem o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activatable” property. This is rarely needed directly, but
--   it is used by new.
constructListItemActivatable :: (IsListItem o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #activatable
--   
getListItemActivatable :: (MonadIO m, IsListItem o) => o -> m Bool

-- | Set the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listItem [ #activatable := value ]
--   
setListItemActivatable :: (MonadIO m, IsListItem o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearListItemChild :: (MonadIO m, IsListItem o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructListItemChild :: (IsListItem o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #child
--   
getListItemChild :: (MonadIO m, IsListItem o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listItem [ #child := value ]
--   
setListItemChild :: (MonadIO m, IsListItem o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focusable” property. This is rarely needed directly, but it
--   is used by new.
constructListItemFocusable :: (IsListItem o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #focusable
--   
getListItemFocusable :: (MonadIO m, IsListItem o) => o -> m Bool

-- | Set the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listItem [ #focusable := value ]
--   
setListItemFocusable :: (MonadIO m, IsListItem o) => o -> Bool -> m ()

-- | Get the value of the “item” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get listItem #item
--   
getListItemItem :: (MonadIO m, IsListItem o) => o -> m (Maybe Object)

-- | Get the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #position
--   
getListItemPosition :: (MonadIO m, IsListItem o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “selectable” property. This is rarely needed directly, but it
--   is used by new.
constructListItemSelectable :: (IsListItem o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #selectable
--   
getListItemSelectable :: (MonadIO m, IsListItem o) => o -> m Bool

-- | Set the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listItem [ #selectable := value ]
--   
setListItemSelectable :: (MonadIO m, IsListItem o) => o -> Bool -> m ()

-- | Get the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listItem #selected
--   
getListItemSelected :: (MonadIO m, IsListItem o) => o -> m Bool
instance GHC.Classes.Eq GI.Gtk.Objects.ListItem.ListItem
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListItem.ListItem
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListItem.ListItem
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListItem.ListItem)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListItem.ListItem o) => GI.Gtk.Objects.ListItem.IsListItem o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListItem.ListItem
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListItem.ListItem

-- | Used by list widgets to represent the headers they display.
--   
--   GtkListHeader objects are managed just like ListItem
--   objects via their factory, but provide a different set of properties
--   suitable for managing the header instead of individual items.
--   
--   Since: 4.12
module GI.Gtk.Objects.ListHeader

-- | Memory-managed wrapper type.
newtype ListHeader
ListHeader :: ManagedPtr ListHeader -> ListHeader

-- | Type class for types which can be safely cast to ListHeader,
--   for instance with toListHeader.
class (GObject o, IsDescendantOf ListHeader o) => IsListHeader o

-- | Cast to ListHeader, for types for which this is known to be
--   safe. For general casts, use castTo.
toListHeader :: (MonadIO m, IsListHeader o) => o -> m ListHeader

-- | Gets the child previously set via listHeaderSetChild or
--   Nothing if none was set.
--   
--   Since: 4.12
listHeaderGetChild :: (HasCallStack, MonadIO m, IsListHeader a) => a -> m (Maybe Widget)

-- | Gets the end position in the model of the section that
--   self is currently the header for.
--   
--   If self is unbound, INVALID_LIST_POSITION is
--   returned.
--   
--   Since: 4.12
listHeaderGetEnd :: (HasCallStack, MonadIO m, IsListHeader a) => a -> m Word32

-- | Gets the model item at the start of the section. This is the item that
--   occupies the list model at position ListHeader:start.
--   
--   If self is unbound, this function returns
--   Nothing.
--   
--   Since: 4.12
listHeaderGetItem :: (HasCallStack, MonadIO m, IsListHeader a) => a -> m (Maybe Object)

-- | Gets the the number of items in the section.
--   
--   If self is unbound, 0 is returned.
--   
--   Since: 4.12
listHeaderGetNItems :: (HasCallStack, MonadIO m, IsListHeader a) => a -> m Word32

-- | Gets the start position in the model of the section that
--   self is currently the header for.
--   
--   If self is unbound, INVALID_LIST_POSITION is
--   returned.
--   
--   Since: 4.12
listHeaderGetStart :: (HasCallStack, MonadIO m, IsListHeader a) => a -> m Word32

-- | Sets the child to be used for this listitem.
--   
--   This function is typically called by applications when setting up a
--   header so that the widget can be reused when binding it multiple
--   times.
--   
--   Since: 4.12
listHeaderSetChild :: (HasCallStack, MonadIO m, IsListHeader a, IsWidget b) => a -> Maybe b -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearListHeaderChild :: (MonadIO m, IsListHeader o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructListHeaderChild :: (IsListHeader o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listHeader #child
--   
getListHeaderChild :: (MonadIO m, IsListHeader o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listHeader [ #child := value ]
--   
setListHeaderChild :: (MonadIO m, IsListHeader o, IsWidget a) => o -> a -> m ()

-- | Get the value of the “end” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get listHeader #end
--   
getListHeaderEnd :: (MonadIO m, IsListHeader o) => o -> m Word32

-- | Get the value of the “item” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get listHeader #item
--   
getListHeaderItem :: (MonadIO m, IsListHeader o) => o -> m (Maybe Object)

-- | Get the value of the “n-items” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listHeader #nItems
--   
getListHeaderNItems :: (MonadIO m, IsListHeader o) => o -> m Word32

-- | Get the value of the “start” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listHeader #start
--   
getListHeaderStart :: (MonadIO m, IsListHeader o) => o -> m Word32
instance GHC.Classes.Eq GI.Gtk.Objects.ListHeader.ListHeader
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListHeader.ListHeader
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListHeader.ListHeader
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListHeader.ListHeader)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListHeader.ListHeader o) => GI.Gtk.Objects.ListHeader.IsListHeader o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListHeader.ListHeader
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListHeader.ListHeader

-- | The kind of widget that can be added to a GtkListBox.
--   
--   ListBox will automatically wrap its children in a
--   GtkListboxRow when necessary.
module GI.Gtk.Objects.ListBoxRow

-- | Memory-managed wrapper type.
newtype ListBoxRow
ListBoxRow :: ManagedPtr ListBoxRow -> ListBoxRow

-- | Type class for types which can be safely cast to ListBoxRow,
--   for instance with toListBoxRow.
class (GObject o, IsDescendantOf ListBoxRow o) => IsListBoxRow o

-- | Cast to ListBoxRow, for types for which this is known to be
--   safe. For general casts, use castTo.
toListBoxRow :: (MonadIO m, IsListBoxRow o) => o -> m ListBoxRow

-- | Marks row as changed, causing any state that depends
--   on this to be updated.
--   
--   This affects sorting, filtering and headers.
--   
--   Note that calls to this method must be in sync with the data used for
--   the row functions. For instance, if the list is mirroring some
--   external data set, and *two* rows changed in the external data set
--   then when you call listBoxRowChanged on the first row the sort
--   function must only read the new data for the first of the two changed
--   rows, otherwise the resorting of the rows will be wrong.
--   
--   This generally means that if you don’t fully control the data model
--   you have to duplicate the data that affects the listbox row functions
--   into the row widgets themselves. Another alternative is to call
--   listBoxInvalidateSort on any model change, but that is more
--   expensive.
listBoxRowChanged :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m ()

-- | Gets whether the row is activatable.
listBoxRowGetActivatable :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m Bool

-- | Gets the child widget of row.
listBoxRowGetChild :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m (Maybe Widget)

-- | Returns the current header of the row.
--   
--   This can be used in a
--   [callbackgtk.ListBoxUpdateHeaderFunc] to see if there
--   is a header set already, and if so to update the state of it.
listBoxRowGetHeader :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m (Maybe Widget)

-- | Gets the current index of the row in its
--   GtkListBox container.
listBoxRowGetIndex :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m Int32

-- | Gets whether the row can be selected.
listBoxRowGetSelectable :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m Bool

-- | Returns whether the child is currently selected in its
--   GtkListBox container.
listBoxRowIsSelected :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> m Bool

-- | Creates a new GtkListBoxRow.
listBoxRowNew :: (HasCallStack, MonadIO m) => m ListBoxRow

-- | Set whether the row is activatable.
listBoxRowSetActivatable :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> Bool -> m ()

-- | Sets the child widget of self.
listBoxRowSetChild :: (HasCallStack, MonadIO m, IsListBoxRow a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the current header of the row.
--   
--   This is only allowed to be called from a
--   [callbackgtk.ListBoxUpdateHeaderFunc]. It will replace
--   any existing header in the row, and be shown in front of the row in
--   the listbox.
listBoxRowSetHeader :: (HasCallStack, MonadIO m, IsListBoxRow a, IsWidget b) => a -> Maybe b -> m ()

-- | Set whether the row can be selected.
listBoxRowSetSelectable :: (HasCallStack, MonadIO m, IsListBoxRow a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activatable” property. This is rarely needed directly, but
--   it is used by new.
constructListBoxRowActivatable :: (IsListBoxRow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBoxRow #activatable
--   
getListBoxRowActivatable :: (MonadIO m, IsListBoxRow o) => o -> m Bool

-- | Set the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBoxRow [ #activatable := value ]
--   
setListBoxRowActivatable :: (MonadIO m, IsListBoxRow o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearListBoxRowChild :: (MonadIO m, IsListBoxRow o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructListBoxRowChild :: (IsListBoxRow o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBoxRow #child
--   
getListBoxRowChild :: (MonadIO m, IsListBoxRow o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBoxRow [ #child := value ]
--   
setListBoxRowChild :: (MonadIO m, IsListBoxRow o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “selectable” property. This is rarely needed directly, but it
--   is used by new.
constructListBoxRowSelectable :: (IsListBoxRow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBoxRow #selectable
--   
getListBoxRowSelectable :: (MonadIO m, IsListBoxRow o) => o -> m Bool

-- | Set the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBoxRow [ #selectable := value ]
--   
setListBoxRowSelectable :: (MonadIO m, IsListBoxRow o) => o -> Bool -> m ()

-- | This is a keybinding signal, which will cause this row to be
--   activated.
--   
--   If you want to be notified when the user activates a row (by key or
--   not), use the ListBox::rowActivated signal on the row’s parent
--   GtkListBox.
type ListBoxRowActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listBoxRow #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxRowActivate :: (IsListBoxRow a, MonadIO m) => a -> ((?self :: a) => ListBoxRowActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listBoxRow #activate callback
--   
onListBoxRowActivate :: (IsListBoxRow a, MonadIO m) => a -> ((?self :: a) => ListBoxRowActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ListBoxRow.ListBoxRow
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListBoxRow.ListBoxRow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListBoxRow.ListBoxRow
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListBoxRow.ListBoxRow)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListBoxRow.ListBoxRow o) => GI.Gtk.Objects.ListBoxRow.IsListBoxRow o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListBoxRow.ListBoxRow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListBoxRow.ListBoxRow

-- | Shows a vertical list.
--   
--   <picture> <source srcset="list-box-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkListBox" src="list-box.png"> </picture>
--   
--   A GtkListBox only contains GtkListBoxRow children.
--   These rows can by dynamically sorted and filtered, and headers can be
--   added dynamically depending on the row content. It also allows
--   keyboard and mouse navigation and selection like a typical list.
--   
--   Using GtkListBox is often an alternative to
--   GtkTreeView, especially when the list contents has a more
--   complicated layout than what is allowed by a GtkCellRenderer,
--   or when the contents is interactive (i.e. has a button in it).
--   
--   Although a GtkListBox must have only GtkListBoxRow
--   children, you can add any kind of widget to it via
--   listBoxPrepend, listBoxAppend and listBoxInsert
--   and a GtkListBoxRow widget will automatically be inserted
--   between the list and the widget.
--   
--   GtkListBoxRows can be marked as activatable or selectable. If
--   a row is activatable, ListBox::rowActivated will be emitted for
--   it when the user tries to activate it. If it is selectable, the row
--   will be marked as selected when the user tries to select it.
--   
--   
GtkListBox as GtkBuildable
--   
--   The GtkListBox implementation of the GtkBuildable
--   interface supports setting a child as the placeholder by specifying
--   “placeholder” as the “type” attribute of a <child>
--   element. See listBoxSetPlaceholder for info.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- ListBox::moveCursor
--   
- ListBox::selectAll
--   
- ListBox::toggleCursorRow
--   
- ListBox::unselectAll
--   
--   
--   
CSS nodes
--   
--   
--   list[.separators][.rich-list][.navigation-sidebar][.boxed-list]
--   ╰── row[.activatable]
--   
--   
--   GtkListBox uses a single CSS node named list. It may carry
--   the .separators style class, when the ListBox:showSeparators
--   property is set. Each GtkListBoxRow uses a single CSS node
--   named row. The row nodes get the .activatable style class added when
--   appropriate.
--   
--   It may also carry the .boxed-list style class. In this case, the list
--   will be automatically surrounded by a frame and have separators.
--   
--   The main list node may also carry style classes to select the style of
--   list presentation: .rich-list, .navigation-sidebar or
--   .data-table.
--   
--   
Accessibility
--   
--   GtkListBox uses the AccessibleRoleList role and
--   GtkListBoxRow uses the AccessibleRoleListItem role.
module GI.Gtk.Objects.ListBox

-- | Memory-managed wrapper type.
newtype ListBox
ListBox :: ManagedPtr ListBox -> ListBox

-- | Type class for types which can be safely cast to ListBox, for
--   instance with toListBox.
class (GObject o, IsDescendantOf ListBox o) => IsListBox o

-- | Cast to ListBox, for types for which this is known to be safe.
--   For general casts, use castTo.
toListBox :: (MonadIO m, IsListBox o) => o -> m ListBox

-- | Append a widget to the list.
--   
--   If a sort function is set, the widget will actually be inserted at the
--   calculated position.
listBoxAppend :: (HasCallStack, MonadIO m, IsListBox a, IsWidget b) => a -> b -> m ()

-- | Binds model to box.
--   
--   If box was already bound to a model, that previous
--   binding is destroyed.
--   
--   The contents of box are cleared and then filled with
--   widgets that represent items from model.
--   box is updated whenever model changes.
--   If model is Nothing, box is
--   left empty.
--   
--   It is undefined to add or remove widgets directly (for example, with
--   listBoxInsert) while box is bound to a model.
--   
--   Note that using a model is incompatible with the filtering and sorting
--   functionality in GtkListBox. When using a model, filtering
--   and sorting should be implemented by the model.
listBoxBindModel :: (HasCallStack, MonadIO m, IsListBox a, IsListModel b) => a -> Maybe b -> Maybe ListBoxCreateWidgetFunc -> m ()

-- | Add a drag highlight to a row.
--   
--   This is a helper function for implementing DnD onto a
--   GtkListBox. The passed in row will be
--   highlighted by setting the StateFlagsDropActive state and any
--   previously highlighted row will be unhighlighted.
--   
--   The row will also be unhighlighted when the widget gets a drag leave
--   event.
listBoxDragHighlightRow :: (HasCallStack, MonadIO m, IsListBox a, IsListBoxRow b) => a -> b -> m ()

-- | If a row has previously been highlighted via
--   listBoxDragHighlightRow, it will have the highlight removed.
listBoxDragUnhighlightRow :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Returns whether rows activate on single clicks.
listBoxGetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsListBox a) => a -> m Bool

-- | Gets the adjustment (if any) that the widget uses to for vertical
--   scrolling.
listBoxGetAdjustment :: (HasCallStack, MonadIO m, IsListBox a) => a -> m (Maybe Adjustment)

-- | Gets the n-th child in the list (not counting headers).
--   
--   If index_ is negative or larger than the number of
--   items in the list, Nothing is returned.
listBoxGetRowAtIndex :: (HasCallStack, MonadIO m, IsListBox a) => a -> Int32 -> m (Maybe ListBoxRow)

-- | Gets the row at the y position.
listBoxGetRowAtY :: (HasCallStack, MonadIO m, IsListBox a) => a -> Int32 -> m (Maybe ListBoxRow)

-- | Gets the selected row, or Nothing if no rows are selected.
--   
--   Note that the box may allow multiple selection, in which case you
--   should use listBoxSelectedForeach to find all selected rows.
listBoxGetSelectedRow :: (HasCallStack, MonadIO m, IsListBox a) => a -> m (Maybe ListBoxRow)

-- | Creates a list of all selected children.
listBoxGetSelectedRows :: (HasCallStack, MonadIO m, IsListBox a) => a -> m [ListBoxRow]

-- | Gets the selection mode of the listbox.
listBoxGetSelectionMode :: (HasCallStack, MonadIO m, IsListBox a) => a -> m SelectionMode

-- | Returns whether the list box should show separators between rows.
listBoxGetShowSeparators :: (HasCallStack, MonadIO m, IsListBox a) => a -> m Bool

-- | Returns the behavior of the <kbd>Tab</kbd> and
--   <kbd>Shift</kbd>+<kbd>Tab</kbd> keys.
--   
--   Since: 4.18
listBoxGetTabBehavior :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ListTabBehavior

-- | Insert the child into the box at
--   position.
--   
--   If a sort function is set, the widget will actually be inserted at the
--   calculated position.
--   
--   If position is -1, or larger than the total number of
--   items in the box, then the child will
--   be appended to the end.
listBoxInsert :: (HasCallStack, MonadIO m, IsListBox a, IsWidget b) => a -> b -> Int32 -> m ()

-- | Update the filtering for all rows.
--   
--   Call this when result of the filter function on the
--   box is changed due to an external factor. For
--   instance, this would be used if the filter function just looked for a
--   specific search string and the entry with the search string has
--   changed.
listBoxInvalidateFilter :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Update the separators for all rows.
--   
--   Call this when result of the header function on the
--   box is changed due to an external factor.
listBoxInvalidateHeaders :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Update the sorting for all rows.
--   
--   Call this when result of the sort function on the box
--   is changed due to an external factor.
listBoxInvalidateSort :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Creates a new GtkListBox container.
listBoxNew :: (HasCallStack, MonadIO m) => m ListBox

-- | Prepend a widget to the list.
--   
--   If a sort function is set, the widget will actually be inserted at the
--   calculated position.
listBoxPrepend :: (HasCallStack, MonadIO m, IsListBox a, IsWidget b) => a -> b -> m ()

-- | Removes a child from box.
listBoxRemove :: (HasCallStack, MonadIO m, IsListBox a, IsWidget b) => a -> b -> m ()

-- | Removes all rows from box.
--   
--   This function does nothing if box is backed by a
--   model.
--   
--   Since: 4.12
listBoxRemoveAll :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Select all children of box, if the selection mode
--   allows it.
listBoxSelectAll :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Make row the currently selected row.
listBoxSelectRow :: (HasCallStack, MonadIO m, IsListBox a, IsListBoxRow b) => a -> Maybe b -> m ()

-- | Calls a function for each selected child.
--   
--   Note that the selection cannot be modified from within this function.
listBoxSelectedForeach :: (HasCallStack, MonadIO m, IsListBox a) => a -> ListBoxForeachFunc -> m ()

-- | If single is True, rows will be activated when
--   you click on them, otherwise you need to double-click.
listBoxSetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsListBox a) => a -> Bool -> m ()

-- | Sets the adjustment (if any) that the widget uses to for vertical
--   scrolling.
--   
--   For instance, this is used to get the page size for PageUp/Down key
--   handling.
--   
--   In the normal case when the box is packed inside a
--   GtkScrolledWindow the adjustment from that will be picked up
--   automatically, so there is no need to manually do that.
listBoxSetAdjustment :: (HasCallStack, MonadIO m, IsListBox a, IsAdjustment b) => a -> Maybe b -> m ()

-- | By setting a filter function on the box one can decide
--   dynamically which of the rows to show.
--   
--   For instance, to implement a search function on a list that filters
--   the original list to only show the matching rows.
--   
--   The filterFunc will be called for each row after the
--   call, and it will continue to be called each time a row changes (via
--   listBoxRowChanged) or when listBoxInvalidateFilter is
--   called.
--   
--   Note that using a filter function is incompatible with using a model
--   (see listBoxBindModel).
listBoxSetFilterFunc :: (HasCallStack, MonadIO m, IsListBox a) => a -> Maybe ListBoxFilterFunc -> m ()

-- | Sets a header function.
--   
--   By setting a header function on the box one can
--   dynamically add headers in front of rows, depending on the contents of
--   the row and its position in the list.
--   
--   For instance, one could use it to add headers in front of the first
--   item of a new kind, in a list sorted by the kind.
--   
--   The updateHeader can look at the current header widget
--   using listBoxRowGetHeader and either update the state of the
--   widget as needed, or set a new one using listBoxRowSetHeader.
--   If no header is needed, set the header to Nothing.
--   
--   Note that you may get many calls updateHeader to this
--   for a particular row when e.g. changing things that don’t affect the
--   header. In this case it is important for performance to not blindly
--   replace an existing header with an identical one.
--   
--   The updateHeader function will be called for each row
--   after the call, and it will continue to be called each time a row
--   changes (via listBoxRowChanged) and when the row before changes
--   (either by listBoxRowChanged on the previous row, or when the
--   previous row becomes a different row). It is also called for all rows
--   when listBoxInvalidateHeaders is called.
listBoxSetHeaderFunc :: (HasCallStack, MonadIO m, IsListBox a) => a -> Maybe ListBoxUpdateHeaderFunc -> m ()

-- | Sets the placeholder widget that is shown in the list when it doesn't
--   display any visible children.
listBoxSetPlaceholder :: (HasCallStack, MonadIO m, IsListBox a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets how selection works in the listbox.
listBoxSetSelectionMode :: (HasCallStack, MonadIO m, IsListBox a) => a -> SelectionMode -> m ()

-- | Sets whether the list box should show separators between rows.
listBoxSetShowSeparators :: (HasCallStack, MonadIO m, IsListBox a) => a -> Bool -> m ()

-- | Sets a sort function.
--   
--   By setting a sort function on the box one can
--   dynamically reorder the rows of the list, based on the contents of the
--   rows.
--   
--   The sortFunc will be called for each row after the
--   call, and will continue to be called each time a row changes (via
--   listBoxRowChanged) and when listBoxInvalidateSort is
--   called.
--   
--   Note that using a sort function is incompatible with using a model
--   (see listBoxBindModel).
listBoxSetSortFunc :: (HasCallStack, MonadIO m, IsListBox a) => a -> Maybe ListBoxSortFunc -> m ()

-- | Sets the behavior of the <kbd>Tab</kbd> and
--   <kbd>Shift</kbd>+<kbd>Tab</kbd> keys.
--   
--   Since: 4.18
listBoxSetTabBehavior :: (HasCallStack, MonadIO m, IsListBox a) => a -> ListTabBehavior -> m ()

-- | Unselect all children of box, if the selection mode
--   allows it.
listBoxUnselectAll :: (HasCallStack, MonadIO m, IsListBox a) => a -> m ()

-- | Unselects a single row of box, if the selection mode
--   allows it.
listBoxUnselectRow :: (HasCallStack, MonadIO m, IsListBox a, IsListBoxRow b) => a -> b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accept-unpaired-release” property. This is rarely needed
--   directly, but it is used by new.
constructListBoxAcceptUnpairedRelease :: (IsListBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “accept-unpaired-release” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBox #acceptUnpairedRelease
--   
getListBoxAcceptUnpairedRelease :: (MonadIO m, IsListBox o) => o -> m Bool

-- | Set the value of the “accept-unpaired-release” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBox [ #acceptUnpairedRelease := value ]
--   
setListBoxAcceptUnpairedRelease :: (MonadIO m, IsListBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activate-on-single-click” property. This is rarely needed
--   directly, but it is used by new.
constructListBoxActivateOnSingleClick :: (IsListBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get listBox #activateOnSingleClick
--   
getListBoxActivateOnSingleClick :: (MonadIO m, IsListBox o) => o -> m Bool

-- | Set the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set listBox [ #activateOnSingleClick := value ]
--   
setListBoxActivateOnSingleClick :: (MonadIO m, IsListBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “selection-mode” property. This is rarely needed directly,
--   but it is used by new.
constructListBoxSelectionMode :: (IsListBox o, MonadIO m) => SelectionMode -> m (GValueConstruct o)

-- | Get the value of the “selection-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBox #selectionMode
--   
getListBoxSelectionMode :: (MonadIO m, IsListBox o) => o -> m SelectionMode

-- | Set the value of the “selection-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBox [ #selectionMode := value ]
--   
setListBoxSelectionMode :: (MonadIO m, IsListBox o) => o -> SelectionMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-separators” property. This is rarely needed directly,
--   but it is used by new.
constructListBoxShowSeparators :: (IsListBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBox #showSeparators
--   
getListBoxShowSeparators :: (MonadIO m, IsListBox o) => o -> m Bool

-- | Set the value of the “show-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBox [ #showSeparators := value ]
--   
setListBoxShowSeparators :: (MonadIO m, IsListBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab-behavior” property. This is rarely needed directly, but
--   it is used by new.
constructListBoxTabBehavior :: (IsListBox o, MonadIO m) => ListTabBehavior -> m (GValueConstruct o)

-- | Get the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBox #tabBehavior
--   
getListBoxTabBehavior :: (MonadIO m, IsListBox o) => o -> m ListTabBehavior

-- | Set the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBox [ #tabBehavior := value ]
--   
setListBoxTabBehavior :: (MonadIO m, IsListBox o) => o -> ListTabBehavior -> m ()

-- | Emitted when the cursor row is activated.
type ListBoxActivateCursorRowCallback = IO ()

-- | Connect a signal handler for the activateCursorRow signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after listBox #activateCursorRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxActivateCursorRow :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxActivateCursorRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateCursorRow signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on listBox #activateCursorRow callback
--   
onListBoxActivateCursorRow :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxActivateCursorRowCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a cursor movement.
--   
--   The default bindings for this signal come in two variants, the variant
--   with the Shift modifier extends the selection, the variant without the
--   Shift modifier does not. There are too many key combinations to list
--   them all here.
--   
--   
--   
- <kbd>←</kbd>, <kbd>→</kbd>,
--   <kbd>↑</kbd>, <kbd>↓</kbd> move by individual
--   children
--   
- <kbd>Home</kbd>, <kbd>End</kbd> move to
--   the ends of the box
--   
- <kbd>PgUp</kbd>, <kbd>PgDn</kbd> move
--   vertically by pages
--   
type ListBoxMoveCursorCallback = MovementStep -> Int32 -> Bool -> Bool -> IO ()

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listBox #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxMoveCursor :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listBox #moveCursor callback
--   
onListBoxMoveCursor :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxMoveCursorCallback) -> m SignalHandlerId

-- | Emitted when a row has been activated by the user.
type ListBoxRowActivatedCallback = ListBoxRow -> IO ()

-- | Connect a signal handler for the rowActivated signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listBox #rowActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxRowActivated :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxRowActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowActivated signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listBox #rowActivated callback
--   
onListBoxRowActivated :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxRowActivatedCallback) -> m SignalHandlerId

-- | Emitted when a new row is selected, or (with a Nothing
--   row) when the selection is cleared.
--   
--   When the box is using SelectionModeMultiple,
--   this signal will not give you the full picture of selection changes,
--   and you should use the ListBox::selectedRowsChanged signal
--   instead.
type ListBoxRowSelectedCallback = Maybe ListBoxRow -> IO ()

-- | Connect a signal handler for the rowSelected signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listBox #rowSelected callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxRowSelected :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxRowSelectedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowSelected signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listBox #rowSelected callback
--   
onListBoxRowSelected :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxRowSelectedCallback) -> m SignalHandlerId

-- | Emitted to select all children of the box, if the selection mode
--   permits it.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is
--   <kbd>Ctrl</kbd>-<kbd>a</kbd>.
type ListBoxSelectAllCallback = IO ()

-- | Connect a signal handler for the selectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listBox #selectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxSelectAll :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxSelectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listBox #selectAll callback
--   
onListBoxSelectAll :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxSelectAllCallback) -> m SignalHandlerId

-- | Emitted when the set of selected rows changes.
type ListBoxSelectedRowsChangedCallback = IO ()

-- | Connect a signal handler for the selectedRowsChanged signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after listBox #selectedRowsChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxSelectedRowsChanged :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxSelectedRowsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectedRowsChanged signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on listBox #selectedRowsChanged callback
--   
onListBoxSelectedRowsChanged :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxSelectedRowsChangedCallback) -> m SignalHandlerId

-- | Emitted when the cursor row is toggled.
--   
--   The default bindings for this signal is
--   <kbd>Ctrl</kbd>+<kbd>␣</kbd>.
type ListBoxToggleCursorRowCallback = IO ()

-- | Connect a signal handler for the toggleCursorRow signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after listBox #toggleCursorRow callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxToggleCursorRow :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxToggleCursorRowCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleCursorRow signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on listBox #toggleCursorRow callback
--   
onListBoxToggleCursorRow :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxToggleCursorRowCallback) -> m SignalHandlerId

-- | Emitted to unselect all children of the box, if the selection mode
--   permits it.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is
--   <kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>a</kbd>.
type ListBoxUnselectAllCallback = IO ()

-- | Connect a signal handler for the unselectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after listBox #unselectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterListBoxUnselectAll :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxUnselectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unselectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on listBox #unselectAll callback
--   
onListBoxUnselectAll :: (IsListBox a, MonadIO m) => a -> ((?self :: a) => ListBoxUnselectAllCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ListBox.ListBox
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListBox.ListBox
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListBox.ListBox
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListBox.ListBox)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListBox.ListBox o) => GI.Gtk.Objects.ListBox.IsListBox o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListBox.ListBox
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListBox.ListBox

-- | The abstract base class for GTK's list widgets.
--   
--   
Shortcuts and Gestures
--   
--   GtkListBase supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Ctrl</kbd>+<kbd>A</kbd> or
--   <kbd>Ctrl</kbd>+<kbd>&sol;</kbd> selects
--   all items.
--   
--   
- <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd>
--   or <kbd>Ctrl</kbd>+<kbd>&bsol;</kbd>
--   unselects all items.
--   
--   
--   The focused item is controlled by the navigation keys below, combined
--   with the <kbd>Ctrl</kbd> modifier to prevent moving the
--   selection, and the <kbd>Shift</kbd> modifier to extend the
--   current selection.
--   
--   
--   
- <kbd>←</kbd>, <kbd>→</kbd>,
--   <kbd>↑</kbd>, <kbd>↓</kbd> move the focus on
--   the next item in the designed direction.
--   
- <kbd>Home</kbd> and <kbd>End</kbd> focus
--   the first or last item.
--   
- <kbd>PgUp</kbd> and <kbd>PgDn</kbd> move
--   the focus one page up or down.
--   
--   
--   List item widgets support the following keyboard shortcuts:
--   
--   
--   
- <kbd>Enter</kbd> activates the item.
--   
- <kbd>␣</kbd> selects the item, with the same
--   <kbd>Ctrl</kbd> and <kbd>Shift</kbd> modifiers
--   combinations as the navigation keys.
--   
--   
--   
Actions
--   
--   GtkListBase defines a set of built-in actions:
--   
--   
--   
- list.scroll-to-item moves the visible area to the item at
--   given position with the minimum amount of scrolling required. If the
--   item is already visible, nothing happens.
--   
- list.select-item changes the selection.
--   
- list.select-all selects all items in the model, if the
--   selection model supports it.
--   
- list.unselect-all unselects all items in the model, if
--   the selection model supports it.
--   
--   
--   List item widgets install the following actions:
--   
--   
--   
- listitem.select changes selection if the item is
--   selectable.
--   
- listitem.scroll-to moves the visible area of the list to
--   this item with the minimum amount of scrolling required.
--   
module GI.Gtk.Objects.ListBase

-- | Memory-managed wrapper type.
newtype ListBase
ListBase :: ManagedPtr ListBase -> ListBase

-- | Type class for types which can be safely cast to ListBase, for
--   instance with toListBase.
class (GObject o, IsDescendantOf ListBase o) => IsListBase o

-- | Cast to ListBase, for types for which this is known to be safe.
--   For general casts, use castTo.
toListBase :: (MonadIO m, IsListBase o) => o -> m ListBase

-- | Construct a GValueConstruct with valid value for the
--   “orientation” property. This is rarely needed directly, but
--   it is used by new.
constructListBaseOrientation :: (IsListBase o, MonadIO m) => Orientation -> m (GValueConstruct o)

-- | Get the value of the “orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get listBase #orientation
--   
getListBaseOrientation :: (MonadIO m, IsListBase o) => o -> m Orientation

-- | Set the value of the “orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set listBase [ #orientation := value ]
--   
setListBaseOrientation :: (MonadIO m, IsListBase o) => o -> Orientation -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ListBase.ListBase
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ListBase.ListBase
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ListBase.ListBase
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ListBase.ListBase)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ListBase.ListBase o) => GI.Gtk.Objects.ListBase.IsListBase o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ListBase.ListBase
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ListBase.ListBase

-- | A button with a hyperlink.
--   
--   <picture> <source srcset="link-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkLinkButton" src="link-button.png"> </picture>
--   
--   It is useful to show quick links to resources.
--   
--   A link button is created by calling either linkButtonNew or
--   linkButtonNewWithLabel. If using the former, the URI you pass
--   to the constructor is used as a label for the widget.
--   
--   The URI bound to a GtkLinkButton can be set specifically
--   using linkButtonSetUri.
--   
--   By default, GtkLinkButton calls fileLauncherLaunch
--   when the button is clicked. This behaviour can be overridden by
--   connecting to the LinkButton::activateLink signal and returning
--   True from the signal handler.
--   
--   
Shortcuts and Gestures
--   
--   GtkLinkButton supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Shift</kbd>+<kbd>F10</kbd> or
--   <kbd>Menu</kbd> opens the context menu.
--   
--   
--   
Actions
--   
--   GtkLinkButton defines a set of built-in actions:
--   
--   
--   
- clipboard.copy copies the url to the clipboard.
--   
- menu.popup opens the context menu.
--   
--   
--   
CSS nodes
--   
--   GtkLinkButton has a single CSS node with name button. To
--   differentiate it from a plain GtkButton, it gets the .link
--   style class.
--   
--   
Accessibility
--   
--   GtkLinkButton uses the AccessibleRoleLink role.
module GI.Gtk.Objects.LinkButton

-- | Memory-managed wrapper type.
newtype LinkButton
LinkButton :: ManagedPtr LinkButton -> LinkButton

-- | Type class for types which can be safely cast to LinkButton,
--   for instance with toLinkButton.
class (GObject o, IsDescendantOf LinkButton o) => IsLinkButton o

-- | Cast to LinkButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toLinkButton :: (MonadIO m, IsLinkButton o) => o -> m LinkButton

-- | Retrieves the URI of the GtkLinkButton.
linkButtonGetUri :: (HasCallStack, MonadIO m, IsLinkButton a) => a -> m Text

-- | Retrieves the “visited” state of the GtkLinkButton.
--   
--   The button becomes visited when it is clicked. If the URI is changed
--   on the button, the “visited” state is unset again.
--   
--   The state may also be changed using linkButtonSetVisited.
linkButtonGetVisited :: (HasCallStack, MonadIO m, IsLinkButton a) => a -> m Bool

-- | Creates a new GtkLinkButton with the URI as its text.
linkButtonNew :: (HasCallStack, MonadIO m) => Text -> m LinkButton

-- | Creates a new GtkLinkButton containing a label.
linkButtonNewWithLabel :: (HasCallStack, MonadIO m) => Text -> Maybe Text -> m LinkButton

-- | Sets uri as the URI where the GtkLinkButton
--   points.
--   
--   As a side-effect this unsets the “visited” state of the button.
linkButtonSetUri :: (HasCallStack, MonadIO m, IsLinkButton a) => a -> Text -> m ()

-- | Sets the “visited” state of the GtkLinkButton.
--   
--   See linkButtonGetVisited for more details.
linkButtonSetVisited :: (HasCallStack, MonadIO m, IsLinkButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “uri” property. This is rarely needed directly, but it is
--   used by new.
constructLinkButtonUri :: (IsLinkButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “uri” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get linkButton #uri
--   
getLinkButtonUri :: (MonadIO m, IsLinkButton o) => o -> m Text

-- | Set the value of the “uri” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set linkButton [ #uri := value ]
--   
setLinkButtonUri :: (MonadIO m, IsLinkButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visited” property. This is rarely needed directly, but it is
--   used by new.
constructLinkButtonVisited :: (IsLinkButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visited” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get linkButton #visited
--   
getLinkButtonVisited :: (MonadIO m, IsLinkButton o) => o -> m Bool

-- | Set the value of the “visited” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set linkButton [ #visited := value ]
--   
setLinkButtonVisited :: (MonadIO m, IsLinkButton o) => o -> Bool -> m ()

-- | Emitted each time the GtkLinkButton is clicked.
--   
--   The default handler will call fileLauncherLaunch with the URI
--   stored inside the LinkButton:uri property.
--   
--   To override the default behavior, you can connect to the
--   activateLink signal and stop the propagation of the signal by
--   returning True from your handler.
type LinkButtonActivateLinkCallback = IO Bool

-- | Connect a signal handler for the activateLink signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after linkButton #activateLink callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterLinkButtonActivateLink :: (IsLinkButton a, MonadIO m) => a -> ((?self :: a) => LinkButtonActivateLinkCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateLink signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on linkButton #activateLink callback
--   
onLinkButtonActivateLink :: (IsLinkButton a, MonadIO m) => a -> ((?self :: a) => LinkButtonActivateLinkCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.LinkButton.LinkButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.LinkButton.LinkButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.LinkButton.LinkButton
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.LinkButton.LinkButton)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.LinkButton.LinkButton o) => GI.Gtk.Objects.LinkButton.IsLinkButton o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.LinkButton.LinkButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.LinkButton.LinkButton

-- | Shows a level indicator.
--   
--   Typical use cases are displaying the strength of a password, or
--   showing the charge level of a battery.
--   
--   <picture> <source srcset="levelbar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkLevelBar" src="levelbar.png"> </picture>
--   
--   Use levelBarSetValue to set the current value, and
--   levelBarAddOffsetValue to set the value offsets at which the
--   bar will be considered in a different state. GTK will add a few
--   offsets by default on the level bar: LEVEL_BAR_OFFSET_LOW,
--   LEVEL_BAR_OFFSET_HIGH and LEVEL_BAR_OFFSET_FULL, with
--   values 0.25, 0.75 and 1.0 respectively.
--   
--   Note that it is your responsibility to update preexisting offsets when
--   changing the minimum or maximum value. GTK will simply clamp them to
--   the new range.
--   
--   
Adding a custom offset on the bar
--   
--   
c code
--   
--   
--   static GtkWidget *
--   create_level_bar (void)
--   {
--     GtkWidget *widget;
--     GtkLevelBar *bar;
--   
--     widget = gtk_level_bar_new ();
--     bar = GTK_LEVEL_BAR (widget);
--   
--     // This changes the value of the default low offset
--   
--     gtk_level_bar_add_offset_value (bar,
--                                     GTK_LEVEL_BAR_OFFSET_LOW,
--                                     0.10);
--   
--     // This adds a new offset to the bar; the application will
--     // be able to change its color CSS like this:
--     //
--     // levelbar block.my-offset {
--     //   background-color: magenta;
--     //   border-style: solid;
--     //   border-color: black;
--     //   border-width: 1px;
--     // }
--   
--     gtk_level_bar_add_offset_value (bar, "my-offset", 0.60);
--   
--     return widget;
--   }
--   
--   
--   The default interval of values is between zero and one, but it’s
--   possible to modify the interval using levelBarSetMinValue and
--   levelBarSetMaxValue. The value will be always drawn in
--   proportion to the admissible interval, i.e. a value of 15 with a
--   specified interval between 10 and 20 is equivalent to a value of 0.5
--   with an interval between 0 and 1. When LevelBarModeDiscrete is
--   used, the bar level is rendered as a finite number of separated blocks
--   instead of a single one. The number of blocks that will be rendered is
--   equal to the number of units specified by the admissible interval.
--   
--   For instance, to build a bar rendered with five blocks, it’s
--   sufficient to set the minimum value to 0 and the maximum value to 5
--   after changing the indicator mode to discrete.
--   
--   
GtkLevelBar as GtkBuildable
--   
--   The GtkLevelBar implementation of the GtkBuildable
--   interface supports a custom <offsets> element, which
--   can contain any number of <offset> elements, each of
--   which must have "name" and "value" attributes.
--   
--   
CSS nodes
--   
--   
--   levelbar[.discrete]
--   ╰── trough
--       ├── block.filled.level-name
--       ┊
--       ├── block.empty
--       ┊
--   
--   
--   GtkLevelBar has a main CSS node with name levelbar and one of
--   the style classes .discrete or .continuous and a subnode with name
--   trough. Below the trough node are a number of nodes with name block
--   and style class .filled or .empty. In continuous mode, there is
--   exactly one node of each, in discrete mode, the number of filled and
--   unfilled nodes corresponds to blocks that are drawn. The block.filled
--   nodes also get a style class .level-name corresponding to the level
--   for the current value.
--   
--   In horizontal orientation, the nodes are always arranged from left to
--   right, regardless of text direction.
--   
--   
Accessibility
--   
--   GtkLevelBar uses the AccessibleRoleMeter role.
module GI.Gtk.Objects.LevelBar

-- | Memory-managed wrapper type.
newtype LevelBar
LevelBar :: ManagedPtr LevelBar -> LevelBar

-- | Type class for types which can be safely cast to LevelBar, for
--   instance with toLevelBar.
class (GObject o, IsDescendantOf LevelBar o) => IsLevelBar o

-- | Cast to LevelBar, for types for which this is known to be safe.
--   For general casts, use castTo.
toLevelBar :: (MonadIO m, IsLevelBar o) => o -> m LevelBar

-- | Adds a new offset marker on self at the position
--   specified by value.
--   
--   When the bar value is in the interval topped by value
--   (or between value and LevelBar:maxValue in case
--   the offset is the last one on the bar) a style class named
--   level-name will be applied when rendering the
--   level bar fill.
--   
--   If another offset marker named name exists, its value
--   will be replaced by value.
levelBarAddOffsetValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Text -> Double -> m ()

-- | Returns whether the levelbar is inverted.
levelBarGetInverted :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> m Bool

-- | Returns the max-value of the GtkLevelBar.
levelBarGetMaxValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> m Double

-- | Returns the min-value of the GtkLevelBar.
levelBarGetMinValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> m Double

-- | Returns the mode of the GtkLevelBar.
levelBarGetMode :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> m LevelBarMode

-- | Fetches the value specified for the offset marker name
--   in self.
levelBarGetOffsetValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Maybe Text -> m (Bool, Double)

-- | Returns the value of the GtkLevelBar.
levelBarGetValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> m Double

-- | Creates a new GtkLevelBar.
levelBarNew :: (HasCallStack, MonadIO m) => m LevelBar

-- | Creates a new GtkLevelBar for the specified interval.
levelBarNewForInterval :: (HasCallStack, MonadIO m) => Double -> Double -> m LevelBar

-- | Removes an offset marker from a GtkLevelBar.
--   
--   The marker must have been previously added with
--   levelBarAddOffsetValue.
levelBarRemoveOffsetValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Maybe Text -> m ()

-- | Sets whether the GtkLevelBar is inverted.
levelBarSetInverted :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Bool -> m ()

-- | Sets the max-value of the GtkLevelBar.
--   
--   You probably want to update preexisting level offsets after calling
--   this function.
levelBarSetMaxValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Double -> m ()

-- | Sets the min-value of the GtkLevelBar.
--   
--   You probably want to update preexisting level offsets after calling
--   this function.
levelBarSetMinValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Double -> m ()

-- | Sets the mode of the GtkLevelBar.
levelBarSetMode :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> LevelBarMode -> m ()

-- | Sets the value of the GtkLevelBar.
levelBarSetValue :: (HasCallStack, MonadIO m, IsLevelBar a) => a -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “inverted” property. This is rarely needed directly, but it
--   is used by new.
constructLevelBarInverted :: (IsLevelBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get levelBar #inverted
--   
getLevelBarInverted :: (MonadIO m, IsLevelBar o) => o -> m Bool

-- | Set the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set levelBar [ #inverted := value ]
--   
setLevelBarInverted :: (MonadIO m, IsLevelBar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-value” property. This is rarely needed directly, but it
--   is used by new.
constructLevelBarMaxValue :: (IsLevelBar o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “max-value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get levelBar #maxValue
--   
getLevelBarMaxValue :: (MonadIO m, IsLevelBar o) => o -> m Double

-- | Set the value of the “max-value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set levelBar [ #maxValue := value ]
--   
setLevelBarMaxValue :: (MonadIO m, IsLevelBar o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-value” property. This is rarely needed directly, but it
--   is used by new.
constructLevelBarMinValue :: (IsLevelBar o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “min-value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get levelBar #minValue
--   
getLevelBarMinValue :: (MonadIO m, IsLevelBar o) => o -> m Double

-- | Set the value of the “min-value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set levelBar [ #minValue := value ]
--   
setLevelBarMinValue :: (MonadIO m, IsLevelBar o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mode” property. This is rarely needed directly, but it is
--   used by new.
constructLevelBarMode :: (IsLevelBar o, MonadIO m) => LevelBarMode -> m (GValueConstruct o)

-- | Get the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get levelBar #mode
--   
getLevelBarMode :: (MonadIO m, IsLevelBar o) => o -> m LevelBarMode

-- | Set the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set levelBar [ #mode := value ]
--   
setLevelBarMode :: (MonadIO m, IsLevelBar o) => o -> LevelBarMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “value” property. This is rarely needed directly, but it is
--   used by new.
constructLevelBarValue :: (IsLevelBar o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get levelBar #value
--   
getLevelBarValue :: (MonadIO m, IsLevelBar o) => o -> m Double

-- | Set the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set levelBar [ #value := value ]
--   
setLevelBarValue :: (MonadIO m, IsLevelBar o) => o -> Double -> m ()

-- | Emitted when an offset specified on the bar changes value.
--   
--   This typically is the result of a levelBarAddOffsetValue call.
--   
--   The signal supports detailed connections; you can connect to the
--   detailed signal "changedx" in order to only receive callbacks
--   when the value of offset "x" changes.
type LevelBarOffsetChangedCallback = Text -> IO ()

-- | Connect a signal handler for the offsetChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after levelBar #offsetChanged callback
--   
--   
--   This signal admits a optional parameter detail. If it's not
--   Nothing, we will connect to “offset-changed::detail”
--   instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterLevelBarOffsetChanged :: (IsLevelBar a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => LevelBarOffsetChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the offsetChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on levelBar #offsetChanged callback
--   
--   
--   This signal admits a optional parameter detail. If it's not
--   Nothing, we will connect to “offset-changed::detail”
--   instead.
onLevelBarOffsetChanged :: (IsLevelBar a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => LevelBarOffsetChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.LevelBar.LevelBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.LevelBar.LevelBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.LevelBar.LevelBar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.LevelBar.LevelBar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.LevelBar.LevelBar o) => GI.Gtk.Objects.LevelBar.IsLevelBar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.LevelBar.LevelBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.LevelBar.LevelBar

-- | Handles the preferred size and allocation for children of a widget.
--   
--   You typically subclass GtkLayoutManager if you want to
--   implement a layout policy for the children of a widget, or if you want
--   to determine the size of a widget depending on its contents.
--   
--   Each GtkWidget can only have a GtkLayoutManager
--   instance associated to it at any given time; it is possible, though,
--   to replace the layout manager instance using
--   widgetSetLayoutManager.
--   
--   
Layout properties
--   
--   A layout manager can expose properties for controlling the layout of
--   each child, by creating an object type derived from LayoutChild
--   and installing the properties on it as normal GObject
--   properties.
--   
--   Each GtkLayoutChild instance storing the layout properties
--   for a specific child is created through the
--   layoutManagerGetLayoutChild method; a GtkLayoutManager
--   controls the creation of its GtkLayoutChild instances by
--   overriding the
--   GtkLayoutManagerClass.create_layout_child() virtual
--   function. The typical implementation should look like:
--   
--   
c code
--   
--   
--   static GtkLayoutChild *
--   create_layout_child (GtkLayoutManager *manager,
--                        GtkWidget        *container,
--                        GtkWidget        *child)
--   {
--     return g_object_new (your_layout_child_get_type (),
--                          "layout-manager", manager,
--                          "child-widget", child,
--                          NULL);
--   }
--   
--   
--   The LayoutChild:layoutManager and
--   LayoutChild:childWidget properties on the newly created
--   GtkLayoutChild instance are mandatory. The
--   GtkLayoutManager will cache the newly created
--   GtkLayoutChild instance until the widget is removed from its
--   parent, or the parent removes the layout manager.
--   
--   Each GtkLayoutManager instance creating a
--   GtkLayoutChild should use layoutManagerGetLayoutChild
--   every time it needs to query the layout properties; each
--   GtkLayoutChild instance should call
--   layoutManagerLayoutChanged every time a property is updated, in
--   order to queue a new size measuring and allocation.
module GI.Gtk.Objects.LayoutManager

-- | Memory-managed wrapper type.
newtype LayoutManager
LayoutManager :: ManagedPtr LayoutManager -> LayoutManager

-- | Type class for types which can be safely cast to LayoutManager,
--   for instance with toLayoutManager.
class (GObject o, IsDescendantOf LayoutManager o) => IsLayoutManager o

-- | Cast to LayoutManager, for types for which this is known to be
--   safe. For general casts, use castTo.
toLayoutManager :: (MonadIO m, IsLayoutManager o) => o -> m LayoutManager

-- | Assigns the given width, height, and
--   baseline to a widget, and computes the
--   position and sizes of the children of the widget using
--   the layout management policy of manager.
layoutManagerAllocate :: (HasCallStack, MonadIO m, IsLayoutManager a, IsWidget b) => a -> b -> Int32 -> Int32 -> Int32 -> m ()

-- | Retrieves a GtkLayoutChild instance for the
--   GtkLayoutManager, creating one if necessary.
--   
--   The child widget must be a child of the widget using
--   manager.
--   
--   The GtkLayoutChild instance is owned by the
--   GtkLayoutManager, and is guaranteed to exist as long as
--   child is a child of the GtkWidget using the
--   given GtkLayoutManager.
layoutManagerGetLayoutChild :: (HasCallStack, MonadIO m, IsLayoutManager a, IsWidget b) => a -> b -> m LayoutChild

-- | Retrieves the request mode of manager.
layoutManagerGetRequestMode :: (HasCallStack, MonadIO m, IsLayoutManager a) => a -> m SizeRequestMode

-- | Retrieves the GtkWidget using the given
--   GtkLayoutManager.
layoutManagerGetWidget :: (HasCallStack, MonadIO m, IsLayoutManager a) => a -> m (Maybe Widget)

-- | Queues a resize on the GtkWidget using
--   manager, if any.
--   
--   This function should be called by subclasses of
--   GtkLayoutManager in response to changes to their layout
--   management policies.
layoutManagerLayoutChanged :: (HasCallStack, MonadIO m, IsLayoutManager a) => a -> m ()

-- | Measures the size of the widget using
--   manager, for the given orientation and
--   size.
--   
--   See the Widget documentation on layout management for more
--   details.
layoutManagerMeasure :: (HasCallStack, MonadIO m, IsLayoutManager a, IsWidget b) => a -> b -> Orientation -> Int32 -> m (Int32, Int32, Int32, Int32)
instance GHC.Classes.Eq GI.Gtk.Objects.LayoutManager.LayoutManager
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.LayoutManager.LayoutManager
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.LayoutManager.LayoutManager
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.LayoutManager.LayoutManager)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.LayoutManager.LayoutManager o) => GI.Gtk.Objects.LayoutManager.IsLayoutManager o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.LayoutManager.LayoutManager
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.LayoutManager.LayoutManager

-- | The base class for objects that are meant to hold layout properties.
--   
--   If a GtkLayoutManager has per-child properties, like their
--   packing type, or the horizontal and vertical span, or the icon name,
--   then the layout manager should use a GtkLayoutChild
--   implementation to store those properties.
--   
--   A GtkLayoutChild instance is only ever valid while a widget
--   is part of a layout.
module GI.Gtk.Objects.LayoutChild

-- | Memory-managed wrapper type.
newtype LayoutChild
LayoutChild :: ManagedPtr LayoutChild -> LayoutChild

-- | Type class for types which can be safely cast to LayoutChild,
--   for instance with toLayoutChild.
class (GObject o, IsDescendantOf LayoutChild o) => IsLayoutChild o

-- | Cast to LayoutChild, for types for which this is known to be
--   safe. For general casts, use castTo.
toLayoutChild :: (MonadIO m, IsLayoutChild o) => o -> m LayoutChild

-- | Retrieves the GtkWidget associated to the given
--   layoutChild.
layoutChildGetChildWidget :: (HasCallStack, MonadIO m, IsLayoutChild a) => a -> m Widget

-- | Retrieves the GtkLayoutManager instance that created the
--   given layoutChild.
layoutChildGetLayoutManager :: (HasCallStack, MonadIO m, IsLayoutChild a) => a -> m LayoutManager

-- | Construct a GValueConstruct with valid value for the
--   “child-widget” property. This is rarely needed directly, but
--   it is used by new.
constructLayoutChildChildWidget :: (IsLayoutChild o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get layoutChild #childWidget
--   
getLayoutChildChildWidget :: (MonadIO m, IsLayoutChild o) => o -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “layout-manager” property. This is rarely needed directly,
--   but it is used by new.
constructLayoutChildLayoutManager :: (IsLayoutChild o, MonadIO m, IsLayoutManager a) => a -> m (GValueConstruct o)

-- | Get the value of the “layout-manager” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get layoutChild #layoutManager
--   
getLayoutChildLayoutManager :: (MonadIO m, IsLayoutChild o) => o -> m LayoutManager
instance GHC.Classes.Eq GI.Gtk.Objects.LayoutChild.LayoutChild
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.LayoutChild.LayoutChild
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.LayoutChild.LayoutChild
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.LayoutChild.LayoutChild)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.LayoutChild.LayoutChild o) => GI.Gtk.Objects.LayoutChild.IsLayoutChild o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.LayoutChild.LayoutChild
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.LayoutChild.LayoutChild

-- | Displays a small amount of text.
--   
--   Most labels are used to label another widget (such as an
--   [classentry]).
--   
--   <picture> <source srcset="label-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkLabel" src="label.png"> </picture>
--   
--   
Shortcuts and Gestures
--   
--   GtkLabel supports the following keyboard shortcuts, when the
--   cursor is visible:
--   
--   
--   
- <kbd>Shift</kbd>+<kbd>F10</kbd> or
--   <kbd>Menu</kbd> opens the context menu.
--   
- <kbd>Ctrl</kbd>+<kbd>A</kbd> or
--   <kbd>Ctrl</kbd>+<kbd>&sol;</kbd> selects
--   all.
--   
--   
- <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd>
--   or <kbd>Ctrl</kbd>+<kbd>&bsol;</kbd>
--   unselects all.
--   
--   
--   Additionally, the following signals have default keybindings:
--   
--   
--   
- Label::activateCurrentLink
--   
- Label::copyClipboard
--   
- Label::moveCursor
--   
--   
--   
Actions
--   
--   GtkLabel defines a set of built-in actions:
--   
--   
--   
- clipboard.copy copies the text to the clipboard.
--   
- clipboard.cut doesn't do anything, since text in labels
--   can't be deleted.
--   
- clipboard.paste doesn't do anything, since text in labels
--   can't be edited.
--   
- link.open opens the link, when activated on a link inside
--   the label.
--   
- link.copy copies the link to the clipboard, when
--   activated on a link inside the label.
--   
- menu.popup opens the context menu.
--   
- selection.delete doesn't do anything, since text in
--   labels can't be deleted.
--   
- selection.select-all selects all of the text, if the
--   label allows selection.
--   
--   
--   
CSS nodes
--   
--   
--   label
--   ├── [selection]
--   ├── [link]
--   ┊
--   ╰── [link]
--   
--   
--   GtkLabel has a single CSS node with the name label. A wide
--   variety of style classes may be applied to labels, such as .title,
--   .subtitle, .dim-label, etc. In the GtkShortcutsWindow, labels
--   are used with the .keycap style class.
--   
--   If the label has a selection, it gets a subnode with name selection.
--   
--   If the label has links, there is one subnode per link. These subnodes
--   carry the link or visited state depending on whether they have been
--   visited. In this case, label node also gets a .link style class.
--   
--   
GtkLabel as GtkBuildable
--   
--   The GtkLabel implementation of the GtkBuildable interface supports a
--   custom <attributes> element, which supports any number
--   of <attribute> elements. The <attribute>
--   element has attributes named “name“, “value“, “start“ and “end“ and
--   allows you to specify Attribute values for this label.
--   
--   An example of a UI definition fragment specifying Pango attributes:
--   
--   
xml code
--   
--   
--   <object class="GtkLabel">
--     <attributes>
--       <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
--       <attribute name="background" value="red" start="5" end="10"/>
--     </attributes>
--   </object>
--   
--   
--   The start and end attributes specify the range of characters to which
--   the Pango attribute applies. If start and end are not specified, the
--   attribute is applied to the whole text. Note that specifying ranges
--   does not make much sense with translatable attributes. Use markup
--   embedded in the translatable content instead.
--   
--   
Accessibility
--   
--   GtkLabel uses the AccessibleRoleLabel role.
--   
--   
Mnemonics
--   
--   Labels may contain “mnemonics”. Mnemonics are underlined characters in
--   the label, used for keyboard navigation. Mnemonics are created by
--   providing a string with an underscore before the mnemonic character,
--   such as "_File", to the functions labelNewWithMnemonic
--   or labelSetTextWithMnemonic.
--   
--   Mnemonics automatically activate any activatable widget the label is
--   inside, such as a Button; if the label is not inside the
--   mnemonic’s target widget, you have to tell the label about the target
--   using labelSetMnemonicWidget.
--   
--   Here’s a simple example where the label is inside a button:
--   
--   
c code
--   
--   
--   // Pressing Alt+H will activate this button
--   GtkWidget *button = gtk_button_new ();
--   GtkWidget *label = gtk_label_new_with_mnemonic ("_Hello");
--   gtk_button_set_child (GTK_BUTTON (button), label);
--   
--   
--   There’s a convenience function to create buttons with a mnemonic label
--   already inside:
--   
--   
c code
--   
--   
--   // Pressing Alt+H will activate this button
--   GtkWidget *button = gtk_button_new_with_mnemonic ("_Hello");
--   
--   
--   To create a mnemonic for a widget alongside the label, such as a
--   Entry, you have to point the label at the entry with
--   labelSetMnemonicWidget:
--   
--   
c code
--   
--   
--   // Pressing Alt+H will focus the entry
--   GtkWidget *entry = gtk_entry_new ();
--   GtkWidget *label = gtk_label_new_with_mnemonic ("_Hello");
--   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
--   
--   
--   
Markup (styled text)
--   
--   To make it easy to format text in a label (changing colors, fonts,
--   etc.), label text can be provided in a simple markup format:
--   
--   Here’s how to create a label with a small font:
--   
--   
c code
--   
--   
--   GtkWidget *label = gtk_label_new (NULL);
--   gtk_label_set_markup (GTK_LABEL (label), "<small>Small text</small>");
--   
--   
--   (See the Pango manual for complete documentation] of available tags,
--   parseMarkup)
--   
--   The markup passed to labelSetMarkup must be valid XML; for
--   example, literal <, > and &
--   characters must be escaped as &lt;, &gt;,
--   and &amp;. If you pass text obtained from the user, file,
--   or a network to labelSetMarkup, you’ll want to escape it with
--   markupEscapeText or GLib.markup_printf_escaped.
--   
--   Markup strings are just a convenient way to set the AttrList on
--   a label; labelSetAttributes may be a simpler way to set
--   attributes in some cases. Be careful though; AttrList tends to
--   cause internationalization problems, unless you’re applying attributes
--   to the entire string (i.e. unless you set the range of each attribute
--   to [0, G_MAXINT)). The reason is that specifying the
--   start_index and end_index for a Attribute
--   requires knowledge of the exact string being displayed, so
--   translations will cause problems.
--   
--   
Selectable labels
--   
--   Labels can be made selectable with labelSetSelectable.
--   Selectable labels allow the user to copy the label contents to the
--   clipboard. Only labels that contain useful-to-copy information — such
--   as error messages — should be made selectable.
--   
--   
Text layout
--   
--   A label can contain any number of paragraphs, but will have
--   performance problems if it contains more than a small number.
--   Paragraphs are separated by newlines or other paragraph separators
--   understood by Pango.
--   
--   Labels can automatically wrap text if you call labelSetWrap.
--   
--   labelSetJustify sets how the lines in a label align with one
--   another. If you want to set how the label as a whole aligns in its
--   available space, see the Widget:halign and Widget:valign
--   properties.
--   
--   The Label:widthChars and Label:maxWidthChars properties
--   can be used to control the size allocation of ellipsized or wrapped
--   labels. For ellipsizing labels, if either is specified (and less than
--   the actual text size), it is used as the minimum width, and the actual
--   text size is used as the natural width of the label. For wrapping
--   labels, width-chars is used as the minimum width, if specified, and
--   max-width-chars is used as the natural width. Even if max-width-chars
--   specified, wrapping labels will be rewrapped to use all of the
--   available width.
--   
--   
Links
--   
--   GTK supports markup for clickable hyperlinks in addition to regular
--   Pango markup. The markup for links is borrowed from HTML, using the
--   <a> tag with “href“, “title“ and “class“ attributes.
--   GTK renders links similar to the way they appear in web browsers, with
--   colored, underlined text. The “title“ attribute is displayed as a
--   tooltip on the link. The “class“ attribute is used as style class on
--   the CSS node for the link.
--   
--   An example of inline links looks like this:
--   
--   
c code
--   
--   
--   const char *text =
--   "Go to the "
--   "<a href=\"https://www.gtk.org\" title=\"&lt;i&gt;Our&lt;/i&gt; website\">"
--   "GTK website</a> for more...";
--   GtkWidget *label = gtk_label_new (NULL);
--   gtk_label_set_markup (GTK_LABEL (label), text);
--   
--   
--   It is possible to implement custom handling for links and their
--   tooltips with the Label::activateLink signal and the
--   labelGetCurrentUri function.
module GI.Gtk.Objects.Label

-- | Memory-managed wrapper type.
newtype Label
Label :: ManagedPtr Label -> Label

-- | Type class for types which can be safely cast to Label, for
--   instance with toLabel.
class (GObject o, IsDescendantOf Label o) => IsLabel o

-- | Cast to Label, for types for which this is known to be safe.
--   For general casts, use castTo.
toLabel :: (MonadIO m, IsLabel o) => o -> m Label

-- | Gets the label's attribute list.
--   
--   This is the AttrList that was set on the label using
--   labelSetAttributes, if any. This function does not reflect
--   attributes that come from the label's markup (see
--   labelSetMarkup). If you want to get the effective attributes
--   for the label, use pango_layout_get_attributes
--   (gtk_label_get_layout (self)).
labelGetAttributes :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Maybe AttrList)

-- | Returns the URI for the active link in the label.
--   
--   The active link is the one under the mouse pointer or, in a selectable
--   label, the link in which the text cursor is currently positioned.
--   
--   This function is intended for use in a Label::activateLink
--   handler or for use in a Widget::queryTooltip handler.
labelGetCurrentUri :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Maybe Text)

-- | Returns the ellipsization mode of the label.
--   
--   See labelSetEllipsize.
labelGetEllipsize :: (HasCallStack, MonadIO m, IsLabel a) => a -> m EllipsizeMode

-- | Gets the extra menu model of the label.
--   
--   See labelSetExtraMenu.
labelGetExtraMenu :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Maybe MenuModel)

-- | Returns the justification of the label.
--   
--   See labelSetJustify.
labelGetJustify :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Justification

-- | Fetches the text from a label.
--   
--   The returned text includes any embedded underlines indicating
--   mnemonics and Pango markup. (See labelGetText).
labelGetLabel :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Text

-- | Gets the Pango layout used to display the label.
--   
--   The layout is useful to e.g. convert text positions to pixel
--   positions, in combination with labelGetLayoutOffsets. The
--   returned layout is owned by the label so need not be
--   freed by the caller. The label is free to recreate its
--   layout at any time, so it should be considered read-only.
labelGetLayout :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Layout

-- | Obtains the coordinates where the label will draw its Pango layout.
--   
--   The coordinates are useful to convert mouse events into coordinates
--   inside the Layout, e.g. to take some action if some part of the
--   label is clicked. Remember when using the Layout functions you
--   need to convert to and from pixels using PANGO_PIXELS() or
--   [constpango.SCALE].
labelGetLayoutOffsets :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Int32, Int32)

-- | Gets the number of lines to which an ellipsized, wrapping label should
--   be limited.
--   
--   See labelSetLines.
labelGetLines :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Int32

-- | Retrieves the maximum width of the label in characters.
--   
--   See labelSetWidthChars.
labelGetMaxWidthChars :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Int32

-- | Return the mnemonic accelerator.
--   
--   If the label has been set so that it has a mnemonic key this function
--   returns the keyval used for the mnemonic accelerator. If there is no
--   mnemonic set up it returns GDK_KEY_VoidSymbol.
labelGetMnemonicKeyval :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Word32

-- | Retrieves the mnemonic target of this label.
--   
--   See labelSetMnemonicWidget.
labelGetMnemonicWidget :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Maybe Widget)

-- | Returns natural line wrap mode used by the label.
--   
--   See labelSetNaturalWrapMode.
--   
--   Since: 4.6
labelGetNaturalWrapMode :: (HasCallStack, MonadIO m, IsLabel a) => a -> m NaturalWrapMode

-- | Returns whether the label is selectable.
labelGetSelectable :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Bool

-- | Gets the selected range of characters in the label.
--   
--   The returned start and end positions
--   are in characters.
labelGetSelectionBounds :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Bool, Int32, Int32)

-- | Returns whether the label is in single line mode.
labelGetSingleLineMode :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Bool

-- | Gets the tab stops for the label.
--   
--   The returned array will be NULL if “standard” (8-space) tabs
--   are used.
--   
--   Since: 4.8
labelGetTabs :: (HasCallStack, MonadIO m, IsLabel a) => a -> m (Maybe TabArray)

-- | Gets the text of the label.
--   
--   The returned text is as it appears on screen. This does not include
--   any embedded underlines indicating mnemonics or Pango markup. (See
--   labelGetLabel)
labelGetText :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Text

-- | Returns whether the label’s text is interpreted as Pango markup.
--   
--   See labelSetUseMarkup.
labelGetUseMarkup :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Bool

-- | Returns whether underlines in the label indicate mnemonics.
--   
--   See labelSetUseUnderline.
labelGetUseUnderline :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Bool

-- | Retrieves the desired width of the label in characters.
--   
--   See labelSetWidthChars.
labelGetWidthChars :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Int32

-- | Returns whether lines in the label are automatically wrapped.
--   
--   See labelSetWrap.
labelGetWrap :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Bool

-- | Returns line wrap mode used by the label.
--   
--   See labelSetWrapMode.
labelGetWrapMode :: (HasCallStack, MonadIO m, IsLabel a) => a -> m WrapMode

-- | Gets the xalign of the label.
--   
--   See the Label:xalign property.
labelGetXalign :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Float

-- | Gets the yalign of the label.
--   
--   See the Label:yalign property.
labelGetYalign :: (HasCallStack, MonadIO m, IsLabel a) => a -> m Float

-- | Creates a new label with the given text inside it.
--   
--   You can pass NULL to get an empty label widget.
labelNew :: (HasCallStack, MonadIO m) => Maybe Text -> m Label

-- | Creates a new label with the given text inside it, and a mnemonic.
--   
--   If characters in str are preceded by an underscore,
--   they are underlined. If you need a literal underscore character in a
--   label, use '__' (two underscores). The first underlined character
--   represents a keyboard accelerator called a mnemonic. The mnemonic key
--   can be used to activate another widget, chosen automatically, or
--   explicitly using labelSetMnemonicWidget.
--   
--   If labelSetMnemonicWidget is not called, then the first
--   activatable ancestor of the label will be chosen as the mnemonic
--   widget. For instance, if the label is inside a button or menu item,
--   the button or menu item will automatically become the mnemonic widget
--   and be activated by the mnemonic.
labelNewWithMnemonic :: (HasCallStack, MonadIO m) => Maybe Text -> m Label

-- | Selects a range of characters in the label, if the label is
--   selectable.
--   
--   See labelSetSelectable. If the label is not selectable, this
--   function has no effect. If startOffset or
--   endOffset are -1, then the end of the label will be
--   substituted.
labelSelectRegion :: (HasCallStack, MonadIO m, IsLabel a) => a -> Int32 -> Int32 -> m ()

-- | Apply attributes to the label text.
--   
--   The attributes set with this function will be applied and merged with
--   any other attributes previously effected by way of the
--   Label:useUnderline or Label:useMarkup properties
--   
--   While it is not recommended to mix markup strings with manually set
--   attributes, if you must; know that the attributes will be applied to
--   the label after the markup string is parsed.
labelSetAttributes :: (HasCallStack, MonadIO m, IsLabel a) => a -> Maybe AttrList -> m ()

-- | Sets the mode used to ellipsize the text.
--   
--   The text will be ellipsized if there is not enough space to render the
--   entire string.
labelSetEllipsize :: (HasCallStack, MonadIO m, IsLabel a) => a -> EllipsizeMode -> m ()

-- | Sets a menu model to add to the context menu of the label.
labelSetExtraMenu :: (HasCallStack, MonadIO m, IsLabel a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets the alignment of lines in the label relative to each other.
--   
--   This function has no effect on labels containing only a single line.
--   
--   JustificationLeft is the default value when the widget is first
--   created with labelNew.
--   
--   If you instead want to set the alignment of the label as a whole, use
--   widgetSetHalign instead.
labelSetJustify :: (HasCallStack, MonadIO m, IsLabel a) => a -> Justification -> m ()

-- | Sets the text of the label.
--   
--   The label is interpreted as including embedded underlines and/or Pango
--   markup depending on the values of the Label:useUnderline and
--   Label:useMarkup properties.
labelSetLabel :: (HasCallStack, MonadIO m, IsLabel a) => a -> Text -> m ()

-- | Sets the number of lines to which an ellipsized, wrapping label should
--   be limited.
--   
--   This has no effect if the label is not wrapping or ellipsized. Set
--   this to -1 if you don’t want to limit the number of lines.
labelSetLines :: (HasCallStack, MonadIO m, IsLabel a) => a -> Int32 -> m ()

-- | Sets the labels text and attributes from markup.
--   
--   The string must be marked up with Pango markup (see
--   parseMarkup).
--   
--   If str is external data, you may need to escape it
--   with markupEscapeText or
--   GLib.markup_printf_escaped:
--   
--   
c code
--   
--   
--   GtkWidget *self = gtk_label_new (NULL);
--   const char *str = "...";
--   const char *format = "<span style=\"italic\">\%s</span>";
--   char *markup;
--   
--   markup = g_markup_printf_escaped (format, str);
--   gtk_label_set_markup (GTK_LABEL (self), markup);
--   g_free (markup);
--   
--   
--   This function sets the Label:useMarkup property to true.
--   
--   Also see labelSetText.
labelSetMarkup :: (HasCallStack, MonadIO m, IsLabel a) => a -> Text -> m ()

-- | Sets the labels text, attributes and mnemonic from markup.
--   
--   Parses str which is marked up with Pango markup (see
--   parseMarkup), setting the label’s text and attribute list based
--   on the parse results. If characters in str are
--   preceded by an underscore, they are underlined indicating that they
--   represent a keyboard accelerator called a mnemonic.
--   
--   The mnemonic key can be used to activate another widget, chosen
--   automatically, or explicitly using labelSetMnemonicWidget.
labelSetMarkupWithMnemonic :: (HasCallStack, MonadIO m, IsLabel a) => a -> Text -> m ()

-- | Sets the maximum width of the label in characters.
labelSetMaxWidthChars :: (HasCallStack, MonadIO m, IsLabel a) => a -> Int32 -> m ()

-- | Associate the label with its mnemonic target.
--   
--   If the label has been set so that it has a mnemonic key (using i.e.
--   labelSetMarkupWithMnemonic, labelSetTextWithMnemonic,
--   labelNewWithMnemonic or the
--   [propertygtk.Label:use_underline] property) the label
--   can be associated with a widget that is the target of the mnemonic.
--   When the label is inside a widget (like a Button or a
--   Notebook tab) it is automatically associated with the correct
--   widget, but sometimes (i.e. when the target is a Entry next to
--   the label) you need to set it explicitly using this function.
--   
--   The target widget will be accelerated by emitting the
--   Widget::mnemonicActivate signal on it. The default handler for
--   this signal will activate the widget if there are no mnemonic
--   collisions and toggle focus between the colliding widgets otherwise.
labelSetMnemonicWidget :: (HasCallStack, MonadIO m, IsLabel a, IsWidget b) => a -> Maybe b -> m ()

-- | Selects the line wrapping for the natural size request.
--   
--   This only affects the natural size requested, for the actual wrapping
--   used, see the Label:wrapMode property.
--   
--   Since: 4.6
labelSetNaturalWrapMode :: (HasCallStack, MonadIO m, IsLabel a) => a -> NaturalWrapMode -> m ()

-- | Makes text in the label selectable.
--   
--   Selectable labels allow the user to select text from the label, for
--   copy-and-paste.
labelSetSelectable :: (HasCallStack, MonadIO m, IsLabel a) => a -> Bool -> m ()

-- | Sets whether the label is in single line mode.
labelSetSingleLineMode :: (HasCallStack, MonadIO m, IsLabel a) => a -> Bool -> m ()

-- | Sets tab stops for the label.
--   
--   Since: 4.8
labelSetTabs :: (HasCallStack, MonadIO m, IsLabel a) => a -> Maybe TabArray -> m ()

-- | Sets the text for the label.
--   
--   It overwrites any text that was there before and clears any previously
--   set mnemonic accelerators, and sets the Label:useUnderline and
--   Label:useMarkup properties to false.
--   
--   Also see labelSetMarkup.
labelSetText :: (HasCallStack, MonadIO m, IsLabel a) => a -> Text -> m ()

-- | Sets the text for the label, with mnemonics.
--   
--   If characters in str are preceded by an underscore,
--   they are underlined indicating that they represent a keyboard
--   accelerator called a mnemonic. The mnemonic key can be used to
--   activate another widget, chosen automatically, or explicitly using
--   labelSetMnemonicWidget.
labelSetTextWithMnemonic :: (HasCallStack, MonadIO m, IsLabel a) => a -> Text -> m ()

-- | Sets whether the text of the label contains markup.
--   
--   See labelSetMarkup.
labelSetUseMarkup :: (HasCallStack, MonadIO m, IsLabel a) => a -> Bool -> m ()

-- | Sets whether underlines in the text indicate mnemonics.
labelSetUseUnderline :: (HasCallStack, MonadIO m, IsLabel a) => a -> Bool -> m ()

-- | Sets the desired width in characters of the label.
labelSetWidthChars :: (HasCallStack, MonadIO m, IsLabel a) => a -> Int32 -> m ()

-- | Toggles line wrapping within the label.
--   
--   True makes it break lines if text exceeds the widget’s size. false
--   lets the text get cut off by the edge of the widget if it exceeds the
--   widget size.
--   
--   Note that setting line wrapping to true does not make the label wrap
--   at its parent widget’s width, because GTK widgets conceptually can’t
--   make their requisition depend on the parent widget’s size. For a label
--   that wraps at a specific position, set the label’s width using
--   widgetSetSizeRequest.
labelSetWrap :: (HasCallStack, MonadIO m, IsLabel a) => a -> Bool -> m ()

-- | Controls how line wrapping is done.
--   
--   This only affects the label if line wrapping is on. (See
--   labelSetWrap)
--   
--   The default is WrapModeWord, which means wrap on word
--   boundaries.
--   
--   For sizing behavior, also consider the Label:naturalWrapMode
--   property.
labelSetWrapMode :: (HasCallStack, MonadIO m, IsLabel a) => a -> WrapMode -> m ()

-- | Sets the xalign of the label.
--   
--   See the Label:xalign property.
labelSetXalign :: (HasCallStack, MonadIO m, IsLabel a) => a -> Float -> m ()

-- | Sets the yalign of the label.
--   
--   See the Label:yalign property.
labelSetYalign :: (HasCallStack, MonadIO m, IsLabel a) => a -> Float -> m ()

-- | Set the value of the “attributes” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #attributes
--   
clearLabelAttributes :: (MonadIO m, IsLabel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructLabelAttributes :: (IsLabel o, MonadIO m) => AttrList -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #attributes
--   
getLabelAttributes :: (MonadIO m, IsLabel o) => o -> m (Maybe AttrList)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #attributes := value ]
--   
setLabelAttributes :: (MonadIO m, IsLabel o) => o -> AttrList -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ellipsize” property. This is rarely needed directly, but it
--   is used by new.
constructLabelEllipsize :: (IsLabel o, MonadIO m) => EllipsizeMode -> m (GValueConstruct o)

-- | Get the value of the “ellipsize” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #ellipsize
--   
getLabelEllipsize :: (MonadIO m, IsLabel o) => o -> m EllipsizeMode

-- | Set the value of the “ellipsize” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #ellipsize := value ]
--   
setLabelEllipsize :: (MonadIO m, IsLabel o) => o -> EllipsizeMode -> m ()

-- | Set the value of the “extra-menu” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #extraMenu
--   
clearLabelExtraMenu :: (MonadIO m, IsLabel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “extra-menu” property. This is rarely needed directly, but it
--   is used by new.
constructLabelExtraMenu :: (IsLabel o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #extraMenu
--   
getLabelExtraMenu :: (MonadIO m, IsLabel o) => o -> m (Maybe MenuModel)

-- | Set the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #extraMenu := value ]
--   
setLabelExtraMenu :: (MonadIO m, IsLabel o, IsMenuModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “justify” property. This is rarely needed directly, but it is
--   used by new.
constructLabelJustify :: (IsLabel o, MonadIO m) => Justification -> m (GValueConstruct o)

-- | Get the value of the “justify” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #justify
--   
getLabelJustify :: (MonadIO m, IsLabel o) => o -> m Justification

-- | Set the value of the “justify” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #justify := value ]
--   
setLabelJustify :: (MonadIO m, IsLabel o) => o -> Justification -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label” property. This is rarely needed directly, but it is
--   used by new.
constructLabelLabel :: (IsLabel o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #label
--   
getLabelLabel :: (MonadIO m, IsLabel o) => o -> m Text

-- | Set the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #label := value ]
--   
setLabelLabel :: (MonadIO m, IsLabel o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “lines” property. This is rarely needed directly, but it is
--   used by new.
constructLabelLines :: (IsLabel o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #lines
--   
getLabelLines :: (MonadIO m, IsLabel o) => o -> m Int32

-- | Set the value of the “lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #lines := value ]
--   
setLabelLines :: (MonadIO m, IsLabel o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-width-chars” property. This is rarely needed directly,
--   but it is used by new.
constructLabelMaxWidthChars :: (IsLabel o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #maxWidthChars
--   
getLabelMaxWidthChars :: (MonadIO m, IsLabel o) => o -> m Int32

-- | Set the value of the “max-width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #maxWidthChars := value ]
--   
setLabelMaxWidthChars :: (MonadIO m, IsLabel o) => o -> Int32 -> m ()

-- | Get the value of the “mnemonic-keyval” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #mnemonicKeyval
--   
getLabelMnemonicKeyval :: (MonadIO m, IsLabel o) => o -> m Word32

-- | Set the value of the “mnemonic-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #mnemonicWidget
--   
clearLabelMnemonicWidget :: (MonadIO m, IsLabel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mnemonic-widget” property. This is rarely needed directly,
--   but it is used by new.
constructLabelMnemonicWidget :: (IsLabel o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “mnemonic-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #mnemonicWidget
--   
getLabelMnemonicWidget :: (MonadIO m, IsLabel o) => o -> m (Maybe Widget)

-- | Set the value of the “mnemonic-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #mnemonicWidget := value ]
--   
setLabelMnemonicWidget :: (MonadIO m, IsLabel o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “natural-wrap-mode” property. This is rarely needed directly,
--   but it is used by new.
constructLabelNaturalWrapMode :: (IsLabel o, MonadIO m) => NaturalWrapMode -> m (GValueConstruct o)

-- | Get the value of the “natural-wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #naturalWrapMode
--   
getLabelNaturalWrapMode :: (MonadIO m, IsLabel o) => o -> m NaturalWrapMode

-- | Set the value of the “natural-wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #naturalWrapMode := value ]
--   
setLabelNaturalWrapMode :: (MonadIO m, IsLabel o) => o -> NaturalWrapMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “selectable” property. This is rarely needed directly, but it
--   is used by new.
constructLabelSelectable :: (IsLabel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #selectable
--   
getLabelSelectable :: (MonadIO m, IsLabel o) => o -> m Bool

-- | Set the value of the “selectable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #selectable := value ]
--   
setLabelSelectable :: (MonadIO m, IsLabel o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “single-line-mode” property. This is rarely needed directly,
--   but it is used by new.
constructLabelSingleLineMode :: (IsLabel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “single-line-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #singleLineMode
--   
getLabelSingleLineMode :: (MonadIO m, IsLabel o) => o -> m Bool

-- | Set the value of the “single-line-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #singleLineMode := value ]
--   
setLabelSingleLineMode :: (MonadIO m, IsLabel o) => o -> Bool -> m ()

-- | Set the value of the “tabs” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #tabs
--   
clearLabelTabs :: (MonadIO m, IsLabel o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tabs” property. This is rarely needed directly, but it is
--   used by new.
constructLabelTabs :: (IsLabel o, MonadIO m) => TabArray -> m (GValueConstruct o)

-- | Get the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get label #tabs
--   
getLabelTabs :: (MonadIO m, IsLabel o) => o -> m (Maybe TabArray)

-- | Set the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set label [ #tabs := value ]
--   
setLabelTabs :: (MonadIO m, IsLabel o) => o -> TabArray -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-markup” property. This is rarely needed directly, but it
--   is used by new.
constructLabelUseMarkup :: (IsLabel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #useMarkup
--   
getLabelUseMarkup :: (MonadIO m, IsLabel o) => o -> m Bool

-- | Set the value of the “use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #useMarkup := value ]
--   
setLabelUseMarkup :: (MonadIO m, IsLabel o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-underline” property. This is rarely needed directly, but
--   it is used by new.
constructLabelUseUnderline :: (IsLabel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #useUnderline
--   
getLabelUseUnderline :: (MonadIO m, IsLabel o) => o -> m Bool

-- | Set the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #useUnderline := value ]
--   
setLabelUseUnderline :: (MonadIO m, IsLabel o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “width-chars” property. This is rarely needed directly, but
--   it is used by new.
constructLabelWidthChars :: (IsLabel o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #widthChars
--   
getLabelWidthChars :: (MonadIO m, IsLabel o) => o -> m Int32

-- | Set the value of the “width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #widthChars := value ]
--   
setLabelWidthChars :: (MonadIO m, IsLabel o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap” property. This is rarely needed directly, but it is
--   used by new.
constructLabelWrap :: (IsLabel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “wrap” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get label #wrap
--   
getLabelWrap :: (MonadIO m, IsLabel o) => o -> m Bool

-- | Set the value of the “wrap” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set label [ #wrap := value ]
--   
setLabelWrap :: (MonadIO m, IsLabel o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-mode” property. This is rarely needed directly, but it
--   is used by new.
constructLabelWrapMode :: (IsLabel o, MonadIO m) => WrapMode -> m (GValueConstruct o)

-- | Get the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #wrapMode
--   
getLabelWrapMode :: (MonadIO m, IsLabel o) => o -> m WrapMode

-- | Set the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #wrapMode := value ]
--   
setLabelWrapMode :: (MonadIO m, IsLabel o) => o -> WrapMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “xalign” property. This is rarely needed directly, but it is
--   used by new.
constructLabelXalign :: (IsLabel o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #xalign
--   
getLabelXalign :: (MonadIO m, IsLabel o) => o -> m Float

-- | Set the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #xalign := value ]
--   
setLabelXalign :: (MonadIO m, IsLabel o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “yalign” property. This is rarely needed directly, but it is
--   used by new.
constructLabelYalign :: (IsLabel o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get label #yalign
--   
getLabelYalign :: (MonadIO m, IsLabel o) => o -> m Float

-- | Set the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set label [ #yalign := value ]
--   
setLabelYalign :: (MonadIO m, IsLabel o) => o -> Float -> m ()

-- | Gets emitted when the user activates a link in the label.
--   
--   The ::activate-current-link is a keybinding signal.
--   
--   Applications may also emit the signal with
--   g_signal_emit_by_name() if they need to control
--   activation of URIs programmatically.
--   
--   The default bindings for this signal are all forms of the
--   <kbd>Enter</kbd> key.
type LabelActivateCurrentLinkCallback = IO ()

-- | Connect a signal handler for the activateCurrentLink signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after label #activateCurrentLink callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterLabelActivateCurrentLink :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelActivateCurrentLinkCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateCurrentLink signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on label #activateCurrentLink callback
--   
onLabelActivateCurrentLink :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelActivateCurrentLinkCallback) -> m SignalHandlerId

-- | Gets emitted to activate a URI.
--   
--   Applications may connect to it to override the default behaviour,
--   which is to call fileLauncherLaunch.
type LabelActivateLinkCallback = Text -> IO Bool

-- | Connect a signal handler for the activateLink signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after label #activateLink callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterLabelActivateLink :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelActivateLinkCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateLink signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on label #activateLink callback
--   
onLabelActivateLink :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelActivateLinkCallback) -> m SignalHandlerId

-- | Gets emitted to copy the selection to the clipboard.
--   
--   The ::copy-clipboard signal is a keybinding signal.
--   
--   The default binding for this signal is
--   <kbd>Ctrl</kbd>+<kbd>c</kbd>.
type LabelCopyClipboardCallback = IO ()

-- | Connect a signal handler for the copyClipboard signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after label #copyClipboard callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterLabelCopyClipboard :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelCopyClipboardCallback) -> m SignalHandlerId

-- | Connect a signal handler for the copyClipboard signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on label #copyClipboard callback
--   
onLabelCopyClipboard :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelCopyClipboardCallback) -> m SignalHandlerId

-- | Gets emitted when the user initiates a cursor movement.
--   
--   The ::move-cursor signal is a keybinding signal. If
--   the cursor is not visible in entry, this signal causes
--   the viewport to be moved instead.
--   
--   Applications should not connect to it, but may emit it with
--   GObject.signal_emit_by_name if they need to control
--   the cursor programmatically.
--   
--   The default bindings for this signal come in two variants, the variant
--   with the <kbd>Shift</kbd> modifier extends the selection,
--   the variant without the <kbd>Shift</kbd> modifier does
--   not. There are too many key combinations to list them all here.
--   
--   
--   
- <kbd>←</kbd>, <kbd>→</kbd>,
--   <kbd>↑</kbd>, <kbd>↓</kbd> move by individual
--   characters/lines
--   
- <kbd>Ctrl</kbd>+<kbd>←</kbd>, etc. move by
--   words/paragraphs
--   
- <kbd>Home</kbd> and <kbd>End</kbd> move to
--   the ends of the buffer
--   
type LabelMoveCursorCallback = MovementStep -> Int32 -> Bool -> IO ()

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after label #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterLabelMoveCursor :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on label #moveCursor callback
--   
onLabelMoveCursor :: (IsLabel a, MonadIO m) => a -> ((?self :: a) => LabelMoveCursorCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Label.Label
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Label.Label
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Label.Label
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Label.Label)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Label.Label o) => GI.Gtk.Objects.Label.IsLabel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Label.Label
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Label.Label

-- | Shows text in a predefined area.
--   
--   You likely want to use GtkLabel instead as this widget is
--   intended only for a small subset of use cases. The main scenario
--   envisaged is inside lists such as GtkColumnView.
--   
--   While a GtkLabel sizes itself depending on the text that is
--   displayed, GtkInscription is given a size and inscribes the
--   given text into that space as well as it can.
--   
--   Users of this widget should take care to plan behaviour for the common
--   case where the text doesn't fit exactly in the allocated space.
--   
--   
CSS nodes
--   
--   GtkInscription has a single CSS node with the name label.
--   
--   Since: 4.8
module GI.Gtk.Objects.Inscription

-- | Memory-managed wrapper type.
newtype Inscription
Inscription :: ManagedPtr Inscription -> Inscription

-- | Type class for types which can be safely cast to Inscription,
--   for instance with toInscription.
class (GObject o, IsDescendantOf Inscription o) => IsInscription o

-- | Cast to Inscription, for types for which this is known to be
--   safe. For general casts, use castTo.
toInscription :: (MonadIO m, IsInscription o) => o -> m Inscription

-- | Gets the inscription's attribute list.
--   
--   Since: 4.8
inscriptionGetAttributes :: (HasCallStack, MonadIO m, IsInscription a) => a -> m (Maybe AttrList)

-- | Gets the min-chars of the inscription.
--   
--   See the Inscription:minChars property.
--   
--   Since: 4.8
inscriptionGetMinChars :: (HasCallStack, MonadIO m, IsInscription a) => a -> m Word32

-- | Gets the min-lines of the inscription.
--   
--   See the Inscription:minLines property.
--   
--   Since: 4.8
inscriptionGetMinLines :: (HasCallStack, MonadIO m, IsInscription a) => a -> m Word32

-- | Gets the nat-chars of the inscription.
--   
--   See the Inscription:natChars property.
--   
--   Since: 4.8
inscriptionGetNatChars :: (HasCallStack, MonadIO m, IsInscription a) => a -> m Word32

-- | Gets the nat-lines of the inscription.
--   
--   See the Inscription:natLines property.
--   
--   Since: 4.8
inscriptionGetNatLines :: (HasCallStack, MonadIO m, IsInscription a) => a -> m Word32

-- | Gets the text that is displayed.
--   
--   Since: 4.8
inscriptionGetText :: (HasCallStack, MonadIO m, IsInscription a) => a -> m (Maybe Text)

-- | Gets the inscription's overflow method.
--   
--   Since: 4.8
inscriptionGetTextOverflow :: (HasCallStack, MonadIO m, IsInscription a) => a -> m InscriptionOverflow

-- | Returns line wrap mode used by the inscription.
--   
--   See inscriptionSetWrapMode.
--   
--   Since: 4.8
inscriptionGetWrapMode :: (HasCallStack, MonadIO m, IsInscription a) => a -> m WrapMode

-- | Gets the xalign of the inscription.
--   
--   See the Inscription:xalign property.
--   
--   Since: 4.8
inscriptionGetXalign :: (HasCallStack, MonadIO m, IsInscription a) => a -> m Float

-- | Gets the yalign of the inscription.
--   
--   See the Inscription:yalign property.
--   
--   Since: 4.8
inscriptionGetYalign :: (HasCallStack, MonadIO m, IsInscription a) => a -> m Float

-- | Creates a new GtkInscription with the given text.
--   
--   Since: 4.8
inscriptionNew :: (HasCallStack, MonadIO m) => Maybe Text -> m Inscription

-- | Apply attributes to the inscription text.
--   
--   These attributes will not be evaluated for sizing the inscription.
--   
--   Since: 4.8
inscriptionSetAttributes :: (HasCallStack, MonadIO m, IsInscription a) => a -> Maybe AttrList -> m ()

-- | Utility function to set the text and attributes to be displayed.
--   
--   See the Inscription:markup property.
--   
--   Since: 4.8
inscriptionSetMarkup :: (HasCallStack, MonadIO m, IsInscription a) => a -> Maybe Text -> m ()

-- | Sets the min-chars of the inscription.
--   
--   See the Inscription:minChars property.
--   
--   Since: 4.8
inscriptionSetMinChars :: (HasCallStack, MonadIO m, IsInscription a) => a -> Word32 -> m ()

-- | Sets the min-lines of the inscription.
--   
--   See the Inscription:minLines property.
--   
--   Since: 4.8
inscriptionSetMinLines :: (HasCallStack, MonadIO m, IsInscription a) => a -> Word32 -> m ()

-- | Sets the nat-chars of the inscription.
--   
--   See the Inscription:natChars property.
--   
--   Since: 4.8
inscriptionSetNatChars :: (HasCallStack, MonadIO m, IsInscription a) => a -> Word32 -> m ()

-- | Sets the nat-lines of the inscription.
--   
--   See the Inscription:natLines property.
--   
--   Since: 4.8
inscriptionSetNatLines :: (HasCallStack, MonadIO m, IsInscription a) => a -> Word32 -> m ()

-- | Sets the text to be displayed.
--   
--   Since: 4.8
inscriptionSetText :: (HasCallStack, MonadIO m, IsInscription a) => a -> Maybe Text -> m ()

-- | Sets what to do when the text doesn't fit.
--   
--   Since: 4.8
inscriptionSetTextOverflow :: (HasCallStack, MonadIO m, IsInscription a) => a -> InscriptionOverflow -> m ()

-- | Controls how line wrapping is done.
--   
--   Since: 4.8
inscriptionSetWrapMode :: (HasCallStack, MonadIO m, IsInscription a) => a -> WrapMode -> m ()

-- | Sets the xalign of the inscription.
--   
--   See the Inscription:xalign property.
--   
--   Since: 4.8
inscriptionSetXalign :: (HasCallStack, MonadIO m, IsInscription a) => a -> Float -> m ()

-- | Sets the yalign of the inscription.
--   
--   See the Inscription:yalign property.
--   
--   Since: 4.8
inscriptionSetYalign :: (HasCallStack, MonadIO m, IsInscription a) => a -> Float -> m ()

-- | Set the value of the “attributes” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #attributes
--   
clearInscriptionAttributes :: (MonadIO m, IsInscription o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructInscriptionAttributes :: (IsInscription o, MonadIO m) => AttrList -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #attributes
--   
getInscriptionAttributes :: (MonadIO m, IsInscription o) => o -> m (Maybe AttrList)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #attributes := value ]
--   
setInscriptionAttributes :: (MonadIO m, IsInscription o) => o -> AttrList -> m ()

-- | Set the value of the “markup” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #markup
--   
clearInscriptionMarkup :: (MonadIO m, IsInscription o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “markup” property. This is rarely needed directly, but it is
--   used by new.
constructInscriptionMarkup :: (IsInscription o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #markup := value ]
--   
setInscriptionMarkup :: (MonadIO m, IsInscription o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-chars” property. This is rarely needed directly, but it
--   is used by new.
constructInscriptionMinChars :: (IsInscription o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “min-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #minChars
--   
getInscriptionMinChars :: (MonadIO m, IsInscription o) => o -> m Word32

-- | Set the value of the “min-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #minChars := value ]
--   
setInscriptionMinChars :: (MonadIO m, IsInscription o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-lines” property. This is rarely needed directly, but it
--   is used by new.
constructInscriptionMinLines :: (IsInscription o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “min-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #minLines
--   
getInscriptionMinLines :: (MonadIO m, IsInscription o) => o -> m Word32

-- | Set the value of the “min-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #minLines := value ]
--   
setInscriptionMinLines :: (MonadIO m, IsInscription o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “nat-chars” property. This is rarely needed directly, but it
--   is used by new.
constructInscriptionNatChars :: (IsInscription o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “nat-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #natChars
--   
getInscriptionNatChars :: (MonadIO m, IsInscription o) => o -> m Word32

-- | Set the value of the “nat-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #natChars := value ]
--   
setInscriptionNatChars :: (MonadIO m, IsInscription o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “nat-lines” property. This is rarely needed directly, but it
--   is used by new.
constructInscriptionNatLines :: (IsInscription o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “nat-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #natLines
--   
getInscriptionNatLines :: (MonadIO m, IsInscription o) => o -> m Word32

-- | Set the value of the “nat-lines” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #natLines := value ]
--   
setInscriptionNatLines :: (MonadIO m, IsInscription o) => o -> Word32 -> m ()

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearInscriptionText :: (MonadIO m, IsInscription o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructInscriptionText :: (IsInscription o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get inscription #text
--   
getInscriptionText :: (MonadIO m, IsInscription o) => o -> m (Maybe Text)

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set inscription [ #text := value ]
--   
setInscriptionText :: (MonadIO m, IsInscription o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-overflow” property. This is rarely needed directly, but
--   it is used by new.
constructInscriptionTextOverflow :: (IsInscription o, MonadIO m) => InscriptionOverflow -> m (GValueConstruct o)

-- | Get the value of the “text-overflow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #textOverflow
--   
getInscriptionTextOverflow :: (MonadIO m, IsInscription o) => o -> m InscriptionOverflow

-- | Set the value of the “text-overflow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #textOverflow := value ]
--   
setInscriptionTextOverflow :: (MonadIO m, IsInscription o) => o -> InscriptionOverflow -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-mode” property. This is rarely needed directly, but it
--   is used by new.
constructInscriptionWrapMode :: (IsInscription o, MonadIO m) => WrapMode -> m (GValueConstruct o)

-- | Get the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #wrapMode
--   
getInscriptionWrapMode :: (MonadIO m, IsInscription o) => o -> m WrapMode

-- | Set the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #wrapMode := value ]
--   
setInscriptionWrapMode :: (MonadIO m, IsInscription o) => o -> WrapMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “xalign” property. This is rarely needed directly, but it is
--   used by new.
constructInscriptionXalign :: (IsInscription o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #xalign
--   
getInscriptionXalign :: (MonadIO m, IsInscription o) => o -> m Float

-- | Set the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #xalign := value ]
--   
setInscriptionXalign :: (MonadIO m, IsInscription o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “yalign” property. This is rarely needed directly, but it is
--   used by new.
constructInscriptionYalign :: (IsInscription o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get inscription #yalign
--   
getInscriptionYalign :: (MonadIO m, IsInscription o) => o -> m Float

-- | Set the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set inscription [ #yalign := value ]
--   
setInscriptionYalign :: (MonadIO m, IsInscription o) => o -> Float -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Inscription.Inscription
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Inscription.Inscription
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Inscription.Inscription
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Inscription.Inscription)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Inscription.Inscription o) => GI.Gtk.Objects.Inscription.IsInscription o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Inscription.Inscription
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Inscription.Inscription

-- | GtkInfoBar can be used to show messages to the user without a
--   dialog.
--   
--   <picture> <source srcset="info-bar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkInfoBar" src="info-bar.png"> </picture>
--   
--   It is often temporarily shown at the top or bottom of a document. In
--   contrast to Dialog, which has an action area at the bottom,
--   GtkInfoBar has an action area at the side.
--   
--   The API of GtkInfoBar is very similar to GtkDialog,
--   allowing you to add buttons to the action area with
--   infoBarAddButton or
--   InfoBar.new_with_buttons(). The sensitivity of
--   action widgets can be controlled with
--   infoBarSetResponseSensitive.
--   
--   To add widgets to the main content area of a GtkInfoBar, use
--   infoBarAddChild.
--   
--   Similar to MessageDialog, the contents of a GtkInfoBar
--   can by classified as error message, warning, informational message,
--   etc, by using infoBarSetMessageType. GTK may use the message
--   type to determine how the message is displayed.
--   
--   A simple example for using a GtkInfoBar:
--   
--   
c code
--   
--   
--   GtkWidget *message_label;
--   GtkWidget *widget;
--   GtkWidget *grid;
--   GtkInfoBar *bar;
--   
--   // set up info bar
--   widget = gtk_info_bar_new ();
--   bar = GTK_INFO_BAR (widget);
--   grid = gtk_grid_new ();
--   
--   message_label = gtk_label_new ("");
--   gtk_info_bar_add_child (bar, message_label);
--   gtk_info_bar_add_button (bar,
--                            _("_OK"),
--                            GTK_RESPONSE_OK);
--   g_signal_connect (bar,
--                     "response",
--                     G_CALLBACK (gtk_widget_hide),
--                     NULL);
--   gtk_grid_attach (GTK_GRID (grid),
--                    widget,
--                    0, 2, 1, 1);
--   
--   // ...
--   
--   // show an error message
--   gtk_label_set_text (GTK_LABEL (message_label), "An error occurred!");
--   gtk_info_bar_set_message_type (bar, GTK_MESSAGE_ERROR);
--   gtk_widget_show (bar);
--   
--   
--   
GtkInfoBar as GtkBuildable
--   
--   GtkInfoBar supports a custom <action-widgets>
--   element, which can contain multiple <action-widget>
--   elements. The “response” attribute specifies a numeric response, and
--   the content of the element is the id of widget (which should be a
--   child of the dialogs actionArea).
--   
--   GtkInfoBar supports adding action widgets by specifying
--   “action” as the “type” attribute of a <child> element.
--   The widget will be added either to the action area. The response id
--   has to be associated with the action widget using the
--   <action-widgets> element.
--   
--   
CSS nodes
--   
--   GtkInfoBar has a single CSS node with name infobar. The node
--   may get one of the style classes .info, .warning, .error or .question,
--   depending on the message type. If the info bar shows a close button,
--   that button will have the .close style class applied.
module GI.Gtk.Objects.InfoBar

-- | Memory-managed wrapper type.
newtype InfoBar
InfoBar :: ManagedPtr InfoBar -> InfoBar

-- | Type class for types which can be safely cast to InfoBar, for
--   instance with toInfoBar.
class (GObject o, IsDescendantOf InfoBar o) => IsInfoBar o

-- | Cast to InfoBar, for types for which this is known to be safe.
--   For general casts, use castTo.
toInfoBar :: (MonadIO m, IsInfoBar o) => o -> m InfoBar

-- | Add an activatable widget to the action area of a GtkInfoBar.
--   
--   This also connects a signal handler that will emit the
--   InfoBar::response signal on the message area when the widget is
--   activated. The widget is appended to the end of the message areas
--   action area.

-- | Deprecated: (Since version 4.10)
infoBarAddActionWidget :: (HasCallStack, MonadIO m, IsInfoBar a, IsWidget b) => a -> b -> Int32 -> m ()

-- | Adds a button with the given text.
--   
--   Clicking the button will emit the InfoBar::response signal with
--   the given response_id. The button is appended to the end of the info
--   bar's action area. The button widget is returned, but usually you
--   don't need it.

-- | Deprecated: (Since version 4.10)
infoBarAddButton :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Text -> Int32 -> m Button

-- | Adds a widget to the content area of the info bar.

-- | Deprecated: (Since version 4.10)
infoBarAddChild :: (HasCallStack, MonadIO m, IsInfoBar a, IsWidget b) => a -> b -> m ()

-- | Returns the message type of the message area.

-- | Deprecated: (Since version 4.10)
infoBarGetMessageType :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m MessageType

-- | Returns whether the info bar is currently revealed.

-- | Deprecated: (Since version 4.10)
infoBarGetRevealed :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m Bool

-- | Returns whether the widget will display a standard close button.

-- | Deprecated: (Since version 4.10)
infoBarGetShowCloseButton :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m Bool

-- | Creates a new GtkInfoBar object.

-- | Deprecated: (Since version 4.10)
infoBarNew :: (HasCallStack, MonadIO m) => m InfoBar

-- | Removes a widget from the action area of infoBar.
--   
--   The widget must have been put there by a call to
--   infoBarAddActionWidget or infoBarAddButton.

-- | Deprecated: (Since version 4.10)
infoBarRemoveActionWidget :: (HasCallStack, MonadIO m, IsInfoBar a, IsWidget b) => a -> b -> m ()

-- | Removes a widget from the content area of the info bar.

-- | Deprecated: (Since version 4.10)
infoBarRemoveChild :: (HasCallStack, MonadIO m, IsInfoBar a, IsWidget b) => a -> b -> m ()

-- | Emits the “response” signal with the given responseId.

-- | Deprecated: (Since version 4.10)
infoBarResponse :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Int32 -> m ()

-- | Sets the last widget in the info bar’s action area with the given
--   response_id as the default widget for the dialog.
--   
--   Pressing “Enter” normally activates the default widget.
--   
--   Note that this function currently requires infoBar to
--   be added to a widget hierarchy.

-- | Deprecated: (Since version 4.10)
infoBarSetDefaultResponse :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Int32 -> m ()

-- | Sets the message type of the message area.
--   
--   GTK uses this type to determine how the message is displayed.

-- | Deprecated: (Since version 4.10)
infoBarSetMessageType :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> MessageType -> m ()

-- | Sets the sensitivity of action widgets for responseId.
--   
--   Calls gtk_widget_set_sensitive (widget, setting) for each
--   widget in the info bars’s action area with the given
--   responseId. A convenient way to sensitize/desensitize
--   buttons.

-- | Deprecated: (Since version 4.10)
infoBarSetResponseSensitive :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Int32 -> Bool -> m ()

-- | Sets whether the GtkInfoBar is revealed.
--   
--   Changing this will make infoBar reveal or conceal
--   itself via a sliding transition.
--   
--   Note: this does not show or hide infoBar in the
--   Widget:visible sense, so revealing has no effect if
--   Widget:visible is False.

-- | Deprecated: (Since version 4.10)
infoBarSetRevealed :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Bool -> m ()

-- | If true, a standard close button is shown.
--   
--   When clicked it emits the response ResponseTypeClose.

-- | Deprecated: (Since version 4.10)
infoBarSetShowCloseButton :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “message-type” property. This is rarely needed directly, but
--   it is used by new.
constructInfoBarMessageType :: (IsInfoBar o, MonadIO m) => MessageType -> m (GValueConstruct o)

-- | Get the value of the “message-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get infoBar #messageType
--   
getInfoBarMessageType :: (MonadIO m, IsInfoBar o) => o -> m MessageType

-- | Set the value of the “message-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set infoBar [ #messageType := value ]
--   
setInfoBarMessageType :: (MonadIO m, IsInfoBar o) => o -> MessageType -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “revealed” property. This is rarely needed directly, but it
--   is used by new.
constructInfoBarRevealed :: (IsInfoBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “revealed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get infoBar #revealed
--   
getInfoBarRevealed :: (MonadIO m, IsInfoBar o) => o -> m Bool

-- | Set the value of the “revealed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set infoBar [ #revealed := value ]
--   
setInfoBarRevealed :: (MonadIO m, IsInfoBar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-close-button” property. This is rarely needed directly,
--   but it is used by new.
constructInfoBarShowCloseButton :: (IsInfoBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-close-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get infoBar #showCloseButton
--   
getInfoBarShowCloseButton :: (MonadIO m, IsInfoBar o) => o -> m Bool

-- | Set the value of the “show-close-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set infoBar [ #showCloseButton := value ]
--   
setInfoBarShowCloseButton :: (MonadIO m, IsInfoBar o) => o -> Bool -> m ()

-- | Gets emitted when the user uses a keybinding to dismiss the info bar.
--   
--   The close signal is a keybinding signal.
--   
--   The default binding for this signal is the Escape key.
type InfoBarCloseCallback = IO ()

-- | Connect a signal handler for the close signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after infoBar #close callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterInfoBarClose :: (IsInfoBar a, MonadIO m) => a -> ((?self :: a) => InfoBarCloseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the close signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on infoBar #close callback
--   
onInfoBarClose :: (IsInfoBar a, MonadIO m) => a -> ((?self :: a) => InfoBarCloseCallback) -> m SignalHandlerId

-- | Emitted when an action widget is clicked.
--   
--   The signal is also emitted when the application programmer calls
--   infoBarResponse. The responseId depends on
--   which action widget was clicked.
type InfoBarResponseCallback = Int32 -> IO ()

-- | Connect a signal handler for the response signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after infoBar #response callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterInfoBarResponse :: (IsInfoBar a, MonadIO m) => a -> ((?self :: a) => InfoBarResponseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the response signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on infoBar #response callback
--   
onInfoBarResponse :: (IsInfoBar a, MonadIO m) => a -> ((?self :: a) => InfoBarResponseCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.InfoBar.InfoBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.InfoBar.InfoBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.InfoBar.InfoBar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.InfoBar.InfoBar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.InfoBar.InfoBar o) => GI.Gtk.Objects.InfoBar.IsInfoBar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.InfoBar.InfoBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.InfoBar.InfoBar

-- | Displays an image.
--   
--   <picture> <source srcset="image-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkImage" src="image.png"> </picture>
--   
--   Various kinds of object can be displayed as an image; most typically,
--   you would load a GdkTexture from a file, using the
--   convenience function imageNewFromFile, for instance:
--   
--   
c code
--   
--   
--   GtkWidget *image = gtk_image_new_from_file ("myfile.png");
--   
--   
--   If the file isn’t loaded successfully, the image will contain a
--   “broken image” icon similar to that used in many web browsers.
--   
--   If you want to handle errors in loading the file yourself, for example
--   by displaying an error message, then load the image with an image
--   loading framework such as libglycin, then create the GtkImage
--   with imageNewFromPaintable.
--   
--   Sometimes an application will want to avoid depending on external data
--   files, such as image files. See the documentation of
--   GResource inside GIO, for details. In this case,
--   Image:resource, imageNewFromResource, and
--   imageSetFromResource should be used.
--   
--   GtkImage displays its image as an icon, with a size that is
--   determined by the application. See Picture if you want to show
--   an image at is actual size.
--   
--   
CSS nodes
--   
--   GtkImage has a single CSS node with the name image.
--   The style classes .normal-icons or .large-icons may
--   appear, depending on the Image:iconSize property.
--   
--   
Accessibility
--   
--   GtkImage uses the AccessibleRoleImg role.
module GI.Gtk.Objects.Image

-- | Memory-managed wrapper type.
newtype Image
Image :: ManagedPtr Image -> Image

-- | Type class for types which can be safely cast to Image, for
--   instance with toImage.
class (GObject o, IsDescendantOf Image o) => IsImage o

-- | Cast to Image, for types for which this is known to be safe.
--   For general casts, use castTo.
toImage :: (MonadIO m, IsImage o) => o -> m Image

-- | Resets the image to be empty.
imageClear :: (HasCallStack, MonadIO m, IsImage a) => a -> m ()

-- | Gets the GIcon being displayed by the GtkImage.
--   
--   The storage type of the image must be ImageTypeEmpty or
--   ImageTypeGicon (see imageGetStorageType). The caller of
--   this function does not own a reference to the returned GIcon.
imageGetGicon :: (HasCallStack, MonadIO m, IsImage a) => a -> m (Maybe Icon)

-- | Gets the icon name and size being displayed by the GtkImage.
--   
--   The storage type of the image must be ImageTypeEmpty or
--   ImageTypeIconName (see imageGetStorageType). The
--   returned string is owned by the GtkImage and should not be
--   freed.
imageGetIconName :: (HasCallStack, MonadIO m, IsImage a) => a -> m (Maybe Text)

-- | Gets the icon size used by the image when rendering
--   icons.
imageGetIconSize :: (HasCallStack, MonadIO m, IsImage a) => a -> m IconSize

-- | Gets the image GdkPaintable being displayed by the
--   GtkImage.
--   
--   The storage type of the image must be ImageTypeEmpty or
--   ImageTypePaintable (see imageGetStorageType). The caller
--   of this function does not own a reference to the returned paintable.
imageGetPaintable :: (HasCallStack, MonadIO m, IsImage a) => a -> m (Maybe Paintable)

-- | Gets the pixel size used for named icons.
imageGetPixelSize :: (HasCallStack, MonadIO m, IsImage a) => a -> m Int32

-- | Gets the type of representation being used by the GtkImage to
--   store image data.
--   
--   If the GtkImage has no image data, the return value will be
--   ImageTypeEmpty.
imageGetStorageType :: (HasCallStack, MonadIO m, IsImage a) => a -> m ImageType

-- | Creates a new empty GtkImage widget.
imageNew :: (HasCallStack, MonadIO m) => m Image

-- | Creates a new GtkImage displaying the file
--   filename.
--   
--   If the file isn’t found or can’t be loaded, the resulting
--   GtkImage will display a “broken image” icon. This function
--   never returns Nothing, it always returns a valid
--   GtkImage widget.
--   
--   If you need to detect failures to load the file, use an image loading
--   framework such as libglycin to load the file yourself, then create the
--   GtkImage from the texture.
--   
--   The storage type (see imageGetStorageType) of the returned
--   image is not defined, it will be whatever is appropriate for
--   displaying the file.
imageNewFromFile :: (HasCallStack, MonadIO m) => [Char] -> m Image

-- | Creates a GtkImage displaying an icon from the current icon
--   theme.
--   
--   If the icon name isn’t known, a “broken image” icon will be displayed
--   instead. If the current icon theme is changed, the icon will be
--   updated appropriately.
imageNewFromGicon :: (HasCallStack, MonadIO m, IsIcon a) => a -> m Image

-- | Creates a GtkImage displaying an icon from the current icon
--   theme.
--   
--   If the icon name isn’t known, a “broken image” icon will be displayed
--   instead. If the current icon theme is changed, the icon will be
--   updated appropriately.
imageNewFromIconName :: (HasCallStack, MonadIO m) => Maybe Text -> m Image

-- | Creates a new GtkImage displaying paintable.
--   
--   The GtkImage does not assume a reference to the paintable;
--   you still need to unref it if you own references. GtkImage
--   will add its own reference rather than adopting yours.
--   
--   The GtkImage will track changes to the
--   paintable and update its size and contents in response
--   to it.
--   
--   Note that paintables are still subject to the icon size that is set on
--   the image. If you want to display a paintable at its intrinsic size,
--   use Picture instead.
--   
--   If paintable is a SymbolicPaintable, then it
--   will be recolored with the symbolic palette from the theme.
imageNewFromPaintable :: (HasCallStack, MonadIO m, IsPaintable a) => Maybe a -> m Image

-- | Creates a new GtkImage displaying pixbuf.
--   
--   The GtkImage does not assume a reference to the pixbuf; you
--   still need to unref it if you own references. GtkImage will
--   add its own reference rather than adopting yours.
--   
--   This is a helper for imageNewFromPaintable, and you can't get
--   back the exact pixbuf once this is called, only a texture.
--   
--   Note that this function just creates an GtkImage from the
--   pixbuf. The GtkImage created will not react to state changes.
--   Should you want that, you should use imageNewFromIconName.

-- | Deprecated: (Since version 4.12)Use imageNewFromPaintable
--   andtextureNewForPixbuf instead
imageNewFromPixbuf :: (HasCallStack, MonadIO m, IsPixbuf a) => Maybe a -> m Image

-- | Creates a new GtkImage displaying the resource file
--   resourcePath.
--   
--   If the file isn’t found or can’t be loaded, the resulting
--   GtkImage will display a “broken image” icon. This function
--   never returns Nothing, it always returns a valid
--   GtkImage widget.
--   
--   If you need to detect failures to load the file, use an image loading
--   framework such as libglycin to load the file yourself, then create the
--   GtkImage from the texture.
--   
--   The storage type (see imageGetStorageType) of the returned
--   image is not defined, it will be whatever is appropriate for
--   displaying the file.
imageNewFromResource :: (HasCallStack, MonadIO m) => Text -> m Image

-- | Sets a GtkImage to show a file.
--   
--   See imageNewFromFile for details.
--   
--   ::: warning Note that this function should not be used with untrusted
--   data. Use a proper image loading framework such as libglycin, which
--   can load many image formats into a GdkTexture, and then use
--   imageSetFromPaintable.
imageSetFromFile :: (HasCallStack, MonadIO m, IsImage a) => a -> Maybe [Char] -> m ()

-- | Sets a GtkImage to show a GIcon.
--   
--   See imageNewFromGicon for details.
imageSetFromGicon :: (HasCallStack, MonadIO m, IsImage a, IsIcon b) => a -> b -> m ()

-- | Sets a GtkImage to show a named icon.
--   
--   See imageNewFromIconName for details.
imageSetFromIconName :: (HasCallStack, MonadIO m, IsImage a) => a -> Maybe Text -> m ()

-- | Sets a GtkImage to show a GdkPaintable.
--   
--   See imageNewFromPaintable for details.
imageSetFromPaintable :: (HasCallStack, MonadIO m, IsImage a, IsPaintable b) => a -> Maybe b -> m ()

-- | Sets a GtkImage to show a GdkPixbuf.
--   
--   See imageNewFromPixbuf for details.
--   
--   Note: This is a helper for imageSetFromPaintable, and you can't
--   get back the exact pixbuf once this is called, only a paintable.

-- | Deprecated: (Since version 4.12)Use imageSetFromPaintable
--   instead
imageSetFromPixbuf :: (HasCallStack, MonadIO m, IsImage a, IsPixbuf b) => a -> Maybe b -> m ()

-- | Sets a GtkImage to show a resource.
--   
--   See imageNewFromResource for details.
imageSetFromResource :: (HasCallStack, MonadIO m, IsImage a) => a -> Maybe Text -> m ()

-- | Suggests an icon size to the theme for named icons.
imageSetIconSize :: (HasCallStack, MonadIO m, IsImage a) => a -> IconSize -> m ()

-- | Sets the pixel size to use for named icons.
--   
--   If the pixel size is set to a value != -1, it is used instead of the
--   icon size set by imageSetIconSize.
imageSetPixelSize :: (HasCallStack, MonadIO m, IsImage a) => a -> Int32 -> m ()

-- | Set the value of the “file” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #file
--   
clearImageFile :: (MonadIO m, IsImage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructImageFile :: (IsImage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get image #file
--   
getImageFile :: (MonadIO m, IsImage o) => o -> m (Maybe Text)

-- | Set the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set image [ #file := value ]
--   
setImageFile :: (MonadIO m, IsImage o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gicon” property. This is rarely needed directly, but it is
--   used by new.
constructImageGicon :: (IsImage o, MonadIO m, IsIcon a) => a -> m (GValueConstruct o)

-- | Get the value of the “gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #gicon
--   
getImageGicon :: (MonadIO m, IsImage o) => o -> m (Maybe Icon)

-- | Set the value of the “gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #gicon := value ]
--   
setImageGicon :: (MonadIO m, IsImage o, IsIcon a) => o -> a -> m ()

-- | Set the value of the “icon-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #iconName
--   
clearImageIconName :: (MonadIO m, IsImage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructImageIconName :: (IsImage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #iconName
--   
getImageIconName :: (MonadIO m, IsImage o) => o -> m (Maybe Text)

-- | Set the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #iconName := value ]
--   
setImageIconName :: (MonadIO m, IsImage o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-size” property. This is rarely needed directly, but it
--   is used by new.
constructImageIconSize :: (IsImage o, MonadIO m) => IconSize -> m (GValueConstruct o)

-- | Get the value of the “icon-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #iconSize
--   
getImageIconSize :: (MonadIO m, IsImage o) => o -> m IconSize

-- | Set the value of the “icon-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #iconSize := value ]
--   
setImageIconSize :: (MonadIO m, IsImage o) => o -> IconSize -> m ()

-- | Set the value of the “paintable” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #paintable
--   
clearImagePaintable :: (MonadIO m, IsImage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “paintable” property. This is rarely needed directly, but it
--   is used by new.
constructImagePaintable :: (IsImage o, MonadIO m, IsPaintable a) => a -> m (GValueConstruct o)

-- | Get the value of the “paintable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #paintable
--   
getImagePaintable :: (MonadIO m, IsImage o) => o -> m (Maybe Paintable)

-- | Set the value of the “paintable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #paintable := value ]
--   
setImagePaintable :: (MonadIO m, IsImage o, IsPaintable a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixel-size” property. This is rarely needed directly, but it
--   is used by new.
constructImagePixelSize :: (IsImage o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixel-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #pixelSize
--   
getImagePixelSize :: (MonadIO m, IsImage o) => o -> m Int32

-- | Set the value of the “pixel-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #pixelSize := value ]
--   
setImagePixelSize :: (MonadIO m, IsImage o) => o -> Int32 -> m ()

-- | Set the value of the “resource” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #resource
--   
clearImageResource :: (MonadIO m, IsImage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resource” property. This is rarely needed directly, but it
--   is used by new.
constructImageResource :: (IsImage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “resource” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #resource
--   
getImageResource :: (MonadIO m, IsImage o) => o -> m (Maybe Text)

-- | Set the value of the “resource” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #resource := value ]
--   
setImageResource :: (MonadIO m, IsImage o) => o -> Text -> m ()

-- | Get the value of the “storage-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #storageType
--   
getImageStorageType :: (MonadIO m, IsImage o) => o -> m ImageType

-- | Construct a GValueConstruct with valid value for the
--   “use-fallback” property. This is rarely needed directly, but
--   it is used by new.
constructImageUseFallback :: (IsImage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-fallback” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get image #useFallback
--   
getImageUseFallback :: (MonadIO m, IsImage o) => o -> m Bool

-- | Set the value of the “use-fallback” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set image [ #useFallback := value ]
--   
setImageUseFallback :: (MonadIO m, IsImage o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Image.Image
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Image.Image
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Image.Image
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Image.Image)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Image.Image o) => GI.Gtk.Objects.Image.IsImage o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Image.Image
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Image.Image

-- | GtkIconView is a widget which displays data in a grid of
--   icons.
--   
--   <picture> <source srcset="icon-view-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkIconView" src="icon-view.png"> </picture>
--   
--   GtkIconView provides an alternative view on a
--   GtkTreeModel. It displays the model as a grid of icons with
--   labels. Like TreeView, it allows to select one or multiple
--   items (depending on the selection mode, see
--   iconViewSetSelectionMode). In addition to selection with the
--   arrow keys, GtkIconView supports rubberband selection, which
--   is controlled by dragging the pointer.
--   
--   Note that if the tree model is backed by an actual tree store (as
--   opposed to a flat list where the mapping to icons is obvious),
--   GtkIconView will only display the first level of the tree and
--   ignore the tree’s branches.
--   
--   
CSS nodes
--   
--   
--   iconview.view
--   ╰── [rubberband]
--   
--   
--   GtkIconView has a single CSS node with name iconview and
--   style class .view. For rubberband selection, a subnode with name
--   rubberband is used.
module GI.Gtk.Objects.IconView

-- | Memory-managed wrapper type.
newtype IconView
IconView :: ManagedPtr IconView -> IconView

-- | Type class for types which can be safely cast to IconView, for
--   instance with toIconView.
class (GObject o, IsDescendantOf IconView o) => IsIconView o

-- | Cast to IconView, for types for which this is known to be safe.
--   For general casts, use castTo.
toIconView :: (MonadIO m, IsIconView o) => o -> m IconView

-- | Creates a GdkPaintable representation of the item at
--   path. This image is used for a drag icon.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewCreateDragIcon :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m (Maybe Paintable)

-- | Turns iconView into a drop destination for automatic
--   DND. Calling this method sets GtkIconView:reorderable to
--   False.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewEnableModelDragDest :: (HasCallStack, MonadIO m, IsIconView a) => a -> ContentFormats -> [DragAction] -> m ()

-- | Turns iconView into a drag source for automatic DND.
--   Calling this method sets GtkIconView:reorderable to
--   False.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewEnableModelDragSource :: (HasCallStack, MonadIO m, IsIconView a) => a -> [ModifierType] -> ContentFormats -> [DragAction] -> m ()

-- | Gets the setting set by iconViewSetActivateOnSingleClick.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Bool

-- | Fills the bounding rectangle in widget coordinates for the cell
--   specified by path and cell. If
--   cell is Nothing the main cell area is used.
--   
--   This function is only valid if iconView is realized.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetCellRect :: (HasCallStack, MonadIO m, IsIconView a, IsCellRenderer b) => a -> TreePath -> Maybe b -> m (Bool, Rectangle)

-- | Returns the value of the columnSpacing property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetColumnSpacing :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Returns the value of the columns property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetColumns :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Fills in path and cell with the
--   current cursor path and cell. If the cursor isn’t currently set, then
--   *path will be Nothing. If no cell currently has
--   focus, then *cell will be Nothing.
--   
--   The returned GtkTreePath must be freed with
--   treePathFree.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetCursor :: (HasCallStack, MonadIO m, IsIconView a) => a -> m (Bool, TreePath, CellRenderer)

-- | Determines the destination item for a given position.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetDestItemAtPos :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> Int32 -> m (Bool, TreePath, IconViewDropPosition)

-- | Gets information about the item that is highlighted for feedback.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetDragDestItem :: (HasCallStack, MonadIO m, IsIconView a) => a -> m (Maybe TreePath, IconViewDropPosition)

-- | Gets the path and cell for the icon at the given position.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetItemAtPos :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> Int32 -> m (Bool, TreePath, CellRenderer)

-- | Gets the column in which the item path is currently
--   displayed. Column numbers start at 0.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetItemColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m Int32

-- | Returns the value of the itemOrientation property which
--   determines whether the labels are drawn beside the icons instead of
--   below.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetItemOrientation :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Orientation

-- | Returns the value of the itemPadding property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetItemPadding :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Gets the row in which the item path is currently
--   displayed. Row numbers start at 0.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetItemRow :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m Int32

-- | Returns the value of the itemWidth property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetItemWidth :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Returns the value of the margin property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetMargin :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Returns the column with markup text for iconView.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetMarkupColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Returns the model the GtkIconView is based on. Returns
--   Nothing if the model is unset.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetModel :: (HasCallStack, MonadIO m, IsIconView a) => a -> m (Maybe TreeModel)

-- | Gets the path for the icon at the given position.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetPathAtPos :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> Int32 -> m (Maybe TreePath)

-- | Returns the column with pixbufs for iconView.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetPixbufColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Retrieves whether the user can reorder the list via drag-and-drop. See
--   iconViewSetReorderable.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetReorderable :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Bool

-- | Returns the value of the rowSpacing property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetRowSpacing :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Creates a list of paths of all selected items. Additionally, if you
--   are planning on modifying the model after calling this function, you
--   may want to convert the returned list into a list of
--   GtkTreeRowReferences. To do this, you can use
--   treeRowReferenceNew.
--   
--   To free the return value, use g_list_free_full:
--   
--   
c code
--   
--   
--   GtkWidget *icon_view = gtk_icon_view_new ();
--   // Use icon_view
--   
--   GList *list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view));
--   
--   // use list
--   
--   g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
--   

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetSelectedItems :: (HasCallStack, MonadIO m, IsIconView a) => a -> m [TreePath]

-- | Gets the selection mode of the iconView.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetSelectionMode :: (HasCallStack, MonadIO m, IsIconView a) => a -> m SelectionMode

-- | Returns the value of the spacing property.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetSpacing :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Returns the column with text for iconView.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetTextColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | Returns the column of iconView’s model which is being
--   used for displaying tooltips on iconView’s rows.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetTooltipColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> m Int32

-- | This function is supposed to be used in a
--   GtkWidget::query-tooltip signal handler for
--   GtkIconView. The x, y and
--   keyboardTip values which are received in the signal
--   handler, should be passed to this function without modification.
--   
--   The return value indicates whether there is an icon view item at the
--   given coordinates (True) or not (False) for mouse
--   tooltips. For keyboard tooltips the item returned will be the cursor
--   item. When True, then any of model,
--   path and iter which have been provided
--   will be set to point to that row and the corresponding model.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetTooltipContext :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> Int32 -> Bool -> m (Bool, TreeModel, TreePath, TreeIter)

-- | Sets startPath and endPath to be the
--   first and last visible path. Note that there may be invisible paths in
--   between.
--   
--   Both paths should be freed with treePathFree after use.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewGetVisibleRange :: (HasCallStack, MonadIO m, IsIconView a) => a -> m (Bool, TreePath, TreePath)

-- | Activates the item determined by path.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewItemActivated :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m ()

-- | Creates a new GtkIconView widget

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewNew :: (HasCallStack, MonadIO m) => m IconView

-- | Creates a new GtkIconView widget using the specified
--   area to layout cells inside the icons.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewNewWithArea :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m IconView

-- | Creates a new GtkIconView widget with the model
--   model.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewNewWithModel :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m IconView

-- | Returns True if the icon pointed to by path is
--   currently selected. If path does not point to a valid
--   location, False is returned.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewPathIsSelected :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m Bool

-- | Moves the alignments of iconView to the position
--   specified by path. rowAlign determines
--   where the row is placed, and colAlign determines where
--   column is placed. Both are expected to be between 0.0
--   and 1.0. 0.0 means left/top alignment, 1.0 means right/bottom
--   alignment, 0.5 means center.
--   
--   If useAlign is False, then the alignment
--   arguments are ignored, and the tree does the minimum amount of work to
--   scroll the item onto the screen. This means that the item will be
--   scrolled to the edge closest to its current position. If the item is
--   currently visible on the screen, nothing is done.
--   
--   This function only works if the model is set, and path
--   is a valid row on the model. If the model changes before the
--   iconView is realized, the centered path will be
--   modified to reflect this change.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewScrollToPath :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> Bool -> Float -> Float -> m ()

-- | Selects all the icons. iconView must has its selection
--   mode set to SelectionModeMultiple.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSelectAll :: (HasCallStack, MonadIO m, IsIconView a) => a -> m ()

-- | Selects the row at path.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSelectPath :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m ()

-- | Calls a function for each selected icon. Note that the model or
--   selection cannot be modified from within this function.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSelectedForeach :: (HasCallStack, MonadIO m, IsIconView a) => a -> IconViewForeachFunc -> m ()

-- | Causes the GtkIconViewitemActivated signal to be
--   emitted on a single click instead of a double click.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsIconView a) => a -> Bool -> m ()

-- | Sets the columnSpacing property which specifies the space which
--   is inserted between the columns of the icon view.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetColumnSpacing :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the columns property which determines in how many columns
--   the icons are arranged. If columns is -1, the number
--   of columns will be chosen automatically to fill the available area.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetColumns :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the current keyboard focus to be at path, and
--   selects it. This is useful when you want to focus the user’s attention
--   on a particular item. If cell is not Nothing,
--   then focus is given to the cell specified by it. Additionally, if
--   startEditing is True, then editing should be
--   started in the specified cell.
--   
--   This function is often followed by gtk_widget_grab_focus
--   (icon_view) in order to give keyboard focus to the widget. Please
--   note that editing can only happen when the widget is realized.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetCursor :: (HasCallStack, MonadIO m, IsIconView a, IsCellRenderer b) => a -> TreePath -> Maybe b -> Bool -> m ()

-- | Sets the item that is highlighted for feedback.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetDragDestItem :: (HasCallStack, MonadIO m, IsIconView a) => a -> Maybe TreePath -> IconViewDropPosition -> m ()

-- | Sets the itemOrientation property which determines whether the
--   labels are drawn beside the icons instead of below.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetItemOrientation :: (HasCallStack, MonadIO m, IsIconView a) => a -> Orientation -> m ()

-- | Sets the GtkIconView:item-padding property which specifies
--   the padding around each of the icon view’s items.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetItemPadding :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the itemWidth property which specifies the width to use
--   for each item. If it is set to -1, the icon view will automatically
--   determine a suitable item size.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetItemWidth :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the margin property which specifies the space which is
--   inserted at the top, bottom, left and right of the icon view.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetMargin :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the column with markup information for iconView
--   to be column. The markup column must be of type
--   G_TYPE_STRING. If the markup column is set to something, it
--   overrides the text column set by iconViewSetTextColumn.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetMarkupColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the model for a GtkIconView. If the
--   iconView already has a model set, it will remove it
--   before setting the new model. If model is
--   Nothing, then it will unset the old model.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetModel :: (HasCallStack, MonadIO m, IsIconView a, IsTreeModel b) => a -> Maybe b -> m ()

-- | Sets the column with pixbufs for iconView to be
--   column. The pixbuf column must be of type
--   GDK_TYPE_PIXBUF

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetPixbufColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | This function is a convenience function to allow you to reorder models
--   that support the GtkTreeDragSourceIface and the
--   GtkTreeDragDestIface. Both GtkTreeStore and
--   GtkListStore support these. If reorderable is
--   True, then the user can reorder the model by dragging and
--   dropping rows. The developer can listen to these changes by connecting
--   to the model's row_inserted and row_deleted signals. The reordering is
--   implemented by setting up the icon view as a drag source and
--   destination. Therefore, drag and drop can not be used in a reorderable
--   view for any other purpose.
--   
--   This function does not give you any degree of control over the order
--   -- any reordering is allowed. If more control is needed, you should
--   probably handle drag and drop manually.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetReorderable :: (HasCallStack, MonadIO m, IsIconView a) => a -> Bool -> m ()

-- | Sets the rowSpacing property which specifies the space which is
--   inserted between the rows of the icon view.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetRowSpacing :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the selection mode of the iconView.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetSelectionMode :: (HasCallStack, MonadIO m, IsIconView a) => a -> SelectionMode -> m ()

-- | Sets the spacing property which specifies the space which is
--   inserted between the cells (i.e. the icon and the text) of an item.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetSpacing :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the column with text for iconView to be
--   column. The text column must be of type
--   G_TYPE_STRING.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetTextColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the tip area of tooltip to the area which
--   cell occupies in the item pointed to by
--   path. See also tooltipSetTipArea.
--   
--   See also iconViewSetTooltipColumn for a simpler alternative.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetTooltipCell :: (HasCallStack, MonadIO m, IsIconView a, IsTooltip b, IsCellRenderer c) => a -> b -> TreePath -> Maybe c -> m ()

-- | If you only plan to have simple (text-only) tooltips on full items,
--   you can use this function to have GtkIconView handle these
--   automatically for you. column should be set to the
--   column in iconView’s model containing the tooltip
--   texts, or -1 to disable this feature.
--   
--   When enabled, GtkWidget:has-tooltip will be set to
--   True and iconView will connect a
--   GtkWidget::query-tooltip signal handler.
--   
--   Note that the signal handler sets the text with
--   tooltipSetMarkup, so &, <, etc have to be escaped in the
--   text.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetTooltipColumn :: (HasCallStack, MonadIO m, IsIconView a) => a -> Int32 -> m ()

-- | Sets the tip area of tooltip to be the area covered by
--   the item at path. See also
--   iconViewSetTooltipColumn for a simpler alternative. See also
--   tooltipSetTipArea.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewSetTooltipItem :: (HasCallStack, MonadIO m, IsIconView a, IsTooltip b) => a -> b -> TreePath -> m ()

-- | Unselects all the icons.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewUnselectAll :: (HasCallStack, MonadIO m, IsIconView a) => a -> m ()

-- | Unselects the row at path.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewUnselectPath :: (HasCallStack, MonadIO m, IsIconView a) => a -> TreePath -> m ()

-- | Undoes the effect of iconViewEnableModelDragDest. Calling this
--   method sets GtkIconView:reorderable to False.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewUnsetModelDragDest :: (HasCallStack, MonadIO m, IsIconView a) => a -> m ()

-- | Undoes the effect of iconViewEnableModelDragSource. Calling
--   this method sets GtkIconView:reorderable to False.

-- | Deprecated: (Since version 4.10)Use GridView instead
iconViewUnsetModelDragSource :: (HasCallStack, MonadIO m, IsIconView a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activate-on-single-click” property. This is rarely needed
--   directly, but it is used by new.
constructIconViewActivateOnSingleClick :: (IsIconView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get iconView #activateOnSingleClick
--   
getIconViewActivateOnSingleClick :: (MonadIO m, IsIconView o) => o -> m Bool

-- | Set the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #activateOnSingleClick := value ]
--   
setIconViewActivateOnSingleClick :: (MonadIO m, IsIconView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-area” property. This is rarely needed directly, but it
--   is used by new.
constructIconViewCellArea :: (IsIconView o, MonadIO m, IsCellArea a) => a -> m (GValueConstruct o)

-- | Get the value of the “cell-area” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #cellArea
--   
getIconViewCellArea :: (MonadIO m, IsIconView o) => o -> m (Maybe CellArea)

-- | Construct a GValueConstruct with valid value for the
--   “column-spacing” property. This is rarely needed directly,
--   but it is used by new.
constructIconViewColumnSpacing :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #columnSpacing
--   
getIconViewColumnSpacing :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #columnSpacing := value ]
--   
setIconViewColumnSpacing :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “columns” property. This is rarely needed directly, but it is
--   used by new.
constructIconViewColumns :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #columns
--   
getIconViewColumns :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #columns := value ]
--   
setIconViewColumns :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “item-orientation” property. This is rarely needed directly,
--   but it is used by new.
constructIconViewItemOrientation :: (IsIconView o, MonadIO m) => Orientation -> m (GValueConstruct o)

-- | Get the value of the “item-orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #itemOrientation
--   
getIconViewItemOrientation :: (MonadIO m, IsIconView o) => o -> m Orientation

-- | Set the value of the “item-orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #itemOrientation := value ]
--   
setIconViewItemOrientation :: (MonadIO m, IsIconView o) => o -> Orientation -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “item-padding” property. This is rarely needed directly, but
--   it is used by new.
constructIconViewItemPadding :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “item-padding” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #itemPadding
--   
getIconViewItemPadding :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “item-padding” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #itemPadding := value ]
--   
setIconViewItemPadding :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “item-width” property. This is rarely needed directly, but it
--   is used by new.
constructIconViewItemWidth :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “item-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #itemWidth
--   
getIconViewItemWidth :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “item-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #itemWidth := value ]
--   
setIconViewItemWidth :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “margin” property. This is rarely needed directly, but it is
--   used by new.
constructIconViewMargin :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #margin
--   
getIconViewMargin :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “margin” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #margin := value ]
--   
setIconViewMargin :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “markup-column” property. This is rarely needed directly, but
--   it is used by new.
constructIconViewMarkupColumn :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “markup-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #markupColumn
--   
getIconViewMarkupColumn :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “markup-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #markupColumn := value ]
--   
setIconViewMarkupColumn :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearIconViewModel :: (MonadIO m, IsIconView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructIconViewModel :: (IsIconView o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #model
--   
getIconViewModel :: (MonadIO m, IsIconView o) => o -> m (Maybe TreeModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #model := value ]
--   
setIconViewModel :: (MonadIO m, IsIconView o, IsTreeModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixbuf-column” property. This is rarely needed directly, but
--   it is used by new.
constructIconViewPixbufColumn :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pixbuf-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #pixbufColumn
--   
getIconViewPixbufColumn :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “pixbuf-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #pixbufColumn := value ]
--   
setIconViewPixbufColumn :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “reorderable” property. This is rarely needed directly, but
--   it is used by new.
constructIconViewReorderable :: (IsIconView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #reorderable
--   
getIconViewReorderable :: (MonadIO m, IsIconView o) => o -> m Bool

-- | Set the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #reorderable := value ]
--   
setIconViewReorderable :: (MonadIO m, IsIconView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-spacing” property. This is rarely needed directly, but
--   it is used by new.
constructIconViewRowSpacing :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #rowSpacing
--   
getIconViewRowSpacing :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #rowSpacing := value ]
--   
setIconViewRowSpacing :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “selection-mode” property. This is rarely needed directly,
--   but it is used by new.
constructIconViewSelectionMode :: (IsIconView o, MonadIO m) => SelectionMode -> m (GValueConstruct o)

-- | Get the value of the “selection-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #selectionMode
--   
getIconViewSelectionMode :: (MonadIO m, IsIconView o) => o -> m SelectionMode

-- | Set the value of the “selection-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #selectionMode := value ]
--   
setIconViewSelectionMode :: (MonadIO m, IsIconView o) => o -> SelectionMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “spacing” property. This is rarely needed directly, but it is
--   used by new.
constructIconViewSpacing :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #spacing
--   
getIconViewSpacing :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #spacing := value ]
--   
setIconViewSpacing :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-column” property. This is rarely needed directly, but
--   it is used by new.
constructIconViewTextColumn :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #textColumn
--   
getIconViewTextColumn :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #textColumn := value ]
--   
setIconViewTextColumn :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tooltip-column” property. This is rarely needed directly,
--   but it is used by new.
constructIconViewTooltipColumn :: (IsIconView o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “tooltip-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iconView #tooltipColumn
--   
getIconViewTooltipColumn :: (MonadIO m, IsIconView o) => o -> m Int32

-- | Set the value of the “tooltip-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iconView [ #tooltipColumn := value ]
--   
setIconViewTooltipColumn :: (MonadIO m, IsIconView o) => o -> Int32 -> m ()

-- | A [keybinding signal]tSignalAction which gets emitted when the
--   user activates the currently focused item.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control
--   activation programmatically.
--   
--   The default bindings for this signal are Space, Return and Enter.
type IconViewActivateCursorItemCallback = IO Bool

-- | Connect a signal handler for the activateCursorItem signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iconView #activateCursorItem callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewActivateCursorItem :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewActivateCursorItemCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateCursorItem signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iconView #activateCursorItem callback
--   
onIconViewActivateCursorItem :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewActivateCursorItemCallback) -> m SignalHandlerId

-- | The itemActivated signal is emitted when the method
--   iconViewItemActivated is called, when the user double clicks an
--   item with the "activate-on-single-click" property set to False,
--   or when the user single clicks an item when the
--   "activate-on-single-click" property set to True. It is also
--   emitted when a non-editable item is selected and one of the keys:
--   Space, Return or Enter is pressed.
type IconViewItemActivatedCallback = TreePath -> IO ()

-- | Connect a signal handler for the itemActivated signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iconView #itemActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewItemActivated :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewItemActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the itemActivated signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iconView #itemActivated callback
--   
onIconViewItemActivated :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewItemActivatedCallback) -> m SignalHandlerId

-- | The moveCursor signal is a [keybinding
--   signal]tSignalAction which gets emitted when the user initiates
--   a cursor movement.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control the
--   cursor programmatically.
--   
--   The default bindings for this signal include * Arrow keys which move
--   by individual steps * Home/End keys which move to the first/last item
--   * PageUp/PageDown which move by "pages" All of these will extend the
--   selection when combined with the Shift modifier.
type IconViewMoveCursorCallback = MovementStep -> Int32 -> Bool -> Bool -> IO Bool

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iconView #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewMoveCursor :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iconView #moveCursor callback
--   
onIconViewMoveCursor :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewMoveCursorCallback) -> m SignalHandlerId

-- | A [keybinding signal]tSignalAction which gets emitted when the
--   user selects all items.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control
--   selection programmatically.
--   
--   The default binding for this signal is Ctrl-a.
type IconViewSelectAllCallback = IO ()

-- | Connect a signal handler for the selectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iconView #selectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewSelectAll :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewSelectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iconView #selectAll callback
--   
onIconViewSelectAll :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewSelectAllCallback) -> m SignalHandlerId

-- | A [keybinding signal]tSignalAction which gets emitted when the
--   user selects the item that is currently focused.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control
--   selection programmatically.
--   
--   There is no default binding for this signal.
type IconViewSelectCursorItemCallback = IO ()

-- | Connect a signal handler for the selectCursorItem signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iconView #selectCursorItem callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewSelectCursorItem :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewSelectCursorItemCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectCursorItem signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iconView #selectCursorItem callback
--   
onIconViewSelectCursorItem :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewSelectCursorItemCallback) -> m SignalHandlerId

-- | The selectionChanged signal is emitted when the selection (i.e.
--   the set of selected items) changes.
type IconViewSelectionChangedCallback = IO ()

-- | Connect a signal handler for the selectionChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iconView #selectionChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewSelectionChanged :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewSelectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectionChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iconView #selectionChanged callback
--   
onIconViewSelectionChanged :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewSelectionChangedCallback) -> m SignalHandlerId

-- | A [keybinding signal]tSignalAction which gets emitted when the
--   user toggles whether the currently focused item is selected or not.
--   The exact effect of this depend on the selection mode.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control
--   selection programmatically.
--   
--   There is no default binding for this signal is Ctrl-Space.
type IconViewToggleCursorItemCallback = IO ()

-- | Connect a signal handler for the toggleCursorItem signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iconView #toggleCursorItem callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewToggleCursorItem :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewToggleCursorItemCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleCursorItem signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iconView #toggleCursorItem callback
--   
onIconViewToggleCursorItem :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewToggleCursorItemCallback) -> m SignalHandlerId

-- | A [keybinding signal]tSignalAction which gets emitted when the
--   user unselects all items.
--   
--   Applications should not connect to it, but may emit it with
--   g_signal_emit_by_name() if they need to control
--   selection programmatically.
--   
--   The default binding for this signal is Ctrl-Shift-a.
type IconViewUnselectAllCallback = IO ()

-- | Connect a signal handler for the unselectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iconView #unselectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIconViewUnselectAll :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewUnselectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unselectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iconView #unselectAll callback
--   
onIconViewUnselectAll :: (IsIconView a, MonadIO m) => a -> ((?self :: a) => IconViewUnselectAllCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.IconView.IconView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.IconView.IconView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.IconView.IconView
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.IconView.IconView)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.IconView.IconView o) => GI.Gtk.Objects.IconView.IsIconView o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.IconView.IconView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.IconView.IconView

-- | Supports switching between multiple input methods.
--   
--   Text widgets such as GtkText or GtkTextView use a
--   GtkIMMultiContext to implement their im-module
--   property for switching between different input methods.
module GI.Gtk.Objects.IMMulticontext

-- | Memory-managed wrapper type.
newtype IMMulticontext
IMMulticontext :: ManagedPtr IMMulticontext -> IMMulticontext

-- | Type class for types which can be safely cast to
--   IMMulticontext, for instance with toIMMulticontext.
class (GObject o, IsDescendantOf IMMulticontext o) => IsIMMulticontext o

-- | Cast to IMMulticontext, for types for which this is known to be
--   safe. For general casts, use castTo.
toIMMulticontext :: (MonadIO m, IsIMMulticontext o) => o -> m IMMulticontext

-- | Gets the id of the currently active delegate of the
--   context.
iMMulticontextGetContextId :: (HasCallStack, MonadIO m, IsIMMulticontext a) => a -> m Text

-- | Creates a new GtkIMMulticontext.
iMMulticontextNew :: (HasCallStack, MonadIO m) => m IMMulticontext

-- | Sets the context id for context.
--   
--   This causes the currently active delegate of context
--   to be replaced by the delegate corresponding to the new context id.
--   
--   Setting this to a non-Nothing value overrides the system-wide
--   IM module setting. See the Settings:gtkImModule property.
iMMulticontextSetContextId :: (HasCallStack, MonadIO m, IsIMMulticontext a) => a -> Maybe Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.IMMulticontext.IMMulticontext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.IMMulticontext.IMMulticontext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.IMMulticontext.IMMulticontext
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.IMMulticontext.IMMulticontext)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.IMMulticontext.IMMulticontext o) => GI.Gtk.Objects.IMMulticontext.IsIMMulticontext o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.IMMulticontext.IMMulticontext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.IMMulticontext.IMMulticontext

-- | Supports compose sequences, dead keys and numeric Unicode input.
--   
--   
Compose sequences
--   
--   GtkIMContextSimple reads compose sequences from the first of
--   the following files that is found: ~/.config/gtk-4.0/Compose,
--   ~/.XCompose, /usr/share/X11/locale/$locale/Compose (for locales that
--   have a nontrivial Compose file). A subset of the file syntax described
--   in the Compose(5) manual page is supported. Additionally, include
--   "%L" loads GTK’s built-in table of compose sequences rather than
--   the locale-specific one from X11.
--   
--   If none of these files is found, GtkIMContextSimple uses a
--   built-in table of compose sequences that is derived from the X11
--   Compose files.
--   
--   Note that compose sequences typically start with the Compose_key,
--   which is often not available as a dedicated key on keyboards. Keyboard
--   layouts may map this keysym to other keys, such as the right Control
--   key.
--   
--   
Unicode characters
--   
--   GtkIMContextSimple also supports numeric entry of Unicode
--   characters by typing
--   <kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>u</kbd>,
--   followed by a hexadecimal Unicode codepoint.
--   
--   For example,
--   
--   Ctrl-Shift-u 1 2 3 Enter
--   
--   yields U+0123 LATIN SMALL LETTER G WITH CEDILLA, i.e. ģ.
--   
--   
Dead keys
--   
--   GtkIMContextSimple supports dead keys. For example, typing
--   
--   dead_acute a
--   
--   yields U+00E! LATIN SMALL LETTER_A WITH ACUTE, i.e. á. Note that this
--   depends on the keyboard layout including dead keys.
module GI.Gtk.Objects.IMContextSimple

-- | Memory-managed wrapper type.
newtype IMContextSimple
IMContextSimple :: ManagedPtr IMContextSimple -> IMContextSimple

-- | Type class for types which can be safely cast to
--   IMContextSimple, for instance with toIMContextSimple.
class (GObject o, IsDescendantOf IMContextSimple o) => IsIMContextSimple o

-- | Cast to IMContextSimple, for types for which this is known to
--   be safe. For general casts, use castTo.
toIMContextSimple :: (MonadIO m, IsIMContextSimple o) => o -> m IMContextSimple

-- | Adds an additional table from the X11 compose file.
iMContextSimpleAddComposeFile :: (HasCallStack, MonadIO m, IsIMContextSimple a) => a -> Text -> m ()

-- | Creates a new GtkIMContextSimple.
iMContextSimpleNew :: (HasCallStack, MonadIO m) => m IMContextSimple
instance GHC.Classes.Eq GI.Gtk.Objects.IMContextSimple.IMContextSimple
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.IMContextSimple.IMContextSimple
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.IMContextSimple.IMContextSimple
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.IMContextSimple.IMContextSimple)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.IMContextSimple.IMContextSimple o) => GI.Gtk.Objects.IMContextSimple.IsIMContextSimple o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.IMContextSimple.IMContextSimple
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.IMContextSimple.IMContextSimple

-- | The interface for GTK input methods.
--   
--   GtkIMContext is used by GTK text input widgets like
--   GtkText to map from key events to Unicode character strings.
--   
--   An input method may consume multiple key events in sequence before
--   finally outputting the composed result. This is called *preediting*,
--   and an input method may provide feedback about this process by
--   displaying the intermediate composition states as preedit text. To do
--   so, the GtkIMContext will emit
--   IMContext::preeditStart, IMContext::preeditChanged and
--   IMContext::preeditEnd signals.
--   
--   For instance, the built-in GTK input method IMContextSimple
--   implements the input of arbitrary Unicode code points by holding down
--   the <kbd>Control</kbd> and <kbd>Shift</kbd>
--   keys and then typing <kbd>u</kbd> followed by the
--   hexadecimal digits of the code point. When releasing the
--   <kbd>Control</kbd> and <kbd>Shift</kbd> keys,
--   preediting ends and the character is inserted as text. For example,
--   
--   Ctrl+Shift+u 2 0 A C
--   
--   results in the € sign.
--   
--   Additional input methods can be made available for use by GTK widgets
--   as loadable modules. An input method module is a small shared library
--   which provides a GIOExtension for the extension point named
--   "gtk-im-module".
--   
--   To connect a widget to the users preferred input method, you should
--   use IMMulticontext.
module GI.Gtk.Objects.IMContext

-- | Memory-managed wrapper type.
newtype IMContext
IMContext :: ManagedPtr IMContext -> IMContext

-- | Type class for types which can be safely cast to IMContext, for
--   instance with toIMContext.
class (GObject o, IsDescendantOf IMContext o) => IsIMContext o

-- | Cast to IMContext, for types for which this is known to be
--   safe. For general casts, use castTo.
toIMContext :: (MonadIO m, IsIMContext o) => o -> m IMContext

-- | Requests the platform to show an on-screen keyboard for user input.
--   
--   This method will return True if this request was actually
--   performed to the platform, other environmental factors may result in
--   an on-screen keyboard effectively not showing up.
--   
--   Since: 4.14
iMContextActivateOsk :: (HasCallStack, MonadIO m, IsIMContext a, IsEvent b) => a -> Maybe b -> m Bool

-- | Asks the widget that the input context is attached to delete
--   characters around the cursor position by emitting the
--   ::delete_surrounding signal.
--   
--   Note that offset and nChars are in
--   characters not in bytes which differs from the usage other places in
--   GtkIMContext.
--   
--   In order to use this function, you should first call
--   iMContextGetSurrounding to get the current context, and call
--   this function immediately afterwards to make sure that you know what
--   you are deleting. You should also account for the fact that even if
--   the signal was handled, the input context might not have deleted all
--   the characters that were requested to be deleted.
--   
--   This function is used by an input method that wants to make
--   substitutions in the existing text in response to new input. It is not
--   useful for applications.
iMContextDeleteSurrounding :: (HasCallStack, MonadIO m, IsIMContext a) => a -> Int32 -> Int32 -> m Bool

-- | Allow an input method to forward key press and release events to
--   another input method without necessarily having a GdkEvent
--   available.
iMContextFilterKey :: (HasCallStack, MonadIO m, IsIMContext a, IsSurface b, IsDevice c) => a -> Bool -> b -> c -> Word32 -> Word32 -> [ModifierType] -> Int32 -> m Bool

-- | Allow an input method to internally handle key press and release
--   events.
--   
--   If this function returns True, then no further processing
--   should be done for this key event.
iMContextFilterKeypress :: (HasCallStack, MonadIO m, IsIMContext a, IsEvent b) => a -> b -> m Bool

-- | Notify the input method that the widget to which this input context
--   corresponds has gained focus.
--   
--   The input method may, for example, change the displayed feedback to
--   reflect this change.
iMContextFocusIn :: (HasCallStack, MonadIO m, IsIMContext a) => a -> m ()

-- | Notify the input method that the widget to which this input context
--   corresponds has lost focus.
--   
--   The input method may, for example, change the displayed feedback or
--   reset the contexts state to reflect this change.
iMContextFocusOut :: (HasCallStack, MonadIO m, IsIMContext a) => a -> m ()

-- | Retrieve the current preedit string for the input context, and a list
--   of attributes to apply to the string.
--   
--   This string should be displayed inserted at the insertion point.
iMContextGetPreeditString :: (HasCallStack, MonadIO m, IsIMContext a) => a -> m (Text, AttrList, Int32)

-- | Retrieves context around the insertion point.
--   
--   Input methods typically want context in order to constrain input text
--   based on existing text; this is important for languages such as Thai
--   where only some sequences of characters are allowed.
--   
--   This function is implemented by emitting the
--   IMContext::retrieveSurrounding signal on the input method; in
--   response to this signal, a widget should provide as much context as is
--   available, up to an entire paragraph, by calling
--   iMContextSetSurrounding.
--   
--   Note that there is no obligation for a widget to respond to the
--   ::retrieve-surrounding signal, so input methods must be
--   prepared to function without context.

-- | Deprecated: (Since version 4.2)Use
--   iMContextGetSurroundingWithSelection instead.
iMContextGetSurrounding :: (HasCallStack, MonadIO m, IsIMContext a) => a -> m (Bool, Text, Int32)

-- | Retrieves context around the insertion point.
--   
--   Input methods typically want context in order to constrain input text
--   based on existing text; this is important for languages such as Thai
--   where only some sequences of characters are allowed.
--   
--   This function is implemented by emitting the
--   IMContext::retrieveSurrounding signal on the input method; in
--   response to this signal, a widget should provide as much context as is
--   available, up to an entire paragraph, by calling
--   iMContextSetSurroundingWithSelection.
--   
--   Note that there is no obligation for a widget to respond to the
--   ::retrieve-surrounding signal, so input methods must be
--   prepared to function without context.
--   
--   Since: 4.2
iMContextGetSurroundingWithSelection :: (HasCallStack, MonadIO m, IsIMContext a) => a -> m (Bool, Text, Int32, Int32)

-- | Notify the input method that a change such as a change in cursor
--   position has been made.
--   
--   This will typically cause the input method to clear the preedit state.
iMContextReset :: (HasCallStack, MonadIO m, IsIMContext a) => a -> m ()

-- | Set the client widget for the input context.
--   
--   This is the GtkWidget holding the input focus. This widget is
--   used in order to correctly position status windows, and may also be
--   used for purposes internal to the input method.
iMContextSetClientWidget :: (HasCallStack, MonadIO m, IsIMContext a, IsWidget b) => a -> Maybe b -> m ()

-- | Notify the input method that a change in cursor position has been
--   made.
--   
--   The location is relative to the client widget.
iMContextSetCursorLocation :: (HasCallStack, MonadIO m, IsIMContext a) => a -> Rectangle -> m ()

-- | Sets surrounding context around the insertion point and preedit
--   string.
--   
--   This function is expected to be called in response to the
--   IMContext::retrieveSurrounding signal, and will likely have no
--   effect if called at other times.

-- | Deprecated: (Since version 4.2)Use
--   iMContextSetSurroundingWithSelection instead
iMContextSetSurrounding :: (HasCallStack, MonadIO m, IsIMContext a) => a -> Text -> Int32 -> Int32 -> m ()

-- | Sets surrounding context around the insertion point and preedit
--   string. This function is expected to be called in response to the
--   signalgtk.IMContext[retrieve_surrounding]
--   signal, and will likely have no effect if called at other times.
--   
--   Since: 4.2
iMContextSetSurroundingWithSelection :: (HasCallStack, MonadIO m, IsIMContext a) => a -> Text -> Int32 -> Int32 -> Int32 -> m ()

-- | Sets whether the IM context should use the preedit string to display
--   feedback.
--   
--   If usePreedit is False (default is
--   True), then the IM context may use some other method to display
--   feedback, such as displaying it in a child of the root window.
iMContextSetUsePreedit :: (HasCallStack, MonadIO m, IsIMContext a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-hints” property. This is rarely needed directly, but
--   it is used by new.
constructIMContextInputHints :: (IsIMContext o, MonadIO m) => [InputHints] -> m (GValueConstruct o)

-- | Get the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iMContext #inputHints
--   
getIMContextInputHints :: (MonadIO m, IsIMContext o) => o -> m [InputHints]

-- | Set the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iMContext [ #inputHints := value ]
--   
setIMContextInputHints :: (MonadIO m, IsIMContext o) => o -> [InputHints] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-purpose” property. This is rarely needed directly, but
--   it is used by new.
constructIMContextInputPurpose :: (IsIMContext o, MonadIO m) => InputPurpose -> m (GValueConstruct o)

-- | Get the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get iMContext #inputPurpose
--   
getIMContextInputPurpose :: (MonadIO m, IsIMContext o) => o -> m InputPurpose

-- | Set the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set iMContext [ #inputPurpose := value ]
--   
setIMContextInputPurpose :: (MonadIO m, IsIMContext o) => o -> InputPurpose -> m ()

-- | The commit signal is emitted when a complete input sequence has
--   been entered by the user.
--   
--   If the commit comes after a preediting sequence, the commit
--   signal is emitted after preeditEnd.
--   
--   This can be a single character immediately after a key press or the
--   final result of preediting.
type IMContextCommitCallback = Text -> IO ()

-- | Connect a signal handler for the commit signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iMContext #commit callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextCommit :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextCommitCallback) -> m SignalHandlerId

-- | Connect a signal handler for the commit signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iMContext #commit callback
--   
onIMContextCommit :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextCommitCallback) -> m SignalHandlerId

-- | The deleteSurrounding signal is emitted when the input method
--   needs to delete all or part of the context surrounding the cursor.
type IMContextDeleteSurroundingCallback = Int32 -> Int32 -> IO Bool

-- | Connect a signal handler for the deleteSurrounding signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iMContext #deleteSurrounding callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextDeleteSurrounding :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextDeleteSurroundingCallback) -> m SignalHandlerId

-- | Connect a signal handler for the deleteSurrounding signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iMContext #deleteSurrounding callback
--   
onIMContextDeleteSurrounding :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextDeleteSurroundingCallback) -> m SignalHandlerId

-- | Emitted when the filtered keys do not compose to a single valid
--   character.
--   
--   Since: 4.22
type IMContextInvalidCompositionCallback = Text -> IO Bool

-- | Connect a signal handler for the invalidComposition signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iMContext #invalidComposition callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextInvalidComposition :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextInvalidCompositionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the invalidComposition signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iMContext #invalidComposition callback
--   
onIMContextInvalidComposition :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextInvalidCompositionCallback) -> m SignalHandlerId

-- | The preeditChanged signal is emitted whenever the preedit
--   sequence currently being entered has changed.
--   
--   It is also emitted at the end of a preedit sequence, in which case
--   iMContextGetPreeditString returns the empty string.
type IMContextPreeditChangedCallback = IO ()

-- | Connect a signal handler for the preeditChanged signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iMContext #preeditChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextPreeditChanged :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextPreeditChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the preeditChanged signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iMContext #preeditChanged callback
--   
onIMContextPreeditChanged :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextPreeditChangedCallback) -> m SignalHandlerId

-- | The preeditEnd signal is emitted when a preediting sequence has
--   been completed or canceled.
type IMContextPreeditEndCallback = IO ()

-- | Connect a signal handler for the preeditEnd signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iMContext #preeditEnd callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextPreeditEnd :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextPreeditEndCallback) -> m SignalHandlerId

-- | Connect a signal handler for the preeditEnd signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iMContext #preeditEnd callback
--   
onIMContextPreeditEnd :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextPreeditEndCallback) -> m SignalHandlerId

-- | The preeditStart signal is emitted when a new preediting
--   sequence starts.
type IMContextPreeditStartCallback = IO ()

-- | Connect a signal handler for the preeditStart signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after iMContext #preeditStart callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextPreeditStart :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextPreeditStartCallback) -> m SignalHandlerId

-- | Connect a signal handler for the preeditStart signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on iMContext #preeditStart callback
--   
onIMContextPreeditStart :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextPreeditStartCallback) -> m SignalHandlerId

-- | The retrieveSurrounding signal is emitted when the input method
--   requires the context surrounding the cursor.
--   
--   The callback should set the input method surrounding context by
--   calling the iMContextSetSurrounding method.
type IMContextRetrieveSurroundingCallback = IO Bool

-- | Connect a signal handler for the retrieveSurrounding signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after iMContext #retrieveSurrounding callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterIMContextRetrieveSurrounding :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextRetrieveSurroundingCallback) -> m SignalHandlerId

-- | Connect a signal handler for the retrieveSurrounding signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on iMContext #retrieveSurrounding callback
--   
onIMContextRetrieveSurrounding :: (IsIMContext a, MonadIO m) => a -> ((?self :: a) => IMContextRetrieveSurroundingCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.IMContext.IMContext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.IMContext.IMContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.IMContext.IMContext
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.IMContext.IMContext)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.IMContext.IMContext o) => GI.Gtk.Objects.IMContext.IsIMContext o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.IMContext.IMContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.IMContext.IMContext

-- | Creates a custom titlebar for a window.
--   
--   <picture> <source srcset="headerbar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkHeaderBar" src="headerbar.png"> </picture>
--   
--   GtkHeaderBar is similar to a horizontal
--   GtkCenterBox. It allows children to be placed at the start or
--   the end. In addition, it allows the window title to be displayed. The
--   title will be centered with respect to the width of the box, even if
--   the children at either side take up different amounts of space.
--   
--   GtkHeaderBar can add typical window frame controls, such as
--   minimize, maximize and close buttons, or the window icon.
--   
--   For these reasons, GtkHeaderBar is the natural choice for use
--   as the custom titlebar widget of a GtkWindow (see
--   windowSetTitlebar), as it gives features typical of titlebars
--   while allowing the addition of child widgets.
--   
--   
GtkHeaderBar as GtkBuildable
--   
--   The GtkHeaderBar implementation of the GtkBuildable
--   interface supports adding children at the start or end sides by
--   specifying “start” or “end” as the “type” attribute of a
--   <child> element, or setting the title widget by
--   specifying “title” value.
--   
--   By default the GtkHeaderBar uses a GtkLabel
--   displaying the title of the window it is contained in as the title
--   widget, equivalent to the following UI definition:
--   
--   
xml code
--   
--   
--   <object class="GtkHeaderBar">
--     <property name="title-widget">
--       <object class="GtkLabel">
--         <property name="label" translatable="yes">Label</property>
--         <property name="single-line-mode">True</property>
--         <property name="ellipsize">end</property>
--         <property name="width-chars">5</property>
--         <style>
--           <class name="title"/>
--         </style>
--       </object>
--     </property>
--   </object>
--   
--   
--   
CSS nodes
--   
--   
--   headerbar
--   ╰── windowhandle
--       ╰── box
--           ├── box.start
--           │   ├── windowcontrols.start
--           │   ╰── [other children]
--           ├── [Title Widget]
--           ╰── box.end
--               ├── [other children]
--               ╰── windowcontrols.end
--   
--   
--   A GtkHeaderBar's CSS node is called headerbar. It
--   contains a windowhandle subnode, which contains a
--   box subnode, which contains two box subnodes at the
--   start and end of the header bar, as well as a center node that
--   represents the title.
--   
--   Each of the boxes contains a windowcontrols subnode, see
--   WindowControls for details, as well as other children.
--   
--   
Accessibility
--   
--   GtkHeaderBar uses the AccessibleRoleGroup role.
module GI.Gtk.Objects.HeaderBar

-- | Memory-managed wrapper type.
newtype HeaderBar
HeaderBar :: ManagedPtr HeaderBar -> HeaderBar

-- | Type class for types which can be safely cast to HeaderBar, for
--   instance with toHeaderBar.
class (GObject o, IsDescendantOf HeaderBar o) => IsHeaderBar o

-- | Cast to HeaderBar, for types for which this is known to be
--   safe. For general casts, use castTo.
toHeaderBar :: (MonadIO m, IsHeaderBar o) => o -> m HeaderBar

-- | Gets the decoration layout of the header bar.
headerBarGetDecorationLayout :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> m (Maybe Text)

-- | Returns whether this header bar shows the standard window title
--   buttons.
headerBarGetShowTitleButtons :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> m Bool

-- | Retrieves the title widget of the header bar.
--   
--   See headerBarSetTitleWidget.
headerBarGetTitleWidget :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> m (Maybe Widget)

-- | Returns whether this header bar shows platform native window controls.
--   
--   Since: 4.18
headerBarGetUseNativeControls :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> m Bool

-- | Creates a new GtkHeaderBar widget.
headerBarNew :: (HasCallStack, MonadIO m) => m HeaderBar

-- | Adds a child to the header bar, packed with reference to the end.
headerBarPackEnd :: (HasCallStack, MonadIO m, IsHeaderBar a, IsWidget b) => a -> b -> m ()

-- | Adds a child to the header bar, packed with reference to the start.
headerBarPackStart :: (HasCallStack, MonadIO m, IsHeaderBar a, IsWidget b) => a -> b -> m ()

-- | Removes a child from the header bar.
--   
--   The child must have been added with headerBarPackStart,
--   headerBarPackEnd or headerBarSetTitleWidget.
headerBarRemove :: (HasCallStack, MonadIO m, IsHeaderBar a, IsWidget b) => a -> b -> m ()

-- | Sets the decoration layout for this header bar.
--   
--   This property overrides the Settings:gtkDecorationLayout
--   setting.
--   
--   There can be valid reasons for overriding the setting, such as a
--   header bar design that does not allow for buttons to take room on the
--   right, or only offers room for a single close button. Split header
--   bars are another example for overriding the setting.
--   
--   The format of the string is button names, separated by commas. A colon
--   separates the buttons that should appear on the left from those on the
--   right. Recognized button names are minimize, maximize, close and icon
--   (the window icon).
--   
--   For example, “icon:minimize,maximize,close” specifies an icon on the
--   left, and minimize, maximize and close buttons on the right.
headerBarSetDecorationLayout :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> Maybe Text -> m ()

-- | Sets whether this header bar shows the standard window title buttons.
headerBarSetShowTitleButtons :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> Bool -> m ()

-- | Sets the title for the header bar.
--   
--   When set to NULL, the headerbar will display the title of the
--   window it is contained in.
--   
--   The title should help a user identify the current view. To achieve the
--   same style as the builtin title, use the “title” style class.
--   
--   You should set the title widget to NULL, for the window title
--   label to be visible again.
headerBarSetTitleWidget :: (HasCallStack, MonadIO m, IsHeaderBar a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether this header bar shows native window controls.
--   
--   This option shows the "stoplight" buttons on macOS. For Linux, this
--   option has no effect.
--   
--   See also Using GTK on Apple macOS.
--   
--   Since: 4.18
headerBarSetUseNativeControls :: (HasCallStack, MonadIO m, IsHeaderBar a) => a -> Bool -> m ()

-- | Set the value of the “decoration-layout” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #decorationLayout
--   
clearHeaderBarDecorationLayout :: (MonadIO m, IsHeaderBar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “decoration-layout” property. This is rarely needed directly,
--   but it is used by new.
constructHeaderBarDecorationLayout :: (IsHeaderBar o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “decoration-layout” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get headerBar #decorationLayout
--   
getHeaderBarDecorationLayout :: (MonadIO m, IsHeaderBar o) => o -> m (Maybe Text)

-- | Set the value of the “decoration-layout” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set headerBar [ #decorationLayout := value ]
--   
setHeaderBarDecorationLayout :: (MonadIO m, IsHeaderBar o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-title-buttons” property. This is rarely needed
--   directly, but it is used by new.
constructHeaderBarShowTitleButtons :: (IsHeaderBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-title-buttons” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get headerBar #showTitleButtons
--   
getHeaderBarShowTitleButtons :: (MonadIO m, IsHeaderBar o) => o -> m Bool

-- | Set the value of the “show-title-buttons” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set headerBar [ #showTitleButtons := value ]
--   
setHeaderBarShowTitleButtons :: (MonadIO m, IsHeaderBar o) => o -> Bool -> m ()

-- | Set the value of the “title-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #titleWidget
--   
clearHeaderBarTitleWidget :: (MonadIO m, IsHeaderBar o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title-widget” property. This is rarely needed directly, but
--   it is used by new.
constructHeaderBarTitleWidget :: (IsHeaderBar o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “title-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get headerBar #titleWidget
--   
getHeaderBarTitleWidget :: (MonadIO m, IsHeaderBar o) => o -> m (Maybe Widget)

-- | Set the value of the “title-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set headerBar [ #titleWidget := value ]
--   
setHeaderBarTitleWidget :: (MonadIO m, IsHeaderBar o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-native-controls” property. This is rarely needed
--   directly, but it is used by new.
constructHeaderBarUseNativeControls :: (IsHeaderBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-native-controls” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get headerBar #useNativeControls
--   
getHeaderBarUseNativeControls :: (MonadIO m, IsHeaderBar o) => o -> m Bool

-- | Set the value of the “use-native-controls” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set headerBar [ #useNativeControls := value ]
--   
setHeaderBarUseNativeControls :: (MonadIO m, IsHeaderBar o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.HeaderBar.HeaderBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.HeaderBar.HeaderBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.HeaderBar.HeaderBar
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.HeaderBar.HeaderBar)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.HeaderBar.HeaderBar o) => GI.Gtk.Objects.HeaderBar.IsHeaderBar o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.HeaderBar.HeaderBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.HeaderBar.HeaderBar

-- | Presents a large dynamic grid of items.
--   
--   GtkGridView uses its factory to generate one child widget for
--   each visible item and shows them in a grid. The orientation of the
--   grid view determines if the grid reflows vertically or horizontally.
--   
--   GtkGridView allows the user to select items according to the
--   selection characteristics of the model. For models that allow multiple
--   selected items, it is possible to turn on _rubberband selection_,
--   using GridView:enableRubberband.
--   
--   To learn more about the list widget framework, see the
--   overview.
--   
--   
Actions
--   
--   GtkGridView defines a set of built-in actions:
--   
--   
--   
- list.activate-item activates the item at given position
--   by emitting the the GridView::activate signal.
--   
--   
--   
CSS nodes
--   
--   
--   gridview
--   ├── child[.activatable]
--   │
--   ├── child[.activatable]
--   │
--   ┊
--   ╰── [rubberband]
--   
--   
--   GtkGridView uses a single CSS node with name
--   gridview. Each child uses a single CSS node with name
--   child. If the ListItem:activatable property is set,
--   the corresponding row will have the .activatable style class.
--   For rubberband selection, a subnode with name rubberband is
--   used.
--   
--   
Accessibility
--   
--   GtkGridView uses the AccessibleRoleGrid role, and the
--   items use the AccessibleRoleGridCell role.
module GI.Gtk.Objects.GridView

-- | Memory-managed wrapper type.
newtype GridView
GridView :: ManagedPtr GridView -> GridView

-- | Type class for types which can be safely cast to GridView, for
--   instance with toGridView.
class (GObject o, IsDescendantOf GridView o) => IsGridView o

-- | Cast to GridView, for types for which this is known to be safe.
--   For general casts, use castTo.
toGridView :: (MonadIO m, IsGridView o) => o -> m GridView

-- | Returns whether rows can be selected by dragging with the mouse.
gridViewGetEnableRubberband :: (HasCallStack, MonadIO m, IsGridView a) => a -> m Bool

-- | Gets the factory that's currently used to populate list items.
gridViewGetFactory :: (HasCallStack, MonadIO m, IsGridView a) => a -> m (Maybe ListItemFactory)

-- | Gets the maximum number of columns that the grid will use.
gridViewGetMaxColumns :: (HasCallStack, MonadIO m, IsGridView a) => a -> m Word32

-- | Gets the minimum number of columns that the grid will use.
gridViewGetMinColumns :: (HasCallStack, MonadIO m, IsGridView a) => a -> m Word32

-- | Gets the model that's currently used to read the items displayed.
gridViewGetModel :: (HasCallStack, MonadIO m, IsGridView a) => a -> m (Maybe SelectionModel)

-- | Returns whether items will be activated on single click and selected
--   on hover.
gridViewGetSingleClickActivate :: (HasCallStack, MonadIO m, IsGridView a) => a -> m Bool

-- | Gets the behavior set for the <kbd>Tab</kbd> key.
--   
--   Since: 4.12
gridViewGetTabBehavior :: (HasCallStack, MonadIO m, IsGridView a) => a -> m ListTabBehavior

-- | Creates a new GtkGridView that uses the given
--   factory for mapping items to widgets.
--   
--   The function takes ownership of the arguments, so you can write code
--   like
--   
--   
c code
--   
--   
--   grid_view = gtk_grid_view_new (create_model (),
--     gtk_builder_list_item_factory_new_from_resource ("/resource.ui"));
--   
gridViewNew :: (HasCallStack, MonadIO m, IsSelectionModel a, IsListItemFactory b) => Maybe a -> Maybe b -> m GridView

-- | Scrolls to the item at the given position and performs the actions
--   specified in flags.
--   
--   This function works no matter if the gridview is shown or focused. If
--   it isn't, then the changes will take effect once that happens.
--   
--   Since: 4.12
gridViewScrollTo :: (HasCallStack, MonadIO m, IsGridView a) => a -> Word32 -> [ListScrollFlags] -> Maybe ScrollInfo -> m ()

-- | Sets whether selections can be changed by dragging with the mouse.
gridViewSetEnableRubberband :: (HasCallStack, MonadIO m, IsGridView a) => a -> Bool -> m ()

-- | Sets the GtkListItemFactory to use for populating list items.
gridViewSetFactory :: (HasCallStack, MonadIO m, IsGridView a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the maximum number of columns to use.
--   
--   This number must be at least 1.
--   
--   If maxColumns is smaller than the minimum set via
--   gridViewSetMinColumns, that value is used instead.
gridViewSetMaxColumns :: (HasCallStack, MonadIO m, IsGridView a) => a -> Word32 -> m ()

-- | Sets the minimum number of columns to use.
--   
--   This number must be at least 1.
--   
--   If minColumns is smaller than the minimum set via
--   gridViewSetMaxColumns, that value is ignored.
gridViewSetMinColumns :: (HasCallStack, MonadIO m, IsGridView a) => a -> Word32 -> m ()

-- | Sets the model to use.
--   
--   This must be a SelectionModel.
gridViewSetModel :: (HasCallStack, MonadIO m, IsGridView a, IsSelectionModel b) => a -> Maybe b -> m ()

-- | Sets whether items should be activated on single click and selected on
--   hover.
gridViewSetSingleClickActivate :: (HasCallStack, MonadIO m, IsGridView a) => a -> Bool -> m ()

-- | Sets the behavior of the <kbd>Tab</kbd> and
--   <kbd>Shift</kbd>+<kbd>Tab</kbd> keys.
--   
--   Since: 4.12
gridViewSetTabBehavior :: (HasCallStack, MonadIO m, IsGridView a) => a -> ListTabBehavior -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-rubberband” property. This is rarely needed directly,
--   but it is used by new.
constructGridViewEnableRubberband :: (IsGridView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-rubberband” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #enableRubberband
--   
getGridViewEnableRubberband :: (MonadIO m, IsGridView o) => o -> m Bool

-- | Set the value of the “enable-rubberband” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #enableRubberband := value ]
--   
setGridViewEnableRubberband :: (MonadIO m, IsGridView o) => o -> Bool -> m ()

-- | Set the value of the “factory” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #factory
--   
clearGridViewFactory :: (MonadIO m, IsGridView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “factory” property. This is rarely needed directly, but it is
--   used by new.
constructGridViewFactory :: (IsGridView o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #factory
--   
getGridViewFactory :: (MonadIO m, IsGridView o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #factory := value ]
--   
setGridViewFactory :: (MonadIO m, IsGridView o, IsListItemFactory a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-columns” property. This is rarely needed directly, but
--   it is used by new.
constructGridViewMaxColumns :: (IsGridView o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “max-columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #maxColumns
--   
getGridViewMaxColumns :: (MonadIO m, IsGridView o) => o -> m Word32

-- | Set the value of the “max-columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #maxColumns := value ]
--   
setGridViewMaxColumns :: (MonadIO m, IsGridView o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-columns” property. This is rarely needed directly, but
--   it is used by new.
constructGridViewMinColumns :: (IsGridView o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “min-columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #minColumns
--   
getGridViewMinColumns :: (MonadIO m, IsGridView o) => o -> m Word32

-- | Set the value of the “min-columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #minColumns := value ]
--   
setGridViewMinColumns :: (MonadIO m, IsGridView o) => o -> Word32 -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearGridViewModel :: (MonadIO m, IsGridView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructGridViewModel :: (IsGridView o, MonadIO m, IsSelectionModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #model
--   
getGridViewModel :: (MonadIO m, IsGridView o) => o -> m (Maybe SelectionModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #model := value ]
--   
setGridViewModel :: (MonadIO m, IsGridView o, IsSelectionModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “single-click-activate” property. This is rarely needed
--   directly, but it is used by new.
constructGridViewSingleClickActivate :: (IsGridView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “single-click-activate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #singleClickActivate
--   
getGridViewSingleClickActivate :: (MonadIO m, IsGridView o) => o -> m Bool

-- | Set the value of the “single-click-activate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #singleClickActivate := value ]
--   
setGridViewSingleClickActivate :: (MonadIO m, IsGridView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tab-behavior” property. This is rarely needed directly, but
--   it is used by new.
constructGridViewTabBehavior :: (IsGridView o, MonadIO m) => ListTabBehavior -> m (GValueConstruct o)

-- | Get the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridView #tabBehavior
--   
getGridViewTabBehavior :: (MonadIO m, IsGridView o) => o -> m ListTabBehavior

-- | Set the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridView [ #tabBehavior := value ]
--   
setGridViewTabBehavior :: (MonadIO m, IsGridView o) => o -> ListTabBehavior -> m ()

-- | Emitted when a cell has been activated by the user, usually via
--   activating the GtkGridView|list.activate-item action.
--   
--   This allows for a convenient way to handle activation in a gridview.
--   See ListItem:activatable for details on how to use this signal.
type GridViewActivateCallback = Word32 -> IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gridView #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGridViewActivate :: (IsGridView a, MonadIO m) => a -> ((?self :: a) => GridViewActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gridView #activate callback
--   
onGridViewActivate :: (IsGridView a, MonadIO m) => a -> ((?self :: a) => GridViewActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GridView.GridView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GridView.GridView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GridView.GridView
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GridView.GridView)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GridView.GridView o) => GI.Gtk.Objects.GridView.IsGridView o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GridView.GridView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GridView.GridView

-- | GtkLayoutChild subclass for children in a
--   GtkGridLayout.
module GI.Gtk.Objects.GridLayoutChild

-- | Memory-managed wrapper type.
newtype GridLayoutChild
GridLayoutChild :: ManagedPtr GridLayoutChild -> GridLayoutChild

-- | Type class for types which can be safely cast to
--   GridLayoutChild, for instance with toGridLayoutChild.
class (GObject o, IsDescendantOf GridLayoutChild o) => IsGridLayoutChild o

-- | Cast to GridLayoutChild, for types for which this is known to
--   be safe. For general casts, use castTo.
toGridLayoutChild :: (MonadIO m, IsGridLayoutChild o) => o -> m GridLayoutChild

-- | Retrieves the column number to which child attaches
--   its left side.
gridLayoutChildGetColumn :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> m Int32

-- | Retrieves the number of columns that child spans to.
gridLayoutChildGetColumnSpan :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> m Int32

-- | Retrieves the row number to which child attaches its
--   top side.
gridLayoutChildGetRow :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> m Int32

-- | Retrieves the number of rows that child spans to.
gridLayoutChildGetRowSpan :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> m Int32

-- | Sets the column number to attach the left side of
--   child.
gridLayoutChildSetColumn :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> Int32 -> m ()

-- | Sets the number of columns child spans to.
gridLayoutChildSetColumnSpan :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> Int32 -> m ()

-- | Sets the row to place child in.
gridLayoutChildSetRow :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> Int32 -> m ()

-- | Sets the number of rows child spans to.
gridLayoutChildSetRowSpan :: (HasCallStack, MonadIO m, IsGridLayoutChild a) => a -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column” property. This is rarely needed directly, but it is
--   used by new.
constructGridLayoutChildColumn :: (IsGridLayoutChild o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayoutChild #column
--   
getGridLayoutChildColumn :: (MonadIO m, IsGridLayoutChild o) => o -> m Int32

-- | Set the value of the “column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayoutChild [ #column := value ]
--   
setGridLayoutChildColumn :: (MonadIO m, IsGridLayoutChild o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column-span” property. This is rarely needed directly, but
--   it is used by new.
constructGridLayoutChildColumnSpan :: (IsGridLayoutChild o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “column-span” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayoutChild #columnSpan
--   
getGridLayoutChildColumnSpan :: (MonadIO m, IsGridLayoutChild o) => o -> m Int32

-- | Set the value of the “column-span” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayoutChild [ #columnSpan := value ]
--   
setGridLayoutChildColumnSpan :: (MonadIO m, IsGridLayoutChild o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row” property. This is rarely needed directly, but it is
--   used by new.
constructGridLayoutChildRow :: (IsGridLayoutChild o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “row” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get gridLayoutChild #row
--   
getGridLayoutChildRow :: (MonadIO m, IsGridLayoutChild o) => o -> m Int32

-- | Set the value of the “row” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set gridLayoutChild [ #row := value ]
--   
setGridLayoutChildRow :: (MonadIO m, IsGridLayoutChild o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-span” property. This is rarely needed directly, but it
--   is used by new.
constructGridLayoutChildRowSpan :: (IsGridLayoutChild o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “row-span” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayoutChild #rowSpan
--   
getGridLayoutChildRowSpan :: (MonadIO m, IsGridLayoutChild o) => o -> m Int32

-- | Set the value of the “row-span” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayoutChild [ #rowSpan := value ]
--   
setGridLayoutChildRowSpan :: (MonadIO m, IsGridLayoutChild o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.GridLayoutChild.GridLayoutChild
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GridLayoutChild.GridLayoutChild
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GridLayoutChild.GridLayoutChild
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GridLayoutChild.GridLayoutChild)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GridLayoutChild.GridLayoutChild o) => GI.Gtk.Objects.GridLayoutChild.IsGridLayoutChild o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GridLayoutChild.GridLayoutChild
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GridLayoutChild.GridLayoutChild

-- | Arranges child widgets in rows and columns.
--   
--   Children have an "attach point" defined by the horizontal and vertical
--   index of the cell they occupy; children can span multiple rows or
--   columns. The layout properties for setting the attach points and spans
--   are set using the GridLayoutChild associated to each child
--   widget.
--   
--   The behaviour of GtkGridLayout when several children occupy
--   the same grid cell is undefined.
--   
--   GtkGridLayout can be used like a GtkBoxLayout if all
--   children are attached to the same row or column; however, if you only
--   ever need a single row or column, you should consider using
--   GtkBoxLayout.
module GI.Gtk.Objects.GridLayout

-- | Memory-managed wrapper type.
newtype GridLayout
GridLayout :: ManagedPtr GridLayout -> GridLayout

-- | Type class for types which can be safely cast to GridLayout,
--   for instance with toGridLayout.
class (GObject o, IsDescendantOf GridLayout o) => IsGridLayout o

-- | Cast to GridLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toGridLayout :: (MonadIO m, IsGridLayout o) => o -> m GridLayout

-- | Retrieves the row set with gridLayoutSetBaselineRow.
gridLayoutGetBaselineRow :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> m Int32

-- | Checks whether all columns of grid should have the
--   same width.
gridLayoutGetColumnHomogeneous :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> m Bool

-- | Retrieves the spacing set with gridLayoutSetColumnSpacing.
gridLayoutGetColumnSpacing :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> m Word32

-- | Returns the baseline position of row.
--   
--   If no value has been set with gridLayoutSetRowBaselinePosition,
--   the default value of BaselinePositionCenter is returned.
gridLayoutGetRowBaselinePosition :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Int32 -> m BaselinePosition

-- | Checks whether all rows of grid should have the same
--   height.
gridLayoutGetRowHomogeneous :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> m Bool

-- | Retrieves the spacing set with gridLayoutSetRowSpacing.
gridLayoutGetRowSpacing :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> m Word32

-- | Creates a new GtkGridLayout.
gridLayoutNew :: (HasCallStack, MonadIO m) => m GridLayout

-- | Sets which row defines the global baseline for the entire grid.
--   
--   Each row in the grid can have its own local baseline, but only one of
--   those is global, meaning it will be the baseline in the parent of the
--   grid.
gridLayoutSetBaselineRow :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Int32 -> m ()

-- | Sets whether all columns of grid should have the same
--   width.
gridLayoutSetColumnHomogeneous :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Bool -> m ()

-- | Sets the amount of space to insert between consecutive columns.
gridLayoutSetColumnSpacing :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Word32 -> m ()

-- | Sets how the baseline should be positioned on row of
--   the grid, in case that row is assigned more space than is requested.
gridLayoutSetRowBaselinePosition :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Int32 -> BaselinePosition -> m ()

-- | Sets whether all rows of grid should have the same
--   height.
gridLayoutSetRowHomogeneous :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Bool -> m ()

-- | Sets the amount of space to insert between consecutive rows.
gridLayoutSetRowSpacing :: (HasCallStack, MonadIO m, IsGridLayout a) => a -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-row” property. This is rarely needed directly, but
--   it is used by new.
constructGridLayoutBaselineRow :: (IsGridLayout o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “baseline-row” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayout #baselineRow
--   
getGridLayoutBaselineRow :: (MonadIO m, IsGridLayout o) => o -> m Int32

-- | Set the value of the “baseline-row” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayout [ #baselineRow := value ]
--   
setGridLayoutBaselineRow :: (MonadIO m, IsGridLayout o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column-homogeneous” property. This is rarely needed
--   directly, but it is used by new.
constructGridLayoutColumnHomogeneous :: (IsGridLayout o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “column-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayout #columnHomogeneous
--   
getGridLayoutColumnHomogeneous :: (MonadIO m, IsGridLayout o) => o -> m Bool

-- | Set the value of the “column-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayout [ #columnHomogeneous := value ]
--   
setGridLayoutColumnHomogeneous :: (MonadIO m, IsGridLayout o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column-spacing” property. This is rarely needed directly,
--   but it is used by new.
constructGridLayoutColumnSpacing :: (IsGridLayout o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayout #columnSpacing
--   
getGridLayoutColumnSpacing :: (MonadIO m, IsGridLayout o) => o -> m Int32

-- | Set the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayout [ #columnSpacing := value ]
--   
setGridLayoutColumnSpacing :: (MonadIO m, IsGridLayout o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-homogeneous” property. This is rarely needed directly,
--   but it is used by new.
constructGridLayoutRowHomogeneous :: (IsGridLayout o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “row-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayout #rowHomogeneous
--   
getGridLayoutRowHomogeneous :: (MonadIO m, IsGridLayout o) => o -> m Bool

-- | Set the value of the “row-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayout [ #rowHomogeneous := value ]
--   
setGridLayoutRowHomogeneous :: (MonadIO m, IsGridLayout o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-spacing” property. This is rarely needed directly, but
--   it is used by new.
constructGridLayoutRowSpacing :: (IsGridLayout o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gridLayout #rowSpacing
--   
getGridLayoutRowSpacing :: (MonadIO m, IsGridLayout o) => o -> m Int32

-- | Set the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gridLayout [ #rowSpacing := value ]
--   
setGridLayoutRowSpacing :: (MonadIO m, IsGridLayout o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.GridLayout.GridLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GridLayout.GridLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GridLayout.GridLayout
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GridLayout.GridLayout)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GridLayout.GridLayout o) => GI.Gtk.Objects.GridLayout.IsGridLayout o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GridLayout.GridLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GridLayout.GridLayout

-- | Arranges its child widgets in rows and columns.
--   
--   <picture> <source srcset="grid-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkGrid" src="grid.png"> </picture>
--   
--   It supports arbitrary positions and horizontal/vertical spans.
--   
--   Children are added using gridAttach. They can span multiple
--   rows or columns. It is also possible to add a child next to an
--   existing child, using gridAttachNextTo. To remove a child from
--   the grid, use gridRemove.
--   
--   The behaviour of GtkGrid when several children occupy the
--   same grid cell is undefined.
--   
--   
GtkGrid as GtkBuildable
--   
--   Every child in a GtkGrid has access to a custom
--   Buildable element, called <layout>. It can by
--   used to specify a position in the grid and optionally spans. All
--   properties that can be used in the <layout> element are
--   implemented by GridLayoutChild.
--   
--   It is implemented by GtkWidget using LayoutManager.
--   
--   To showcase it, here is a simple example:
--   
--   
xml code
--   
--   
--   <object class="GtkGrid" id="my_grid">
--     <child>
--       <object class="GtkButton" id="button1">
--         <property name="label">Button 1</property>
--         <layout>
--           <property name="column">0</property>
--           <property name="row">0</property>
--         </layout>
--       </object>
--     </child>
--     <child>
--       <object class="GtkButton" id="button2">
--         <property name="label">Button 2</property>
--         <layout>
--           <property name="column">1</property>
--           <property name="row">0</property>
--         </layout>
--       </object>
--     </child>
--     <child>
--       <object class="GtkButton" id="button3">
--         <property name="label">Button 3</property>
--         <layout>
--           <property name="column">2</property>
--           <property name="row">0</property>
--           <property name="row-span">2</property>
--         </layout>
--       </object>
--     </child>
--     <child>
--       <object class="GtkButton" id="button4">
--         <property name="label">Button 4</property>
--         <layout>
--           <property name="column">0</property>
--           <property name="row">1</property>
--           <property name="column-span">2</property>
--         </layout>
--       </object>
--     </child>
--   </object>
--   
--   
--   It organizes the first two buttons side-by-side in one cell each. The
--   third button is in the last column but spans across two rows. This is
--   defined by the row-span property. The last button is located
--   in the second row and spans across two columns, which is defined by
--   the column-span property.
--   
--   
CSS nodes
--   
--   GtkGrid uses a single CSS node with name grid.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkGrid used the AccessibleRoleGroup
--   role.
--   
--   Starting from GTK 4.12, GtkGrid uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.Grid

-- | Memory-managed wrapper type.
newtype Grid
Grid :: ManagedPtr Grid -> Grid

-- | Type class for types which can be safely cast to Grid, for
--   instance with toGrid.
class (GObject o, IsDescendantOf Grid o) => IsGrid o

-- | Cast to Grid, for types for which this is known to be safe. For
--   general casts, use castTo.
toGrid :: (MonadIO m, IsGrid o) => o -> m Grid

-- | Adds a widget to the grid.
--   
--   The position of child is determined by
--   column and row. The number of “cells”
--   that child will occupy is determined by
--   width and height.
gridAttach :: (HasCallStack, MonadIO m, IsGrid a, IsWidget b) => a -> b -> Int32 -> Int32 -> Int32 -> Int32 -> m ()

-- | Adds a widget to the grid.
--   
--   The widget is placed next to sibling, on the side
--   determined by side. When sibling is
--   Nothing, the widget is placed in row (for left or right
--   placement) or column 0 (for top or bottom placement), at the end
--   indicated by side.
--   
--   Attaching widgets labeled [1], [2], [3]
--   with @sibling == %NULL and @side == %GTK_POS_LEFT
--   yields a layout of [3][2][1].
gridAttachNextTo :: (HasCallStack, MonadIO m, IsGrid a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> PositionType -> Int32 -> Int32 -> m ()

-- | Returns which row defines the global baseline of grid.
gridGetBaselineRow :: (HasCallStack, MonadIO m, IsGrid a) => a -> m Int32

-- | Gets the child of grid whose area covers the grid cell
--   at column, row.
gridGetChildAt :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> Int32 -> m (Maybe Widget)

-- | Returns whether all columns of grid have the same
--   width.
gridGetColumnHomogeneous :: (HasCallStack, MonadIO m, IsGrid a) => a -> m Bool

-- | Returns the amount of space between the columns of
--   grid.
gridGetColumnSpacing :: (HasCallStack, MonadIO m, IsGrid a) => a -> m Word32

-- | Returns the baseline position of row.
--   
--   See gridSetRowBaselinePosition.
gridGetRowBaselinePosition :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> m BaselinePosition

-- | Returns whether all rows of grid have the same height.
gridGetRowHomogeneous :: (HasCallStack, MonadIO m, IsGrid a) => a -> m Bool

-- | Returns the amount of space between the rows of grid.
gridGetRowSpacing :: (HasCallStack, MonadIO m, IsGrid a) => a -> m Word32

-- | Inserts a column at the specified position.
--   
--   Children which are attached at or to the right of this position are
--   moved one column to the right. Children which span across this
--   position are grown to span the new column.
gridInsertColumn :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> m ()

-- | Inserts a row or column at the specified position.
--   
--   The new row or column is placed next to sibling, on
--   the side determined by side. If side
--   is PositionTypeTop or PositionTypeBottom, a row is
--   inserted. If side is PositionTypeLeft of
--   PositionTypeRight, a column is inserted.
gridInsertNextTo :: (HasCallStack, MonadIO m, IsGrid a, IsWidget b) => a -> b -> PositionType -> m ()

-- | Inserts a row at the specified position.
--   
--   Children which are attached at or below this position are moved one
--   row down. Children which span across this position are grown to span
--   the new row.
gridInsertRow :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> m ()

-- | Creates a new grid widget.
gridNew :: (HasCallStack, MonadIO m) => m Grid

-- | Queries the attach points and spans of child inside
--   the given GtkGrid.
gridQueryChild :: (HasCallStack, MonadIO m, IsGrid a, IsWidget b) => a -> b -> m (Int32, Int32, Int32, Int32)

-- | Removes a child from grid.
--   
--   The child must have been added with gridAttach or
--   gridAttachNextTo.
gridRemove :: (HasCallStack, MonadIO m, IsGrid a, IsWidget b) => a -> b -> m ()

-- | Removes a column from the grid.
--   
--   Children that are placed in this column are removed, spanning children
--   that overlap this column have their width reduced by one, and children
--   after the column are moved to the left.
gridRemoveColumn :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> m ()

-- | Removes a row from the grid.
--   
--   Children that are placed in this row are removed, spanning children
--   that overlap this row have their height reduced by one, and children
--   below the row are moved up.
gridRemoveRow :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> m ()

-- | Sets which row defines the global baseline for the entire grid.
--   
--   Each row in the grid can have its own local baseline, but only one of
--   those is global, meaning it will be the baseline in the parent of the
--   grid.
gridSetBaselineRow :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> m ()

-- | Sets whether all columns of grid will have the same
--   width.
gridSetColumnHomogeneous :: (HasCallStack, MonadIO m, IsGrid a) => a -> Bool -> m ()

-- | Sets the amount of space between columns of grid.
gridSetColumnSpacing :: (HasCallStack, MonadIO m, IsGrid a) => a -> Word32 -> m ()

-- | Sets how the baseline should be positioned on row of
--   the grid, in case that row is assigned more space than is requested.
--   
--   The default baseline position is BaselinePositionCenter.
gridSetRowBaselinePosition :: (HasCallStack, MonadIO m, IsGrid a) => a -> Int32 -> BaselinePosition -> m ()

-- | Sets whether all rows of grid will have the same
--   height.
gridSetRowHomogeneous :: (HasCallStack, MonadIO m, IsGrid a) => a -> Bool -> m ()

-- | Sets the amount of space between rows of grid.
gridSetRowSpacing :: (HasCallStack, MonadIO m, IsGrid a) => a -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-row” property. This is rarely needed directly, but
--   it is used by new.
constructGridBaselineRow :: (IsGrid o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “baseline-row” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get grid #baselineRow
--   
getGridBaselineRow :: (MonadIO m, IsGrid o) => o -> m Int32

-- | Set the value of the “baseline-row” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set grid [ #baselineRow := value ]
--   
setGridBaselineRow :: (MonadIO m, IsGrid o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column-homogeneous” property. This is rarely needed
--   directly, but it is used by new.
constructGridColumnHomogeneous :: (IsGrid o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “column-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get grid #columnHomogeneous
--   
getGridColumnHomogeneous :: (MonadIO m, IsGrid o) => o -> m Bool

-- | Set the value of the “column-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set grid [ #columnHomogeneous := value ]
--   
setGridColumnHomogeneous :: (MonadIO m, IsGrid o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column-spacing” property. This is rarely needed directly,
--   but it is used by new.
constructGridColumnSpacing :: (IsGrid o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get grid #columnSpacing
--   
getGridColumnSpacing :: (MonadIO m, IsGrid o) => o -> m Int32

-- | Set the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set grid [ #columnSpacing := value ]
--   
setGridColumnSpacing :: (MonadIO m, IsGrid o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-homogeneous” property. This is rarely needed directly,
--   but it is used by new.
constructGridRowHomogeneous :: (IsGrid o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “row-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get grid #rowHomogeneous
--   
getGridRowHomogeneous :: (MonadIO m, IsGrid o) => o -> m Bool

-- | Set the value of the “row-homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set grid [ #rowHomogeneous := value ]
--   
setGridRowHomogeneous :: (MonadIO m, IsGrid o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-spacing” property. This is rarely needed directly, but
--   it is used by new.
constructGridRowSpacing :: (IsGrid o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get grid #rowSpacing
--   
getGridRowSpacing :: (MonadIO m, IsGrid o) => o -> m Int32

-- | Set the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set grid [ #rowSpacing := value ]
--   
setGridRowSpacing :: (MonadIO m, IsGrid o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Grid.Grid
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Grid.Grid
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Grid.Grid
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Grid.Grid)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Grid.Grid o) => GI.Gtk.Objects.Grid.IsGrid o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Grid.Grid
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Grid.Grid

-- | Bypasses gsk rendering by passing the content of its child directly to
--   the compositor.
--   
--   Graphics offload is an optimization to reduce overhead and battery use
--   that is most useful for video content. It only works on some platforms
--   and in certain situations. GTK will automatically fall back to normal
--   rendering if it doesn't.
--   
--   Graphics offload is most efficient if there are no controls drawn on
--   top of the video content.
--   
--   You should consider using graphics offload for your main widget if it
--   shows frequently changing content (such as a video, or a VM display)
--   and you provide the content in the form of dmabuf textures (see
--   DmabufTextureBuilder), in particular if it may be fullscreen.
--   
--   Numerous factors can prohibit graphics offload:
--   
--   
--   
- Unsupported platforms. Currently, graphics offload only works on
--   Linux with Wayland.
--   
- Clipping, such as rounded corners that cause the video content to
--   not be rectangular
--   
- Unsupported dmabuf formats (see
--   displayGetDmabufFormats)
--   
- Translucent video content (content with an alpha channel, even if
--   it isn't used)
--   
- Transforms that are more complex than translations and scales
--   
- Filters such as opacity, grayscale or similar
--   
--   
--   To investigate problems related graphics offload, GTK offers debug
--   flags to print out information about graphics offload and dmabuf use:
--   
--   GDK_DEBUG=offload GDK_DEBUG=dmabuf
--   
--   The GTK inspector provides a visual debugging tool for graphics
--   offload.
--   
--   Since: 4.14
module GI.Gtk.Objects.GraphicsOffload

-- | Memory-managed wrapper type.
newtype GraphicsOffload
GraphicsOffload :: ManagedPtr GraphicsOffload -> GraphicsOffload

-- | Type class for types which can be safely cast to
--   GraphicsOffload, for instance with toGraphicsOffload.
class (GObject o, IsDescendantOf GraphicsOffload o) => IsGraphicsOffload o

-- | Cast to GraphicsOffload, for types for which this is known to
--   be safe. For general casts, use castTo.
toGraphicsOffload :: (MonadIO m, IsGraphicsOffload o) => o -> m GraphicsOffload

-- | Returns whether the widget draws a black background.
--   
--   See graphicsOffloadSetBlackBackground.
--   
--   Since: 4.16
graphicsOffloadGetBlackBackground :: (HasCallStack, MonadIO m, IsGraphicsOffload a) => a -> m Bool

-- | Gets the child of self.
--   
--   Since: 4.14
graphicsOffloadGetChild :: (HasCallStack, MonadIO m, IsGraphicsOffload a) => a -> m (Maybe Widget)

-- | Returns whether offload is enabled for self.
--   
--   Since: 4.14
graphicsOffloadGetEnabled :: (HasCallStack, MonadIO m, IsGraphicsOffload a) => a -> m GraphicsOffloadEnabled

-- | Creates a new GtkGraphicsOffload widget.
--   
--   Since: 4.14
graphicsOffloadNew :: (HasCallStack, MonadIO m, IsWidget a) => Maybe a -> m GraphicsOffload

-- | Sets whether this GtkGraphicsOffload widget will draw a black
--   background.
--   
--   A main use case for this is _letterboxing_ where black bars are
--   visible next to the content if the aspect ratio of the content does
--   not match the dimensions of the monitor.
--   
--   Using this property for letterboxing instead of CSS allows compositors
--   to show content with maximum efficiency, using direct scanout to avoid
--   extra copies in the compositor.
--   
--   On Wayland, this is implemented using the single-pixel buffer
--   protocol.
--   
--   Since: 4.16
graphicsOffloadSetBlackBackground :: (HasCallStack, MonadIO m, IsGraphicsOffload a) => a -> Bool -> m ()

-- | Sets the child of self.
--   
--   Since: 4.14
graphicsOffloadSetChild :: (HasCallStack, MonadIO m, IsGraphicsOffload a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether this GtkGraphicsOffload widget will attempt to offload
--   the content of its child widget.
--   
--   Since: 4.14
graphicsOffloadSetEnabled :: (HasCallStack, MonadIO m, IsGraphicsOffload a) => a -> GraphicsOffloadEnabled -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “black-background” property. This is rarely needed directly,
--   but it is used by new.
constructGraphicsOffloadBlackBackground :: (IsGraphicsOffload o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “black-background” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get graphicsOffload #blackBackground
--   
getGraphicsOffloadBlackBackground :: (MonadIO m, IsGraphicsOffload o) => o -> m Bool

-- | Set the value of the “black-background” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set graphicsOffload [ #blackBackground := value ]
--   
setGraphicsOffloadBlackBackground :: (MonadIO m, IsGraphicsOffload o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearGraphicsOffloadChild :: (MonadIO m, IsGraphicsOffload o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructGraphicsOffloadChild :: (IsGraphicsOffload o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get graphicsOffload #child
--   
getGraphicsOffloadChild :: (MonadIO m, IsGraphicsOffload o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set graphicsOffload [ #child := value ]
--   
setGraphicsOffloadChild :: (MonadIO m, IsGraphicsOffload o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enabled” property. This is rarely needed directly, but it is
--   used by new.
constructGraphicsOffloadEnabled :: (IsGraphicsOffload o, MonadIO m) => GraphicsOffloadEnabled -> m (GValueConstruct o)

-- | Get the value of the “enabled” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get graphicsOffload #enabled
--   
getGraphicsOffloadEnabled :: (MonadIO m, IsGraphicsOffload o) => o -> m GraphicsOffloadEnabled

-- | Set the value of the “enabled” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set graphicsOffload [ #enabled := value ]
--   
setGraphicsOffloadEnabled :: (MonadIO m, IsGraphicsOffload o) => o -> GraphicsOffloadEnabled -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.GraphicsOffload.GraphicsOffload
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GraphicsOffload.GraphicsOffload
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GraphicsOffload.GraphicsOffload
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GraphicsOffload.GraphicsOffload)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GraphicsOffload.GraphicsOffload o) => GI.Gtk.Objects.GraphicsOffload.IsGraphicsOffload o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GraphicsOffload.GraphicsOffload
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GraphicsOffload.GraphicsOffload

-- | Recognizes 2-finger pinch/zoom gestures.
--   
--   Whenever the distance between both tracked sequences changes, the
--   GestureZoom::scaleChanged signal is emitted to report the scale
--   factor.
module GI.Gtk.Objects.GestureZoom

-- | Memory-managed wrapper type.
newtype GestureZoom
GestureZoom :: ManagedPtr GestureZoom -> GestureZoom

-- | Type class for types which can be safely cast to GestureZoom,
--   for instance with toGestureZoom.
class (GObject o, IsDescendantOf GestureZoom o) => IsGestureZoom o

-- | Cast to GestureZoom, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureZoom :: (MonadIO m, IsGestureZoom o) => o -> m GestureZoom

-- | Gets the scale delta.
--   
--   If gesture is active, this function returns the
--   zooming difference since the gesture was recognized (hence the
--   starting point is considered 1:1). If gesture is not
--   active, 1 is returned.
gestureZoomGetScaleDelta :: (HasCallStack, MonadIO m, IsGestureZoom a) => a -> m Double

-- | Returns a newly created GtkGesture that recognizes pinch/zoom
--   gestures.
gestureZoomNew :: (HasCallStack, MonadIO m) => m GestureZoom

-- | Emitted whenever the distance between both tracked sequences changes.
type GestureZoomScaleChangedCallback = Double -> IO ()

-- | Connect a signal handler for the scaleChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureZoom #scaleChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureZoomScaleChanged :: (IsGestureZoom a, MonadIO m) => a -> ((?self :: a) => GestureZoomScaleChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the scaleChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureZoom #scaleChanged callback
--   
onGestureZoomScaleChanged :: (IsGestureZoom a, MonadIO m) => a -> ((?self :: a) => GestureZoomScaleChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureZoom.GestureZoom
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureZoom.GestureZoom
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureZoom.GestureZoom
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureZoom.GestureZoom)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureZoom.GestureZoom o) => GI.Gtk.Objects.GestureZoom.IsGestureZoom o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureZoom.GestureZoom
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureZoom.GestureZoom

-- | Recognizes swipe gestures.
--   
--   After a press/move/.../move/release sequence happens, the
--   GestureSwipe::swipe signal will be emitted, providing the
--   velocity and directionality of the sequence at the time it was lifted.
--   
--   If the velocity is desired in intermediate points,
--   gestureSwipeGetVelocity can be called in a
--   Gesture::update handler.
--   
--   All velocities are reported in pixels/sec units.
module GI.Gtk.Objects.GestureSwipe

-- | Memory-managed wrapper type.
newtype GestureSwipe
GestureSwipe :: ManagedPtr GestureSwipe -> GestureSwipe

-- | Type class for types which can be safely cast to GestureSwipe,
--   for instance with toGestureSwipe.
class (GObject o, IsDescendantOf GestureSwipe o) => IsGestureSwipe o

-- | Cast to GestureSwipe, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureSwipe :: (MonadIO m, IsGestureSwipe o) => o -> m GestureSwipe

-- | Gets the current velocity.
--   
--   If the gesture is recognized, this function returns True and
--   fills in velocityX and velocityY with
--   the recorded velocity, as per the last events processed.
gestureSwipeGetVelocity :: (HasCallStack, MonadIO m, IsGestureSwipe a) => a -> m (Bool, Double, Double)

-- | Returns a newly created GtkGesture that recognizes swipes.
gestureSwipeNew :: (HasCallStack, MonadIO m) => m GestureSwipe

-- | Emitted when the recognized gesture is finished.
--   
--   Velocity and direction are a product of previously recorded events.
type GestureSwipeSwipeCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the swipe signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureSwipe #swipe callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureSwipeSwipe :: (IsGestureSwipe a, MonadIO m) => a -> ((?self :: a) => GestureSwipeSwipeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the swipe signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on gestureSwipe #swipe callback
--   
onGestureSwipeSwipe :: (IsGestureSwipe a, MonadIO m) => a -> ((?self :: a) => GestureSwipeSwipeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureSwipe.GestureSwipe
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureSwipe.GestureSwipe
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureSwipe.GestureSwipe
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureSwipe.GestureSwipe)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureSwipe.GestureSwipe o) => GI.Gtk.Objects.GestureSwipe.IsGestureSwipe o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureSwipe.GestureSwipe
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureSwipe.GestureSwipe

-- | Recognizes tablet stylus input.
--   
--   The provided signals just relay the basic information of the stylus
--   events.
module GI.Gtk.Objects.GestureStylus

-- | Memory-managed wrapper type.
newtype GestureStylus
GestureStylus :: ManagedPtr GestureStylus -> GestureStylus

-- | Type class for types which can be safely cast to GestureStylus,
--   for instance with toGestureStylus.
class (GObject o, IsDescendantOf GestureStylus o) => IsGestureStylus o

-- | Cast to GestureStylus, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureStylus :: (MonadIO m, IsGestureStylus o) => o -> m GestureStylus

-- | Returns the current value for the requested axis.
--   
--   This function must be called from the handler of one of the
--   GestureStylus::down, GestureStylus::motion,
--   GestureStylus::up or GestureStylus::proximity signals.
gestureStylusGetAxis :: (HasCallStack, MonadIO m, IsGestureStylus a) => a -> AxisUse -> m (Bool, Double)

-- | Returns the accumulated backlog of tracking information.
--   
--   By default, GTK will limit rate of input events. On stylus input where
--   accuracy of strokes is paramount, this function returns the
--   accumulated coordinate/timing state before the emission of the current
--   Gtk.GestureStylus[motion] signal.
--   
--   This function may only be called within a GestureStylus::motion
--   signal handler, the state given in this signal and obtainable through
--   gestureStylusGetAxis express the latest (most up-to-date) state
--   in motion history.
--   
--   The backlog is provided in chronological order.
gestureStylusGetBacklog :: (HasCallStack, MonadIO m, IsGestureStylus a) => a -> m (Bool, [TimeCoord])

-- | Returns the GdkDeviceTool currently driving input through
--   this gesture.
--   
--   This function must be called from the handler of one of the
--   GestureStylus::down, GestureStylus::motion,
--   GestureStylus::up or GestureStylus::proximity signals.
gestureStylusGetDeviceTool :: (HasCallStack, MonadIO m, IsGestureStylus a) => a -> m (Maybe DeviceTool)

-- | Checks whether the gesture is for styluses only.
--   
--   Stylus-only gestures will signal events exclusively from stylus input
--   devices.
--   
--   Since: 4.10
gestureStylusGetStylusOnly :: (HasCallStack, MonadIO m, IsGestureStylus a) => a -> m Bool

-- | Creates a new GtkGestureStylus.
gestureStylusNew :: (HasCallStack, MonadIO m) => m GestureStylus

-- | Sets the state of stylus-only
--   
--   If true, the gesture will exclusively handle events from stylus input
--   devices, otherwise it'll handle events from any pointing device.
--   
--   Since: 4.10
gestureStylusSetStylusOnly :: (HasCallStack, MonadIO m, IsGestureStylus a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stylus-only” property. This is rarely needed directly, but
--   it is used by new.
constructGestureStylusStylusOnly :: (IsGestureStylus o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “stylus-only” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gestureStylus #stylusOnly
--   
getGestureStylusStylusOnly :: (MonadIO m, IsGestureStylus o) => o -> m Bool

-- | Set the value of the “stylus-only” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gestureStylus [ #stylusOnly := value ]
--   
setGestureStylusStylusOnly :: (MonadIO m, IsGestureStylus o) => o -> Bool -> m ()

-- | Emitted when the stylus touches the device.
type GestureStylusDownCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the down signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureStylus #down callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureStylusDown :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusDownCallback) -> m SignalHandlerId

-- | Connect a signal handler for the down signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on gestureStylus #down callback
--   
onGestureStylusDown :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusDownCallback) -> m SignalHandlerId

-- | Emitted when the stylus moves while touching the device.
type GestureStylusMotionCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the motion signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureStylus #motion callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureStylusMotion :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusMotionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the motion signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureStylus #motion callback
--   
onGestureStylusMotion :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusMotionCallback) -> m SignalHandlerId

-- | Emitted when the stylus is in proximity of the device.
type GestureStylusProximityCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the proximity signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureStylus #proximity callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureStylusProximity :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusProximityCallback) -> m SignalHandlerId

-- | Connect a signal handler for the proximity signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureStylus #proximity callback
--   
onGestureStylusProximity :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusProximityCallback) -> m SignalHandlerId

-- | Emitted when the stylus no longer touches the device.
type GestureStylusUpCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the up signal, to be run after the
--   default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureStylus #up callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureStylusUp :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusUpCallback) -> m SignalHandlerId

-- | Connect a signal handler for the up signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on gestureStylus #up callback
--   
onGestureStylusUp :: (IsGestureStylus a, MonadIO m) => a -> ((?self :: a) => GestureStylusUpCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureStylus.GestureStylus
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureStylus.GestureStylus
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureStylus.GestureStylus
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureStylus.GestureStylus)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureStylus.GestureStylus o) => GI.Gtk.Objects.GestureStylus.IsGestureStylus o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureStylus.GestureStylus
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureStylus.GestureStylus

-- | A GtkGesture subclass optimized for singe-touch and mouse
--   gestures.
--   
--   Under interaction, these gestures stick to the first interacting
--   sequence, which is accessible through
--   gestureSingleGetCurrentSequence while the gesture is being
--   interacted with.
--   
--   By default gestures react to both BUTTON_PRIMARY and touch
--   events. gestureSingleSetTouchOnly can be used to change the
--   touch behavior. Callers may also specify a different mouse button
--   number to interact with through gestureSingleSetButton, or
--   react to any mouse button by setting it to 0. While the gesture is
--   active, the button being currently pressed can be known through
--   gestureSingleGetCurrentButton.
module GI.Gtk.Objects.GestureSingle

-- | Memory-managed wrapper type.
newtype GestureSingle
GestureSingle :: ManagedPtr GestureSingle -> GestureSingle

-- | Type class for types which can be safely cast to GestureSingle,
--   for instance with toGestureSingle.
class (GObject o, IsDescendantOf GestureSingle o) => IsGestureSingle o

-- | Cast to GestureSingle, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureSingle :: (MonadIO m, IsGestureSingle o) => o -> m GestureSingle

-- | Returns the button number gesture listens for.
--   
--   If this is 0, the gesture reacts to any button press.
gestureSingleGetButton :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> m Word32

-- | Returns the button number currently interacting with
--   gesture, or 0 if there is none.
gestureSingleGetCurrentButton :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> m Word32

-- | Returns the event sequence currently interacting with
--   gesture.
--   
--   This is only meaningful if gestureIsActive returns True.
gestureSingleGetCurrentSequence :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> m (Maybe EventSequence)

-- | Gets whether a gesture is exclusive.
--   
--   For more information, see gestureSingleSetExclusive.
gestureSingleGetExclusive :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> m Bool

-- | Returns True if the gesture is only triggered by touch events.
gestureSingleGetTouchOnly :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> m Bool

-- | Sets the button number gesture listens to.
--   
--   If non-0, every button press from a different button number will be
--   ignored. Touch events implicitly match with button 1.
gestureSingleSetButton :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> Word32 -> m ()

-- | Sets whether gesture is exclusive.
--   
--   An exclusive gesture will only handle pointer and "pointer emulated"
--   touch events, so at any given time, there is only one sequence able to
--   interact with those.
gestureSingleSetExclusive :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> Bool -> m ()

-- | Sets whether to handle only touch events.
--   
--   If touchOnly is True, gesture
--   will only handle events of type EventTypeTouchBegin,
--   EventTypeTouchUpdate or EventTypeTouchEnd. If
--   False, mouse events will be handled too.
gestureSingleSetTouchOnly :: (HasCallStack, MonadIO m, IsGestureSingle a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “button” property. This is rarely needed directly, but it is
--   used by new.
constructGestureSingleButton :: (IsGestureSingle o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gestureSingle #button
--   
getGestureSingleButton :: (MonadIO m, IsGestureSingle o) => o -> m Word32

-- | Set the value of the “button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gestureSingle [ #button := value ]
--   
setGestureSingleButton :: (MonadIO m, IsGestureSingle o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “exclusive” property. This is rarely needed directly, but it
--   is used by new.
constructGestureSingleExclusive :: (IsGestureSingle o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “exclusive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gestureSingle #exclusive
--   
getGestureSingleExclusive :: (MonadIO m, IsGestureSingle o) => o -> m Bool

-- | Set the value of the “exclusive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gestureSingle [ #exclusive := value ]
--   
setGestureSingleExclusive :: (MonadIO m, IsGestureSingle o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “touch-only” property. This is rarely needed directly, but it
--   is used by new.
constructGestureSingleTouchOnly :: (IsGestureSingle o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “touch-only” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gestureSingle #touchOnly
--   
getGestureSingleTouchOnly :: (MonadIO m, IsGestureSingle o) => o -> m Bool

-- | Set the value of the “touch-only” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gestureSingle [ #touchOnly := value ]
--   
setGestureSingleTouchOnly :: (MonadIO m, IsGestureSingle o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.GestureSingle.GestureSingle
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureSingle.GestureSingle
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureSingle.GestureSingle
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureSingle.GestureSingle)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureSingle.GestureSingle o) => GI.Gtk.Objects.GestureSingle.IsGestureSingle o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureSingle.GestureSingle
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureSingle.GestureSingle

-- | Recognizes 2-finger rotation gestures.
--   
--   Whenever the angle between both handled sequences changes, the
--   GestureRotate::angleChanged signal is emitted.
module GI.Gtk.Objects.GestureRotate

-- | Memory-managed wrapper type.
newtype GestureRotate
GestureRotate :: ManagedPtr GestureRotate -> GestureRotate

-- | Type class for types which can be safely cast to GestureRotate,
--   for instance with toGestureRotate.
class (GObject o, IsDescendantOf GestureRotate o) => IsGestureRotate o

-- | Cast to GestureRotate, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureRotate :: (MonadIO m, IsGestureRotate o) => o -> m GestureRotate

-- | Gets the angle delta in radians.
--   
--   If gesture is active, this function returns the angle
--   difference in radians since the gesture was first recognized. If
--   gesture is not active, 0 is returned.
gestureRotateGetAngleDelta :: (HasCallStack, MonadIO m, IsGestureRotate a) => a -> m Double

-- | Returns a newly created GtkGesture that recognizes 2-touch
--   rotation gestures.
gestureRotateNew :: (HasCallStack, MonadIO m) => m GestureRotate

-- | Emitted when the angle between both tracked points changes.
type GestureRotateAngleChangedCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the angleChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureRotate #angleChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureRotateAngleChanged :: (IsGestureRotate a, MonadIO m) => a -> ((?self :: a) => GestureRotateAngleChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the angleChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureRotate #angleChanged callback
--   
onGestureRotateAngleChanged :: (IsGestureRotate a, MonadIO m) => a -> ((?self :: a) => GestureRotateAngleChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureRotate.GestureRotate
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureRotate.GestureRotate
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureRotate.GestureRotate
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureRotate.GestureRotate)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureRotate.GestureRotate o) => GI.Gtk.Objects.GestureRotate.IsGestureRotate o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureRotate.GestureRotate
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureRotate.GestureRotate

-- | Recognizes pan gestures.
--   
--   These are drags that are locked to happen along one axis. The axis
--   that a GtkGesturePan handles is defined at construct time,
--   and can be changed through gesturePanSetOrientation.
--   
--   When the gesture starts to be recognized, GtkGesturePan will
--   attempt to determine as early as possible whether the sequence is
--   moving in the expected direction, and denying the sequence if this
--   does not happen.
--   
--   Once a panning gesture along the expected axis is recognized, the
--   GesturePan::pan signal will be emitted as input events are
--   received, containing the offset in the given axis.
module GI.Gtk.Objects.GesturePan

-- | Memory-managed wrapper type.
newtype GesturePan
GesturePan :: ManagedPtr GesturePan -> GesturePan

-- | Type class for types which can be safely cast to GesturePan,
--   for instance with toGesturePan.
class (GObject o, IsDescendantOf GesturePan o) => IsGesturePan o

-- | Cast to GesturePan, for types for which this is known to be
--   safe. For general casts, use castTo.
toGesturePan :: (MonadIO m, IsGesturePan o) => o -> m GesturePan

-- | Returns the orientation of the pan gestures that this
--   gesture expects.
gesturePanGetOrientation :: (HasCallStack, MonadIO m, IsGesturePan a) => a -> m Orientation

-- | Returns a newly created GtkGesture that recognizes pan
--   gestures.
gesturePanNew :: (HasCallStack, MonadIO m) => Orientation -> m GesturePan

-- | Sets the orientation to be expected on pan gestures.
gesturePanSetOrientation :: (HasCallStack, MonadIO m, IsGesturePan a) => a -> Orientation -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “orientation” property. This is rarely needed directly, but
--   it is used by new.
constructGesturePanOrientation :: (IsGesturePan o, MonadIO m) => Orientation -> m (GValueConstruct o)

-- | Get the value of the “orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gesturePan #orientation
--   
getGesturePanOrientation :: (MonadIO m, IsGesturePan o) => o -> m Orientation

-- | Set the value of the “orientation” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gesturePan [ #orientation := value ]
--   
setGesturePanOrientation :: (MonadIO m, IsGesturePan o) => o -> Orientation -> m ()

-- | Emitted once a panning gesture along the expected axis is detected.
type GesturePanPanCallback = PanDirection -> Double -> IO ()

-- | Connect a signal handler for the pan signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gesturePan #pan callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGesturePanPan :: (IsGesturePan a, MonadIO m) => a -> ((?self :: a) => GesturePanPanCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pan signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on gesturePan #pan callback
--   
onGesturePanPan :: (IsGesturePan a, MonadIO m) => a -> ((?self :: a) => GesturePanPanCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GesturePan.GesturePan
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GesturePan.GesturePan
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GesturePan.GesturePan
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GesturePan.GesturePan)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GesturePan.GesturePan o) => GI.Gtk.Objects.GesturePan.IsGesturePan o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GesturePan.GesturePan
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GesturePan.GesturePan

-- | Recognizes long press gestures.
--   
--   This gesture is also known as “Press and Hold”.
--   
--   When the timeout is exceeded, the gesture is triggering the
--   GestureLongPress::pressed signal.
--   
--   If the touchpoint is lifted before the timeout passes, or if it drifts
--   too far of the initial press point, the
--   GestureLongPress::cancelled signal will be emitted.
--   
--   How long the timeout is before the pressed signal gets emitted
--   is determined by the Settings:gtkLongPressTime setting. It can
--   be modified by the GestureLongPress:delayFactor property.
module GI.Gtk.Objects.GestureLongPress

-- | Memory-managed wrapper type.
newtype GestureLongPress
GestureLongPress :: ManagedPtr GestureLongPress -> GestureLongPress

-- | Type class for types which can be safely cast to
--   GestureLongPress, for instance with toGestureLongPress.
class (GObject o, IsDescendantOf GestureLongPress o) => IsGestureLongPress o

-- | Cast to GestureLongPress, for types for which this is known to
--   be safe. For general casts, use castTo.
toGestureLongPress :: (MonadIO m, IsGestureLongPress o) => o -> m GestureLongPress

-- | Returns the delay factor.
gestureLongPressGetDelayFactor :: (HasCallStack, MonadIO m, IsGestureLongPress a) => a -> m Double

-- | Returns a newly created GtkGesture that recognizes long
--   presses.
gestureLongPressNew :: (HasCallStack, MonadIO m) => m GestureLongPress

-- | Applies the given delay factor.
--   
--   The default long press time will be multiplied by this value. Valid
--   values are in the range [0.5..2.0].
gestureLongPressSetDelayFactor :: (HasCallStack, MonadIO m, IsGestureLongPress a) => a -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “delay-factor” property. This is rarely needed directly, but
--   it is used by new.
constructGestureLongPressDelayFactor :: (IsGestureLongPress o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “delay-factor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gestureLongPress #delayFactor
--   
getGestureLongPressDelayFactor :: (MonadIO m, IsGestureLongPress o) => o -> m Double

-- | Set the value of the “delay-factor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gestureLongPress [ #delayFactor := value ]
--   
setGestureLongPressDelayFactor :: (MonadIO m, IsGestureLongPress o) => o -> Double -> m ()

-- | Emitted whenever a press moved too far, or was released before
--   GestureLongPress::pressed happened.
type GestureLongPressCancelledCallback = IO ()

-- | Connect a signal handler for the cancelled signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureLongPress #cancelled callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureLongPressCancelled :: (IsGestureLongPress a, MonadIO m) => a -> ((?self :: a) => GestureLongPressCancelledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cancelled signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureLongPress #cancelled callback
--   
onGestureLongPressCancelled :: (IsGestureLongPress a, MonadIO m) => a -> ((?self :: a) => GestureLongPressCancelledCallback) -> m SignalHandlerId

-- | Emitted whenever a press goes unmoved/unreleased longer than what the
--   GTK defaults tell.
type GestureLongPressPressedCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the pressed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureLongPress #pressed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureLongPressPressed :: (IsGestureLongPress a, MonadIO m) => a -> ((?self :: a) => GestureLongPressPressedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pressed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureLongPress #pressed callback
--   
onGestureLongPressPressed :: (IsGestureLongPress a, MonadIO m) => a -> ((?self :: a) => GestureLongPressPressedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureLongPress.GestureLongPress
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureLongPress.GestureLongPress
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureLongPress.GestureLongPress
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureLongPress.GestureLongPress)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureLongPress.GestureLongPress o) => GI.Gtk.Objects.GestureLongPress.IsGestureLongPress o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureLongPress.GestureLongPress
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureLongPress.GestureLongPress

-- | Recognizes drag gestures.
--   
--   The drag operation itself can be tracked throughout the
--   GestureDrag::dragBegin, GestureDrag::dragUpdate and
--   GestureDrag::dragEnd signals, and the relevant coordinates can
--   be extracted through gestureDragGetOffset and
--   gestureDragGetStartPoint.
module GI.Gtk.Objects.GestureDrag

-- | Memory-managed wrapper type.
newtype GestureDrag
GestureDrag :: ManagedPtr GestureDrag -> GestureDrag

-- | Type class for types which can be safely cast to GestureDrag,
--   for instance with toGestureDrag.
class (GObject o, IsDescendantOf GestureDrag o) => IsGestureDrag o

-- | Cast to GestureDrag, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureDrag :: (MonadIO m, IsGestureDrag o) => o -> m GestureDrag

-- | Gets the offset from the start point.
--   
--   If the gesture is active, this function returns
--   True and fills in x and y with
--   the coordinates of the current point, as an offset to the starting
--   drag point.
gestureDragGetOffset :: (HasCallStack, MonadIO m, IsGestureDrag a) => a -> m (Bool, Double, Double)

-- | Gets the point where the drag started.
--   
--   If the gesture is active, this function returns
--   True and fills in x and y with
--   the drag start coordinates, in widget-relative coordinates.
gestureDragGetStartPoint :: (HasCallStack, MonadIO m, IsGestureDrag a) => a -> m (Bool, Double, Double)

-- | Returns a newly created GtkGesture that recognizes drags.
gestureDragNew :: (HasCallStack, MonadIO m) => m GestureDrag

-- | Emitted whenever dragging starts.
type GestureDragDragBeginCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the dragBegin signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureDrag #dragBegin callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureDragDragBegin :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragBeginCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragBegin signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureDrag #dragBegin callback
--   
onGestureDragDragBegin :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragBeginCallback) -> m SignalHandlerId

-- | Emitted whenever the dragging is finished.
type GestureDragDragEndCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the dragEnd signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureDrag #dragEnd callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureDragDragEnd :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragEndCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragEnd signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureDrag #dragEnd callback
--   
onGestureDragDragEnd :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragEndCallback) -> m SignalHandlerId

-- | Emitted whenever the dragging point moves.
type GestureDragDragUpdateCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the dragUpdate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureDrag #dragUpdate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureDragDragUpdate :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragUpdateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragUpdate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureDrag #dragUpdate callback
--   
onGestureDragDragUpdate :: (IsGestureDrag a, MonadIO m) => a -> ((?self :: a) => GestureDragDragUpdateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureDrag.GestureDrag
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureDrag.GestureDrag
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureDrag.GestureDrag
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureDrag.GestureDrag)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureDrag.GestureDrag o) => GI.Gtk.Objects.GestureDrag.IsGestureDrag o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureDrag.GestureDrag
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureDrag.GestureDrag

-- | Recognizes click gestures.
--   
--   It is able to recognize multiple clicks on a nearby zone, which can be
--   listened for through the GestureClick::pressed signal. Whenever
--   time or distance between clicks exceed the GTK defaults,
--   GestureClick::stopped is emitted, and the click counter is
--   reset.
module GI.Gtk.Objects.GestureClick

-- | Memory-managed wrapper type.
newtype GestureClick
GestureClick :: ManagedPtr GestureClick -> GestureClick

-- | Type class for types which can be safely cast to GestureClick,
--   for instance with toGestureClick.
class (GObject o, IsDescendantOf GestureClick o) => IsGestureClick o

-- | Cast to GestureClick, for types for which this is known to be
--   safe. For general casts, use castTo.
toGestureClick :: (MonadIO m, IsGestureClick o) => o -> m GestureClick

-- | Returns a newly created GtkGesture that recognizes single and
--   multiple presses.
gestureClickNew :: (HasCallStack, MonadIO m) => m GestureClick

-- | Emitted whenever a button or touch press happens.
type GestureClickPressedCallback = Int32 -> Double -> Double -> IO ()

-- | Connect a signal handler for the pressed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureClick #pressed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureClickPressed :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickPressedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the pressed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureClick #pressed callback
--   
onGestureClickPressed :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickPressedCallback) -> m SignalHandlerId

-- | Emitted when a button or touch is released.
--   
--   nPress will report the number of press that is paired
--   to this event, note that GestureClick::stopped may have been
--   emitted between the press and its release, nPress will
--   only start over at the next press.
type GestureClickReleasedCallback = Int32 -> Double -> Double -> IO ()

-- | Connect a signal handler for the released signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureClick #released callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureClickReleased :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickReleasedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the released signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureClick #released callback
--   
onGestureClickReleased :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickReleasedCallback) -> m SignalHandlerId

-- | Emitted whenever any time/distance threshold has been exceeded.
type GestureClickStoppedCallback = IO ()

-- | Connect a signal handler for the stopped signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gestureClick #stopped callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureClickStopped :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickStoppedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the stopped signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gestureClick #stopped callback
--   
onGestureClickStopped :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickStoppedCallback) -> m SignalHandlerId

-- | Emitted whenever the gesture receives a release event that had no
--   previous corresponding press.
--   
--   Due to implicit grabs, this can only happen on situations where input
--   is grabbed elsewhere mid-press or the pressed widget voluntarily
--   relinquishes its implicit grab.
type GestureClickUnpairedReleaseCallback = Double -> Double -> Word32 -> Maybe EventSequence -> IO ()

-- | Connect a signal handler for the unpairedRelease signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after gestureClick #unpairedRelease callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureClickUnpairedRelease :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickUnpairedReleaseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unpairedRelease signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on gestureClick #unpairedRelease callback
--   
onGestureClickUnpairedRelease :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickUnpairedReleaseCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GestureClick.GestureClick
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GestureClick.GestureClick
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GestureClick.GestureClick
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GestureClick.GestureClick)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GestureClick.GestureClick o) => GI.Gtk.Objects.GestureClick.IsGestureClick o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GestureClick.GestureClick
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GestureClick.GestureClick

-- | The base class for gesture recognition.
--   
--   Although GtkGesture is quite generalized to serve as a base
--   for multi-touch gestures, it is suitable to implement single-touch and
--   pointer-based gestures (using the special Nothing
--   GdkEventSequence value for these).
--   
--   The number of touches that a GtkGesture need to be recognized
--   is controlled by the Gesture:nPoints property, if a gesture is
--   keeping track of less or more than that number of sequences, it won't
--   check whether the gesture is recognized.
--   
--   As soon as the gesture has the expected number of touches, it will
--   check regularly if it is recognized, the criteria to consider a
--   gesture as "recognized" is left to GtkGesture subclasses.
--   
--   A recognized gesture will then emit the following signals:
--   
--   
--   
- Gesture::begin when the gesture is recognized.
--   
- Gesture::update, whenever an input event is processed.
--   
- Gesture::end when the gesture is no longer recognized.
--   
--   
--   
Event propagation
--   
--   In order to receive events, a gesture needs to set a propagation phase
--   through eventControllerSetPropagationPhase.
--   
--   In the capture phase, events are propagated from the toplevel down to
--   the target widget, and gestures that are attached to containers above
--   the widget get a chance to interact with the event before it reaches
--   the target.
--   
--   In the bubble phase, events are propagated up from the target widget
--   to the toplevel, and gestures that are attached to containers above
--   the widget get a chance to interact with events that have not been
--   handled yet.
--   
--   
States of a sequence
--   
--   Whenever input interaction happens, a single event may trigger a
--   cascade of GtkGestures, both across the parents of the widget
--   receiving the event and in parallel within an individual widget. It is
--   a responsibility of the widgets using those gestures to set the state
--   of touch sequences accordingly in order to enable cooperation of
--   gestures around the GdkEventSequences triggering those.
--   
--   Within a widget, gestures can be grouped through gestureGroup.
--   Grouped gestures synchronize the state of sequences, so calling
--   gestureSetState on one will effectively propagate the state
--   throughout the group.
--   
--   By default, all sequences start out in the
--   EventSequenceStateNone state, sequences in this state trigger
--   the gesture event handler, but event propagation will continue
--   unstopped by gestures.
--   
--   If a sequence enters into the EventSequenceStateDenied state,
--   the gesture group will effectively ignore the sequence, letting events
--   go unstopped through the gesture, but the "slot" will still remain
--   occupied while the touch is active.
--   
--   If a sequence enters in the EventSequenceStateClaimed state,
--   the gesture group will grab all interaction on the sequence, by:
--   
--   
--   
- Setting the same sequence to EventSequenceStateDenied on
--   every other gesture group within the widget, and every gesture on
--   parent widgets in the propagation chain.
--   
- Emitting Gesture::cancel on every gesture in widgets
--   underneath in the propagation chain.
--   
- Stopping event propagation after the gesture group handles the
--   event.
--   
--   
--   Note: if a sequence is set early to EventSequenceStateClaimed
--   on EventTypeTouchBegin/EventTypeButtonPress (so those
--   events are captured before reaching the event widget, this implies
--   PropagationPhaseCapture), one similar event will be emulated if
--   the sequence changes to EventSequenceStateDenied. This way
--   event coherence is preserved before event propagation is unstopped
--   again.
--   
--   Sequence states can't be changed freely. See gestureSetState to
--   know about the possible lifetimes of a GdkEventSequence.
--   
--   
Touchpad gestures
--   
--   On the platforms that support it, GtkGesture will handle
--   transparently touchpad gesture events. The only precautions users of
--   GtkGesture should do to enable this support are:
--   
--   
--   
- If the gesture has PropagationPhaseNone, ensuring events of
--   type EventTypeTouchpadSwipe and EventTypeTouchpadPinch
--   are handled by the GtkGesture
--   
module GI.Gtk.Objects.Gesture

-- | Memory-managed wrapper type.
newtype Gesture
Gesture :: ManagedPtr Gesture -> Gesture

-- | Type class for types which can be safely cast to Gesture, for
--   instance with toGesture.
class (GObject o, IsDescendantOf Gesture o) => IsGesture o

-- | Cast to Gesture, for types for which this is known to be safe.
--   For general casts, use castTo.
toGesture :: (MonadIO m, IsGesture o) => o -> m Gesture

-- | If there are touch sequences being currently handled by
--   gesture, returns True and fills in
--   rect with the bounding box containing all active
--   touches.
--   
--   Otherwise, False will be returned.
--   
--   Note: This function will yield unexpected results on touchpad
--   gestures. Since there is no correlation between physical and pixel
--   distances, these will look as if constrained in an infinitely small
--   area, rect width and height will thus be 0 regardless
--   of the number of touchpoints.
gestureGetBoundingBox :: (HasCallStack, MonadIO m, IsGesture a) => a -> m (Bool, Rectangle)

-- | If there are touch sequences being currently handled by
--   gesture, returns True and fills in
--   x and y with the center of the
--   bounding box containing all active touches.
--   
--   Otherwise, False will be returned.
gestureGetBoundingBoxCenter :: (HasCallStack, MonadIO m, IsGesture a) => a -> m (Bool, Double, Double)

-- | Returns the logical GdkDevice that is currently operating on
--   gesture.
--   
--   This returns Nothing if the gesture is not being interacted.
gestureGetDevice :: (HasCallStack, MonadIO m, IsGesture a) => a -> m (Maybe Device)

-- | Returns all gestures in the group of gesture
gestureGetGroup :: (HasCallStack, MonadIO m, IsGesture a) => a -> m [Gesture]

-- | Returns the last event that was processed for
--   sequence.
--   
--   Note that the returned pointer is only valid as long as the
--   sequence is still interpreted by the
--   gesture. If in doubt, you should make a copy of the
--   event.
gestureGetLastEvent :: (HasCallStack, MonadIO m, IsGesture a) => a -> Maybe EventSequence -> m (Maybe Event)

-- | Returns the GdkEventSequence that was last updated on
--   gesture.
gestureGetLastUpdatedSequence :: (HasCallStack, MonadIO m, IsGesture a) => a -> m (Maybe EventSequence)

-- | If sequence is currently being interpreted by
--   gesture, returns True and fills in
--   x and y with the last coordinates
--   stored for that event sequence.
--   
--   The coordinates are always relative to the widget allocation.
gestureGetPoint :: (HasCallStack, MonadIO m, IsGesture a) => a -> Maybe EventSequence -> m (Bool, Double, Double)

-- | Returns the sequence state, as seen by
--   gesture.
gestureGetSequenceState :: (HasCallStack, MonadIO m, IsGesture a) => a -> EventSequence -> m EventSequenceState

-- | Returns the list of GdkEventSequences currently being
--   interpreted by gesture.
gestureGetSequences :: (HasCallStack, MonadIO m, IsGesture a) => a -> m [EventSequence]

-- | Adds gesture to the same group than
--   groupGesture.
--   
--   Gestures are by default isolated in their own groups.
--   
--   Both gestures must have been added to the same widget before they can
--   be grouped.
--   
--   When gestures are grouped, the state of GdkEventSequences is
--   kept in sync for all of those, so calling
--   gestureSetSequenceState, on one will transfer the same value to
--   the others.
--   
--   Groups also perform an "implicit grabbing" of sequences, if a
--   GdkEventSequence state is set to
--   EventSequenceStateClaimed on one group, every other gesture
--   group attached to the same GtkWidget will switch the state
--   for that sequence to EventSequenceStateDenied.
gestureGroup :: (HasCallStack, MonadIO m, IsGesture a, IsGesture b) => a -> b -> m ()

-- | Returns True if gesture is currently handling
--   events corresponding to sequence.
gestureHandlesSequence :: (HasCallStack, MonadIO m, IsGesture a) => a -> Maybe EventSequence -> m Bool

-- | Returns True if the gesture is currently active.
--   
--   A gesture is active while there are touch sequences interacting with
--   it.
gestureIsActive :: (HasCallStack, MonadIO m, IsGesture a) => a -> m Bool

-- | Returns True if both gestures pertain to the same group.
gestureIsGroupedWith :: (HasCallStack, MonadIO m, IsGesture a, IsGesture b) => a -> b -> m Bool

-- | Returns True if the gesture is currently recognized.
--   
--   A gesture is recognized if there are as many interacting touch
--   sequences as required by gesture.
gestureIsRecognized :: (HasCallStack, MonadIO m, IsGesture a) => a -> m Bool

-- | Sets the state of sequence in gesture.
--   
--   Sequences start in state EventSequenceStateNone, and whenever
--   they change state, they can never go back to that state. Likewise,
--   sequences in state EventSequenceStateDenied cannot turn back to
--   a not denied state. With these rules, the lifetime of an event
--   sequence is constrained to the next four:
--   
--   
--   
- None
--   
- None → Denied
--   
- None → Claimed
--   
- None → Claimed → Denied
--   
--   
--   Note: Due to event handling ordering, it may be unsafe to set the
--   state on another gesture within a Gesture::begin signal
--   handler, as the callback might be executed before the other gesture
--   knows about the sequence. A safe way to perform this could be:
--   
--   
c code
--   
--   
--   static void
--   first_gesture_begin_cb (GtkGesture       *first_gesture,
--                           GdkEventSequence *sequence,
--                           gpointer          user_data)
--   {
--     gtk_gesture_set_sequence_state (first_gesture, sequence, GTK_EVENT_SEQUENCE_CLAIMED);
--     gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
--   }
--   
--   static void
--   second_gesture_begin_cb (GtkGesture       *second_gesture,
--                            GdkEventSequence *sequence,
--                            gpointer          user_data)
--   {
--     if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
--       gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
--   }
--   
--   
--   If both gestures are in the same group, just set the state on the
--   gesture emitting the event, the sequence will be already be
--   initialized to the group's global state when the second gesture
--   processes the event.

-- | Deprecated: (Since version 4.10.)Use gestureSetState
gestureSetSequenceState :: (HasCallStack, MonadIO m, IsGesture a) => a -> EventSequence -> EventSequenceState -> m Bool

-- | Sets the state of all sequences that gesture is
--   currently interacting with.
--   
--   Sequences start in state EventSequenceStateNone, and whenever
--   they change state, they can never go back to that state. Likewise,
--   sequences in state EventSequenceStateDenied cannot turn back to
--   a not denied state. With these rules, the lifetime of an event
--   sequence is constrained to the next four:
--   
--   
--   
- None
--   
- None → Denied
--   
- None → Claimed
--   
- None → Claimed → Denied
--   
--   
--   Note: Due to event handling ordering, it may be unsafe to set the
--   state on another gesture within a Gesture::begin signal
--   handler, as the callback might be executed before the other gesture
--   knows about the sequence. A safe way to perform this could be:
--   
--   
c code
--   
--   
--   static void
--   first_gesture_begin_cb (GtkGesture       *first_gesture,
--                           GdkEventSequence *sequence,
--                           gpointer          user_data)
--   {
--     gtk_gesture_set_state (first_gesture, GTK_EVENT_SEQUENCE_CLAIMED);
--     gtk_gesture_set_state (second_gesture, GTK_EVENT_SEQUENCE_DENIED);
--   }
--   
--   static void
--   second_gesture_begin_cb (GtkGesture       *second_gesture,
--                            GdkEventSequence *sequence,
--                            gpointer          user_data)
--   {
--     if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
--       gtk_gesture_set_state (second_gesture, GTK_EVENT_SEQUENCE_DENIED);
--   }
--   
--   
--   If both gestures are in the same group, just set the state on the
--   gesture emitting the event, the sequence will be already be
--   initialized to the group's global state when the second gesture
--   processes the event.
gestureSetState :: (HasCallStack, MonadIO m, IsGesture a) => a -> EventSequenceState -> m Bool

-- | Separates gesture into an isolated group.
gestureUngroup :: (HasCallStack, MonadIO m, IsGesture a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “n-points” property. This is rarely needed directly, but it
--   is used by new.
constructGestureNPoints :: (IsGesture o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “n-points” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gesture #nPoints
--   
getGestureNPoints :: (MonadIO m, IsGesture o) => o -> m Word32

-- | Emitted when the gesture is recognized.
--   
--   This means the number of touch sequences matches
--   Gesture:nPoints.
--   
--   Note: These conditions may also happen when an extra touch (eg. a
--   third touch on a 2-touches gesture) is lifted, in that situation
--   sequence won't pertain to the current set of active
--   touches, so don't rely on this being true.
type GestureBeginCallback = Maybe EventSequence -> IO ()

-- | Connect a signal handler for the begin signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gesture #begin callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureBegin :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureBeginCallback) -> m SignalHandlerId

-- | Connect a signal handler for the begin signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on gesture #begin callback
--   
onGestureBegin :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureBeginCallback) -> m SignalHandlerId

-- | Emitted whenever a sequence is cancelled.
--   
--   This usually happens on active touches when
--   eventControllerReset is called on gesture
--   (manually, due to grabs...), or the individual
--   sequence was claimed by parent widgets' controllers
--   (see gestureSetSequenceState).
--   
--   gesture must forget everything about
--   sequence as in response to this signal.
type GestureCancelCallback = Maybe EventSequence -> IO ()

-- | Connect a signal handler for the cancel signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gesture #cancel callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureCancel :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureCancelCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cancel signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gesture #cancel callback
--   
onGestureCancel :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureCancelCallback) -> m SignalHandlerId

-- | Emitted when gesture either stopped recognizing the
--   event sequences as something to be handled, or the number of touch
--   sequences became higher or lower than Gesture:nPoints.
--   
--   Note: sequence might not pertain to the group of
--   sequences that were previously triggering recognition on
--   gesture (ie. a just pressed touch sequence that
--   exceeds Gesture:nPoints). This situation may be detected by
--   checking through gestureHandlesSequence.
type GestureEndCallback = Maybe EventSequence -> IO ()

-- | Connect a signal handler for the end signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gesture #end callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureEnd :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureEndCallback) -> m SignalHandlerId

-- | Connect a signal handler for the end signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on gesture #end callback
--   
onGestureEnd :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureEndCallback) -> m SignalHandlerId

-- | Emitted whenever a sequence state changes.
--   
--   See gestureSetSequenceState to know more about the expectable
--   sequence lifetimes.
type GestureSequenceStateChangedCallback = Maybe EventSequence -> EventSequenceState -> IO ()

-- | Connect a signal handler for the sequenceStateChanged signal,
--   to be run after the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   after gesture #sequenceStateChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureSequenceStateChanged :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureSequenceStateChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the sequenceStateChanged signal,
--   to be run before the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   on gesture #sequenceStateChanged callback
--   
onGestureSequenceStateChanged :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureSequenceStateChangedCallback) -> m SignalHandlerId

-- | Emitted whenever an event is handled while the gesture is recognized.
--   
--   sequence is guaranteed to pertain to the set of active
--   touches.
type GestureUpdateCallback = Maybe EventSequence -> IO ()

-- | Connect a signal handler for the update signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gesture #update callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGestureUpdate :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureUpdateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the update signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gesture #update callback
--   
onGestureUpdate :: (IsGesture a, MonadIO m) => a -> ((?self :: a) => GestureUpdateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Gesture.Gesture
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Gesture.Gesture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Gesture.Gesture
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Gesture.Gesture)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Gesture.Gesture o) => GI.Gtk.Objects.Gesture.IsGesture o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Gesture.Gesture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Gesture.Gesture

-- | Allows drawing with OpenGL.
--   
--   <picture> <source srcset="glarea-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkGLArea" src="glarea.png"> </picture>
--   
--   GtkGLArea sets up its own GLContext, and creates a
--   custom GL framebuffer that the widget will do GL rendering onto. It
--   also ensures that this framebuffer is the default GL rendering target
--   when rendering. The completed rendering is integrated into the larger
--   GTK scene graph as a texture.
--   
--   In order to draw, you have to connect to the GLArea::render
--   signal, or subclass GtkGLArea and override the
--   GtkGLAreaClass.render virtual function.
--   
--   The GtkGLArea widget ensures that the GdkGLContext
--   is associated with the widget's drawing area, and it is kept updated
--   when the size and position of the drawing area changes.
--   
--   
Drawing with GtkGLArea
--   
--   The simplest way to draw using OpenGL commands in a GtkGLArea
--   is to create a widget instance and connect to the
--   GLArea::render signal:
--   
--   The render() function will be called when the
--   GtkGLArea is ready for you to draw its content:
--   
--   The initial contents of the framebuffer are transparent.
--   
--   
c code
--   
--   
--   static gboolean
--   render (GtkGLArea *area, GdkGLContext *context)
--   {
--     // inside this function it's safe to use GL; the given
--     // GdkGLContext has been made current to the drawable
--     // surface used by the `GtkGLArea` and the viewport has
--     // already been set to be the size of the allocation
--   
--     // we can start by clearing the buffer
--     glClearColor (0, 0, 0, 0);
--     glClear (GL_COLOR_BUFFER_BIT);
--   
--     // record the active framebuffer ID, so we can return to it
--     // with `glBindFramebuffer (GL_FRAMEBUFFER, screen_fb)` should
--     // we, for instance, intend on utilizing the results of an
--     // intermediate render texture pass
--     GLuint screen_fb = 0;
--     glGetIntegerv (GL_FRAMEBUFFER_BINDING, &screen_fb);
--   
--     // draw your object
--     // draw_an_object ();
--   
--     // we completed our drawing; the draw commands will be
--     // flushed at the end of the signal emission chain, and
--     // the buffers will be drawn on the window
--     return TRUE;
--   }
--   
--   void setup_glarea (void)
--   {
--     // create a GtkGLArea instance
--     GtkWidget *gl_area = gtk_gl_area_new ();
--   
--     // connect to the "render" signal
--     g_signal_connect (gl_area, "render", G_CALLBACK (render), NULL);
--   }
--   
--   
--   If you need to initialize OpenGL state, e.g. buffer objects or
--   shaders, you should use the Widget::realize signal; you can use
--   the Widget::unrealize signal to clean up. Since the
--   GdkGLContext creation and initialization may fail, you will
--   need to check for errors, using gLAreaGetError.
--   
--   An example of how to safely initialize the GL state is:
--   
--   
c code
--   
--   
--   static void
--   on_realize (GtkGLArea *area)
--   {
--     // We need to make the context current if we want to
--     // call GL API
--     gtk_gl_area_make_current (area);
--   
--     // If there were errors during the initialization or
--     // when trying to make the context current, this
--     // function will return a GError for you to catch
--     if (gtk_gl_area_get_error (area) != NULL)
--       return;
--   
--     // You can also use gtk_gl_area_set_error() in order
--     // to show eventual initialization errors on the
--     // GtkGLArea widget itself
--     GError *internal_error = NULL;
--     init_buffer_objects (&error);
--     if (error != NULL)
--       {
--         gtk_gl_area_set_error (area, error);
--         g_error_free (error);
--         return;
--       }
--   
--     init_shaders (&error);
--     if (error != NULL)
--       {
--         gtk_gl_area_set_error (area, error);
--         g_error_free (error);
--         return;
--       }
--   }
--   
--   
--   If you need to change the options for creating the
--   GdkGLContext you should use the GLArea::createContext
--   signal.
module GI.Gtk.Objects.GLArea

-- | Memory-managed wrapper type.
newtype GLArea
GLArea :: ManagedPtr GLArea -> GLArea

-- | Type class for types which can be safely cast to GLArea, for
--   instance with toGLArea.
class (GObject o, IsDescendantOf GLArea o) => IsGLArea o

-- | Cast to GLArea, for types for which this is known to be safe.
--   For general casts, use castTo.
toGLArea :: (MonadIO m, IsGLArea o) => o -> m GLArea

-- | Binds buffers to the framebuffer.
--   
--   Ensures that the area framebuffer object is made the
--   current draw and read target, and that all the required buffers for
--   the area are created and bound to the framebuffer.
--   
--   This function is automatically called before emitting the
--   GLArea::render signal, and doesn't normally need to be called
--   by application code.
gLAreaAttachBuffers :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m ()

-- | Gets the allowed APIs.
--   
--   See gLAreaSetAllowedApis.
--   
--   Since: 4.12
gLAreaGetAllowedApis :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m [GLAPI]

-- | Gets the API that is currently in use.
--   
--   If the GL area has not been realized yet, 0 is returned.
--   
--   Since: 4.12
gLAreaGetApi :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m [GLAPI]

-- | Returns whether the area is in auto render mode or not.
gLAreaGetAutoRender :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m Bool

-- | Retrieves the GdkGLContext used by area.
gLAreaGetContext :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m (Maybe GLContext)

-- | Gets the current error set on the area.
gLAreaGetError :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m (Maybe GError)

-- | Returns whether the area has a depth buffer.
gLAreaGetHasDepthBuffer :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m Bool

-- | Returns whether the area has a stencil buffer.
gLAreaGetHasStencilBuffer :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m Bool

-- | Retrieves the required version of OpenGL.
--   
--   See gLAreaSetRequiredVersion.
gLAreaGetRequiredVersion :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m (Int32, Int32)

-- | Returns whether the GtkGLArea should use OpenGL ES.
--   
--   See gLAreaSetUseEs.

-- | Deprecated: (Since version 4.12)Use gLAreaGetApi
gLAreaGetUseEs :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m Bool

-- | Ensures that the GdkGLContext used by area is
--   associated with the GtkGLArea.
--   
--   This function is automatically called before emitting the
--   GLArea::render signal, and doesn't normally need to be called
--   by application code.
gLAreaMakeCurrent :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m ()

-- | Creates a new GtkGLArea widget.
gLAreaNew :: (HasCallStack, MonadIO m) => m GLArea

-- | Marks the currently rendered data (if any) as invalid, and queues a
--   redraw of the widget.
--   
--   This ensures that the GLArea::render signal is emitted during
--   the draw.
--   
--   This is only needed when gLAreaSetAutoRender has been called
--   with a False value. The default behaviour is to emit
--   GLArea::render on each draw.
gLAreaQueueRender :: (HasCallStack, MonadIO m, IsGLArea a) => a -> m ()

-- | Sets the allowed APIs to create a context with.
--   
--   You should check GLArea:api before drawing with either API.
--   
--   By default, all APIs are allowed.
--   
--   Since: 4.12
gLAreaSetAllowedApis :: (HasCallStack, MonadIO m, IsGLArea a) => a -> [GLAPI] -> m ()

-- | Sets whether the GtkGLArea is in auto render mode.
--   
--   If autoRender is True the GLArea::render
--   signal will be emitted every time the widget draws. This is the
--   default and is useful if drawing the widget is faster.
--   
--   If autoRender is False the data from previous
--   rendering is kept around and will be used for drawing the widget the
--   next time, unless the window is resized. In order to force a rendering
--   gLAreaQueueRender must be called. This mode is useful when the
--   scene changes seldom, but takes a long time to redraw.
gLAreaSetAutoRender :: (HasCallStack, MonadIO m, IsGLArea a) => a -> Bool -> m ()

-- | Sets an error on the area which will be shown instead of the GL
--   rendering.
--   
--   This is useful in the GLArea::createContext signal if GL
--   context creation fails.
gLAreaSetError :: (HasCallStack, MonadIO m, IsGLArea a) => a -> Maybe GError -> m ()

-- | Sets whether the GtkGLArea should use a depth buffer.
--   
--   If hasDepthBuffer is True the widget will
--   allocate and enable a depth buffer for the target framebuffer.
--   Otherwise there will be none.
gLAreaSetHasDepthBuffer :: (HasCallStack, MonadIO m, IsGLArea a) => a -> Bool -> m ()

-- | Sets whether the GtkGLArea should use a stencil buffer.
--   
--   If hasStencilBuffer is True the widget will
--   allocate and enable a stencil buffer for the target framebuffer.
--   Otherwise there will be none.
gLAreaSetHasStencilBuffer :: (HasCallStack, MonadIO m, IsGLArea a) => a -> Bool -> m ()

-- | Sets the required version of OpenGL to be used when creating the
--   context for the widget.
--   
--   This function must be called before the area has been realized.
gLAreaSetRequiredVersion :: (HasCallStack, MonadIO m, IsGLArea a) => a -> Int32 -> Int32 -> m ()

-- | Sets whether the area should create an OpenGL or an
--   OpenGL ES context.
--   
--   You should check the capabilities of the GdkGLContext before
--   drawing with either API.

-- | Deprecated: (Since version 4.12)Use gLAreaSetAllowedApis
gLAreaSetUseEs :: (HasCallStack, MonadIO m, IsGLArea a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “allowed-apis” property. This is rarely needed directly, but
--   it is used by new.
constructGLAreaAllowedApis :: (IsGLArea o, MonadIO m) => [GLAPI] -> m (GValueConstruct o)

-- | Get the value of the “allowed-apis” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gLArea #allowedApis
--   
getGLAreaAllowedApis :: (MonadIO m, IsGLArea o) => o -> m [GLAPI]

-- | Set the value of the “allowed-apis” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gLArea [ #allowedApis := value ]
--   
setGLAreaAllowedApis :: (MonadIO m, IsGLArea o) => o -> [GLAPI] -> m ()

-- | Get the value of the “api” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get gLArea #api
--   
getGLAreaApi :: (MonadIO m, IsGLArea o) => o -> m [GLAPI]

-- | Construct a GValueConstruct with valid value for the
--   “auto-render” property. This is rarely needed directly, but
--   it is used by new.
constructGLAreaAutoRender :: (IsGLArea o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “auto-render” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gLArea #autoRender
--   
getGLAreaAutoRender :: (MonadIO m, IsGLArea o) => o -> m Bool

-- | Set the value of the “auto-render” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gLArea [ #autoRender := value ]
--   
setGLAreaAutoRender :: (MonadIO m, IsGLArea o) => o -> Bool -> m ()

-- | Get the value of the “context” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gLArea #context
--   
getGLAreaContext :: (MonadIO m, IsGLArea o) => o -> m (Maybe GLContext)

-- | Construct a GValueConstruct with valid value for the
--   “has-depth-buffer” property. This is rarely needed directly,
--   but it is used by new.
constructGLAreaHasDepthBuffer :: (IsGLArea o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-depth-buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gLArea #hasDepthBuffer
--   
getGLAreaHasDepthBuffer :: (MonadIO m, IsGLArea o) => o -> m Bool

-- | Set the value of the “has-depth-buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gLArea [ #hasDepthBuffer := value ]
--   
setGLAreaHasDepthBuffer :: (MonadIO m, IsGLArea o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-stencil-buffer” property. This is rarely needed
--   directly, but it is used by new.
constructGLAreaHasStencilBuffer :: (IsGLArea o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-stencil-buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gLArea #hasStencilBuffer
--   
getGLAreaHasStencilBuffer :: (MonadIO m, IsGLArea o) => o -> m Bool

-- | Set the value of the “has-stencil-buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gLArea [ #hasStencilBuffer := value ]
--   
setGLAreaHasStencilBuffer :: (MonadIO m, IsGLArea o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-es” property. This is rarely needed directly, but it is
--   used by new.
constructGLAreaUseEs :: (IsGLArea o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-es” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get gLArea #useEs
--   
getGLAreaUseEs :: (MonadIO m, IsGLArea o) => o -> m Bool

-- | Set the value of the “use-es” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set gLArea [ #useEs := value ]
--   
setGLAreaUseEs :: (MonadIO m, IsGLArea o) => o -> Bool -> m ()

-- | Emitted when the widget is being realized.
--   
--   This allows you to override how the GL context is created. This is
--   useful when you want to reuse an existing GL context, or if you want
--   to try creating different kinds of GL options.
--   
--   If context creation fails then the signal handler can use
--   gLAreaSetError to register a more detailed error of how the
--   construction failed.
type GLAreaCreateContextCallback = IO GLContext

-- | Connect a signal handler for the createContext signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after gLArea #createContext callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGLAreaCreateContext :: (IsGLArea a, MonadIO m) => a -> ((?self :: a) => GLAreaCreateContextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the createContext signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on gLArea #createContext callback
--   
onGLAreaCreateContext :: (IsGLArea a, MonadIO m) => a -> ((?self :: a) => GLAreaCreateContextCallback) -> m SignalHandlerId

-- | Emitted every time the contents of the GtkGLArea should be
--   redrawn.
--   
--   The context is bound to the area prior
--   to emitting this function, and the buffers are painted to the window
--   once the emission terminates.
type GLAreaRenderCallback = GLContext -> IO Bool

-- | Connect a signal handler for the render signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gLArea #render callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGLAreaRender :: (IsGLArea a, MonadIO m) => a -> ((?self :: a) => GLAreaRenderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the render signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gLArea #render callback
--   
onGLAreaRender :: (IsGLArea a, MonadIO m) => a -> ((?self :: a) => GLAreaRenderCallback) -> m SignalHandlerId

-- | Emitted once when the widget is realized, and then each time the
--   widget is changed while realized.
--   
--   This is useful in order to keep GL state up to date with the widget
--   size, like for instance camera properties which may depend on the
--   width/height ratio.
--   
--   The GL context for the area is guaranteed to be current when this
--   signal is emitted.
--   
--   The default handler sets up the GL viewport.
type GLAreaResizeCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the resize signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after gLArea #resize callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterGLAreaResize :: (IsGLArea a, MonadIO m) => a -> ((?self :: a) => GLAreaResizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the resize signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on gLArea #resize callback
--   
onGLAreaResize :: (IsGLArea a, MonadIO m) => a -> ((?self :: a) => GLAreaResizeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.GLArea.GLArea
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.GLArea.GLArea
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.GLArea.GLArea
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.GLArea.GLArea o) => GI.Gtk.Objects.GLArea.IsGLArea o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.GLArea.GLArea)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.GLArea.GLArea
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.GLArea.GLArea

-- | Surrounds its child with a decorative frame and an optional label.
--   
--   <picture> <source srcset="frame-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkFrame" src="frame.png"> </picture>
--   
--   If present, the label is drawn inside the top edge of the frame. The
--   horizontal position of the label can be controlled with
--   frameSetLabelAlign.
--   
--   GtkFrame clips its child. You can use this to add rounded
--   corners to widgets, but be aware that it also cuts off shadows.
--   
--   
GtkFrame as GtkBuildable
--   
--   An example of a UI definition fragment with GtkFrame:
--   
--   
xml code
--   
--   
--   <object class="GtkFrame">
--     <property name="label-widget">
--       <object class="GtkLabel" id="frame_label"/>
--     </property>
--     <property name="child">
--       <object class="GtkEntry" id="frame_content"/>
--     </property>
--   </object>
--   
--   
--   
CSS nodes
--   
--   
--   frame
--   ├── <label widget>
--   ╰── <child>
--   
--   
--   GtkFrame has a main CSS node with name “frame”, which is used
--   to draw the visible border. You can set the appearance of the border
--   using CSS properties like “border-style” on this node.
--   
--   
Accessibility
--   
--   GtkFrame uses the AccessibleRoleGroup role.
module GI.Gtk.Objects.Frame

-- | Memory-managed wrapper type.
newtype Frame
Frame :: ManagedPtr Frame -> Frame

-- | Type class for types which can be safely cast to Frame, for
--   instance with toFrame.
class (GObject o, IsDescendantOf Frame o) => IsFrame o

-- | Cast to Frame, for types for which this is known to be safe.
--   For general casts, use castTo.
toFrame :: (MonadIO m, IsFrame o) => o -> m Frame

-- | Gets the child widget of frame.
frameGetChild :: (HasCallStack, MonadIO m, IsFrame a) => a -> m (Maybe Widget)

-- | Returns the frame labels text.
--   
--   If the frame's label widget is not a GtkLabel, Nothing
--   is returned.
frameGetLabel :: (HasCallStack, MonadIO m, IsFrame a) => a -> m (Maybe Text)

-- | Retrieves the X alignment of the frame’s label.
frameGetLabelAlign :: (HasCallStack, MonadIO m, IsFrame a) => a -> m Float

-- | Retrieves the label widget for the frame.
frameGetLabelWidget :: (HasCallStack, MonadIO m, IsFrame a) => a -> m (Maybe Widget)

-- | Creates a new GtkFrame, with optional label
--   label.
--   
--   If label is Nothing, the label is omitted.
frameNew :: (HasCallStack, MonadIO m) => Maybe Text -> m Frame

-- | Sets the child widget of frame.
frameSetChild :: (HasCallStack, MonadIO m, IsFrame a, IsWidget b) => a -> Maybe b -> m ()

-- | Creates a new GtkLabel with the label and
--   sets it as the frame's label widget.
frameSetLabel :: (HasCallStack, MonadIO m, IsFrame a) => a -> Maybe Text -> m ()

-- | Sets the X alignment of the frame widget’s label.
--   
--   The default value for a newly created frame is 0.0.
frameSetLabelAlign :: (HasCallStack, MonadIO m, IsFrame a) => a -> Float -> m ()

-- | Sets the label widget for the frame.
--   
--   This is the widget that will appear embedded in the top edge of the
--   frame as a title.
frameSetLabelWidget :: (HasCallStack, MonadIO m, IsFrame a, IsWidget b) => a -> Maybe b -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearFrameChild :: (MonadIO m, IsFrame o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructFrameChild :: (IsFrame o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get frame #child
--   
getFrameChild :: (MonadIO m, IsFrame o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set frame [ #child := value ]
--   
setFrameChild :: (MonadIO m, IsFrame o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “label” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #label
--   
clearFrameLabel :: (MonadIO m, IsFrame o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label” property. This is rarely needed directly, but it is
--   used by new.
constructFrameLabel :: (IsFrame o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get frame #label
--   
getFrameLabel :: (MonadIO m, IsFrame o) => o -> m (Maybe Text)

-- | Set the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set frame [ #label := value ]
--   
setFrameLabel :: (MonadIO m, IsFrame o) => o -> Text -> m ()

-- | Set the value of the “label-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #labelWidget
--   
clearFrameLabelWidget :: (MonadIO m, IsFrame o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label-widget” property. This is rarely needed directly, but
--   it is used by new.
constructFrameLabelWidget :: (IsFrame o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “label-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get frame #labelWidget
--   
getFrameLabelWidget :: (MonadIO m, IsFrame o) => o -> m (Maybe Widget)

-- | Set the value of the “label-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set frame [ #labelWidget := value ]
--   
setFrameLabelWidget :: (MonadIO m, IsFrame o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label-xalign” property. This is rarely needed directly, but
--   it is used by new.
constructFrameLabelXalign :: (IsFrame o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “label-xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get frame #labelXalign
--   
getFrameLabelXalign :: (MonadIO m, IsFrame o) => o -> m Float

-- | Set the value of the “label-xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set frame [ #labelXalign := value ]
--   
setFrameLabelXalign :: (MonadIO m, IsFrame o) => o -> Float -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Frame.Frame
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Frame.Frame
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Frame.Frame
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Frame.Frame o) => GI.Gtk.Objects.Frame.IsFrame o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Frame.Frame)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Frame.Frame
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Frame.Frame

-- | Opens a font chooser dialog to select a font.
--   
--   <picture> <source srcset="font-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkFontDialogButton" src="font-button.png"> </picture>
--   
--   It is suitable widget for selecting a font in a preference dialog.
--   
--   
CSS nodes
--   
--   
--   fontbutton
--   ╰── button.font
--       ╰── [content]
--   
--   
--   GtkFontDialogButton has a single CSS node with name
--   fontbutton which contains a button node with the .font style class.
--   
--   Since: 4.10
module GI.Gtk.Objects.FontDialogButton

-- | Memory-managed wrapper type.
newtype FontDialogButton
FontDialogButton :: ManagedPtr FontDialogButton -> FontDialogButton

-- | Type class for types which can be safely cast to
--   FontDialogButton, for instance with toFontDialogButton.
class (GObject o, IsDescendantOf FontDialogButton o) => IsFontDialogButton o

-- | Cast to FontDialogButton, for types for which this is known to
--   be safe. For general casts, use castTo.
toFontDialogButton :: (MonadIO m, IsFontDialogButton o) => o -> m FontDialogButton

-- | Returns the GtkFontDialog of self.
--   
--   Since: 4.10
fontDialogButtonGetDialog :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m (Maybe FontDialog)

-- | Returns the font of the button.
--   
--   This function is what should be used to obtain the font that was
--   chosen by the user. To get informed about changes, listen to
--   "notifyfontDesc".
--   
--   Since: 4.10
fontDialogButtonGetFontDesc :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m (Maybe FontDescription)

-- | Returns the font features of the button.
--   
--   This function is what should be used to obtain the font features that
--   were chosen by the user. To get informed about changes, listen to
--   "notifyfontFeatures".
--   
--   Note that the button will only let users choose font features if
--   FontDialogButton:level is set to
--   GTK_FONT_LEVEL_FEATURES.
--   
--   Since: 4.10
fontDialogButtonGetFontFeatures :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m (Maybe Text)

-- | Returns the language that is used for font features.
--   
--   Since: 4.10
fontDialogButtonGetLanguage :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m (Maybe Language)

-- | Returns the level of detail at which this dialog lets the user select
--   fonts.
--   
--   Since: 4.10
fontDialogButtonGetLevel :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m FontLevel

-- | Returns whether the selected font is used in the label.
--   
--   Since: 4.10
fontDialogButtonGetUseFont :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m Bool

-- | Returns whether the selected font size is used in the label.
--   
--   Since: 4.10
fontDialogButtonGetUseSize :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> m Bool

-- | Creates a new GtkFontDialogButton with the given
--   GtkFontDialog.
--   
--   You can pass NULL to this function and set a
--   GtkFontDialog later. The button will be insensitive until
--   that happens.
--   
--   Since: 4.10
fontDialogButtonNew :: (HasCallStack, MonadIO m, IsFontDialog a) => Maybe a -> m FontDialogButton

-- | Sets a GtkFontDialog object to use for creating the font
--   chooser dialog that is presented when the user clicks the button.
--   
--   Since: 4.10
fontDialogButtonSetDialog :: (HasCallStack, MonadIO m, IsFontDialogButton a, IsFontDialog b) => a -> b -> m ()

-- | Sets the font of the button.
--   
--   Since: 4.10
fontDialogButtonSetFontDesc :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> FontDescription -> m ()

-- | Sets the font features of the button.
--   
--   Since: 4.10
fontDialogButtonSetFontFeatures :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> Maybe Text -> m ()

-- | Sets the language to use for font features.
--   
--   Since: 4.10
fontDialogButtonSetLanguage :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> Maybe Language -> m ()

-- | Sets the level of detail at which this dialog lets the user select
--   fonts.
--   
--   Since: 4.10
fontDialogButtonSetLevel :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> FontLevel -> m ()

-- | If useFont is TRUE, the font name will be
--   written using the selected font.
--   
--   Since: 4.10
fontDialogButtonSetUseFont :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> Bool -> m ()

-- | If useSize is TRUE, the font name will be
--   written using the selected font size.
--   
--   Since: 4.10
fontDialogButtonSetUseSize :: (HasCallStack, MonadIO m, IsFontDialogButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “dialog” property. This is rarely needed directly, but it is
--   used by new.
constructFontDialogButtonDialog :: (IsFontDialogButton o, MonadIO m, IsFontDialog a) => a -> m (GValueConstruct o)

-- | Get the value of the “dialog” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #dialog
--   
getFontDialogButtonDialog :: (MonadIO m, IsFontDialogButton o) => o -> m (Maybe FontDialog)

-- | Set the value of the “dialog” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #dialog := value ]
--   
setFontDialogButtonDialog :: (MonadIO m, IsFontDialogButton o, IsFontDialog a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-desc” property. This is rarely needed directly, but it
--   is used by new.
constructFontDialogButtonFontDesc :: (IsFontDialogButton o, MonadIO m) => FontDescription -> m (GValueConstruct o)

-- | Get the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #fontDesc
--   
getFontDialogButtonFontDesc :: (MonadIO m, IsFontDialogButton o) => o -> m (Maybe FontDescription)

-- | Set the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #fontDesc := value ]
--   
setFontDialogButtonFontDesc :: (MonadIO m, IsFontDialogButton o) => o -> FontDescription -> m ()

-- | Set the value of the “font-features” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #fontFeatures
--   
clearFontDialogButtonFontFeatures :: (MonadIO m, IsFontDialogButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-features” property. This is rarely needed directly, but
--   it is used by new.
constructFontDialogButtonFontFeatures :: (IsFontDialogButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “font-features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #fontFeatures
--   
getFontDialogButtonFontFeatures :: (MonadIO m, IsFontDialogButton o) => o -> m (Maybe Text)

-- | Set the value of the “font-features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #fontFeatures := value ]
--   
setFontDialogButtonFontFeatures :: (MonadIO m, IsFontDialogButton o) => o -> Text -> m ()

-- | Set the value of the “language” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #language
--   
clearFontDialogButtonLanguage :: (MonadIO m, IsFontDialogButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “language” property. This is rarely needed directly, but it
--   is used by new.
constructFontDialogButtonLanguage :: (IsFontDialogButton o, MonadIO m) => Language -> m (GValueConstruct o)

-- | Get the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #language
--   
getFontDialogButtonLanguage :: (MonadIO m, IsFontDialogButton o) => o -> m (Maybe Language)

-- | Set the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #language := value ]
--   
setFontDialogButtonLanguage :: (MonadIO m, IsFontDialogButton o) => o -> Language -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “level” property. This is rarely needed directly, but it is
--   used by new.
constructFontDialogButtonLevel :: (IsFontDialogButton o, MonadIO m) => FontLevel -> m (GValueConstruct o)

-- | Get the value of the “level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #level
--   
getFontDialogButtonLevel :: (MonadIO m, IsFontDialogButton o) => o -> m FontLevel

-- | Set the value of the “level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #level := value ]
--   
setFontDialogButtonLevel :: (MonadIO m, IsFontDialogButton o) => o -> FontLevel -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-font” property. This is rarely needed directly, but it
--   is used by new.
constructFontDialogButtonUseFont :: (IsFontDialogButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-font” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #useFont
--   
getFontDialogButtonUseFont :: (MonadIO m, IsFontDialogButton o) => o -> m Bool

-- | Set the value of the “use-font” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #useFont := value ]
--   
setFontDialogButtonUseFont :: (MonadIO m, IsFontDialogButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-size” property. This is rarely needed directly, but it
--   is used by new.
constructFontDialogButtonUseSize :: (IsFontDialogButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialogButton #useSize
--   
getFontDialogButtonUseSize :: (MonadIO m, IsFontDialogButton o) => o -> m Bool

-- | Set the value of the “use-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialogButton [ #useSize := value ]
--   
setFontDialogButtonUseSize :: (MonadIO m, IsFontDialogButton o) => o -> Bool -> m ()

-- | Emitted when the font dialog button is activated.
--   
--   The ::activate signal on GtkFontDialogButton is an
--   action signal and emitting it causes the button to pop up its dialog.
--   
--   Since: 4.14
type FontDialogButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fontDialogButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFontDialogButtonActivate :: (IsFontDialogButton a, MonadIO m) => a -> ((?self :: a) => FontDialogButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fontDialogButton #activate callback
--   
onFontDialogButtonActivate :: (IsFontDialogButton a, MonadIO m) => a -> ((?self :: a) => FontDialogButtonActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.FontDialogButton.FontDialogButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FontDialogButton.FontDialogButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FontDialogButton.FontDialogButton
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FontDialogButton.FontDialogButton o) => GI.Gtk.Objects.FontDialogButton.IsFontDialogButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FontDialogButton.FontDialogButton)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FontDialogButton.FontDialogButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FontDialogButton.FontDialogButton

-- | Asynchronous API to present a font chooser dialog.
--   
--   GtkFontDialog collects the arguments that are needed to
--   present the dialog to the user, such as a title for the dialog and
--   whether it should be modal.
--   
--   The dialog is shown with the fontDialogChooseFont function or
--   its variants.
--   
--   See FontDialogButton for a convenient control that uses
--   GtkFontDialog and presents the results.
--   
--   Since: 4.10
module GI.Gtk.Objects.FontDialog

-- | Memory-managed wrapper type.
newtype FontDialog
FontDialog :: ManagedPtr FontDialog -> FontDialog

-- | Type class for types which can be safely cast to FontDialog,
--   for instance with toFontDialog.
class (GObject o, IsDescendantOf FontDialog o) => IsFontDialog o

-- | Cast to FontDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toFontDialog :: (MonadIO m, IsFontDialog o) => o -> m FontDialog

-- | Presents a font chooser dialog to the user.
--   
--   The font chooser dialog will be set up for selecting a font face.
--   
--   A font face represents a font family and style, but no specific font
--   size.
--   
--   Since: 4.10
fontDialogChooseFace :: (HasCallStack, MonadIO m, IsFontDialog a, IsWindow b, IsFontFace c, IsCancellable d) => a -> Maybe b -> Maybe c -> Maybe d -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fontDialogChooseFace call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fontDialogChooseFaceFinish :: (HasCallStack, MonadIO m, IsFontDialog a, IsAsyncResult b) => a -> b -> m FontFace

-- | Presents a font chooser dialog to the user.
--   
--   The font chooser dialog will be set up for selecting a font family.
--   
--   Since: 4.10
fontDialogChooseFamily :: (HasCallStack, MonadIO m, IsFontDialog a, IsWindow b, IsFontFamily c, IsCancellable d) => a -> Maybe b -> Maybe c -> Maybe d -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fontDialogChooseFamily call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fontDialogChooseFamilyFinish :: (HasCallStack, MonadIO m, IsFontDialog a, IsAsyncResult b) => a -> b -> m FontFamily

-- | Presents a font chooser dialog to the user.
--   
--   The font chooser dialog will be set up for selecting a font.
--   
--   If you want to let the user select font features as well, use
--   fontDialogChooseFontAndFeatures instead.
--   
--   Since: 4.10
fontDialogChooseFont :: (HasCallStack, MonadIO m, IsFontDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe FontDescription -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Presents a font chooser dialog to the user.
--   
--   The font chooser dialog will be set up for selecting a font and
--   specify features for the selected font.
--   
--   Font features affect how the font is rendered, for example enabling
--   glyph variants or ligatures.
--   
--   Since: 4.10
fontDialogChooseFontAndFeatures :: (HasCallStack, MonadIO m, IsFontDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe FontDescription -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fontDialogChooseFontAndFeatures call.
--   
--   The selected font and features are returned in
--   fontDesc and fontFeatures.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fontDialogChooseFontAndFeaturesFinish :: (HasCallStack, MonadIO m, IsFontDialog a, IsAsyncResult b) => a -> b -> m (FontDescription, Text, Language)

-- | Finishes the fontDialogChooseFont call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fontDialogChooseFontFinish :: (HasCallStack, MonadIO m, IsFontDialog a, IsAsyncResult b) => a -> b -> m FontDescription

-- | Returns the filter that decides which fonts to display in the font
--   chooser dialog.
--   
--   Since: 4.10
fontDialogGetFilter :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> m (Maybe Filter)

-- | Returns the fontmap from which fonts are selected, or NULL
--   for the default fontmap.
--   
--   Since: 4.10
fontDialogGetFontMap :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> m (Maybe FontMap)

-- | Returns the language for which font features are applied.
--   
--   Since: 4.10
fontDialogGetLanguage :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> m (Maybe Language)

-- | Returns whether the font chooser dialog blocks interaction with the
--   parent window while it is presented.
--   
--   Since: 4.10
fontDialogGetModal :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> m Bool

-- | Returns the title that will be shown on the font chooser dialog.
--   
--   Since: 4.10
fontDialogGetTitle :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> m Text

-- | Creates a new GtkFontDialog object.
--   
--   Since: 4.10
fontDialogNew :: (HasCallStack, MonadIO m) => m FontDialog

-- | Adds a filter that decides which fonts to display in the font chooser
--   dialog.
--   
--   The filter must be able to handle both PangoFontFamily and
--   PangoFontFace objects.
--   
--   Since: 4.10
fontDialogSetFilter :: (HasCallStack, MonadIO m, IsFontDialog a, IsFilter b) => a -> Maybe b -> m ()

-- | Sets the fontmap from which fonts are selected.
--   
--   If fontmap is NULL, the default fontmap is
--   used.
--   
--   Since: 4.10
fontDialogSetFontMap :: (HasCallStack, MonadIO m, IsFontDialog a, IsFontMap b) => a -> Maybe b -> m ()

-- | Sets the language for which font features are applied.
--   
--   Since: 4.10
fontDialogSetLanguage :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> Language -> m ()

-- | Sets whether the font chooser dialog blocks interaction with the
--   parent window while it is presented.
--   
--   Since: 4.10
fontDialogSetModal :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> Bool -> m ()

-- | Sets the title that will be shown on the font chooser dialog.
--   
--   Since: 4.10
fontDialogSetTitle :: (HasCallStack, MonadIO m, IsFontDialog a) => a -> Text -> m ()

-- | Set the value of the “filter” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #filter
--   
clearFontDialogFilter :: (MonadIO m, IsFontDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “filter” property. This is rarely needed directly, but it is
--   used by new.
constructFontDialogFilter :: (IsFontDialog o, MonadIO m, IsFilter a) => a -> m (GValueConstruct o)

-- | Get the value of the “filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialog #filter
--   
getFontDialogFilter :: (MonadIO m, IsFontDialog o) => o -> m (Maybe Filter)

-- | Set the value of the “filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialog [ #filter := value ]
--   
setFontDialogFilter :: (MonadIO m, IsFontDialog o, IsFilter a) => o -> a -> m ()

-- | Set the value of the “font-map” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #fontMap
--   
clearFontDialogFontMap :: (MonadIO m, IsFontDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-map” property. This is rarely needed directly, but it
--   is used by new.
constructFontDialogFontMap :: (IsFontDialog o, MonadIO m, IsFontMap a) => a -> m (GValueConstruct o)

-- | Get the value of the “font-map” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialog #fontMap
--   
getFontDialogFontMap :: (MonadIO m, IsFontDialog o) => o -> m (Maybe FontMap)

-- | Set the value of the “font-map” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialog [ #fontMap := value ]
--   
setFontDialogFontMap :: (MonadIO m, IsFontDialog o, IsFontMap a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “language” property. This is rarely needed directly, but it
--   is used by new.
constructFontDialogLanguage :: (IsFontDialog o, MonadIO m) => Language -> m (GValueConstruct o)

-- | Get the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialog #language
--   
getFontDialogLanguage :: (MonadIO m, IsFontDialog o) => o -> m (Maybe Language)

-- | Set the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialog [ #language := value ]
--   
setFontDialogLanguage :: (MonadIO m, IsFontDialog o) => o -> Language -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructFontDialogModal :: (IsFontDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialog #modal
--   
getFontDialogModal :: (MonadIO m, IsFontDialog o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialog [ #modal := value ]
--   
setFontDialogModal :: (MonadIO m, IsFontDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructFontDialogTitle :: (IsFontDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontDialog #title
--   
getFontDialogTitle :: (MonadIO m, IsFontDialog o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontDialog [ #title := value ]
--   
setFontDialogTitle :: (MonadIO m, IsFontDialog o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.FontDialog.FontDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FontDialog.FontDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FontDialog.FontDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FontDialog.FontDialog o) => GI.Gtk.Objects.FontDialog.IsFontDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FontDialog.FontDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FontDialog.FontDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FontDialog.FontDialog

-- | The GtkFontChooserWidget widget lets the user select a font.
--   
--   It is used in the GtkFontChooserDialog widget to provide a
--   dialog for selecting fonts.
--   
--   To set the font which is initially selected, use
--   fontChooserSetFont or fontChooserSetFontDesc.
--   
--   To get the selected font use fontChooserGetFont or
--   fontChooserGetFontDesc.
--   
--   To change the text which is shown in the preview area, use
--   fontChooserSetPreviewText.
--   
--   
CSS nodes
--   
--   GtkFontChooserWidget has a single CSS node with name
--   fontchooser.
module GI.Gtk.Objects.FontChooserWidget

-- | Memory-managed wrapper type.
newtype FontChooserWidget
FontChooserWidget :: ManagedPtr FontChooserWidget -> FontChooserWidget

-- | Type class for types which can be safely cast to
--   FontChooserWidget, for instance with
--   toFontChooserWidget.
class (GObject o, IsDescendantOf FontChooserWidget o) => IsFontChooserWidget o

-- | Cast to FontChooserWidget, for types for which this is known to
--   be safe. For general casts, use castTo.
toFontChooserWidget :: (MonadIO m, IsFontChooserWidget o) => o -> m FontChooserWidget

-- | Creates a new GtkFontChooserWidget.

-- | Deprecated: (Since version 4.10)Direct use of
--   GtkFontChooserWidget is deprecated.
fontChooserWidgetNew :: (HasCallStack, MonadIO m) => m FontChooserWidget

-- | Get the value of the “tweak-action” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooserWidget #tweakAction
--   
getFontChooserWidgetTweakAction :: (MonadIO m, IsFontChooserWidget o) => o -> m (Maybe Action)
instance GHC.Classes.Eq GI.Gtk.Objects.FontChooserWidget.FontChooserWidget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FontChooserWidget.FontChooserWidget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FontChooserWidget.FontChooserWidget
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FontChooserWidget.FontChooserWidget o) => GI.Gtk.Objects.FontChooserWidget.IsFontChooserWidget o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FontChooserWidget.FontChooserWidget)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FontChooserWidget.FontChooserWidget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FontChooserWidget.FontChooserWidget

-- | The GtkFontChooserDialog widget is a dialog for selecting a
--   font.
--   
--   <picture> <source srcset="fontchooser-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkFontChooserDialog" src="fontchooser.png"> </picture>
--   
--   GtkFontChooserDialog implements the FontChooser
--   interface and does not provide much API of its own.
--   
--   To create a GtkFontChooserDialog, use
--   fontChooserDialogNew.
--   
--   
GtkFontChooserDialog as GtkBuildable
--   
--   The GtkFontChooserDialog implementation of the
--   GtkBuildable interface exposes the buttons with the names
--   “select_button” and “cancel_button”.
--   
--   
CSS nodes
--   
--   GtkFontChooserDialog has a single CSS node with the name
--   window and style class .fontchooser.
module GI.Gtk.Objects.FontChooserDialog

-- | Memory-managed wrapper type.
newtype FontChooserDialog
FontChooserDialog :: ManagedPtr FontChooserDialog -> FontChooserDialog

-- | Type class for types which can be safely cast to
--   FontChooserDialog, for instance with
--   toFontChooserDialog.
class (GObject o, IsDescendantOf FontChooserDialog o) => IsFontChooserDialog o

-- | Cast to FontChooserDialog, for types for which this is known to
--   be safe. For general casts, use castTo.
toFontChooserDialog :: (MonadIO m, IsFontChooserDialog o) => o -> m FontChooserDialog

-- | Creates a new GtkFontChooserDialog.

-- | Deprecated: (Since version 4.10)Use FontDialog instead
fontChooserDialogNew :: (HasCallStack, MonadIO m, IsWindow a) => Maybe Text -> Maybe a -> m FontChooserDialog
instance GHC.Classes.Eq GI.Gtk.Objects.FontChooserDialog.FontChooserDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FontChooserDialog.FontChooserDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FontChooserDialog.FontChooserDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FontChooserDialog.FontChooserDialog o) => GI.Gtk.Objects.FontChooserDialog.IsFontChooserDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FontChooserDialog.FontChooserDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FontChooserDialog.FontChooserDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FontChooserDialog.FontChooserDialog

-- | The GtkFontButton allows to open a font chooser dialog to
--   change the font.
--   
--   <picture> <source srcset="font-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkFontButton" src="font-button.png"> </picture>
--   
--   It is suitable widget for selecting a font in a preference dialog.
--   
--   
CSS nodes
--   
--   
--   fontbutton
--   ╰── button.font
--       ╰── [content]
--   
--   
--   GtkFontButton has a single CSS node with name fontbutton
--   which contains a button node with the .font style class.
module GI.Gtk.Objects.FontButton

-- | Memory-managed wrapper type.
newtype FontButton
FontButton :: ManagedPtr FontButton -> FontButton

-- | Type class for types which can be safely cast to FontButton,
--   for instance with toFontButton.
class (GObject o, IsDescendantOf FontButton o) => IsFontButton o

-- | Cast to FontButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toFontButton :: (MonadIO m, IsFontButton o) => o -> m FontButton

-- | Gets whether the dialog is modal.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonGetModal :: (HasCallStack, MonadIO m, IsFontButton a) => a -> m Bool

-- | Retrieves the title of the font chooser dialog.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonGetTitle :: (HasCallStack, MonadIO m, IsFontButton a) => a -> m Text

-- | Returns whether the selected font is used in the label.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonGetUseFont :: (HasCallStack, MonadIO m, IsFontButton a) => a -> m Bool

-- | Returns whether the selected size is used in the label.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonGetUseSize :: (HasCallStack, MonadIO m, IsFontButton a) => a -> m Bool

-- | Creates a new font picker widget.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonNew :: (HasCallStack, MonadIO m) => m FontButton

-- | Creates a new font picker widget showing the given font.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonNewWithFont :: (HasCallStack, MonadIO m) => Text -> m FontButton

-- | Sets whether the dialog should be modal.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonSetModal :: (HasCallStack, MonadIO m, IsFontButton a) => a -> Bool -> m ()

-- | Sets the title for the font chooser dialog.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonSetTitle :: (HasCallStack, MonadIO m, IsFontButton a) => a -> Text -> m ()

-- | If useFont is True, the font name will be
--   written using the selected font.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonSetUseFont :: (HasCallStack, MonadIO m, IsFontButton a) => a -> Bool -> m ()

-- | If useSize is True, the font name will be
--   written using the selected size.

-- | Deprecated: (Since version 4.10)Use FontDialogButton
--   instead
fontButtonSetUseSize :: (HasCallStack, MonadIO m, IsFontButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructFontButtonModal :: (IsFontButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontButton #modal
--   
getFontButtonModal :: (MonadIO m, IsFontButton o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontButton [ #modal := value ]
--   
setFontButtonModal :: (MonadIO m, IsFontButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructFontButtonTitle :: (IsFontButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontButton #title
--   
getFontButtonTitle :: (MonadIO m, IsFontButton o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontButton [ #title := value ]
--   
setFontButtonTitle :: (MonadIO m, IsFontButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-font” property. This is rarely needed directly, but it
--   is used by new.
constructFontButtonUseFont :: (IsFontButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-font” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontButton #useFont
--   
getFontButtonUseFont :: (MonadIO m, IsFontButton o) => o -> m Bool

-- | Set the value of the “use-font” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontButton [ #useFont := value ]
--   
setFontButtonUseFont :: (MonadIO m, IsFontButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-size” property. This is rarely needed directly, but it
--   is used by new.
constructFontButtonUseSize :: (IsFontButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontButton #useSize
--   
getFontButtonUseSize :: (MonadIO m, IsFontButton o) => o -> m Bool

-- | Set the value of the “use-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontButton [ #useSize := value ]
--   
setFontButtonUseSize :: (MonadIO m, IsFontButton o) => o -> Bool -> m ()

-- | Emitted to when the font button is activated.
--   
--   The ::activate signal on GtkFontButton is an action
--   signal and emitting it causes the button to present its dialog.
--   
--   Since: 4.4
type FontButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fontButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFontButtonActivate :: (IsFontButton a, MonadIO m) => a -> ((?self :: a) => FontButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fontButton #activate callback
--   
onFontButtonActivate :: (IsFontButton a, MonadIO m) => a -> ((?self :: a) => FontButtonActivateCallback) -> m SignalHandlerId

-- | Emitted when the user selects a font.
--   
--   When handling this signal, use fontChooserGetFont to find out
--   which font was just selected.
--   
--   Note that this signal is only emitted when the user changes the font.
--   If you need to react to programmatic font changes as well, use the
--   notifyfont signal.
type FontButtonFontSetCallback = IO ()

-- | Connect a signal handler for the fontSet signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fontButton #fontSet callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFontButtonFontSet :: (IsFontButton a, MonadIO m) => a -> ((?self :: a) => FontButtonFontSetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the fontSet signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fontButton #fontSet callback
--   
onFontButtonFontSet :: (IsFontButton a, MonadIO m) => a -> ((?self :: a) => FontButtonFontSetCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.FontButton.FontButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FontButton.FontButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FontButton.FontButton
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FontButton.FontButton o) => GI.Gtk.Objects.FontButton.IsFontButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FontButton.FontButton)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FontButton.FontButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FontButton.FontButton

-- | The kind of widget that can be added to a GtkFlowBox.
--   
--   FlowBox will automatically wrap its children in a
--   GtkFlowBoxChild when necessary.
module GI.Gtk.Objects.FlowBoxChild

-- | Memory-managed wrapper type.
newtype FlowBoxChild
FlowBoxChild :: ManagedPtr FlowBoxChild -> FlowBoxChild

-- | Type class for types which can be safely cast to FlowBoxChild,
--   for instance with toFlowBoxChild.
class (GObject o, IsDescendantOf FlowBoxChild o) => IsFlowBoxChild o

-- | Cast to FlowBoxChild, for types for which this is known to be
--   safe. For general casts, use castTo.
toFlowBoxChild :: (MonadIO m, IsFlowBoxChild o) => o -> m FlowBoxChild

-- | Marks child as changed, causing any state that depends
--   on this to be updated.
--   
--   This affects sorting and filtering.
--   
--   Note that calls to this method must be in sync with the data used for
--   the sorting and filtering functions. For instance, if the list is
--   mirroring some external data set, and *two* children changed in the
--   external data set when you call flowBoxChildChanged on the
--   first child, the sort function must only read the new data for the
--   first of the two changed children, otherwise the resorting of the
--   children will be wrong.
--   
--   This generally means that if you don’t fully control the data model,
--   you have to duplicate the data that affects the sorting and filtering
--   functions into the widgets themselves.
--   
--   Another alternative is to call flowBoxInvalidateSort on any
--   model change, but that is more expensive.
flowBoxChildChanged :: (HasCallStack, MonadIO m, IsFlowBoxChild a) => a -> m ()

-- | Gets the child widget of self.
flowBoxChildGetChild :: (HasCallStack, MonadIO m, IsFlowBoxChild a) => a -> m (Maybe Widget)

-- | Gets the current index of the child in its
--   GtkFlowBox container.
flowBoxChildGetIndex :: (HasCallStack, MonadIO m, IsFlowBoxChild a) => a -> m Int32

-- | Returns whether the child is currently selected in its
--   GtkFlowBox container.
flowBoxChildIsSelected :: (HasCallStack, MonadIO m, IsFlowBoxChild a) => a -> m Bool

-- | Creates a new GtkFlowBoxChild.
--   
--   This should only be used as a child of a GtkFlowBox.
flowBoxChildNew :: (HasCallStack, MonadIO m) => m FlowBoxChild

-- | Sets the child widget of self.
flowBoxChildSetChild :: (HasCallStack, MonadIO m, IsFlowBoxChild a, IsWidget b) => a -> Maybe b -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearFlowBoxChildChild :: (MonadIO m, IsFlowBoxChild o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructFlowBoxChildChild :: (IsFlowBoxChild o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBoxChild #child
--   
getFlowBoxChildChild :: (MonadIO m, IsFlowBoxChild o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBoxChild [ #child := value ]
--   
setFlowBoxChildChild :: (MonadIO m, IsFlowBoxChild o, IsWidget a) => o -> a -> m ()

-- | Emitted when the user activates a child widget in a
--   GtkFlowBox.
--   
--   This can happen either by clicking or double-clicking, or via a
--   keybinding.
--   
--   This is a keybinding signal, but it can be used by applications
--   for their own purposes.
--   
--   The default bindings are <kbd>Space</kbd> and
--   <kbd>Enter</kbd>.
type FlowBoxChildActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after flowBoxChild #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxChildActivate :: (IsFlowBoxChild a, MonadIO m) => a -> ((?self :: a) => FlowBoxChildActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on flowBoxChild #activate callback
--   
onFlowBoxChildActivate :: (IsFlowBoxChild a, MonadIO m) => a -> ((?self :: a) => FlowBoxChildActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.FlowBoxChild.FlowBoxChild
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FlowBoxChild.FlowBoxChild
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FlowBoxChild.FlowBoxChild
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FlowBoxChild.FlowBoxChild o) => GI.Gtk.Objects.FlowBoxChild.IsFlowBoxChild o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FlowBoxChild.FlowBoxChild)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FlowBoxChild.FlowBoxChild
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FlowBoxChild.FlowBoxChild

-- | Puts child widgets in a reflowing grid.
--   
--   <picture> <source srcset="flow-box-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkFlowBox" src="flow-box.png"> </picture>
--   
--   For instance, with the horizontal orientation, the widgets will be
--   arranged from left to right, starting a new row under the previous row
--   when necessary. Reducing the width in this case will require more
--   rows, so a larger height will be requested.
--   
--   Likewise, with the vertical orientation, the widgets will be arranged
--   from top to bottom, starting a new column to the right when necessary.
--   Reducing the height will require more columns, so a larger width will
--   be requested.
--   
--   The size request of a GtkFlowBox alone may not be what you
--   expect; if you need to be able to shrink it along both axes and
--   dynamically reflow its children, you may have to wrap it in a
--   GtkScrolledWindow to enable that.
--   
--   The children of a GtkFlowBox can be dynamically sorted and
--   filtered.
--   
--   Although a GtkFlowBox must have only GtkFlowBoxChild
--   children, you can add any kind of widget to it via
--   flowBoxInsert, and a GtkFlowBoxChild widget will
--   automatically be inserted between the box and the widget.
--   
--   Also see ListBox.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- FlowBox::moveCursor
--   
- FlowBox::selectAll
--   
- FlowBox::toggleCursorChild
--   
- FlowBox::unselectAll
--   
--   
--   
CSS nodes
--   
--   
--   flowbox
--   ├── flowboxchild
--   │   ╰── <child>
--   ├── flowboxchild
--   │   ╰── <child>
--   ┊
--   ╰── [rubberband]
--   
--   
--   GtkFlowBox uses a single CSS node with name flowbox.
--   GtkFlowBoxChild uses a single CSS node with name
--   flowboxchild. For rubberband selection, a subnode with name rubberband
--   is used.
--   
--   
Accessibility
--   
--   GtkFlowBox uses the AccessibleRoleGrid role, and
--   GtkFlowBoxChild uses the AccessibleRoleGridCell role.
module GI.Gtk.Objects.FlowBox

-- | Memory-managed wrapper type.
newtype FlowBox
FlowBox :: ManagedPtr FlowBox -> FlowBox

-- | Type class for types which can be safely cast to FlowBox, for
--   instance with toFlowBox.
class (GObject o, IsDescendantOf FlowBox o) => IsFlowBox o

-- | Cast to FlowBox, for types for which this is known to be safe.
--   For general casts, use castTo.
toFlowBox :: (MonadIO m, IsFlowBox o) => o -> m FlowBox

-- | Adds child to the end of self.
--   
--   If a sort function is set, the widget will actually be inserted at the
--   calculated position.
--   
--   See also: flowBoxInsert.
--   
--   Since: 4.6
flowBoxAppend :: (HasCallStack, MonadIO m, IsFlowBox a, IsWidget b) => a -> b -> m ()

-- | Binds model to box.
--   
--   If box was already bound to a model, that previous
--   binding is destroyed.
--   
--   The contents of box are cleared and then filled with
--   widgets that represent items from model.
--   box is updated whenever model changes.
--   If model is Nothing, box is
--   left empty.
--   
--   It is undefined to add or remove widgets directly (for example, with
--   flowBoxInsert) while box is bound to a model.
--   
--   Note that using a model is incompatible with the filtering and sorting
--   functionality in GtkFlowBox. When using a model, filtering
--   and sorting should be implemented by the model.
flowBoxBindModel :: (HasCallStack, MonadIO m, IsFlowBox a, IsListModel b) => a -> Maybe b -> FlowBoxCreateWidgetFunc -> m ()

-- | Returns whether children activate on single clicks.
flowBoxGetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m Bool

-- | Gets the nth child in the box.
flowBoxGetChildAtIndex :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Int32 -> m (Maybe FlowBoxChild)

-- | Gets the child in the (x, y) position.
--   
--   Both x and y are assumed to be
--   relative to the origin of box.
flowBoxGetChildAtPos :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Int32 -> Int32 -> m (Maybe FlowBoxChild)

-- | Gets the horizontal spacing.
flowBoxGetColumnSpacing :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m Word32

-- | Returns whether the box is homogeneous.
flowBoxGetHomogeneous :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m Bool

-- | Gets the maximum number of children per line.
flowBoxGetMaxChildrenPerLine :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m Word32

-- | Gets the minimum number of children per line.
flowBoxGetMinChildrenPerLine :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m Word32

-- | Gets the vertical spacing.
flowBoxGetRowSpacing :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m Word32

-- | Creates a list of all selected children.
flowBoxGetSelectedChildren :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m [FlowBoxChild]

-- | Gets the selection mode of box.
flowBoxGetSelectionMode :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m SelectionMode

-- | Inserts the widget into box at
--   position.
--   
--   If a sort function is set, the widget will actually be inserted at the
--   calculated position.
--   
--   If position is -1, or larger than the total number of
--   children in the box, then the widget
--   will be appended to the end.
flowBoxInsert :: (HasCallStack, MonadIO m, IsFlowBox a, IsWidget b) => a -> b -> Int32 -> m ()

-- | Updates the filtering for all children.
--   
--   Call this function when the result of the filter function on the
--   box is changed due to an external factor. For
--   instance, this would be used if the filter function just looked for a
--   specific search term, and the entry with the string has changed.
flowBoxInvalidateFilter :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m ()

-- | Updates the sorting for all children.
--   
--   Call this when the result of the sort function on box
--   is changed due to an external factor.
flowBoxInvalidateSort :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m ()

-- | Creates a GtkFlowBox.
flowBoxNew :: (HasCallStack, MonadIO m) => m FlowBox

-- | Adds child to the start of self.
--   
--   If a sort function is set, the widget will actually be inserted at the
--   calculated position.
--   
--   See also: flowBoxInsert.
--   
--   Since: 4.6
flowBoxPrepend :: (HasCallStack, MonadIO m, IsFlowBox a, IsWidget b) => a -> b -> m ()

-- | Removes a child from box.
flowBoxRemove :: (HasCallStack, MonadIO m, IsFlowBox a, IsWidget b) => a -> b -> m ()

-- | Removes all children from box.
--   
--   This function does nothing if box is backed by a
--   model.
--   
--   Since: 4.12
flowBoxRemoveAll :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m ()

-- | Select all children of box, if the selection mode
--   allows it.
flowBoxSelectAll :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m ()

-- | Selects a single child of box, if the selection mode
--   allows it.
flowBoxSelectChild :: (HasCallStack, MonadIO m, IsFlowBox a, IsFlowBoxChild b) => a -> b -> m ()

-- | Calls a function for each selected child.
--   
--   Note that the selection cannot be modified from within this function.
flowBoxSelectedForeach :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> FlowBoxForeachFunc -> m ()

-- | If single is True, children will be activated
--   when you click on them, otherwise you need to double-click.
flowBoxSetActivateOnSingleClick :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Bool -> m ()

-- | Sets the horizontal space to add between children.
flowBoxSetColumnSpacing :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Word32 -> m ()

-- | By setting a filter function on the box one can decide
--   dynamically which of the children to show.
--   
--   For instance, to implement a search function that only shows the
--   children matching the search terms.
--   
--   The filterFunc will be called for each child after the
--   call, and it will continue to be called each time a child changes (via
--   flowBoxChildChanged) or when flowBoxInvalidateFilter is
--   called.
--   
--   Note that using a filter function is incompatible with using a model
--   (see flowBoxBindModel).
flowBoxSetFilterFunc :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Maybe FlowBoxFilterFunc -> m ()

-- | Hooks up an adjustment to focus handling in box.
--   
--   The adjustment is also used for autoscrolling during rubberband
--   selection. See scrolledWindowGetHadjustment for a typical way
--   of obtaining the adjustment, and flowBoxSetVadjustment for
--   setting the vertical adjustment.
--   
--   The adjustments have to be in pixel units and in the same coordinate
--   system as the allocation for immediate children of the box.
flowBoxSetHadjustment :: (HasCallStack, MonadIO m, IsFlowBox a, IsAdjustment b) => a -> b -> m ()

-- | Sets whether or not all children of box are given
--   equal space in the box.
flowBoxSetHomogeneous :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Bool -> m ()

-- | Sets the maximum number of children to request and allocate space for
--   in box’s orientation.
--   
--   Setting the maximum number of children per line limits the overall
--   natural size request to be no more than nChildren
--   children long in the given orientation.
flowBoxSetMaxChildrenPerLine :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Word32 -> m ()

-- | Sets the minimum number of children to line up in
--   box’s orientation before flowing.
flowBoxSetMinChildrenPerLine :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Word32 -> m ()

-- | Sets the vertical space to add between children.
flowBoxSetRowSpacing :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Word32 -> m ()

-- | Sets how selection works in box.
flowBoxSetSelectionMode :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> SelectionMode -> m ()

-- | By setting a sort function on the box, one can
--   dynamically reorder the children of the box, based on the contents of
--   the children.
--   
--   The sortFunc will be called for each child after the
--   call, and will continue to be called each time a child changes (via
--   flowBoxChildChanged) and when flowBoxInvalidateSort is
--   called.
--   
--   Note that using a sort function is incompatible with using a model
--   (see flowBoxBindModel).
flowBoxSetSortFunc :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> Maybe FlowBoxSortFunc -> m ()

-- | Hooks up an adjustment to focus handling in box.
--   
--   The adjustment is also used for autoscrolling during rubberband
--   selection. See scrolledWindowGetVadjustment for a typical way
--   of obtaining the adjustment, and flowBoxSetHadjustment for
--   setting the horizontal adjustment.
--   
--   The adjustments have to be in pixel units and in the same coordinate
--   system as the allocation for immediate children of the box.
flowBoxSetVadjustment :: (HasCallStack, MonadIO m, IsFlowBox a, IsAdjustment b) => a -> b -> m ()

-- | Unselect all children of box, if the selection mode
--   allows it.
flowBoxUnselectAll :: (HasCallStack, MonadIO m, IsFlowBox a) => a -> m ()

-- | Unselects a single child of box, if the selection mode
--   allows it.
flowBoxUnselectChild :: (HasCallStack, MonadIO m, IsFlowBox a, IsFlowBoxChild b) => a -> b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accept-unpaired-release” property. This is rarely needed
--   directly, but it is used by new.
constructFlowBoxAcceptUnpairedRelease :: (IsFlowBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “accept-unpaired-release” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #acceptUnpairedRelease
--   
getFlowBoxAcceptUnpairedRelease :: (MonadIO m, IsFlowBox o) => o -> m Bool

-- | Set the value of the “accept-unpaired-release” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #acceptUnpairedRelease := value ]
--   
setFlowBoxAcceptUnpairedRelease :: (MonadIO m, IsFlowBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activate-on-single-click” property. This is rarely needed
--   directly, but it is used by new.
constructFlowBoxActivateOnSingleClick :: (IsFlowBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #activateOnSingleClick
--   
getFlowBoxActivateOnSingleClick :: (MonadIO m, IsFlowBox o) => o -> m Bool

-- | Set the value of the “activate-on-single-click” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #activateOnSingleClick := value ]
--   
setFlowBoxActivateOnSingleClick :: (MonadIO m, IsFlowBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “column-spacing” property. This is rarely needed directly,
--   but it is used by new.
constructFlowBoxColumnSpacing :: (IsFlowBox o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #columnSpacing
--   
getFlowBoxColumnSpacing :: (MonadIO m, IsFlowBox o) => o -> m Word32

-- | Set the value of the “column-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #columnSpacing := value ]
--   
setFlowBoxColumnSpacing :: (MonadIO m, IsFlowBox o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “homogeneous” property. This is rarely needed directly, but
--   it is used by new.
constructFlowBoxHomogeneous :: (IsFlowBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #homogeneous
--   
getFlowBoxHomogeneous :: (MonadIO m, IsFlowBox o) => o -> m Bool

-- | Set the value of the “homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #homogeneous := value ]
--   
setFlowBoxHomogeneous :: (MonadIO m, IsFlowBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-children-per-line” property. This is rarely needed
--   directly, but it is used by new.
constructFlowBoxMaxChildrenPerLine :: (IsFlowBox o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “max-children-per-line” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #maxChildrenPerLine
--   
getFlowBoxMaxChildrenPerLine :: (MonadIO m, IsFlowBox o) => o -> m Word32

-- | Set the value of the “max-children-per-line” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #maxChildrenPerLine := value ]
--   
setFlowBoxMaxChildrenPerLine :: (MonadIO m, IsFlowBox o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “min-children-per-line” property. This is rarely needed
--   directly, but it is used by new.
constructFlowBoxMinChildrenPerLine :: (IsFlowBox o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “min-children-per-line” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #minChildrenPerLine
--   
getFlowBoxMinChildrenPerLine :: (MonadIO m, IsFlowBox o) => o -> m Word32

-- | Set the value of the “min-children-per-line” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #minChildrenPerLine := value ]
--   
setFlowBoxMinChildrenPerLine :: (MonadIO m, IsFlowBox o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-spacing” property. This is rarely needed directly, but
--   it is used by new.
constructFlowBoxRowSpacing :: (IsFlowBox o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #rowSpacing
--   
getFlowBoxRowSpacing :: (MonadIO m, IsFlowBox o) => o -> m Word32

-- | Set the value of the “row-spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #rowSpacing := value ]
--   
setFlowBoxRowSpacing :: (MonadIO m, IsFlowBox o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “selection-mode” property. This is rarely needed directly,
--   but it is used by new.
constructFlowBoxSelectionMode :: (IsFlowBox o, MonadIO m) => SelectionMode -> m (GValueConstruct o)

-- | Get the value of the “selection-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get flowBox #selectionMode
--   
getFlowBoxSelectionMode :: (MonadIO m, IsFlowBox o) => o -> m SelectionMode

-- | Set the value of the “selection-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set flowBox [ #selectionMode := value ]
--   
setFlowBoxSelectionMode :: (MonadIO m, IsFlowBox o) => o -> SelectionMode -> m ()

-- | Emitted when the user activates the box.
--   
--   This is a keybinding signal.
type FlowBoxActivateCursorChildCallback = IO ()

-- | Connect a signal handler for the activateCursorChild signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after flowBox #activateCursorChild callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxActivateCursorChild :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxActivateCursorChildCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateCursorChild signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on flowBox #activateCursorChild callback
--   
onFlowBoxActivateCursorChild :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxActivateCursorChildCallback) -> m SignalHandlerId

-- | Emitted when a child has been activated by the user.
type FlowBoxChildActivatedCallback = FlowBoxChild -> IO ()

-- | Connect a signal handler for the childActivated signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after flowBox #childActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxChildActivated :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxChildActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the childActivated signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on flowBox #childActivated callback
--   
onFlowBoxChildActivated :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxChildActivatedCallback) -> m SignalHandlerId

-- | Emitted when the user initiates a cursor movement.
--   
--   This is a keybinding signal. Applications should not connect to
--   it, but may emit it with g_signal_emit_by_name() if
--   they need to control the cursor programmatically.
--   
--   The default bindings for this signal come in two variants, the variant
--   with the Shift modifier extends the selection, the variant without the
--   Shift modifier does not. There are too many key combinations to list
--   them all here.
--   
--   
--   
- <kbd>←</kbd>, <kbd>→</kbd>,
--   <kbd>↑</kbd>, <kbd>↓</kbd> move by individual
--   children
--   
- <kbd>Home</kbd>, <kbd>End</kbd> move to
--   the ends of the box
--   
- <kbd>PgUp</kbd>, <kbd>PgDn</kbd> move
--   vertically by pages
--   
type FlowBoxMoveCursorCallback = MovementStep -> Int32 -> Bool -> Bool -> IO Bool

-- | Connect a signal handler for the moveCursor signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after flowBox #moveCursor callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxMoveCursor :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxMoveCursorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveCursor signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on flowBox #moveCursor callback
--   
onFlowBoxMoveCursor :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxMoveCursorCallback) -> m SignalHandlerId

-- | Emitted to select all children of the box, if the selection mode
--   permits it.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal is
--   <kbd>Ctrl</kbd>-<kbd>a</kbd>.
type FlowBoxSelectAllCallback = IO ()

-- | Connect a signal handler for the selectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after flowBox #selectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxSelectAll :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxSelectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on flowBox #selectAll callback
--   
onFlowBoxSelectAll :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxSelectAllCallback) -> m SignalHandlerId

-- | Emitted when the set of selected children changes.
--   
--   Use flowBoxSelectedForeach or flowBoxGetSelectedChildren
--   to obtain the selected children.
type FlowBoxSelectedChildrenChangedCallback = IO ()

-- | Connect a signal handler for the selectedChildrenChanged
--   signal, to be run after the default handler. When overloading
--   is enabled, this is equivalent to
--   
--   
--   after flowBox #selectedChildrenChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxSelectedChildrenChanged :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxSelectedChildrenChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the selectedChildrenChanged
--   signal, to be run before the default handler. When overloading
--   is enabled, this is equivalent to
--   
--   
--   on flowBox #selectedChildrenChanged callback
--   
onFlowBoxSelectedChildrenChanged :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxSelectedChildrenChangedCallback) -> m SignalHandlerId

-- | Emitted to toggle the selection of the child that has the focus.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is
--   <kbd>Ctrl</kbd>-<kbd>Space</kbd>.
type FlowBoxToggleCursorChildCallback = IO ()

-- | Connect a signal handler for the toggleCursorChild signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after flowBox #toggleCursorChild callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxToggleCursorChild :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxToggleCursorChildCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggleCursorChild signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on flowBox #toggleCursorChild callback
--   
onFlowBoxToggleCursorChild :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxToggleCursorChildCallback) -> m SignalHandlerId

-- | Emitted to unselect all children of the box, if the selection mode
--   permits it.
--   
--   This is a keybinding signal.
--   
--   The default bindings for this signal is
--   <kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>a</kbd>.
type FlowBoxUnselectAllCallback = IO ()

-- | Connect a signal handler for the unselectAll signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after flowBox #unselectAll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFlowBoxUnselectAll :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxUnselectAllCallback) -> m SignalHandlerId

-- | Connect a signal handler for the unselectAll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on flowBox #unselectAll callback
--   
onFlowBoxUnselectAll :: (IsFlowBox a, MonadIO m) => a -> ((?self :: a) => FlowBoxUnselectAllCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.FlowBox.FlowBox
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FlowBox.FlowBox
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FlowBox.FlowBox
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FlowBox.FlowBox o) => GI.Gtk.Objects.FlowBox.IsFlowBox o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FlowBox.FlowBox)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FlowBox.FlowBox
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FlowBox.FlowBox

-- | GtkLayoutChild subclass for children in a
--   GtkFixedLayout.
module GI.Gtk.Objects.FixedLayoutChild

-- | Memory-managed wrapper type.
newtype FixedLayoutChild
FixedLayoutChild :: ManagedPtr FixedLayoutChild -> FixedLayoutChild

-- | Type class for types which can be safely cast to
--   FixedLayoutChild, for instance with toFixedLayoutChild.
class (GObject o, IsDescendantOf FixedLayoutChild o) => IsFixedLayoutChild o

-- | Cast to FixedLayoutChild, for types for which this is known to
--   be safe. For general casts, use castTo.
toFixedLayoutChild :: (MonadIO m, IsFixedLayoutChild o) => o -> m FixedLayoutChild

-- | Retrieves the transformation of the child.
fixedLayoutChildGetTransform :: (HasCallStack, MonadIO m, IsFixedLayoutChild a) => a -> m (Maybe Transform)

-- | Sets the transformation of the child of a GtkFixedLayout.
fixedLayoutChildSetTransform :: (HasCallStack, MonadIO m, IsFixedLayoutChild a) => a -> Transform -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “transform” property. This is rarely needed directly, but it
--   is used by new.
constructFixedLayoutChildTransform :: (IsFixedLayoutChild o, MonadIO m) => Transform -> m (GValueConstruct o)

-- | Get the value of the “transform” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fixedLayoutChild #transform
--   
getFixedLayoutChildTransform :: (MonadIO m, IsFixedLayoutChild o) => o -> m (Maybe Transform)

-- | Set the value of the “transform” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fixedLayoutChild [ #transform := value ]
--   
setFixedLayoutChildTransform :: (MonadIO m, IsFixedLayoutChild o) => o -> Transform -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild o) => GI.Gtk.Objects.FixedLayoutChild.IsFixedLayoutChild o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FixedLayoutChild.FixedLayoutChild

-- | Places child widgets at fixed positions.
--   
--   Most applications should never use this layout manager; fixed
--   positioning and sizing requires constant recalculations on where
--   children need to be positioned and sized. Other layout managers
--   perform this kind of work internally so that application developers
--   don't need to do it. Specifically, widgets positioned in a fixed
--   layout manager will need to take into account:
--   
--   
--   
- Themes, which may change widget sizes.
--   
- Fonts other than the one you used to write the app will of course
--   change the size of widgets containing text; keep in mind that users
--   may use a larger font because of difficulty reading the default, or
--   they may be using a different OS that provides different fonts.
--   
- Translation of text into other languages changes its size. Also,
--   display of non-English text will use a different font in many
--   cases.
--   
--   
--   In addition, GtkFixedLayout does not pay attention to text
--   direction and thus may produce unwanted results if your app is run
--   under right-to-left languages such as Hebrew or Arabic. That is:
--   normally GTK will order containers appropriately depending on the text
--   direction, e.g. to put labels to the right of the thing they label
--   when using an RTL language; GtkFixedLayout won't be able to
--   do that for you.
--   
--   Finally, fixed positioning makes it kind of annoying to add/remove UI
--   elements, since you have to reposition all the other elements. This is
--   a long-term maintenance problem for your application.
module GI.Gtk.Objects.FixedLayout

-- | Memory-managed wrapper type.
newtype FixedLayout
FixedLayout :: ManagedPtr FixedLayout -> FixedLayout

-- | Type class for types which can be safely cast to FixedLayout,
--   for instance with toFixedLayout.
class (GObject o, IsDescendantOf FixedLayout o) => IsFixedLayout o

-- | Cast to FixedLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toFixedLayout :: (MonadIO m, IsFixedLayout o) => o -> m FixedLayout

-- | Creates a new GtkFixedLayout.
fixedLayoutNew :: (HasCallStack, MonadIO m) => m FixedLayout
instance GHC.Classes.Eq GI.Gtk.Objects.FixedLayout.FixedLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FixedLayout.FixedLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FixedLayout.FixedLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FixedLayout.FixedLayout o) => GI.Gtk.Objects.FixedLayout.IsFixedLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FixedLayout.FixedLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FixedLayout.FixedLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FixedLayout.FixedLayout

-- | Places its child widgets at fixed positions and with fixed sizes.
--   
--   GtkFixed performs no automatic layout management.
--   
--   For most applications, you should not use this container! It keeps you
--   from having to learn about the other GTK containers, but it results in
--   broken applications. With GtkFixed, the following things will
--   result in truncated text, overlapping widgets, and other display bugs:
--   
--   
--   
- Themes, which may change widget sizes.
--   
- Fonts other than the one you used to write the app will of course
--   change the size of widgets containing text; keep in mind that users
--   may use a larger font because of difficulty reading the default, or
--   they may be using a different OS that provides different fonts.
--   
- Translation of text into other languages changes its size. Also,
--   display of non-English text will use a different font in many
--   cases.
--   
--   
--   In addition, GtkFixed does not pay attention to text
--   direction and thus may produce unwanted results if your app is run
--   under right-to-left languages such as Hebrew or Arabic. That is:
--   normally GTK will order containers appropriately for the text
--   direction, e.g. to put labels to the right of the thing they label
--   when using an RTL language, but it can’t do that with
--   GtkFixed. So if you need to reorder widgets depending on the
--   text direction, you would need to manually detect it and adjust child
--   positions accordingly.
--   
--   Finally, fixed positioning makes it kind of annoying to add/remove UI
--   elements, since you have to reposition all the other elements. This is
--   a long-term maintenance problem for your application.
--   
--   If you know none of these things are an issue for your application,
--   and prefer the simplicity of GtkFixed, by all means use the
--   widget. But you should be aware of the tradeoffs.
module GI.Gtk.Objects.Fixed

-- | Memory-managed wrapper type.
newtype Fixed
Fixed :: ManagedPtr Fixed -> Fixed

-- | Type class for types which can be safely cast to Fixed, for
--   instance with toFixed.
class (GObject o, IsDescendantOf Fixed o) => IsFixed o

-- | Cast to Fixed, for types for which this is known to be safe.
--   For general casts, use castTo.
toFixed :: (MonadIO m, IsFixed o) => o -> m Fixed

-- | Retrieves the translation transformation of the given child
--   GtkWidget in the GtkFixed.
--   
--   See also: fixedGetChildTransform.
fixedGetChildPosition :: (HasCallStack, MonadIO m, IsFixed a, IsWidget b) => a -> b -> m (Double, Double)

-- | Retrieves the transformation for widget set using
--   fixedSetChildTransform.
fixedGetChildTransform :: (HasCallStack, MonadIO m, IsFixed a, IsWidget b) => a -> b -> m (Maybe Transform)

-- | Sets a translation transformation to the given x and
--   y coordinates to the child widget of
--   the GtkFixed.
fixedMove :: (HasCallStack, MonadIO m, IsFixed a, IsWidget b) => a -> b -> Double -> Double -> m ()

-- | Creates a new GtkFixed.
fixedNew :: (HasCallStack, MonadIO m) => m Fixed

-- | Adds a widget to a GtkFixed at the given position.
fixedPut :: (HasCallStack, MonadIO m, IsFixed a, IsWidget b) => a -> b -> Double -> Double -> m ()

-- | Removes a child from fixed.
fixedRemove :: (HasCallStack, MonadIO m, IsFixed a, IsWidget b) => a -> b -> m ()

-- | Sets the transformation for widget.
--   
--   This is a convenience function that retrieves the
--   FixedLayoutChild instance associated to widget
--   and calls fixedLayoutChildSetTransform.
fixedSetChildTransform :: (HasCallStack, MonadIO m, IsFixed a, IsWidget b) => a -> b -> Maybe Transform -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Fixed.Fixed
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Fixed.Fixed
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Fixed.Fixed
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Fixed.Fixed o) => GI.Gtk.Objects.Fixed.IsFixed o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Fixed.Fixed)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Fixed.Fixed
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Fixed.Fixed

-- | Asynchronous API to open a file with an application.
--   
--   GtkFileLauncher collects the arguments that are needed to
--   open the file.
--   
--   Depending on system configuration, user preferences and available
--   APIs, this may or may not show an app chooser dialog or launch the
--   default application right away.
--   
--   The operation is started with the fileLauncherLaunch function.
--   
--   To launch uris that don't represent files, use UriLauncher.
--   
--   Since: 4.10
module GI.Gtk.Objects.FileLauncher

-- | Memory-managed wrapper type.
newtype FileLauncher
FileLauncher :: ManagedPtr FileLauncher -> FileLauncher

-- | Type class for types which can be safely cast to FileLauncher,
--   for instance with toFileLauncher.
class (GObject o, IsDescendantOf FileLauncher o) => IsFileLauncher o

-- | Cast to FileLauncher, for types for which this is known to be
--   safe. For general casts, use castTo.
toFileLauncher :: (MonadIO m, IsFileLauncher o) => o -> m FileLauncher

-- | Returns whether to ask the user which app to use.
--   
--   Since: 4.12
fileLauncherGetAlwaysAsk :: (HasCallStack, MonadIO m, IsFileLauncher a) => a -> m Bool

-- | Gets the file that will be opened.
--   
--   Since: 4.10
fileLauncherGetFile :: (HasCallStack, MonadIO m, IsFileLauncher a) => a -> m (Maybe File)

-- | Returns whether to make the file writable for the handler.
--   
--   Since: 4.14
fileLauncherGetWritable :: (HasCallStack, MonadIO m, IsFileLauncher a) => a -> m Bool

-- | Launches an application to open the file.
--   
--   This may present an app chooser dialog to the user.
--   
--   Since: 4.10
fileLauncherLaunch :: (HasCallStack, MonadIO m, IsFileLauncher a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileLauncherLaunch call and returns the result.
--   
--   Since: 4.10
fileLauncherLaunchFinish :: (HasCallStack, MonadIO m, IsFileLauncher a, IsAsyncResult b) => a -> b -> m ()

-- | Creates a new GtkFileLauncher object.
--   
--   Since: 4.10
fileLauncherNew :: (HasCallStack, MonadIO m, IsFile a) => Maybe a -> m FileLauncher

-- | Launches a file manager to show the file in its parent directory.
--   
--   This is only supported for native files. It will fail if
--   file is e.g. a http:// uri.
--   
--   Since: 4.10
fileLauncherOpenContainingFolder :: (HasCallStack, MonadIO m, IsFileLauncher a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileLauncherOpenContainingFolder call and returns
--   the result.
--   
--   Since: 4.10
fileLauncherOpenContainingFolderFinish :: (HasCallStack, MonadIO m, IsFileLauncher a, IsAsyncResult b) => a -> b -> m ()

-- | Sets whether to always ask the user which app to use.
--   
--   If false, the file might be opened with a default app or the previous
--   choice.
--   
--   Since: 4.12
fileLauncherSetAlwaysAsk :: (HasCallStack, MonadIO m, IsFileLauncher a) => a -> Bool -> m ()

-- | Sets the file that will be opened.
--   
--   Since: 4.10
fileLauncherSetFile :: (HasCallStack, MonadIO m, IsFileLauncher a, IsFile b) => a -> Maybe b -> m ()

-- | Sets whether to make the file writable for the handler.
--   
--   Since: 4.14
fileLauncherSetWritable :: (HasCallStack, MonadIO m, IsFileLauncher a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “always-ask” property. This is rarely needed directly, but it
--   is used by new.
constructFileLauncherAlwaysAsk :: (IsFileLauncher o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “always-ask” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileLauncher #alwaysAsk
--   
getFileLauncherAlwaysAsk :: (MonadIO m, IsFileLauncher o) => o -> m Bool

-- | Set the value of the “always-ask” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileLauncher [ #alwaysAsk := value ]
--   
setFileLauncherAlwaysAsk :: (MonadIO m, IsFileLauncher o) => o -> Bool -> m ()

-- | Set the value of the “file” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #file
--   
clearFileLauncherFile :: (MonadIO m, IsFileLauncher o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “file” property. This is rarely needed directly, but it is
--   used by new.
constructFileLauncherFile :: (IsFileLauncher o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get fileLauncher #file
--   
getFileLauncherFile :: (MonadIO m, IsFileLauncher o) => o -> m (Maybe File)

-- | Set the value of the “file” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set fileLauncher [ #file := value ]
--   
setFileLauncherFile :: (MonadIO m, IsFileLauncher o, IsFile a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “writable” property. This is rarely needed directly, but it
--   is used by new.
constructFileLauncherWritable :: (IsFileLauncher o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “writable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileLauncher #writable
--   
getFileLauncherWritable :: (MonadIO m, IsFileLauncher o) => o -> m Bool

-- | Set the value of the “writable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileLauncher [ #writable := value ]
--   
setFileLauncherWritable :: (MonadIO m, IsFileLauncher o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.FileLauncher.FileLauncher
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FileLauncher.FileLauncher
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FileLauncher.FileLauncher
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FileLauncher.FileLauncher o) => GI.Gtk.Objects.FileLauncher.IsFileLauncher o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FileLauncher.FileLauncher)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FileLauncher.FileLauncher
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FileLauncher.FileLauncher

-- | Asynchronous API to present a file chooser dialog.
--   
--   GtkFileDialog collects the arguments that are needed to
--   present the dialog to the user, such as a title for the dialog and
--   whether it should be modal.
--   
--   The dialog is shown with fileDialogOpen, fileDialogSave,
--   etc.
--   
--   Since: 4.10
module GI.Gtk.Objects.FileDialog

-- | Memory-managed wrapper type.
newtype FileDialog
FileDialog :: ManagedPtr FileDialog -> FileDialog

-- | Type class for types which can be safely cast to FileDialog,
--   for instance with toFileDialog.
class (GObject o, IsDescendantOf FileDialog o) => IsFileDialog o

-- | Cast to FileDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toFileDialog :: (MonadIO m, IsFileDialog o) => o -> m FileDialog

-- | Retrieves the text used by the dialog on its accept button.
--   
--   Since: 4.10
fileDialogGetAcceptLabel :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m (Maybe Text)

-- | Gets the filter that will be selected by default in the file chooser
--   dialog.
--   
--   Since: 4.10
fileDialogGetDefaultFilter :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m (Maybe FileFilter)

-- | Gets the filters that will be offered to the user in the file chooser
--   dialog.
--   
--   Since: 4.10
fileDialogGetFilters :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m (Maybe ListModel)

-- | Gets the file that will be initially selected in the file chooser
--   dialog.
--   
--   Since: 4.10
fileDialogGetInitialFile :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m (Maybe File)

-- | Gets the folder that will be set as the initial folder in the file
--   chooser dialog.
--   
--   Since: 4.10
fileDialogGetInitialFolder :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m (Maybe File)

-- | Gets the filename that will be initially selected.
--   
--   Since: 4.10
fileDialogGetInitialName :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m (Maybe Text)

-- | Returns whether the file chooser dialog blocks interaction with the
--   parent window while it is presented.
--   
--   Since: 4.10
fileDialogGetModal :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m Bool

-- | Returns the title that will be shown on the file chooser dialog.
--   
--   Since: 4.10
fileDialogGetTitle :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> m Text

-- | Creates a new GtkFileDialog object.
--   
--   Since: 4.10
fileDialogNew :: (HasCallStack, MonadIO m) => m FileDialog

-- | Presents a file chooser dialog to the user.
--   
--   The file chooser dialog will be set up to select a single file.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.10
fileDialogOpen :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogOpen call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fileDialogOpenFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m File

-- | Presents a file chooser dialog to the user.
--   
--   The file chooser dialog will be set up to select multiple files.
--   
--   The file chooser dialog will initially be opened in the directory
--   FileDialog:initialFolder.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.10
fileDialogOpenMultiple :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogOpen call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fileDialogOpenMultipleFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m ListModel

-- | Presents a file chooser dialog to the user.
--   
--   The file chooser dialog will be set up to select multiple files.
--   
--   The file chooser dialog will initially be opened in the directory
--   FileDialog:initialFolder.
--   
--   In contrast to fileDialogOpen, this function lets the user
--   select the text encoding for the files, if possible.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.18
fileDialogOpenMultipleTextFiles :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogOpen call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.18
fileDialogOpenMultipleTextFilesFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m (ListModel, Text)

-- | Initiates a file selection operation by presenting a file chooser
--   dialog to the user.
--   
--   In contrast to fileDialogOpen, this function lets the user
--   select the text encoding for the file, if possible.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.18
fileDialogOpenTextFile :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogOpenTextFile call and returns the
--   resulting file and text encoding.
--   
--   If the user has explicitly selected a text encoding to use for the
--   file, then encoding will be set to a codeset name that
--   is suitable for passing to iconv_open(). Otherwise, it
--   will be NULL.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.18
fileDialogOpenTextFileFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m (File, Text)

-- | Presents a file chooser dialog to the user.
--   
--   The file chooser dialog will be save mode.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.10
fileDialogSave :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogSave call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fileDialogSaveFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m File

-- | Initiates a file save operation by presenting a file chooser dialog to
--   the user.
--   
--   In contrast to fileDialogSave, this function lets the user
--   select the text encoding and line endings for the text file, if
--   possible.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.18
fileDialogSaveTextFile :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogSaveTextFile call and returns the
--   resulting file, text encoding and line endings.
--   
--   If the user has explicitly selected a text encoding to use for the
--   file, then encoding will be set to a codeset name that
--   is suitable for passing to iconv_open(). Otherwise, it
--   will be NULL.
--   
--   The lineEnding will be set to one of "\n", "\r\n",
--   "\r" or "", where the latter means to preserve existing line endings.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.18
fileDialogSaveTextFileFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m (File, Text, Text)

-- | Presents a file chooser dialog to the user.
--   
--   The file chooser dialog will be set up to select a single folder.
--   
--   If you pass initialFolder, the file chooser dialog
--   will initially be opened in the parent directory of that folder,
--   otherwise, it will be in the directory
--   FileDialog:initialFolder.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.10
fileDialogSelectFolder :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogSelectFolder call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fileDialogSelectFolderFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m File

-- | Presents a file chooser dialog to the user.
--   
--   The file chooser dialog will be set up to allow selecting multiple
--   folders.
--   
--   The file chooser dialog will initially be opened in the directory
--   FileDialog:initialFolder.
--   
--   The callback will be called when the dialog is closed.
--   
--   Since: 4.10
fileDialogSelectMultipleFolders :: (HasCallStack, MonadIO m, IsFileDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the fileDialogSelectMultipleFolders call.
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
fileDialogSelectMultipleFoldersFinish :: (HasCallStack, MonadIO m, IsFileDialog a, IsAsyncResult b) => a -> b -> m ListModel

-- | Sets the label shown on the file chooser's accept button.
--   
--   Leaving the accept label unset or setting it as NULL will
--   fall back to a default label, depending on what API is used to launch
--   the file dialog.
--   
--   Since: 4.10
fileDialogSetAcceptLabel :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> Maybe Text -> m ()

-- | Sets the filter that will be selected by default in the file chooser
--   dialog.
--   
--   If set to NULL, the first item in FileDialog:filters
--   will be used as the default filter. If that list is empty, the dialog
--   will be unfiltered.
--   
--   Since: 4.10
fileDialogSetDefaultFilter :: (HasCallStack, MonadIO m, IsFileDialog a, IsFileFilter b) => a -> Maybe b -> m ()

-- | Sets the filters that will be offered to the user in the file chooser
--   dialog.
--   
--   Since: 4.10
fileDialogSetFilters :: (HasCallStack, MonadIO m, IsFileDialog a, IsListModel b) => a -> Maybe b -> m ()

-- | Sets the file that will be initially selected in the file chooser
--   dialog.
--   
--   This function is a shortcut for calling both
--   fileDialogSetInitialFolder and fileDialogSetInitialName
--   with the directory and name of file, respectively.
--   
--   Since: 4.10
fileDialogSetInitialFile :: (HasCallStack, MonadIO m, IsFileDialog a, IsFile b) => a -> Maybe b -> m ()

-- | Sets the folder that will be set as the initial folder in the file
--   chooser dialog.
--   
--   Since: 4.10
fileDialogSetInitialFolder :: (HasCallStack, MonadIO m, IsFileDialog a, IsFile b) => a -> Maybe b -> m ()

-- | Sets the filename that will be initially selected.
--   
--   For save dialogs, name will usually be pre-entered
--   into the name field.
--   
--   If a file with this name already exists in the directory set via
--   FileDialog:initialFolder, the dialog will preselect it.
--   
--   Since: 4.10
fileDialogSetInitialName :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> Maybe Text -> m ()

-- | Sets whether the file chooser dialog blocks interaction with the
--   parent window while it is presented.
--   
--   Since: 4.10
fileDialogSetModal :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> Bool -> m ()

-- | Sets the title that will be shown on the file chooser dialog.
--   
--   Since: 4.10
fileDialogSetTitle :: (HasCallStack, MonadIO m, IsFileDialog a) => a -> Text -> m ()

-- | Set the value of the “accept-label” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #acceptLabel
--   
clearFileDialogAcceptLabel :: (MonadIO m, IsFileDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accept-label” property. This is rarely needed directly, but
--   it is used by new.
constructFileDialogAcceptLabel :: (IsFileDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accept-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #acceptLabel
--   
getFileDialogAcceptLabel :: (MonadIO m, IsFileDialog o) => o -> m (Maybe Text)

-- | Set the value of the “accept-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #acceptLabel := value ]
--   
setFileDialogAcceptLabel :: (MonadIO m, IsFileDialog o) => o -> Text -> m ()

-- | Set the value of the “default-filter” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #defaultFilter
--   
clearFileDialogDefaultFilter :: (MonadIO m, IsFileDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-filter” property. This is rarely needed directly,
--   but it is used by new.
constructFileDialogDefaultFilter :: (IsFileDialog o, MonadIO m, IsFileFilter a) => a -> m (GValueConstruct o)

-- | Get the value of the “default-filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #defaultFilter
--   
getFileDialogDefaultFilter :: (MonadIO m, IsFileDialog o) => o -> m (Maybe FileFilter)

-- | Set the value of the “default-filter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #defaultFilter := value ]
--   
setFileDialogDefaultFilter :: (MonadIO m, IsFileDialog o, IsFileFilter a) => o -> a -> m ()

-- | Set the value of the “filters” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #filters
--   
clearFileDialogFilters :: (MonadIO m, IsFileDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “filters” property. This is rarely needed directly, but it is
--   used by new.
constructFileDialogFilters :: (IsFileDialog o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “filters” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #filters
--   
getFileDialogFilters :: (MonadIO m, IsFileDialog o) => o -> m (Maybe ListModel)

-- | Set the value of the “filters” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #filters := value ]
--   
setFileDialogFilters :: (MonadIO m, IsFileDialog o, IsListModel a) => o -> a -> m ()

-- | Set the value of the “initial-file” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #initialFile
--   
clearFileDialogInitialFile :: (MonadIO m, IsFileDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “initial-file” property. This is rarely needed directly, but
--   it is used by new.
constructFileDialogInitialFile :: (IsFileDialog o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “initial-file” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #initialFile
--   
getFileDialogInitialFile :: (MonadIO m, IsFileDialog o) => o -> m (Maybe File)

-- | Set the value of the “initial-file” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #initialFile := value ]
--   
setFileDialogInitialFile :: (MonadIO m, IsFileDialog o, IsFile a) => o -> a -> m ()

-- | Set the value of the “initial-folder” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #initialFolder
--   
clearFileDialogInitialFolder :: (MonadIO m, IsFileDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “initial-folder” property. This is rarely needed directly,
--   but it is used by new.
constructFileDialogInitialFolder :: (IsFileDialog o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “initial-folder” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #initialFolder
--   
getFileDialogInitialFolder :: (MonadIO m, IsFileDialog o) => o -> m (Maybe File)

-- | Set the value of the “initial-folder” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #initialFolder := value ]
--   
setFileDialogInitialFolder :: (MonadIO m, IsFileDialog o, IsFile a) => o -> a -> m ()

-- | Set the value of the “initial-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #initialName
--   
clearFileDialogInitialName :: (MonadIO m, IsFileDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “initial-name” property. This is rarely needed directly, but
--   it is used by new.
constructFileDialogInitialName :: (IsFileDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “initial-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #initialName
--   
getFileDialogInitialName :: (MonadIO m, IsFileDialog o) => o -> m (Maybe Text)

-- | Set the value of the “initial-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #initialName := value ]
--   
setFileDialogInitialName :: (MonadIO m, IsFileDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructFileDialogModal :: (IsFileDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #modal
--   
getFileDialogModal :: (MonadIO m, IsFileDialog o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #modal := value ]
--   
setFileDialogModal :: (MonadIO m, IsFileDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructFileDialogTitle :: (IsFileDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileDialog #title
--   
getFileDialogTitle :: (MonadIO m, IsFileDialog o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileDialog [ #title := value ]
--   
setFileDialogTitle :: (MonadIO m, IsFileDialog o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.FileDialog.FileDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FileDialog.FileDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FileDialog.FileDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FileDialog.FileDialog o) => GI.Gtk.Objects.FileDialog.IsFileDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FileDialog.FileDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FileDialog.FileDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FileDialog.FileDialog

-- | GtkFileChooserWidget is a widget for choosing files.
--   
--   It exposes the FileChooser interface, and you should use the
--   methods of this interface to interact with the widget.
--   
--   
Shortcuts and Gestures
--   
--   GtkFileChooserWidget supports the following keyboard
--   shortcuts:
--   
--   
--   
- <kbd>Shift</kbd>+<kbd>F10</kbd> or
--   <kbd>Menu</kbd> opens the context menu.
--   
--   
--   The following signals have default keybindings:
--   
--   
--   
- FileChooserWidget::desktopFolder
--   
- FileChooserWidget::downFolder
--   
- FileChooserWidget::homeFolder
--   
- FileChooserWidget::locationPopup
--   
- FileChooserWidget::locationPopupOnPaste
--   
- FileChooserWidget::locationTogglePopup
--   
- FileChooserWidget::placesShortcut
--   
- FileChooserWidget::quickBookmark
--   
- FileChooserWidget::recentShortcut
--   
- FileChooserWidget::searchShortcut
--   
- FileChooserWidget::showHidden
--   
- FileChooserWidget::upFolder
--   
--   
--   
CSS nodes
--   
--   GtkFileChooserWidget has a single CSS node with name
--   filechooser.
module GI.Gtk.Objects.FileChooserWidget

-- | Memory-managed wrapper type.
newtype FileChooserWidget
FileChooserWidget :: ManagedPtr FileChooserWidget -> FileChooserWidget

-- | Type class for types which can be safely cast to
--   FileChooserWidget, for instance with
--   toFileChooserWidget.
class (GObject o, IsDescendantOf FileChooserWidget o) => IsFileChooserWidget o

-- | Cast to FileChooserWidget, for types for which this is known to
--   be safe. For general casts, use castTo.
toFileChooserWidget :: (MonadIO m, IsFileChooserWidget o) => o -> m FileChooserWidget

-- | Creates a new GtkFileChooserWidget.
--   
--   This is a file chooser widget that can be embedded in custom windows,
--   and it is the same widget that is used by
--   GtkFileChooserDialog.

-- | Deprecated: (Since version 4.10)Direct use of
--   GtkFileChooserWidget is deprecated
fileChooserWidgetNew :: (HasCallStack, MonadIO m) => FileChooserAction -> m FileChooserWidget

-- | Construct a GValueConstruct with valid value for the
--   “search-mode” property. This is rarely needed directly, but
--   it is used by new.
constructFileChooserWidgetSearchMode :: (IsFileChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “search-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooserWidget #searchMode
--   
getFileChooserWidgetSearchMode :: (MonadIO m, IsFileChooserWidget o) => o -> m Bool

-- | Set the value of the “search-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooserWidget [ #searchMode := value ]
--   
setFileChooserWidgetSearchMode :: (MonadIO m, IsFileChooserWidget o) => o -> Bool -> m ()

-- | Get the value of the “show-time” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooserWidget #showTime
--   
getFileChooserWidgetShowTime :: (MonadIO m, IsFileChooserWidget o) => o -> m Bool

-- | Get the value of the “subtitle” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooserWidget #subtitle
--   
getFileChooserWidgetSubtitle :: (MonadIO m, IsFileChooserWidget o) => o -> m (Maybe Text)

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser show the user's Desktop folder
--   in the file list.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>D</kbd>.
type FileChooserWidgetDesktopFolderCallback = IO ()

-- | Connect a signal handler for the desktopFolder signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #desktopFolder callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetDesktopFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetDesktopFolderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the desktopFolder signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #desktopFolder callback
--   
onFileChooserWidgetDesktopFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetDesktopFolderCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser go to a child of the current
--   folder in the file hierarchy. The subfolder that will be used is
--   displayed in the path bar widget of the file chooser. For example, if
--   the path bar is showing "/foo/bar/baz", with bar currently displayed,
--   then this will cause the file chooser to switch to the "baz"
--   subfolder.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>Down</kbd>.
type FileChooserWidgetDownFolderCallback = IO ()

-- | Connect a signal handler for the downFolder signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fileChooserWidget #downFolder callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetDownFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetDownFolderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the downFolder signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fileChooserWidget #downFolder callback
--   
onFileChooserWidgetDownFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetDownFolderCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser show the user's home folder in
--   the file list.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>Home</kbd>.
type FileChooserWidgetHomeFolderCallback = IO ()

-- | Connect a signal handler for the homeFolder signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fileChooserWidget #homeFolder callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetHomeFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetHomeFolderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the homeFolder signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fileChooserWidget #homeFolder callback
--   
onFileChooserWidgetHomeFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetHomeFolderCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser show a "Location" prompt which
--   the user can use to manually type the name of the file he wishes to
--   select.
--   
--   The default bindings for this signal are
--   <kbd>Control</kbd>-<kbd>L</kbd> with a
--   path string of "" (the empty string). It is also bound
--   to <kbd>/</kbd> with a path string of
--   "/" (a slash): this lets you type / and immediately
--   type a path name. On Unix systems, this is bound to
--   <kbd>~</kbd> (tilde) with a path string of
--   "~" itself for access to home directories.
type FileChooserWidgetLocationPopupCallback = Text -> IO ()

-- | Connect a signal handler for the locationPopup signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #locationPopup callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetLocationPopup :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetLocationPopupCallback) -> m SignalHandlerId

-- | Connect a signal handler for the locationPopup signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #locationPopup callback
--   
onFileChooserWidgetLocationPopup :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetLocationPopupCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser show a "Location" prompt when
--   the user pastes into a GtkFileChooserWidget.
--   
--   The default binding for this signal is
--   <kbd>Control</kbd>-<kbd>V</kbd>.
type FileChooserWidgetLocationPopupOnPasteCallback = IO ()

-- | Connect a signal handler for the locationPopupOnPaste signal,
--   to be run after the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   after fileChooserWidget #locationPopupOnPaste callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetLocationPopupOnPaste :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetLocationPopupOnPasteCallback) -> m SignalHandlerId

-- | Connect a signal handler for the locationPopupOnPaste signal,
--   to be run before the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   on fileChooserWidget #locationPopupOnPaste callback
--   
onFileChooserWidgetLocationPopupOnPaste :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetLocationPopupOnPasteCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to toggle the visibility of a "Location" prompt which the
--   user can use to manually type the name of the file he wishes to
--   select.
--   
--   The default binding for this signal is
--   <kbd>Control</kbd>-<kbd>L</kbd>.
type FileChooserWidgetLocationTogglePopupCallback = IO ()

-- | Connect a signal handler for the locationTogglePopup signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #locationTogglePopup callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetLocationTogglePopup :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetLocationTogglePopupCallback) -> m SignalHandlerId

-- | Connect a signal handler for the locationTogglePopup signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #locationTogglePopup callback
--   
onFileChooserWidgetLocationTogglePopup :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetLocationTogglePopupCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to move the focus to the places sidebar.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>P</kbd>.
type FileChooserWidgetPlacesShortcutCallback = IO ()

-- | Connect a signal handler for the placesShortcut signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #placesShortcut callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetPlacesShortcut :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetPlacesShortcutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the placesShortcut signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #placesShortcut callback
--   
onFileChooserWidgetPlacesShortcut :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetPlacesShortcutCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser switch to the bookmark specified
--   in the bookmarkIndex parameter. For example, if you
--   have three bookmarks, you can pass 0, 1, 2 to this signal to switch to
--   each of them, respectively.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>1</kbd>,
--   <kbd>Alt</kbd>-<kbd>2</kbd>, etc. until
--   <kbd>Alt</kbd>-<kbd>0</kbd>. Note that in the
--   default binding, that
--   <kbd>Alt</kbd>-<kbd>1</kbd> is actually
--   defined to switch to the bookmark at index 0, and so on successively.
type FileChooserWidgetQuickBookmarkCallback = Int32 -> IO ()

-- | Connect a signal handler for the quickBookmark signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #quickBookmark callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetQuickBookmark :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetQuickBookmarkCallback) -> m SignalHandlerId

-- | Connect a signal handler for the quickBookmark signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #quickBookmark callback
--   
onFileChooserWidgetQuickBookmark :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetQuickBookmarkCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser show the Recent location.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>R</kbd>.
type FileChooserWidgetRecentShortcutCallback = IO ()

-- | Connect a signal handler for the recentShortcut signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #recentShortcut callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetRecentShortcut :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetRecentShortcutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the recentShortcut signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #recentShortcut callback
--   
onFileChooserWidgetRecentShortcut :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetRecentShortcutCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser show the search entry.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>S</kbd>.
type FileChooserWidgetSearchShortcutCallback = IO ()

-- | Connect a signal handler for the searchShortcut signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fileChooserWidget #searchShortcut callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetSearchShortcut :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetSearchShortcutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the searchShortcut signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fileChooserWidget #searchShortcut callback
--   
onFileChooserWidgetSearchShortcut :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetSearchShortcutCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser display hidden files.
--   
--   The default binding for this signal is
--   <kbd>Control</kbd>-<kbd>H</kbd>.
type FileChooserWidgetShowHiddenCallback = IO ()

-- | Connect a signal handler for the showHidden signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fileChooserWidget #showHidden callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetShowHidden :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetShowHiddenCallback) -> m SignalHandlerId

-- | Connect a signal handler for the showHidden signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fileChooserWidget #showHidden callback
--   
onFileChooserWidgetShowHidden :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetShowHiddenCallback) -> m SignalHandlerId

-- | Emitted when the user asks for it.
--   
--   This is a keybinding signal.
--   
--   This is used to make the file chooser go to the parent of the current
--   folder in the file hierarchy.
--   
--   The default binding for this signal is
--   <kbd>Alt</kbd>-<kbd>Up</kbd>.
type FileChooserWidgetUpFolderCallback = IO ()

-- | Connect a signal handler for the upFolder signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after fileChooserWidget #upFolder callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFileChooserWidgetUpFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetUpFolderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the upFolder signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on fileChooserWidget #upFolder callback
--   
onFileChooserWidgetUpFolder :: (IsFileChooserWidget a, MonadIO m) => a -> ((?self :: a) => FileChooserWidgetUpFolderCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.FileChooserWidget.FileChooserWidget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FileChooserWidget.FileChooserWidget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FileChooserWidget.FileChooserWidget
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FileChooserWidget.FileChooserWidget o) => GI.Gtk.Objects.FileChooserWidget.IsFileChooserWidget o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FileChooserWidget.FileChooserWidget)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FileChooserWidget.FileChooserWidget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FileChooserWidget.FileChooserWidget

-- | GtkFileChooserNative is an abstraction of a dialog suitable
--   for use with “File Open” or “File Save as” commands.
--   
--   By default, this just uses a GtkFileChooserDialog to
--   implement the actual dialog. However, on some platforms, such as
--   Windows and macOS, the native platform file chooser is used instead.
--   When the application is running in a sandboxed environment without
--   direct filesystem access (such as Flatpak),
--   GtkFileChooserNative may call the proper APIs (portals) to
--   let the user choose a file and make it available to the application.
--   
--   While the API of GtkFileChooserNative closely mirrors
--   GtkFileChooserDialog, the main difference is that there is no
--   access to any GtkWindow or GtkWidget for the dialog.
--   This is required, as there may not be one in the case of a platform
--   native dialog.
--   
--   Showing, hiding and running the dialog is handled by the
--   NativeDialog functions.
--   
--   Note that unlike GtkFileChooserDialog,
--   GtkFileChooserNative objects are not toplevel widgets, and
--   GTK does not keep them alive. It is your responsibility to keep a
--   reference until you are done with the object.
--   
--   
Typical usage
--   
--   In the simplest of cases, you can the following code to use
--   GtkFileChooserNative to select a file for opening:
--   
--   
c code
--   
--   
--   static void
--   on_response (GtkNativeDialog *native,
--                int              response)
--   {
--     if (response == GTK_RESPONSE_ACCEPT)
--       {
--         GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
--         GFile *file = gtk_file_chooser_get_file (chooser);
--   
--         open_file (file);
--   
--         g_object_unref (file);
--       }
--   
--     g_object_unref (native);
--   }
--   
--     // ...
--     GtkFileChooserNative *native;
--     GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
--   
--     native = gtk_file_chooser_native_new ("Open File",
--                                           parent_window,
--                                           action,
--                                           "_Open",
--                                           "_Cancel");
--   
--     g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
--     gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
--   
--   
--   To use a GtkFileChooserNative for saving, you can use this:
--   
--   
c code
--   
--   
--   static void
--   on_response (GtkNativeDialog *native,
--                int              response)
--   {
--     if (response == GTK_RESPONSE_ACCEPT)
--       {
--         GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
--         GFile *file = gtk_file_chooser_get_file (chooser);
--   
--         save_to_file (file);
--   
--         g_object_unref (file);
--       }
--   
--     g_object_unref (native);
--   }
--   
--     // ...
--     GtkFileChooserNative *native;
--     GtkFileChooser *chooser;
--     GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
--   
--     native = gtk_file_chooser_native_new ("Save File",
--                                           parent_window,
--                                           action,
--                                           "_Save",
--                                           "_Cancel");
--     chooser = GTK_FILE_CHOOSER (native);
--   
--     if (user_edited_a_new_document)
--       gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
--     else
--       gtk_file_chooser_set_file (chooser, existing_file, NULL);
--   
--     g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
--     gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
--   
--   
--   For more information on how to best set up a file dialog, see the
--   FileChooserDialog documentation.
--   
--   
Response Codes
--   
--   GtkFileChooserNative inherits from NativeDialog, which
--   means it will return ResponseTypeAccept if the user accepted,
--   and ResponseTypeCancel if he pressed cancel. It can also return
--   ResponseTypeDeleteEvent if the window was unexpectedly closed.
--   
--   
Differences from GtkFileChooserDialog
--   
--   There are a few things in the FileChooser interface that are
--   not possible to use with GtkFileChooserNative, as such use
--   would prohibit the use of a native dialog.
--   
--   No operations that change the dialog work while the dialog is visible.
--   Set all the properties that are required before showing the dialog.
--   
--   
Win32 details
--   
--   On windows the IFileDialog implementation (added in Windows
--   Vista) is used. It supports many of the features that
--   GtkFileChooser has, but there are some things it does not
--   handle:
--   
--   
--   
- Any FileFilter added using a mimetype
--   
--   
--   If any of these features are used the regular
--   GtkFileChooserDialog will be used in place of the native one.
--   
--   
Portal details
--   
--   When the org.freedesktop.portal.FileChooser portal is
--   available on the session bus, it is used to bring up an out-of-process
--   file chooser. Depending on the kind of session the application is
--   running in, this may or may not be a GTK file chooser.
--   
--   
macOS details
--   
--   On macOS the NSSavePanel and NSOpenPanel classes are
--   used to provide native file chooser dialogs. Some features provided by
--   GtkFileChooser are not supported:
--   
--   
--   
- Shortcut folders.
--   
module GI.Gtk.Objects.FileChooserNative

-- | Memory-managed wrapper type.
newtype FileChooserNative
FileChooserNative :: ManagedPtr FileChooserNative -> FileChooserNative

-- | Type class for types which can be safely cast to
--   FileChooserNative, for instance with
--   toFileChooserNative.
class (GObject o, IsDescendantOf FileChooserNative o) => IsFileChooserNative o

-- | Cast to FileChooserNative, for types for which this is known to
--   be safe. For general casts, use castTo.
toFileChooserNative :: (MonadIO m, IsFileChooserNative o) => o -> m FileChooserNative

-- | Retrieves the custom label text for the accept button.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserNativeGetAcceptLabel :: (HasCallStack, MonadIO m, IsFileChooserNative a) => a -> m (Maybe Text)

-- | Retrieves the custom label text for the cancel button.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserNativeGetCancelLabel :: (HasCallStack, MonadIO m, IsFileChooserNative a) => a -> m (Maybe Text)

-- | Creates a new GtkFileChooserNative.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserNativeNew :: (HasCallStack, MonadIO m, IsWindow a) => Maybe Text -> Maybe a -> FileChooserAction -> Maybe Text -> Maybe Text -> m FileChooserNative

-- | Sets the custom label text for the accept button.
--   
--   If characters in label are preceded by an underscore,
--   they are underlined. If you need a literal underscore character in a
--   label, use “__” (two underscores). The first underlined character
--   represents a keyboard accelerator called a mnemonic.
--   
--   Pressing Alt and that key should activate the button.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserNativeSetAcceptLabel :: (HasCallStack, MonadIO m, IsFileChooserNative a) => a -> Maybe Text -> m ()

-- | Sets the custom label text for the cancel button.
--   
--   If characters in label are preceded by an underscore,
--   they are underlined. If you need a literal underscore character in a
--   label, use “__” (two underscores). The first underlined character
--   represents a keyboard accelerator called a mnemonic.
--   
--   Pressing Alt and that key should activate the button.

-- | Deprecated: (Since version 4.10)Use FileDialog instead
fileChooserNativeSetCancelLabel :: (HasCallStack, MonadIO m, IsFileChooserNative a) => a -> Maybe Text -> m ()

-- | Set the value of the “accept-label” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #acceptLabel
--   
clearFileChooserNativeAcceptLabel :: (MonadIO m, IsFileChooserNative o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accept-label” property. This is rarely needed directly, but
--   it is used by new.
constructFileChooserNativeAcceptLabel :: (IsFileChooserNative o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “accept-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooserNative #acceptLabel
--   
getFileChooserNativeAcceptLabel :: (MonadIO m, IsFileChooserNative o) => o -> m (Maybe Text)

-- | Set the value of the “accept-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooserNative [ #acceptLabel := value ]
--   
setFileChooserNativeAcceptLabel :: (MonadIO m, IsFileChooserNative o) => o -> Text -> m ()

-- | Set the value of the “cancel-label” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #cancelLabel
--   
clearFileChooserNativeCancelLabel :: (MonadIO m, IsFileChooserNative o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cancel-label” property. This is rarely needed directly, but
--   it is used by new.
constructFileChooserNativeCancelLabel :: (IsFileChooserNative o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “cancel-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fileChooserNative #cancelLabel
--   
getFileChooserNativeCancelLabel :: (MonadIO m, IsFileChooserNative o) => o -> m (Maybe Text)

-- | Set the value of the “cancel-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fileChooserNative [ #cancelLabel := value ]
--   
setFileChooserNativeCancelLabel :: (MonadIO m, IsFileChooserNative o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.FileChooserNative.FileChooserNative
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FileChooserNative.FileChooserNative
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FileChooserNative.FileChooserNative
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FileChooserNative.FileChooserNative o) => GI.Gtk.Objects.FileChooserNative.IsFileChooserNative o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FileChooserNative.FileChooserNative)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FileChooserNative.FileChooserNative
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FileChooserNative.FileChooserNative

-- | GtkFileChooserDialog is a dialog suitable for use with “File
--   Open” or “File Save” commands.
--   
--   
--   This widget works by putting a FileChooserWidget inside a
--   Dialog. It exposes the FileChooser interface, so you can
--   use all of the FileChooser functions on the file chooser dialog
--   as well as those for Dialog.
--   
--   Note that GtkFileChooserDialog does not have any methods of
--   its own. Instead, you should use the functions that work on a
--   FileChooser.
--   
--   If you want to integrate well with the platform you should use the
--   FileChooserNative API, which will use a platform-specific
--   dialog if available and fall back to GtkFileChooserDialog
--   otherwise.
--   
--   
Typical usage
--   
--   In the simplest of cases, you can the following code to use
--   GtkFileChooserDialog to select a file for opening:
--   
--   
c code
--   
--   
--   static void
--   on_open_response (GtkDialog *dialog,
--                     int        response)
--   {
--     if (response == GTK_RESPONSE_ACCEPT)
--       {
--         GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
--   
--         g_autoptr(GFile) file = gtk_file_chooser_get_file (chooser);
--   
--         open_file (file);
--       }
--   
--     gtk_window_destroy (GTK_WINDOW (dialog));
--   }
--   
--     // ...
--     GtkWidget *dialog;
--     GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
--   
--     dialog = gtk_file_chooser_dialog_new ("Open File",
--                                           parent_window,
--                                           action,
--                                           _("_Cancel"),
--                                           GTK_RESPONSE_CANCEL,
--                                           _("_Open"),
--                                           GTK_RESPONSE_ACCEPT,
--                                           NULL);
--   
--     gtk_window_present (GTK_WINDOW (dialog));
--   
--     g_signal_connect (dialog, "response",
--                       G_CALLBACK (on_open_response),
--                       NULL);
--   
--   
--   To use a dialog for saving, you can use this:
--   
--   
c code
--   
--   
--   static void
--   on_save_response (GtkDialog *dialog,
--                     int        response)
--   {
--     if (response == GTK_RESPONSE_ACCEPT)
--       {
--         GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
--   
--         g_autoptr(GFile) file = gtk_file_chooser_get_file (chooser);
--   
--         save_to_file (file);
--       }
--   
--     gtk_window_destroy (GTK_WINDOW (dialog));
--   }
--   
--     // ...
--     GtkWidget *dialog;
--     GtkFileChooser *chooser;
--     GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
--   
--     dialog = gtk_file_chooser_dialog_new ("Save File",
--                                           parent_window,
--                                           action,
--                                           _("_Cancel"),
--                                           GTK_RESPONSE_CANCEL,
--                                           _("_Save"),
--                                           GTK_RESPONSE_ACCEPT,
--                                           NULL);
--     chooser = GTK_FILE_CHOOSER (dialog);
--   
--     if (user_edited_a_new_document)
--       gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
--     else
--       gtk_file_chooser_set_file (chooser, existing_filename);
--   
--     gtk_window_present (GTK_WINDOW (dialog));
--   
--     g_signal_connect (dialog, "response",
--                       G_CALLBACK (on_save_response),
--                       NULL);
--   
--   
--   
Setting up a file chooser dialog
--   
--   There are various cases in which you may need to use a
--   GtkFileChooserDialog:
--   
--   
--   
- To select a file for opening, use
--   FileChooserActionOpen.
--   
- To save a file for the first time, use
--   FileChooserActionSave, and suggest a name such as “Untitled”
--   with fileChooserSetCurrentName.
--   
- To save a file under a different name, use
--   FileChooserActionSave, and set the existing file with
--   fileChooserSetFile.
--   
- To choose a folder instead of a file, use
--   FileChooserActionSelectFolder.
--   
--   
--   In general, you should only cause the file chooser to show a specific
--   folder when it is appropriate to use fileChooserSetFile, i.e.
--   when you are doing a “Save As” command and you already have a file
--   saved somewhere.
--   
--   
Response Codes
--   
--   GtkFileChooserDialog inherits from Dialog, so buttons
--   that go in its action area have response codes such as
--   ResponseTypeAccept and ResponseTypeCancel. For example,
--   you could call FileChooserDialog.new() as
--   follows:
--   
--   
c code
--   
--   
--   GtkWidget *dialog;
--   GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
--   
--   dialog = gtk_file_chooser_dialog_new ("Open File",
--                                         parent_window,
--                                         action,
--                                         _("_Cancel"),
--                                         GTK_RESPONSE_CANCEL,
--                                         _("_Open"),
--                                         GTK_RESPONSE_ACCEPT,
--                                         NULL);
--   
--   
--   This will create buttons for “Cancel” and “Open” that use predefined
--   response identifiers from ResponseType. For most dialog boxes
--   you can use your own custom response codes rather than the ones in
--   ResponseType, but GtkFileChooserDialog assumes that
--   its “accept”-type action, e.g. an “Open” or “Save” button, will have
--   one of the following response codes:
--   
--   
--   
- ResponseTypeAccept
--   
- ResponseTypeOk
--   
- ResponseTypeYes
--   
- ResponseTypeApply
--   
--   
--   This is because GtkFileChooserDialog must intercept responses
--   and switch to folders if appropriate, rather than letting the dialog
--   terminate — the implementation uses these known response codes to know
--   which responses can be blocked if appropriate.
--   
--   To summarize, make sure you use a predefined response code when you
--   use GtkFileChooserDialog to ensure proper operation.
--   
--   
CSS nodes
--   
--   GtkFileChooserDialog has a single CSS node with the name
--   window and style class .filechooser.
module GI.Gtk.Objects.FileChooserDialog

-- | Memory-managed wrapper type.
newtype FileChooserDialog
FileChooserDialog :: ManagedPtr FileChooserDialog -> FileChooserDialog

-- | Type class for types which can be safely cast to
--   FileChooserDialog, for instance with
--   toFileChooserDialog.
class (GObject o, IsDescendantOf FileChooserDialog o) => IsFileChooserDialog o

-- | Cast to FileChooserDialog, for types for which this is known to
--   be safe. For general casts, use castTo.
toFileChooserDialog :: (MonadIO m, IsFileChooserDialog o) => o -> m FileChooserDialog
instance GHC.Classes.Eq GI.Gtk.Objects.FileChooserDialog.FileChooserDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.FileChooserDialog.FileChooserDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.FileChooserDialog.FileChooserDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.FileChooserDialog.FileChooserDialog o) => GI.Gtk.Objects.FileChooserDialog.IsFileChooserDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.FileChooserDialog.FileChooserDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.FileChooserDialog.FileChooserDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.FileChooserDialog.FileChooserDialog

-- | Provides a way to describe references to values.
--   
--   An important aspect of expressions is that the value can be obtained
--   from a source that is several steps away. For example, an expression
--   may describe ‘the value of property A of object1, which is
--   itself the value of a property of object2’. And
--   object1 may not even exist yet at the time that the
--   expression is created. This is contrast to GObject property
--   bindings, which can only create direct connections between the
--   properties of two objects that must both exist for the duration of the
--   binding.
--   
--   An expression needs to be "evaluated" to obtain the value that it
--   currently refers to. An evaluation always happens in the context of a
--   current object called this (it mirrors the behavior of
--   object-oriented languages), which may or may not influence the result
--   of the evaluation. Use expressionEvaluate for evaluating an
--   expression.
--   
--   Various methods for defining expressions exist, from simple constants
--   via ConstantExpression.new() to looking up
--   properties in a GObject (even recursively) via
--   propertyExpressionNew or providing custom functions to
--   transform and combine expressions via closureExpressionNew.
--   
--   Here is an example of a complex expression:
--   
--   
c code
--   
--   
--   color_expr = gtk_property_expression_new (GTK_TYPE_LIST_ITEM,
--                                             NULL, "item");
--   expression = gtk_property_expression_new (GTK_TYPE_COLOR,
--                                             color_expr, "name");
--   
--   
--   when evaluated with this being a GtkListItem, it
--   will obtain the "item" property from the GtkListItem, and
--   then obtain the "name" property from the resulting object (which is
--   assumed to be of type GTK_TYPE_COLOR).
--   
--   A more concise way to describe this would be
--   
--   
--   this->item->name
--   
--   
--   The most likely place where you will encounter expressions is in the
--   context of list models and list widgets using them. For example,
--   GtkDropDown is evaluating a GtkExpression to obtain
--   strings from the items in its model that it can then use to match
--   against the contents of its search entry. GtkStringFilter is
--   using a GtkExpression for similar reasons.
--   
--   By default, expressions are not paying attention to changes and
--   evaluation is just a snapshot of the current state at a given time. To
--   get informed about changes, an expression needs to be "watched" via a
--   ExpressionWatch, which will cause a callback to be called
--   whenever the value of the expression may have changed;
--   expressionWatch starts watching an expression, and
--   expressionWatchUnwatch stops.
--   
--   Watches can be created for automatically updating the property of an
--   object, similar to GObject's GBinding mechanism, by using
--   expressionBind.
--   
--   
GtkExpression in GObject properties
--   
--   In order to use a GtkExpression as a GObject
--   property, you must use the paramSpecExpression when creating a
--   GParamSpec to install in the GObject class being
--   defined; for instance:
--   
--   
c code
--   
--   
--   obj_props[PROP_EXPRESSION] =
--     gtk_param_spec_expression ("expression",
--                                "Expression",
--                                "The expression used by the widget",
--                                G_PARAM_READWRITE |
--                                G_PARAM_STATIC_STRINGS |
--                                G_PARAM_EXPLICIT_NOTIFY);
--   
--   
--   When implementing the GObjectClass.set_property and
--   GObjectClass.get_property virtual functions, you must use
--   valueGetExpression, to retrieve the stored
--   GtkExpression from the GValue container, and
--   valueSetExpression, to store the GtkExpression into
--   the GValue; for instance:
--   
--   
c code
--   
--   
--   // in set_property()...
--   case PROP_EXPRESSION:
--     foo_widget_set_expression (foo, gtk_value_get_expression (value));
--     break;
--   
--   // in get_property()...
--   case PROP_EXPRESSION:
--     gtk_value_set_expression (value, foo->expression);
--     break;
--   
--   
--   
GtkExpression in .ui files
--   
--   GtkBuilder has support for creating expressions. The syntax
--   here can be used where a GtkExpression object is needed like
--   in a <property> tag for an expression property, or in a
--   <binding name="property"> tag to bind a property to an
--   expression.
--   
--   To create a property expression, use the <lookup>
--   element. It can have a type attribute to specify the object
--   type, and a name attribute to specify the property to look
--   up. The content of <lookup> can either be a string that
--   specifies the name of the object to use, an element specifying an
--   expression to provide an object, or empty to use the this
--   object.
--   
--   Example:
--   
--   
xml code
--   
--   
--   <lookup name='search'>string_filter</lookup>
--   
--   
--   Since the <lookup> element creates an expression and
--   its element content can itself be an expression, this means that
--   <lookup> tags can also be nested. This is a common
--   idiom when dealing with GtkListItems. See
--   BuilderListItemFactory for an example of this technique.
--   
--   To create a constant expression, use the <constant>
--   element. If the type attribute is specified, the element content is
--   interpreted as a value of that type, and the initial attribute can be
--   specified to get the initial value for that type. Otherwise, it is
--   assumed to be an object. For instance:
--   
--   
xml code
--   
--   
--   <constant>string_filter</constant>
--   <constant type='gchararray'>Hello, world</constant>
--   <constant type='gchararray' initial='true' /> <!-- NULL -->
--   
--   
--   String (type='gchararray') constants can be marked for
--   translation with the translatable= attribute, and will then
--   be looked up in the Builder:translationDomain when the
--   expression is constructed.
--   
--   
xml code
--   
--   
--   <constant type='gchararray' translatable='yes'>I'm translatable!</constant>
--   
--   
--   As with other translatable strings in
--   [typegtk.Builder], constants can also have a context
--   and/or translation comment:
--   
--   
xml code
--   
--   
--   <constant type='gchararray'
--             translatable='yes'
--             context='example'
--             comments='A sample string'>I'm translatable!</constant>
--   
--   
--   To create a closure expression, use the <closure>
--   element. The function attribute specifies what function to
--   use for the closure, and the type attribute specifies its
--   return type. The content of the element contains the expressions for
--   the parameters. For instance:
--   
--   
xml code
--   
--   
--   <closure type='gchararray' function='combine_args_somehow'>
--     <constant type='gchararray'>File size:</constant>
--     <lookup type='GFile' name='size'>myfile</lookup>
--   </closure>
--   
--   
--   If an expression can fail, a <try> element can be used
--   to provide fallbacks. The expressions are tried from top to bottom
--   until one of them succeeds. If none of the expressions succeed, the
--   expression fails as normal:
--   
--   
xml code
--   
--   
--   <try>
--     <lookup type='GtkWindow' name='title'>
--       <lookup type='GtkLabel' name='root'></lookup>
--     </lookup>
--     <constant type='gchararray'>Hello World</constant>
--   </try>
--   
--   
--   To create a property binding, use the <binding> element
--   in place of where a <property> tag would ordinarily be
--   used. The name and object attributes are supported.
--   The name attribute is required, and pertains to the
--   applicable property name. The object attribute is optional.
--   If provided, it will use the specified object as the this
--   object when the expression is evaluated. Here is an example in which
--   the label property of a GtkLabel is bound to the
--   string property of another arbitrary object:
--   
--   
xml code
--   
--   
--   <object class='GtkLabel'>
--     <binding name='label'>
--       <lookup name='string'>some_other_object</lookup>
--     </binding>
--   </object>
--   
module GI.Gtk.Objects.Expression

-- | Memory-managed wrapper type.
newtype Expression
Expression :: ManagedPtr Expression -> Expression

-- | Type class for types which can be safely cast to Expression,
--   for instance with toExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf Expression o) => IsExpression o

-- | Cast to Expression, for types for which this is known to be
--   safe. For general casts, use castTo.
toExpression :: (MonadIO m, IsExpression o) => o -> m Expression

-- | Bind target's property named property to
--   self.
--   
--   The value that self evaluates to is set via
--   g_object_set() on target. This is repeated whenever
--   self changes to ensure that the object's property stays
--   synchronized with self.
--   
--   If self's evaluation fails, target's
--   property is not updated. Use a TryExpression to
--   provide a fallback for this case.
--   
--   Note that this function takes ownership of self. If you want
--   to keep it around, you should expressionRef it beforehand.
expressionBind :: (HasCallStack, MonadIO m, IsExpression a, IsObject b, IsObject c) => a -> b -> Text -> Maybe c -> m ExpressionWatch

-- | Evaluates the given expression and on success stores the result in
--   value.
--   
--   The GType of value will be the type given by
--   expressionGetValueType.
--   
--   It is possible that expressions cannot be evaluated - for example when
--   the expression references objects that have been destroyed or set to
--   NULL. In that case value will remain empty and
--   FALSE will be returned.
expressionEvaluate :: (HasCallStack, MonadIO m, IsExpression a, IsObject b) => a -> Maybe b -> GValue -> m Bool

-- | Gets the GType that this expression evaluates to.
--   
--   This type is constant and will not change over the lifetime of this
--   expression.
expressionGetValueType :: (HasCallStack, MonadIO m, IsExpression a) => a -> m GType

-- | Checks if the expression is static.
--   
--   A static expression will never change its result when
--   expressionEvaluate is called on it with the same arguments.
--   
--   That means a call to expressionWatch is not necessary because
--   it will never trigger a notify.
expressionIsStatic :: (HasCallStack, MonadIO m, IsExpression a) => a -> m Bool

-- | Acquires a reference on the given GtkExpression.
expressionRef :: (HasCallStack, MonadIO m, IsExpression a) => a -> m Expression

-- | Releases a reference on the given GtkExpression.
--   
--   If the reference was the last, the resources associated to the
--   self are freed.
expressionUnref :: (HasCallStack, MonadIO m, IsExpression a) => a -> m ()

-- | Watch the given expression for changes.
--   
--   The notify function will be called whenever the
--   evaluation of self may have changed.
--   
--   GTK cannot guarantee that the evaluation did indeed change when the
--   notify gets invoked, but it guarantees the opposite:
--   When it did in fact change, the notify will be
--   invoked.
expressionWatch :: (HasCallStack, MonadIO m, IsExpression a, IsObject b) => a -> Maybe b -> ExpressionNotify -> m ExpressionWatch
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.Expression.Expression
instance GHC.Classes.Eq GI.Gtk.Objects.Expression.Expression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Expression.Expression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Expression.Expression o) => GI.Gtk.Objects.Expression.IsExpression o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Expression.Expression)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Expression.Expression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Expression.Expression

-- | Allows the user to reveal or conceal a child widget.
--   
--   <picture> <source srcset="expander-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkExpander" src="expander.png"> </picture>
--   
--   This is similar to the triangles used in a GtkTreeView.
--   
--   Normally you use an expander as you would use a frame; you create the
--   child widget and use expanderSetChild to add it to the
--   expander. When the expander is toggled, it will take care of showing
--   and hiding the child automatically.
--   
--   
Special Usage
--   
--   There are situations in which you may prefer to show and hide the
--   expanded widget yourself, such as when you want to actually create the
--   widget at expansion time. In this case, create a GtkExpander
--   but do not add a child to it. The expander widget has an
--   Expander:expanded property which can be used to monitor its
--   expansion state. You should watch this property with a signal
--   connection as follows:
--   
--   
c code
--   
--   
--   static void
--   expander_callback (GObject    *object,
--                      GParamSpec *param_spec,
--                      gpointer    user_data)
--   {
--     GtkExpander *expander;
--   
--     expander = GTK_EXPANDER (object);
--   
--     if (gtk_expander_get_expanded (expander))
--       {
--         // Show or create widgets
--       }
--     else
--       {
--         // Hide or destroy widgets
--       }
--   }
--   
--   static void
--   create_expander (void)
--   {
--     GtkWidget *expander = gtk_expander_new_with_mnemonic ("_More Options");
--     g_signal_connect (expander, "notify::expanded",
--                       G_CALLBACK (expander_callback), NULL);
--   
--     // ...
--   }
--   
--   
--   
GtkExpander as GtkBuildable
--   
--   An example of a UI definition fragment with GtkExpander:
--   
--   
xml code
--   
--   
--   <object class="GtkExpander">
--     <property name="label-widget">
--       <object class="GtkLabel" id="expander-label"/>
--     </property>
--     <property name="child">
--       <object class="GtkEntry" id="expander-content"/>
--     </property>
--   </object>
--   
--   
--   
CSS nodes
--   
--   
--   expander-widget
--   ╰── box
--       ├── title
--       │   ├── expander
--       │   ╰── <label widget>
--       ╰── <child>
--   
--   
--   GtkExpander has a main node expander-widget, and
--   subnode box containing the title and child widget. The box
--   subnode title contains node expander, i.e. the
--   expand/collapse arrow; then the label widget if any. The arrow of an
--   expander that is showing its child gets the :checked
--   pseudoclass set on it.
--   
--   
Accessibility
--   
--   GtkExpander uses the AccessibleRoleButton role.
module GI.Gtk.Objects.Expander

-- | Memory-managed wrapper type.
newtype Expander
Expander :: ManagedPtr Expander -> Expander

-- | Type class for types which can be safely cast to Expander, for
--   instance with toExpander.
class (GObject o, IsDescendantOf Expander o) => IsExpander o

-- | Cast to Expander, for types for which this is known to be safe.
--   For general casts, use castTo.
toExpander :: (MonadIO m, IsExpander o) => o -> m Expander

-- | Gets the child widget of expander.
expanderGetChild :: (HasCallStack, MonadIO m, IsExpander a) => a -> m (Maybe Widget)

-- | Queries a GtkExpander and returns its current state.
--   
--   Returns True if the child widget is revealed.
expanderGetExpanded :: (HasCallStack, MonadIO m, IsExpander a) => a -> m Bool

-- | Fetches the text from a label widget.
--   
--   This is including any embedded underlines indicating mnemonics and
--   Pango markup, as set by expanderSetLabel. If the label text has
--   not been set the return value will be Nothing. This will be the
--   case if you create an empty button with buttonNew to use as a
--   container.
expanderGetLabel :: (HasCallStack, MonadIO m, IsExpander a) => a -> m (Maybe Text)

-- | Retrieves the label widget for the frame.
expanderGetLabelWidget :: (HasCallStack, MonadIO m, IsExpander a) => a -> m (Maybe Widget)

-- | Returns whether the expander will resize the toplevel widget
--   containing the expander upon resizing and collapsing.
expanderGetResizeToplevel :: (HasCallStack, MonadIO m, IsExpander a) => a -> m Bool

-- | Returns whether the label’s text is interpreted as Pango markup.
expanderGetUseMarkup :: (HasCallStack, MonadIO m, IsExpander a) => a -> m Bool

-- | Returns whether an underline in the text indicates a mnemonic.
expanderGetUseUnderline :: (HasCallStack, MonadIO m, IsExpander a) => a -> m Bool

-- | Creates a new expander using label as the text of the
--   label.
expanderNew :: (HasCallStack, MonadIO m) => Maybe Text -> m Expander

-- | Creates a new expander using label as the text of the
--   label.
--   
--   If characters in label are preceded by an underscore,
--   they are underlined. If you need a literal underscore character in a
--   label, use “__” (two underscores). The first underlined character
--   represents a keyboard accelerator called a mnemonic.
--   
--   Pressing Alt and that key activates the button.
expanderNewWithMnemonic :: (HasCallStack, MonadIO m) => Maybe Text -> m Expander

-- | Sets the child widget of expander.
expanderSetChild :: (HasCallStack, MonadIO m, IsExpander a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the state of the expander.
--   
--   Set to True, if you want the child widget to be revealed, and
--   False if you want the child widget to be hidden.
expanderSetExpanded :: (HasCallStack, MonadIO m, IsExpander a) => a -> Bool -> m ()

-- | Sets the text of the label of the expander to label.
--   
--   This will also clear any previously set labels.
expanderSetLabel :: (HasCallStack, MonadIO m, IsExpander a) => a -> Maybe Text -> m ()

-- | Set the label widget for the expander.
--   
--   This is the widget that will appear embedded alongside the expander
--   arrow.
expanderSetLabelWidget :: (HasCallStack, MonadIO m, IsExpander a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the expander will resize the toplevel widget containing
--   the expander upon resizing and collapsing.
expanderSetResizeToplevel :: (HasCallStack, MonadIO m, IsExpander a) => a -> Bool -> m ()

-- | Sets whether the text of the label contains Pango markup.
expanderSetUseMarkup :: (HasCallStack, MonadIO m, IsExpander a) => a -> Bool -> m ()

-- | If true, an underline in the text indicates a mnemonic.
expanderSetUseUnderline :: (HasCallStack, MonadIO m, IsExpander a) => a -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearExpanderChild :: (MonadIO m, IsExpander o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructExpanderChild :: (IsExpander o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #child
--   
getExpanderChild :: (MonadIO m, IsExpander o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #child := value ]
--   
setExpanderChild :: (MonadIO m, IsExpander o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expanded” property. This is rarely needed directly, but it
--   is used by new.
constructExpanderExpanded :: (IsExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “expanded” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #expanded
--   
getExpanderExpanded :: (MonadIO m, IsExpander o) => o -> m Bool

-- | Set the value of the “expanded” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #expanded := value ]
--   
setExpanderExpanded :: (MonadIO m, IsExpander o) => o -> Bool -> m ()

-- | Set the value of the “label” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #label
--   
clearExpanderLabel :: (MonadIO m, IsExpander o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label” property. This is rarely needed directly, but it is
--   used by new.
constructExpanderLabel :: (IsExpander o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #label
--   
getExpanderLabel :: (MonadIO m, IsExpander o) => o -> m (Maybe Text)

-- | Set the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #label := value ]
--   
setExpanderLabel :: (MonadIO m, IsExpander o) => o -> Text -> m ()

-- | Set the value of the “label-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #labelWidget
--   
clearExpanderLabelWidget :: (MonadIO m, IsExpander o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label-widget” property. This is rarely needed directly, but
--   it is used by new.
constructExpanderLabelWidget :: (IsExpander o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “label-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #labelWidget
--   
getExpanderLabelWidget :: (MonadIO m, IsExpander o) => o -> m (Maybe Widget)

-- | Set the value of the “label-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #labelWidget := value ]
--   
setExpanderLabelWidget :: (MonadIO m, IsExpander o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resize-toplevel” property. This is rarely needed directly,
--   but it is used by new.
constructExpanderResizeToplevel :: (IsExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “resize-toplevel” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #resizeToplevel
--   
getExpanderResizeToplevel :: (MonadIO m, IsExpander o) => o -> m Bool

-- | Set the value of the “resize-toplevel” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #resizeToplevel := value ]
--   
setExpanderResizeToplevel :: (MonadIO m, IsExpander o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-markup” property. This is rarely needed directly, but it
--   is used by new.
constructExpanderUseMarkup :: (IsExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #useMarkup
--   
getExpanderUseMarkup :: (MonadIO m, IsExpander o) => o -> m Bool

-- | Set the value of the “use-markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #useMarkup := value ]
--   
setExpanderUseMarkup :: (MonadIO m, IsExpander o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-underline” property. This is rarely needed directly, but
--   it is used by new.
constructExpanderUseUnderline :: (IsExpander o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get expander #useUnderline
--   
getExpanderUseUnderline :: (MonadIO m, IsExpander o) => o -> m Bool

-- | Set the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set expander [ #useUnderline := value ]
--   
setExpanderUseUnderline :: (MonadIO m, IsExpander o) => o -> Bool -> m ()

-- | Activates the GtkExpander.
type ExpanderActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after expander #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterExpanderActivate :: (IsExpander a, MonadIO m) => a -> ((?self :: a) => ExpanderActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on expander #activate callback
--   
onExpanderActivate :: (IsExpander a, MonadIO m) => a -> ((?self :: a) => ExpanderActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Expander.Expander
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Expander.Expander
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Expander.Expander
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Expander.Expander o) => GI.Gtk.Objects.Expander.IsExpander o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Expander.Expander)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Expander.Expander
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Expander.Expander

-- | Handles scroll events.
--   
--   It is capable of handling both discrete and continuous scroll events
--   from mice or touchpads, abstracting them both with the
--   EventControllerScroll::scroll signal. Deltas in the discrete
--   case are multiples of 1.
--   
--   In the case of continuous scroll events,
--   GtkEventControllerScroll encloses all
--   EventControllerScroll::scroll emissions between two
--   EventControllerScroll::scrollBegin and
--   EventControllerScroll::scrollEnd signals.
--   
--   The behavior of the event controller can be modified by the flags
--   given at creation time, or modified at a later point through
--   eventControllerScrollSetFlags (e.g. because the scrolling
--   conditions of the widget changed).
--   
--   The controller can be set up to emit motion for either/both vertical
--   and horizontal scroll events through
--   EventControllerScrollFlagsVertical,
--   EventControllerScrollFlagsHorizontal and
--   EventControllerScrollFlagsBothAxes. If any axis is disabled,
--   the respective EventControllerScroll::scroll delta will be 0.
--   Vertical scroll events will be translated to horizontal motion for the
--   devices incapable of horizontal scrolling.
--   
--   The event controller can also be forced to emit discrete events on all
--   devices through EventControllerScrollFlagsDiscrete. This can be
--   used to implement discrete actions triggered through scroll events
--   (e.g. switching across combobox options).
--   
--   The EventControllerScrollFlagsKinetic flag toggles the emission
--   of the EventControllerScroll::decelerate signal, emitted at the
--   end of scrolling with two X/Y velocity arguments that are consistent
--   with the motion that was received.
module GI.Gtk.Objects.EventControllerScroll

-- | Memory-managed wrapper type.
newtype EventControllerScroll
EventControllerScroll :: ManagedPtr EventControllerScroll -> EventControllerScroll

-- | Type class for types which can be safely cast to
--   EventControllerScroll, for instance with
--   toEventControllerScroll.
class (GObject o, IsDescendantOf EventControllerScroll o) => IsEventControllerScroll o

-- | Cast to EventControllerScroll, for types for which this is
--   known to be safe. For general casts, use castTo.
toEventControllerScroll :: (MonadIO m, IsEventControllerScroll o) => o -> m EventControllerScroll

-- | Gets the flags conditioning the scroll controller behavior.
eventControllerScrollGetFlags :: (HasCallStack, MonadIO m, IsEventControllerScroll a) => a -> m [EventControllerScrollFlags]

-- | Gets the scroll unit of the last EventControllerScroll::scroll
--   signal received.
--   
--   Always returns ScrollUnitWheel if the
--   EventControllerScrollFlagsDiscrete flag is set.
--   
--   Since: 4.8
eventControllerScrollGetUnit :: (HasCallStack, MonadIO m, IsEventControllerScroll a) => a -> m ScrollUnit

-- | Creates a new event controller that will handle scroll events.
eventControllerScrollNew :: (HasCallStack, MonadIO m) => [EventControllerScrollFlags] -> m EventControllerScroll

-- | Sets the flags conditioning scroll controller behavior.
eventControllerScrollSetFlags :: (HasCallStack, MonadIO m, IsEventControllerScroll a) => a -> [EventControllerScrollFlags] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “flags” property. This is rarely needed directly, but it is
--   used by new.
constructEventControllerScrollFlags :: (IsEventControllerScroll o, MonadIO m) => [EventControllerScrollFlags] -> m (GValueConstruct o)

-- | Get the value of the “flags” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventControllerScroll #flags
--   
getEventControllerScrollFlags :: (MonadIO m, IsEventControllerScroll o) => o -> m [EventControllerScrollFlags]

-- | Set the value of the “flags” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set eventControllerScroll [ #flags := value ]
--   
setEventControllerScrollFlags :: (MonadIO m, IsEventControllerScroll o) => o -> [EventControllerScrollFlags] -> m ()

-- | Emitted after scroll is finished if the
--   EventControllerScrollFlagsKinetic flag is set.
--   
--   velX and velY express the initial
--   velocity that was imprinted by the scroll events. velX
--   and velY are expressed in pixels/ms.
type EventControllerScrollDecelerateCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the decelerate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerScroll #decelerate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerScrollDecelerate :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollDecelerateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the decelerate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerScroll #decelerate callback
--   
onEventControllerScrollDecelerate :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollDecelerateCallback) -> m SignalHandlerId

-- | Signals that the widget should scroll by the amount specified by
--   dx and dy.
--   
--   For the representation unit of the deltas, see
--   eventControllerScrollGetUnit.
type EventControllerScrollScrollCallback = Double -> Double -> IO Bool

-- | Connect a signal handler for the scroll signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerScroll #scroll callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerScrollScroll :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollScrollCallback) -> m SignalHandlerId

-- | Connect a signal handler for the scroll signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerScroll #scroll callback
--   
onEventControllerScrollScroll :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollScrollCallback) -> m SignalHandlerId

-- | Signals that a new scrolling operation has begun.
--   
--   It will only be emitted on devices capable of it.
type EventControllerScrollScrollBeginCallback = IO ()

-- | Connect a signal handler for the scrollBegin signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerScroll #scrollBegin callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerScrollScrollBegin :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollScrollBeginCallback) -> m SignalHandlerId

-- | Connect a signal handler for the scrollBegin signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerScroll #scrollBegin callback
--   
onEventControllerScrollScrollBegin :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollScrollBeginCallback) -> m SignalHandlerId

-- | Signals that a scrolling operation has finished.
--   
--   It will only be emitted on devices capable of it.
type EventControllerScrollScrollEndCallback = IO ()

-- | Connect a signal handler for the scrollEnd signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerScroll #scrollEnd callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerScrollScrollEnd :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollScrollEndCallback) -> m SignalHandlerId

-- | Connect a signal handler for the scrollEnd signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerScroll #scrollEnd callback
--   
onEventControllerScrollScrollEnd :: (IsEventControllerScroll a, MonadIO m) => a -> ((?self :: a) => EventControllerScrollScrollEndCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EventControllerScroll.EventControllerScroll
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EventControllerScroll.EventControllerScroll
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EventControllerScroll.EventControllerScroll
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EventControllerScroll.EventControllerScroll o) => GI.Gtk.Objects.EventControllerScroll.IsEventControllerScroll o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EventControllerScroll.EventControllerScroll)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EventControllerScroll.EventControllerScroll
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EventControllerScroll.EventControllerScroll

-- | Tracks the pointer position.
--   
--   The event controller offers EventControllerMotion::enter and
--   EventControllerMotion::leave signals, as well as
--   EventControllerMotion:isPointer and
--   EventControllerMotion:containsPointer properties which are
--   updated to reflect changes in the pointer position as it moves over
--   the widget.
module GI.Gtk.Objects.EventControllerMotion

-- | Memory-managed wrapper type.
newtype EventControllerMotion
EventControllerMotion :: ManagedPtr EventControllerMotion -> EventControllerMotion

-- | Type class for types which can be safely cast to
--   EventControllerMotion, for instance with
--   toEventControllerMotion.
class (GObject o, IsDescendantOf EventControllerMotion o) => IsEventControllerMotion o

-- | Cast to EventControllerMotion, for types for which this is
--   known to be safe. For general casts, use castTo.
toEventControllerMotion :: (MonadIO m, IsEventControllerMotion o) => o -> m EventControllerMotion

-- | Returns if a pointer is within self or one of its
--   children.
eventControllerMotionContainsPointer :: (HasCallStack, MonadIO m, IsEventControllerMotion a) => a -> m Bool

-- | Returns if a pointer is within self, but not one of
--   its children.
eventControllerMotionIsPointer :: (HasCallStack, MonadIO m, IsEventControllerMotion a) => a -> m Bool

-- | Creates a new event controller that will handle motion events.
eventControllerMotionNew :: (HasCallStack, MonadIO m) => m EventControllerMotion

-- | Get the value of the “contains-pointer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventControllerMotion #containsPointer
--   
getEventControllerMotionContainsPointer :: (MonadIO m, IsEventControllerMotion o) => o -> m Bool

-- | Get the value of the “is-pointer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventControllerMotion #isPointer
--   
getEventControllerMotionIsPointer :: (MonadIO m, IsEventControllerMotion o) => o -> m Bool

-- | Signals that the pointer has entered the widget.
type EventControllerMotionEnterCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the enter signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerMotion #enter callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerMotionEnter :: (IsEventControllerMotion a, MonadIO m) => a -> ((?self :: a) => EventControllerMotionEnterCallback) -> m SignalHandlerId

-- | Connect a signal handler for the enter signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on eventControllerMotion #enter callback
--   
onEventControllerMotionEnter :: (IsEventControllerMotion a, MonadIO m) => a -> ((?self :: a) => EventControllerMotionEnterCallback) -> m SignalHandlerId

-- | Signals that the pointer has left the widget.
type EventControllerMotionLeaveCallback = IO ()

-- | Connect a signal handler for the leave signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerMotion #leave callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerMotionLeave :: (IsEventControllerMotion a, MonadIO m) => a -> ((?self :: a) => EventControllerMotionLeaveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the leave signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on eventControllerMotion #leave callback
--   
onEventControllerMotionLeave :: (IsEventControllerMotion a, MonadIO m) => a -> ((?self :: a) => EventControllerMotionLeaveCallback) -> m SignalHandlerId

-- | Emitted when the pointer moves inside the widget.
type EventControllerMotionMotionCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the motion signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerMotion #motion callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerMotionMotion :: (IsEventControllerMotion a, MonadIO m) => a -> ((?self :: a) => EventControllerMotionMotionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the motion signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerMotion #motion callback
--   
onEventControllerMotionMotion :: (IsEventControllerMotion a, MonadIO m) => a -> ((?self :: a) => EventControllerMotionMotionCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EventControllerMotion.EventControllerMotion
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EventControllerMotion.EventControllerMotion
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EventControllerMotion.EventControllerMotion
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EventControllerMotion.EventControllerMotion o) => GI.Gtk.Objects.EventControllerMotion.IsEventControllerMotion o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EventControllerMotion.EventControllerMotion)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EventControllerMotion.EventControllerMotion
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EventControllerMotion.EventControllerMotion

-- | Provides raw access to the event stream.
--   
--   It should only be used as a last resort if none of the other event
--   controllers or gestures do the job.
module GI.Gtk.Objects.EventControllerLegacy

-- | Memory-managed wrapper type.
newtype EventControllerLegacy
EventControllerLegacy :: ManagedPtr EventControllerLegacy -> EventControllerLegacy

-- | Type class for types which can be safely cast to
--   EventControllerLegacy, for instance with
--   toEventControllerLegacy.
class (GObject o, IsDescendantOf EventControllerLegacy o) => IsEventControllerLegacy o

-- | Cast to EventControllerLegacy, for types for which this is
--   known to be safe. For general casts, use castTo.
toEventControllerLegacy :: (MonadIO m, IsEventControllerLegacy o) => o -> m EventControllerLegacy

-- | Creates a new legacy event controller.
eventControllerLegacyNew :: (HasCallStack, MonadIO m) => m EventControllerLegacy

-- | Emitted for each GDK event delivered to controller.
type EventControllerLegacyEventCallback = Event -> IO Bool

-- | Connect a signal handler for the event signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerLegacy #event callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerLegacyEvent :: (IsEventControllerLegacy a, MonadIO m) => a -> ((?self :: a) => EventControllerLegacyEventCallback) -> m SignalHandlerId

-- | Connect a signal handler for the event signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on eventControllerLegacy #event callback
--   
onEventControllerLegacyEvent :: (IsEventControllerLegacy a, MonadIO m) => a -> ((?self :: a) => EventControllerLegacyEventCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy o) => GI.Gtk.Objects.EventControllerLegacy.IsEventControllerLegacy o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EventControllerLegacy.EventControllerLegacy

-- | Provides access to key events.
module GI.Gtk.Objects.EventControllerKey

-- | Memory-managed wrapper type.
newtype EventControllerKey
EventControllerKey :: ManagedPtr EventControllerKey -> EventControllerKey

-- | Type class for types which can be safely cast to
--   EventControllerKey, for instance with
--   toEventControllerKey.
class (GObject o, IsDescendantOf EventControllerKey o) => IsEventControllerKey o

-- | Cast to EventControllerKey, for types for which this is known
--   to be safe. For general casts, use castTo.
toEventControllerKey :: (MonadIO m, IsEventControllerKey o) => o -> m EventControllerKey

-- | Forwards the current event of this controller to a
--   widget.
--   
--   This function can only be used in handlers for the
--   EventControllerKey::keyPressed,
--   EventControllerKey::keyReleased or
--   EventControllerKey::modifiers signals.
eventControllerKeyForward :: (HasCallStack, MonadIO m, IsEventControllerKey a, IsWidget b) => a -> b -> m Bool

-- | Gets the key group of the current event of this
--   controller.
--   
--   See keyEventGetLayout.
eventControllerKeyGetGroup :: (HasCallStack, MonadIO m, IsEventControllerKey a) => a -> m Word32

-- | Gets the input method context of the key controller.
eventControllerKeyGetImContext :: (HasCallStack, MonadIO m, IsEventControllerKey a) => a -> m (Maybe IMContext)

-- | Creates a new event controller that will handle key events.
eventControllerKeyNew :: (HasCallStack, MonadIO m) => m EventControllerKey

-- | Sets the input method context of the key controller.
eventControllerKeySetImContext :: (HasCallStack, MonadIO m, IsEventControllerKey a, IsIMContext b) => a -> Maybe b -> m ()

-- | Emitted whenever the input method context filters away a keypress and
--   prevents the controller receiving it.
--   
--   See eventControllerKeySetImContext and
--   iMContextFilterKeypress.
type EventControllerKeyImUpdateCallback = IO ()

-- | Connect a signal handler for the imUpdate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerKey #imUpdate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerKeyImUpdate :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyImUpdateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the imUpdate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerKey #imUpdate callback
--   
onEventControllerKeyImUpdate :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyImUpdateCallback) -> m SignalHandlerId

-- | Emitted whenever a key is pressed.
type EventControllerKeyKeyPressedCallback = Word32 -> Word32 -> [ModifierType] -> IO Bool

-- | Connect a signal handler for the keyPressed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerKey #keyPressed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerKeyKeyPressed :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyKeyPressedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the keyPressed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerKey #keyPressed callback
--   
onEventControllerKeyKeyPressed :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyKeyPressedCallback) -> m SignalHandlerId

-- | Emitted whenever a key is released.
type EventControllerKeyKeyReleasedCallback = Word32 -> Word32 -> [ModifierType] -> IO ()

-- | Connect a signal handler for the keyReleased signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerKey #keyReleased callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerKeyKeyReleased :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyKeyReleasedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the keyReleased signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerKey #keyReleased callback
--   
onEventControllerKeyKeyReleased :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyKeyReleasedCallback) -> m SignalHandlerId

-- | Emitted whenever the state of modifier keys and pointer buttons
--   change.
type EventControllerKeyModifiersCallback = [ModifierType] -> IO Bool

-- | Connect a signal handler for the modifiers signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerKey #modifiers callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerKeyModifiers :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyModifiersCallback) -> m SignalHandlerId

-- | Connect a signal handler for the modifiers signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on eventControllerKey #modifiers callback
--   
onEventControllerKeyModifiers :: (IsEventControllerKey a, MonadIO m) => a -> ((?self :: a) => EventControllerKeyModifiersCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EventControllerKey.EventControllerKey
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EventControllerKey.EventControllerKey
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EventControllerKey.EventControllerKey
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EventControllerKey.EventControllerKey o) => GI.Gtk.Objects.EventControllerKey.IsEventControllerKey o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EventControllerKey.EventControllerKey)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EventControllerKey.EventControllerKey
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EventControllerKey.EventControllerKey

-- | Tracks keyboard focus.
--   
--   The event controller offers EventControllerFocus::enter and
--   EventControllerFocus::leave signals, as well as
--   EventControllerFocus:isFocus and
--   EventControllerFocus:containsFocus properties which are updated
--   to reflect focus changes inside the widget hierarchy that is rooted at
--   the controllers widget.
module GI.Gtk.Objects.EventControllerFocus

-- | Memory-managed wrapper type.
newtype EventControllerFocus
EventControllerFocus :: ManagedPtr EventControllerFocus -> EventControllerFocus

-- | Type class for types which can be safely cast to
--   EventControllerFocus, for instance with
--   toEventControllerFocus.
class (GObject o, IsDescendantOf EventControllerFocus o) => IsEventControllerFocus o

-- | Cast to EventControllerFocus, for types for which this is known
--   to be safe. For general casts, use castTo.
toEventControllerFocus :: (MonadIO m, IsEventControllerFocus o) => o -> m EventControllerFocus

-- | Returns True if focus is within self or one of
--   its children.
eventControllerFocusContainsFocus :: (HasCallStack, MonadIO m, IsEventControllerFocus a) => a -> m Bool

-- | Returns True if focus is within self, but not
--   one of its children.
eventControllerFocusIsFocus :: (HasCallStack, MonadIO m, IsEventControllerFocus a) => a -> m Bool

-- | Creates a new event controller that will handle focus events.
eventControllerFocusNew :: (HasCallStack, MonadIO m) => m EventControllerFocus

-- | Get the value of the “contains-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventControllerFocus #containsFocus
--   
getEventControllerFocusContainsFocus :: (MonadIO m, IsEventControllerFocus o) => o -> m Bool

-- | Get the value of the “is-focus” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventControllerFocus #isFocus
--   
getEventControllerFocusIsFocus :: (MonadIO m, IsEventControllerFocus o) => o -> m Bool

-- | Emitted whenever the focus enters into the widget or one of its
--   descendents.
--   
--   Note that this means you may not get an enter signal even
--   though the widget becomes the focus location, in certain cases (such
--   as when the focus moves from a descendent of the widget to the widget
--   itself). If you are interested in these cases, you can monitor the
--   EventControllerFocus:isFocus property for changes.
type EventControllerFocusEnterCallback = IO ()

-- | Connect a signal handler for the enter signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerFocus #enter callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerFocusEnter :: (IsEventControllerFocus a, MonadIO m) => a -> ((?self :: a) => EventControllerFocusEnterCallback) -> m SignalHandlerId

-- | Connect a signal handler for the enter signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on eventControllerFocus #enter callback
--   
onEventControllerFocusEnter :: (IsEventControllerFocus a, MonadIO m) => a -> ((?self :: a) => EventControllerFocusEnterCallback) -> m SignalHandlerId

-- | Emitted whenever the focus leaves the widget hierarchy that is rooted
--   at the widget that the controller is attached to.
--   
--   Note that this means you may not get a leave signal even though
--   the focus moves away from the widget, in certain cases (such as when
--   the focus moves from the widget to a descendent). If you are
--   interested in these cases, you can monitor the
--   EventControllerFocus:isFocus property for changes.
type EventControllerFocusLeaveCallback = IO ()

-- | Connect a signal handler for the leave signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after eventControllerFocus #leave callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEventControllerFocusLeave :: (IsEventControllerFocus a, MonadIO m) => a -> ((?self :: a) => EventControllerFocusLeaveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the leave signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on eventControllerFocus #leave callback
--   
onEventControllerFocusLeave :: (IsEventControllerFocus a, MonadIO m) => a -> ((?self :: a) => EventControllerFocusLeaveCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EventControllerFocus.EventControllerFocus
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EventControllerFocus.EventControllerFocus
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EventControllerFocus.EventControllerFocus
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EventControllerFocus.EventControllerFocus o) => GI.Gtk.Objects.EventControllerFocus.IsEventControllerFocus o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EventControllerFocus.EventControllerFocus)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EventControllerFocus.EventControllerFocus
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EventControllerFocus.EventControllerFocus

-- | The base class for event controllers.
--   
--   These are ancillary objects associated to widgets, which react to
--   GdkEvents, and possibly trigger actions as a consequence.
--   
--   Event controllers are added to a widget with
--   widgetAddController. It is rarely necessary to explicitly
--   remove a controller with widgetRemoveController.
--   
--   See the chapter on input handling for an overview of the basic
--   concepts, such as the capture and bubble phases of event propagation.
module GI.Gtk.Objects.EventController

-- | Memory-managed wrapper type.
newtype EventController
EventController :: ManagedPtr EventController -> EventController

-- | Type class for types which can be safely cast to
--   EventController, for instance with toEventController.
class (GObject o, IsDescendantOf EventController o) => IsEventController o

-- | Cast to EventController, for types for which this is known to
--   be safe. For general casts, use castTo.
toEventController :: (MonadIO m, IsEventController o) => o -> m EventController

-- | Returns the event that is currently being handled by the controller.
--   
--   At other times, Nothing is returned.
eventControllerGetCurrentEvent :: (HasCallStack, MonadIO m, IsEventController a) => a -> m (Maybe Event)

-- | Returns the device of the event that is currently being handled by the
--   controller.
--   
--   At other times, Nothing is returned.
eventControllerGetCurrentEventDevice :: (HasCallStack, MonadIO m, IsEventController a) => a -> m (Maybe Device)

-- | Returns the modifier state of the event that is currently being
--   handled by the controller.
--   
--   At other times, 0 is returned.
eventControllerGetCurrentEventState :: (HasCallStack, MonadIO m, IsEventController a) => a -> m [ModifierType]

-- | Returns the timestamp of the event that is currently being handled by
--   the controller.
--   
--   At other times, 0 is returned.
eventControllerGetCurrentEventTime :: (HasCallStack, MonadIO m, IsEventController a) => a -> m Word32

-- | Gets the name of controller.
eventControllerGetName :: (HasCallStack, MonadIO m, IsEventController a) => a -> m (Maybe Text)

-- | Gets the propagation limit of the event controller.
eventControllerGetPropagationLimit :: (HasCallStack, MonadIO m, IsEventController a) => a -> m PropagationLimit

-- | Gets the propagation phase at which controller handles
--   events.
eventControllerGetPropagationPhase :: (HasCallStack, MonadIO m, IsEventController a) => a -> m PropagationPhase

-- | Returns the GtkWidget this controller relates to.
eventControllerGetWidget :: (HasCallStack, MonadIO m, IsEventController a) => a -> m (Maybe Widget)

-- | Resets the controller to a clean state.
eventControllerReset :: (HasCallStack, MonadIO m, IsEventController a) => a -> m ()

-- | Sets a name on the controller that can be used for debugging.
eventControllerSetName :: (HasCallStack, MonadIO m, IsEventController a) => a -> Maybe Text -> m ()

-- | Sets the event propagation limit on the event controller.
--   
--   If the limit is set to PropagationLimitSameNative, the
--   controller won't handle events that are targeted at widgets on a
--   different surface, such as popovers.
eventControllerSetPropagationLimit :: (HasCallStack, MonadIO m, IsEventController a) => a -> PropagationLimit -> m ()

-- | Sets the propagation phase at which a controller handles events.
--   
--   If phase is PropagationPhaseNone, no automatic
--   event handling will be performed, but other additional gesture
--   maintenance will.
eventControllerSetPropagationPhase :: (HasCallStack, MonadIO m, IsEventController a) => a -> PropagationPhase -> m ()

-- | Sets a name on the controller that can be used for debugging.
--   
--   Since: 4.8
eventControllerSetStaticName :: (HasCallStack, MonadIO m, IsEventController a) => a -> Maybe Text -> m ()

-- | Set the value of the “name” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #name
--   
clearEventControllerName :: (MonadIO m, IsEventController o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “name” property. This is rarely needed directly, but it is
--   used by new.
constructEventControllerName :: (IsEventController o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get eventController #name
--   
getEventControllerName :: (MonadIO m, IsEventController o) => o -> m (Maybe Text)

-- | Set the value of the “name” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set eventController [ #name := value ]
--   
setEventControllerName :: (MonadIO m, IsEventController o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “propagation-limit” property. This is rarely needed directly,
--   but it is used by new.
constructEventControllerPropagationLimit :: (IsEventController o, MonadIO m) => PropagationLimit -> m (GValueConstruct o)

-- | Get the value of the “propagation-limit” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventController #propagationLimit
--   
getEventControllerPropagationLimit :: (MonadIO m, IsEventController o) => o -> m PropagationLimit

-- | Set the value of the “propagation-limit” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set eventController [ #propagationLimit := value ]
--   
setEventControllerPropagationLimit :: (MonadIO m, IsEventController o) => o -> PropagationLimit -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “propagation-phase” property. This is rarely needed directly,
--   but it is used by new.
constructEventControllerPropagationPhase :: (IsEventController o, MonadIO m) => PropagationPhase -> m (GValueConstruct o)

-- | Get the value of the “propagation-phase” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventController #propagationPhase
--   
getEventControllerPropagationPhase :: (MonadIO m, IsEventController o) => o -> m PropagationPhase

-- | Set the value of the “propagation-phase” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set eventController [ #propagationPhase := value ]
--   
setEventControllerPropagationPhase :: (MonadIO m, IsEventController o) => o -> PropagationPhase -> m ()

-- | Get the value of the “widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get eventController #widget
--   
getEventControllerWidget :: (MonadIO m, IsEventController o) => o -> m (Maybe Widget)
instance GHC.Classes.Eq GI.Gtk.Objects.EventController.EventController
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EventController.EventController
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EventController.EventController
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EventController.EventController o) => GI.Gtk.Objects.EventController.IsEventController o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EventController.EventController)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EventController.EventController
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EventController.EventController

-- | GtkEntryCompletion is an auxiliary object to provide
--   completion functionality for GtkEntry.
--   
--   It implements the CellLayout interface, to allow the user to
--   add extra cells to the GtkTreeView with completion matches.
--   
--   “Completion functionality” means that when the user modifies the text
--   in the entry, GtkEntryCompletion checks which rows in the
--   model match the current content of the entry, and displays a list of
--   matches. By default, the matching is done by comparing the entry text
--   case-insensitively against the text column of the model (see
--   entryCompletionSetTextColumn), but this can be overridden with
--   a custom match function (see entryCompletionSetMatchFunc).
--   
--   When the user selects a completion, the content of the entry is
--   updated. By default, the content of the entry is replaced by the text
--   column of the model, but this can be overridden by connecting to the
--   EntryCompletion::matchSelected signal and updating the entry in
--   the signal handler. Note that you should return True from the
--   signal handler to suppress the default behaviour.
--   
--   To add completion functionality to an entry, use
--   entrySetCompletion.
--   
--   GtkEntryCompletion uses a TreeModelFilter model to
--   represent the subset of the entire model that is currently matching.
--   While the GtkEntryCompletion signals
--   EntryCompletion::matchSelected and
--   EntryCompletion::cursorOnMatch take the original model and an
--   iter pointing to that model as arguments, other callbacks and signals
--   (such as GtkCellLayoutDataFunc or
--   signalgtk.CellArea[applyAttributes)] will
--   generally take the filter model as argument. As long as you are only
--   calling TreeModel.get(), this will make no
--   difference to you. If for some reason, you need the original model,
--   use treeModelFilterGetModel. Don’t forget to use
--   treeModelFilterConvertIterToChildIter to obtain a matching
--   iter.
module GI.Gtk.Objects.EntryCompletion

-- | Memory-managed wrapper type.
newtype EntryCompletion
EntryCompletion :: ManagedPtr EntryCompletion -> EntryCompletion

-- | Type class for types which can be safely cast to
--   EntryCompletion, for instance with toEntryCompletion.
class (GObject o, IsDescendantOf EntryCompletion o) => IsEntryCompletion o

-- | Cast to EntryCompletion, for types for which this is known to
--   be safe. For general casts, use castTo.
toEntryCompletion :: (MonadIO m, IsEntryCompletion o) => o -> m EntryCompletion

-- | Requests a completion operation, or in other words a refiltering of
--   the current list with completions, using the current key.
--   
--   The completion list view will be updated accordingly.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionComplete :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m ()

-- | Computes the common prefix that is shared by all rows in
--   completion that start with key.
--   
--   If no row matches key, Nothing will be
--   returned. Note that a text column must have been set for this function
--   to work, see entryCompletionSetTextColumn for details.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionComputePrefix :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Text -> m (Maybe Text)

-- | Get the original text entered by the user that triggered the
--   completion or Nothing if there’s no completion ongoing.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetCompletionPrefix :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m (Maybe Text)

-- | Gets the entry completion has been attached to.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetEntry :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Widget

-- | Returns whether the common prefix of the possible completions should
--   be automatically inserted in the entry.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetInlineCompletion :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Bool

-- | Returns True if inline-selection mode is turned on.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetInlineSelection :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Bool

-- | Returns the minimum key length as set for completion.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetMinimumKeyLength :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Int32

-- | Returns the model the GtkEntryCompletion is using as data
--   source.
--   
--   Returns Nothing if the model is unset.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetModel :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m (Maybe TreeModel)

-- | Returns whether the completions should be presented in a popup window.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetPopupCompletion :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Bool

-- | Returns whether the completion popup window will be resized to the
--   width of the entry.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetPopupSetWidth :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Bool

-- | Returns whether the completion popup window will appear even if there
--   is only a single match.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetPopupSingleMatch :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Bool

-- | Returns the column in the model of completion to get
--   strings from.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionGetTextColumn :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m Int32

-- | Requests a prefix insertion.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionInsertPrefix :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> m ()

-- | Creates a new GtkEntryCompletion object.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionNew :: (HasCallStack, MonadIO m) => m EntryCompletion

-- | Creates a new GtkEntryCompletion object using the specified
--   area.
--   
--   The GtkCellArea is used to layout cells in the underlying
--   GtkTreeViewColumn for the drop-down menu.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionNewWithArea :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m EntryCompletion

-- | Sets whether the common prefix of the possible completions should be
--   automatically inserted in the entry.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetInlineCompletion :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Bool -> m ()

-- | Sets whether it is possible to cycle through the possible completions
--   inside the entry.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetInlineSelection :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Bool -> m ()

-- | Sets the match function for completion to be
--   func.
--   
--   The match function is used to determine if a row should or should not
--   be in the completion list.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetMatchFunc :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> EntryCompletionMatchFunc -> m ()

-- | Requires the length of the search key for completion
--   to be at least length.
--   
--   This is useful for long lists, where completing using a small key
--   takes a lot of time and will come up with meaningless results anyway
--   (ie, a too large dataset).

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetMinimumKeyLength :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Int32 -> m ()

-- | Sets the model for a GtkEntryCompletion.
--   
--   If completion already has a model set, it will remove
--   it before setting the new model. If model is Nothing, then it
--   will unset the model.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetModel :: (HasCallStack, MonadIO m, IsEntryCompletion a, IsTreeModel b) => a -> Maybe b -> m ()

-- | Sets whether the completions should be presented in a popup window.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetPopupCompletion :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Bool -> m ()

-- | Sets whether the completion popup window will be resized to be the
--   same width as the entry.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetPopupSetWidth :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Bool -> m ()

-- | Sets whether the completion popup window will appear even if there is
--   only a single match.
--   
--   You may want to set this to False if you are using
--   EntryCompletion:inlineCompletion.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetPopupSingleMatch :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Bool -> m ()

-- | Convenience function for setting up the most used case of this code: a
--   completion list with just strings.
--   
--   This function will set up completion to have a list
--   displaying all (and just) strings in the completion list, and to get
--   those strings from column in the model of
--   completion.
--   
--   This functions creates and adds a GtkCellRendererText for the
--   selected column. If you need to set the text column, but don't want
--   the cell renderer, use g_object_set() to set the
--   EntryCompletion:textColumn property directly.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryCompletionSetTextColumn :: (HasCallStack, MonadIO m, IsEntryCompletion a) => a -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-area” property. This is rarely needed directly, but it
--   is used by new.
constructEntryCompletionCellArea :: (IsEntryCompletion o, MonadIO m, IsCellArea a) => a -> m (GValueConstruct o)

-- | Get the value of the “cell-area” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #cellArea
--   
getEntryCompletionCellArea :: (MonadIO m, IsEntryCompletion o) => o -> m (Maybe CellArea)

-- | Construct a GValueConstruct with valid value for the
--   “inline-completion” property. This is rarely needed directly,
--   but it is used by new.
constructEntryCompletionInlineCompletion :: (IsEntryCompletion o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inline-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #inlineCompletion
--   
getEntryCompletionInlineCompletion :: (MonadIO m, IsEntryCompletion o) => o -> m Bool

-- | Set the value of the “inline-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #inlineCompletion := value ]
--   
setEntryCompletionInlineCompletion :: (MonadIO m, IsEntryCompletion o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “inline-selection” property. This is rarely needed directly,
--   but it is used by new.
constructEntryCompletionInlineSelection :: (IsEntryCompletion o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inline-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #inlineSelection
--   
getEntryCompletionInlineSelection :: (MonadIO m, IsEntryCompletion o) => o -> m Bool

-- | Set the value of the “inline-selection” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #inlineSelection := value ]
--   
setEntryCompletionInlineSelection :: (MonadIO m, IsEntryCompletion o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “minimum-key-length” property. This is rarely needed
--   directly, but it is used by new.
constructEntryCompletionMinimumKeyLength :: (IsEntryCompletion o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “minimum-key-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #minimumKeyLength
--   
getEntryCompletionMinimumKeyLength :: (MonadIO m, IsEntryCompletion o) => o -> m Int32

-- | Set the value of the “minimum-key-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #minimumKeyLength := value ]
--   
setEntryCompletionMinimumKeyLength :: (MonadIO m, IsEntryCompletion o) => o -> Int32 -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearEntryCompletionModel :: (MonadIO m, IsEntryCompletion o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructEntryCompletionModel :: (IsEntryCompletion o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #model
--   
getEntryCompletionModel :: (MonadIO m, IsEntryCompletion o) => o -> m (Maybe TreeModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #model := value ]
--   
setEntryCompletionModel :: (MonadIO m, IsEntryCompletion o, IsTreeModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “popup-completion” property. This is rarely needed directly,
--   but it is used by new.
constructEntryCompletionPopupCompletion :: (IsEntryCompletion o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “popup-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #popupCompletion
--   
getEntryCompletionPopupCompletion :: (MonadIO m, IsEntryCompletion o) => o -> m Bool

-- | Set the value of the “popup-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #popupCompletion := value ]
--   
setEntryCompletionPopupCompletion :: (MonadIO m, IsEntryCompletion o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “popup-set-width” property. This is rarely needed directly,
--   but it is used by new.
constructEntryCompletionPopupSetWidth :: (IsEntryCompletion o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “popup-set-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #popupSetWidth
--   
getEntryCompletionPopupSetWidth :: (MonadIO m, IsEntryCompletion o) => o -> m Bool

-- | Set the value of the “popup-set-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #popupSetWidth := value ]
--   
setEntryCompletionPopupSetWidth :: (MonadIO m, IsEntryCompletion o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “popup-single-match” property. This is rarely needed
--   directly, but it is used by new.
constructEntryCompletionPopupSingleMatch :: (IsEntryCompletion o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “popup-single-match” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #popupSingleMatch
--   
getEntryCompletionPopupSingleMatch :: (MonadIO m, IsEntryCompletion o) => o -> m Bool

-- | Set the value of the “popup-single-match” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #popupSingleMatch := value ]
--   
setEntryCompletionPopupSingleMatch :: (MonadIO m, IsEntryCompletion o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-column” property. This is rarely needed directly, but
--   it is used by new.
constructEntryCompletionTextColumn :: (IsEntryCompletion o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entryCompletion #textColumn
--   
getEntryCompletionTextColumn :: (MonadIO m, IsEntryCompletion o) => o -> m Int32

-- | Set the value of the “text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entryCompletion [ #textColumn := value ]
--   
setEntryCompletionTextColumn :: (MonadIO m, IsEntryCompletion o) => o -> Int32 -> m ()

-- | Emitted when a match from the cursor is on a match of the list.
--   
--   The default behaviour is to replace the contents of the entry with the
--   contents of the text column in the row pointed to by
--   iter.
--   
--   Note that model is the model that was passed to
--   entryCompletionSetModel.
type EntryCompletionCursorOnMatchCallback = TreeModel -> TreeIter -> IO Bool

-- | Connect a signal handler for the cursorOnMatch signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after entryCompletion #cursorOnMatch callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryCompletionCursorOnMatch :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionCursorOnMatchCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cursorOnMatch signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on entryCompletion #cursorOnMatch callback
--   
onEntryCompletionCursorOnMatch :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionCursorOnMatchCallback) -> m SignalHandlerId

-- | Emitted when the inline autocompletion is triggered.
--   
--   The default behaviour is to make the entry display the whole prefix
--   and select the newly inserted part.
--   
--   Applications may connect to this signal in order to insert only a
--   smaller part of the prefix into the entry - e.g. the
--   entry used in the GtkFileChooser inserts only the part of the
--   prefix up to the next '/'.
type EntryCompletionInsertPrefixCallback = Text -> IO Bool

-- | Connect a signal handler for the insertPrefix signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entryCompletion #insertPrefix callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryCompletionInsertPrefix :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionInsertPrefixCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertPrefix signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entryCompletion #insertPrefix callback
--   
onEntryCompletionInsertPrefix :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionInsertPrefixCallback) -> m SignalHandlerId

-- | Emitted when a match from the list is selected.
--   
--   The default behaviour is to replace the contents of the entry with the
--   contents of the text column in the row pointed to by
--   iter.
--   
--   Note that model is the model that was passed to
--   entryCompletionSetModel.
type EntryCompletionMatchSelectedCallback = TreeModel -> TreeIter -> IO Bool

-- | Connect a signal handler for the matchSelected signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after entryCompletion #matchSelected callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryCompletionMatchSelected :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionMatchSelectedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the matchSelected signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on entryCompletion #matchSelected callback
--   
onEntryCompletionMatchSelected :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionMatchSelectedCallback) -> m SignalHandlerId

-- | Emitted when the filter model has zero number of rows in
--   completion_complete method.
--   
--   In other words when GtkEntryCompletion is out of suggestions.
type EntryCompletionNoMatchesCallback = IO ()

-- | Connect a signal handler for the noMatches signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entryCompletion #noMatches callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryCompletionNoMatches :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionNoMatchesCallback) -> m SignalHandlerId

-- | Connect a signal handler for the noMatches signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entryCompletion #noMatches callback
--   
onEntryCompletionNoMatches :: (IsEntryCompletion a, MonadIO m) => a -> ((?self :: a) => EntryCompletionNoMatchesCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EntryCompletion.EntryCompletion
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EntryCompletion.EntryCompletion
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EntryCompletion.EntryCompletion
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EntryCompletion.EntryCompletion o) => GI.Gtk.Objects.EntryCompletion.IsEntryCompletion o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EntryCompletion.EntryCompletion)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EntryCompletion.EntryCompletion
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EntryCompletion.EntryCompletion

-- | A single-line text entry widget.
--   
--   <picture> <source srcset="entry-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkEntry" src="entry.png"> </picture>
--   
--   A fairly large set of key bindings are supported by default. If the
--   entered text is longer than the allocation of the widget, the widget
--   will scroll so that the cursor position is visible.
--   
--   When using an entry for passwords and other sensitive information, it
--   can be put into “password mode” using entrySetVisibility. In
--   this mode, entered text is displayed using a “invisible” character. By
--   default, GTK picks the best invisible character that is available in
--   the current font, but it can be changed with
--   entrySetInvisibleChar.
--   
--   GtkEntry has the ability to display progress or activity
--   information behind the text. To make an entry display such
--   information, use entrySetProgressFraction or
--   entrySetProgressPulseStep.
--   
--   Additionally, GtkEntry can show icons at either side of the
--   entry. These icons can be activatable by clicking, can be set up as
--   drag source and can have tooltips. To add an icon, use
--   entrySetIconFromGicon or one of the various other functions
--   that set an icon from an icon name or a paintable. To trigger an
--   action when the user clicks an icon, connect to the
--   Entry::iconPress signal. To allow DND operations from an icon,
--   use entrySetIconDragSource. To set a tooltip on an icon, use
--   entrySetIconTooltipText or the corresponding function for
--   markup.
--   
--   Note that functionality or information that is only available by
--   clicking on an icon in an entry may not be accessible at all to users
--   which are not able to use a mouse or other pointing device. It is
--   therefore recommended that any such functionality should also be
--   available by other means, e.g. via the context menu of the entry.
--   
--   
CSS nodes
--   
--   
--   entry[.flat][.warning][.error]
--   ├── text[.readonly]
--   ├── image.left
--   ├── image.right
--   ╰── [progress[.pulse]]
--   
--   
--   GtkEntry has a main node with the name entry. Depending on
--   the properties of the entry, the style classes .read-only and .flat
--   may appear. The style classes .warning and .error may also be used
--   with entries.
--   
--   When the entry shows icons, it adds subnodes with the name image and
--   the style class .left or .right, depending on where the icon appears.
--   
--   When the entry shows progress, it adds a subnode with the name
--   progress. The node has the style class .pulse when the shown progress
--   is pulsing.
--   
--   For all the subnodes added to the text node in various situations, see
--   Text.
--   
--   
GtkEntry as GtkBuildable
--   
--   The GtkEntry implementation of the GtkBuildable
--   interface supports a custom <attributes> element, which
--   supports any number of <attribute> elements. The
--   <attribute> element has attributes named “name“,
--   “value“, “start“ and “end“ and allows you to specify
--   PangoAttribute values for this label.
--   
--   An example of a UI definition fragment specifying Pango attributes:
--   
--   
xml code
--   
--   
--   <object class="GtkEntry">
--     <attributes>
--       <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
--       <attribute name="background" value="red" start="5" end="10"/>
--     </attributes>
--   </object>
--   
--   
--   The start and end attributes specify the range of characters to which
--   the Pango attribute applies. If start and end are not specified, the
--   attribute is applied to the whole text. Note that specifying ranges
--   does not make much sense with translatable attributes. Use markup
--   embedded in the translatable content instead.
--   
--   
Accessibility
--   
--   GtkEntry uses the AccessibleRoleTextBox role.
module GI.Gtk.Objects.Entry

-- | Memory-managed wrapper type.
newtype Entry
Entry :: ManagedPtr Entry -> Entry

-- | Type class for types which can be safely cast to Entry, for
--   instance with toEntry.
class (GObject o, IsDescendantOf Entry o) => IsEntry o

-- | Cast to Entry, for types for which this is known to be safe.
--   For general casts, use castTo.
toEntry :: (MonadIO m, IsEntry o) => o -> m Entry

-- | Retrieves the value set by entrySetActivatesDefault.
entryGetActivatesDefault :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Bool

-- | Gets the value set by entrySetAlignment.
--   
--   See also: Editable:xalign
entryGetAlignment :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Float

-- | Gets the attribute list of the GtkEntry.
--   
--   See entrySetAttributes.
entryGetAttributes :: (HasCallStack, MonadIO m, IsEntry a) => a -> m (Maybe AttrList)

-- | Get the GtkEntryBuffer object which holds the text for this
--   widget.
entryGetBuffer :: (HasCallStack, MonadIO m, IsEntry a) => a -> m EntryBuffer

-- | Returns the auxiliary completion object currently in use by
--   entry.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entryGetCompletion :: (HasCallStack, MonadIO m, IsEntry a) => a -> m (Maybe EntryCompletion)

-- | Returns the index of the icon which is the source of the current DND
--   operation, or -1.
entryGetCurrentIconDragSource :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Int32

-- | Gets the menu model set with entrySetExtraMenu.
entryGetExtraMenu :: (HasCallStack, MonadIO m, IsEntry a) => a -> m (Maybe MenuModel)

-- | Gets the value set by entrySetHasFrame.
entryGetHasFrame :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Bool

-- | Returns whether the icon is activatable.
entryGetIconActivatable :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m Bool

-- | Gets the area where entry’s icon at iconPos is drawn.
--   
--   This function is useful when drawing something to the entry in a draw
--   callback.
--   
--   If the entry is not realized or has no icon at the given position,
--   iconArea is filled with zeros. Otherwise,
--   iconArea will be filled with the icon's allocation,
--   relative to entry's allocation.
entryGetIconArea :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m Rectangle

-- | Finds the icon at the given position and return its index.
--   
--   The position’s coordinates are relative to the entry’s
--   top left corner. If x, y doesn’t lie
--   inside an icon, -1 is returned. This function is intended for use in a
--   Widget::queryTooltip signal handler.
entryGetIconAtPos :: (HasCallStack, MonadIO m, IsEntry a) => a -> Int32 -> Int32 -> m Int32

-- | Retrieves the GIcon used for the icon.
--   
--   Nothing will be returned if there is no icon or if the icon was
--   set by some other method (e.g., by GdkPaintable or icon
--   name).
entryGetIconGicon :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m (Maybe Icon)

-- | Retrieves the icon name used for the icon.
--   
--   Nothing is returned if there is no icon or if the icon was set
--   by some other method (e.g., by GdkPaintable or gicon).
entryGetIconName :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m (Maybe Text)

-- | Retrieves the GdkPaintable used for the icon.
--   
--   If no GdkPaintable was used for the icon, Nothing is
--   returned.
entryGetIconPaintable :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m (Maybe Paintable)

-- | Returns whether the icon appears sensitive or insensitive.
entryGetIconSensitive :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m Bool

-- | Gets the type of representation being used by the icon to store image
--   data.
--   
--   If the icon has no image data, the return value will be
--   ImageTypeEmpty.
entryGetIconStorageType :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m ImageType

-- | Gets the contents of the tooltip on the icon at the specified position
--   in entry.
entryGetIconTooltipMarkup :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m (Maybe Text)

-- | Gets the contents of the tooltip on the icon at the specified position
--   in entry.
entryGetIconTooltipText :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m (Maybe Text)

-- | Gets the input hints of this GtkEntry.
entryGetInputHints :: (HasCallStack, MonadIO m, IsEntry a) => a -> m [InputHints]

-- | Gets the input purpose of the GtkEntry.
entryGetInputPurpose :: (HasCallStack, MonadIO m, IsEntry a) => a -> m InputPurpose

-- | Retrieves the character displayed in place of the actual text in
--   “password mode”.
entryGetInvisibleChar :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Char

-- | Retrieves the maximum allowed length of the text in
--   entry.
--   
--   See entrySetMaxLength.
entryGetMaxLength :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Int32

-- | Gets the text that will be used in the context menu of the
--   GtkEntry when the specified icon is activatable. Selecting
--   this item in the menu results, from all aspects, the same than
--   clicking on the specified icon. This greatly simplifies making
--   accessible applications, because the icons aren't focusable when using
--   keyboard navigation. This is why Gtk recommends to add the same action
--   to the context menu.
--   
--   Since: 4.20
entryGetMenuEntryIconText :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> m (Maybe Text)

-- | Gets whether the GtkEntry is in overwrite mode.
entryGetOverwriteMode :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Bool

-- | Retrieves the text that will be displayed when entry
--   is empty and unfocused
entryGetPlaceholderText :: (HasCallStack, MonadIO m, IsEntry a) => a -> m (Maybe Text)

-- | Returns the current fraction of the task that’s been completed.
--   
--   See entrySetProgressFraction.
entryGetProgressFraction :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Double

-- | Retrieves the pulse step set with entrySetProgressPulseStep.
entryGetProgressPulseStep :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Double

-- | Gets the tabstops of the GtkEntry.
--   
--   See entrySetTabs.
entryGetTabs :: (HasCallStack, MonadIO m, IsEntry a) => a -> m (Maybe TabArray)

-- | Retrieves the current length of the text in entry.
--   
--   This is equivalent to getting entry's
--   GtkEntryBuffer and calling entryBufferGetLength on it.
entryGetTextLength :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Word16

-- | Retrieves whether the text in entry is visible.
--   
--   See entrySetVisibility.
entryGetVisibility :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Bool

-- | Causes entry to have keyboard focus.
--   
--   It behaves like widgetGrabFocus, except that it doesn't select
--   the contents of the entry. You only want to call this on some special
--   entries which the user usually doesn't want to replace all text in,
--   such as search-as-you-type entries.
entryGrabFocusWithoutSelecting :: (HasCallStack, MonadIO m, IsEntry a) => a -> m Bool

-- | Creates a new entry.
entryNew :: (HasCallStack, MonadIO m) => m Entry

-- | Creates a new entry with the specified text buffer.
entryNewWithBuffer :: (HasCallStack, MonadIO m, IsEntryBuffer a) => a -> m Entry

-- | Indicates that some progress is made, but you don’t know how much.
--   
--   Causes the entry’s progress indicator to enter “activity mode”, where
--   a block bounces back and forth. Each call to entryProgressPulse
--   causes the block to move by a little bit (the amount of movement per
--   pulse is determined by entrySetProgressPulseStep).
entryProgressPulse :: (HasCallStack, MonadIO m, IsEntry a) => a -> m ()

-- | Reset the input method context of the entry if needed.
--   
--   This can be necessary in the case where modifying the buffer would
--   confuse on-going input method behavior.
entryResetImContext :: (HasCallStack, MonadIO m, IsEntry a) => a -> m ()

-- | Sets whether pressing Enter in the entry will activate
--   the default widget for the window containing the entry.
--   
--   This usually means that the dialog containing the entry will be
--   closed, since the default widget is usually one of the dialog buttons.
entrySetActivatesDefault :: (HasCallStack, MonadIO m, IsEntry a) => a -> Bool -> m ()

-- | Sets the alignment for the contents of the entry.
--   
--   This controls the horizontal positioning of the contents when the
--   displayed text is shorter than the width of the entry.
--   
--   See also: Editable:xalign
entrySetAlignment :: (HasCallStack, MonadIO m, IsEntry a) => a -> Float -> m ()

-- | Sets a PangoAttrList.
--   
--   The attributes in the list are applied to the entry text.
--   
--   Since the attributes will be applied to text that changes as the user
--   types, it makes most sense to use attributes with unlimited extent.
entrySetAttributes :: (HasCallStack, MonadIO m, IsEntry a) => a -> AttrList -> m ()

-- | Set the GtkEntryBuffer object which holds the text for this
--   widget.
entrySetBuffer :: (HasCallStack, MonadIO m, IsEntry a, IsEntryBuffer b) => a -> b -> m ()

-- | Sets completion to be the auxiliary completion object
--   to use with entry.
--   
--   All further configuration of the completion mechanism is done on
--   completion using the GtkEntryCompletion API.
--   Completion is disabled if completion is set to
--   Nothing.

-- | Deprecated: (Since version 4.10)GtkEntryCompletion will be removed
--   in GTK 5.
entrySetCompletion :: (HasCallStack, MonadIO m, IsEntry a, IsEntryCompletion b) => a -> Maybe b -> m ()

-- | Sets a menu model to add when constructing the context menu for
--   entry.
entrySetExtraMenu :: (HasCallStack, MonadIO m, IsEntry a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets whether the entry has a beveled frame around it.
entrySetHasFrame :: (HasCallStack, MonadIO m, IsEntry a) => a -> Bool -> m ()

-- | Sets whether the icon is activatable.
entrySetIconActivatable :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> Bool -> m ()

-- | Sets up the icon at the given position as drag source.
--   
--   This makes it so that GTK will start a drag operation when the user
--   clicks and drags the icon.
entrySetIconDragSource :: (HasCallStack, MonadIO m, IsEntry a, IsContentProvider b) => a -> EntryIconPosition -> b -> [DragAction] -> m ()

-- | Sets the icon shown in the entry at the specified position from the
--   current icon theme.
--   
--   If the icon isn’t known, a “broken image” icon will be displayed
--   instead.
--   
--   If icon is Nothing, no icon will be shown in
--   the specified position.
entrySetIconFromGicon :: (HasCallStack, MonadIO m, IsEntry a, IsIcon b) => a -> EntryIconPosition -> Maybe b -> m ()

-- | Sets the icon shown in the entry at the specified position from the
--   current icon theme.
--   
--   If the icon name isn’t known, a “broken image” icon will be displayed
--   instead.
--   
--   If iconName is Nothing, no icon will be shown
--   in the specified position.
entrySetIconFromIconName :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> Maybe Text -> m ()

-- | Sets the icon shown in the specified position using a
--   GdkPaintable.
--   
--   If paintable is Nothing, no icon will be shown
--   in the specified position.
entrySetIconFromPaintable :: (HasCallStack, MonadIO m, IsEntry a, IsPaintable b) => a -> EntryIconPosition -> Maybe b -> m ()

-- | Sets the sensitivity for the specified icon.
entrySetIconSensitive :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> Bool -> m ()

-- | Sets tooltip as the contents of the tooltip for the
--   icon at the specified position.
--   
--   tooltip is assumed to be marked up with Pango Markup.
--   
--   Use Nothing for tooltip to remove an existing
--   tooltip.
--   
--   See also widgetSetTooltipMarkup and
--   entrySetIconTooltipText.
entrySetIconTooltipMarkup :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> Maybe Text -> m ()

-- | Sets tooltip as the contents of the tooltip for the
--   icon at the specified position.
--   
--   Use Nothing for tooltip to remove an existing
--   tooltip.
--   
--   See also widgetSetTooltipText and
--   entrySetIconTooltipMarkup.
--   
--   If you unset the widget tooltip via widgetSetTooltipText or
--   widgetSetTooltipMarkup, this sets Widget:hasTooltip to
--   False, which suppresses icon tooltips too. You can resolve this
--   by then calling widgetSetHasTooltip to set
--   Widget:hasTooltip back to True, or setting at least one
--   non-empty tooltip on any icon achieves the same result.
entrySetIconTooltipText :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> Maybe Text -> m ()

-- | Set additional hints which allow input methods to fine-tune their
--   behavior.
entrySetInputHints :: (HasCallStack, MonadIO m, IsEntry a) => a -> [InputHints] -> m ()

-- | Sets the input purpose which can be used by input methods to adjust
--   their behavior.
entrySetInputPurpose :: (HasCallStack, MonadIO m, IsEntry a) => a -> InputPurpose -> m ()

-- | Sets the character to use in place of the actual text in “password
--   mode”.
--   
--   See entrySetVisibility for how to enable “password mode”.
--   
--   By default, GTK picks the best invisible char available in the current
--   font. If you set the invisible char to 0, then the user will get no
--   feedback at all; there will be no text on the screen as they type.
entrySetInvisibleChar :: (HasCallStack, MonadIO m, IsEntry a) => a -> Char -> m ()

-- | Sets the maximum allowed length of the contents of the widget.
--   
--   If the current contents are longer than the given length, then they
--   will be truncated to fit. The length is in characters.
--   
--   This is equivalent to getting entry's
--   GtkEntryBuffer and calling entryBufferSetMaxLength on
--   it.
entrySetMaxLength :: (HasCallStack, MonadIO m, IsEntry a) => a -> Int32 -> m ()

-- | Sets the text that will be used in the context menu of the
--   GtkEntry when the specified icon is activatable. Selecting
--   this item in the menu results, from all aspects, the same than
--   clicking on the specified icon. This greatly simplifies making
--   accessible applications, because the icons aren't focusable when using
--   keyboard navigation. This is why Gtk recommends to add the same action
--   to the context menu.
--   
--   Since: 4.20
entrySetMenuEntryIconText :: (HasCallStack, MonadIO m, IsEntry a) => a -> EntryIconPosition -> Text -> m ()

-- | Sets whether the text is overwritten when typing in the
--   GtkEntry.
entrySetOverwriteMode :: (HasCallStack, MonadIO m, IsEntry a) => a -> Bool -> m ()

-- | Sets text to be displayed in entry when it is empty.
--   
--   This can be used to give a visual hint of the expected contents of the
--   GtkEntry.
entrySetPlaceholderText :: (HasCallStack, MonadIO m, IsEntry a) => a -> Maybe Text -> m ()

-- | Causes the entry’s progress indicator to “fill in” the given fraction
--   of the bar.
--   
--   The fraction should be between 0.0 and 1.0, inclusive.
entrySetProgressFraction :: (HasCallStack, MonadIO m, IsEntry a) => a -> Double -> m ()

-- | Sets the fraction of total entry width to move the progress bouncing
--   block for each pulse.
--   
--   Use entryProgressPulse to pulse the progress.
entrySetProgressPulseStep :: (HasCallStack, MonadIO m, IsEntry a) => a -> Double -> m ()

-- | Sets a PangoTabArray.
--   
--   The tabstops in the array are applied to the entry text.
entrySetTabs :: (HasCallStack, MonadIO m, IsEntry a) => a -> Maybe TabArray -> m ()

-- | Sets whether the contents of the entry are visible or not.
--   
--   When visibility is set to False, characters are displayed as
--   the invisible char, and will also appear that way when the text in the
--   entry widget is copied elsewhere.
--   
--   By default, GTK picks the best invisible character available in the
--   current font, but it can be changed with entrySetInvisibleChar.
--   
--   Note that you probably want to set Entry:inputPurpose to
--   InputPurposePassword or InputPurposePin to inform input
--   methods about the purpose of this entry, in addition to setting
--   visibility to False.
entrySetVisibility :: (HasCallStack, MonadIO m, IsEntry a) => a -> Bool -> m ()

-- | Unsets the invisible char, so that the default invisible char is used
--   again. See entrySetInvisibleChar.
entryUnsetInvisibleChar :: (HasCallStack, MonadIO m, IsEntry a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activates-default” property. This is rarely needed directly,
--   but it is used by new.
constructEntryActivatesDefault :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #activatesDefault
--   
getEntryActivatesDefault :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “activates-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #activatesDefault := value ]
--   
setEntryActivatesDefault :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructEntryAttributes :: (IsEntry o, MonadIO m) => AttrList -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #attributes
--   
getEntryAttributes :: (MonadIO m, IsEntry o) => o -> m (Maybe AttrList)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #attributes := value ]
--   
setEntryAttributes :: (MonadIO m, IsEntry o) => o -> AttrList -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “buffer” property. This is rarely needed directly, but it is
--   used by new.
constructEntryBuffer :: (IsEntry o, MonadIO m, IsEntryBuffer a) => a -> m (GValueConstruct o)

-- | Get the value of the “buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #buffer
--   
getEntryBuffer :: (MonadIO m, IsEntry o) => o -> m EntryBuffer

-- | Set the value of the “buffer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #buffer := value ]
--   
setEntryBuffer :: (MonadIO m, IsEntry o, IsEntryBuffer a) => o -> a -> m ()

-- | Set the value of the “completion” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #completion
--   
clearEntryCompletion :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “completion” property. This is rarely needed directly, but it
--   is used by new.
constructEntryCompletion :: (IsEntry o, MonadIO m, IsEntryCompletion a) => a -> m (GValueConstruct o)

-- | Get the value of the “completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #completion
--   
getEntryCompletion :: (MonadIO m, IsEntry o) => o -> m (Maybe EntryCompletion)

-- | Set the value of the “completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #completion := value ]
--   
setEntryCompletion :: (MonadIO m, IsEntry o, IsEntryCompletion a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-emoji-completion” property. This is rarely needed
--   directly, but it is used by new.
constructEntryEnableEmojiCompletion :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-emoji-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #enableEmojiCompletion
--   
getEntryEnableEmojiCompletion :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “enable-emoji-completion” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #enableEmojiCompletion := value ]
--   
setEntryEnableEmojiCompletion :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Set the value of the “extra-menu” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #extraMenu
--   
clearEntryExtraMenu :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “extra-menu” property. This is rarely needed directly, but it
--   is used by new.
constructEntryExtraMenu :: (IsEntry o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #extraMenu
--   
getEntryExtraMenu :: (MonadIO m, IsEntry o) => o -> m (Maybe MenuModel)

-- | Set the value of the “extra-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #extraMenu := value ]
--   
setEntryExtraMenu :: (MonadIO m, IsEntry o, IsMenuModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-frame” property. This is rarely needed directly, but it
--   is used by new.
constructEntryHasFrame :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #hasFrame
--   
getEntryHasFrame :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #hasFrame := value ]
--   
setEntryHasFrame :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Set the value of the “im-module” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #imModule
--   
clearEntryImModule :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “im-module” property. This is rarely needed directly, but it
--   is used by new.
constructEntryImModule :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #imModule
--   
getEntryImModule :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “im-module” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #imModule := value ]
--   
setEntryImModule :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-hints” property. This is rarely needed directly, but
--   it is used by new.
constructEntryInputHints :: (IsEntry o, MonadIO m) => [InputHints] -> m (GValueConstruct o)

-- | Get the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #inputHints
--   
getEntryInputHints :: (MonadIO m, IsEntry o) => o -> m [InputHints]

-- | Set the value of the “input-hints” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #inputHints := value ]
--   
setEntryInputHints :: (MonadIO m, IsEntry o) => o -> [InputHints] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “input-purpose” property. This is rarely needed directly, but
--   it is used by new.
constructEntryInputPurpose :: (IsEntry o, MonadIO m) => InputPurpose -> m (GValueConstruct o)

-- | Get the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #inputPurpose
--   
getEntryInputPurpose :: (MonadIO m, IsEntry o) => o -> m InputPurpose

-- | Set the value of the “input-purpose” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #inputPurpose := value ]
--   
setEntryInputPurpose :: (MonadIO m, IsEntry o) => o -> InputPurpose -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invisible-char” property. This is rarely needed directly,
--   but it is used by new.
constructEntryInvisibleChar :: (IsEntry o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “invisible-char” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #invisibleChar
--   
getEntryInvisibleChar :: (MonadIO m, IsEntry o) => o -> m Word32

-- | Set the value of the “invisible-char” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #invisibleChar := value ]
--   
setEntryInvisibleChar :: (MonadIO m, IsEntry o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invisible-char-set” property. This is rarely needed
--   directly, but it is used by new.
constructEntryInvisibleCharSet :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “invisible-char-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #invisibleCharSet
--   
getEntryInvisibleCharSet :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “invisible-char-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #invisibleCharSet := value ]
--   
setEntryInvisibleCharSet :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-length” property. This is rarely needed directly, but it
--   is used by new.
constructEntryMaxLength :: (IsEntry o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #maxLength
--   
getEntryMaxLength :: (MonadIO m, IsEntry o) => o -> m Int32

-- | Set the value of the “max-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #maxLength := value ]
--   
setEntryMaxLength :: (MonadIO m, IsEntry o) => o -> Int32 -> m ()

-- | Set the value of the “menu-entry-icon-primary-text” property
--   to Nothing. When overloading is enabled, this is
--   equivalent to
--   
--   
--   clear #menuEntryIconPrimaryText
--   
clearEntryMenuEntryIconPrimaryText :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-entry-icon-primary-text” property. This is rarely
--   needed directly, but it is used by new.
constructEntryMenuEntryIconPrimaryText :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “menu-entry-icon-primary-text” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #menuEntryIconPrimaryText
--   
getEntryMenuEntryIconPrimaryText :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “menu-entry-icon-primary-text” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #menuEntryIconPrimaryText := value ]
--   
setEntryMenuEntryIconPrimaryText :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Set the value of the “menu-entry-icon-secondary-text”
--   property to Nothing. When overloading is enabled, this
--   is equivalent to
--   
--   
--   clear #menuEntryIconSecondaryText
--   
clearEntryMenuEntryIconSecondaryText :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menu-entry-icon-secondary-text” property. This is rarely
--   needed directly, but it is used by new.
constructEntryMenuEntryIconSecondaryText :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “menu-entry-icon-secondary-text”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   get entry #menuEntryIconSecondaryText
--   
getEntryMenuEntryIconSecondaryText :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “menu-entry-icon-secondary-text”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #menuEntryIconSecondaryText := value ]
--   
setEntryMenuEntryIconSecondaryText :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “overwrite-mode” property. This is rarely needed directly,
--   but it is used by new.
constructEntryOverwriteMode :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “overwrite-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #overwriteMode
--   
getEntryOverwriteMode :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “overwrite-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #overwriteMode := value ]
--   
setEntryOverwriteMode :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Set the value of the “placeholder-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #placeholderText
--   
clearEntryPlaceholderText :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “placeholder-text” property. This is rarely needed directly,
--   but it is used by new.
constructEntryPlaceholderText :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #placeholderText
--   
getEntryPlaceholderText :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #placeholderText := value ]
--   
setEntryPlaceholderText :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-activatable” property. This is rarely needed
--   directly, but it is used by new.
constructEntryPrimaryIconActivatable :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-activatable” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconActivatable
--   
getEntryPrimaryIconActivatable :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “primary-icon-activatable” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconActivatable := value ]
--   
setEntryPrimaryIconActivatable :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Set the value of the “primary-icon-gicon” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #primaryIconGicon
--   
clearEntryPrimaryIconGicon :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-gicon” property. This is rarely needed
--   directly, but it is used by new.
constructEntryPrimaryIconGicon :: (IsEntry o, MonadIO m, IsIcon a) => a -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconGicon
--   
getEntryPrimaryIconGicon :: (MonadIO m, IsEntry o) => o -> m (Maybe Icon)

-- | Set the value of the “primary-icon-gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconGicon := value ]
--   
setEntryPrimaryIconGicon :: (MonadIO m, IsEntry o, IsIcon a) => o -> a -> m ()

-- | Set the value of the “primary-icon-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #primaryIconName
--   
clearEntryPrimaryIconName :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-name” property. This is rarely needed directly,
--   but it is used by new.
constructEntryPrimaryIconName :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconName
--   
getEntryPrimaryIconName :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “primary-icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconName := value ]
--   
setEntryPrimaryIconName :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Set the value of the “primary-icon-paintable” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #primaryIconPaintable
--   
clearEntryPrimaryIconPaintable :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-paintable” property. This is rarely needed
--   directly, but it is used by new.
constructEntryPrimaryIconPaintable :: (IsEntry o, MonadIO m, IsPaintable a) => a -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-paintable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconPaintable
--   
getEntryPrimaryIconPaintable :: (MonadIO m, IsEntry o) => o -> m (Maybe Paintable)

-- | Set the value of the “primary-icon-paintable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconPaintable := value ]
--   
setEntryPrimaryIconPaintable :: (MonadIO m, IsEntry o, IsPaintable a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-sensitive” property. This is rarely needed
--   directly, but it is used by new.
constructEntryPrimaryIconSensitive :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconSensitive
--   
getEntryPrimaryIconSensitive :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “primary-icon-sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconSensitive := value ]
--   
setEntryPrimaryIconSensitive :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Get the value of the “primary-icon-storage-type” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconStorageType
--   
getEntryPrimaryIconStorageType :: (MonadIO m, IsEntry o) => o -> m ImageType

-- | Set the value of the “primary-icon-tooltip-markup” property
--   to Nothing. When overloading is enabled, this is
--   equivalent to
--   
--   
--   clear #primaryIconTooltipMarkup
--   
clearEntryPrimaryIconTooltipMarkup :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-tooltip-markup” property. This is rarely needed
--   directly, but it is used by new.
constructEntryPrimaryIconTooltipMarkup :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-tooltip-markup” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconTooltipMarkup
--   
getEntryPrimaryIconTooltipMarkup :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “primary-icon-tooltip-markup” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconTooltipMarkup := value ]
--   
setEntryPrimaryIconTooltipMarkup :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Set the value of the “primary-icon-tooltip-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #primaryIconTooltipText
--   
clearEntryPrimaryIconTooltipText :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “primary-icon-tooltip-text” property. This is rarely needed
--   directly, but it is used by new.
constructEntryPrimaryIconTooltipText :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “primary-icon-tooltip-text” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #primaryIconTooltipText
--   
getEntryPrimaryIconTooltipText :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “primary-icon-tooltip-text” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #primaryIconTooltipText := value ]
--   
setEntryPrimaryIconTooltipText :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “progress-fraction” property. This is rarely needed directly,
--   but it is used by new.
constructEntryProgressFraction :: (IsEntry o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “progress-fraction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #progressFraction
--   
getEntryProgressFraction :: (MonadIO m, IsEntry o) => o -> m Double

-- | Set the value of the “progress-fraction” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #progressFraction := value ]
--   
setEntryProgressFraction :: (MonadIO m, IsEntry o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “progress-pulse-step” property. This is rarely needed
--   directly, but it is used by new.
constructEntryProgressPulseStep :: (IsEntry o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “progress-pulse-step” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #progressPulseStep
--   
getEntryProgressPulseStep :: (MonadIO m, IsEntry o) => o -> m Double

-- | Set the value of the “progress-pulse-step” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #progressPulseStep := value ]
--   
setEntryProgressPulseStep :: (MonadIO m, IsEntry o) => o -> Double -> m ()

-- | Get the value of the “scroll-offset” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #scrollOffset
--   
getEntryScrollOffset :: (MonadIO m, IsEntry o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-activatable” property. This is rarely needed
--   directly, but it is used by new.
constructEntrySecondaryIconActivatable :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-activatable” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconActivatable
--   
getEntrySecondaryIconActivatable :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “secondary-icon-activatable” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconActivatable := value ]
--   
setEntrySecondaryIconActivatable :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Set the value of the “secondary-icon-gicon” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #secondaryIconGicon
--   
clearEntrySecondaryIconGicon :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-gicon” property. This is rarely needed
--   directly, but it is used by new.
constructEntrySecondaryIconGicon :: (IsEntry o, MonadIO m, IsIcon a) => a -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconGicon
--   
getEntrySecondaryIconGicon :: (MonadIO m, IsEntry o) => o -> m (Maybe Icon)

-- | Set the value of the “secondary-icon-gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconGicon := value ]
--   
setEntrySecondaryIconGicon :: (MonadIO m, IsEntry o, IsIcon a) => o -> a -> m ()

-- | Set the value of the “secondary-icon-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #secondaryIconName
--   
clearEntrySecondaryIconName :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-name” property. This is rarely needed
--   directly, but it is used by new.
constructEntrySecondaryIconName :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconName
--   
getEntrySecondaryIconName :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “secondary-icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconName := value ]
--   
setEntrySecondaryIconName :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Set the value of the “secondary-icon-paintable” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #secondaryIconPaintable
--   
clearEntrySecondaryIconPaintable :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-paintable” property. This is rarely needed
--   directly, but it is used by new.
constructEntrySecondaryIconPaintable :: (IsEntry o, MonadIO m, IsPaintable a) => a -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-paintable” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconPaintable
--   
getEntrySecondaryIconPaintable :: (MonadIO m, IsEntry o) => o -> m (Maybe Paintable)

-- | Set the value of the “secondary-icon-paintable” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconPaintable := value ]
--   
setEntrySecondaryIconPaintable :: (MonadIO m, IsEntry o, IsPaintable a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-sensitive” property. This is rarely needed
--   directly, but it is used by new.
constructEntrySecondaryIconSensitive :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-sensitive” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconSensitive
--   
getEntrySecondaryIconSensitive :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “secondary-icon-sensitive” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconSensitive := value ]
--   
setEntrySecondaryIconSensitive :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Get the value of the “secondary-icon-storage-type” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconStorageType
--   
getEntrySecondaryIconStorageType :: (MonadIO m, IsEntry o) => o -> m ImageType

-- | Set the value of the “secondary-icon-tooltip-markup” property
--   to Nothing. When overloading is enabled, this is
--   equivalent to
--   
--   
--   clear #secondaryIconTooltipMarkup
--   
clearEntrySecondaryIconTooltipMarkup :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-tooltip-markup” property. This is rarely
--   needed directly, but it is used by new.
constructEntrySecondaryIconTooltipMarkup :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-tooltip-markup”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconTooltipMarkup
--   
getEntrySecondaryIconTooltipMarkup :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “secondary-icon-tooltip-markup”
--   property. When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconTooltipMarkup := value ]
--   
setEntrySecondaryIconTooltipMarkup :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Set the value of the “secondary-icon-tooltip-text” property
--   to Nothing. When overloading is enabled, this is
--   equivalent to
--   
--   
--   clear #secondaryIconTooltipText
--   
clearEntrySecondaryIconTooltipText :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “secondary-icon-tooltip-text” property. This is rarely needed
--   directly, but it is used by new.
constructEntrySecondaryIconTooltipText :: (IsEntry o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “secondary-icon-tooltip-text” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   get entry #secondaryIconTooltipText
--   
getEntrySecondaryIconTooltipText :: (MonadIO m, IsEntry o) => o -> m (Maybe Text)

-- | Set the value of the “secondary-icon-tooltip-text” property.
--   When overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #secondaryIconTooltipText := value ]
--   
setEntrySecondaryIconTooltipText :: (MonadIO m, IsEntry o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-emoji-icon” property. This is rarely needed directly,
--   but it is used by new.
constructEntryShowEmojiIcon :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-emoji-icon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #showEmojiIcon
--   
getEntryShowEmojiIcon :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “show-emoji-icon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #showEmojiIcon := value ]
--   
setEntryShowEmojiIcon :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Set the value of the “tabs” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #tabs
--   
clearEntryTabs :: (MonadIO m, IsEntry o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “tabs” property. This is rarely needed directly, but it is
--   used by new.
constructEntryTabs :: (IsEntry o, MonadIO m) => TabArray -> m (GValueConstruct o)

-- | Get the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get entry #tabs
--   
getEntryTabs :: (MonadIO m, IsEntry o) => o -> m (Maybe TabArray)

-- | Set the value of the “tabs” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set entry [ #tabs := value ]
--   
setEntryTabs :: (MonadIO m, IsEntry o) => o -> TabArray -> m ()

-- | Get the value of the “text-length” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #textLength
--   
getEntryTextLength :: (MonadIO m, IsEntry o) => o -> m Word32

-- | Construct a GValueConstruct with valid value for the
--   “truncate-multiline” property. This is rarely needed
--   directly, but it is used by new.
constructEntryTruncateMultiline :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “truncate-multiline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #truncateMultiline
--   
getEntryTruncateMultiline :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “truncate-multiline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #truncateMultiline := value ]
--   
setEntryTruncateMultiline :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visibility” property. This is rarely needed directly, but it
--   is used by new.
constructEntryVisibility :: (IsEntry o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visibility” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get entry #visibility
--   
getEntryVisibility :: (MonadIO m, IsEntry o) => o -> m Bool

-- | Set the value of the “visibility” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set entry [ #visibility := value ]
--   
setEntryVisibility :: (MonadIO m, IsEntry o) => o -> Bool -> m ()

-- | Emitted when the entry is activated.
--   
--   The keybindings for this signal are all forms of the Enter key.
type EntryActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entry #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryActivate :: (IsEntry a, MonadIO m) => a -> ((?self :: a) => EntryActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entry #activate callback
--   
onEntryActivate :: (IsEntry a, MonadIO m) => a -> ((?self :: a) => EntryActivateCallback) -> m SignalHandlerId

-- | Emitted when an activatable icon is clicked.
type EntryIconPressCallback = EntryIconPosition -> IO ()

-- | Connect a signal handler for the iconPress signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entry #iconPress callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryIconPress :: (IsEntry a, MonadIO m) => a -> ((?self :: a) => EntryIconPressCallback) -> m SignalHandlerId

-- | Connect a signal handler for the iconPress signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entry #iconPress callback
--   
onEntryIconPress :: (IsEntry a, MonadIO m) => a -> ((?self :: a) => EntryIconPressCallback) -> m SignalHandlerId

-- | Emitted on the button release from a mouse click over an activatable
--   icon.
type EntryIconReleaseCallback = EntryIconPosition -> IO ()

-- | Connect a signal handler for the iconRelease signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after entry #iconRelease callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEntryIconRelease :: (IsEntry a, MonadIO m) => a -> ((?self :: a) => EntryIconReleaseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the iconRelease signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on entry #iconRelease callback
--   
onEntryIconRelease :: (IsEntry a, MonadIO m) => a -> ((?self :: a) => EntryIconReleaseCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Entry.Entry
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Entry.Entry
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Entry.Entry
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Entry.Entry o) => GI.Gtk.Objects.Entry.IsEntry o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Entry.Entry)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Entry.Entry
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Entry.Entry

-- | Used by text widgets to let users insert Emoji characters.
--   
--   <picture> <source srcset="emojichooser-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkEmojiChooser" src="emojichooser.png"> </picture>
--   
--   GtkEmojiChooser emits the EmojiChooser::emojiPicked
--   signal when an Emoji is selected.
--   
--   
Shortcuts and Gestures
--   
--   GtkEmojiChooser supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Ctrl</kbd>+<kbd>N</kbd> scrolls th
--   the next section.
--   
- <kbd>Ctrl</kbd>+<kbd>P</kbd> scrolls th
--   the previous section.
--   
--   
--   
Actions
--   
--   GtkEmojiChooser defines a set of built-in actions:
--   
--   
--   
- scroll.section scrolls to the next or previous
--   section.
--   
--   
--   
CSS nodes
--   
--   
--   popover
--   ├── box.emoji-searchbar
--   │   ╰── entry.search
--   ╰── box.emoji-toolbar
--       ├── button.image-button.emoji-section
--       ├── ...
--       ╰── button.image-button.emoji-section
--   
--   
--   Every GtkEmojiChooser consists of a main node called popover.
--   The contents of the popover are largely implementation defined and
--   supposed to inherit general styles. The top searchbar used to search
--   emoji and gets the .emoji-searchbar style class itself. The bottom
--   toolbar used to switch between different emoji categories consists of
--   buttons with the .emoji-section style class and gets the
--   .emoji-toolbar style class itself.
module GI.Gtk.Objects.EmojiChooser

-- | Memory-managed wrapper type.
newtype EmojiChooser
EmojiChooser :: ManagedPtr EmojiChooser -> EmojiChooser

-- | Type class for types which can be safely cast to EmojiChooser,
--   for instance with toEmojiChooser.
class (GObject o, IsDescendantOf EmojiChooser o) => IsEmojiChooser o

-- | Cast to EmojiChooser, for types for which this is known to be
--   safe. For general casts, use castTo.
toEmojiChooser :: (MonadIO m, IsEmojiChooser o) => o -> m EmojiChooser

-- | Creates a new GtkEmojiChooser.
emojiChooserNew :: (HasCallStack, MonadIO m) => m EmojiChooser

-- | Emitted when the user selects an Emoji.
type EmojiChooserEmojiPickedCallback = Text -> IO ()

-- | Connect a signal handler for the emojiPicked signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after emojiChooser #emojiPicked callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEmojiChooserEmojiPicked :: (IsEmojiChooser a, MonadIO m) => a -> ((?self :: a) => EmojiChooserEmojiPickedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the emojiPicked signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on emojiChooser #emojiPicked callback
--   
onEmojiChooserEmojiPicked :: (IsEmojiChooser a, MonadIO m) => a -> ((?self :: a) => EmojiChooserEmojiPickedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.EmojiChooser.EmojiChooser
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EmojiChooser.EmojiChooser
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EmojiChooser.EmojiChooser
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EmojiChooser.EmojiChooser o) => GI.Gtk.Objects.EmojiChooser.IsEmojiChooser o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EmojiChooser.EmojiChooser)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EmojiChooser.EmojiChooser
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EmojiChooser.EmojiChooser

-- | Allows users to edit the displayed text by switching to an “edit
--   mode”.
--   
--   <picture> <source srcset="editable-label-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkEditableLabel" src="editable-label.png"> </picture>
--   
--   GtkEditableLabel does not have API of its own, but it
--   implements the Editable interface.
--   
--   The default bindings for activating the edit mode is to click or press
--   the Enter key. The default bindings for leaving the edit mode are the
--   Enter key (to save the results) or the Escape key (to cancel the
--   editing).
--   
--   
Shortcuts and Gestures
--   
--   GtkEditableLabel supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Enter</kbd> starts editing.
--   
- <kbd>Escape</kbd> stops editing.
--   
--   
--   
Actions
--   
--   GtkEditableLabel defines a set of built-in actions:
--   
--   
--   
- editing.starts switches the widget into editing
--   mode.
--   
- editing.stop switches the widget out of editing
--   mode.
--   
--   
--   
CSS nodes
--   
--   
--   editablelabel[.editing]
--   ╰── stack
--       ├── label
--       ╰── text
--   
--   
--   GtkEditableLabel has a main node with the name editablelabel.
--   When the entry is in editing mode, it gets the .editing style class.
--   
--   For all the subnodes added to the text node in various situations, see
--   Text.
module GI.Gtk.Objects.EditableLabel

-- | Memory-managed wrapper type.
newtype EditableLabel
EditableLabel :: ManagedPtr EditableLabel -> EditableLabel

-- | Type class for types which can be safely cast to EditableLabel,
--   for instance with toEditableLabel.
class (GObject o, IsDescendantOf EditableLabel o) => IsEditableLabel o

-- | Cast to EditableLabel, for types for which this is known to be
--   safe. For general casts, use castTo.
toEditableLabel :: (MonadIO m, IsEditableLabel o) => o -> m EditableLabel

-- | Returns whether the label is currently in “editing mode”.
editableLabelGetEditing :: (HasCallStack, MonadIO m, IsEditableLabel a) => a -> m Bool

-- | Creates a new GtkEditableLabel widget.
editableLabelNew :: (HasCallStack, MonadIO m) => Text -> m EditableLabel

-- | Switches the label into “editing mode”.
editableLabelStartEditing :: (HasCallStack, MonadIO m, IsEditableLabel a) => a -> m ()

-- | Switches the label out of “editing mode”.
--   
--   If commit is True, the resulting text is kept
--   as the Editable:text property value, otherwise the resulting
--   text is discarded and the label will keep its previous
--   Editable:text property value.
editableLabelStopEditing :: (HasCallStack, MonadIO m, IsEditableLabel a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editing” property. This is rarely needed directly, but it is
--   used by new.
constructEditableLabelEditing :: (IsEditableLabel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editableLabel #editing
--   
getEditableLabelEditing :: (MonadIO m, IsEditableLabel o) => o -> m Bool

-- | Set the value of the “editing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set editableLabel [ #editing := value ]
--   
setEditableLabelEditing :: (MonadIO m, IsEditableLabel o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.EditableLabel.EditableLabel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.EditableLabel.EditableLabel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.EditableLabel.EditableLabel
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.EditableLabel.EditableLabel o) => GI.Gtk.Objects.EditableLabel.IsEditableLabel o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.EditableLabel.EditableLabel)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.EditableLabel.EditableLabel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.EditableLabel.EditableLabel

-- | An event controller to receive Drag-and-Drop operations,
--   asynchronously.
--   
--   It is the more complete but also more complex method of handling drop
--   operations compared to DropTarget, and you should only use it
--   if GtkDropTarget doesn't provide all the features you need.
--   
--   To use a GtkDropTargetAsync to receive drops on a widget, you
--   create a GtkDropTargetAsync object, configure which data
--   formats and actions you support, connect to its signals, and then
--   attach it to the widget with widgetAddController.
--   
--   During a drag operation, the first signal that a
--   GtkDropTargetAsync emits is DropTargetAsync::accept,
--   which is meant to determine whether the target is a possible drop site
--   for the ongoing drop. The default handler for the accept signal
--   accepts the drop if it finds a compatible data format and an action
--   that is supported on both sides.
--   
--   If it is, and the widget becomes a target, you will receive a
--   DropTargetAsync::dragEnter signal, followed by
--   DropTargetAsync::dragMotion signals as the pointer moves,
--   optionally a DropTargetAsync::drop signal when a drop happens,
--   and finally a DropTargetAsync::dragLeave signal when the
--   pointer moves off the widget.
--   
--   The dragEnter and dragMotion handler return a
--   GdkDragAction to update the status of the ongoing operation.
--   The drop handler should decide if it ultimately accepts the
--   drop and if it does, it should initiate the data transfer and finish
--   the operation by calling dropFinish.
--   
--   Between the dragEnter and dragLeave signals the widget
--   is a current drop target, and will receive the
--   StateFlagsDropActive state, which can be used by themes to
--   style the widget as a drop target.
module GI.Gtk.Objects.DropTargetAsync

-- | Memory-managed wrapper type.
newtype DropTargetAsync
DropTargetAsync :: ManagedPtr DropTargetAsync -> DropTargetAsync

-- | Type class for types which can be safely cast to
--   DropTargetAsync, for instance with toDropTargetAsync.
class (GObject o, IsDescendantOf DropTargetAsync o) => IsDropTargetAsync o

-- | Cast to DropTargetAsync, for types for which this is known to
--   be safe. For general casts, use castTo.
toDropTargetAsync :: (MonadIO m, IsDropTargetAsync o) => o -> m DropTargetAsync

-- | Gets the actions that this drop target supports.
dropTargetAsyncGetActions :: (HasCallStack, MonadIO m, IsDropTargetAsync a) => a -> m [DragAction]

-- | Gets the data formats that this drop target accepts.
--   
--   If the result is Nothing, all formats are expected to be
--   supported.
dropTargetAsyncGetFormats :: (HasCallStack, MonadIO m, IsDropTargetAsync a) => a -> m (Maybe ContentFormats)

-- | Creates a new GtkDropTargetAsync object.
dropTargetAsyncNew :: (HasCallStack, MonadIO m) => Maybe ContentFormats -> [DragAction] -> m DropTargetAsync

-- | Sets the drop as not accepted on this drag site.
--   
--   This function should be used when delaying the decision on whether to
--   accept a drag or not until after reading the data.
dropTargetAsyncRejectDrop :: (HasCallStack, MonadIO m, IsDropTargetAsync a, IsDrop b) => a -> b -> m ()

-- | Sets the actions that this drop target supports.
dropTargetAsyncSetActions :: (HasCallStack, MonadIO m, IsDropTargetAsync a) => a -> [DragAction] -> m ()

-- | Sets the data formats that this drop target will accept.
dropTargetAsyncSetFormats :: (HasCallStack, MonadIO m, IsDropTargetAsync a) => a -> Maybe ContentFormats -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “actions” property. This is rarely needed directly, but it is
--   used by new.
constructDropTargetAsyncActions :: (IsDropTargetAsync o, MonadIO m) => [DragAction] -> m (GValueConstruct o)

-- | Get the value of the “actions” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTargetAsync #actions
--   
getDropTargetAsyncActions :: (MonadIO m, IsDropTargetAsync o) => o -> m [DragAction]

-- | Set the value of the “actions” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropTargetAsync [ #actions := value ]
--   
setDropTargetAsyncActions :: (MonadIO m, IsDropTargetAsync o) => o -> [DragAction] -> m ()

-- | Set the value of the “formats” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #formats
--   
clearDropTargetAsyncFormats :: (MonadIO m, IsDropTargetAsync o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “formats” property. This is rarely needed directly, but it is
--   used by new.
constructDropTargetAsyncFormats :: (IsDropTargetAsync o, MonadIO m) => ContentFormats -> m (GValueConstruct o)

-- | Get the value of the “formats” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTargetAsync #formats
--   
getDropTargetAsyncFormats :: (MonadIO m, IsDropTargetAsync o) => o -> m (Maybe ContentFormats)

-- | Set the value of the “formats” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropTargetAsync [ #formats := value ]
--   
setDropTargetAsyncFormats :: (MonadIO m, IsDropTargetAsync o) => o -> ContentFormats -> m ()

-- | Emitted on the drop site when a drop operation is about to begin.
--   
--   If the drop is not accepted, False will be returned and the
--   drop target will ignore the drop. If True is returned, the drop
--   is accepted for now but may be rejected later via a call to
--   dropTargetAsyncRejectDrop or ultimately by returning
--   False from a DropTargetAsync::drop handler.
--   
--   The default handler for this signal decides whether to accept the drop
--   based on the formats provided by the drop.
--   
--   If the decision whether the drop will be accepted or rejected needs
--   further processing, such as inspecting the data, this function should
--   return True and proceed as is drop was accepted
--   and if it decides to reject the drop later, it should call
--   dropTargetAsyncRejectDrop.
type DropTargetAsyncAcceptCallback = Drop -> IO Bool

-- | Connect a signal handler for the accept signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTargetAsync #accept callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetAsyncAccept :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncAcceptCallback) -> m SignalHandlerId

-- | Connect a signal handler for the accept signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropTargetAsync #accept callback
--   
onDropTargetAsyncAccept :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncAcceptCallback) -> m SignalHandlerId

-- | Emitted on the drop site when the pointer enters the widget.
--   
--   It can be used to set up custom highlighting.
type DropTargetAsyncDragEnterCallback = Drop -> Double -> Double -> IO [DragAction]

-- | Connect a signal handler for the dragEnter signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTargetAsync #dragEnter callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetAsyncDragEnter :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragEnterCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragEnter signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropTargetAsync #dragEnter callback
--   
onDropTargetAsyncDragEnter :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragEnterCallback) -> m SignalHandlerId

-- | Emitted on the drop site when the pointer leaves the widget.
--   
--   Its main purpose it to undo things done in
--   GtkDropTargetAsyncdragEnter.
type DropTargetAsyncDragLeaveCallback = Drop -> IO ()

-- | Connect a signal handler for the dragLeave signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTargetAsync #dragLeave callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetAsyncDragLeave :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragLeaveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragLeave signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropTargetAsync #dragLeave callback
--   
onDropTargetAsyncDragLeave :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragLeaveCallback) -> m SignalHandlerId

-- | Emitted while the pointer is moving over the drop target.
type DropTargetAsyncDragMotionCallback = Drop -> Double -> Double -> IO [DragAction]

-- | Connect a signal handler for the dragMotion signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTargetAsync #dragMotion callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetAsyncDragMotion :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragMotionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragMotion signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropTargetAsync #dragMotion callback
--   
onDropTargetAsyncDragMotion :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragMotionCallback) -> m SignalHandlerId

-- | Emitted on the drop site when the user drops the data onto the widget.
--   
--   The signal handler must determine whether the pointer position is in a
--   drop zone or not. If it is not in a drop zone, it returns False
--   and no further processing is necessary.
--   
--   Otherwise, the handler returns True. In this case, this handler
--   will accept the drop. The handler must ensure that dropFinish
--   is called to let the source know that the drop is done. The call to
--   dropFinish must only be done when all data has been received.
--   
--   To receive the data, use one of the read functions provided by
--   Drop such as dropReadAsync or dropReadValueAsync.
type DropTargetAsyncDropCallback = Drop -> Double -> Double -> IO Bool

-- | Connect a signal handler for the drop signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTargetAsync #drop callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetAsyncDrop :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDropCallback) -> m SignalHandlerId

-- | Connect a signal handler for the drop signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dropTargetAsync #drop callback
--   
onDropTargetAsyncDrop :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDropCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.DropTargetAsync.DropTargetAsync
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DropTargetAsync.DropTargetAsync
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DropTargetAsync.DropTargetAsync
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DropTargetAsync.DropTargetAsync o) => GI.Gtk.Objects.DropTargetAsync.IsDropTargetAsync o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DropTargetAsync.DropTargetAsync)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DropTargetAsync.DropTargetAsync
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DropTargetAsync.DropTargetAsync

-- | An event controller to receive Drag-and-Drop operations.
--   
--   The most basic way to use a GtkDropTarget to receive drops on
--   a widget is to create it via dropTargetNew, passing in the
--   GType of the data you want to receive and connect to the
--   DropTarget::drop signal to receive the data:
--   
--   
c code
--   
--   
--   static gboolean
--   on_drop (GtkDropTarget *target,
--            const GValue  *value,
--            double         x,
--            double         y,
--            gpointer       data)
--   {
--     MyWidget *self = data;
--   
--     // Call the appropriate setter depending on the type of data
--     // that we received
--     if (G_VALUE_HOLDS (value, G_TYPE_FILE))
--       my_widget_set_file (self, g_value_get_object (value));
--     else if (G_VALUE_HOLDS (value, GDK_TYPE_PIXBUF))
--       my_widget_set_pixbuf (self, g_value_get_object (value));
--     else
--       return FALSE;
--   
--     return TRUE;
--   }
--   
--   static void
--   my_widget_init (MyWidget *self)
--   {
--     GtkDropTarget *target =
--       gtk_drop_target_new (G_TYPE_INVALID, GDK_ACTION_COPY);
--   
--     // This widget accepts two types of drop types: GFile objects
--     // and GdkPixbuf objects
--     gtk_drop_target_set_gtypes (target, (GType [2]) {
--       G_TYPE_FILE,
--       GDK_TYPE_PIXBUF,
--     }, 2);
--   
--     g_signal_connect (target, "drop", G_CALLBACK (on_drop), self);
--     gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (target));
--   }
--   
--   
--   GtkDropTarget supports more options, such as:
--   
--   
--   
- rejecting potential drops via the DropTarget::accept signal
--   and the dropTargetReject function to let other drop targets
--   handle the drop
--   
- tracking an ongoing drag operation before the drop via the
--   DropTarget::enter, DropTarget::motion and
--   DropTarget::leave signals
--   
- configuring how to receive data by setting the
--   DropTarget:preload property and listening for its availability
--   via the DropTarget:value property
--   
--   
--   However, GtkDropTarget is ultimately modeled in a synchronous
--   way and only supports data transferred via GType. If you want
--   full control over an ongoing drop, the DropTargetAsync object
--   gives you this ability.
--   
--   While a pointer is dragged over the drop target's widget and the drop
--   has not been rejected, that widget will receive the
--   StateFlagsDropActive state, which can be used to style the
--   widget.
--   
--   If you are not interested in receiving the drop, but just want to
--   update UI state during a Drag-and-Drop operation (e.g. switching
--   tabs), you can use DropControllerMotion.
module GI.Gtk.Objects.DropTarget

-- | Memory-managed wrapper type.
newtype DropTarget
DropTarget :: ManagedPtr DropTarget -> DropTarget

-- | Type class for types which can be safely cast to DropTarget,
--   for instance with toDropTarget.
class (GObject o, IsDescendantOf DropTarget o) => IsDropTarget o

-- | Cast to DropTarget, for types for which this is known to be
--   safe. For general casts, use castTo.
toDropTarget :: (MonadIO m, IsDropTarget o) => o -> m DropTarget

-- | Gets the actions that this drop target supports.
dropTargetGetActions :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m [DragAction]

-- | Gets the currently handled drop operation.
--   
--   If no drop operation is going on, Nothing is returned.
--   
--   Since: 4.4
dropTargetGetCurrentDrop :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m (Maybe Drop)

-- | Gets the currently handled drop operation.
--   
--   If no drop operation is going on, Nothing is returned.

-- | Deprecated: (Since version 4.4)Use dropTargetGetCurrentDrop
--   instead
dropTargetGetDrop :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m (Maybe Drop)

-- | Gets the data formats that this drop target accepts.
--   
--   If the result is Nothing, all formats are expected to be
--   supported.
dropTargetGetFormats :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m (Maybe ContentFormats)

-- | Gets the list of supported GTypes that can be dropped on the
--   target.
--   
--   If no types have been set, NULL will be returned.
dropTargetGetGtypes :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m (Maybe [GType])

-- | Gets whether data should be preloaded on hover.
dropTargetGetPreload :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m Bool

-- | Gets the current drop data, as a GValue.
dropTargetGetValue :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m (Maybe GValue)

-- | Creates a new GtkDropTarget object.
--   
--   If the drop target should support more than 1 type, pass
--   G_TYPE_INVALID for type and then call
--   dropTargetSetGtypes.
dropTargetNew :: (HasCallStack, MonadIO m) => GType -> [DragAction] -> m DropTarget

-- | Rejects the ongoing drop operation.
--   
--   If no drop operation is ongoing, i.e when
--   DropTarget:currentDrop is Nothing, this function does
--   nothing.
--   
--   This function should be used when delaying the decision on whether to
--   accept a drag or not until after reading the data.
dropTargetReject :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> m ()

-- | Sets the actions that this drop target supports.
dropTargetSetActions :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> [DragAction] -> m ()

-- | Sets the supported GTypes for this drop target.
dropTargetSetGtypes :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> Maybe [GType] -> m ()

-- | Sets whether data should be preloaded on hover.
dropTargetSetPreload :: (HasCallStack, MonadIO m, IsDropTarget a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “actions” property. This is rarely needed directly, but it is
--   used by new.
constructDropTargetActions :: (IsDropTarget o, MonadIO m) => [DragAction] -> m (GValueConstruct o)

-- | Get the value of the “actions” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTarget #actions
--   
getDropTargetActions :: (MonadIO m, IsDropTarget o) => o -> m [DragAction]

-- | Set the value of the “actions” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropTarget [ #actions := value ]
--   
setDropTargetActions :: (MonadIO m, IsDropTarget o) => o -> [DragAction] -> m ()

-- | Get the value of the “current-drop” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTarget #currentDrop
--   
getDropTargetCurrentDrop :: (MonadIO m, IsDropTarget o) => o -> m (Maybe Drop)

-- | Get the value of the “drop” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get dropTarget #drop
--   
getDropTargetDrop :: (MonadIO m, IsDropTarget o) => o -> m (Maybe Drop)

-- | Construct a GValueConstruct with valid value for the
--   “formats” property. This is rarely needed directly, but it is
--   used by new.
constructDropTargetFormats :: (IsDropTarget o, MonadIO m) => ContentFormats -> m (GValueConstruct o)

-- | Get the value of the “formats” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTarget #formats
--   
getDropTargetFormats :: (MonadIO m, IsDropTarget o) => o -> m (Maybe ContentFormats)

-- | Construct a GValueConstruct with valid value for the
--   “preload” property. This is rarely needed directly, but it is
--   used by new.
constructDropTargetPreload :: (IsDropTarget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “preload” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTarget #preload
--   
getDropTargetPreload :: (MonadIO m, IsDropTarget o) => o -> m Bool

-- | Set the value of the “preload” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropTarget [ #preload := value ]
--   
setDropTargetPreload :: (MonadIO m, IsDropTarget o) => o -> Bool -> m ()

-- | Get the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropTarget #value
--   
getDropTargetValue :: (MonadIO m, IsDropTarget o) => o -> m (Maybe GValue)

-- | Emitted on the drop site when a drop operation is about to begin.
--   
--   If the drop is not accepted, False will be returned and the
--   drop target will ignore the drop. If True is returned, the drop
--   is accepted for now but may be rejected later via a call to
--   dropTargetReject or ultimately by returning False from a
--   DropTarget::drop handler.
--   
--   The default handler for this signal decides whether to accept the drop
--   based on the formats provided by the drop.
--   
--   If the decision whether the drop will be accepted or rejected depends
--   on the data, this function should return True, the
--   DropTarget:preload property should be set and the value should
--   be inspected via the notify:value signal, calling
--   dropTargetReject if required.
type DropTargetAcceptCallback = Drop -> IO Bool

-- | Connect a signal handler for the accept signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTarget #accept callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetAccept :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetAcceptCallback) -> m SignalHandlerId

-- | Connect a signal handler for the accept signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropTarget #accept callback
--   
onDropTargetAccept :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetAcceptCallback) -> m SignalHandlerId

-- | Emitted on the drop site when the user drops the data onto the widget.
--   
--   The signal handler must determine whether the pointer position is in a
--   drop zone or not. If it is not in a drop zone, it returns False
--   and no further processing is necessary.
--   
--   Otherwise, the handler returns True. In this case, this handler
--   will accept the drop. The handler is responsible for using the given
--   value and performing the drop operation.
type DropTargetDropCallback = GValue -> Double -> Double -> IO Bool

-- | Connect a signal handler for the drop signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTarget #drop callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetDrop :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetDropCallback) -> m SignalHandlerId

-- | Connect a signal handler for the drop signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dropTarget #drop callback
--   
onDropTargetDrop :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetDropCallback) -> m SignalHandlerId

-- | Emitted on the drop site when the pointer enters the widget.
--   
--   It can be used to set up custom highlighting.
type DropTargetEnterCallback = Double -> Double -> IO [DragAction]

-- | Connect a signal handler for the enter signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTarget #enter callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetEnter :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetEnterCallback) -> m SignalHandlerId

-- | Connect a signal handler for the enter signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dropTarget #enter callback
--   
onDropTargetEnter :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetEnterCallback) -> m SignalHandlerId

-- | Emitted on the drop site when the pointer leaves the widget.
--   
--   Its main purpose it to undo things done in DropTarget::enter.
type DropTargetLeaveCallback = IO ()

-- | Connect a signal handler for the leave signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTarget #leave callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetLeave :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetLeaveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the leave signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dropTarget #leave callback
--   
onDropTargetLeave :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetLeaveCallback) -> m SignalHandlerId

-- | Emitted while the pointer is moving over the drop target.
type DropTargetMotionCallback = Double -> Double -> IO [DragAction]

-- | Connect a signal handler for the motion signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropTarget #motion callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropTargetMotion :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetMotionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the motion signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropTarget #motion callback
--   
onDropTargetMotion :: (IsDropTarget a, MonadIO m) => a -> ((?self :: a) => DropTargetMotionCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.DropTarget.DropTarget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DropTarget.DropTarget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DropTarget.DropTarget
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DropTarget.DropTarget o) => GI.Gtk.Objects.DropTarget.IsDropTarget o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DropTarget.DropTarget)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DropTarget.DropTarget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DropTarget.DropTarget

-- | Allows the user to choose an item from a list of options.
--   
--   <picture> <source srcset="drop-down-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkDropDown" src="drop-down.png"> </picture>
--   
--   The GtkDropDown displays the
--   [selected]DropDown:selected choice.
--   
--   The options are given to GtkDropDown in the form of
--   GListModel and how the individual options are represented is
--   determined by a ListItemFactory. The default factory displays
--   simple strings, and adds a checkmark to the selected item in the
--   popup.
--   
--   To set your own factory, use dropDownSetFactory. It is possible
--   to use a separate factory for the items in the popup, with
--   dropDownSetListFactory.
--   
--   GtkDropDown knows how to obtain strings from the items in a
--   StringList; for other models, you have to provide an expression
--   to find the strings via dropDownSetExpression.
--   
--   GtkDropDown can optionally allow search in the popup, which
--   is useful if the list of options is long. To enable the search entry,
--   use dropDownSetEnableSearch.
--   
--   Here is a UI definition example for GtkDropDown with a simple
--   model:
--   
--   
xml code
--   
--   
--   <object class="GtkDropDown">
--     <property name="model">
--       <object class="GtkStringList">
--         <items>
--           <item translatable="yes">Factory</item>
--           <item translatable="yes">Home</item>
--           <item translatable="yes">Subway</item>
--         </items>
--       </object>
--     </property>
--   </object>
--   
--   
--   If a GtkDropDown is created in this manner, or with
--   dropDownNewFromStrings, for instance, the object returned from
--   dropDownGetSelectedItem will be a StringObject.
--   
--   To learn more about the list widget framework, see the
--   overview.
--   
--   
CSS nodes
--   
--   GtkDropDown has a single CSS node with name dropdown, with
--   the button and popover nodes as children.
--   
--   
Accessibility
--   
--   GtkDropDown uses the AccessibleRoleComboBox role.
module GI.Gtk.Objects.DropDown

-- | Memory-managed wrapper type.
newtype DropDown
DropDown :: ManagedPtr DropDown -> DropDown

-- | Type class for types which can be safely cast to DropDown, for
--   instance with toDropDown.
class (GObject o, IsDescendantOf DropDown o) => IsDropDown o

-- | Cast to DropDown, for types for which this is known to be safe.
--   For general casts, use castTo.
toDropDown :: (MonadIO m, IsDropDown o) => o -> m DropDown

-- | Returns whether search is enabled.
dropDownGetEnableSearch :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m Bool

-- | Gets the expression set that is used to obtain strings from items.
--   
--   See dropDownSetExpression.
dropDownGetExpression :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m (Maybe Expression)

-- | Gets the factory that's currently used to populate list items.
--   
--   The factory returned by this function is always used for the item in
--   the button. It is also used for items in the popup if
--   DropDown:listFactory is not set.
dropDownGetFactory :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m (Maybe ListItemFactory)

-- | Gets the factory that's currently used to create header widgets for
--   the popup.
--   
--   Since: 4.12
dropDownGetHeaderFactory :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m (Maybe ListItemFactory)

-- | Gets the factory that's currently used to populate list items in the
--   popup.
dropDownGetListFactory :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m (Maybe ListItemFactory)

-- | Gets the model that provides the displayed items.
dropDownGetModel :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m (Maybe ListModel)

-- | Returns the match mode that the search filter is using.
--   
--   Since: 4.12
dropDownGetSearchMatchMode :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m StringFilterMatchMode

-- | Gets the position of the selected item.
dropDownGetSelected :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m Word32

-- | Gets the selected item. If no item is selected, Nothing is
--   returned.
dropDownGetSelectedItem :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m (Maybe Object)

-- | Returns whether to show an arrow within the widget.
--   
--   Since: 4.6
dropDownGetShowArrow :: (HasCallStack, MonadIO m, IsDropDown a) => a -> m Bool

-- | Creates a new GtkDropDown.
--   
--   You may want to call dropDownSetFactory to set up a way to map
--   its items to widgets.
dropDownNew :: (HasCallStack, MonadIO m, IsListModel a, IsExpression b) => Maybe a -> Maybe b -> m DropDown

-- | Creates a new GtkDropDown that is populated with the strings.
dropDownNewFromStrings :: (HasCallStack, MonadIO m) => [Text] -> m DropDown

-- | Sets whether a search entry will be shown in the popup that allows to
--   search for items in the list.
--   
--   Note that DropDown:expression must be set for search to work.
dropDownSetEnableSearch :: (HasCallStack, MonadIO m, IsDropDown a) => a -> Bool -> m ()

-- | Sets the expression that gets evaluated to obtain strings from items.
--   
--   This is used for search in the popup. The expression must have a value
--   type of G_TYPE_STRING.
dropDownSetExpression :: (HasCallStack, MonadIO m, IsDropDown a, IsExpression b) => a -> Maybe b -> m ()

-- | Sets the GtkListItemFactory to use for populating list items.
dropDownSetFactory :: (HasCallStack, MonadIO m, IsDropDown a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the GtkListItemFactory to use for creating header
--   widgets for the popup.
--   
--   Since: 4.12
dropDownSetHeaderFactory :: (HasCallStack, MonadIO m, IsDropDown a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the GtkListItemFactory to use for populating list items
--   in the popup.
dropDownSetListFactory :: (HasCallStack, MonadIO m, IsDropDown a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the GListModel to use.
dropDownSetModel :: (HasCallStack, MonadIO m, IsDropDown a, IsListModel b) => a -> Maybe b -> m ()

-- | Sets the match mode for the search filter.
--   
--   Since: 4.12
dropDownSetSearchMatchMode :: (HasCallStack, MonadIO m, IsDropDown a) => a -> StringFilterMatchMode -> m ()

-- | Selects the item at the given position.
dropDownSetSelected :: (HasCallStack, MonadIO m, IsDropDown a) => a -> Word32 -> m ()

-- | Sets whether an arrow will be displayed within the widget.
--   
--   Since: 4.6
dropDownSetShowArrow :: (HasCallStack, MonadIO m, IsDropDown a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-search” property. This is rarely needed directly, but
--   it is used by new.
constructDropDownEnableSearch :: (IsDropDown o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-search” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #enableSearch
--   
getDropDownEnableSearch :: (MonadIO m, IsDropDown o) => o -> m Bool

-- | Set the value of the “enable-search” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #enableSearch := value ]
--   
setDropDownEnableSearch :: (MonadIO m, IsDropDown o) => o -> Bool -> m ()

-- | Set the value of the “expression” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #expression
--   
clearDropDownExpression :: (MonadIO m, IsDropDown o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expression” property. This is rarely needed directly, but it
--   is used by new.
constructDropDownExpression :: (IsDropDown o, MonadIO m, IsExpression a) => a -> m (GValueConstruct o)

-- | Get the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #expression
--   
getDropDownExpression :: (MonadIO m, IsDropDown o) => o -> m (Maybe Expression)

-- | Set the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #expression := value ]
--   
setDropDownExpression :: (MonadIO m, IsDropDown o, IsExpression a) => o -> a -> m ()

-- | Set the value of the “factory” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #factory
--   
clearDropDownFactory :: (MonadIO m, IsDropDown o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “factory” property. This is rarely needed directly, but it is
--   used by new.
constructDropDownFactory :: (IsDropDown o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #factory
--   
getDropDownFactory :: (MonadIO m, IsDropDown o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #factory := value ]
--   
setDropDownFactory :: (MonadIO m, IsDropDown o, IsListItemFactory a) => o -> a -> m ()

-- | Set the value of the “header-factory” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #headerFactory
--   
clearDropDownHeaderFactory :: (MonadIO m, IsDropDown o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “header-factory” property. This is rarely needed directly,
--   but it is used by new.
constructDropDownHeaderFactory :: (IsDropDown o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “header-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #headerFactory
--   
getDropDownHeaderFactory :: (MonadIO m, IsDropDown o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “header-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #headerFactory := value ]
--   
setDropDownHeaderFactory :: (MonadIO m, IsDropDown o, IsListItemFactory a) => o -> a -> m ()

-- | Set the value of the “list-factory” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #listFactory
--   
clearDropDownListFactory :: (MonadIO m, IsDropDown o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “list-factory” property. This is rarely needed directly, but
--   it is used by new.
constructDropDownListFactory :: (IsDropDown o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “list-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #listFactory
--   
getDropDownListFactory :: (MonadIO m, IsDropDown o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “list-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #listFactory := value ]
--   
setDropDownListFactory :: (MonadIO m, IsDropDown o, IsListItemFactory a) => o -> a -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearDropDownModel :: (MonadIO m, IsDropDown o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructDropDownModel :: (IsDropDown o, MonadIO m, IsListModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #model
--   
getDropDownModel :: (MonadIO m, IsDropDown o) => o -> m (Maybe ListModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #model := value ]
--   
setDropDownModel :: (MonadIO m, IsDropDown o, IsListModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “search-match-mode” property. This is rarely needed directly,
--   but it is used by new.
constructDropDownSearchMatchMode :: (IsDropDown o, MonadIO m) => StringFilterMatchMode -> m (GValueConstruct o)

-- | Get the value of the “search-match-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #searchMatchMode
--   
getDropDownSearchMatchMode :: (MonadIO m, IsDropDown o) => o -> m StringFilterMatchMode

-- | Set the value of the “search-match-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #searchMatchMode := value ]
--   
setDropDownSearchMatchMode :: (MonadIO m, IsDropDown o) => o -> StringFilterMatchMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “selected” property. This is rarely needed directly, but it
--   is used by new.
constructDropDownSelected :: (IsDropDown o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #selected
--   
getDropDownSelected :: (MonadIO m, IsDropDown o) => o -> m Word32

-- | Set the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #selected := value ]
--   
setDropDownSelected :: (MonadIO m, IsDropDown o) => o -> Word32 -> m ()

-- | Get the value of the “selected-item” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #selectedItem
--   
getDropDownSelectedItem :: (MonadIO m, IsDropDown o) => o -> m (Maybe Object)

-- | Construct a GValueConstruct with valid value for the
--   “show-arrow” property. This is rarely needed directly, but it
--   is used by new.
constructDropDownShowArrow :: (IsDropDown o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-arrow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropDown #showArrow
--   
getDropDownShowArrow :: (MonadIO m, IsDropDown o) => o -> m Bool

-- | Set the value of the “show-arrow” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dropDown [ #showArrow := value ]
--   
setDropDownShowArrow :: (MonadIO m, IsDropDown o) => o -> Bool -> m ()

-- | Emitted to when the drop down is activated.
--   
--   The ::activate signal on GtkDropDown is an action
--   signal and emitting it causes the drop down to pop up its dropdown.
--   
--   Since: 4.6
type DropDownActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropDown #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropDownActivate :: (IsDropDown a, MonadIO m) => a -> ((?self :: a) => DropDownActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropDown #activate callback
--   
onDropDownActivate :: (IsDropDown a, MonadIO m) => a -> ((?self :: a) => DropDownActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.DropDown.DropDown
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DropDown.DropDown
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DropDown.DropDown
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DropDown.DropDown o) => GI.Gtk.Objects.DropDown.IsDropDown o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DropDown.DropDown)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DropDown.DropDown
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DropDown.DropDown

-- | An event controller tracking the pointer during Drag-and-Drop
--   operations.
--   
--   It is modeled after EventControllerMotion so if you have used
--   that, this should feel really familiar.
--   
--   This controller is not able to accept drops, use DropTarget for
--   that purpose.
module GI.Gtk.Objects.DropControllerMotion

-- | Memory-managed wrapper type.
newtype DropControllerMotion
DropControllerMotion :: ManagedPtr DropControllerMotion -> DropControllerMotion

-- | Type class for types which can be safely cast to
--   DropControllerMotion, for instance with
--   toDropControllerMotion.
class (GObject o, IsDescendantOf DropControllerMotion o) => IsDropControllerMotion o

-- | Cast to DropControllerMotion, for types for which this is known
--   to be safe. For general casts, use castTo.
toDropControllerMotion :: (MonadIO m, IsDropControllerMotion o) => o -> m DropControllerMotion

-- | Returns if a Drag-and-Drop operation is within the widget
--   self or one of its children.
dropControllerMotionContainsPointer :: (HasCallStack, MonadIO m, IsDropControllerMotion a) => a -> m Bool

-- | Returns the GdkDrop of a current Drag-and-Drop operation over
--   the widget of self.
dropControllerMotionGetDrop :: (HasCallStack, MonadIO m, IsDropControllerMotion a) => a -> m (Maybe Drop)

-- | Returns if a Drag-and-Drop operation is within the widget
--   self, not one of its children.
dropControllerMotionIsPointer :: (HasCallStack, MonadIO m, IsDropControllerMotion a) => a -> m Bool

-- | Creates a new event controller that will handle pointer motion events
--   during drag and drop.
dropControllerMotionNew :: (HasCallStack, MonadIO m) => m DropControllerMotion

-- | Get the value of the “contains-pointer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropControllerMotion #containsPointer
--   
getDropControllerMotionContainsPointer :: (MonadIO m, IsDropControllerMotion o) => o -> m Bool

-- | Get the value of the “drop” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get dropControllerMotion #drop
--   
getDropControllerMotionDrop :: (MonadIO m, IsDropControllerMotion o) => o -> m (Maybe Drop)

-- | Get the value of the “is-pointer” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dropControllerMotion #isPointer
--   
getDropControllerMotionIsPointer :: (MonadIO m, IsDropControllerMotion o) => o -> m Bool

-- | Signals that the pointer has entered the widget.
type DropControllerMotionEnterCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the enter signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropControllerMotion #enter callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropControllerMotionEnter :: (IsDropControllerMotion a, MonadIO m) => a -> ((?self :: a) => DropControllerMotionEnterCallback) -> m SignalHandlerId

-- | Connect a signal handler for the enter signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dropControllerMotion #enter callback
--   
onDropControllerMotionEnter :: (IsDropControllerMotion a, MonadIO m) => a -> ((?self :: a) => DropControllerMotionEnterCallback) -> m SignalHandlerId

-- | Signals that the pointer has left the widget.
type DropControllerMotionLeaveCallback = IO ()

-- | Connect a signal handler for the leave signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropControllerMotion #leave callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropControllerMotionLeave :: (IsDropControllerMotion a, MonadIO m) => a -> ((?self :: a) => DropControllerMotionLeaveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the leave signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dropControllerMotion #leave callback
--   
onDropControllerMotionLeave :: (IsDropControllerMotion a, MonadIO m) => a -> ((?self :: a) => DropControllerMotionLeaveCallback) -> m SignalHandlerId

-- | Emitted when the pointer moves inside the widget.
type DropControllerMotionMotionCallback = Double -> Double -> IO ()

-- | Connect a signal handler for the motion signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dropControllerMotion #motion callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDropControllerMotionMotion :: (IsDropControllerMotion a, MonadIO m) => a -> ((?self :: a) => DropControllerMotionMotionCallback) -> m SignalHandlerId

-- | Connect a signal handler for the motion signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dropControllerMotion #motion callback
--   
onDropControllerMotionMotion :: (IsDropControllerMotion a, MonadIO m) => a -> ((?self :: a) => DropControllerMotionMotionCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.DropControllerMotion.DropControllerMotion
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DropControllerMotion.DropControllerMotion
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DropControllerMotion.DropControllerMotion
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DropControllerMotion.DropControllerMotion o) => GI.Gtk.Objects.DropControllerMotion.IsDropControllerMotion o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DropControllerMotion.DropControllerMotion)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DropControllerMotion.DropControllerMotion
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DropControllerMotion.DropControllerMotion

-- | Allows drawing with cairo.
--   
--   <picture> <source srcset="drawingarea-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkDrawingArea" src="drawingarea.png"> </picture>
--   
--   It’s essentially a blank widget; you can draw on it. After creating a
--   drawing area, the application may want to connect to:
--   
--   
--   
- The Widget::realize signal to take any necessary actions
--   when the widget is instantiated on a particular display. (Create GDK
--   resources in response to this signal.)
--   
- The DrawingArea::resize signal to take any necessary
--   actions when the widget changes size.
--   
- Call drawingAreaSetDrawFunc to handle redrawing the
--   contents of the widget.
--   
--   
--   The following code portion demonstrates using a drawing area to
--   display a circle in the normal widget foreground color.
--   
--   
Simple GtkDrawingArea usage
--   
--   
c code
--   
--   
--   static void
--   draw_function (GtkDrawingArea *area,
--                  cairo_t        *cr,
--                  int             width,
--                  int             height,
--                  gpointer        data)
--   {
--     GdkRGBA color;
--   
--     cairo_arc (cr,
--                width / 2.0, height / 2.0,
--                MIN (width, height) / 2.0,
--                0, 2 * G_PI);
--   
--     gtk_widget_get_color (GTK_WIDGET (area),
--                           &color);
--     gdk_cairo_set_source_rgba (cr, &color);
--   
--     cairo_fill (cr);
--   }
--   
--   int
--   main (int argc, char **argv)
--   {
--     gtk_init ();
--   
--     GtkWidget *area = gtk_drawing_area_new ();
--     gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (area), 100);
--     gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (area), 100);
--     gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (area),
--                                     draw_function,
--                                     NULL, NULL);
--     return 0;
--   }
--   
--   
--   The draw function is normally called when a drawing area first comes
--   onscreen, or when it’s covered by another window and then uncovered.
--   You can also force a redraw by adding to the “damage region” of the
--   drawing area’s window using widgetQueueDraw. This will cause
--   the drawing area to call the draw function again.
--   
--   The available routines for drawing are documented in the Cairo
--   documentation; GDK offers additional API to integrate with Cairo,
--   like cairoSetSourceRgba or cairoSetSourcePixbuf.
--   
--   To receive mouse events on a drawing area, you will need to use event
--   controllers. To receive keyboard events, you will need to set the
--   “can-focus” property on the drawing area, and you should probably draw
--   some user-visible indication that the drawing area is focused.
--   
--   If you need more complex control over your widget, you should consider
--   creating your own GtkWidget subclass.
module GI.Gtk.Objects.DrawingArea

-- | Memory-managed wrapper type.
newtype DrawingArea
DrawingArea :: ManagedPtr DrawingArea -> DrawingArea

-- | Type class for types which can be safely cast to DrawingArea,
--   for instance with toDrawingArea.
class (GObject o, IsDescendantOf DrawingArea o) => IsDrawingArea o

-- | Cast to DrawingArea, for types for which this is known to be
--   safe. For general casts, use castTo.
toDrawingArea :: (MonadIO m, IsDrawingArea o) => o -> m DrawingArea

-- | Retrieves the content height of the GtkDrawingArea.
drawingAreaGetContentHeight :: (HasCallStack, MonadIO m, IsDrawingArea a) => a -> m Int32

-- | Retrieves the content width of the GtkDrawingArea.
drawingAreaGetContentWidth :: (HasCallStack, MonadIO m, IsDrawingArea a) => a -> m Int32

-- | Creates a new drawing area.
drawingAreaNew :: (HasCallStack, MonadIO m) => m DrawingArea

-- | Sets the desired height of the contents of the drawing area.
--   
--   Note that because widgets may be allocated larger sizes than they
--   requested, it is possible that the actual height passed to your draw
--   function is larger than the height set here. You can use
--   widgetSetValign to avoid that.
--   
--   If the height is set to 0 (the default), the drawing area may
--   disappear.
drawingAreaSetContentHeight :: (HasCallStack, MonadIO m, IsDrawingArea a) => a -> Int32 -> m ()

-- | Sets the desired width of the contents of the drawing area.
--   
--   Note that because widgets may be allocated larger sizes than they
--   requested, it is possible that the actual width passed to your draw
--   function is larger than the width set here. You can use
--   widgetSetHalign to avoid that.
--   
--   If the width is set to 0 (the default), the drawing area may
--   disappear.
drawingAreaSetContentWidth :: (HasCallStack, MonadIO m, IsDrawingArea a) => a -> Int32 -> m ()

-- | Setting a draw function is the main thing you want to do when using a
--   drawing area.
--   
--   The draw function is called whenever GTK needs to draw the contents of
--   the drawing area to the screen.
--   
--   The draw function will be called during the drawing stage of GTK. In
--   the drawing stage it is not allowed to change properties of any GTK
--   widgets or call any functions that would cause any properties to be
--   changed. You should restrict yourself exclusively to drawing your
--   contents in the draw function.
--   
--   If what you are drawing does change, call widgetQueueDraw on
--   the drawing area. This will cause a redraw and will call
--   drawFunc again.
drawingAreaSetDrawFunc :: (HasCallStack, MonadIO m, IsDrawingArea a) => a -> Maybe DrawingAreaDrawFunc -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “content-height” property. This is rarely needed directly,
--   but it is used by new.
constructDrawingAreaContentHeight :: (IsDrawingArea o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “content-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawingArea #contentHeight
--   
getDrawingAreaContentHeight :: (MonadIO m, IsDrawingArea o) => o -> m Int32

-- | Set the value of the “content-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawingArea [ #contentHeight := value ]
--   
setDrawingAreaContentHeight :: (MonadIO m, IsDrawingArea o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “content-width” property. This is rarely needed directly, but
--   it is used by new.
constructDrawingAreaContentWidth :: (IsDrawingArea o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “content-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get drawingArea #contentWidth
--   
getDrawingAreaContentWidth :: (MonadIO m, IsDrawingArea o) => o -> m Int32

-- | Set the value of the “content-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set drawingArea [ #contentWidth := value ]
--   
setDrawingAreaContentWidth :: (MonadIO m, IsDrawingArea o) => o -> Int32 -> m ()

-- | Emitted once when the widget is realized, and then each time the
--   widget is changed while realized.
--   
--   This is useful in order to keep state up to date with the widget size,
--   like for instance a backing surface.
type DrawingAreaResizeCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the resize signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after drawingArea #resize callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDrawingAreaResize :: (IsDrawingArea a, MonadIO m) => a -> ((?self :: a) => DrawingAreaResizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the resize signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on drawingArea #resize callback
--   
onDrawingAreaResize :: (IsDrawingArea a, MonadIO m) => a -> ((?self :: a) => DrawingAreaResizeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.DrawingArea.DrawingArea
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DrawingArea.DrawingArea
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DrawingArea.DrawingArea
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DrawingArea.DrawingArea o) => GI.Gtk.Objects.DrawingArea.IsDrawingArea o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DrawingArea.DrawingArea)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DrawingArea.DrawingArea
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DrawingArea.DrawingArea

-- | An event controller to initiate Drag-And-Drop operations.
--   
--   GtkDragSource can be set up with the necessary ingredients
--   for a DND operation ahead of time. This includes the source for the
--   data that is being transferred, in the form of a
--   ContentProvider, the desired action, and the icon to use during
--   the drag operation. After setting it up, the drag source must be added
--   to a widget as an event controller, using widgetAddController.
--   
--   
c code
--   
--   
--   static void
--   my_widget_init (MyWidget *self)
--   {
--     GtkDragSource *drag_source = gtk_drag_source_new ();
--   
--     g_signal_connect (drag_source, "prepare", G_CALLBACK (on_drag_prepare), self);
--     g_signal_connect (drag_source, "drag-begin", G_CALLBACK (on_drag_begin), self);
--   
--     gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (drag_source));
--   }
--   
--   
--   Setting up the content provider and icon ahead of time only makes
--   sense when the data does not change. More commonly, you will want to
--   set them up just in time. To do so, GtkDragSource has
--   DragSource::prepare and DragSource::dragBegin signals.
--   
--   The prepare signal is emitted before a drag is started, and can
--   be used to set the content provider and actions that the drag should
--   be started with.
--   
--   
c code
--   
--   
--   static GdkContentProvider *
--   on_drag_prepare (GtkDragSource *source,
--                    double         x,
--                    double         y,
--                    MyWidget      *self)
--   {
--     // This widget supports two types of content: GFile objects
--     // and GdkPixbuf objects; GTK will handle the serialization
--     // of these types automatically
--     GFile *file = my_widget_get_file (self);
--     GdkPixbuf *pixbuf = my_widget_get_pixbuf (self);
--   
--     return gdk_content_provider_new_union ((GdkContentProvider *[2]) {
--         gdk_content_provider_new_typed (G_TYPE_FILE, file),
--         gdk_content_provider_new_typed (GDK_TYPE_PIXBUF, pixbuf),
--       }, 2);
--   }
--   
--   
--   The dragBegin signal is emitted after the GdkDrag
--   object has been created, and can be used to set up the drag icon.
--   
--   
c code
--   
--   
--   static void
--   on_drag_begin (GtkDragSource *source,
--                  GdkDrag       *drag,
--                  MyWidget      *self)
--   {
--     // Set the widget as the drag icon
--     GdkPaintable *paintable = gtk_widget_paintable_new (GTK_WIDGET (self));
--     gtk_drag_source_set_icon (source, paintable, 0, 0);
--     g_object_unref (paintable);
--   }
--   
--   
--   During the DND operation, GtkDragSource emits signals that
--   can be used to obtain updates about the status of the operation, but
--   it is not normally necessary to connect to any signals, except for one
--   case: when the supported actions include DragActionMove, you
--   need to listen for the DragSource::dragEnd signal and delete
--   the data after it has been transferred.
module GI.Gtk.Objects.DragSource

-- | Memory-managed wrapper type.
newtype DragSource
DragSource :: ManagedPtr DragSource -> DragSource

-- | Type class for types which can be safely cast to DragSource,
--   for instance with toDragSource.
class (GObject o, IsDescendantOf DragSource o) => IsDragSource o

-- | Cast to DragSource, for types for which this is known to be
--   safe. For general casts, use castTo.
toDragSource :: (MonadIO m, IsDragSource o) => o -> m DragSource

-- | Cancels a currently ongoing drag operation.
dragSourceDragCancel :: (HasCallStack, MonadIO m, IsDragSource a) => a -> m ()

-- | Gets the actions that are currently set on the GtkDragSource.
dragSourceGetActions :: (HasCallStack, MonadIO m, IsDragSource a) => a -> m [DragAction]

-- | Gets the current content provider of a GtkDragSource.
dragSourceGetContent :: (HasCallStack, MonadIO m, IsDragSource a) => a -> m (Maybe ContentProvider)

-- | Returns the underlying GdkDrag object for an ongoing drag.
dragSourceGetDrag :: (HasCallStack, MonadIO m, IsDragSource a) => a -> m (Maybe Drag)

-- | Creates a new GtkDragSource object.
dragSourceNew :: (HasCallStack, MonadIO m) => m DragSource

-- | Sets the actions on the GtkDragSource.
--   
--   During a DND operation, the actions are offered to potential drop
--   targets. If actions include DragActionMove, you
--   need to listen to the DragSource::dragEnd signal and handle
--   deleteData being True.
--   
--   This function can be called before a drag is started, or in a handler
--   for the DragSource::prepare signal.
dragSourceSetActions :: (HasCallStack, MonadIO m, IsDragSource a) => a -> [DragAction] -> m ()

-- | Sets a content provider on a GtkDragSource.
--   
--   When the data is requested in the cause of a DND operation, it will be
--   obtained from the content provider.
--   
--   This function can be called before a drag is started, or in a handler
--   for the DragSource::prepare signal.
--   
--   You may consider setting the content provider back to Nothing
--   in a DragSource::dragEnd signal handler.
dragSourceSetContent :: (HasCallStack, MonadIO m, IsDragSource a, IsContentProvider b) => a -> Maybe b -> m ()

-- | Sets a paintable to use as icon during DND operations.
--   
--   The hotspot coordinates determine the point on the icon that gets
--   aligned with the hotspot of the cursor.
--   
--   If paintable is Nothing, a default icon is
--   used.
--   
--   This function can be called before a drag is started, or in a
--   DragSource::prepare or DragSource::dragBegin signal
--   handler.
dragSourceSetIcon :: (HasCallStack, MonadIO m, IsDragSource a, IsPaintable b) => a -> Maybe b -> Int32 -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “actions” property. This is rarely needed directly, but it is
--   used by new.
constructDragSourceActions :: (IsDragSource o, MonadIO m) => [DragAction] -> m (GValueConstruct o)

-- | Get the value of the “actions” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dragSource #actions
--   
getDragSourceActions :: (MonadIO m, IsDragSource o) => o -> m [DragAction]

-- | Set the value of the “actions” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dragSource [ #actions := value ]
--   
setDragSourceActions :: (MonadIO m, IsDragSource o) => o -> [DragAction] -> m ()

-- | Set the value of the “content” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #content
--   
clearDragSourceContent :: (MonadIO m, IsDragSource o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “content” property. This is rarely needed directly, but it is
--   used by new.
constructDragSourceContent :: (IsDragSource o, MonadIO m, IsContentProvider a) => a -> m (GValueConstruct o)

-- | Get the value of the “content” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dragSource #content
--   
getDragSourceContent :: (MonadIO m, IsDragSource o) => o -> m (Maybe ContentProvider)

-- | Set the value of the “content” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dragSource [ #content := value ]
--   
setDragSourceContent :: (MonadIO m, IsDragSource o, IsContentProvider a) => o -> a -> m ()

-- | Emitted on the drag source when a drag is started.
--   
--   It can be used to e.g. set a custom drag icon with
--   dragSourceSetIcon.
type DragSourceDragBeginCallback = Drag -> IO ()

-- | Connect a signal handler for the dragBegin signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dragSource #dragBegin callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDragSourceDragBegin :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourceDragBeginCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragBegin signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dragSource #dragBegin callback
--   
onDragSourceDragBegin :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourceDragBeginCallback) -> m SignalHandlerId

-- | Emitted on the drag source when a drag has failed.
--   
--   The signal handler may handle a failed drag operation based on the
--   type of error. It should return True if the failure has been
--   handled and the default "drag operation failed" animation should not
--   be shown.
type DragSourceDragCancelCallback = Drag -> DragCancelReason -> IO Bool

-- | Connect a signal handler for the dragCancel signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dragSource #dragCancel callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDragSourceDragCancel :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourceDragCancelCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragCancel signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dragSource #dragCancel callback
--   
onDragSourceDragCancel :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourceDragCancelCallback) -> m SignalHandlerId

-- | Emitted on the drag source when a drag is finished.
--   
--   A typical reason to connect to this signal is to undo things done in
--   DragSource::prepare or DragSource::dragBegin handlers.
type DragSourceDragEndCallback = Drag -> Bool -> IO ()

-- | Connect a signal handler for the dragEnd signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dragSource #dragEnd callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDragSourceDragEnd :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourceDragEndCallback) -> m SignalHandlerId

-- | Connect a signal handler for the dragEnd signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dragSource #dragEnd callback
--   
onDragSourceDragEnd :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourceDragEndCallback) -> m SignalHandlerId

-- | Emitted when a drag is about to be initiated.
--   
--   It returns the GdkContentProvider to use for the drag that is
--   about to start. The default handler for this signal returns the value
--   of the DragSource:content property, so if you set up that
--   property ahead of time, you don't need to connect to this signal.
type DragSourcePrepareCallback = Double -> Double -> IO Maybe ContentProvider

-- | Connect a signal handler for the prepare signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dragSource #prepare callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDragSourcePrepare :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourcePrepareCallback) -> m SignalHandlerId

-- | Connect a signal handler for the prepare signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dragSource #prepare callback
--   
onDragSourcePrepare :: (IsDragSource a, MonadIO m) => a -> ((?self :: a) => DragSourcePrepareCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.DragSource.DragSource
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DragSource.DragSource
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DragSource.DragSource
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DragSource.DragSource o) => GI.Gtk.Objects.DragSource.IsDragSource o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DragSource.DragSource)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DragSource.DragSource
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DragSource.DragSource

-- | A GtkRoot implementation for drag icons.
--   
--   A drag icon moves with the pointer during a Drag-and-Drop operation
--   and is destroyed when the drag ends.
--   
--   To set up a drag icon and associate it with an ongoing drag operation,
--   use dragIconGetForDrag to get the icon for a drag. You can then
--   use it like any other widget and use dragIconSetChild to set
--   whatever widget should be used for the drag icon.
--   
--   Keep in mind that drag icons do not allow user input.
module GI.Gtk.Objects.DragIcon

-- | Memory-managed wrapper type.
newtype DragIcon
DragIcon :: ManagedPtr DragIcon -> DragIcon

-- | Type class for types which can be safely cast to DragIcon, for
--   instance with toDragIcon.
class (GObject o, IsDescendantOf DragIcon o) => IsDragIcon o

-- | Cast to DragIcon, for types for which this is known to be safe.
--   For general casts, use castTo.
toDragIcon :: (MonadIO m, IsDragIcon o) => o -> m DragIcon

-- | Creates a widget that can be used as a drag icon for the given
--   value.
--   
--   Supported types include strings, GdkRGBA and
--   GtkTextBuffer. If GTK does not know how to create a widget
--   for a given value, it will return Nothing.
--   
--   This method is used to set the default drag icon on drag-and-drop
--   operations started by GtkDragSource, so you don't need to set
--   a drag icon using this function there.
dragIconCreateWidgetForValue :: (HasCallStack, MonadIO m) => GValue -> m (Maybe Widget)

-- | Gets the widget currently used as drag icon.
dragIconGetChild :: (HasCallStack, MonadIO m, IsDragIcon a) => a -> m (Maybe Widget)

-- | Gets the GtkDragIcon in use with drag.
--   
--   If no drag icon exists yet, a new one will be created and shown.
dragIconGetForDrag :: (HasCallStack, MonadIO m, IsDrag a) => a -> m DragIcon

-- | Sets the widget to display as the drag icon.
dragIconSetChild :: (HasCallStack, MonadIO m, IsDragIcon a, IsWidget b) => a -> Maybe b -> m ()

-- | Creates a GtkDragIcon that shows paintable,
--   and associates it with the drag operation.
--   
--   The hotspot position on the paintable is aligned with the hotspot of
--   the cursor.
dragIconSetFromPaintable :: (HasCallStack, MonadIO m, IsDrag a, IsPaintable b) => a -> b -> Int32 -> Int32 -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearDragIconChild :: (MonadIO m, IsDragIcon o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructDragIconChild :: (IsDragIcon o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dragIcon #child
--   
getDragIconChild :: (MonadIO m, IsDragIcon o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set dragIcon [ #child := value ]
--   
setDragIconChild :: (MonadIO m, IsDragIcon o, IsWidget a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.DragIcon.DragIcon
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.DragIcon.DragIcon
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.DragIcon.DragIcon
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.DragIcon.DragIcon o) => GI.Gtk.Objects.DragIcon.IsDragIcon o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.DragIcon.DragIcon)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.DragIcon.DragIcon
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.DragIcon.DragIcon

-- | Dialogs are a convenient way to prompt the user for a small amount of
--   input.
--   
--   <picture> <source srcset="dialog-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkDialog" src="dialog.png"> </picture>
--   
--   Typical uses are to display a message, ask a question, or anything
--   else that does not require extensive effort on the user’s part.
--   
--   The main area of a GtkDialog is called the "content area",
--   and is yours to populate with widgets such a GtkLabel or
--   GtkEntry, to present your information, questions, or tasks to
--   the user.
--   
--   In addition, dialogs allow you to add "action widgets". Most commonly,
--   action widgets are buttons. Depending on the platform, action widgets
--   may be presented in the header bar at the top of the window, or at the
--   bottom of the window. To add action widgets, create your
--   GtkDialog using
--   Dialog.new_with_buttons(), or use
--   dialogAddButton, Dialog.add_buttons(),
--   or dialogAddActionWidget.
--   
--   GtkDialogs uses some heuristics to decide whether to add a
--   close button to the window decorations. If any of the action buttons
--   use the response ID ResponseTypeClose or
--   ResponseTypeCancel, the close button is omitted.
--   
--   Clicking a button that was added as an action widget will emit the
--   Dialog::response signal with a response ID that you specified.
--   GTK will never assign a meaning to positive response IDs; these are
--   entirely user-defined. But for convenience, you can use the response
--   IDs in the ResponseType enumeration (these all have values less
--   than zero). If a dialog receives a delete event, the
--   Dialog::response signal will be emitted with the
--   ResponseTypeDeleteEvent response ID.
--   
--   Dialogs are created with a call to dialogNew or
--   Dialog.new_with_buttons(). The latter is
--   recommended; it allows you to set the dialog title, some convenient
--   flags, and add buttons.
--   
--   A “modal” dialog (that is, one which freezes the rest of the
--   application from user input), can be created by calling
--   windowSetModal on the dialog. When using
--   Dialog.new_with_buttons(), you can also pass
--   the DialogFlagsModal flag to make a dialog modal.
--   
--   For the simple dialog in the following example, a MessageDialog
--   would save some effort. But you’d need to create the dialog contents
--   manually if you had more than a simple message in the dialog.
--   
--   An example for simple GtkDialog usage:
--   
--   
c code
--   
--   
--   // Function to open a dialog box with a message
--   void
--   quick_message (GtkWindow *parent, char *message)
--   {
--    GtkWidget *dialog, *label, *content_area;
--    GtkDialogFlags flags;
--   
--    // Create the widgets
--    flags = GTK_DIALOG_DESTROY_WITH_PARENT;
--    dialog = gtk_dialog_new_with_buttons ("Message",
--                                          parent,
--                                          flags,
--                                          _("_OK"),
--                                          GTK_RESPONSE_NONE,
--                                          NULL);
--    content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
--    label = gtk_label_new (message);
--   
--    // Ensure that the dialog box is destroyed when the user responds
--   
--    g_signal_connect_swapped (dialog,
--                              "response",
--                              G_CALLBACK (gtk_window_destroy),
--                              dialog);
--   
--    // Add the label, and show everything we’ve added
--   
--    gtk_box_append (GTK_BOX (content_area), label);
--    gtk_widget_show (dialog);
--   }
--   
--   
--   
GtkDialog as GtkBuildable
--   
--   The GtkDialog implementation of the GtkBuildable
--   interface exposes the contentArea as an internal child
--   with the name “content_area”.
--   
--   GtkDialog supports a custom <action-widgets>
--   element, which can contain multiple <action-widget>
--   elements. The “response” attribute specifies a numeric response, and
--   the content of the element is the id of widget (which should be a
--   child of the dialogs actionArea). To mark a response
--   as default, set the “default” attribute of the
--   <action-widget> element to true.
--   
--   GtkDialog supports adding action widgets by specifying
--   “action” as the “type” attribute of a <child> element.
--   The widget will be added either to the action area or the headerbar of
--   the dialog, depending on the “use-header-bar” property. The response
--   id has to be associated with the action widget using the
--   <action-widgets> element.
--   
--   An example of a GtkDialog UI definition fragment:
--   
--   
xml code
--   
--   
--   <object class="GtkDialog" id="dialog1">
--     <child type="action">
--       <object class="GtkButton" id="button_cancel"/>
--     </child>
--     <child type="action">
--       <object class="GtkButton" id="button_ok">
--       </object>
--     </child>
--     <action-widgets>
--       <action-widget response="cancel">button_cancel</action-widget>
--       <action-widget response="ok" default="true">button_ok</action-widget>
--     </action-widgets>
--   </object>
--   
--   
--   
Accessibility
--   
--   GtkDialog uses the AccessibleRoleDialog role.
module GI.Gtk.Objects.Dialog

-- | Memory-managed wrapper type.
newtype Dialog
Dialog :: ManagedPtr Dialog -> Dialog

-- | Type class for types which can be safely cast to Dialog, for
--   instance with toDialog.
class (GObject o, IsDescendantOf Dialog o) => IsDialog o

-- | Cast to Dialog, for types for which this is known to be safe.
--   For general casts, use castTo.
toDialog :: (MonadIO m, IsDialog o) => o -> m Dialog

-- | Adds an activatable widget to the action area of a GtkDialog.
--   
--   GTK connects a signal handler that will emit the
--   Dialog::response signal on the dialog when the widget is
--   activated. The widget is appended to the end of the dialog’s action
--   area.
--   
--   If you want to add a non-activatable widget, simply pack it into the
--   actionArea field of the GtkDialog struct.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogAddActionWidget :: (HasCallStack, MonadIO m, IsDialog a, IsWidget b) => a -> b -> Int32 -> m ()

-- | Adds a button with the given text.
--   
--   GTK arranges things so that clicking the button will emit the
--   Dialog::response signal with the given
--   responseId. The button is appended to the end of the
--   dialog’s action area. The button widget is returned, but usually you
--   don’t need it.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogAddButton :: (HasCallStack, MonadIO m, IsDialog a) => a -> Text -> Int32 -> m Widget

-- | Returns the content area of dialog.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogGetContentArea :: (HasCallStack, MonadIO m, IsDialog a) => a -> m Box

-- | Returns the header bar of dialog.
--   
--   Note that the headerbar is only used by the dialog if the
--   Dialog:useHeaderBar property is True.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogGetHeaderBar :: (HasCallStack, MonadIO m, IsDialog a) => a -> m HeaderBar

-- | Gets the response id of a widget in the action area of a dialog.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogGetResponseForWidget :: (HasCallStack, MonadIO m, IsDialog a, IsWidget b) => a -> b -> m Int32

-- | Gets the widget button that uses the given response ID in the action
--   area of a dialog.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogGetWidgetForResponse :: (HasCallStack, MonadIO m, IsDialog a) => a -> Int32 -> m (Maybe Widget)

-- | Creates a new dialog box.
--   
--   Widgets should not be packed into the GtkWindow directly, but
--   into the contentArea and actionArea,
--   as described above.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogNew :: (HasCallStack, MonadIO m) => m Dialog

-- | Emits the response signal with the given response ID.
--   
--   Used to indicate that the user has responded to the dialog in some
--   way.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogResponse :: (HasCallStack, MonadIO m, IsDialog a) => a -> Int32 -> m ()

-- | Sets the default widget for the dialog based on the response ID.
--   
--   Pressing “Enter” normally activates the default widget.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogSetDefaultResponse :: (HasCallStack, MonadIO m, IsDialog a) => a -> Int32 -> m ()

-- | A convenient way to sensitize/desensitize dialog buttons.
--   
--   Calls gtk_widget_set_sensitive (widget, @setting) for each
--   widget in the dialog’s action area with the given
--   responseId.

-- | Deprecated: (Since version 4.10)Use Window instead
dialogSetResponseSensitive :: (HasCallStack, MonadIO m, IsDialog a) => a -> Int32 -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-header-bar” property. This is rarely needed directly,
--   but it is used by new.
constructDialogUseHeaderBar :: (IsDialog o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “use-header-bar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get dialog #useHeaderBar
--   
getDialogUseHeaderBar :: (MonadIO m, IsDialog o) => o -> m Int32

-- | Emitted when the user uses a keybinding to close the dialog.
--   
--   This is a keybinding signal.
--   
--   The default binding for this signal is the Escape key.

-- | Deprecated: (Since version 4.10)Use Window instead
type DialogCloseCallback = IO ()

-- | Connect a signal handler for the close signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dialog #close callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDialogClose :: (IsDialog a, MonadIO m) => a -> ((?self :: a) => DialogCloseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the close signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on dialog #close callback
--   
onDialogClose :: (IsDialog a, MonadIO m) => a -> ((?self :: a) => DialogCloseCallback) -> m SignalHandlerId

-- | Emitted when an action widget is clicked.
--   
--   The signal is also emitted when the dialog receives a delete event,
--   and when dialogResponse is called. On a delete event, the
--   response ID is ResponseTypeDeleteEvent. Otherwise, it depends
--   on which action widget was clicked.

-- | Deprecated: (Since version 4.10)Use Window instead
type DialogResponseCallback = Int32 -> IO ()

-- | Connect a signal handler for the response signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after dialog #response callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterDialogResponse :: (IsDialog a, MonadIO m) => a -> ((?self :: a) => DialogResponseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the response signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on dialog #response callback
--   
onDialogResponse :: (IsDialog a, MonadIO m) => a -> ((?self :: a) => DialogResponseCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Dialog.Dialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Dialog.Dialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Dialog.Dialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Dialog.Dialog o) => GI.Gtk.Objects.Dialog.IsDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Dialog.Dialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Dialog.Dialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Dialog.Dialog

-- | Uses closures for size negotiation.
--   
--   A GtkCustomLayout uses closures matching to the old
--   GtkWidget virtual functions for size negotiation, as a
--   convenience API to ease the porting towards the corresponding
--   GtkLayoutManager virtual functions.
module GI.Gtk.Objects.CustomLayout

-- | Memory-managed wrapper type.
newtype CustomLayout
CustomLayout :: ManagedPtr CustomLayout -> CustomLayout

-- | Type class for types which can be safely cast to CustomLayout,
--   for instance with toCustomLayout.
class (GObject o, IsDescendantOf CustomLayout o) => IsCustomLayout o

-- | Cast to CustomLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toCustomLayout :: (MonadIO m, IsCustomLayout o) => o -> m CustomLayout

-- | Creates a new legacy layout manager.
--   
--   Legacy layout managers map to the old GtkWidget size
--   negotiation virtual functions, and are meant to be used during the
--   transition from layout containers to layout manager delegates.
customLayoutNew :: (HasCallStack, MonadIO m) => Maybe CustomRequestModeFunc -> CustomMeasureFunc -> CustomAllocateFunc -> m CustomLayout
instance GHC.Classes.Eq GI.Gtk.Objects.CustomLayout.CustomLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CustomLayout.CustomLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CustomLayout.CustomLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CustomLayout.CustomLayout o) => GI.Gtk.Objects.CustomLayout.IsCustomLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CustomLayout.CustomLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CustomLayout.CustomLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CustomLayout.CustomLayout

-- | Determines whether to include items with a callback.
module GI.Gtk.Objects.CustomFilter

-- | Memory-managed wrapper type.
newtype CustomFilter
CustomFilter :: ManagedPtr CustomFilter -> CustomFilter

-- | Type class for types which can be safely cast to CustomFilter,
--   for instance with toCustomFilter.
class (GObject o, IsDescendantOf CustomFilter o) => IsCustomFilter o

-- | Cast to CustomFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toCustomFilter :: (MonadIO m, IsCustomFilter o) => o -> m CustomFilter

-- | Creates a new filter using the given function to filter items.
--   
--   If matchFunc is NULL, the filter matches all
--   items.
--   
--   If the filter func changes its filtering behavior,
--   filterChanged needs to be called.
customFilterNew :: (HasCallStack, MonadIO m) => Maybe CustomFilterFunc -> m CustomFilter

-- | Sets the function used for filtering items.
--   
--   If matchFunc is NULL, the filter matches all
--   items.
--   
--   If the filter func changes its filtering behavior,
--   filterChanged needs to be called.
--   
--   If a previous function was set, its userDestroy will
--   be called.
customFilterSetFilterFunc :: (HasCallStack, MonadIO m, IsCustomFilter a) => a -> Maybe CustomFilterFunc -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CustomFilter.CustomFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CustomFilter.CustomFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CustomFilter.CustomFilter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CustomFilter.CustomFilter o) => GI.Gtk.Objects.CustomFilter.IsCustomFilter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CustomFilter.CustomFilter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CustomFilter.CustomFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CustomFilter.CustomFilter

-- | GtkLayoutChild subclass for children in a
--   GtkConstraintLayout.
module GI.Gtk.Objects.ConstraintLayoutChild

-- | Memory-managed wrapper type.
newtype ConstraintLayoutChild
ConstraintLayoutChild :: ManagedPtr ConstraintLayoutChild -> ConstraintLayoutChild

-- | Type class for types which can be safely cast to
--   ConstraintLayoutChild, for instance with
--   toConstraintLayoutChild.
class (GObject o, IsDescendantOf ConstraintLayoutChild o) => IsConstraintLayoutChild o

-- | Cast to ConstraintLayoutChild, for types for which this is
--   known to be safe. For general casts, use castTo.
toConstraintLayoutChild :: (MonadIO m, IsConstraintLayoutChild o) => o -> m ConstraintLayoutChild
instance GHC.Classes.Eq GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild o) => GI.Gtk.Objects.ConstraintLayoutChild.IsConstraintLayoutChild o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ConstraintLayoutChild.ConstraintLayoutChild

-- | Uses constraints to describe relations between widgets.
--   
--   GtkConstraintLayout is a layout manager that uses relations
--   between widget attributes, expressed via Constraint instances,
--   to measure and allocate widgets.
--   
--   
How do constraints work
--   
--   Constraints are objects defining the relationship between attributes
--   of a widget; you can read the description of the Constraint
--   class to have a more in depth definition.
--   
--   By taking multiple constraints and applying them to the children of a
--   widget using GtkConstraintLayout, it's possible to describe
--   complex layout policies; each constraint applied to a child or to the
--   parent widgets contributes to the full description of the layout, in
--   terms of parameters for resolving the value of each attribute.
--   
--   It is important to note that a layout is defined by the totality of
--   constraints; removing a child, or a constraint, from an existing
--   layout without changing the remaining constraints may result in an
--   unstable or unsolvable layout.
--   
--   Constraints have an implicit "reading order"; you should start
--   describing each edge of each child, as well as their relationship with
--   the parent container, from the top left (or top right, in RTL
--   languages), horizontally first, and then vertically.
--   
--   A constraint-based layout with too few constraints can become
--   "unstable", that is: have more than one solution. The behavior of an
--   unstable layout is undefined.
--   
--   A constraint-based layout with conflicting constraints may be
--   unsolvable, and lead to an unstable layout. You can use the
--   Constraint:strength property of Constraint to "nudge"
--   the layout towards a solution.
--   
--   
GtkConstraintLayout as GtkBuildable
--   
--   GtkConstraintLayout implements the Buildable interface
--   and has a custom "constraints" element which allows describing
--   constraints in a Builder UI file.
--   
--   An example of a UI definition fragment specifying a constraint:
--   
--   
xml code
--   
--   
--   <object class="GtkConstraintLayout">
--     <constraints>
--       <constraint target="button" target-attribute="start"
--                   relation="eq"
--                   source="super" source-attribute="start"
--                   constant="12"
--                   strength="required" />
--       <constraint target="button" target-attribute="width"
--                   relation="ge"
--                   constant="250"
--                   strength="strong" />
--     </constraints>
--   </object>
--   
--   
--   The definition above will add two constraints to the
--   GtkConstraintLayout:
--   
--   
--   
- a required constraint between the leading edge of "button" and the
--   leading edge of the widget using the constraint layout, plus 12
--   pixels
--   
- a strong, constant constraint making the width of "button" greater
--   than, or equal to 250 pixels
--   
--   
--   The "target" and "target-attribute" attributes are required.
--   
--   The "source" and "source-attribute" attributes of the "constraint"
--   element are optional; if they are not specified, the constraint is
--   assumed to be a constant.
--   
--   The "relation" attribute is optional; if not specified, the constraint
--   is assumed to be an equality.
--   
--   The "strength" attribute is optional; if not specified, the constraint
--   is assumed to be required.
--   
--   The "source" and "target" attributes can be set to "super" to indicate
--   that the constraint target is the widget using the
--   GtkConstraintLayout.
--   
--   There can be "constant" and "multiplier" attributes.
--   
--   Additionally, the "constraints" element can also contain a description
--   of the GtkConstraintGuides used by the layout:
--   
--   
xml code
--   
--   
--   <constraints>
--     <guide min-width="100" max-width="500" name="hspace"/>
--     <guide min-height="64" nat-height="128" name="vspace" strength="strong"/>
--   </constraints>
--   
--   
--   The "guide" element has the following optional attributes:
--   
--   
--   
- "min-width", "nat-width", and "max-width", describe the minimum,
--   natural, and maximum width of the guide, respectively
--   
- "min-height", "nat-height", and "max-height", describe the
--   minimum, natural, and maximum height of the guide, respectively
--   
- "strength" describes the strength of the constraint on the natural
--   size of the guide; if not specified, the constraint is assumed to have
--   a medium strength
--   
- "name" describes a name for the guide, useful when debugging
--   
--   
--   
Using the Visual Format Language
--   
--   Complex constraints can be described using a compact syntax called
--   VFL, or *Visual Format Language*.
--   
--   The Visual Format Language describes all the constraints on a row or
--   column, typically starting from the leading edge towards the trailing
--   one. Each element of the layout is composed by "views", which identify
--   a ConstraintTarget.
--   
--   For instance:
--   
--   
--   [button]-[textField]
--   
--   
--   Describes a constraint that binds the trailing edge of "button" to the
--   leading edge of "textField", leaving a default space between the two.
--   
--   Using VFL is also possible to specify predicates that describe
--   constraints on attributes like width and height:
--   
--   
--   // Width must be greater than, or equal to 50
--   [button(>=50)]
--   
--   // Width of button1 must be equal to width of button2
--   [button1(==button2)]
--   
--   
--   The default orientation for a VFL description is horizontal, unless
--   otherwise specified:
--   
--   
--   // horizontal orientation, default attribute: width
--   H:[button(>=150)]
--   
--   // vertical orientation, default attribute: height
--   V:[button1(==button2)]
--   
--   
--   It's also possible to specify multiple predicates, as well as their
--   strength:
--   
--   
--   // minimum width of button must be 150
--   // natural width of button can be 250
--   [button(>=150@required, ==250@medium)]
--   
--   
--   Finally, it's also possible to use simple arithmetic operators:
--   
--   
--   // width of button1 must be equal to width of button2
--   // divided by 2 plus 12
--   [button1(button2 / 2 + 12)]
--   
module GI.Gtk.Objects.ConstraintLayout

-- | Memory-managed wrapper type.
newtype ConstraintLayout
ConstraintLayout :: ManagedPtr ConstraintLayout -> ConstraintLayout

-- | Type class for types which can be safely cast to
--   ConstraintLayout, for instance with toConstraintLayout.
class (GObject o, IsDescendantOf ConstraintLayout o) => IsConstraintLayout o

-- | Cast to ConstraintLayout, for types for which this is known to
--   be safe. For general casts, use castTo.
toConstraintLayout :: (MonadIO m, IsConstraintLayout o) => o -> m ConstraintLayout

-- | Adds a constraint to the layout manager.
--   
--   The Constraint:source and Constraint:target properties
--   of constraint can be:
--   
--   
--   
- set to NULL to indicate that the constraint refers to the
--   widget using layout
--   
- set to the Widget using layout
--   
- set to a child of the Widget using layout
--   
- set to a ConstraintGuide that is part of
--   layout
--   
--   
--   The layout acquires the ownership of
--   constraint after calling this function.
constraintLayoutAddConstraint :: (HasCallStack, MonadIO m, IsConstraintLayout a, IsConstraint b) => a -> b -> m ()

-- | Adds a guide to layout.
--   
--   A guide can be used as the source or target of constraints, like a
--   widget, but it is not visible.
--   
--   The layout acquires the ownership of guide after
--   calling this function.
constraintLayoutAddGuide :: (HasCallStack, MonadIO m, IsConstraintLayout a, IsConstraintGuide b) => a -> b -> m ()

-- | Creates a new GtkConstraintLayout layout manager.
constraintLayoutNew :: (HasCallStack, MonadIO m) => m ConstraintLayout

-- | Returns a GListModel to track the constraints that are part
--   of the layout.
--   
--   Calling this function will enable extra internal bookkeeping to track
--   constraints and emit signals on the returned listmodel. It may slow
--   down operations a lot.
--   
--   Applications should try hard to avoid calling this function because of
--   the slowdowns.
constraintLayoutObserveConstraints :: (HasCallStack, MonadIO m, IsConstraintLayout a) => a -> m ListModel

-- | Returns a GListModel to track the guides that are part of the
--   layout.
--   
--   Calling this function will enable extra internal bookkeeping to track
--   guides and emit signals on the returned listmodel. It may slow down
--   operations a lot.
--   
--   Applications should try hard to avoid calling this function because of
--   the slowdowns.
constraintLayoutObserveGuides :: (HasCallStack, MonadIO m, IsConstraintLayout a) => a -> m ListModel

-- | Removes all constraints from the layout manager.
constraintLayoutRemoveAllConstraints :: (HasCallStack, MonadIO m, IsConstraintLayout a) => a -> m ()

-- | Removes constraint from the layout manager, so that it no
--   longer influences the layout.
constraintLayoutRemoveConstraint :: (HasCallStack, MonadIO m, IsConstraintLayout a, IsConstraint b) => a -> b -> m ()

-- | Removes guide from the layout manager, so that it no longer
--   influences the layout.
constraintLayoutRemoveGuide :: (HasCallStack, MonadIO m, IsConstraintLayout a, IsConstraintGuide b) => a -> b -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ConstraintLayout.ConstraintLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ConstraintLayout.ConstraintLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ConstraintLayout.ConstraintLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ConstraintLayout.ConstraintLayout o) => GI.Gtk.Objects.ConstraintLayout.IsConstraintLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ConstraintLayout.ConstraintLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ConstraintLayout.ConstraintLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ConstraintLayout.ConstraintLayout

-- | A constant value in a GtkExpression.
module GI.Gtk.Objects.ConstantExpression

-- | Memory-managed wrapper type.
newtype ConstantExpression
ConstantExpression :: ManagedPtr ConstantExpression -> ConstantExpression

-- | Type class for types which can be safely cast to
--   ConstantExpression, for instance with
--   toConstantExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf ConstantExpression o) => IsConstantExpression o

-- | Cast to ConstantExpression, for types for which this is known
--   to be safe. For general casts, use castTo.
toConstantExpression :: (MonadIO m, IsConstantExpression o) => o -> m ConstantExpression

-- | Gets the value that a constant expression evaluates to.
constantExpressionGetValue :: (HasCallStack, MonadIO m, IsConstantExpression a) => a -> m GValue

-- | Creates an expression that always evaluates to the given
--   value.
constantExpressionNewForValue :: (HasCallStack, MonadIO m) => GValue -> m ConstantExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.ConstantExpression.ConstantExpression
instance GHC.Classes.Eq GI.Gtk.Objects.ConstantExpression.ConstantExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ConstantExpression.ConstantExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ConstantExpression.ConstantExpression o) => GI.Gtk.Objects.ConstantExpression.IsConstantExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ConstantExpression.ConstantExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ConstantExpression.ConstantExpression

-- | A GtkComboBoxText is a simple variant of GtkComboBox
--   for text-only use cases.
--   
--   <picture> <source srcset="combo-box-text-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkComboBoxText" src="combo-box-text.png"> </picture>
--   
--   GtkComboBoxText hides the model-view complexity of
--   GtkComboBox.
--   
--   To create a GtkComboBoxText, use comboBoxTextNew or
--   comboBoxTextNewWithEntry.
--   
--   You can add items to a GtkComboBoxText with
--   comboBoxTextAppendText, comboBoxTextInsertText or
--   comboBoxTextPrependText and remove options with
--   comboBoxTextRemove.
--   
--   If the GtkComboBoxText contains an entry (via the
--   ComboBox:hasEntry property), its contents can be retrieved
--   using comboBoxTextGetActiveText.
--   
--   You should not call comboBoxSetModel or attempt to pack more
--   cells into this combo box via its CellLayout interface.
--   
--   
GtkComboBoxText as GtkBuildable
--   
--   The GtkComboBoxText implementation of the
--   GtkBuildable interface supports adding items directly using
--   the <items> element and specifying
--   <item> elements for each item. Each
--   <item> element can specify the “id” corresponding to
--   the appended text and also supports the regular translation attributes
--   “translatable”, “context” and “comments”.
--   
--   Here is a UI definition fragment specifying GtkComboBoxText
--   items:
--   
--   
xml code
--   
--   
--   <object class="GtkComboBoxText">
--     <items>
--       <item translatable="yes" id="factory">Factory</item>
--       <item translatable="yes" id="home">Home</item>
--       <item translatable="yes" id="subway">Subway</item>
--     </items>
--   </object>
--   
--   
--   
CSS nodes
--   
--   
--   combobox
--   ╰── box.linked
--       ├── entry.combo
--       ├── button.combo
--       ╰── window.popup
--   
--   
--   GtkComboBoxText has a single CSS node with name combobox. It
--   adds the style class .combo to the main CSS nodes of its entry and
--   button children, and the .linked class to the node of its internal
--   box.
module GI.Gtk.Objects.ComboBoxText

-- | Memory-managed wrapper type.
newtype ComboBoxText
ComboBoxText :: ManagedPtr ComboBoxText -> ComboBoxText

-- | Type class for types which can be safely cast to ComboBoxText,
--   for instance with toComboBoxText.
class (GObject o, IsDescendantOf ComboBoxText o) => IsComboBoxText o

-- | Cast to ComboBoxText, for types for which this is known to be
--   safe. For general casts, use castTo.
toComboBoxText :: (MonadIO m, IsComboBoxText o) => o -> m ComboBoxText

-- | Appends text to the list of strings stored in
--   comboBox.
--   
--   If id is non-Nothing then it is used as the ID
--   of the row.
--   
--   This is the same as calling comboBoxTextInsert with a position
--   of -1.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextAppend :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Maybe Text -> Text -> m ()

-- | Appends text to the list of strings stored in
--   comboBox.
--   
--   This is the same as calling comboBoxTextInsertText with a
--   position of -1.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextAppendText :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Text -> m ()

-- | Returns the currently active string in comboBox.
--   
--   If no row is currently selected, Nothing is returned. If
--   comboBox contains an entry, this function will return
--   its contents (which will not necessarily be an item from the list).

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextGetActiveText :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> m (Maybe Text)

-- | Inserts text at position in the list
--   of strings stored in comboBox.
--   
--   If id is non-Nothing then it is used as the ID
--   of the row. See ComboBox:idColumn.
--   
--   If position is negative then text is
--   appended.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextInsert :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Int32 -> Maybe Text -> Text -> m ()

-- | Inserts text at position in the list
--   of strings stored in comboBox.
--   
--   If position is negative then text is
--   appended.
--   
--   This is the same as calling comboBoxTextInsert with a
--   Nothing ID string.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextInsertText :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Int32 -> Text -> m ()

-- | Creates a new GtkComboBoxText.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextNew :: (HasCallStack, MonadIO m) => m ComboBoxText

-- | Creates a new GtkComboBoxText with an entry.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextNewWithEntry :: (HasCallStack, MonadIO m) => m ComboBoxText

-- | Prepends text to the list of strings stored in
--   comboBox.
--   
--   If id is non-Nothing then it is used as the ID
--   of the row.
--   
--   This is the same as calling comboBoxTextInsert with a position
--   of 0.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextPrepend :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Maybe Text -> Text -> m ()

-- | Prepends text to the list of strings stored in
--   comboBox.
--   
--   This is the same as calling comboBoxTextInsertText with a
--   position of 0.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextPrependText :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Text -> m ()

-- | Removes the string at position from
--   comboBox.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextRemove :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> Int32 -> m ()

-- | Removes all the text entries from the combo box.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxTextRemoveAll :: (HasCallStack, MonadIO m, IsComboBoxText a) => a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ComboBoxText.ComboBoxText
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ComboBoxText.ComboBoxText
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ComboBoxText.ComboBoxText
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ComboBoxText.ComboBoxText o) => GI.Gtk.Objects.ComboBoxText.IsComboBoxText o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ComboBoxText.ComboBoxText)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ComboBoxText.ComboBoxText
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ComboBoxText.ComboBoxText

-- | A GtkComboBox is a widget that allows the user to choose from
--   a list of valid choices.
--   
--   <picture> <source srcset="combo-box-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkComboBox" src="combo-box.png"> </picture>
--   
--   The GtkComboBox displays the selected choice; when activated,
--   the GtkComboBox displays a popup which allows the user to
--   make a new choice.
--   
--   The GtkComboBox uses the model-view pattern; the list of
--   valid choices is specified in the form of a tree model, and the
--   display of the choices can be adapted to the data in the model by
--   using cell renderers, as you would in a tree view. This is possible
--   since GtkComboBox implements the CellLayout interface.
--   The tree model holding the valid choices is not restricted to a flat
--   list, it can be a real tree, and the popup will reflect the tree
--   structure.
--   
--   To allow the user to enter values not in the model, the
--   ComboBox:hasEntry property allows the GtkComboBox to
--   contain a Entry. This entry can be accessed by calling
--   comboBoxGetChild on the combo box.
--   
--   For a simple list of textual choices, the model-view API of
--   GtkComboBox can be a bit overwhelming. In this case,
--   ComboBoxText offers a simple alternative. Both
--   GtkComboBox and GtkComboBoxText can contain an
--   entry.
--   
--   
CSS nodes
--   
--   
--   combobox
--   ├── box.linked
--   │   ╰── button.combo
--   │       ╰── box
--   │           ├── cellview
--   │           ╰── arrow
--   ╰── window.popup
--   
--   
--   A normal combobox contains a box with the .linked class, a button with
--   the .combo class and inside those buttons, there are a cellview and an
--   arrow.
--   
--   
--   combobox
--   ├── box.linked
--   │   ├── entry.combo
--   │   ╰── button.combo
--   │       ╰── box
--   │           ╰── arrow
--   ╰── window.popup
--   
--   
--   A GtkComboBox with an entry has a single CSS node with name
--   combobox. It contains a box with the .linked class. That box contains
--   an entry and a button, both with the .combo class added. The button
--   also contains another node with name arrow.
--   
--   
Accessibility
--   
--   GtkComboBox uses the AccessibleRoleComboBox role.
module GI.Gtk.Objects.ComboBox

-- | Memory-managed wrapper type.
newtype ComboBox
ComboBox :: ManagedPtr ComboBox -> ComboBox

-- | Type class for types which can be safely cast to ComboBox, for
--   instance with toComboBox.
class (GObject o, IsDescendantOf ComboBox o) => IsComboBox o

-- | Cast to ComboBox, for types for which this is known to be safe.
--   For general casts, use castTo.
toComboBox :: (MonadIO m, IsComboBox o) => o -> m ComboBox

-- | Returns the index of the currently active item.
--   
--   If the model is a non-flat treemodel, and the active item is not an
--   immediate child of the root of the tree, this function returns
--   gtk_tree_path_get_indices (path)[0], where path is
--   the TreePath of the active item.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetActive :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m Int32

-- | Returns the ID of the active row of comboBox.
--   
--   This value is taken from the active row and the column specified by
--   the ComboBox:idColumn property of comboBox (see
--   comboBoxSetIdColumn).
--   
--   The returned value is an interned string which means that you can
--   compare the pointer by value to other interned strings and that you
--   must not free it.
--   
--   If the ComboBox:idColumn property of comboBox
--   is not set, or if no row is active, or if the active row has a
--   Nothing ID value, then Nothing is returned.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetActiveId :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m (Maybe Text)

-- | Sets iter to point to the currently active item.
--   
--   If no item is active, iter is left unchanged.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetActiveIter :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m (Bool, TreeIter)

-- | Returns whether the combo box sets the dropdown button sensitive or
--   not when there are no items in the model.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetButtonSensitivity :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m SensitivityType

-- | Gets the child widget of comboBox.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetChild :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m (Maybe Widget)

-- | Returns the column which comboBox is using to get the
--   strings from to display in the internal entry.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetEntryTextColumn :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m Int32

-- | Returns whether the combo box has an entry.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetHasEntry :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m Bool

-- | Returns the column which comboBox is using to get
--   string IDs for values from.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetIdColumn :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m Int32

-- | Returns the GtkTreeModel of comboBox.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetModel :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m (Maybe TreeModel)

-- | Gets whether the popup uses a fixed width.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxGetPopupFixedWidth :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m Bool

-- | Creates a new empty GtkComboBox.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxNew :: (HasCallStack, MonadIO m) => m ComboBox

-- | Creates a new empty GtkComboBox with an entry.
--   
--   In order to use a combo box with entry, you need to tell it which
--   column of the model contains the text for the entry by calling
--   comboBoxSetEntryTextColumn.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxNewWithEntry :: (HasCallStack, MonadIO m) => m ComboBox

-- | Creates a new GtkComboBox with a model.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxNewWithModel :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m ComboBox

-- | Creates a new empty GtkComboBox with an entry and a model.
--   
--   See also comboBoxNewWithEntry.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxNewWithModelAndEntry :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m ComboBox

-- | Hides the menu or dropdown list of comboBox.
--   
--   This function is mostly intended for use by accessibility
--   technologies; applications should have little use for it.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxPopdown :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m ()

-- | Pops up the menu or dropdown list of comboBox.
--   
--   This function is mostly intended for use by accessibility
--   technologies; applications should have little use for it.
--   
--   Before calling this, comboBox must be mapped, or
--   nothing will happen.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxPopup :: (HasCallStack, MonadIO m, IsComboBox a) => a -> m ()

-- | Pops up the menu of comboBox.
--   
--   Note that currently this does not do anything with the device, as it
--   was previously only used for list-mode combo boxes, and those were
--   removed in GTK 4. However, it is retained in case similar
--   functionality is added back later.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxPopupForDevice :: (HasCallStack, MonadIO m, IsComboBox a, IsDevice b) => a -> b -> m ()

-- | Sets the active item of comboBox to be the item at
--   index.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetActive :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Int32 -> m ()

-- | Changes the active row of comboBox to the one that has
--   an ID equal to activeId.
--   
--   If activeId is Nothing, the active row is
--   unset. Rows having a Nothing ID string cannot be made active by
--   this function.
--   
--   If the ComboBox:idColumn property of comboBox
--   is unset or if no row has the given ID then the function does nothing
--   and returns False.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetActiveId :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Maybe Text -> m Bool

-- | Sets the current active item to be the one referenced by
--   iter.
--   
--   If iter is Nothing, the active item is unset.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetActiveIter :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Maybe TreeIter -> m ()

-- | Sets whether the dropdown button of the combo box should update its
--   sensitivity depending on the model contents.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetButtonSensitivity :: (HasCallStack, MonadIO m, IsComboBox a) => a -> SensitivityType -> m ()

-- | Sets the child widget of comboBox.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetChild :: (HasCallStack, MonadIO m, IsComboBox a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the model column which comboBox should use to get
--   strings from to be textColumn.
--   
--   For this column no separate CellRenderer is needed.
--   
--   The column textColumn in the model of
--   comboBox must be of type
--   G_TYPE_STRING.
--   
--   This is only relevant if comboBox has been created
--   with ComboBox:hasEntry as True.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetEntryTextColumn :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Int32 -> m ()

-- | Sets the model column which comboBox should use to get
--   string IDs for values from.
--   
--   The column idColumn in the model of
--   comboBox must be of type
--   G_TYPE_STRING.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetIdColumn :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Int32 -> m ()

-- | Sets the model used by comboBox to be
--   model.
--   
--   Will unset a previously set model (if applicable). If model is
--   Nothing, then it will unset the model.
--   
--   Note that this function does not clear the cell renderers, you have to
--   call cellLayoutClear yourself if you need to set up different
--   cell renderers for the new model.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetModel :: (HasCallStack, MonadIO m, IsComboBox a, IsTreeModel b) => a -> Maybe b -> m ()

-- | Specifies whether the popup’s width should be a fixed width.
--   
--   If fixed is True, the popup's width is set to
--   match the allocated width of the combo box.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetPopupFixedWidth :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Bool -> m ()

-- | Sets the row separator function, which is used to determine whether a
--   row should be drawn as a separator.
--   
--   If the row separator function is Nothing, no separators are
--   drawn. This is the default value.

-- | Deprecated: (Since version 4.10)Use DropDown
comboBoxSetRowSeparatorFunc :: (HasCallStack, MonadIO m, IsComboBox a) => a -> Maybe TreeViewRowSeparatorFunc -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructComboBoxActive :: (IsComboBox o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #active
--   
getComboBoxActive :: (MonadIO m, IsComboBox o) => o -> m Int32

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #active := value ]
--   
setComboBoxActive :: (MonadIO m, IsComboBox o) => o -> Int32 -> m ()

-- | Set the value of the “active-id” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #activeId
--   
clearComboBoxActiveId :: (MonadIO m, IsComboBox o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active-id” property. This is rarely needed directly, but it
--   is used by new.
constructComboBoxActiveId :: (IsComboBox o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “active-id” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #activeId
--   
getComboBoxActiveId :: (MonadIO m, IsComboBox o) => o -> m (Maybe Text)

-- | Set the value of the “active-id” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #activeId := value ]
--   
setComboBoxActiveId :: (MonadIO m, IsComboBox o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “button-sensitivity” property. This is rarely needed
--   directly, but it is used by new.
constructComboBoxButtonSensitivity :: (IsComboBox o, MonadIO m) => SensitivityType -> m (GValueConstruct o)

-- | Get the value of the “button-sensitivity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #buttonSensitivity
--   
getComboBoxButtonSensitivity :: (MonadIO m, IsComboBox o) => o -> m SensitivityType

-- | Set the value of the “button-sensitivity” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #buttonSensitivity := value ]
--   
setComboBoxButtonSensitivity :: (MonadIO m, IsComboBox o) => o -> SensitivityType -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearComboBoxChild :: (MonadIO m, IsComboBox o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructComboBoxChild :: (IsComboBox o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #child
--   
getComboBoxChild :: (MonadIO m, IsComboBox o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #child := value ]
--   
setComboBoxChild :: (MonadIO m, IsComboBox o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “entry-text-column” property. This is rarely needed directly,
--   but it is used by new.
constructComboBoxEntryTextColumn :: (IsComboBox o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “entry-text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #entryTextColumn
--   
getComboBoxEntryTextColumn :: (MonadIO m, IsComboBox o) => o -> m Int32

-- | Set the value of the “entry-text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #entryTextColumn := value ]
--   
setComboBoxEntryTextColumn :: (MonadIO m, IsComboBox o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-entry” property. This is rarely needed directly, but it
--   is used by new.
constructComboBoxHasEntry :: (IsComboBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-entry” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #hasEntry
--   
getComboBoxHasEntry :: (MonadIO m, IsComboBox o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “has-frame” property. This is rarely needed directly, but it
--   is used by new.
constructComboBoxHasFrame :: (IsComboBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #hasFrame
--   
getComboBoxHasFrame :: (MonadIO m, IsComboBox o) => o -> m Bool

-- | Set the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #hasFrame := value ]
--   
setComboBoxHasFrame :: (MonadIO m, IsComboBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “id-column” property. This is rarely needed directly, but it
--   is used by new.
constructComboBoxIdColumn :: (IsComboBox o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “id-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #idColumn
--   
getComboBoxIdColumn :: (MonadIO m, IsComboBox o) => o -> m Int32

-- | Set the value of the “id-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #idColumn := value ]
--   
setComboBoxIdColumn :: (MonadIO m, IsComboBox o) => o -> Int32 -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearComboBoxModel :: (MonadIO m, IsComboBox o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructComboBoxModel :: (IsComboBox o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #model
--   
getComboBoxModel :: (MonadIO m, IsComboBox o) => o -> m (Maybe TreeModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #model := value ]
--   
setComboBoxModel :: (MonadIO m, IsComboBox o, IsTreeModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “popup-fixed-width” property. This is rarely needed directly,
--   but it is used by new.
constructComboBoxPopupFixedWidth :: (IsComboBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “popup-fixed-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #popupFixedWidth
--   
getComboBoxPopupFixedWidth :: (MonadIO m, IsComboBox o) => o -> m Bool

-- | Set the value of the “popup-fixed-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set comboBox [ #popupFixedWidth := value ]
--   
setComboBoxPopupFixedWidth :: (MonadIO m, IsComboBox o) => o -> Bool -> m ()

-- | Get the value of the “popup-shown” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get comboBox #popupShown
--   
getComboBoxPopupShown :: (MonadIO m, IsComboBox o) => o -> m Bool

-- | Emitted to when the combo box is activated.
--   
--   The ::activate signal on GtkComboBox is an action
--   signal and emitting it causes the combo box to pop up its dropdown.
--   
--   Since: 4.6
type ComboBoxActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after comboBox #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterComboBoxActivate :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on comboBox #activate callback
--   
onComboBoxActivate :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxActivateCallback) -> m SignalHandlerId

-- | Emitted when the active item is changed.
--   
--   The can be due to the user selecting a different item from the list,
--   or due to a call to comboBoxSetActiveIter. It will also be
--   emitted while typing into the entry of a combo box with an entry.
type ComboBoxChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after comboBox #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterComboBoxChanged :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on comboBox #changed callback
--   
onComboBoxChanged :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxChangedCallback) -> m SignalHandlerId

-- | Emitted to allow changing how the text in a combo box's entry is
--   displayed.
--   
--   See ComboBox:hasEntry.
--   
--   Connect a signal handler which returns an allocated string
--   representing path. That string will then be used to
--   set the text in the combo box's entry. The default signal handler uses
--   the text from the ComboBox:entryTextColumn model column.
--   
--   Here's an example signal handler which fetches data from the model and
--   displays it in the entry.
--   
--   
c code
--   
--   
--   static char *
--   format_entry_text_callback (GtkComboBox *combo,
--                               const char *path,
--                               gpointer     user_data)
--   {
--     GtkTreeIter iter;
--     GtkTreeModel model;
--     double       value;
--   
--     model = gtk_combo_box_get_model (combo);
--   
--     gtk_tree_model_get_iter_from_string (model, &iter, path);
--     gtk_tree_model_get (model, &iter,
--                         THE_DOUBLE_VALUE_COLUMN, &value,
--                         -1);
--   
--     return g_strdup_printf ("%g", value);
--   }
--   
type ComboBoxFormatEntryTextCallback = Text -> IO Text

-- | Connect a signal handler for the formatEntryText signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after comboBox #formatEntryText callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterComboBoxFormatEntryText :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxFormatEntryTextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the formatEntryText signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on comboBox #formatEntryText callback
--   
onComboBoxFormatEntryText :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxFormatEntryTextCallback) -> m SignalHandlerId

-- | Emitted to move the active selection.
--   
--   This is an keybinding signal.
type ComboBoxMoveActiveCallback = ScrollType -> IO ()

-- | Connect a signal handler for the moveActive signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after comboBox #moveActive callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterComboBoxMoveActive :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxMoveActiveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the moveActive signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on comboBox #moveActive callback
--   
onComboBoxMoveActive :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxMoveActiveCallback) -> m SignalHandlerId

-- | Emitted to popdown the combo box list.
--   
--   This is an keybinding signal.
--   
--   The default bindings for this signal are Alt+Up and Escape.
type ComboBoxPopdownCallback = IO Bool

-- | Connect a signal handler for the popdown signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after comboBox #popdown callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterComboBoxPopdown :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxPopdownCallback) -> m SignalHandlerId

-- | Connect a signal handler for the popdown signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on comboBox #popdown callback
--   
onComboBoxPopdown :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxPopdownCallback) -> m SignalHandlerId

-- | Emitted to popup the combo box list.
--   
--   This is an keybinding signal.
--   
--   The default binding for this signal is Alt+Down.
type ComboBoxPopupCallback = IO ()

-- | Connect a signal handler for the popup signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after comboBox #popup callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterComboBoxPopup :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxPopupCallback) -> m SignalHandlerId

-- | Connect a signal handler for the popup signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on comboBox #popup callback
--   
onComboBoxPopup :: (IsComboBox a, MonadIO m) => a -> ((?self :: a) => ComboBoxPopupCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ComboBox.ComboBox
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ComboBox.ComboBox
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ComboBox.ComboBox
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ComboBox.ComboBox o) => GI.Gtk.Objects.ComboBox.IsComboBox o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ComboBox.ComboBox)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ComboBox.ComboBox
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ComboBox.ComboBox

-- | Sorts ColumnView columns.
--   
--   The sorter returned by columnViewGetSorter is a
--   GtkColumnViewSorter.
--   
--   In column views, sorting can be configured by associating sorters with
--   columns, and users can invert sort order by clicking on column
--   headers. The API of GtkColumnViewSorter is designed to allow
--   saving and restoring this configuration.
--   
--   If you are only interested in the primary sort column (i.e. the column
--   where a sort indicator is shown in the header), then you can just look
--   at ColumnViewSorter:primarySortColumn and
--   ColumnViewSorter:primarySortOrder.
--   
--   If you want to store the full sort configuration, including secondary
--   sort columns that are used for tie breaking, then you can use
--   columnViewSorterGetNthSortColumn. To get notified about
--   changes, use Sorter::changed.
--   
--   To restore a saved sort configuration on a GtkColumnView, use
--   code like:
--   
--   
--   sorter = gtk_column_view_get_sorter (view);
--   for (i = gtk_column_view_sorter_get_n_sort_columns (sorter) - 1; i >= 0; i--)
--     {
--       column = gtk_column_view_sorter_get_nth_sort_column (sorter, i, &order);
--       gtk_column_view_sort_by_column (view, column, order);
--     }
--   
--   
--   Since: 4.10
module GI.Gtk.Objects.ColumnViewSorter

-- | Memory-managed wrapper type.
newtype ColumnViewSorter
ColumnViewSorter :: ManagedPtr ColumnViewSorter -> ColumnViewSorter

-- | Type class for types which can be safely cast to
--   ColumnViewSorter, for instance with toColumnViewSorter.
class (GObject o, IsDescendantOf ColumnViewSorter o) => IsColumnViewSorter o

-- | Cast to ColumnViewSorter, for types for which this is known to
--   be safe. For general casts, use castTo.
toColumnViewSorter :: (MonadIO m, IsColumnViewSorter o) => o -> m ColumnViewSorter

-- | Returns the number of columns by which the sorter sorts.
--   
--   If the sorter of the primary sort column does not determine a total
--   order, then the secondary sorters are consulted to break the ties.
--   
--   Use the Sorter::changed signal to get notified when the number
--   of sort columns changes.
--   
--   Since: 4.10
columnViewSorterGetNSortColumns :: (HasCallStack, MonadIO m, IsColumnViewSorter a) => a -> m Word32

-- | Gets the position'th sort column and its associated
--   sort order.
--   
--   Use the Sorter::changed signal to get notified when sort
--   columns change.
--   
--   Since: 4.10
columnViewSorterGetNthSortColumn :: (HasCallStack, MonadIO m, IsColumnViewSorter a) => a -> Word32 -> m (Maybe ColumnViewColumn, SortType)

-- | Returns the primary sort column.
--   
--   The primary sort column is the one that displays the triangle in a
--   column view header.
--   
--   Since: 4.10
columnViewSorterGetPrimarySortColumn :: (HasCallStack, MonadIO m, IsColumnViewSorter a) => a -> m (Maybe ColumnViewColumn)

-- | Returns the primary sort order.
--   
--   The primary sort order determines whether the triangle displayed in
--   the column view header of the primary sort column points upwards or
--   downwards.
--   
--   If there is no primary sort column, then this function returns
--   GTK_SORT_ASCENDING.
--   
--   Since: 4.10
columnViewSorterGetPrimarySortOrder :: (HasCallStack, MonadIO m, IsColumnViewSorter a) => a -> m SortType

-- | Get the value of the “primary-sort-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewSorter #primarySortColumn
--   
getColumnViewSorterPrimarySortColumn :: (MonadIO m, IsColumnViewSorter o) => o -> m (Maybe ColumnViewColumn)

-- | Get the value of the “primary-sort-order” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewSorter #primarySortOrder
--   
getColumnViewSorterPrimarySortOrder :: (MonadIO m, IsColumnViewSorter o) => o -> m SortType
instance GHC.Classes.Eq GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter o) => GI.Gtk.Objects.ColumnViewSorter.IsColumnViewSorter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColumnViewSorter.ColumnViewSorter

-- | Represents the columns in a GtkColumnView.
--   
--   The main ingredient for a GtkColumnViewColumn is the
--   GtkListItemFactory that tells the columnview how to create
--   cells for this column from items in the model.
--   
--   Columns have a title, and can optionally have a header menu set with
--   columnViewColumnSetHeaderMenu.
--   
--   A sorter can be associated with a column using
--   columnViewColumnSetSorter, to let users influence sorting by
--   clicking on the column header.
module GI.Gtk.Objects.ColumnViewColumn

-- | Memory-managed wrapper type.
newtype ColumnViewColumn
ColumnViewColumn :: ManagedPtr ColumnViewColumn -> ColumnViewColumn

-- | Type class for types which can be safely cast to
--   ColumnViewColumn, for instance with toColumnViewColumn.
class (GObject o, IsDescendantOf ColumnViewColumn o) => IsColumnViewColumn o

-- | Cast to ColumnViewColumn, for types for which this is known to
--   be safe. For general casts, use castTo.
toColumnViewColumn :: (MonadIO m, IsColumnViewColumn o) => o -> m ColumnViewColumn

-- | Gets the column view that's currently displaying this column.
--   
--   If self has not been added to a column view yet,
--   NULL is returned.
columnViewColumnGetColumnView :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m (Maybe ColumnView)

-- | Returns whether this column should expand.
columnViewColumnGetExpand :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m Bool

-- | Gets the factory that's currently used to populate list items for this
--   column.
columnViewColumnGetFactory :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m (Maybe ListItemFactory)

-- | Gets the fixed width of the column.
columnViewColumnGetFixedWidth :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m Int32

-- | Gets the menu model that is used to create the context menu for the
--   column header.
columnViewColumnGetHeaderMenu :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m (Maybe MenuModel)

-- | Returns the ID set with columnViewColumnSetId.
--   
--   Since: 4.10
columnViewColumnGetId :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m (Maybe Text)

-- | Returns whether this column is resizable.
columnViewColumnGetResizable :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m Bool

-- | Returns the sorter that is associated with the column.
columnViewColumnGetSorter :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m (Maybe Sorter)

-- | Returns the title set with columnViewColumnSetTitle.
columnViewColumnGetTitle :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m (Maybe Text)

-- | Returns whether this column is visible.
columnViewColumnGetVisible :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> m Bool

-- | Creates a new GtkColumnViewColumn that uses the given
--   factory for mapping items to widgets.
--   
--   You most likely want to call columnViewAppendColumn next.
--   
--   The function takes ownership of the argument, so you can write code
--   like:
--   
--   
c code
--   
--   
--   column = gtk_column_view_column_new (_("Name"),
--     gtk_builder_list_item_factory_new_from_resource ("/name.ui"));
--   
columnViewColumnNew :: (HasCallStack, MonadIO m, IsListItemFactory a) => Maybe Text -> Maybe a -> m ColumnViewColumn

-- | Sets the column to take available extra space.
--   
--   The extra space is shared equally amongst all columns that have are
--   set to expand.
columnViewColumnSetExpand :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> Bool -> m ()

-- | Sets the GtkListItemFactory to use for populating list items
--   for this column.
columnViewColumnSetFactory :: (HasCallStack, MonadIO m, IsColumnViewColumn a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the fixed width of the column.
--   
--   If fixedWidth is -1, the fixed width of the column is
--   unset.
--   
--   Setting a fixed width overrides the automatically calculated width.
--   Interactive resizing also sets the “fixed-width” property.
columnViewColumnSetFixedWidth :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> Int32 -> m ()

-- | Sets the menu model that is used to create the context menu for the
--   column header.
columnViewColumnSetHeaderMenu :: (HasCallStack, MonadIO m, IsColumnViewColumn a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Sets the id of this column.
--   
--   GTK makes no use of this, but applications can use it when storing
--   column view configuration.
--   
--   It is up to callers to ensure uniqueness of IDs.
--   
--   Since: 4.10
columnViewColumnSetId :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> Maybe Text -> m ()

-- | Sets whether this column should be resizable by dragging.
columnViewColumnSetResizable :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> Bool -> m ()

-- | Associates a sorter with the column.
--   
--   If sorter is unset, the column will not let users
--   change the sorting by clicking on its header.
--   
--   This sorter can be made active by clicking on the column header, or by
--   calling columnViewSortByColumn.
--   
--   See columnViewGetSorter for the necessary steps for setting up
--   customizable sorting for ColumnView.
columnViewColumnSetSorter :: (HasCallStack, MonadIO m, IsColumnViewColumn a, IsSorter b) => a -> Maybe b -> m ()

-- | Sets the title of this column.
--   
--   The title is displayed in the header of a GtkColumnView for
--   this column and is therefore user-facing text that should be
--   translated.
columnViewColumnSetTitle :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> Maybe Text -> m ()

-- | Sets whether this column should be visible in views.
columnViewColumnSetVisible :: (HasCallStack, MonadIO m, IsColumnViewColumn a) => a -> Bool -> m ()

-- | Get the value of the “column-view” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #columnView
--   
getColumnViewColumnColumnView :: (MonadIO m, IsColumnViewColumn o) => o -> m (Maybe ColumnView)

-- | Construct a GValueConstruct with valid value for the
--   “expand” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewColumnExpand :: (IsColumnViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #expand
--   
getColumnViewColumnExpand :: (MonadIO m, IsColumnViewColumn o) => o -> m Bool

-- | Set the value of the “expand” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #expand := value ]
--   
setColumnViewColumnExpand :: (MonadIO m, IsColumnViewColumn o) => o -> Bool -> m ()

-- | Set the value of the “factory” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #factory
--   
clearColumnViewColumnFactory :: (MonadIO m, IsColumnViewColumn o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “factory” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewColumnFactory :: (IsColumnViewColumn o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #factory
--   
getColumnViewColumnFactory :: (MonadIO m, IsColumnViewColumn o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #factory := value ]
--   
setColumnViewColumnFactory :: (MonadIO m, IsColumnViewColumn o, IsListItemFactory a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fixed-width” property. This is rarely needed directly, but
--   it is used by new.
constructColumnViewColumnFixedWidth :: (IsColumnViewColumn o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “fixed-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #fixedWidth
--   
getColumnViewColumnFixedWidth :: (MonadIO m, IsColumnViewColumn o) => o -> m Int32

-- | Set the value of the “fixed-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #fixedWidth := value ]
--   
setColumnViewColumnFixedWidth :: (MonadIO m, IsColumnViewColumn o) => o -> Int32 -> m ()

-- | Set the value of the “header-menu” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #headerMenu
--   
clearColumnViewColumnHeaderMenu :: (MonadIO m, IsColumnViewColumn o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “header-menu” property. This is rarely needed directly, but
--   it is used by new.
constructColumnViewColumnHeaderMenu :: (IsColumnViewColumn o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “header-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #headerMenu
--   
getColumnViewColumnHeaderMenu :: (MonadIO m, IsColumnViewColumn o) => o -> m (Maybe MenuModel)

-- | Set the value of the “header-menu” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #headerMenu := value ]
--   
setColumnViewColumnHeaderMenu :: (MonadIO m, IsColumnViewColumn o, IsMenuModel a) => o -> a -> m ()

-- | Set the value of the “id” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #id
--   
clearColumnViewColumnId :: (MonadIO m, IsColumnViewColumn o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “id” property. This is rarely needed directly, but it is used
--   by new.
constructColumnViewColumnId :: (IsColumnViewColumn o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “id” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #id
--   
getColumnViewColumnId :: (MonadIO m, IsColumnViewColumn o) => o -> m (Maybe Text)

-- | Set the value of the “id” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #id := value ]
--   
setColumnViewColumnId :: (MonadIO m, IsColumnViewColumn o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “resizable” property. This is rarely needed directly, but it
--   is used by new.
constructColumnViewColumnResizable :: (IsColumnViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “resizable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #resizable
--   
getColumnViewColumnResizable :: (MonadIO m, IsColumnViewColumn o) => o -> m Bool

-- | Set the value of the “resizable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #resizable := value ]
--   
setColumnViewColumnResizable :: (MonadIO m, IsColumnViewColumn o) => o -> Bool -> m ()

-- | Set the value of the “sorter” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #sorter
--   
clearColumnViewColumnSorter :: (MonadIO m, IsColumnViewColumn o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sorter” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewColumnSorter :: (IsColumnViewColumn o, MonadIO m, IsSorter a) => a -> m (GValueConstruct o)

-- | Get the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #sorter
--   
getColumnViewColumnSorter :: (MonadIO m, IsColumnViewColumn o) => o -> m (Maybe Sorter)

-- | Set the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #sorter := value ]
--   
setColumnViewColumnSorter :: (MonadIO m, IsColumnViewColumn o, IsSorter a) => o -> a -> m ()

-- | Set the value of the “title” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #title
--   
clearColumnViewColumnTitle :: (MonadIO m, IsColumnViewColumn o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewColumnTitle :: (IsColumnViewColumn o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #title
--   
getColumnViewColumnTitle :: (MonadIO m, IsColumnViewColumn o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #title := value ]
--   
setColumnViewColumnTitle :: (MonadIO m, IsColumnViewColumn o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewColumnVisible :: (IsColumnViewColumn o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewColumn #visible
--   
getColumnViewColumnVisible :: (MonadIO m, IsColumnViewColumn o) => o -> m Bool

-- | Set the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewColumn [ #visible := value ]
--   
setColumnViewColumnVisible :: (MonadIO m, IsColumnViewColumn o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn o) => GI.Gtk.Objects.ColumnViewColumn.IsColumnViewColumn o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColumnViewColumn.ColumnViewColumn

-- | Represents items in a cell in ColumnView.
--   
--   The GtkColumnViewCells are managed by the ColumnView
--   widget (with its factory) and cannot be created by applications, but
--   they need to be populated by application code. This is done by calling
--   columnViewCellSetChild.
--   
--   GtkColumnViewCells exist in 2 stages:
--   
--   
--   
- The unbound stage where the listitem is not currently connected to
--   an item in the list. In that case, the ColumnViewCell:item
--   property is set to Nothing.
--   
- The bound stage where the listitem references an item from the
--   list. The ColumnViewCell:item property is not
--   Nothing.
--   
--   
--   Since: 4.12
module GI.Gtk.Objects.ColumnViewCell

-- | Memory-managed wrapper type.
newtype ColumnViewCell
ColumnViewCell :: ManagedPtr ColumnViewCell -> ColumnViewCell

-- | Type class for types which can be safely cast to
--   ColumnViewCell, for instance with toColumnViewCell.
class (GObject o, IsDescendantOf ColumnViewCell o) => IsColumnViewCell o

-- | Cast to ColumnViewCell, for types for which this is known to be
--   safe. For general casts, use castTo.
toColumnViewCell :: (MonadIO m, IsColumnViewCell o) => o -> m ColumnViewCell

-- | Gets the child previously set via columnViewCellSetChild or
--   Nothing if none was set.
--   
--   Since: 4.12
columnViewCellGetChild :: (HasCallStack, MonadIO m, IsColumnViewCell a) => a -> m (Maybe Widget)

-- | Checks if a list item has been set to be focusable via
--   columnViewCellSetFocusable.
--   
--   Since: 4.12
columnViewCellGetFocusable :: (HasCallStack, MonadIO m, IsColumnViewCell a) => a -> m Bool

-- | Gets the model item that associated with self.
--   
--   If self is unbound, this function returns
--   Nothing.
--   
--   Since: 4.12
columnViewCellGetItem :: (HasCallStack, MonadIO m, IsColumnViewCell a) => a -> m (Maybe Object)

-- | Gets the position in the model that self currently
--   displays.
--   
--   If self is unbound, INVALID_LIST_POSITION is
--   returned.
--   
--   Since: 4.12
columnViewCellGetPosition :: (HasCallStack, MonadIO m, IsColumnViewCell a) => a -> m Word32

-- | Checks if the item is displayed as selected.
--   
--   The selected state is maintained by the list widget and its model and
--   cannot be set otherwise.
--   
--   Since: 4.12
columnViewCellGetSelected :: (HasCallStack, MonadIO m, IsColumnViewCell a) => a -> m Bool

-- | Sets the child to be used for this listitem.
--   
--   This function is typically called by applications when setting up a
--   listitem so that the widget can be reused when binding it multiple
--   times.
--   
--   Since: 4.12
columnViewCellSetChild :: (HasCallStack, MonadIO m, IsColumnViewCell a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets self to be focusable.
--   
--   If an item is focusable, it can be focused using the keyboard. This
--   works similar to widgetSetFocusable.
--   
--   Note that if items are not focusable, the keyboard cannot be used to
--   activate them and selecting only works if one of the listitem's
--   children is focusable.
--   
--   By default, list items are focusable.
--   
--   Since: 4.12
columnViewCellSetFocusable :: (HasCallStack, MonadIO m, IsColumnViewCell a) => a -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearColumnViewCellChild :: (MonadIO m, IsColumnViewCell o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewCellChild :: (IsColumnViewCell o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewCell #child
--   
getColumnViewCellChild :: (MonadIO m, IsColumnViewCell o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewCell [ #child := value ]
--   
setColumnViewCellChild :: (MonadIO m, IsColumnViewCell o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focusable” property. This is rarely needed directly, but it
--   is used by new.
constructColumnViewCellFocusable :: (IsColumnViewCell o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewCell #focusable
--   
getColumnViewCellFocusable :: (MonadIO m, IsColumnViewCell o) => o -> m Bool

-- | Set the value of the “focusable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnViewCell [ #focusable := value ]
--   
setColumnViewCellFocusable :: (MonadIO m, IsColumnViewCell o) => o -> Bool -> m ()

-- | Get the value of the “item” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get columnViewCell #item
--   
getColumnViewCellItem :: (MonadIO m, IsColumnViewCell o) => o -> m (Maybe Object)

-- | Get the value of the “position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewCell #position
--   
getColumnViewCellPosition :: (MonadIO m, IsColumnViewCell o) => o -> m Word32

-- | Get the value of the “selected” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnViewCell #selected
--   
getColumnViewCellSelected :: (MonadIO m, IsColumnViewCell o) => o -> m Bool
instance GHC.Classes.Eq GI.Gtk.Objects.ColumnViewCell.ColumnViewCell
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColumnViewCell.ColumnViewCell
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColumnViewCell.ColumnViewCell
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColumnViewCell.ColumnViewCell o) => GI.Gtk.Objects.ColumnViewCell.IsColumnViewCell o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColumnViewCell.ColumnViewCell)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColumnViewCell.ColumnViewCell
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColumnViewCell.ColumnViewCell

-- | Presents a large dynamic list of items using multiple columns with
--   headers.
--   
--   GtkColumnView uses the factories of its columns to generate a
--   cell widget for each column, for each visible item and displays them
--   together as the row for this item.
--   
--   The ColumnView:showRowSeparators and
--   ColumnView:showColumnSeparators properties offer a simple way
--   to display separators between the rows or columns.
--   
--   GtkColumnView allows the user to select items according to
--   the selection characteristics of the model. For models that allow
--   multiple selected items, it is possible to turn on *rubberband
--   selection*, using ColumnView:enableRubberband.
--   
--   The column view supports sorting that can be customized by the user by
--   clicking on column headers. To set this up, the GtkSorter
--   returned by columnViewGetSorter must be attached to a sort
--   model for the data that the view is showing, and the columns must have
--   sorters attached to them by calling columnViewColumnSetSorter.
--   The initial sort order can be set with columnViewSortByColumn.
--   
--   The column view also supports interactive resizing and reordering of
--   columns, via Drag-and-Drop of the column headers. This can be enabled
--   or disabled with the ColumnView:reorderable and
--   ColumnViewColumn:resizable properties.
--   
--   To learn more about the list widget framework, see the
--   overview.
--   
--   
CSS nodes
--   
--   
--   columnview[.column-separators][.rich-list][.navigation-sidebar][.data-table]
--   ├── header
--   │   ├── <column header>
--   ┊   ┊
--   │   ╰── <column header>
--   │
--   ├── listview
--   │
--   ┊
--   ╰── [rubberband]
--   
--   
--   GtkColumnView uses a single CSS node named columnview. It may
--   carry the .column-separators style class, when
--   ColumnView:showColumnSeparators property is set. Header widgets
--   appear below a node with name header. The rows are contained in a
--   GtkListView widget, so there is a listview node with the same
--   structure as for a standalone GtkListView widget. If
--   ColumnView:showRowSeparators is set, it will be passed on to
--   the list view, causing its CSS node to carry the .separators style
--   class. For rubberband selection, a node with name rubberband is used.
--   
--   The main columnview node may also carry style classes to select the
--   style of list presentation: .rich-list, .navigation-sidebar or
--   .data-table.
--   
--   
Accessibility
--   
--   GtkColumnView uses the AccessibleRoleTreeGrid role,
--   header title widgets are using the AccessibleRoleColumnHeader
--   role. The row widgets are using the AccessibleRoleRow role, and
--   individual cells are using the AccessibleRoleGridCell role
module GI.Gtk.Objects.ColumnView

-- | Memory-managed wrapper type.
newtype ColumnView
ColumnView :: ManagedPtr ColumnView -> ColumnView

-- | Type class for types which can be safely cast to ColumnView,
--   for instance with toColumnView.
class (GObject o, IsDescendantOf ColumnView o) => IsColumnView o

-- | Cast to ColumnView, for types for which this is known to be
--   safe. For general casts, use castTo.
toColumnView :: (MonadIO m, IsColumnView o) => o -> m ColumnView

-- | Appends the column to the end of the columns in
--   self.
columnViewAppendColumn :: (HasCallStack, MonadIO m, IsColumnView a, IsColumnViewColumn b) => a -> b -> m ()

-- | Gets the list of columns in this column view.
--   
--   This list is constant over the lifetime of self and
--   can be used to monitor changes to the columns of self
--   by connecting to the ListModel::itemsChanged signal.
columnViewGetColumns :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m ListModel

-- | Returns whether rows can be selected by dragging with the mouse.
columnViewGetEnableRubberband :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m Bool

-- | Gets the factory that's currently used to populate section headers.
--   
--   Since: 4.12
columnViewGetHeaderFactory :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m (Maybe ListItemFactory)

-- | Gets the model that's currently used to read the items displayed.
columnViewGetModel :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m (Maybe SelectionModel)

-- | Returns whether columns are reorderable.
columnViewGetReorderable :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m Bool

-- | Gets the factory set via columnViewSetRowFactory.
--   
--   Since: 4.12
columnViewGetRowFactory :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m (Maybe ListItemFactory)

-- | Returns whether the list should show separators between columns.
columnViewGetShowColumnSeparators :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m Bool

-- | Returns whether the list should show separators between rows.
columnViewGetShowRowSeparators :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m Bool

-- | Returns whether rows will be activated on single click and selected on
--   hover.
columnViewGetSingleClickActivate :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m Bool

-- | Returns a special sorter that reflects the users sorting choices in
--   the column view.
--   
--   To allow users to customizable sorting by clicking on column headers,
--   this sorter needs to be set on the sort model underneath the model
--   that is displayed by the view.
--   
--   See columnViewColumnSetSorter for setting up per-column
--   sorting.
--   
--   Here is an example:
--   
--   
c code
--   
--   
--   gtk_column_view_column_set_sorter (column, sorter);
--   gtk_column_view_append_column (view, column);
--   sorter = g_object_ref (gtk_column_view_get_sorter (view)));
--   model = gtk_sort_list_model_new (store, sorter);
--   selection = gtk_no_selection_new (model);
--   gtk_column_view_set_model (view, selection);
--   
columnViewGetSorter :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m (Maybe Sorter)

-- | Gets the behavior set for the <kbd>Tab</kbd> key.
--   
--   Since: 4.12
columnViewGetTabBehavior :: (HasCallStack, MonadIO m, IsColumnView a) => a -> m ListTabBehavior

-- | Inserts a column at the given position in the columns of
--   self.
--   
--   If column is already a column of self,
--   it will be repositioned.
columnViewInsertColumn :: (HasCallStack, MonadIO m, IsColumnView a, IsColumnViewColumn b) => a -> Word32 -> b -> m ()

-- | Creates a new GtkColumnView.
--   
--   You most likely want to call columnViewAppendColumn to add
--   columns next.
columnViewNew :: (HasCallStack, MonadIO m, IsSelectionModel a) => Maybe a -> m ColumnView

-- | Removes the column from the list of columns of
--   self.
columnViewRemoveColumn :: (HasCallStack, MonadIO m, IsColumnView a, IsColumnViewColumn b) => a -> b -> m ()

-- | Scroll to the row at the given position - or cell if a column is given
--   - and performs the actions specified in flags.
--   
--   This function works no matter if the columnview is shown or focused.
--   If it isn't, then the changes will take effect once that happens.
--   
--   Since: 4.12
columnViewScrollTo :: (HasCallStack, MonadIO m, IsColumnView a, IsColumnViewColumn b) => a -> Word32 -> Maybe b -> [ListScrollFlags] -> Maybe ScrollInfo -> m ()

-- | Sets whether selections can be changed by dragging with the mouse.
columnViewSetEnableRubberband :: (HasCallStack, MonadIO m, IsColumnView a) => a -> Bool -> m ()

-- | Sets the factory to use for populating the ListHeader objects
--   used in section headers.
--   
--   If this factory is set to NULL, the list will not show
--   section headers.
--   
--   Since: 4.12
columnViewSetHeaderFactory :: (HasCallStack, MonadIO m, IsColumnView a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets the model to use.
--   
--   This must be a SelectionModel.
columnViewSetModel :: (HasCallStack, MonadIO m, IsColumnView a, IsSelectionModel b) => a -> Maybe b -> m ()

-- | Sets whether columns should be reorderable by dragging.
columnViewSetReorderable :: (HasCallStack, MonadIO m, IsColumnView a) => a -> Bool -> m ()

-- | Sets the factory used for configuring rows.
--   
--   The factory must be for configuring ColumnViewRow objects.
--   
--   If this factory is not set - which is the default - then the defaults
--   will be used.
--   
--   This factory is not used to set the widgets displayed in the
--   individual cells. For that see
--   [methodgtkColumnViewColumn.set_factory] and
--   [classgtkColumnViewCell].
--   
--   Since: 4.12
columnViewSetRowFactory :: (HasCallStack, MonadIO m, IsColumnView a, IsListItemFactory b) => a -> Maybe b -> m ()

-- | Sets whether the list should show separators between columns.
columnViewSetShowColumnSeparators :: (HasCallStack, MonadIO m, IsColumnView a) => a -> Bool -> m ()

-- | Sets whether the list should show separators between rows.
columnViewSetShowRowSeparators :: (HasCallStack, MonadIO m, IsColumnView a) => a -> Bool -> m ()

-- | Sets whether rows should be activated on single click and selected on
--   hover.
columnViewSetSingleClickActivate :: (HasCallStack, MonadIO m, IsColumnView a) => a -> Bool -> m ()

-- | Sets the <kbd>Tab</kbd> key behavior.
--   
--   This influences how the <kbd>Tab</kbd> and
--   <kbd>Shift</kbd>+<kbd>Tab</kbd> keys move the
--   focus in the columnview.
--   
--   Since: 4.12
columnViewSetTabBehavior :: (HasCallStack, MonadIO m, IsColumnView a) => a -> ListTabBehavior -> m ()

-- | Sets the sorting of the view.
--   
--   This function should be used to set up the initial sorting. At
--   runtime, users can change the sorting of a column view by clicking on
--   the list headers.
--   
--   This call only has an effect if the sorter returned by
--   columnViewGetSorter is set on a sort model, and
--   columnViewColumnSetSorter has been called on
--   column to associate a sorter with the column.
--   
--   If column is unset, the view will be unsorted.
columnViewSortByColumn :: (HasCallStack, MonadIO m, IsColumnView a, IsColumnViewColumn b) => a -> Maybe b -> SortType -> m ()

-- | Get the value of the “columns” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #columns
--   
getColumnViewColumns :: (MonadIO m, IsColumnView o) => o -> m ListModel

-- | Construct a GValueConstruct with valid value for the
--   “enable-rubberband” property. This is rarely needed directly,
--   but it is used by new.
constructColumnViewEnableRubberband :: (IsColumnView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-rubberband” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #enableRubberband
--   
getColumnViewEnableRubberband :: (MonadIO m, IsColumnView o) => o -> m Bool

-- | Set the value of the “enable-rubberband” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #enableRubberband := value ]
--   
setColumnViewEnableRubberband :: (MonadIO m, IsColumnView o) => o -> Bool -> m ()

-- | Set the value of the “header-factory” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #headerFactory
--   
clearColumnViewHeaderFactory :: (MonadIO m, IsColumnView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “header-factory” property. This is rarely needed directly,
--   but it is used by new.
constructColumnViewHeaderFactory :: (IsColumnView o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “header-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #headerFactory
--   
getColumnViewHeaderFactory :: (MonadIO m, IsColumnView o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “header-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #headerFactory := value ]
--   
setColumnViewHeaderFactory :: (MonadIO m, IsColumnView o, IsListItemFactory a) => o -> a -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearColumnViewModel :: (MonadIO m, IsColumnView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructColumnViewModel :: (IsColumnView o, MonadIO m, IsSelectionModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #model
--   
getColumnViewModel :: (MonadIO m, IsColumnView o) => o -> m (Maybe SelectionModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #model := value ]
--   
setColumnViewModel :: (MonadIO m, IsColumnView o, IsSelectionModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “reorderable” property. This is rarely needed directly, but
--   it is used by new.
constructColumnViewReorderable :: (IsColumnView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #reorderable
--   
getColumnViewReorderable :: (MonadIO m, IsColumnView o) => o -> m Bool

-- | Set the value of the “reorderable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #reorderable := value ]
--   
setColumnViewReorderable :: (MonadIO m, IsColumnView o) => o -> Bool -> m ()

-- | Set the value of the “row-factory” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #rowFactory
--   
clearColumnViewRowFactory :: (MonadIO m, IsColumnView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “row-factory” property. This is rarely needed directly, but
--   it is used by new.
constructColumnViewRowFactory :: (IsColumnView o, MonadIO m, IsListItemFactory a) => a -> m (GValueConstruct o)

-- | Get the value of the “row-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #rowFactory
--   
getColumnViewRowFactory :: (MonadIO m, IsColumnView o) => o -> m (Maybe ListItemFactory)

-- | Set the value of the “row-factory” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #rowFactory := value ]
--   
setColumnViewRowFactory :: (MonadIO m, IsColumnView o, IsListItemFactory a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-column-separators” property. This is rarely needed
--   directly, but it is used by new.
constructColumnViewShowColumnSeparators :: (IsColumnView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-column-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #showColumnSeparators
--   
getColumnViewShowColumnSeparators :: (MonadIO m, IsColumnView o) => o -> m Bool

-- | Set the value of the “show-column-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #showColumnSeparators := value ]
--   
setColumnViewShowColumnSeparators :: (MonadIO m, IsColumnView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-row-separators” property. This is rarely needed
--   directly, but it is used by new.
constructColumnViewShowRowSeparators :: (IsColumnView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-row-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #showRowSeparators
--   
getColumnViewShowRowSeparators :: (MonadIO m, IsColumnView o) => o -> m Bool

-- | Set the value of the “show-row-separators” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #showRowSeparators := value ]
--   
setColumnViewShowRowSeparators :: (MonadIO m, IsColumnView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “single-click-activate” property. This is rarely needed
--   directly, but it is used by new.
constructColumnViewSingleClickActivate :: (IsColumnView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “single-click-activate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #singleClickActivate
--   
getColumnViewSingleClickActivate :: (MonadIO m, IsColumnView o) => o -> m Bool

-- | Set the value of the “single-click-activate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #singleClickActivate := value ]
--   
setColumnViewSingleClickActivate :: (MonadIO m, IsColumnView o) => o -> Bool -> m ()

-- | Get the value of the “sorter” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #sorter
--   
getColumnViewSorter :: (MonadIO m, IsColumnView o) => o -> m (Maybe Sorter)

-- | Construct a GValueConstruct with valid value for the
--   “tab-behavior” property. This is rarely needed directly, but
--   it is used by new.
constructColumnViewTabBehavior :: (IsColumnView o, MonadIO m) => ListTabBehavior -> m (GValueConstruct o)

-- | Get the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get columnView #tabBehavior
--   
getColumnViewTabBehavior :: (MonadIO m, IsColumnView o) => o -> m ListTabBehavior

-- | Set the value of the “tab-behavior” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set columnView [ #tabBehavior := value ]
--   
setColumnViewTabBehavior :: (MonadIO m, IsColumnView o) => o -> ListTabBehavior -> m ()

-- | Emitted when a row has been activated by the user, usually via
--   activating the GtkListBase|list.activate-item action.
--   
--   This allows for a convenient way to handle activation in a columnview.
--   See listItemSetActivatable for details on how to use this
--   signal.
type ColumnViewActivateCallback = Word32 -> IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after columnView #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterColumnViewActivate :: (IsColumnView a, MonadIO m) => a -> ((?self :: a) => ColumnViewActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on columnView #activate callback
--   
onColumnViewActivate :: (IsColumnView a, MonadIO m) => a -> ((?self :: a) => ColumnViewActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ColumnView.ColumnView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColumnView.ColumnView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColumnView.ColumnView
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColumnView.ColumnView o) => GI.Gtk.Objects.ColumnView.IsColumnView o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColumnView.ColumnView)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColumnView.ColumnView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColumnView.ColumnView

-- | Opens a color chooser dialog to select a color.
--   
--   <picture> <source srcset="color-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkColorDialogButton" src="color-button.png"> </picture>
--   
--   It is suitable widget for selecting a color in a preference dialog.
--   
--   
CSS nodes
--   
--   
--   colorbutton
--   ╰── button.color
--       ╰── [content]
--   
--   
--   GtkColorDialogButton has a single CSS node with name
--   colorbutton which contains a button node. To differentiate it from a
--   plain GtkButton, it gets the .color style class.
--   
--   Since: 4.10
module GI.Gtk.Objects.ColorDialogButton

-- | Memory-managed wrapper type.
newtype ColorDialogButton
ColorDialogButton :: ManagedPtr ColorDialogButton -> ColorDialogButton

-- | Type class for types which can be safely cast to
--   ColorDialogButton, for instance with
--   toColorDialogButton.
class (GObject o, IsDescendantOf ColorDialogButton o) => IsColorDialogButton o

-- | Cast to ColorDialogButton, for types for which this is known to
--   be safe. For general casts, use castTo.
toColorDialogButton :: (MonadIO m, IsColorDialogButton o) => o -> m ColorDialogButton

-- | Returns the GtkColorDialog of self.
--   
--   Since: 4.10
colorDialogButtonGetDialog :: (HasCallStack, MonadIO m, IsColorDialogButton a) => a -> m (Maybe ColorDialog)

-- | Returns the color of the button.
--   
--   This function is what should be used to obtain the color that was
--   chosen by the user. To get informed about changes, listen to
--   "notifyrgba".
--   
--   Since: 4.10
colorDialogButtonGetRgba :: (HasCallStack, MonadIO m, IsColorDialogButton a) => a -> m RGBA

-- | Creates a new GtkColorDialogButton with the given
--   GtkColorDialog.
--   
--   You can pass NULL to this function and set a
--   GtkColorDialog later. The button will be insensitive until
--   that happens.
--   
--   Since: 4.10
colorDialogButtonNew :: (HasCallStack, MonadIO m, IsColorDialog a) => Maybe a -> m ColorDialogButton

-- | Sets a GtkColorDialog object to use for creating the color
--   chooser dialog that is presented when the user clicks the button.
--   
--   Since: 4.10
colorDialogButtonSetDialog :: (HasCallStack, MonadIO m, IsColorDialogButton a, IsColorDialog b) => a -> b -> m ()

-- | Sets the color of the button.
--   
--   Since: 4.10
colorDialogButtonSetRgba :: (HasCallStack, MonadIO m, IsColorDialogButton a) => a -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “dialog” property. This is rarely needed directly, but it is
--   used by new.
constructColorDialogButtonDialog :: (IsColorDialogButton o, MonadIO m, IsColorDialog a) => a -> m (GValueConstruct o)

-- | Get the value of the “dialog” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorDialogButton #dialog
--   
getColorDialogButtonDialog :: (MonadIO m, IsColorDialogButton o) => o -> m (Maybe ColorDialog)

-- | Set the value of the “dialog” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorDialogButton [ #dialog := value ]
--   
setColorDialogButtonDialog :: (MonadIO m, IsColorDialogButton o, IsColorDialog a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rgba” property. This is rarely needed directly, but it is
--   used by new.
constructColorDialogButtonRgba :: (IsColorDialogButton o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “rgba” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get colorDialogButton #rgba
--   
getColorDialogButtonRgba :: (MonadIO m, IsColorDialogButton o) => o -> m RGBA

-- | Set the value of the “rgba” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set colorDialogButton [ #rgba := value ]
--   
setColorDialogButtonRgba :: (MonadIO m, IsColorDialogButton o) => o -> RGBA -> m ()

-- | Emitted when the color dialog button is activated.
--   
--   The ::activate signal on GtkColorDialogButton is an
--   action signal and emitting it causes the button to pop up its dialog.
--   
--   Since: 4.14
type ColorDialogButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after colorDialogButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterColorDialogButtonActivate :: (IsColorDialogButton a, MonadIO m) => a -> ((?self :: a) => ColorDialogButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on colorDialogButton #activate callback
--   
onColorDialogButtonActivate :: (IsColorDialogButton a, MonadIO m) => a -> ((?self :: a) => ColorDialogButtonActivateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ColorDialogButton.ColorDialogButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColorDialogButton.ColorDialogButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColorDialogButton.ColorDialogButton
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColorDialogButton.ColorDialogButton o) => GI.Gtk.Objects.ColorDialogButton.IsColorDialogButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColorDialogButton.ColorDialogButton)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColorDialogButton.ColorDialogButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColorDialogButton.ColorDialogButton

-- | Asynchronous API to present a color chooser dialog.
--   
--   GtkColorDialog collects the arguments that are needed to
--   present the dialog to the user, such as a title for the dialog and
--   whether it should be modal.
--   
--   The dialog is shown with the colorDialogChooseRgba function.
--   
--   See ColorDialogButton for a convenient control that uses
--   GtkColorDialog and presents the results.
--   
--   Since: 4.10
module GI.Gtk.Objects.ColorDialog

-- | Memory-managed wrapper type.
newtype ColorDialog
ColorDialog :: ManagedPtr ColorDialog -> ColorDialog

-- | Type class for types which can be safely cast to ColorDialog,
--   for instance with toColorDialog.
class (GObject o, IsDescendantOf ColorDialog o) => IsColorDialog o

-- | Cast to ColorDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toColorDialog :: (MonadIO m, IsColorDialog o) => o -> m ColorDialog

-- | Presents a color chooser dialog to the user.
--   
--   Since: 4.10
colorDialogChooseRgba :: (HasCallStack, MonadIO m, IsColorDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe RGBA -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the colorDialogChooseRgba call
--   
--   Note that this function returns a
--   [errorgtk.DialogError.DISMISSED] error if the user
--   cancels the dialog.
--   
--   Since: 4.10
colorDialogChooseRgbaFinish :: (HasCallStack, MonadIO m, IsColorDialog a, IsAsyncResult b) => a -> b -> m RGBA

-- | Returns whether the color chooser dialog blocks interaction with the
--   parent window while it is presented.
--   
--   Since: 4.10
colorDialogGetModal :: (HasCallStack, MonadIO m, IsColorDialog a) => a -> m Bool

-- | Returns the title that will be shown on the color chooser dialog.
--   
--   Since: 4.10
colorDialogGetTitle :: (HasCallStack, MonadIO m, IsColorDialog a) => a -> m Text

-- | Returns whether colors may have alpha.
--   
--   Since: 4.10
colorDialogGetWithAlpha :: (HasCallStack, MonadIO m, IsColorDialog a) => a -> m Bool

-- | Creates a new GtkColorDialog object.
--   
--   Since: 4.10
colorDialogNew :: (HasCallStack, MonadIO m) => m ColorDialog

-- | Sets whether the color chooser dialog blocks interaction with the
--   parent window while it is presented.
--   
--   Since: 4.10
colorDialogSetModal :: (HasCallStack, MonadIO m, IsColorDialog a) => a -> Bool -> m ()

-- | Sets the title that will be shown on the color chooser dialog.
--   
--   Since: 4.10
colorDialogSetTitle :: (HasCallStack, MonadIO m, IsColorDialog a) => a -> Text -> m ()

-- | Sets whether colors may have alpha.
--   
--   Since: 4.10
colorDialogSetWithAlpha :: (HasCallStack, MonadIO m, IsColorDialog a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructColorDialogModal :: (IsColorDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorDialog #modal
--   
getColorDialogModal :: (MonadIO m, IsColorDialog o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorDialog [ #modal := value ]
--   
setColorDialogModal :: (MonadIO m, IsColorDialog o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructColorDialogTitle :: (IsColorDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorDialog #title
--   
getColorDialogTitle :: (MonadIO m, IsColorDialog o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorDialog [ #title := value ]
--   
setColorDialogTitle :: (MonadIO m, IsColorDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “with-alpha” property. This is rarely needed directly, but it
--   is used by new.
constructColorDialogWithAlpha :: (IsColorDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “with-alpha” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorDialog #withAlpha
--   
getColorDialogWithAlpha :: (MonadIO m, IsColorDialog o) => o -> m Bool

-- | Set the value of the “with-alpha” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorDialog [ #withAlpha := value ]
--   
setColorDialogWithAlpha :: (MonadIO m, IsColorDialog o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ColorDialog.ColorDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColorDialog.ColorDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColorDialog.ColorDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColorDialog.ColorDialog o) => GI.Gtk.Objects.ColorDialog.IsColorDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColorDialog.ColorDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColorDialog.ColorDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColorDialog.ColorDialog

-- | The GtkColorChooserWidget widget lets the user select a
--   color.
--   
--   By default, the chooser presents a predefined palette of colors, plus
--   a small number of settable custom colors. It is also possible to
--   select a different color with the single-color editor.
--   
--   To enter the single-color editing mode, use the context menu of any
--   color of the palette, or use the '+' button to add a new custom color.
--   
--   The chooser automatically remembers the last selection, as well as
--   custom colors.
--   
--   To create a GtkColorChooserWidget, use
--   colorChooserWidgetNew.
--   
--   To change the initially selected color, use
--   colorChooserSetRgba. To get the selected color use
--   colorChooserGetRgba.
--   
--   The GtkColorChooserWidget is used in the
--   ColorChooserDialog to provide a dialog for selecting colors.
--   
--   
Actions
--   
--   GtkColorChooserWidget defines a set of built-in actions:
--   
--   
--   
- color.customize activates the color editor for the given
--   color.
--   
- color.select emits the
--   ColorChooser::colorActivated signal for the given color.
--   
--   
--   
CSS names
--   
--   GtkColorChooserWidget has a single CSS node with name
--   colorchooser.
module GI.Gtk.Objects.ColorChooserWidget

-- | Memory-managed wrapper type.
newtype ColorChooserWidget
ColorChooserWidget :: ManagedPtr ColorChooserWidget -> ColorChooserWidget

-- | Type class for types which can be safely cast to
--   ColorChooserWidget, for instance with
--   toColorChooserWidget.
class (GObject o, IsDescendantOf ColorChooserWidget o) => IsColorChooserWidget o

-- | Cast to ColorChooserWidget, for types for which this is known
--   to be safe. For general casts, use castTo.
toColorChooserWidget :: (MonadIO m, IsColorChooserWidget o) => o -> m ColorChooserWidget

-- | Creates a new GtkColorChooserWidget.
colorChooserWidgetNew :: (HasCallStack, MonadIO m) => m ColorChooserWidget

-- | Construct a GValueConstruct with valid value for the
--   “show-editor” property. This is rarely needed directly, but
--   it is used by new.
constructColorChooserWidgetShowEditor :: (IsColorChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-editor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorChooserWidget #showEditor
--   
getColorChooserWidgetShowEditor :: (MonadIO m, IsColorChooserWidget o) => o -> m Bool

-- | Set the value of the “show-editor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorChooserWidget [ #showEditor := value ]
--   
setColorChooserWidgetShowEditor :: (MonadIO m, IsColorChooserWidget o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget o) => GI.Gtk.Objects.ColorChooserWidget.IsColorChooserWidget o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget

-- | A dialog for choosing a color.
--   
--   <picture> <source srcset="colorchooser-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkColorChooserDialog" src="colorchooser.png"> </picture>
--   
--   GtkColorChooserDialog implements the ColorChooser
--   interface and does not provide much API of its own.
--   
--   To create a GtkColorChooserDialog, use
--   colorChooserDialogNew.
--   
--   To change the initially selected color, use
--   colorChooserSetRgba. To get the selected color use
--   colorChooserGetRgba.
--   
--   GtkColorChooserDialog has been deprecated in favor of
--   ColorDialog.
--   
--   
CSS nodes
--   
--   GtkColorChooserDialog has a single CSS node with the name
--   window and style class .colorchooser.
module GI.Gtk.Objects.ColorChooserDialog

-- | Memory-managed wrapper type.
newtype ColorChooserDialog
ColorChooserDialog :: ManagedPtr ColorChooserDialog -> ColorChooserDialog

-- | Type class for types which can be safely cast to
--   ColorChooserDialog, for instance with
--   toColorChooserDialog.
class (GObject o, IsDescendantOf ColorChooserDialog o) => IsColorChooserDialog o

-- | Cast to ColorChooserDialog, for types for which this is known
--   to be safe. For general casts, use castTo.
toColorChooserDialog :: (MonadIO m, IsColorChooserDialog o) => o -> m ColorChooserDialog

-- | Creates a new GtkColorChooserDialog.

-- | Deprecated: (Since version 4.10)Use ColorDialog instead
colorChooserDialogNew :: (HasCallStack, MonadIO m, IsWindow a) => Maybe Text -> Maybe a -> m ColorChooserDialog

-- | Construct a GValueConstruct with valid value for the
--   “show-editor” property. This is rarely needed directly, but
--   it is used by new.
constructColorChooserDialogShowEditor :: (IsColorChooserDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-editor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorChooserDialog #showEditor
--   
getColorChooserDialogShowEditor :: (MonadIO m, IsColorChooserDialog o) => o -> m Bool

-- | Set the value of the “show-editor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorChooserDialog [ #showEditor := value ]
--   
setColorChooserDialogShowEditor :: (MonadIO m, IsColorChooserDialog o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog o) => GI.Gtk.Objects.ColorChooserDialog.IsColorChooserDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog

-- | The GtkColorButton allows to open a color chooser dialog to
--   change the color.
--   
--   <picture> <source srcset="color-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkColorButton" src="color-button.png"> </picture>
--   
--   It is suitable widget for selecting a color in a preference dialog.
--   
--   
CSS nodes
--   
--   
--   colorbutton
--   ╰── button.color
--       ╰── [content]
--   
--   
--   GtkColorButton has a single CSS node with name colorbutton
--   which contains a button node. To differentiate it from a plain
--   GtkButton, it gets the .color style class.
module GI.Gtk.Objects.ColorButton

-- | Memory-managed wrapper type.
newtype ColorButton
ColorButton :: ManagedPtr ColorButton -> ColorButton

-- | Type class for types which can be safely cast to ColorButton,
--   for instance with toColorButton.
class (GObject o, IsDescendantOf ColorButton o) => IsColorButton o

-- | Cast to ColorButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toColorButton :: (MonadIO m, IsColorButton o) => o -> m ColorButton

-- | Gets whether the dialog is modal.

-- | Deprecated: (Since version 4.10)Use ColorDialogButton
--   instead
colorButtonGetModal :: (HasCallStack, MonadIO m, IsColorButton a) => a -> m Bool

-- | Gets the title of the color chooser dialog.

-- | Deprecated: (Since version 4.10)Use ColorDialogButton
--   instead
colorButtonGetTitle :: (HasCallStack, MonadIO m, IsColorButton a) => a -> m Text

-- | Creates a new color button.
--   
--   This returns a widget in the form of a small button containing a
--   swatch representing the current selected color. When the button is
--   clicked, a color chooser dialog will open, allowing the user to select
--   a color. The swatch will be updated to reflect the new color when the
--   user finishes.

-- | Deprecated: (Since version 4.10)Use ColorDialogButton
--   instead
colorButtonNew :: (HasCallStack, MonadIO m) => m ColorButton

-- | Creates a new color button showing the given color.
colorButtonNewWithRgba :: (HasCallStack, MonadIO m) => RGBA -> m ColorButton

-- | Sets whether the dialog should be modal.

-- | Deprecated: (Since version 4.10)Use ColorDialogButton
--   instead
colorButtonSetModal :: (HasCallStack, MonadIO m, IsColorButton a) => a -> Bool -> m ()

-- | Sets the title for the color chooser dialog.

-- | Deprecated: (Since version 4.10)Use ColorDialogButton
--   instead
colorButtonSetTitle :: (HasCallStack, MonadIO m, IsColorButton a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructColorButtonModal :: (IsColorButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorButton #modal
--   
getColorButtonModal :: (MonadIO m, IsColorButton o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorButton [ #modal := value ]
--   
setColorButtonModal :: (MonadIO m, IsColorButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-editor” property. This is rarely needed directly, but
--   it is used by new.
constructColorButtonShowEditor :: (IsColorButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-editor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorButton #showEditor
--   
getColorButtonShowEditor :: (MonadIO m, IsColorButton o) => o -> m Bool

-- | Set the value of the “show-editor” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorButton [ #showEditor := value ]
--   
setColorButtonShowEditor :: (MonadIO m, IsColorButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructColorButtonTitle :: (IsColorButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get colorButton #title
--   
getColorButtonTitle :: (MonadIO m, IsColorButton o) => o -> m Text

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set colorButton [ #title := value ]
--   
setColorButtonTitle :: (MonadIO m, IsColorButton o) => o -> Text -> m ()

-- | Emitted to when the color button is activated.
--   
--   The ::activate signal on GtkMenuButton is an action
--   signal and emitting it causes the button to pop up its dialog.
--   
--   Since: 4.4
type ColorButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after colorButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterColorButtonActivate :: (IsColorButton a, MonadIO m) => a -> ((?self :: a) => ColorButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on colorButton #activate callback
--   
onColorButtonActivate :: (IsColorButton a, MonadIO m) => a -> ((?self :: a) => ColorButtonActivateCallback) -> m SignalHandlerId

-- | Emitted when the user selects a color.
--   
--   When handling this signal, use colorChooserGetRgba to find out
--   which color was just selected.
--   
--   Note that this signal is only emitted when the user changes the color.
--   If you need to react to programmatic color changes as well, use the
--   notifyrgba signal.
type ColorButtonColorSetCallback = IO ()

-- | Connect a signal handler for the colorSet signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after colorButton #colorSet callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterColorButtonColorSet :: (IsColorButton a, MonadIO m) => a -> ((?self :: a) => ColorButtonColorSetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the colorSet signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on colorButton #colorSet callback
--   
onColorButtonColorSet :: (IsColorButton a, MonadIO m) => a -> ((?self :: a) => ColorButtonColorSetCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.ColorButton.ColorButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ColorButton.ColorButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ColorButton.ColorButton
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ColorButton.ColorButton o) => GI.Gtk.Objects.ColorButton.IsColorButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ColorButton.ColorButton)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ColorButton.ColorButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ColorButton.ColorButton

-- | An expression using a custom GClosure to compute the value
--   from its parameters.
module GI.Gtk.Objects.ClosureExpression

-- | Memory-managed wrapper type.
newtype ClosureExpression
ClosureExpression :: ManagedPtr ClosureExpression -> ClosureExpression

-- | Type class for types which can be safely cast to
--   ClosureExpression, for instance with
--   toClosureExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf ClosureExpression o) => IsClosureExpression o

-- | Cast to ClosureExpression, for types for which this is known to
--   be safe. For general casts, use castTo.
toClosureExpression :: (MonadIO m, IsClosureExpression o) => o -> m ClosureExpression

-- | Creates a GtkExpression that calls closure when it
--   is evaluated.
--   
--   closure is called with the this object and the
--   results of evaluating the params expressions.
closureExpressionNew :: (HasCallStack, MonadIO m) => GType -> GClosure a -> Maybe [Expression] -> m ClosureExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.ClosureExpression.ClosureExpression
instance GHC.Classes.Eq GI.Gtk.Objects.ClosureExpression.ClosureExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ClosureExpression.ClosureExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ClosureExpression.ClosureExpression o) => GI.Gtk.Objects.ClosureExpression.IsClosureExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ClosureExpression.ClosureExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ClosureExpression.ClosureExpression

-- | Places a label next to an indicator.
--   
--   <picture> <source srcset="check-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="Example
--   GtkCheckButtons" src="check-button.png"> </picture>
--   
--   A GtkCheckButton is created by calling either
--   checkButtonNew or checkButtonNewWithLabel.
--   
--   The state of a GtkCheckButton can be set specifically using
--   checkButtonSetActive, and retrieved using
--   checkButtonGetActive.
--   
--   
Inconsistent state
--   
--   In addition to "on" and "off", check buttons can be an "in between"
--   state that is neither on nor off. This can be used e.g. when the user
--   has selected a range of elements (such as some text or spreadsheet
--   cells) that are affected by a check button, and the current values in
--   that range are inconsistent.
--   
--   To set a GtkCheckButton to inconsistent state, use
--   checkButtonSetInconsistent.
--   
--   
Grouping
--   
--   Check buttons can be grouped together, to form mutually exclusive
--   groups - only one of the buttons can be toggled at a time, and
--   toggling another one will switch the currently toggled one off.
--   
--   Grouped check buttons use a different indicator, and are commonly
--   referred to as *radio buttons*.
--   
--   <picture> <source srcset="radio-button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="Example
--   GtkRadioButtons" src="radio-button.png"> </picture>
--   
--   To add a GtkCheckButton to a group, use
--   checkButtonSetGroup.
--   
--   When the code must keep track of the state of a group of radio
--   buttons, it is recommended to keep track of such state through a
--   stateful GAction with a target for each button. Using the
--   toggled signals to keep track of the group changes and state
--   is discouraged.
--   
--   
Shortcuts and Gestures
--   
--   GtkCheckButton supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>␣</kbd> or <kbd>Enter</kbd> activates
--   the button.
--   
--   
--   
CSS nodes
--   
--   
--   checkbutton[.text-button][.grouped]
--   ├── check
--   ╰── [label]
--   
--   
--   A GtkCheckButton has a main node with name checkbutton. If
--   the CheckButton:label or CheckButton:child properties
--   are set, it contains a child widget. The indicator node is named check
--   when no group is set, and radio if the checkbutton is grouped together
--   with other checkbuttons.
--   
--   
Accessibility
--   
--   GtkCheckButton uses the AccessibleRoleCheckbox role.
module GI.Gtk.Objects.CheckButton

-- | Memory-managed wrapper type.
newtype CheckButton
CheckButton :: ManagedPtr CheckButton -> CheckButton

-- | Type class for types which can be safely cast to CheckButton,
--   for instance with toCheckButton.
class (GObject o, IsDescendantOf CheckButton o) => IsCheckButton o

-- | Cast to CheckButton, for types for which this is known to be
--   safe. For general casts, use castTo.
toCheckButton :: (MonadIO m, IsCheckButton o) => o -> m CheckButton

-- | Returns whether the check button is active.
checkButtonGetActive :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> m Bool

-- | Gets the child widget of button or NULL if
--   [propertycheckButton:label] is set.
--   
--   Since: 4.8
checkButtonGetChild :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> m (Maybe Widget)

-- | Returns whether the check button is in an inconsistent state.
checkButtonGetInconsistent :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> m Bool

-- | Returns the label of the check button or NULL if
--   [propertycheckButton:child] is set.
checkButtonGetLabel :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> m (Maybe Text)

-- | Returns whether underlines in the label indicate mnemonics.
checkButtonGetUseUnderline :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> m Bool

-- | Creates a new GtkCheckButton.
checkButtonNew :: (HasCallStack, MonadIO m) => m CheckButton

-- | Creates a new GtkCheckButton with the given text.
checkButtonNewWithLabel :: (HasCallStack, MonadIO m) => Maybe Text -> m CheckButton

-- | Creates a new GtkCheckButton with the given text and a
--   mnemonic.
checkButtonNewWithMnemonic :: (HasCallStack, MonadIO m) => Maybe Text -> m CheckButton

-- | Changes the check buttons active state.
checkButtonSetActive :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> Bool -> m ()

-- | Sets the child widget of button.
--   
--   Note that by using this API, you take full responsibility for setting
--   up the proper accessibility label and description information for
--   button. Most likely, you'll either set the
--   accessibility label or description for button
--   explicitly, or you'll set a labelled-by or described-by relations from
--   child to button.
--   
--   Since: 4.8
checkButtonSetChild :: (HasCallStack, MonadIO m, IsCheckButton a, IsWidget b) => a -> Maybe b -> m ()

-- | Adds self to the group of group.
--   
--   In a group of multiple check buttons, only one button can be active at
--   a time. The behavior of a checkbutton in a group is also commonly
--   known as a *radio button*.
--   
--   Setting the group of a check button also changes the css name of the
--   indicator widget's CSS node to 'radio'.
--   
--   Setting up groups in a cycle leads to undefined behavior.
--   
--   Note that the same effect can be achieved via the Actionable
--   API, by using the same action with parameter type and state type 's'
--   for all buttons in the group, and giving each button its own target
--   value.
checkButtonSetGroup :: (HasCallStack, MonadIO m, IsCheckButton a, IsCheckButton b) => a -> Maybe b -> m ()

-- | Sets the GtkCheckButton to inconsistent state.
--   
--   You should turn off the inconsistent state again if the user checks
--   the check button. This has to be done manually.
checkButtonSetInconsistent :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> Bool -> m ()

-- | Sets the text of self.
--   
--   If CheckButton:useUnderline is True, an underscore in
--   label is interpreted as mnemonic indicator, see
--   checkButtonSetUseUnderline for details on this behavior.
checkButtonSetLabel :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> Maybe Text -> m ()

-- | Sets whether underlines in the label indicate mnemonics.
--   
--   If setting is True, an underscore character in
--   self's label indicates a mnemonic accelerator key.
--   This behavior is similar to Label:useUnderline.
checkButtonSetUseUnderline :: (HasCallStack, MonadIO m, IsCheckButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructCheckButtonActive :: (IsCheckButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get checkButton #active
--   
getCheckButtonActive :: (MonadIO m, IsCheckButton o) => o -> m Bool

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set checkButton [ #active := value ]
--   
setCheckButtonActive :: (MonadIO m, IsCheckButton o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearCheckButtonChild :: (MonadIO m, IsCheckButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructCheckButtonChild :: (IsCheckButton o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get checkButton #child
--   
getCheckButtonChild :: (MonadIO m, IsCheckButton o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set checkButton [ #child := value ]
--   
setCheckButtonChild :: (MonadIO m, IsCheckButton o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “group” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #group
--   
clearCheckButtonGroup :: (MonadIO m, IsCheckButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “group” property. This is rarely needed directly, but it is
--   used by new.
constructCheckButtonGroup :: (IsCheckButton o, MonadIO m, IsCheckButton a) => a -> m (GValueConstruct o)

-- | Set the value of the “group” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set checkButton [ #group := value ]
--   
setCheckButtonGroup :: (MonadIO m, IsCheckButton o, IsCheckButton a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “inconsistent” property. This is rarely needed directly, but
--   it is used by new.
constructCheckButtonInconsistent :: (IsCheckButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inconsistent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get checkButton #inconsistent
--   
getCheckButtonInconsistent :: (MonadIO m, IsCheckButton o) => o -> m Bool

-- | Set the value of the “inconsistent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set checkButton [ #inconsistent := value ]
--   
setCheckButtonInconsistent :: (MonadIO m, IsCheckButton o) => o -> Bool -> m ()

-- | Set the value of the “label” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #label
--   
clearCheckButtonLabel :: (MonadIO m, IsCheckButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label” property. This is rarely needed directly, but it is
--   used by new.
constructCheckButtonLabel :: (IsCheckButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get checkButton #label
--   
getCheckButtonLabel :: (MonadIO m, IsCheckButton o) => o -> m (Maybe Text)

-- | Set the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set checkButton [ #label := value ]
--   
setCheckButtonLabel :: (MonadIO m, IsCheckButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-underline” property. This is rarely needed directly, but
--   it is used by new.
constructCheckButtonUseUnderline :: (IsCheckButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get checkButton #useUnderline
--   
getCheckButtonUseUnderline :: (MonadIO m, IsCheckButton o) => o -> m Bool

-- | Set the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set checkButton [ #useUnderline := value ]
--   
setCheckButtonUseUnderline :: (MonadIO m, IsCheckButton o) => o -> Bool -> m ()

-- | Emitted to when the check button is activated.
--   
--   The ::activate signal on GtkCheckButton is an action
--   signal and emitting it causes the button to animate press then
--   release.
--   
--   Applications should never connect to this signal, but use the
--   CheckButton::toggled signal.
--   
--   The default bindings for this signal are all forms of the
--   <kbd>␣</kbd> and <kbd>Enter</kbd> keys.
--   
--   Since: 4.2
type CheckButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after checkButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCheckButtonActivate :: (IsCheckButton a, MonadIO m) => a -> ((?self :: a) => CheckButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on checkButton #activate callback
--   
onCheckButtonActivate :: (IsCheckButton a, MonadIO m) => a -> ((?self :: a) => CheckButtonActivateCallback) -> m SignalHandlerId

-- | Emitted when the buttons's CheckButton:active property changes.
type CheckButtonToggledCallback = IO ()

-- | Connect a signal handler for the toggled signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after checkButton #toggled callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCheckButtonToggled :: (IsCheckButton a, MonadIO m) => a -> ((?self :: a) => CheckButtonToggledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggled signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on checkButton #toggled callback
--   
onCheckButtonToggled :: (IsCheckButton a, MonadIO m) => a -> ((?self :: a) => CheckButtonToggledCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CheckButton.CheckButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CheckButton.CheckButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CheckButton.CheckButton
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CheckButton.CheckButton o) => GI.Gtk.Objects.CheckButton.IsCheckButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CheckButton.CheckButton)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CheckButton.CheckButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CheckButton.CheckButton

-- | Manages up to three children.
--   
--   The start widget is allocated at the start of the layout (left in
--   left-to-right locales and right in right-to-left ones), and the end
--   widget at the end.
--   
--   The center widget is centered regarding the full width of the
--   layout's.
module GI.Gtk.Objects.CenterLayout

-- | Memory-managed wrapper type.
newtype CenterLayout
CenterLayout :: ManagedPtr CenterLayout -> CenterLayout

-- | Type class for types which can be safely cast to CenterLayout,
--   for instance with toCenterLayout.
class (GObject o, IsDescendantOf CenterLayout o) => IsCenterLayout o

-- | Cast to CenterLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toCenterLayout :: (MonadIO m, IsCenterLayout o) => o -> m CenterLayout

-- | Returns the baseline position of the layout.
centerLayoutGetBaselinePosition :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> m BaselinePosition

-- | Returns the center widget of the layout.
centerLayoutGetCenterWidget :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> m (Maybe Widget)

-- | Returns the end widget of the layout.
centerLayoutGetEndWidget :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> m (Maybe Widget)

-- | Gets the current orienration of the layout manager.
centerLayoutGetOrientation :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> m Orientation

-- | Gets whether self shrinks the center widget after
--   other children.
--   
--   Since: 4.12
centerLayoutGetShrinkCenterLast :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> m Bool

-- | Returns the start widget of the layout.
centerLayoutGetStartWidget :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> m (Maybe Widget)

-- | Creates a new GtkCenterLayout.
centerLayoutNew :: (HasCallStack, MonadIO m) => m CenterLayout

-- | Sets the new baseline position of self
centerLayoutSetBaselinePosition :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> BaselinePosition -> m ()

-- | Sets the new center widget of self.
--   
--   To remove the existing center widget, pass Nothing.
centerLayoutSetCenterWidget :: (HasCallStack, MonadIO m, IsCenterLayout a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the new end widget of self.
--   
--   To remove the existing center widget, pass Nothing.
centerLayoutSetEndWidget :: (HasCallStack, MonadIO m, IsCenterLayout a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the orientation of self.
centerLayoutSetOrientation :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> Orientation -> m ()

-- | Sets whether to shrink the center widget after other children.
--   
--   By default, when there's no space to give all three children their
--   natural widths, the start and end widgets start shrinking and the
--   center child keeps natural width until they reach minimum width.
--   
--   If set to FALSE, start and end widgets keep natural width and
--   the center widget starts shrinking instead.
--   
--   Since: 4.12
centerLayoutSetShrinkCenterLast :: (HasCallStack, MonadIO m, IsCenterLayout a) => a -> Bool -> m ()

-- | Sets the new start widget of self.
--   
--   To remove the existing start widget, pass Nothing.
centerLayoutSetStartWidget :: (HasCallStack, MonadIO m, IsCenterLayout a, IsWidget b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “shrink-center-last” property. This is rarely needed
--   directly, but it is used by new.
constructCenterLayoutShrinkCenterLast :: (IsCenterLayout o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “shrink-center-last” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get centerLayout #shrinkCenterLast
--   
getCenterLayoutShrinkCenterLast :: (MonadIO m, IsCenterLayout o) => o -> m Bool

-- | Set the value of the “shrink-center-last” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set centerLayout [ #shrinkCenterLast := value ]
--   
setCenterLayoutShrinkCenterLast :: (MonadIO m, IsCenterLayout o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CenterLayout.CenterLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CenterLayout.CenterLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CenterLayout.CenterLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CenterLayout.CenterLayout o) => GI.Gtk.Objects.CenterLayout.IsCenterLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CenterLayout.CenterLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CenterLayout.CenterLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CenterLayout.CenterLayout

-- | Arranges three children in a row, keeping the middle child centered as
--   well as possible.
--   
--   <picture> <source srcset="centerbox-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkCenterBox" src="centerbox.png"> </picture>
--   
--   To add children to GtkCenterBox, use
--   centerBoxSetStartWidget, centerBoxSetCenterWidget and
--   centerBoxSetEndWidget.
--   
--   The sizing and positioning of children can be influenced with the
--   align and expand properties of the children.
--   
--   
GtkCenterBox as GtkBuildable
--   
--   The GtkCenterBox implementation of the GtkBuildable
--   interface supports placing children in the 3 positions by specifying
--   “start”, “center” or “end” as the “type” attribute of a
--   <child> element.
--   
--   
CSS nodes
--   
--   GtkCenterBox uses a single CSS node with the name “box”,
--   
--   The first child of the GtkCenterBox will be allocated
--   depending on the text direction, i.e. in left-to-right layouts it will
--   be allocated on the left and in right-to-left layouts on the right.
--   
--   In vertical orientation, the nodes of the children are arranged from
--   top to bottom.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkCenterBox used the
--   AccessibleRoleGroup role.
--   
--   Starting from GTK 4.12, GtkCenterBox uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.CenterBox

-- | Memory-managed wrapper type.
newtype CenterBox
CenterBox :: ManagedPtr CenterBox -> CenterBox

-- | Type class for types which can be safely cast to CenterBox, for
--   instance with toCenterBox.
class (GObject o, IsDescendantOf CenterBox o) => IsCenterBox o

-- | Cast to CenterBox, for types for which this is known to be
--   safe. For general casts, use castTo.
toCenterBox :: (MonadIO m, IsCenterBox o) => o -> m CenterBox

-- | Gets the baseline position of the center box.
--   
--   See centerBoxSetBaselinePosition.
centerBoxGetBaselinePosition :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> m BaselinePosition

-- | Gets the center widget.
centerBoxGetCenterWidget :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> m (Maybe Widget)

-- | Gets the end widget.
centerBoxGetEndWidget :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> m (Maybe Widget)

-- | Gets whether the center widget shrinks after other children.
--   
--   Since: 4.12
centerBoxGetShrinkCenterLast :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> m Bool

-- | Gets the start widget.
centerBoxGetStartWidget :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> m (Maybe Widget)

-- | Creates a new GtkCenterBox.
centerBoxNew :: (HasCallStack, MonadIO m) => m CenterBox

-- | Sets the baseline position of a center box.
--   
--   This affects only horizontal boxes with at least one baseline aligned
--   child. If there is more vertical space available than requested, and
--   the baseline is not allocated by the parent then
--   position is used to allocate the baseline with respect
--   to the extra space available.
centerBoxSetBaselinePosition :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> BaselinePosition -> m ()

-- | Sets the center widget.
--   
--   To remove the existing center widget, pass NULL.
centerBoxSetCenterWidget :: (HasCallStack, MonadIO m, IsCenterBox a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the end widget.
--   
--   To remove the existing end widget, pass NULL.
centerBoxSetEndWidget :: (HasCallStack, MonadIO m, IsCenterBox a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether to shrink the center widget after other children.
--   
--   By default, when there's no space to give all three children their
--   natural widths, the start and end widgets start shrinking and the
--   center child keeps natural width until they reach minimum width.
--   
--   If shrinkCenterLast is false, start and end widgets
--   keep natural width and the center widget starts shrinking instead.
--   
--   Since: 4.12
centerBoxSetShrinkCenterLast :: (HasCallStack, MonadIO m, IsCenterBox a) => a -> Bool -> m ()

-- | Sets the start widget.
--   
--   To remove the existing start widget, pass NULL.
centerBoxSetStartWidget :: (HasCallStack, MonadIO m, IsCenterBox a, IsWidget b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-position” property. This is rarely needed directly,
--   but it is used by new.
constructCenterBoxBaselinePosition :: (IsCenterBox o, MonadIO m) => BaselinePosition -> m (GValueConstruct o)

-- | Get the value of the “baseline-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get centerBox #baselinePosition
--   
getCenterBoxBaselinePosition :: (MonadIO m, IsCenterBox o) => o -> m BaselinePosition

-- | Set the value of the “baseline-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set centerBox [ #baselinePosition := value ]
--   
setCenterBoxBaselinePosition :: (MonadIO m, IsCenterBox o) => o -> BaselinePosition -> m ()

-- | Set the value of the “center-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #centerWidget
--   
clearCenterBoxCenterWidget :: (MonadIO m, IsCenterBox o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “center-widget” property. This is rarely needed directly, but
--   it is used by new.
constructCenterBoxCenterWidget :: (IsCenterBox o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “center-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get centerBox #centerWidget
--   
getCenterBoxCenterWidget :: (MonadIO m, IsCenterBox o) => o -> m (Maybe Widget)

-- | Set the value of the “center-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set centerBox [ #centerWidget := value ]
--   
setCenterBoxCenterWidget :: (MonadIO m, IsCenterBox o, IsWidget a) => o -> a -> m ()

-- | Set the value of the “end-widget” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #endWidget
--   
clearCenterBoxEndWidget :: (MonadIO m, IsCenterBox o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “end-widget” property. This is rarely needed directly, but it
--   is used by new.
constructCenterBoxEndWidget :: (IsCenterBox o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “end-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get centerBox #endWidget
--   
getCenterBoxEndWidget :: (MonadIO m, IsCenterBox o) => o -> m (Maybe Widget)

-- | Set the value of the “end-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set centerBox [ #endWidget := value ]
--   
setCenterBoxEndWidget :: (MonadIO m, IsCenterBox o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “shrink-center-last” property. This is rarely needed
--   directly, but it is used by new.
constructCenterBoxShrinkCenterLast :: (IsCenterBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “shrink-center-last” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get centerBox #shrinkCenterLast
--   
getCenterBoxShrinkCenterLast :: (MonadIO m, IsCenterBox o) => o -> m Bool

-- | Set the value of the “shrink-center-last” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set centerBox [ #shrinkCenterLast := value ]
--   
setCenterBoxShrinkCenterLast :: (MonadIO m, IsCenterBox o) => o -> Bool -> m ()

-- | Set the value of the “start-widget” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #startWidget
--   
clearCenterBoxStartWidget :: (MonadIO m, IsCenterBox o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “start-widget” property. This is rarely needed directly, but
--   it is used by new.
constructCenterBoxStartWidget :: (IsCenterBox o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “start-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get centerBox #startWidget
--   
getCenterBoxStartWidget :: (MonadIO m, IsCenterBox o) => o -> m (Maybe Widget)

-- | Set the value of the “start-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set centerBox [ #startWidget := value ]
--   
setCenterBoxStartWidget :: (MonadIO m, IsCenterBox o, IsWidget a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CenterBox.CenterBox
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CenterBox.CenterBox
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CenterBox.CenterBox
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CenterBox.CenterBox o) => GI.Gtk.Objects.CenterBox.IsCenterBox o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CenterBox.CenterBox)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CenterBox.CenterBox
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CenterBox.CenterBox

-- | A widget displaying a single row of a GtkTreeModel
--   
--   A GtkCellView displays a single row of a
--   GtkTreeModel using a GtkCellArea and
--   GtkCellAreaContext. A GtkCellAreaContext can be
--   provided to the GtkCellView at construction time in order to
--   keep the cellview in context of a group of cell views, this ensures
--   that the renderers displayed will be properly aligned with each other
--   (like the aligned cells in the menus of GtkComboBox).
--   
--   GtkCellView is GtkOrientable in order to decide in
--   which orientation the underlying GtkCellAreaContext should be
--   allocated. Taking the GtkComboBox menu as an example,
--   cellviews should be oriented horizontally if the menus are listed
--   top-to-bottom and thus all share the same width but may have separate
--   individual heights (left-to-right menus should be allocated vertically
--   since they all share the same height but may have variable widths).
--   
--   
CSS nodes
--   
--   GtkCellView has a single CSS node with name cellview.
module GI.Gtk.Objects.CellView

-- | Memory-managed wrapper type.
newtype CellView
CellView :: ManagedPtr CellView -> CellView

-- | Type class for types which can be safely cast to CellView, for
--   instance with toCellView.
class (GObject o, IsDescendantOf CellView o) => IsCellView o

-- | Cast to CellView, for types for which this is known to be safe.
--   For general casts, use castTo.
toCellView :: (MonadIO m, IsCellView o) => o -> m CellView

-- | Returns a GtkTreePath referring to the currently displayed
--   row. If no row is currently displayed, Nothing is returned.

-- | Deprecated: (Since version 4.10)
cellViewGetDisplayedRow :: (HasCallStack, MonadIO m, IsCellView a) => a -> m (Maybe TreePath)

-- | Gets whether cellView is configured to draw all of its
--   cells in a sensitive state.

-- | Deprecated: (Since version 4.10)
cellViewGetDrawSensitive :: (HasCallStack, MonadIO m, IsCellView a) => a -> m Bool

-- | Gets whether cellView is configured to request space
--   to fit the entire GtkTreeModel.

-- | Deprecated: (Since version 4.10)
cellViewGetFitModel :: (HasCallStack, MonadIO m, IsCellView a) => a -> m Bool

-- | Returns the model for cellView. If no model is used
--   Nothing is returned.

-- | Deprecated: (Since version 4.10)
cellViewGetModel :: (HasCallStack, MonadIO m, IsCellView a) => a -> m (Maybe TreeModel)

-- | Creates a new GtkCellView widget.

-- | Deprecated: (Since version 4.10)
cellViewNew :: (HasCallStack, MonadIO m) => m CellView

-- | Creates a new GtkCellView widget with a specific
--   GtkCellArea to layout cells and a specific
--   GtkCellAreaContext.
--   
--   Specifying the same context for a handful of cells lets the underlying
--   area synchronize the geometry for those cells, in this way alignments
--   with cellviews for other rows are possible.

-- | Deprecated: (Since version 4.10)
cellViewNewWithContext :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b) => a -> b -> m CellView

-- | Creates a new GtkCellView widget, adds a
--   GtkCellRendererText to it, and makes it show
--   markup. The text can be marked up with the Pango
--   text markup language.

-- | Deprecated: (Since version 4.10)
cellViewNewWithMarkup :: (HasCallStack, MonadIO m) => Text -> m CellView

-- | Creates a new GtkCellView widget, adds a
--   GtkCellRendererText to it, and makes it show
--   text.

-- | Deprecated: (Since version 4.10)
cellViewNewWithText :: (HasCallStack, MonadIO m) => Text -> m CellView

-- | Creates a new GtkCellView widget, adds a
--   GtkCellRendererPixbuf to it, and makes it show
--   texture.

-- | Deprecated: (Since version 4.10)
cellViewNewWithTexture :: (HasCallStack, MonadIO m, IsTexture a) => a -> m CellView

-- | Sets the row of the model that is currently displayed by the
--   GtkCellView. If the path is unset, then the contents of the
--   cellview “stick” at their last value; this is not normally a desired
--   result, but may be a needed intermediate state if say, the model for
--   the GtkCellView becomes temporarily empty.

-- | Deprecated: (Since version 4.10)
cellViewSetDisplayedRow :: (HasCallStack, MonadIO m, IsCellView a) => a -> Maybe TreePath -> m ()

-- | Sets whether cellView should draw all of its cells in
--   a sensitive state, this is used by GtkComboBox menus to
--   ensure that rows with insensitive cells that contain children appear
--   sensitive in the parent menu item.

-- | Deprecated: (Since version 4.10)
cellViewSetDrawSensitive :: (HasCallStack, MonadIO m, IsCellView a) => a -> Bool -> m ()

-- | Sets whether cellView should request space to fit the
--   entire GtkTreeModel.
--   
--   This is used by GtkComboBox to ensure that the cell view
--   displayed on the combo box’s button always gets enough space and does
--   not resize when selection changes.

-- | Deprecated: (Since version 4.10)
cellViewSetFitModel :: (HasCallStack, MonadIO m, IsCellView a) => a -> Bool -> m ()

-- | Sets the model for cellView. If
--   cellView already has a model set, it will remove it
--   before setting the new model. If model is
--   Nothing, then it will unset the old model.

-- | Deprecated: (Since version 4.10)
cellViewSetModel :: (HasCallStack, MonadIO m, IsCellView a, IsTreeModel b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-area” property. This is rarely needed directly, but it
--   is used by new.
constructCellViewCellArea :: (IsCellView o, MonadIO m, IsCellArea a) => a -> m (GValueConstruct o)

-- | Get the value of the “cell-area” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellView #cellArea
--   
getCellViewCellArea :: (MonadIO m, IsCellView o) => o -> m (Maybe CellArea)

-- | Construct a GValueConstruct with valid value for the
--   “cell-area-context” property. This is rarely needed directly,
--   but it is used by new.
constructCellViewCellAreaContext :: (IsCellView o, MonadIO m, IsCellAreaContext a) => a -> m (GValueConstruct o)

-- | Get the value of the “cell-area-context” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellView #cellAreaContext
--   
getCellViewCellAreaContext :: (MonadIO m, IsCellView o) => o -> m (Maybe CellAreaContext)

-- | Construct a GValueConstruct with valid value for the
--   “draw-sensitive” property. This is rarely needed directly,
--   but it is used by new.
constructCellViewDrawSensitive :: (IsCellView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “draw-sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellView #drawSensitive
--   
getCellViewDrawSensitive :: (MonadIO m, IsCellView o) => o -> m Bool

-- | Set the value of the “draw-sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellView [ #drawSensitive := value ]
--   
setCellViewDrawSensitive :: (MonadIO m, IsCellView o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “fit-model” property. This is rarely needed directly, but it
--   is used by new.
constructCellViewFitModel :: (IsCellView o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “fit-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellView #fitModel
--   
getCellViewFitModel :: (MonadIO m, IsCellView o) => o -> m Bool

-- | Set the value of the “fit-model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellView [ #fitModel := value ]
--   
setCellViewFitModel :: (MonadIO m, IsCellView o) => o -> Bool -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearCellViewModel :: (MonadIO m, IsCellView o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructCellViewModel :: (IsCellView o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellView #model
--   
getCellViewModel :: (MonadIO m, IsCellView o) => o -> m (Maybe TreeModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellView [ #model := value ]
--   
setCellViewModel :: (MonadIO m, IsCellView o, IsTreeModel a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CellView.CellView
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellView.CellView
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellView.CellView
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellView.CellView o) => GI.Gtk.Objects.CellView.IsCellView o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellView.CellView)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellView.CellView
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellView.CellView

-- | Renders a toggle button in a cell
--   
--   GtkCellRendererToggle renders a toggle button in a cell. The
--   button is drawn as a radio or a checkbutton, depending on the
--   GtkCellRendererToggle:radio property. When activated, it
--   emits the GtkCellRendererToggle::toggled signal.
module GI.Gtk.Objects.CellRendererToggle

-- | Memory-managed wrapper type.
newtype CellRendererToggle
CellRendererToggle :: ManagedPtr CellRendererToggle -> CellRendererToggle

-- | Type class for types which can be safely cast to
--   CellRendererToggle, for instance with
--   toCellRendererToggle.
class (GObject o, IsDescendantOf CellRendererToggle o) => IsCellRendererToggle o

-- | Cast to CellRendererToggle, for types for which this is known
--   to be safe. For general casts, use castTo.
toCellRendererToggle :: (MonadIO m, IsCellRendererToggle o) => o -> m CellRendererToggle

-- | Returns whether the cell renderer is activatable. See
--   cellRendererToggleSetActivatable.

-- | Deprecated: (Since version 4.10)
cellRendererToggleGetActivatable :: (HasCallStack, MonadIO m, IsCellRendererToggle a) => a -> m Bool

-- | Returns whether the cell renderer is active. See
--   cellRendererToggleSetActive.

-- | Deprecated: (Since version 4.10)
cellRendererToggleGetActive :: (HasCallStack, MonadIO m, IsCellRendererToggle a) => a -> m Bool

-- | Returns whether we’re rendering radio toggles rather than checkboxes.

-- | Deprecated: (Since version 4.10)
cellRendererToggleGetRadio :: (HasCallStack, MonadIO m, IsCellRendererToggle a) => a -> m Bool

-- | Creates a new GtkCellRendererToggle. Adjust rendering
--   parameters using object properties. Object properties can be set
--   globally (with g_object_set()). Also, with
--   GtkTreeViewColumn, you can bind a property to a value in a
--   GtkTreeModel. For example, you can bind the “active” property
--   on the cell renderer to a boolean value in the model, thus causing the
--   check button to reflect the state of the model.

-- | Deprecated: (Since version 4.10)
cellRendererToggleNew :: (HasCallStack, MonadIO m) => m CellRendererToggle

-- | Makes the cell renderer activatable.

-- | Deprecated: (Since version 4.10)
cellRendererToggleSetActivatable :: (HasCallStack, MonadIO m, IsCellRendererToggle a) => a -> Bool -> m ()

-- | Activates or deactivates a cell renderer.

-- | Deprecated: (Since version 4.10)
cellRendererToggleSetActive :: (HasCallStack, MonadIO m, IsCellRendererToggle a) => a -> Bool -> m ()

-- | If radio is True, the cell renderer renders a
--   radio toggle (i.e. a toggle in a group of mutually-exclusive toggles).
--   If False, it renders a check toggle (a standalone boolean
--   option). This can be set globally for the cell renderer, or changed
--   just before rendering each cell in the model (for
--   GtkTreeView, you set up a per-row setting using
--   GtkTreeViewColumn to associate model columns with cell
--   renderer properties).

-- | Deprecated: (Since version 4.10)
cellRendererToggleSetRadio :: (HasCallStack, MonadIO m, IsCellRendererToggle a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “activatable” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererToggleActivatable :: (IsCellRendererToggle o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererToggle #activatable
--   
getCellRendererToggleActivatable :: (MonadIO m, IsCellRendererToggle o) => o -> m Bool

-- | Set the value of the “activatable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererToggle [ #activatable := value ]
--   
setCellRendererToggleActivatable :: (MonadIO m, IsCellRendererToggle o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererToggleActive :: (IsCellRendererToggle o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererToggle #active
--   
getCellRendererToggleActive :: (MonadIO m, IsCellRendererToggle o) => o -> m Bool

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererToggle [ #active := value ]
--   
setCellRendererToggleActive :: (MonadIO m, IsCellRendererToggle o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “inconsistent” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererToggleInconsistent :: (IsCellRendererToggle o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inconsistent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererToggle #inconsistent
--   
getCellRendererToggleInconsistent :: (MonadIO m, IsCellRendererToggle o) => o -> m Bool

-- | Set the value of the “inconsistent” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererToggle [ #inconsistent := value ]
--   
setCellRendererToggleInconsistent :: (MonadIO m, IsCellRendererToggle o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “radio” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererToggleRadio :: (IsCellRendererToggle o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “radio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererToggle #radio
--   
getCellRendererToggleRadio :: (MonadIO m, IsCellRendererToggle o) => o -> m Bool

-- | Set the value of the “radio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererToggle [ #radio := value ]
--   
setCellRendererToggleRadio :: (MonadIO m, IsCellRendererToggle o) => o -> Bool -> m ()

-- | The toggled signal is emitted when the cell is toggled.
--   
--   It is the responsibility of the application to update the model with
--   the correct value to store at path. Often this is
--   simply the opposite of the value currently stored at
--   path.
type CellRendererToggleToggledCallback = Text -> IO ()

-- | Connect a signal handler for the toggled signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellRendererToggle #toggled callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererToggleToggled :: (IsCellRendererToggle a, MonadIO m) => a -> ((?self :: a) => CellRendererToggleToggledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the toggled signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellRendererToggle #toggled callback
--   
onCellRendererToggleToggled :: (IsCellRendererToggle a, MonadIO m) => a -> ((?self :: a) => CellRendererToggleToggledCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererToggle.CellRendererToggle
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererToggle.CellRendererToggle
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererToggle.CellRendererToggle
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererToggle.CellRendererToggle o) => GI.Gtk.Objects.CellRendererToggle.IsCellRendererToggle o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererToggle.CellRendererToggle)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererToggle.CellRendererToggle
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererToggle.CellRendererToggle

-- | Renders text in a cell
--   
--   A GtkCellRendererText renders a given text in its cell, using
--   the font, color and style information provided by its properties. The
--   text will be ellipsized if it is too long and the
--   GtkCellRendererText:ellipsize property allows it.
--   
--   If the GtkCellRenderer:mode is
--   CellRendererModeEditable, the GtkCellRendererText
--   allows to edit its text using an entry.
module GI.Gtk.Objects.CellRendererText

-- | Memory-managed wrapper type.
newtype CellRendererText
CellRendererText :: ManagedPtr CellRendererText -> CellRendererText

-- | Type class for types which can be safely cast to
--   CellRendererText, for instance with toCellRendererText.
class (GObject o, IsDescendantOf CellRendererText o) => IsCellRendererText o

-- | Cast to CellRendererText, for types for which this is known to
--   be safe. For general casts, use castTo.
toCellRendererText :: (MonadIO m, IsCellRendererText o) => o -> m CellRendererText

-- | Creates a new GtkCellRendererText. Adjust how text is drawn
--   using object properties. Object properties can be set globally (with
--   g_object_set()). Also, with
--   GtkTreeViewColumn, you can bind a property to a value in a
--   GtkTreeModel. For example, you can bind the “text” property
--   on the cell renderer to a string value in the model, thus rendering a
--   different string in each row of the GtkTreeView.

-- | Deprecated: (Since version 4.10)
cellRendererTextNew :: (HasCallStack, MonadIO m) => m CellRendererText

-- | Sets the height of a renderer to explicitly be determined by the
--   “font” and “y_pad” property set on it. Further changes in these
--   properties do not affect the height, so they must be accompanied by a
--   subsequent call to this function. Using this function is inflexible,
--   and should really only be used if calculating the size of a cell is
--   too slow (ie, a massive number of cells displayed). If
--   numberOfRows is -1, then the fixed height is unset,
--   and the height is determined by the properties again.

-- | Deprecated: (Since version 4.10)
cellRendererTextSetFixedHeightFromFont :: (HasCallStack, MonadIO m, IsCellRendererText a) => a -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “align-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextAlignSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “align-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #alignSet
--   
getCellRendererTextAlignSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “align-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #alignSet := value ]
--   
setCellRendererTextAlignSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “alignment” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextAlignment :: (IsCellRendererText o, MonadIO m) => Alignment -> m (GValueConstruct o)

-- | Get the value of the “alignment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #alignment
--   
getCellRendererTextAlignment :: (MonadIO m, IsCellRendererText o) => o -> m Alignment

-- | Set the value of the “alignment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #alignment := value ]
--   
setCellRendererTextAlignment :: (MonadIO m, IsCellRendererText o) => o -> Alignment -> m ()

-- | Set the value of the “attributes” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #attributes
--   
clearCellRendererTextAttributes :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “attributes” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextAttributes :: (IsCellRendererText o, MonadIO m) => AttrList -> m (GValueConstruct o)

-- | Get the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #attributes
--   
getCellRendererTextAttributes :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe AttrList)

-- | Set the value of the “attributes” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #attributes := value ]
--   
setCellRendererTextAttributes :: (MonadIO m, IsCellRendererText o) => o -> AttrList -> m ()

-- | Set the value of the “background” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #background
--   
clearCellRendererTextBackground :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextBackground :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “background” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #background := value ]
--   
setCellRendererTextBackground :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Set the value of the “background-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #backgroundRgba
--   
clearCellRendererTextBackgroundRgba :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background-rgba” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextBackgroundRgba :: (IsCellRendererText o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “background-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #backgroundRgba
--   
getCellRendererTextBackgroundRgba :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe RGBA)

-- | Set the value of the “background-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #backgroundRgba := value ]
--   
setCellRendererTextBackgroundRgba :: (MonadIO m, IsCellRendererText o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “background-set” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextBackgroundSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “background-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #backgroundSet
--   
getCellRendererTextBackgroundSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “background-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #backgroundSet := value ]
--   
setCellRendererTextBackgroundSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editable” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextEditable :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #editable
--   
getCellRendererTextEditable :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #editable := value ]
--   
setCellRendererTextEditable :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editable-set” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextEditableSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editable-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #editableSet
--   
getCellRendererTextEditableSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “editable-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #editableSet := value ]
--   
setCellRendererTextEditableSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ellipsize” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextEllipsize :: (IsCellRendererText o, MonadIO m) => EllipsizeMode -> m (GValueConstruct o)

-- | Get the value of the “ellipsize” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #ellipsize
--   
getCellRendererTextEllipsize :: (MonadIO m, IsCellRendererText o) => o -> m EllipsizeMode

-- | Set the value of the “ellipsize” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #ellipsize := value ]
--   
setCellRendererTextEllipsize :: (MonadIO m, IsCellRendererText o) => o -> EllipsizeMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ellipsize-set” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextEllipsizeSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “ellipsize-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #ellipsizeSet
--   
getCellRendererTextEllipsizeSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “ellipsize-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #ellipsizeSet := value ]
--   
setCellRendererTextEllipsizeSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Set the value of the “family” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #family
--   
clearCellRendererTextFamily :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “family” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextFamily :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “family” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #family
--   
getCellRendererTextFamily :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe Text)

-- | Set the value of the “family” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #family := value ]
--   
setCellRendererTextFamily :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “family-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextFamilySet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “family-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #familySet
--   
getCellRendererTextFamilySet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “family-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #familySet := value ]
--   
setCellRendererTextFamilySet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Set the value of the “font” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #font
--   
clearCellRendererTextFont :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextFont :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “font” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRendererText #font
--   
getCellRendererTextFont :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe Text)

-- | Set the value of the “font” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #font := value ]
--   
setCellRendererTextFont :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Set the value of the “font-desc” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #fontDesc
--   
clearCellRendererTextFontDesc :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-desc” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextFontDesc :: (IsCellRendererText o, MonadIO m) => FontDescription -> m (GValueConstruct o)

-- | Get the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #fontDesc
--   
getCellRendererTextFontDesc :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe FontDescription)

-- | Set the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #fontDesc := value ]
--   
setCellRendererTextFontDesc :: (MonadIO m, IsCellRendererText o) => o -> FontDescription -> m ()

-- | Set the value of the “foreground” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #foreground
--   
clearCellRendererTextForeground :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “foreground” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextForeground :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “foreground” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #foreground := value ]
--   
setCellRendererTextForeground :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Set the value of the “foreground-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #foregroundRgba
--   
clearCellRendererTextForegroundRgba :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “foreground-rgba” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextForegroundRgba :: (IsCellRendererText o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “foreground-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #foregroundRgba
--   
getCellRendererTextForegroundRgba :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe RGBA)

-- | Set the value of the “foreground-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #foregroundRgba := value ]
--   
setCellRendererTextForegroundRgba :: (MonadIO m, IsCellRendererText o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “foreground-set” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextForegroundSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “foreground-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #foregroundSet
--   
getCellRendererTextForegroundSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “foreground-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #foregroundSet := value ]
--   
setCellRendererTextForegroundSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Set the value of the “language” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #language
--   
clearCellRendererTextLanguage :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “language” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextLanguage :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #language
--   
getCellRendererTextLanguage :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe Text)

-- | Set the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #language := value ]
--   
setCellRendererTextLanguage :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “language-set” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextLanguageSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “language-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #languageSet
--   
getCellRendererTextLanguageSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “language-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #languageSet := value ]
--   
setCellRendererTextLanguageSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Set the value of the “markup” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #markup
--   
clearCellRendererTextMarkup :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “markup” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextMarkup :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “markup” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #markup := value ]
--   
setCellRendererTextMarkup :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-width-chars” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextMaxWidthChars :: (IsCellRendererText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #maxWidthChars
--   
getCellRendererTextMaxWidthChars :: (MonadIO m, IsCellRendererText o) => o -> m Int32

-- | Set the value of the “max-width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #maxWidthChars := value ]
--   
setCellRendererTextMaxWidthChars :: (MonadIO m, IsCellRendererText o) => o -> Int32 -> m ()

-- | Set the value of the “placeholder-text” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #placeholderText
--   
clearCellRendererTextPlaceholderText :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “placeholder-text” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextPlaceholderText :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #placeholderText
--   
getCellRendererTextPlaceholderText :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe Text)

-- | Set the value of the “placeholder-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #placeholderText := value ]
--   
setCellRendererTextPlaceholderText :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rise” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextRise :: (IsCellRendererText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “rise” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRendererText #rise
--   
getCellRendererTextRise :: (MonadIO m, IsCellRendererText o) => o -> m Int32

-- | Set the value of the “rise” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #rise := value ]
--   
setCellRendererTextRise :: (MonadIO m, IsCellRendererText o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “rise-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextRiseSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “rise-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #riseSet
--   
getCellRendererTextRiseSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “rise-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #riseSet := value ]
--   
setCellRendererTextRiseSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scale” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextScale :: (IsCellRendererText o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “scale” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #scale
--   
getCellRendererTextScale :: (MonadIO m, IsCellRendererText o) => o -> m Double

-- | Set the value of the “scale” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #scale := value ]
--   
setCellRendererTextScale :: (MonadIO m, IsCellRendererText o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “scale-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextScaleSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “scale-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #scaleSet
--   
getCellRendererTextScaleSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “scale-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #scaleSet := value ]
--   
setCellRendererTextScaleSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “single-paragraph-mode” property. This is rarely needed
--   directly, but it is used by new.
constructCellRendererTextSingleParagraphMode :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “single-paragraph-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #singleParagraphMode
--   
getCellRendererTextSingleParagraphMode :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “single-paragraph-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #singleParagraphMode := value ]
--   
setCellRendererTextSingleParagraphMode :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextSize :: (IsCellRendererText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRendererText #size
--   
getCellRendererTextSize :: (MonadIO m, IsCellRendererText o) => o -> m Int32

-- | Set the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #size := value ]
--   
setCellRendererTextSize :: (MonadIO m, IsCellRendererText o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size-points” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextSizePoints :: (IsCellRendererText o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “size-points” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #sizePoints
--   
getCellRendererTextSizePoints :: (MonadIO m, IsCellRendererText o) => o -> m Double

-- | Set the value of the “size-points” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #sizePoints := value ]
--   
setCellRendererTextSizePoints :: (MonadIO m, IsCellRendererText o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextSizeSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “size-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #sizeSet
--   
getCellRendererTextSizeSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “size-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #sizeSet := value ]
--   
setCellRendererTextSizeSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stretch” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextStretch :: (IsCellRendererText o, MonadIO m) => Stretch -> m (GValueConstruct o)

-- | Get the value of the “stretch” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #stretch
--   
getCellRendererTextStretch :: (MonadIO m, IsCellRendererText o) => o -> m Stretch

-- | Set the value of the “stretch” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #stretch := value ]
--   
setCellRendererTextStretch :: (MonadIO m, IsCellRendererText o) => o -> Stretch -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “stretch-set” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextStretchSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “stretch-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #stretchSet
--   
getCellRendererTextStretchSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “stretch-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #stretchSet := value ]
--   
setCellRendererTextStretchSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strikethrough” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextStrikethrough :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “strikethrough” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #strikethrough
--   
getCellRendererTextStrikethrough :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “strikethrough” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #strikethrough := value ]
--   
setCellRendererTextStrikethrough :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “strikethrough-set” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererTextStrikethroughSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “strikethrough-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #strikethroughSet
--   
getCellRendererTextStrikethroughSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “strikethrough-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #strikethroughSet := value ]
--   
setCellRendererTextStrikethroughSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “style” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextStyle :: (IsCellRendererText o, MonadIO m) => Style -> m (GValueConstruct o)

-- | Get the value of the “style” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #style
--   
getCellRendererTextStyle :: (MonadIO m, IsCellRendererText o) => o -> m Style

-- | Set the value of the “style” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #style := value ]
--   
setCellRendererTextStyle :: (MonadIO m, IsCellRendererText o) => o -> Style -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “style-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextStyleSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “style-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #styleSet
--   
getCellRendererTextStyleSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “style-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #styleSet := value ]
--   
setCellRendererTextStyleSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearCellRendererTextText :: (MonadIO m, IsCellRendererText o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextText :: (IsCellRendererText o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRendererText #text
--   
getCellRendererTextText :: (MonadIO m, IsCellRendererText o) => o -> m (Maybe Text)

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #text := value ]
--   
setCellRendererTextText :: (MonadIO m, IsCellRendererText o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “underline” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextUnderline :: (IsCellRendererText o, MonadIO m) => Underline -> m (GValueConstruct o)

-- | Get the value of the “underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #underline
--   
getCellRendererTextUnderline :: (MonadIO m, IsCellRendererText o) => o -> m Underline

-- | Set the value of the “underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #underline := value ]
--   
setCellRendererTextUnderline :: (MonadIO m, IsCellRendererText o) => o -> Underline -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “underline-set” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextUnderlineSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “underline-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #underlineSet
--   
getCellRendererTextUnderlineSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “underline-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #underlineSet := value ]
--   
setCellRendererTextUnderlineSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “variant” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextVariant :: (IsCellRendererText o, MonadIO m) => Variant -> m (GValueConstruct o)

-- | Get the value of the “variant” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #variant
--   
getCellRendererTextVariant :: (MonadIO m, IsCellRendererText o) => o -> m Variant

-- | Set the value of the “variant” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #variant := value ]
--   
setCellRendererTextVariant :: (MonadIO m, IsCellRendererText o) => o -> Variant -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “variant-set” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextVariantSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “variant-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #variantSet
--   
getCellRendererTextVariantSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “variant-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #variantSet := value ]
--   
setCellRendererTextVariantSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “weight” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererTextWeight :: (IsCellRendererText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “weight” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #weight
--   
getCellRendererTextWeight :: (MonadIO m, IsCellRendererText o) => o -> m Int32

-- | Set the value of the “weight” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #weight := value ]
--   
setCellRendererTextWeight :: (MonadIO m, IsCellRendererText o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “weight-set” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextWeightSet :: (IsCellRendererText o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “weight-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #weightSet
--   
getCellRendererTextWeightSet :: (MonadIO m, IsCellRendererText o) => o -> m Bool

-- | Set the value of the “weight-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #weightSet := value ]
--   
setCellRendererTextWeightSet :: (MonadIO m, IsCellRendererText o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “width-chars” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererTextWidthChars :: (IsCellRendererText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #widthChars
--   
getCellRendererTextWidthChars :: (MonadIO m, IsCellRendererText o) => o -> m Int32

-- | Set the value of the “width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #widthChars := value ]
--   
setCellRendererTextWidthChars :: (MonadIO m, IsCellRendererText o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-mode” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextWrapMode :: (IsCellRendererText o, MonadIO m) => WrapMode -> m (GValueConstruct o)

-- | Get the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #wrapMode
--   
getCellRendererTextWrapMode :: (MonadIO m, IsCellRendererText o) => o -> m WrapMode

-- | Set the value of the “wrap-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #wrapMode := value ]
--   
setCellRendererTextWrapMode :: (MonadIO m, IsCellRendererText o) => o -> WrapMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-width” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererTextWrapWidth :: (IsCellRendererText o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “wrap-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererText #wrapWidth
--   
getCellRendererTextWrapWidth :: (MonadIO m, IsCellRendererText o) => o -> m Int32

-- | Set the value of the “wrap-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererText [ #wrapWidth := value ]
--   
setCellRendererTextWrapWidth :: (MonadIO m, IsCellRendererText o) => o -> Int32 -> m ()

-- | This signal is emitted after renderer has been edited.
--   
--   It is the responsibility of the application to update the model and
--   store newText at the position indicated by
--   path.
type CellRendererTextEditedCallback = Text -> Text -> IO ()

-- | Connect a signal handler for the edited signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellRendererText #edited callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererTextEdited :: (IsCellRendererText a, MonadIO m) => a -> ((?self :: a) => CellRendererTextEditedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the edited signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellRendererText #edited callback
--   
onCellRendererTextEdited :: (IsCellRendererText a, MonadIO m) => a -> ((?self :: a) => CellRendererTextEditedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererText.CellRendererText
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererText.CellRendererText
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererText.CellRendererText
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererText.CellRendererText o) => GI.Gtk.Objects.CellRendererText.IsCellRendererText o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererText.CellRendererText)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererText.CellRendererText
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererText.CellRendererText

-- | Renders a spinning animation in a cell
--   
--   GtkCellRendererSpinner renders a spinning animation in a
--   cell, very similar to GtkSpinner. It can often be used as an
--   alternative to a GtkCellRendererProgress for displaying
--   indefinite activity, instead of actual progress.
--   
--   To start the animation in a cell, set the
--   GtkCellRendererSpinner:active property to True and
--   increment the GtkCellRendererSpinner:pulse property at
--   regular intervals. The usual way to set the cell renderer properties
--   for each cell is to bind them to columns in your tree model using e.g.
--   treeViewColumnAddAttribute.
module GI.Gtk.Objects.CellRendererSpinner

-- | Memory-managed wrapper type.
newtype CellRendererSpinner
CellRendererSpinner :: ManagedPtr CellRendererSpinner -> CellRendererSpinner

-- | Type class for types which can be safely cast to
--   CellRendererSpinner, for instance with
--   toCellRendererSpinner.
class (GObject o, IsDescendantOf CellRendererSpinner o) => IsCellRendererSpinner o

-- | Cast to CellRendererSpinner, for types for which this is known
--   to be safe. For general casts, use castTo.
toCellRendererSpinner :: (MonadIO m, IsCellRendererSpinner o) => o -> m CellRendererSpinner

-- | Returns a new cell renderer which will show a spinner to indicate
--   activity.

-- | Deprecated: (Since version 4.10)
cellRendererSpinnerNew :: (HasCallStack, MonadIO m) => m CellRendererSpinner

-- | Construct a GValueConstruct with valid value for the
--   “active” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererSpinnerActive :: (IsCellRendererSpinner o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererSpinner #active
--   
getCellRendererSpinnerActive :: (MonadIO m, IsCellRendererSpinner o) => o -> m Bool

-- | Set the value of the “active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererSpinner [ #active := value ]
--   
setCellRendererSpinnerActive :: (MonadIO m, IsCellRendererSpinner o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pulse” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererSpinnerPulse :: (IsCellRendererSpinner o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “pulse” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererSpinner #pulse
--   
getCellRendererSpinnerPulse :: (MonadIO m, IsCellRendererSpinner o) => o -> m Word32

-- | Set the value of the “pulse” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererSpinner [ #pulse := value ]
--   
setCellRendererSpinnerPulse :: (MonadIO m, IsCellRendererSpinner o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “size” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererSpinnerSize :: (IsCellRendererSpinner o, MonadIO m) => IconSize -> m (GValueConstruct o)

-- | Get the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRendererSpinner #size
--   
getCellRendererSpinnerSize :: (MonadIO m, IsCellRendererSpinner o) => o -> m IconSize

-- | Set the value of the “size” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRendererSpinner [ #size := value ]
--   
setCellRendererSpinnerSize :: (MonadIO m, IsCellRendererSpinner o) => o -> IconSize -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner o) => GI.Gtk.Objects.CellRendererSpinner.IsCellRendererSpinner o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererSpinner.CellRendererSpinner

-- | Renders a spin button in a cell
--   
--   GtkCellRendererSpin renders text in a cell like
--   GtkCellRendererText from which it is derived. But while
--   GtkCellRendererText offers a simple entry to edit the text,
--   GtkCellRendererSpin offers a GtkSpinButton widget.
--   Of course, that means that the text has to be parseable as a floating
--   point number.
--   
--   The range of the spinbutton is taken from the adjustment property of
--   the cell renderer, which can be set explicitly or mapped to a column
--   in the tree model, like all properties of cell renders.
--   GtkCellRendererSpin also has properties for the
--   GtkCellRendererSpin:climb-rate and the number of
--   GtkCellRendererSpin:digits to display. Other
--   GtkSpinButton properties can be set in a handler for the
--   GtkCellRenderer::editing-started signal.
module GI.Gtk.Objects.CellRendererSpin

-- | Memory-managed wrapper type.
newtype CellRendererSpin
CellRendererSpin :: ManagedPtr CellRendererSpin -> CellRendererSpin

-- | Type class for types which can be safely cast to
--   CellRendererSpin, for instance with toCellRendererSpin.
class (GObject o, IsDescendantOf CellRendererSpin o) => IsCellRendererSpin o

-- | Cast to CellRendererSpin, for types for which this is known to
--   be safe. For general casts, use castTo.
toCellRendererSpin :: (MonadIO m, IsCellRendererSpin o) => o -> m CellRendererSpin

-- | Creates a new GtkCellRendererSpin.

-- | Deprecated: (Since version 4.10)
cellRendererSpinNew :: (HasCallStack, MonadIO m) => m CellRendererSpin

-- | Set the value of the “adjustment” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #adjustment
--   
clearCellRendererSpinAdjustment :: (MonadIO m, IsCellRendererSpin o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “adjustment” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererSpinAdjustment :: (IsCellRendererSpin o, MonadIO m, IsAdjustment a) => a -> m (GValueConstruct o)

-- | Get the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererSpin #adjustment
--   
getCellRendererSpinAdjustment :: (MonadIO m, IsCellRendererSpin o) => o -> m (Maybe Adjustment)

-- | Set the value of the “adjustment” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererSpin [ #adjustment := value ]
--   
setCellRendererSpinAdjustment :: (MonadIO m, IsCellRendererSpin o, IsAdjustment a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “climb-rate” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererSpinClimbRate :: (IsCellRendererSpin o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “climb-rate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererSpin #climbRate
--   
getCellRendererSpinClimbRate :: (MonadIO m, IsCellRendererSpin o) => o -> m Double

-- | Set the value of the “climb-rate” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererSpin [ #climbRate := value ]
--   
setCellRendererSpinClimbRate :: (MonadIO m, IsCellRendererSpin o) => o -> Double -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “digits” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererSpinDigits :: (IsCellRendererSpin o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererSpin #digits
--   
getCellRendererSpinDigits :: (MonadIO m, IsCellRendererSpin o) => o -> m Word32

-- | Set the value of the “digits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererSpin [ #digits := value ]
--   
setCellRendererSpinDigits :: (MonadIO m, IsCellRendererSpin o) => o -> Word32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererSpin.CellRendererSpin
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererSpin.CellRendererSpin
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererSpin.CellRendererSpin
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererSpin.CellRendererSpin o) => GI.Gtk.Objects.CellRendererSpin.IsCellRendererSpin o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererSpin.CellRendererSpin)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererSpin.CellRendererSpin
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererSpin.CellRendererSpin

-- | Renders numbers as progress bars
--   
--   GtkCellRendererProgress renders a numeric value as a progress
--   par in a cell. Additionally, it can display a text on top of the
--   progress bar.
module GI.Gtk.Objects.CellRendererProgress

-- | Memory-managed wrapper type.
newtype CellRendererProgress
CellRendererProgress :: ManagedPtr CellRendererProgress -> CellRendererProgress

-- | Type class for types which can be safely cast to
--   CellRendererProgress, for instance with
--   toCellRendererProgress.
class (GObject o, IsDescendantOf CellRendererProgress o) => IsCellRendererProgress o

-- | Cast to CellRendererProgress, for types for which this is known
--   to be safe. For general casts, use castTo.
toCellRendererProgress :: (MonadIO m, IsCellRendererProgress o) => o -> m CellRendererProgress

-- | Creates a new GtkCellRendererProgress.

-- | Deprecated: (Since version 4.10)
cellRendererProgressNew :: (HasCallStack, MonadIO m) => m CellRendererProgress

-- | Construct a GValueConstruct with valid value for the
--   “inverted” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererProgressInverted :: (IsCellRendererProgress o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererProgress #inverted
--   
getCellRendererProgressInverted :: (MonadIO m, IsCellRendererProgress o) => o -> m Bool

-- | Set the value of the “inverted” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererProgress [ #inverted := value ]
--   
setCellRendererProgressInverted :: (MonadIO m, IsCellRendererProgress o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pulse” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererProgressPulse :: (IsCellRendererProgress o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “pulse” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererProgress #pulse
--   
getCellRendererProgressPulse :: (MonadIO m, IsCellRendererProgress o) => o -> m Int32

-- | Set the value of the “pulse” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererProgress [ #pulse := value ]
--   
setCellRendererProgressPulse :: (MonadIO m, IsCellRendererProgress o) => o -> Int32 -> m ()

-- | Set the value of the “text” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #text
--   
clearCellRendererProgressText :: (MonadIO m, IsCellRendererProgress o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererProgressText :: (IsCellRendererProgress o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRendererProgress #text
--   
getCellRendererProgressText :: (MonadIO m, IsCellRendererProgress o) => o -> m (Maybe Text)

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRendererProgress [ #text := value ]
--   
setCellRendererProgressText :: (MonadIO m, IsCellRendererProgress o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-xalign” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererProgressTextXalign :: (IsCellRendererProgress o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “text-xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererProgress #textXalign
--   
getCellRendererProgressTextXalign :: (MonadIO m, IsCellRendererProgress o) => o -> m Float

-- | Set the value of the “text-xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererProgress [ #textXalign := value ]
--   
setCellRendererProgressTextXalign :: (MonadIO m, IsCellRendererProgress o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-yalign” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererProgressTextYalign :: (IsCellRendererProgress o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “text-yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererProgress #textYalign
--   
getCellRendererProgressTextYalign :: (MonadIO m, IsCellRendererProgress o) => o -> m Float

-- | Set the value of the “text-yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererProgress [ #textYalign := value ]
--   
setCellRendererProgressTextYalign :: (MonadIO m, IsCellRendererProgress o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “value” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererProgressValue :: (IsCellRendererProgress o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererProgress #value
--   
getCellRendererProgressValue :: (MonadIO m, IsCellRendererProgress o) => o -> m Int32

-- | Set the value of the “value” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererProgress [ #value := value ]
--   
setCellRendererProgressValue :: (MonadIO m, IsCellRendererProgress o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererProgress.CellRendererProgress
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererProgress.CellRendererProgress
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererProgress.CellRendererProgress
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererProgress.CellRendererProgress o) => GI.Gtk.Objects.CellRendererProgress.IsCellRendererProgress o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererProgress.CellRendererProgress)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererProgress.CellRendererProgress
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererProgress.CellRendererProgress

-- | Renders a pixbuf in a cell
--   
--   A GtkCellRendererPixbuf can be used to render an image in a
--   cell. It allows to render either a given GdkPixbuf (set via
--   the GtkCellRendererPixbuf:pixbuf property) or a named icon
--   (set via the GtkCellRendererPixbuf:icon-name property).
--   
--   To support the tree view, GtkCellRendererPixbuf also supports
--   rendering two alternative pixbufs, when the
--   GtkCellRenderer:is-expander property is True. If the
--   GtkCellRenderer:is-expanded property is True and the
--   GtkCellRendererPixbuf:pixbuf-expander-open property is set to
--   a pixbuf, it renders that pixbuf, if the
--   GtkCellRenderer:is-expanded property is False and the
--   GtkCellRendererPixbuf:pixbuf-expander-closed property is set
--   to a pixbuf, it renders that one.
module GI.Gtk.Objects.CellRendererPixbuf

-- | Memory-managed wrapper type.
newtype CellRendererPixbuf
CellRendererPixbuf :: ManagedPtr CellRendererPixbuf -> CellRendererPixbuf

-- | Type class for types which can be safely cast to
--   CellRendererPixbuf, for instance with
--   toCellRendererPixbuf.
class (GObject o, IsDescendantOf CellRendererPixbuf o) => IsCellRendererPixbuf o

-- | Cast to CellRendererPixbuf, for types for which this is known
--   to be safe. For general casts, use castTo.
toCellRendererPixbuf :: (MonadIO m, IsCellRendererPixbuf o) => o -> m CellRendererPixbuf

-- | Creates a new GtkCellRendererPixbuf. Adjust rendering
--   parameters using object properties. Object properties can be set
--   globally (with g_object_set()). Also, with
--   GtkTreeViewColumn, you can bind a property to a value in a
--   GtkTreeModel. For example, you can bind the “pixbuf” property
--   on the cell renderer to a pixbuf value in the model, thus rendering a
--   different image in each row of the GtkTreeView.

-- | Deprecated: (Since version 4.10)
cellRendererPixbufNew :: (HasCallStack, MonadIO m) => m CellRendererPixbuf

-- | Set the value of the “gicon” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #gicon
--   
clearCellRendererPixbufGicon :: (MonadIO m, IsCellRendererPixbuf o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gicon” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererPixbufGicon :: (IsCellRendererPixbuf o, MonadIO m, IsIcon a) => a -> m (GValueConstruct o)

-- | Get the value of the “gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererPixbuf #gicon
--   
getCellRendererPixbufGicon :: (MonadIO m, IsCellRendererPixbuf o) => o -> m (Maybe Icon)

-- | Set the value of the “gicon” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #gicon := value ]
--   
setCellRendererPixbufGicon :: (MonadIO m, IsCellRendererPixbuf o, IsIcon a) => o -> a -> m ()

-- | Set the value of the “icon-name” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #iconName
--   
clearCellRendererPixbufIconName :: (MonadIO m, IsCellRendererPixbuf o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererPixbufIconName :: (IsCellRendererPixbuf o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererPixbuf #iconName
--   
getCellRendererPixbufIconName :: (MonadIO m, IsCellRendererPixbuf o) => o -> m (Maybe Text)

-- | Set the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #iconName := value ]
--   
setCellRendererPixbufIconName :: (MonadIO m, IsCellRendererPixbuf o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-size” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererPixbufIconSize :: (IsCellRendererPixbuf o, MonadIO m) => IconSize -> m (GValueConstruct o)

-- | Get the value of the “icon-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererPixbuf #iconSize
--   
getCellRendererPixbufIconSize :: (MonadIO m, IsCellRendererPixbuf o) => o -> m IconSize

-- | Set the value of the “icon-size” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #iconSize := value ]
--   
setCellRendererPixbufIconSize :: (MonadIO m, IsCellRendererPixbuf o) => o -> IconSize -> m ()

-- | Set the value of the “pixbuf” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #pixbuf
--   
clearCellRendererPixbufPixbuf :: (MonadIO m, IsCellRendererPixbuf o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixbuf” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererPixbufPixbuf :: (IsCellRendererPixbuf o, MonadIO m, IsPixbuf a) => a -> m (GValueConstruct o)

-- | Set the value of the “pixbuf” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #pixbuf := value ]
--   
setCellRendererPixbufPixbuf :: (MonadIO m, IsCellRendererPixbuf o, IsPixbuf a) => o -> a -> m ()

-- | Set the value of the “pixbuf-expander-closed” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #pixbufExpanderClosed
--   
clearCellRendererPixbufPixbufExpanderClosed :: (MonadIO m, IsCellRendererPixbuf o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixbuf-expander-closed” property. This is rarely needed
--   directly, but it is used by new.
constructCellRendererPixbufPixbufExpanderClosed :: (IsCellRendererPixbuf o, MonadIO m, IsPixbuf a) => a -> m (GValueConstruct o)

-- | Get the value of the “pixbuf-expander-closed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererPixbuf #pixbufExpanderClosed
--   
getCellRendererPixbufPixbufExpanderClosed :: (MonadIO m, IsCellRendererPixbuf o) => o -> m (Maybe Pixbuf)

-- | Set the value of the “pixbuf-expander-closed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #pixbufExpanderClosed := value ]
--   
setCellRendererPixbufPixbufExpanderClosed :: (MonadIO m, IsCellRendererPixbuf o, IsPixbuf a) => o -> a -> m ()

-- | Set the value of the “pixbuf-expander-open” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #pixbufExpanderOpen
--   
clearCellRendererPixbufPixbufExpanderOpen :: (MonadIO m, IsCellRendererPixbuf o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “pixbuf-expander-open” property. This is rarely needed
--   directly, but it is used by new.
constructCellRendererPixbufPixbufExpanderOpen :: (IsCellRendererPixbuf o, MonadIO m, IsPixbuf a) => a -> m (GValueConstruct o)

-- | Get the value of the “pixbuf-expander-open” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererPixbuf #pixbufExpanderOpen
--   
getCellRendererPixbufPixbufExpanderOpen :: (MonadIO m, IsCellRendererPixbuf o) => o -> m (Maybe Pixbuf)

-- | Set the value of the “pixbuf-expander-open” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #pixbufExpanderOpen := value ]
--   
setCellRendererPixbufPixbufExpanderOpen :: (MonadIO m, IsCellRendererPixbuf o, IsPixbuf a) => o -> a -> m ()

-- | Set the value of the “texture” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #texture
--   
clearCellRendererPixbufTexture :: (MonadIO m, IsCellRendererPixbuf o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “texture” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererPixbufTexture :: (IsCellRendererPixbuf o, MonadIO m, IsTexture a) => a -> m (GValueConstruct o)

-- | Get the value of the “texture” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererPixbuf #texture
--   
getCellRendererPixbufTexture :: (MonadIO m, IsCellRendererPixbuf o) => o -> m (Maybe Texture)

-- | Set the value of the “texture” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererPixbuf [ #texture := value ]
--   
setCellRendererPixbufTexture :: (MonadIO m, IsCellRendererPixbuf o, IsTexture a) => o -> a -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf o) => GI.Gtk.Objects.CellRendererPixbuf.IsCellRendererPixbuf o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererPixbuf.CellRendererPixbuf

-- | Renders a combobox in a cell
--   
--   GtkCellRendererCombo renders text in a cell like
--   GtkCellRendererText from which it is derived. But while
--   GtkCellRendererText offers a simple entry to edit the text,
--   GtkCellRendererCombo offers a GtkComboBox widget to
--   edit the text. The values to display in the combo box are taken from
--   the tree model specified in the GtkCellRendererCombo:model
--   property.
--   
--   The combo cell renderer takes care of adding a text cell renderer to
--   the combo box and sets it to display the column specified by its
--   GtkCellRendererCombo:text-column property. Further properties
--   of the combo box can be set in a handler for the
--   GtkCellRenderer::editing-started signal.
module GI.Gtk.Objects.CellRendererCombo

-- | Memory-managed wrapper type.
newtype CellRendererCombo
CellRendererCombo :: ManagedPtr CellRendererCombo -> CellRendererCombo

-- | Type class for types which can be safely cast to
--   CellRendererCombo, for instance with
--   toCellRendererCombo.
class (GObject o, IsDescendantOf CellRendererCombo o) => IsCellRendererCombo o

-- | Cast to CellRendererCombo, for types for which this is known to
--   be safe. For general casts, use castTo.
toCellRendererCombo :: (MonadIO m, IsCellRendererCombo o) => o -> m CellRendererCombo

-- | Creates a new GtkCellRendererCombo. Adjust how text is drawn
--   using object properties. Object properties can be set globally (with
--   g_object_set()). Also, with
--   GtkTreeViewColumn, you can bind a property to a value in a
--   GtkTreeModel. For example, you can bind the “text” property
--   on the cell renderer to a string value in the model, thus rendering a
--   different string in each row of the GtkTreeView.

-- | Deprecated: (Since version 4.10)
cellRendererComboNew :: (HasCallStack, MonadIO m) => m CellRendererCombo

-- | Construct a GValueConstruct with valid value for the
--   “has-entry” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererComboHasEntry :: (IsCellRendererCombo o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-entry” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererCombo #hasEntry
--   
getCellRendererComboHasEntry :: (MonadIO m, IsCellRendererCombo o) => o -> m Bool

-- | Set the value of the “has-entry” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererCombo [ #hasEntry := value ]
--   
setCellRendererComboHasEntry :: (MonadIO m, IsCellRendererCombo o) => o -> Bool -> m ()

-- | Set the value of the “model” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #model
--   
clearCellRendererComboModel :: (MonadIO m, IsCellRendererCombo o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “model” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererComboModel :: (IsCellRendererCombo o, MonadIO m, IsTreeModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererCombo #model
--   
getCellRendererComboModel :: (MonadIO m, IsCellRendererCombo o) => o -> m (Maybe TreeModel)

-- | Set the value of the “model” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererCombo [ #model := value ]
--   
setCellRendererComboModel :: (MonadIO m, IsCellRendererCombo o, IsTreeModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “text-column” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererComboTextColumn :: (IsCellRendererCombo o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererCombo #textColumn
--   
getCellRendererComboTextColumn :: (MonadIO m, IsCellRendererCombo o) => o -> m Int32

-- | Set the value of the “text-column” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererCombo [ #textColumn := value ]
--   
setCellRendererComboTextColumn :: (MonadIO m, IsCellRendererCombo o) => o -> Int32 -> m ()

-- | This signal is emitted each time after the user selected an item in
--   the combo box, either by using the mouse or the arrow keys. Contrary
--   to GtkComboBox, GtkCellRendererCombochanged is not emitted for
--   changes made to a selected item in the entry. The argument
--   newIter corresponds to the newly selected item in the
--   combo box and it is relative to the GtkTreeModel set via the model
--   property on GtkCellRendererCombo.
--   
--   Note that as soon as you change the model displayed in the tree view,
--   the tree view will immediately cease the editing operating. This means
--   that you most probably want to refrain from changing the model until
--   the combo cell renderer emits the edited or editing_canceled signal.
type CellRendererComboChangedCallback = Text -> TreeIter -> IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellRendererCombo #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererComboChanged :: (IsCellRendererCombo a, MonadIO m) => a -> ((?self :: a) => CellRendererComboChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellRendererCombo #changed callback
--   
onCellRendererComboChanged :: (IsCellRendererCombo a, MonadIO m) => a -> ((?self :: a) => CellRendererComboChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererCombo.CellRendererCombo
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererCombo.CellRendererCombo
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererCombo.CellRendererCombo
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererCombo.CellRendererCombo o) => GI.Gtk.Objects.CellRendererCombo.IsCellRendererCombo o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererCombo.CellRendererCombo)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererCombo.CellRendererCombo
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererCombo.CellRendererCombo

-- | Renders a keyboard accelerator in a cell
--   
--   GtkCellRendererAccel displays a keyboard accelerator (i.e. a
--   key combination like Control + a). If the cell renderer is
--   editable, the accelerator can be changed by simply typing the new
--   combination.
module GI.Gtk.Objects.CellRendererAccel

-- | Memory-managed wrapper type.
newtype CellRendererAccel
CellRendererAccel :: ManagedPtr CellRendererAccel -> CellRendererAccel

-- | Type class for types which can be safely cast to
--   CellRendererAccel, for instance with
--   toCellRendererAccel.
class (GObject o, IsDescendantOf CellRendererAccel o) => IsCellRendererAccel o

-- | Cast to CellRendererAccel, for types for which this is known to
--   be safe. For general casts, use castTo.
toCellRendererAccel :: (MonadIO m, IsCellRendererAccel o) => o -> m CellRendererAccel

-- | Creates a new GtkCellRendererAccel.

-- | Deprecated: (Since version 4.10)
cellRendererAccelNew :: (HasCallStack, MonadIO m) => m CellRendererAccel

-- | Construct a GValueConstruct with valid value for the
--   “accel-key” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererAccelAccelKey :: (IsCellRendererAccel o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “accel-key” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererAccel #accelKey
--   
getCellRendererAccelAccelKey :: (MonadIO m, IsCellRendererAccel o) => o -> m Word32

-- | Set the value of the “accel-key” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererAccel [ #accelKey := value ]
--   
setCellRendererAccelAccelKey :: (MonadIO m, IsCellRendererAccel o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accel-mode” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererAccelAccelMode :: (IsCellRendererAccel o, MonadIO m) => CellRendererAccelMode -> m (GValueConstruct o)

-- | Get the value of the “accel-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererAccel #accelMode
--   
getCellRendererAccelAccelMode :: (MonadIO m, IsCellRendererAccel o) => o -> m CellRendererAccelMode

-- | Set the value of the “accel-mode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererAccel [ #accelMode := value ]
--   
setCellRendererAccelAccelMode :: (MonadIO m, IsCellRendererAccel o) => o -> CellRendererAccelMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “accel-mods” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererAccelAccelMods :: (IsCellRendererAccel o, MonadIO m) => [ModifierType] -> m (GValueConstruct o)

-- | Get the value of the “accel-mods” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererAccel #accelMods
--   
getCellRendererAccelAccelMods :: (MonadIO m, IsCellRendererAccel o) => o -> m [ModifierType]

-- | Set the value of the “accel-mods” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererAccel [ #accelMods := value ]
--   
setCellRendererAccelAccelMods :: (MonadIO m, IsCellRendererAccel o) => o -> [ModifierType] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “keycode” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererAccelKeycode :: (IsCellRendererAccel o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “keycode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRendererAccel #keycode
--   
getCellRendererAccelKeycode :: (MonadIO m, IsCellRendererAccel o) => o -> m Word32

-- | Set the value of the “keycode” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRendererAccel [ #keycode := value ]
--   
setCellRendererAccelKeycode :: (MonadIO m, IsCellRendererAccel o) => o -> Word32 -> m ()

-- | Gets emitted when the user has removed the accelerator.
type CellRendererAccelAccelClearedCallback = Text -> IO ()

-- | Connect a signal handler for the accelCleared signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellRendererAccel #accelCleared callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererAccelAccelCleared :: (IsCellRendererAccel a, MonadIO m) => a -> ((?self :: a) => CellRendererAccelAccelClearedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the accelCleared signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellRendererAccel #accelCleared callback
--   
onCellRendererAccelAccelCleared :: (IsCellRendererAccel a, MonadIO m) => a -> ((?self :: a) => CellRendererAccelAccelClearedCallback) -> m SignalHandlerId

-- | Gets emitted when the user has selected a new accelerator.
type CellRendererAccelAccelEditedCallback = Text -> Word32 -> [ModifierType] -> Word32 -> IO ()

-- | Connect a signal handler for the accelEdited signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellRendererAccel #accelEdited callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererAccelAccelEdited :: (IsCellRendererAccel a, MonadIO m) => a -> ((?self :: a) => CellRendererAccelAccelEditedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the accelEdited signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellRendererAccel #accelEdited callback
--   
onCellRendererAccelAccelEdited :: (IsCellRendererAccel a, MonadIO m) => a -> ((?self :: a) => CellRendererAccelAccelEditedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CellRendererAccel.CellRendererAccel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRendererAccel.CellRendererAccel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRendererAccel.CellRendererAccel
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRendererAccel.CellRendererAccel o) => GI.Gtk.Objects.CellRendererAccel.IsCellRendererAccel o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRendererAccel.CellRendererAccel)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRendererAccel.CellRendererAccel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRendererAccel.CellRendererAccel

-- | An object for rendering a single cell
--   
--   The GtkCellRenderer is a base class of a set of objects used
--   for rendering a cell to a cairo_t. These objects are used
--   primarily by the GtkTreeView widget, though they aren’t tied
--   to them in any specific way. It is worth noting that
--   GtkCellRenderer is not a GtkWidget and cannot be
--   treated as such.
--   
--   The primary use of a GtkCellRenderer is for drawing a certain
--   graphical elements on a cairo_t. Typically, one cell renderer
--   is used to draw many cells on the screen. To this extent, it isn’t
--   expected that a CellRenderer keep any permanent state around. Instead,
--   any state is set just prior to use using GObjects property
--   system. Then, the cell is measured using
--   cellRendererGetPreferredSize. Finally, the cell is rendered in
--   the correct location using cellRendererSnapshot.
--   
--   There are a number of rules that must be followed when writing a new
--   GtkCellRenderer. First and foremost, it’s important that a
--   certain set of properties will always yield a cell renderer of the
--   same size, barring a style change. The GtkCellRenderer also
--   has a number of generic properties that are expected to be honored by
--   all children.
--   
--   Beyond merely rendering a cell, cell renderers can optionally provide
--   active user interface elements. A cell renderer can be “activatable”
--   like GtkCellRendererToggle, which toggles when it gets
--   activated by a mouse click, or it can be “editable” like
--   GtkCellRendererText, which allows the user to edit the text
--   using a widget implementing the GtkCellEditable interface,
--   e.g. GtkEntry. To make a cell renderer activatable or
--   editable, you have to implement the
--   GtkCellRendererClass.activate or
--   GtkCellRendererClass.start_editing virtual functions,
--   respectively.
--   
--   Many properties of GtkCellRenderer and its subclasses have a
--   corresponding “set” property, e.g. “cell-background-set” corresponds
--   to “cell-background”. These “set” properties reflect whether a
--   property has been set or not. You should not set them independently.
module GI.Gtk.Objects.CellRenderer

-- | Memory-managed wrapper type.
newtype CellRenderer
CellRenderer :: ManagedPtr CellRenderer -> CellRenderer

-- | Type class for types which can be safely cast to CellRenderer,
--   for instance with toCellRenderer.
class (GObject o, IsDescendantOf CellRenderer o) => IsCellRenderer o

-- | Cast to CellRenderer, for types for which this is known to be
--   safe. For general casts, use castTo.
toCellRenderer :: (MonadIO m, IsCellRenderer o) => o -> m CellRenderer

-- | Passes an activate event to the cell renderer for possible processing.
--   Some cell renderers may use events; for example,
--   GtkCellRendererToggle toggles when it gets a mouse click.

-- | Deprecated: (Since version 4.10)
cellRendererActivate :: (HasCallStack, MonadIO m, IsCellRenderer a, IsEvent b, IsWidget c) => a -> b -> c -> Text -> Rectangle -> Rectangle -> [CellRendererState] -> m Bool

-- | Gets the aligned area used by cell inside
--   cellArea. Used for finding the appropriate edit and
--   focus rectangle.

-- | Deprecated: (Since version 4.10)
cellRendererGetAlignedArea :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => a -> b -> [CellRendererState] -> Rectangle -> m Rectangle

-- | Fills in xalign and yalign with the
--   appropriate values of cell.

-- | Deprecated: (Since version 4.10)
cellRendererGetAlignment :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m (Float, Float)

-- | Fills in width and height with the
--   appropriate size of cell.

-- | Deprecated: (Since version 4.10)
cellRendererGetFixedSize :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m (Int32, Int32)

-- | Checks whether the given GtkCellRenderer is expanded.

-- | Deprecated: (Since version 4.10)
cellRendererGetIsExpanded :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m Bool

-- | Checks whether the given GtkCellRenderer is an expander.

-- | Deprecated: (Since version 4.10)
cellRendererGetIsExpander :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m Bool

-- | Fills in xpad and ypad with the
--   appropriate values of cell.

-- | Deprecated: (Since version 4.10)
cellRendererGetPadding :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m (Int32, Int32)

-- | Retrieves a renderer’s natural size when rendered to
--   widget.

-- | Deprecated: (Since version 4.10)
cellRendererGetPreferredHeight :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => a -> b -> m (Int32, Int32)

-- | Retrieves a cell renderers’s minimum and natural height if it were
--   rendered to widget with the specified
--   width.

-- | Deprecated: (Since version 4.10)
cellRendererGetPreferredHeightForWidth :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => a -> b -> Int32 -> m (Int32, Int32)

-- | Retrieves the minimum and natural size of a cell taking into account
--   the widget’s preference for height-for-width management.

-- | Deprecated: (Since version 4.10)
cellRendererGetPreferredSize :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => a -> b -> m (Requisition, Requisition)

-- | Retrieves a renderer’s natural size when rendered to
--   widget.

-- | Deprecated: (Since version 4.10)
cellRendererGetPreferredWidth :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => a -> b -> m (Int32, Int32)

-- | Retrieves a cell renderers’s minimum and natural width if it were
--   rendered to widget with the specified
--   height.

-- | Deprecated: (Since version 4.10)
cellRendererGetPreferredWidthForHeight :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => a -> b -> Int32 -> m (Int32, Int32)

-- | Gets whether the cell renderer prefers a height-for-width layout or a
--   width-for-height layout.

-- | Deprecated: (Since version 4.10)
cellRendererGetRequestMode :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m SizeRequestMode

-- | Returns the cell renderer’s sensitivity.

-- | Deprecated: (Since version 4.10)
cellRendererGetSensitive :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m Bool

-- | Translates the cell renderer state to GtkStateFlags, based on
--   the cell renderer and widget sensitivity, and the given
--   GtkCellRendererState.

-- | Deprecated: (Since version 4.10)
cellRendererGetState :: (HasCallStack, MonadIO m, IsCellRenderer a, IsWidget b) => Maybe a -> Maybe b -> [CellRendererState] -> m [StateFlags]

-- | Returns the cell renderer’s visibility.

-- | Deprecated: (Since version 4.10)
cellRendererGetVisible :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m Bool

-- | Checks whether the cell renderer can do something when activated.

-- | Deprecated: (Since version 4.10)
cellRendererIsActivatable :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> m Bool

-- | Sets the renderer’s alignment within its available space.

-- | Deprecated: (Since version 4.10)
cellRendererSetAlignment :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Float -> Float -> m ()

-- | Sets the renderer size to be explicit, independent of the properties
--   set.

-- | Deprecated: (Since version 4.10)
cellRendererSetFixedSize :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Int32 -> Int32 -> m ()

-- | Sets whether the given GtkCellRenderer is expanded.

-- | Deprecated: (Since version 4.10)
cellRendererSetIsExpanded :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Bool -> m ()

-- | Sets whether the given GtkCellRenderer is an expander.

-- | Deprecated: (Since version 4.10)
cellRendererSetIsExpander :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Bool -> m ()

-- | Sets the renderer’s padding.

-- | Deprecated: (Since version 4.10)
cellRendererSetPadding :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Int32 -> Int32 -> m ()

-- | Sets the cell renderer’s sensitivity.

-- | Deprecated: (Since version 4.10)
cellRendererSetSensitive :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Bool -> m ()

-- | Sets the cell renderer’s visibility.

-- | Deprecated: (Since version 4.10)
cellRendererSetVisible :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Bool -> m ()

-- | Invokes the virtual render function of the GtkCellRenderer.
--   The three passed-in rectangles are areas in cr. Most
--   renderers will draw within cellArea; the xalign,
--   yalign, xpad, and ypad fields of the GtkCellRenderer should
--   be honored with respect to cellArea.
--   backgroundArea includes the blank space around the
--   cell, and also the area containing the tree expander; so the
--   backgroundArea rectangles for all cells tile to cover
--   the entire window.

-- | Deprecated: (Since version 4.10)
cellRendererSnapshot :: (HasCallStack, MonadIO m, IsCellRenderer a, IsSnapshot b, IsWidget c) => a -> b -> c -> Rectangle -> Rectangle -> [CellRendererState] -> m ()

-- | Starts editing the contents of this cell, through a
--   new GtkCellEditable widget created by the
--   GtkCellRendererClass.start_editing virtual function.

-- | Deprecated: (Since version 4.10)
cellRendererStartEditing :: (HasCallStack, MonadIO m, IsCellRenderer a, IsEvent b, IsWidget c) => a -> Maybe b -> c -> Text -> Rectangle -> Rectangle -> [CellRendererState] -> m (Maybe CellEditable)

-- | Informs the cell renderer that the editing is stopped. If
--   canceled is True, the cell renderer will emit
--   the GtkCellRenderereditingCanceled signal.
--   
--   This function should be called by cell renderer implementations in
--   response to the GtkCellEditable::editing-done signal of
--   GtkCellEditable.

-- | Deprecated: (Since version 4.10)
cellRendererStopEditing :: (HasCallStack, MonadIO m, IsCellRenderer a) => a -> Bool -> m ()

-- | Set the value of the “cell-background” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #cellBackground
--   
clearCellRendererCellBackground :: (MonadIO m, IsCellRenderer o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-background” property. This is rarely needed directly,
--   but it is used by new.
constructCellRendererCellBackground :: (IsCellRenderer o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Set the value of the “cell-background” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #cellBackground := value ]
--   
setCellRendererCellBackground :: (MonadIO m, IsCellRenderer o) => o -> Text -> m ()

-- | Set the value of the “cell-background-rgba” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #cellBackgroundRgba
--   
clearCellRendererCellBackgroundRgba :: (MonadIO m, IsCellRenderer o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-background-rgba” property. This is rarely needed
--   directly, but it is used by new.
constructCellRendererCellBackgroundRgba :: (IsCellRenderer o, MonadIO m) => RGBA -> m (GValueConstruct o)

-- | Get the value of the “cell-background-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #cellBackgroundRgba
--   
getCellRendererCellBackgroundRgba :: (MonadIO m, IsCellRenderer o) => o -> m (Maybe RGBA)

-- | Set the value of the “cell-background-rgba” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #cellBackgroundRgba := value ]
--   
setCellRendererCellBackgroundRgba :: (MonadIO m, IsCellRenderer o) => o -> RGBA -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cell-background-set” property. This is rarely needed
--   directly, but it is used by new.
constructCellRendererCellBackgroundSet :: (IsCellRenderer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “cell-background-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #cellBackgroundSet
--   
getCellRendererCellBackgroundSet :: (MonadIO m, IsCellRenderer o) => o -> m Bool

-- | Set the value of the “cell-background-set” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #cellBackgroundSet := value ]
--   
setCellRendererCellBackgroundSet :: (MonadIO m, IsCellRenderer o) => o -> Bool -> m ()

-- | Get the value of the “editing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #editing
--   
getCellRendererEditing :: (MonadIO m, IsCellRenderer o) => o -> m Bool

-- | Construct a GValueConstruct with valid value for the
--   “height” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererHeight :: (IsCellRenderer o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #height
--   
getCellRendererHeight :: (MonadIO m, IsCellRenderer o) => o -> m Int32

-- | Set the value of the “height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #height := value ]
--   
setCellRendererHeight :: (MonadIO m, IsCellRenderer o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “is-expanded” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererIsExpanded :: (IsCellRenderer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “is-expanded” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #isExpanded
--   
getCellRendererIsExpanded :: (MonadIO m, IsCellRenderer o) => o -> m Bool

-- | Set the value of the “is-expanded” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #isExpanded := value ]
--   
setCellRendererIsExpanded :: (MonadIO m, IsCellRenderer o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “is-expander” property. This is rarely needed directly, but
--   it is used by new.
constructCellRendererIsExpander :: (IsCellRenderer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “is-expander” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #isExpander
--   
getCellRendererIsExpander :: (MonadIO m, IsCellRenderer o) => o -> m Bool

-- | Set the value of the “is-expander” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #isExpander := value ]
--   
setCellRendererIsExpander :: (MonadIO m, IsCellRenderer o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “mode” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererMode :: (IsCellRenderer o, MonadIO m) => CellRendererMode -> m (GValueConstruct o)

-- | Get the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRenderer #mode
--   
getCellRendererMode :: (MonadIO m, IsCellRenderer o) => o -> m CellRendererMode

-- | Set the value of the “mode” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #mode := value ]
--   
setCellRendererMode :: (MonadIO m, IsCellRenderer o) => o -> CellRendererMode -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “sensitive” property. This is rarely needed directly, but it
--   is used by new.
constructCellRendererSensitive :: (IsCellRenderer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #sensitive
--   
getCellRendererSensitive :: (MonadIO m, IsCellRenderer o) => o -> m Bool

-- | Set the value of the “sensitive” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #sensitive := value ]
--   
setCellRendererSensitive :: (MonadIO m, IsCellRenderer o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “visible” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererVisible :: (IsCellRenderer o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #visible
--   
getCellRendererVisible :: (MonadIO m, IsCellRenderer o) => o -> m Bool

-- | Set the value of the “visible” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #visible := value ]
--   
setCellRendererVisible :: (MonadIO m, IsCellRenderer o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “width” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererWidth :: (IsCellRenderer o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #width
--   
getCellRendererWidth :: (MonadIO m, IsCellRenderer o) => o -> m Int32

-- | Set the value of the “width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #width := value ]
--   
setCellRendererWidth :: (MonadIO m, IsCellRenderer o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “xalign” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererXalign :: (IsCellRenderer o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #xalign
--   
getCellRendererXalign :: (MonadIO m, IsCellRenderer o) => o -> m Float

-- | Set the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #xalign := value ]
--   
setCellRendererXalign :: (MonadIO m, IsCellRenderer o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “xpad” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererXpad :: (IsCellRenderer o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “xpad” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRenderer #xpad
--   
getCellRendererXpad :: (MonadIO m, IsCellRenderer o) => o -> m Word32

-- | Set the value of the “xpad” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #xpad := value ]
--   
setCellRendererXpad :: (MonadIO m, IsCellRenderer o) => o -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “yalign” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererYalign :: (IsCellRenderer o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellRenderer #yalign
--   
getCellRendererYalign :: (MonadIO m, IsCellRenderer o) => o -> m Float

-- | Set the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #yalign := value ]
--   
setCellRendererYalign :: (MonadIO m, IsCellRenderer o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ypad” property. This is rarely needed directly, but it is
--   used by new.
constructCellRendererYpad :: (IsCellRenderer o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “ypad” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellRenderer #ypad
--   
getCellRendererYpad :: (MonadIO m, IsCellRenderer o) => o -> m Word32

-- | Set the value of the “ypad” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set cellRenderer [ #ypad := value ]
--   
setCellRendererYpad :: (MonadIO m, IsCellRenderer o) => o -> Word32 -> m ()

-- | This signal gets emitted when the user cancels the process of editing
--   a cell. For example, an editable cell renderer could be written to
--   cancel editing when the user presses Escape.
--   
--   See also: cellRendererStopEditing.
type CellRendererEditingCanceledCallback = IO ()

-- | Connect a signal handler for the editingCanceled signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after cellRenderer #editingCanceled callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererEditingCanceled :: (IsCellRenderer a, MonadIO m) => a -> ((?self :: a) => CellRendererEditingCanceledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the editingCanceled signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on cellRenderer #editingCanceled callback
--   
onCellRendererEditingCanceled :: (IsCellRenderer a, MonadIO m) => a -> ((?self :: a) => CellRendererEditingCanceledCallback) -> m SignalHandlerId

-- | This signal gets emitted when a cell starts to be edited. The intended
--   use of this signal is to do special setup on editable,
--   e.g. adding a GtkEntryCompletion or setting up additional
--   columns in a GtkComboBox.
--   
--   See cellEditableStartEditing for information on the lifecycle
--   of the editable and a way to do setup that doesn’t
--   depend on the renderer.
--   
--   Note that GTK doesn't guarantee that cell renderers will continue to
--   use the same kind of widget for editing in future releases, therefore
--   you should check the type of editable before doing any
--   specific setup, as in the following example:
--   
--   
c code
--   
--   
--   static void
--   text_editing_started (GtkCellRenderer *cell,
--                         GtkCellEditable *editable,
--                         const char      *path,
--                         gpointer         data)
--   {
--     if (GTK_IS_ENTRY (editable))
--       {
--         GtkEntry *entry = GTK_ENTRY (editable);
--   
--         // ... create a GtkEntryCompletion
--   
--         gtk_entry_set_completion (entry, completion);
--       }
--   }
--   
type CellRendererEditingStartedCallback = CellEditable -> Text -> IO ()

-- | Connect a signal handler for the editingStarted signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after cellRenderer #editingStarted callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellRendererEditingStarted :: (IsCellRenderer a, MonadIO m) => a -> ((?self :: a) => CellRendererEditingStartedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the editingStarted signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on cellRenderer #editingStarted callback
--   
onCellRendererEditingStarted :: (IsCellRenderer a, MonadIO m) => a -> ((?self :: a) => CellRendererEditingStartedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CellRenderer.CellRenderer
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellRenderer.CellRenderer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellRenderer.CellRenderer
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellRenderer.CellRenderer o) => GI.Gtk.Objects.CellRenderer.IsCellRenderer o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellRenderer.CellRenderer)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellRenderer.CellRenderer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellRenderer.CellRenderer

-- | Stores geometrical information for a series of rows in a GtkCellArea
--   
--   The GtkCellAreaContext object is created by a given
--   GtkCellArea implementation via its
--   GtkCellAreaClass.create_context() virtual method and is used
--   to store cell sizes and alignments for a series of
--   GtkTreeModel rows that are requested and rendered in the same
--   context.
--   
--   GtkCellLayout widgets can create any number of contexts in
--   which to request and render groups of data rows. However, it’s
--   important that the same context which was used to request sizes for a
--   given GtkTreeModel row also be used for the same row when
--   calling other GtkCellArea APIs such as
--   gtk_cell_area_render() and cellAreaEvent.
module GI.Gtk.Objects.CellAreaContext

-- | Memory-managed wrapper type.
newtype CellAreaContext
CellAreaContext :: ManagedPtr CellAreaContext -> CellAreaContext

-- | Type class for types which can be safely cast to
--   CellAreaContext, for instance with toCellAreaContext.
class (GObject o, IsDescendantOf CellAreaContext o) => IsCellAreaContext o

-- | Cast to CellAreaContext, for types for which this is known to
--   be safe. For general casts, use castTo.
toCellAreaContext :: (MonadIO m, IsCellAreaContext o) => o -> m CellAreaContext

-- | Allocates a width and/or a height for all rows which are to be
--   rendered with context.
--   
--   Usually allocation is performed only horizontally or sometimes
--   vertically since a group of rows are usually rendered side by side
--   vertically or horizontally and share either the same width or the same
--   height. Sometimes they are allocated in both horizontal and vertical
--   orientations producing a homogeneous effect of the rows. This is
--   generally the case for GtkTreeView when
--   GtkTreeView:fixed-height-mode is enabled.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextAllocate :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> Int32 -> Int32 -> m ()

-- | Fetches the current allocation size for context.
--   
--   If the context was not allocated in width or height, or if the context
--   was recently reset with cellAreaContextReset, the returned
--   value will be -1.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextGetAllocation :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> m (Int32, Int32)

-- | Fetches the GtkCellArea this context was
--   created by.
--   
--   This is generally unneeded by layouting widgets; however, it is
--   important for the context implementation itself to fetch information
--   about the area it is being used for.
--   
--   For instance at GtkCellAreaContextClass.allocate() time it’s
--   important to know details about any cell spacing that the
--   GtkCellArea is configured with in order to compute a proper
--   allocation.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextGetArea :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> m CellArea

-- | Gets the accumulative preferred height for all rows which have been
--   requested with this context.
--   
--   After cellAreaContextReset is called and/or before ever
--   requesting the size of a GtkCellArea, the returned values are
--   0.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextGetPreferredHeight :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> m (Int32, Int32)

-- | Gets the accumulative preferred height for width for
--   all rows which have been requested for the same said
--   width with this context.
--   
--   After cellAreaContextReset is called and/or before ever
--   requesting the size of a GtkCellArea, the returned values are
--   -1.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextGetPreferredHeightForWidth :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> Int32 -> m (Int32, Int32)

-- | Gets the accumulative preferred width for all rows which have been
--   requested with this context.
--   
--   After cellAreaContextReset is called and/or before ever
--   requesting the size of a GtkCellArea, the returned values are
--   0.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextGetPreferredWidth :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> m (Int32, Int32)

-- | Gets the accumulative preferred width for height for
--   all rows which have been requested for the same said
--   height with this context.
--   
--   After cellAreaContextReset is called and/or before ever
--   requesting the size of a GtkCellArea, the returned values are
--   -1.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextGetPreferredWidthForHeight :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> Int32 -> m (Int32, Int32)

-- | Causes the minimum and/or natural height to grow if the new proposed
--   sizes exceed the current minimum and natural height.
--   
--   This is used by GtkCellAreaContext implementations during the
--   request process over a series of GtkTreeModel rows to
--   progressively push the requested height over a series of
--   cellAreaGetPreferredHeight requests.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextPushPreferredHeight :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> Int32 -> Int32 -> m ()

-- | Causes the minimum and/or natural width to grow if the new proposed
--   sizes exceed the current minimum and natural width.
--   
--   This is used by GtkCellAreaContext implementations during the
--   request process over a series of GtkTreeModel rows to
--   progressively push the requested width over a series of
--   cellAreaGetPreferredWidth requests.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextPushPreferredWidth :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> Int32 -> Int32 -> m ()

-- | Resets any previously cached request and allocation data.
--   
--   When underlying GtkTreeModel data changes its important to
--   reset the context if the content size is allowed to shrink. If the
--   content size is only allowed to grow (this is usually an option for
--   views rendering large data stores as a measure of optimization), then
--   only the row that changed or was inserted needs to be (re)requested
--   with cellAreaGetPreferredWidth.
--   
--   When the new overall size of the context requires that the allocated
--   size changes (or whenever this allocation changes at all), the
--   variable row sizes need to be re-requested for every row.
--   
--   For instance, if the rows are displayed all with the same width from
--   top to bottom then a change in the allocated width necessitates a
--   recalculation of all the displayed row heights using
--   cellAreaGetPreferredHeightForWidth.

-- | Deprecated: (Since version 4.10)This object will be removed in GTK
--   5
cellAreaContextReset :: (HasCallStack, MonadIO m, IsCellAreaContext a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “area” property. This is rarely needed directly, but it is
--   used by new.
constructCellAreaContextArea :: (IsCellAreaContext o, MonadIO m, IsCellArea a) => a -> m (GValueConstruct o)

-- | Get the value of the “area” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get cellAreaContext #area
--   
getCellAreaContextArea :: (MonadIO m, IsCellAreaContext o) => o -> m CellArea

-- | Get the value of the “minimum-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellAreaContext #minimumHeight
--   
getCellAreaContextMinimumHeight :: (MonadIO m, IsCellAreaContext o) => o -> m Int32

-- | Get the value of the “minimum-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellAreaContext #minimumWidth
--   
getCellAreaContextMinimumWidth :: (MonadIO m, IsCellAreaContext o) => o -> m Int32

-- | Get the value of the “natural-height” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellAreaContext #naturalHeight
--   
getCellAreaContextNaturalHeight :: (MonadIO m, IsCellAreaContext o) => o -> m Int32

-- | Get the value of the “natural-width” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellAreaContext #naturalWidth
--   
getCellAreaContextNaturalWidth :: (MonadIO m, IsCellAreaContext o) => o -> m Int32
instance GHC.Classes.Eq GI.Gtk.Objects.CellAreaContext.CellAreaContext
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellAreaContext.CellAreaContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellAreaContext.CellAreaContext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellAreaContext.CellAreaContext o) => GI.Gtk.Objects.CellAreaContext.IsCellAreaContext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellAreaContext.CellAreaContext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellAreaContext.CellAreaContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellAreaContext.CellAreaContext

-- | A cell area that renders GtkCellRenderers into a row or a column
--   
--   The GtkCellAreaBox renders cell renderers into a row or a
--   column depending on its GtkOrientation.
--   
--   GtkCellAreaBox uses a notion of packing. Packing refers to adding cell
--   renderers with reference to a particular position in a
--   GtkCellAreaBox. There are two reference positions: the start
--   and the end of the box. When the GtkCellAreaBox is oriented
--   in the OrientationVertical orientation, the start is defined as
--   the top of the box and the end is defined as the bottom. In the
--   OrientationHorizontal orientation start is defined as the left
--   side and the end is defined as the right side.
--   
--   Alignments of GtkCellRenderers rendered in adjacent rows can
--   be configured by configuring the GtkCellAreaBox align child
--   cell property with cellAreaCellSetProperty or by specifying the
--   "align" argument to cellAreaBoxPackStart and
--   cellAreaBoxPackEnd.
module GI.Gtk.Objects.CellAreaBox

-- | Memory-managed wrapper type.
newtype CellAreaBox
CellAreaBox :: ManagedPtr CellAreaBox -> CellAreaBox

-- | Type class for types which can be safely cast to CellAreaBox,
--   for instance with toCellAreaBox.
class (GObject o, IsDescendantOf CellAreaBox o) => IsCellAreaBox o

-- | Cast to CellAreaBox, for types for which this is known to be
--   safe. For general casts, use castTo.
toCellAreaBox :: (MonadIO m, IsCellAreaBox o) => o -> m CellAreaBox

-- | Gets the spacing added between cell renderers.

-- | Deprecated: (Since version 4.10)
cellAreaBoxGetSpacing :: (HasCallStack, MonadIO m, IsCellAreaBox a) => a -> m Int32

-- | Creates a new GtkCellAreaBox.

-- | Deprecated: (Since version 4.10)
cellAreaBoxNew :: (HasCallStack, MonadIO m) => m CellAreaBox

-- | Adds renderer to box, packed with
--   reference to the end of box.
--   
--   The renderer is packed after (away from end of) any
--   other GtkCellRenderer packed with reference to the end of
--   box.

-- | Deprecated: (Since version 4.10)
cellAreaBoxPackEnd :: (HasCallStack, MonadIO m, IsCellAreaBox a, IsCellRenderer b) => a -> b -> Bool -> Bool -> Bool -> m ()

-- | Adds renderer to box, packed with
--   reference to the start of box.
--   
--   The renderer is packed after any other
--   GtkCellRenderer packed with reference to the start of
--   box.

-- | Deprecated: (Since version 4.10)
cellAreaBoxPackStart :: (HasCallStack, MonadIO m, IsCellAreaBox a, IsCellRenderer b) => a -> b -> Bool -> Bool -> Bool -> m ()

-- | Sets the spacing to add between cell renderers in box.

-- | Deprecated: (Since version 4.10)
cellAreaBoxSetSpacing :: (HasCallStack, MonadIO m, IsCellAreaBox a) => a -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “spacing” property. This is rarely needed directly, but it is
--   used by new.
constructCellAreaBoxSpacing :: (IsCellAreaBox o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellAreaBox #spacing
--   
getCellAreaBoxSpacing :: (MonadIO m, IsCellAreaBox o) => o -> m Int32

-- | Set the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellAreaBox [ #spacing := value ]
--   
setCellAreaBoxSpacing :: (MonadIO m, IsCellAreaBox o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.CellAreaBox.CellAreaBox
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellAreaBox.CellAreaBox
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellAreaBox.CellAreaBox
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellAreaBox.CellAreaBox o) => GI.Gtk.Objects.CellAreaBox.IsCellAreaBox o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellAreaBox.CellAreaBox)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellAreaBox.CellAreaBox
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellAreaBox.CellAreaBox

-- | An abstract class for laying out GtkCellRenderers
--   
--   The GtkCellArea is an abstract class for CellLayout
--   widgets (also referred to as "layouting widgets") to interface with an
--   arbitrary number of CellRenderers and interact with the user
--   for a given TreeModel row.
--   
--   The cell area handles events, focus navigation, drawing and size
--   requests and allocations for a given row of data.
--   
--   Usually users dont have to interact with the GtkCellArea
--   directly unless they are implementing a cell-layouting widget
--   themselves.
--   
--   
Requesting area sizes
--   
--   As outlined in GtkWidget’s geometry management section, GTK
--   uses a height-for-width geometry management system to compute the
--   sizes of widgets and user interfaces. GtkCellArea uses the
--   same semantics to calculate the size of an area for an arbitrary
--   number of GtkTreeModel rows.
--   
--   When requesting the size of a cell area one needs to calculate the
--   size for a handful of rows, and this will be done differently by
--   different layouting widgets. For instance a TreeViewColumn
--   always lines up the areas from top to bottom while a IconView
--   on the other hand might enforce that all areas received the same width
--   and wrap the areas around, requesting height for more cell areas when
--   allocated less width.
--   
--   It’s also important for areas to maintain some cell alignments with
--   areas rendered for adjacent rows (cells can appear “columnized” inside
--   an area even when the size of cells are different in each row). For
--   this reason the GtkCellArea uses a CellAreaContext
--   object to store the alignments and sizes along the way (as well as the
--   overall largest minimum and natural size for all the rows which have
--   been calculated with the said context).
--   
--   The CellAreaContext is an opaque object specific to the
--   GtkCellArea which created it (see
--   cellAreaCreateContext).
--   
--   The owning cell-layouting widget can create as many contexts as it
--   wishes to calculate sizes of rows which should receive the same size
--   in at least one orientation (horizontally or vertically), However,
--   it’s important that the same CellAreaContext which was used to
--   request the sizes for a given GtkTreeModel row be used when
--   rendering or processing events for that row.
--   
--   In order to request the width of all the rows at the root level of a
--   GtkTreeModel one would do the following:
--   
--   
c code
--   
--   
--   GtkTreeIter iter;
--   int minimum_width;
--   int natural_width;
--   
--   valid = gtk_tree_model_get_iter_first (model, &iter);
--   while (valid)
--     {
--       gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
--       gtk_cell_area_get_preferred_width (area, context, widget, NULL, NULL);
--   
--       valid = gtk_tree_model_iter_next (model, &iter);
--     }
--   
--   gtk_cell_area_context_get_preferred_width (context, &minimum_width, &natural_width);
--   
--   
--   Note that in this example it’s not important to observe the returned
--   minimum and natural width of the area for each row unless the
--   cell-layouting object is actually interested in the widths of
--   individual rows. The overall width is however stored in the
--   accompanying GtkCellAreaContext object and can be consulted
--   at any time.
--   
--   This can be useful since GtkCellLayout widgets usually have
--   to support requesting and rendering rows in treemodels with an
--   exceedingly large amount of rows. The GtkCellLayout widget in
--   that case would calculate the required width of the rows in an idle or
--   timeout source (see timeoutAdd) and when the widget is
--   requested its actual width in Widget.measure()
--   it can simply consult the width accumulated so far in the
--   GtkCellAreaContext object.
--   
--   A simple example where rows are rendered from top to bottom and take
--   up the full width of the layouting widget would look like:
--   
--   
c code
--   
--   
--   static void
--   foo_get_preferred_width (GtkWidget *widget,
--                            int       *minimum_size,
--                            int       *natural_size)
--   {
--     Foo *self = FOO (widget);
--     FooPrivate *priv = foo_get_instance_private (self);
--   
--     foo_ensure_at_least_one_handfull_of_rows_have_been_requested (self);
--   
--     gtk_cell_area_context_get_preferred_width (priv->context, minimum_size, natural_size);
--   }
--   
--   
--   In the above example the Foo widget has to make sure that
--   some row sizes have been calculated (the amount of rows that
--   Foo judged was appropriate to request space for in a single
--   timeout iteration) before simply returning the amount of space
--   required by the area via the GtkCellAreaContext.
--   
--   Requesting the height for width (or width for height) of an area is a
--   similar task except in this case the GtkCellAreaContext does
--   not store the data (actually, it does not know how much space the
--   layouting widget plans to allocate it for every row. It’s up to the
--   layouting widget to render each row of data with the appropriate
--   height and width which was requested by the GtkCellArea).
--   
--   In order to request the height for width of all the rows at the root
--   level of a GtkTreeModel one would do the following:
--   
--   
c code
--   
--   
--   GtkTreeIter iter;
--   int minimum_height;
--   int natural_height;
--   int full_minimum_height = 0;
--   int full_natural_height = 0;
--   
--   valid = gtk_tree_model_get_iter_first (model, &iter);
--   while (valid)
--     {
--       gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
--       gtk_cell_area_get_preferred_height_for_width (area, context, widget,
--                                                     width, &minimum_height, &natural_height);
--   
--       if (width_is_for_allocation)
--          cache_row_height (&iter, minimum_height, natural_height);
--   
--       full_minimum_height += minimum_height;
--       full_natural_height += natural_height;
--   
--       valid = gtk_tree_model_iter_next (model, &iter);
--     }
--   
--   
--   Note that in the above example we would need to cache the heights
--   returned for each row so that we would know what sizes to render the
--   areas for each row. However we would only want to really cache the
--   heights if the request is intended for the layouting widgets real
--   allocation.
--   
--   In some cases the layouting widget is requested the height for an
--   arbitrary for_width, this is a special case for layouting widgets who
--   need to request size for tens of thousands of rows. For this case it’s
--   only important that the layouting widget calculate one reasonably
--   sized chunk of rows and return that height synchronously. The
--   reasoning here is that any layouting widget is at least capable of
--   synchronously calculating enough height to fill the screen height (or
--   scrolled window height) in response to a single call to
--   Widget.measure(). Returning a perfect height
--   for width that is larger than the screen area is inconsequential since
--   after the layouting receives an allocation from a scrolled window it
--   simply continues to drive the scrollbar values while more and more
--   height is required for the row heights that are calculated in the
--   background.
--   
--   
Rendering Areas
--   
--   Once area sizes have been acquired at least for the rows in the
--   visible area of the layouting widget they can be rendered at
--   Widget.snapshot() time.
--   
--   A crude example of how to render all the rows at the root level runs
--   as follows:
--   
--   
c code
--   
--   
--   GtkAllocation allocation;
--   GdkRectangle cell_area = { 0, };
--   GtkTreeIter iter;
--   int minimum_width;
--   int natural_width;
--   
--   gtk_widget_get_allocation (widget, &allocation);
--   cell_area.width = allocation.width;
--   
--   valid = gtk_tree_model_get_iter_first (model, &iter);
--   while (valid)
--     {
--       cell_area.height = get_cached_height_for_row (&iter);
--   
--       gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
--       gtk_cell_area_render (area, context, widget, cr,
--                             &cell_area, &cell_area, state_flags, FALSE);
--   
--       cell_area.y += cell_area.height;
--   
--       valid = gtk_tree_model_iter_next (model, &iter);
--     }
--   
--   
--   Note that the cached height in this example really depends on how the
--   layouting widget works. The layouting widget might decide to give
--   every row its minimum or natural height or, if the model content is
--   expected to fit inside the layouting widget without scrolling, it
--   would make sense to calculate the allocation for each row at the time
--   the widget is allocated using distributeNaturalAllocation.
--   
--   
Handling Events and Driving Keyboard Focus
--   
--   Passing events to the area is as simple as handling events on any
--   normal widget and then passing them to the cellAreaEvent API as
--   they come in. Usually GtkCellArea is only interested in
--   button events, however some customized derived areas can be
--   implemented who are interested in handling other events. Handling an
--   event can trigger the CellArea::focusChanged signal to fire; as
--   well as CellArea::addEditable in the case that an editable cell
--   was clicked and needs to start editing. You can call
--   cellAreaStopEditing at any time to cancel any cell editing that
--   is currently in progress.
--   
--   The GtkCellArea drives keyboard focus from cell to cell in a
--   way similar to GtkWidget. For layouting widgets that support
--   giving focus to cells it’s important to remember to pass
--   GTK_CELL_RENDERER_FOCUSED to the area functions for the row
--   that has focus and to tell the area to paint the focus at render time.
--   
--   Layouting widgets that accept focus on cells should implement the
--   Widget.focus() virtual method. The layouting
--   widget is always responsible for knowing where GtkTreeModel
--   rows are rendered inside the widget, so at
--   Widget.focus() time the layouting widget should
--   use the GtkCellArea methods to navigate focus inside the area
--   and then observe the DirectionType to pass the focus to
--   adjacent rows and areas.
--   
--   A basic example of how the Widget.focus()
--   virtual method should be implemented:
--   
--   
--   static gboolean
--   foo_focus (GtkWidget       *widget,
--              GtkDirectionType direction)
--   {
--     Foo *self = FOO (widget);
--     FooPrivate *priv = foo_get_instance_private (self);
--     int focus_row = priv->focus_row;
--     gboolean have_focus = FALSE;
--   
--     if (!gtk_widget_has_focus (widget))
--       gtk_widget_grab_focus (widget);
--   
--     valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, priv->focus_row);
--     while (valid)
--       {
--         gtk_cell_area_apply_attributes (priv->area, priv->model, &iter, FALSE, FALSE);
--   
--         if (gtk_cell_area_focus (priv->area, direction))
--           {
--              priv->focus_row = focus_row;
--              have_focus = TRUE;
--              break;
--           }
--         else
--           {
--             if (direction == GTK_DIR_RIGHT ||
--                 direction == GTK_DIR_LEFT)
--               break;
--             else if (direction == GTK_DIR_UP ||
--                      direction == GTK_DIR_TAB_BACKWARD)
--              {
--                 if (focus_row == 0)
--                   break;
--                 else
--                  {
--                     focus_row--;
--                     valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, focus_row);
--                  }
--               }
--             else
--               {
--                 if (focus_row == last_row)
--                   break;
--                 else
--                   {
--                     focus_row++;
--                     valid = gtk_tree_model_iter_next (priv->model, &iter);
--                   }
--               }
--           }
--       }
--       return have_focus;
--   }
--   
--   
--   Note that the layouting widget is responsible for matching the
--   GtkDirectionType values to the way it lays out its cells.
--   
--   
Cell Properties
--   
--   The GtkCellArea introduces cell properties for
--   GtkCellRenderers. This provides some general interfaces for
--   defining the relationship cell areas have with their cells. For
--   instance in a CellAreaBox a cell might “expand” and receive
--   extra space when the area is allocated more than its full natural
--   request, or a cell might be configured to “align” with adjacent rows
--   which were requested and rendered with the same
--   GtkCellAreaContext.
--   
--   Use cellAreaClassInstallCellProperty to install cell properties
--   for a cell area class and cellAreaClassFindCellProperty or
--   cellAreaClassListCellProperties to get information about
--   existing cell properties.
--   
--   To set the value of a cell property, use
--   cellAreaCellSetProperty,
--   CellArea.cell_set() or
--   CellArea.cell_set_valist(). To obtain the value
--   of a cell property, use cellAreaCellGetProperty
--   CellArea.cell_get() or
--   CellArea.cell_get_valist().
module GI.Gtk.Objects.CellArea

-- | Memory-managed wrapper type.
newtype CellArea
CellArea :: ManagedPtr CellArea -> CellArea

-- | Type class for types which can be safely cast to CellArea, for
--   instance with toCellArea.
class (GObject o, IsDescendantOf CellArea o) => IsCellArea o

-- | Cast to CellArea, for types for which this is known to be safe.
--   For general casts, use castTo.
toCellArea :: (MonadIO m, IsCellArea o) => o -> m CellArea

-- | Activates area, usually by activating the currently
--   focused cell, however some subclasses which embed widgets in the area
--   can also activate a widget if it currently has the focus.

-- | Deprecated: (Since version 4.10)
cellAreaActivate :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> Rectangle -> [CellRendererState] -> Bool -> m Bool

-- | This is used by GtkCellArea subclasses when handling events
--   to activate cells, the base GtkCellArea class activates cells
--   for keyboard events for free in its own
--   GtkCellArea->activate() implementation.

-- | Deprecated: (Since version 4.10)
cellAreaActivateCell :: (HasCallStack, MonadIO m, IsCellArea a, IsWidget b, IsCellRenderer c, IsEvent d) => a -> b -> c -> d -> Rectangle -> [CellRendererState] -> m Bool

-- | Adds renderer to area with the default
--   child cell properties.

-- | Deprecated: (Since version 4.10)
cellAreaAdd :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> m ()

-- | Adds sibling to renderer’s focusable
--   area, focus will be drawn around renderer and all of
--   its siblings if renderer can focus for a given row.
--   
--   Events handled by focus siblings can also activate the given focusable
--   renderer.

-- | Deprecated: (Since version 4.10)
cellAreaAddFocusSibling :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b, IsCellRenderer c) => a -> b -> c -> m ()

-- | Applies any connected attributes to the renderers in
--   area by pulling the values from
--   treeModel.

-- | Deprecated: (Since version 4.10)
cellAreaApplyAttributes :: (HasCallStack, MonadIO m, IsCellArea a, IsTreeModel b) => a -> b -> TreeIter -> Bool -> Bool -> m ()

-- | Connects an attribute to apply values from
--   column for the GtkTreeModel in use.

-- | Deprecated: (Since version 4.10)
cellAreaAttributeConnect :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> Text -> Int32 -> m ()

-- | Disconnects attribute for the renderer
--   in area so that attribute will no longer be updated
--   with values from the model.

-- | Deprecated: (Since version 4.10)
cellAreaAttributeDisconnect :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> Text -> m ()

-- | Returns the model column that an attribute has been mapped to, or -1
--   if the attribute is not mapped.

-- | Deprecated: (Since version 4.10)
cellAreaAttributeGetColumn :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> Text -> m Int32

-- | Gets the value of a cell property for renderer in
--   area.

-- | Deprecated: (Since version 4.10)
cellAreaCellGetProperty :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> Text -> GValue -> m ()

-- | Sets a cell property for renderer in
--   area.

-- | Deprecated: (Since version 4.10)
cellAreaCellSetProperty :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> Text -> GValue -> m ()

-- | This is sometimes needed for cases where rows need to share alignments
--   in one orientation but may be separately grouped in the opposing
--   orientation.
--   
--   For instance, GtkIconView creates all icons (rows) to have
--   the same width and the cells theirin to have the same horizontal
--   alignments. However each row of icons may have a separate collective
--   height. GtkIconView uses this to request the heights of each
--   row based on a context which was already used to request all the row
--   widths that are to be displayed.

-- | Deprecated: (Since version 4.10)
cellAreaCopyContext :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b) => a -> b -> m CellAreaContext

-- | Creates a GtkCellAreaContext to be used with
--   area for all purposes. GtkCellAreaContext
--   stores geometry information for rows for which it was operated on, it
--   is important to use the same context for the same row of data at all
--   times (i.e. one should render and handle events with the same
--   GtkCellAreaContext which was used to request the size of
--   those rows of data).

-- | Deprecated: (Since version 4.10)
cellAreaCreateContext :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m CellAreaContext

-- | Delegates event handling to a GtkCellArea.

-- | Deprecated: (Since version 4.10)
cellAreaEvent :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c, IsEvent d) => a -> b -> c -> d -> Rectangle -> [CellRendererState] -> m Int32

-- | This should be called by the area’s owning layout
--   widget when focus is to be passed to area, or moved
--   within area for a given direction and
--   row data.
--   
--   Implementing GtkCellArea classes should implement this method
--   to receive and navigate focus in its own way particular to how it lays
--   out cells.

-- | Deprecated: (Since version 4.10)
cellAreaFocus :: (HasCallStack, MonadIO m, IsCellArea a) => a -> DirectionType -> m Bool

-- | Calls callback for every GtkCellRenderer in
--   area.

-- | Deprecated: (Since version 4.10)
cellAreaForeach :: (HasCallStack, MonadIO m, IsCellArea a) => a -> CellCallback -> m ()

-- | Calls callback for every GtkCellRenderer in
--   area with the allocated rectangle inside
--   cellArea.
cellAreaForeachAlloc :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> Rectangle -> Rectangle -> CellAllocCallback -> m ()

-- | Derives the allocation of renderer inside
--   area if area were to be rendered in
--   cellArea.

-- | Deprecated: (Since version 4.10)
cellAreaGetCellAllocation :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c, IsCellRenderer d) => a -> b -> c -> d -> Rectangle -> m Rectangle

-- | Gets the GtkCellRenderer at x and
--   y coordinates inside area and
--   optionally returns the full cell allocation for it inside
--   cellArea.

-- | Deprecated: (Since version 4.10)
cellAreaGetCellAtPosition :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> Rectangle -> Int32 -> Int32 -> m (CellRenderer, Rectangle)

-- | Gets the current GtkTreePath string for the currently applied
--   GtkTreeIter, this is implicitly updated when
--   cellAreaApplyAttributes is called and can be used to interact
--   with renderers from GtkCellArea subclasses.
cellAreaGetCurrentPathString :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m Text

-- | Gets the GtkCellEditable widget currently used to edit the
--   currently edited cell.

-- | Deprecated: (Since version 4.10)
cellAreaGetEditWidget :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m (Maybe CellEditable)

-- | Gets the GtkCellRenderer in area that is
--   currently being edited.

-- | Deprecated: (Since version 4.10)
cellAreaGetEditedCell :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m (Maybe CellRenderer)

-- | Retrieves the currently focused cell for area

-- | Deprecated: (Since version 4.10)
cellAreaGetFocusCell :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m (Maybe CellRenderer)

-- | Gets the GtkCellRenderer which is expected to be focusable
--   for which renderer is, or may be a sibling.
--   
--   This is handy for GtkCellArea subclasses when handling
--   events, after determining the renderer at the event location it can
--   then chose to activate the focus cell for which the event cell may
--   have been a sibling.

-- | Deprecated: (Since version 4.10)
cellAreaGetFocusFromSibling :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> m (Maybe CellRenderer)

-- | Gets the focus sibling cell renderers for renderer.

-- | Deprecated: (Since version 4.10)
cellAreaGetFocusSiblings :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> m [CellRenderer]

-- | Retrieves a cell area’s initial minimum and natural height.
--   
--   area will store some geometrical information in
--   context along the way; when requesting sizes over an
--   arbitrary number of rows, it’s not important to check the
--   minimumHeight and naturalHeight of
--   this call but rather to consult
--   cellAreaContextGetPreferredHeight after a series of requests.

-- | Deprecated: (Since version 4.10)
cellAreaGetPreferredHeight :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> m (Int32, Int32)

-- | Retrieves a cell area’s minimum and natural height if it would be
--   given the specified width.
--   
--   area stores some geometrical information in
--   context along the way while calling
--   cellAreaGetPreferredWidth. It’s important to perform a series
--   of cellAreaGetPreferredWidth requests with
--   context first and then call
--   cellAreaGetPreferredHeightForWidth on each cell area
--   individually to get the height for width of each fully requested row.
--   
--   If at some point, the width of a single row changes, it should be
--   requested with cellAreaGetPreferredWidth again and then the
--   full width of the requested rows checked again with
--   cellAreaContextGetPreferredWidth.

-- | Deprecated: (Since version 4.10)
cellAreaGetPreferredHeightForWidth :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> Int32 -> m (Int32, Int32)

-- | Retrieves a cell area’s initial minimum and natural width.
--   
--   area will store some geometrical information in
--   context along the way; when requesting sizes over an
--   arbitrary number of rows, it’s not important to check the
--   minimumWidth and naturalWidth of this
--   call but rather to consult cellAreaContextGetPreferredWidth
--   after a series of requests.

-- | Deprecated: (Since version 4.10)
cellAreaGetPreferredWidth :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> m (Int32, Int32)

-- | Retrieves a cell area’s minimum and natural width if it would be given
--   the specified height.
--   
--   area stores some geometrical information in
--   context along the way while calling
--   cellAreaGetPreferredHeight. It’s important to perform a series
--   of cellAreaGetPreferredHeight requests with
--   context first and then call
--   cellAreaGetPreferredWidthForHeight on each cell area
--   individually to get the height for width of each fully requested row.
--   
--   If at some point, the height of a single row changes, it should be
--   requested with cellAreaGetPreferredHeight again and then the
--   full height of the requested rows checked again with
--   cellAreaContextGetPreferredHeight.

-- | Deprecated: (Since version 4.10)
cellAreaGetPreferredWidthForHeight :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c) => a -> b -> c -> Int32 -> m (Int32, Int32)

-- | Gets whether the area prefers a height-for-width layout or a
--   width-for-height layout.
cellAreaGetRequestMode :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m SizeRequestMode

-- | Checks if area contains renderer.

-- | Deprecated: (Since version 4.10)
cellAreaHasRenderer :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> m Bool

-- | This is a convenience function for GtkCellArea
--   implementations to get the inner area where a given
--   GtkCellRenderer will be rendered. It removes any padding
--   previously added by cellAreaRequestRenderer.

-- | Deprecated: (Since version 4.10)
cellAreaInnerCellArea :: (HasCallStack, MonadIO m, IsCellArea a, IsWidget b) => a -> b -> Rectangle -> m Rectangle

-- | Returns whether the area can do anything when activated, after
--   applying new attributes to area.

-- | Deprecated: (Since version 4.10)
cellAreaIsActivatable :: (HasCallStack, MonadIO m, IsCellArea a) => a -> m Bool

-- | Returns whether sibling is one of
--   renderer’s focus siblings (see
--   cellAreaAddFocusSibling).

-- | Deprecated: (Since version 4.10)
cellAreaIsFocusSibling :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b, IsCellRenderer c) => a -> b -> c -> m Bool

-- | Removes renderer from area.

-- | Deprecated: (Since version 4.10)
cellAreaRemove :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> b -> m ()

-- | Removes sibling from renderer’s focus
--   sibling list (see cellAreaAddFocusSibling).

-- | Deprecated: (Since version 4.10)
cellAreaRemoveFocusSibling :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b, IsCellRenderer c) => a -> b -> c -> m ()

-- | This is a convenience function for GtkCellArea
--   implementations to request size for cell renderers. It’s important to
--   use this function to request size and then use
--   cellAreaInnerCellArea at render and event time since this
--   function will add padding around the cell for focus painting.

-- | Deprecated: (Since version 4.10)
cellAreaRequestRenderer :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b, IsWidget c) => a -> b -> Orientation -> c -> Int32 -> m (Int32, Int32)

-- | Explicitly sets the currently focused cell to
--   renderer.
--   
--   This is generally called by implementations of
--   GtkCellAreaClass.focus() or
--   GtkCellAreaClass.event(), however it can also be used to
--   implement functions such as treeViewSetCursorOnCell.

-- | Deprecated: (Since version 4.10)
cellAreaSetFocusCell :: (HasCallStack, MonadIO m, IsCellArea a, IsCellRenderer b) => a -> Maybe b -> m ()

-- | Snapshots area’s cells according to
--   area’s layout onto at the given coordinates.

-- | Deprecated: (Since version 4.10)
cellAreaSnapshot :: (HasCallStack, MonadIO m, IsCellArea a, IsCellAreaContext b, IsWidget c, IsSnapshot d) => a -> b -> c -> d -> Rectangle -> Rectangle -> [CellRendererState] -> Bool -> m ()

-- | Explicitly stops the editing of the currently edited cell.
--   
--   If canceled is True, the currently edited cell
--   renderer will emit the editingCanceled signal, otherwise the
--   the editingDone signal will be emitted on the current edit
--   widget.
--   
--   See cellAreaGetEditedCell and cellAreaGetEditWidget.

-- | Deprecated: (Since version 4.10)
cellAreaStopEditing :: (HasCallStack, MonadIO m, IsCellArea a) => a -> Bool -> m ()

-- | Get the value of the “edit-widget” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellArea #editWidget
--   
getCellAreaEditWidget :: (MonadIO m, IsCellArea o) => o -> m (Maybe CellEditable)

-- | Get the value of the “edited-cell” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellArea #editedCell
--   
getCellAreaEditedCell :: (MonadIO m, IsCellArea o) => o -> m (Maybe CellRenderer)

-- | Set the value of the “focus-cell” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #focusCell
--   
clearCellAreaFocusCell :: (MonadIO m, IsCellArea o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “focus-cell” property. This is rarely needed directly, but it
--   is used by new.
constructCellAreaFocusCell :: (IsCellArea o, MonadIO m, IsCellRenderer a) => a -> m (GValueConstruct o)

-- | Get the value of the “focus-cell” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellArea #focusCell
--   
getCellAreaFocusCell :: (MonadIO m, IsCellArea o) => o -> m (Maybe CellRenderer)

-- | Set the value of the “focus-cell” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellArea [ #focusCell := value ]
--   
setCellAreaFocusCell :: (MonadIO m, IsCellArea o, IsCellRenderer a) => o -> a -> m ()

-- | Indicates that editing has started on renderer and
--   that editable should be added to the owning
--   cell-layouting widget at cellArea.
type CellAreaAddEditableCallback = CellRenderer -> CellEditable -> Rectangle -> Text -> IO ()

-- | Connect a signal handler for the addEditable signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellArea #addEditable callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellAreaAddEditable :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaAddEditableCallback) -> m SignalHandlerId

-- | Connect a signal handler for the addEditable signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellArea #addEditable callback
--   
onCellAreaAddEditable :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaAddEditableCallback) -> m SignalHandlerId

-- | This signal is emitted whenever applying attributes to
--   area from model
type CellAreaApplyAttributesCallback = TreeModel -> TreeIter -> Bool -> Bool -> IO ()

-- | Connect a signal handler for the applyAttributes signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after cellArea #applyAttributes callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellAreaApplyAttributes :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaApplyAttributesCallback) -> m SignalHandlerId

-- | Connect a signal handler for the applyAttributes signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on cellArea #applyAttributes callback
--   
onCellAreaApplyAttributes :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaApplyAttributesCallback) -> m SignalHandlerId

-- | Indicates that focus changed on this area. This signal
--   is emitted either as a result of focus handling or event handling.
--   
--   It's possible that the signal is emitted even if the currently focused
--   renderer did not change, this is because focus may change to the same
--   renderer in the same cell area for a different row of data.
type CellAreaFocusChangedCallback = CellRenderer -> Text -> IO ()

-- | Connect a signal handler for the focusChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellArea #focusChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellAreaFocusChanged :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaFocusChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the focusChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellArea #focusChanged callback
--   
onCellAreaFocusChanged :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaFocusChangedCallback) -> m SignalHandlerId

-- | Indicates that editing finished on renderer and that
--   editable should be removed from the owning
--   cell-layouting widget.
type CellAreaRemoveEditableCallback = CellRenderer -> CellEditable -> IO ()

-- | Connect a signal handler for the removeEditable signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after cellArea #removeEditable callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellAreaRemoveEditable :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaRemoveEditableCallback) -> m SignalHandlerId

-- | Connect a signal handler for the removeEditable signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on cellArea #removeEditable callback
--   
onCellAreaRemoveEditable :: (IsCellArea a, MonadIO m) => a -> ((?self :: a) => CellAreaRemoveEditableCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.CellArea.CellArea
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CellArea.CellArea
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CellArea.CellArea
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CellArea.CellArea o) => GI.Gtk.Objects.CellArea.IsCellArea o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CellArea.CellArea)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CellArea.CellArea
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CellArea.CellArea

-- | Invokes a callback.
module GI.Gtk.Objects.CallbackAction

-- | Memory-managed wrapper type.
newtype CallbackAction
CallbackAction :: ManagedPtr CallbackAction -> CallbackAction

-- | Type class for types which can be safely cast to
--   CallbackAction, for instance with toCallbackAction.
class (GObject o, IsDescendantOf CallbackAction o) => IsCallbackAction o

-- | Cast to CallbackAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toCallbackAction :: (MonadIO m, IsCallbackAction o) => o -> m CallbackAction

-- | Create a custom action that calls the given callback
--   when activated.
callbackActionNew :: (HasCallStack, MonadIO m) => ShortcutFunc -> m CallbackAction
instance GHC.Classes.Eq GI.Gtk.Objects.CallbackAction.CallbackAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.CallbackAction.CallbackAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CallbackAction.CallbackAction
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CallbackAction.CallbackAction o) => GI.Gtk.Objects.CallbackAction.IsCallbackAction o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.CallbackAction.CallbackAction)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CallbackAction.CallbackAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CallbackAction.CallbackAction

-- | Displays a Gregorian calendar, one month at a time.
--   
--   <picture> <source srcset="calendar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkCalendar" src="calendar.png"> </picture>
--   
--   A GtkCalendar can be created with calendarNew.
--   
--   The selected date can be retrieved from a GtkCalendar using
--   calendarGetDate. It can be altered with calendarSetDate.
--   
--   To place a visual marker on a particular day, use
--   calendarMarkDay and to remove the marker,
--   calendarUnmarkDay. Alternative, all marks can be cleared with
--   calendarClearMarks.
--   
--   Users should be aware that, although the Gregorian calendar is the
--   legal calendar in most countries, it was adopted progressively between
--   1582 and 1929. Display before these dates is likely to be historically
--   incorrect.
--   
--   
Shortcuts and Gestures
--   
--   GtkCalendar supports the following gestures:
--   
--   
--   
- Scrolling up or down will switch to the previous or next
--   month.
--   
- Date strings can be dropped for setting the current day.
--   
--   
--   
CSS nodes
--   
--   
--   calendar.view
--   ├── header
--   │   ├── button
--   │   ├── stack.month
--   │   ├── button
--   │   ├── button
--   │   ├── label.year
--   │   ╰── button
--   ╰── grid
--       ╰── label[.day-name][.week-number][.day-number][.other-month][.today]
--   
--   
--   GtkCalendar has a main node with name calendar. It contains a
--   subnode called header containing the widgets for switching between
--   years and months.
--   
--   The grid subnode contains all day labels, including week numbers on
--   the left (marked with the .week-number css class) and day names on top
--   (marked with the .day-name css class).
--   
--   Day labels that belong to the previous or next month get the
--   .other-month style class. The label of the current day get the .today
--   style class.
--   
--   Marked day labels get the :selected state assigned.
module GI.Gtk.Objects.Calendar

-- | Memory-managed wrapper type.
newtype Calendar
Calendar :: ManagedPtr Calendar -> Calendar

-- | Type class for types which can be safely cast to Calendar, for
--   instance with toCalendar.
class (GObject o, IsDescendantOf Calendar o) => IsCalendar o

-- | Cast to Calendar, for types for which this is known to be safe.
--   For general casts, use castTo.
toCalendar :: (MonadIO m, IsCalendar o) => o -> m Calendar

-- | Remove all visual markers.
calendarClearMarks :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m ()

-- | Returns a GDateTime representing the shown year, month and
--   the selected day.
--   
--   The returned date is in the local time zone.
calendarGetDate :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m DateTime

-- | Gets the day of the selected date.
--   
--   Since: 4.14
calendarGetDay :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m Int32

-- | Returns if the day of the calendar is
--   already marked.
calendarGetDayIsMarked :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Word32 -> m Bool

-- | Gets the month of the selected date.
--   
--   Since: 4.14
calendarGetMonth :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m Int32

-- | Returns whether self is currently showing the names of
--   the week days.
--   
--   This is the value of the Calendar:showDayNames property.
calendarGetShowDayNames :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m Bool

-- | Returns whether self is currently showing the heading.
--   
--   This is the value of the Calendar:showHeading property.
calendarGetShowHeading :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m Bool

-- | Returns whether self is showing week numbers right
--   now.
--   
--   This is the value of the Calendar:showWeekNumbers property.
calendarGetShowWeekNumbers :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m Bool

-- | Gets the year of the selected date.
--   
--   Since: 4.14
calendarGetYear :: (HasCallStack, MonadIO m, IsCalendar a) => a -> m Int32

-- | Places a visual marker on a particular day of the current month.
calendarMarkDay :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Word32 -> m ()

-- | Creates a new calendar, with the current date being selected.
calendarNew :: (HasCallStack, MonadIO m) => m Calendar

-- | Switches to date's year and month and select its day.

-- | Deprecated: (Since version 4.20)Use
--   [methodcalendar.set_date] instead.
calendarSelectDay :: (HasCallStack, MonadIO m, IsCalendar a) => a -> DateTime -> m ()

-- | Switches to date's year and month and selects its day.
--   
--   Since: 4.20
calendarSetDate :: (HasCallStack, MonadIO m, IsCalendar a) => a -> DateTime -> m ()

-- | Sets the day for the selected date.
--   
--   The new date must be valid. For example, setting the day to 31 when
--   the month is February will fail.
--   
--   Since: 4.14
calendarSetDay :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Int32 -> m ()

-- | Sets the month for the selected date.
--   
--   The new date must be valid. For example, setting the month to 1
--   (February) when the day is 31 will fail.
--   
--   Since: 4.14
calendarSetMonth :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Int32 -> m ()

-- | Sets whether the calendar shows day names.
calendarSetShowDayNames :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Bool -> m ()

-- | Sets whether the calendar should show a heading.
--   
--   The heading contains the current year and month as well as buttons for
--   changing both.
calendarSetShowHeading :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Bool -> m ()

-- | Sets whether week numbers are shown in the calendar.
calendarSetShowWeekNumbers :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Bool -> m ()

-- | Sets the year for the selected date.
--   
--   The new date must be valid. For example, setting the year to 2023 when
--   the date is February 29 will fail.
--   
--   Since: 4.14
calendarSetYear :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Int32 -> m ()

-- | Removes the visual marker from a particular day.
calendarUnmarkDay :: (HasCallStack, MonadIO m, IsCalendar a) => a -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “date” property. This is rarely needed directly, but it is
--   used by new.
constructCalendarDate :: (IsCalendar o, MonadIO m) => DateTime -> m (GValueConstruct o)

-- | Get the value of the “date” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get calendar #date
--   
getCalendarDate :: (MonadIO m, IsCalendar o) => o -> m (Maybe DateTime)

-- | Set the value of the “date” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set calendar [ #date := value ]
--   
setCalendarDate :: (MonadIO m, IsCalendar o) => o -> DateTime -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “day” property. This is rarely needed directly, but it is
--   used by new.
constructCalendarDay :: (IsCalendar o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “day” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get calendar #day
--   
getCalendarDay :: (MonadIO m, IsCalendar o) => o -> m Int32

-- | Set the value of the “day” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set calendar [ #day := value ]
--   
setCalendarDay :: (MonadIO m, IsCalendar o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “month” property. This is rarely needed directly, but it is
--   used by new.
constructCalendarMonth :: (IsCalendar o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “month” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get calendar #month
--   
getCalendarMonth :: (MonadIO m, IsCalendar o) => o -> m Int32

-- | Set the value of the “month” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set calendar [ #month := value ]
--   
setCalendarMonth :: (MonadIO m, IsCalendar o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-day-names” property. This is rarely needed directly,
--   but it is used by new.
constructCalendarShowDayNames :: (IsCalendar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-day-names” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get calendar #showDayNames
--   
getCalendarShowDayNames :: (MonadIO m, IsCalendar o) => o -> m Bool

-- | Set the value of the “show-day-names” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set calendar [ #showDayNames := value ]
--   
setCalendarShowDayNames :: (MonadIO m, IsCalendar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-heading” property. This is rarely needed directly, but
--   it is used by new.
constructCalendarShowHeading :: (IsCalendar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-heading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get calendar #showHeading
--   
getCalendarShowHeading :: (MonadIO m, IsCalendar o) => o -> m Bool

-- | Set the value of the “show-heading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set calendar [ #showHeading := value ]
--   
setCalendarShowHeading :: (MonadIO m, IsCalendar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-week-numbers” property. This is rarely needed directly,
--   but it is used by new.
constructCalendarShowWeekNumbers :: (IsCalendar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-week-numbers” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get calendar #showWeekNumbers
--   
getCalendarShowWeekNumbers :: (MonadIO m, IsCalendar o) => o -> m Bool

-- | Set the value of the “show-week-numbers” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set calendar [ #showWeekNumbers := value ]
--   
setCalendarShowWeekNumbers :: (MonadIO m, IsCalendar o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “year” property. This is rarely needed directly, but it is
--   used by new.
constructCalendarYear :: (IsCalendar o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “year” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get calendar #year
--   
getCalendarYear :: (MonadIO m, IsCalendar o) => o -> m Int32

-- | Set the value of the “year” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set calendar [ #year := value ]
--   
setCalendarYear :: (MonadIO m, IsCalendar o) => o -> Int32 -> m ()

-- | Emitted when the user selects a day.
type CalendarDaySelectedCallback = IO ()

-- | Connect a signal handler for the daySelected signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after calendar #daySelected callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCalendarDaySelected :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarDaySelectedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the daySelected signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on calendar #daySelected callback
--   
onCalendarDaySelected :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarDaySelectedCallback) -> m SignalHandlerId

-- | Emitted when the user switches to the next month.
type CalendarNextMonthCallback = IO ()

-- | Connect a signal handler for the nextMonth signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after calendar #nextMonth callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCalendarNextMonth :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarNextMonthCallback) -> m SignalHandlerId

-- | Connect a signal handler for the nextMonth signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on calendar #nextMonth callback
--   
onCalendarNextMonth :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarNextMonthCallback) -> m SignalHandlerId

-- | Emitted when user switches to the next year.
type CalendarNextYearCallback = IO ()

-- | Connect a signal handler for the nextYear signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after calendar #nextYear callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCalendarNextYear :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarNextYearCallback) -> m SignalHandlerId

-- | Connect a signal handler for the nextYear signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on calendar #nextYear callback
--   
onCalendarNextYear :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarNextYearCallback) -> m SignalHandlerId

-- | Emitted when the user switches to the previous month.
type CalendarPrevMonthCallback = IO ()

-- | Connect a signal handler for the prevMonth signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after calendar #prevMonth callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCalendarPrevMonth :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarPrevMonthCallback) -> m SignalHandlerId

-- | Connect a signal handler for the prevMonth signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on calendar #prevMonth callback
--   
onCalendarPrevMonth :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarPrevMonthCallback) -> m SignalHandlerId

-- | Emitted when user switches to the previous year.
type CalendarPrevYearCallback = IO ()

-- | Connect a signal handler for the prevYear signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after calendar #prevYear callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCalendarPrevYear :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarPrevYearCallback) -> m SignalHandlerId

-- | Connect a signal handler for the prevYear signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on calendar #prevYear callback
--   
onCalendarPrevYear :: (IsCalendar a, MonadIO m) => a -> ((?self :: a) => CalendarPrevYearCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Calendar.Calendar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Calendar.Calendar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Calendar.Calendar
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Calendar.Calendar o) => GI.Gtk.Objects.Calendar.IsCalendar o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Calendar.Calendar)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Calendar.Calendar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Calendar.Calendar

-- | A variant of GtkClosureExpression using a C closure.
module GI.Gtk.Objects.CClosureExpression

-- | Memory-managed wrapper type.
newtype CClosureExpression
CClosureExpression :: ManagedPtr CClosureExpression -> CClosureExpression

-- | Type class for types which can be safely cast to
--   CClosureExpression, for instance with
--   toCClosureExpression.
class (BoxedPtr o, TypedObject o, IsDescendantOf CClosureExpression o) => IsCClosureExpression o

-- | Cast to CClosureExpression, for types for which this is known
--   to be safe. For general casts, use castTo.
toCClosureExpression :: (MonadIO m, IsCClosureExpression o) => o -> m CClosureExpression

-- | Creates a GtkExpression that calls callback_func
--   when it is evaluated.
--   
--   This function is a variant of closureExpressionNew that creates
--   a GClosure by calling g_cclosure_new() with
--   the given callback_func, user_data and
--   user_destroy.
cClosureExpressionNew :: (HasCallStack, MonadIO m) => GType -> Maybe ClosureMarshal -> [Expression] -> Callback -> m CClosureExpression
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Objects.CClosureExpression.CClosureExpression
instance GHC.Classes.Eq GI.Gtk.Objects.CClosureExpression.CClosureExpression
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.CClosureExpression.CClosureExpression
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.CClosureExpression.CClosureExpression o) => GI.Gtk.Objects.CClosureExpression.IsCClosureExpression o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.CClosureExpression.CClosureExpression
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.CClosureExpression.CClosureExpression

-- | Calls a callback function when the button is clicked.
--   
--   <picture> <source srcset="button-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkButton" src="button.png"> </picture>
--   
--   The GtkButton widget can hold any valid child widget. That
--   is, it can hold almost any other standard GtkWidget. The most
--   commonly used child is the GtkLabel.
--   
--   
Shortcuts and Gestures
--   
--   The following signals have default keybindings:
--   
--   
--   
- Button::activate
--   
--   
--   
CSS nodes
--   
--   GtkButton has a single CSS node with name button. The node
--   will get the style classes .image-button or .text-button, if the
--   content is just an image or label, respectively. It may also receive
--   the .flat style class. When activating a button via the keyboard, the
--   button will temporarily gain the .keyboard-activating style class.
--   
--   Other style classes that are commonly used with GtkButton
--   include .suggested-action and .destructive-action. In special cases,
--   buttons can be made round by adding the .circular style class.
--   
--   Button-like widgets like ToggleButton, MenuButton,
--   VolumeButton, LockButton, ColorButton or
--   FontButton use style classes such as .toggle, .popup, .scale,
--   .lock, .color on the button node to differentiate themselves from a
--   plain GtkButton.
--   
--   
Accessibility
--   
--   GtkButton uses the AccessibleRoleButton role.
module GI.Gtk.Objects.Button

-- | Memory-managed wrapper type.
newtype Button
Button :: ManagedPtr Button -> Button

-- | Type class for types which can be safely cast to Button, for
--   instance with toButton.
class (GObject o, IsDescendantOf Button o) => IsButton o

-- | Cast to Button, for types for which this is known to be safe.
--   For general casts, use castTo.
toButton :: (MonadIO m, IsButton o) => o -> m Button

-- | Retrieves whether the button can be smaller than the natural size of
--   its contents.
--   
--   Since: 4.12
buttonGetCanShrink :: (HasCallStack, MonadIO m, IsButton a) => a -> m Bool

-- | Gets the child widget of button.
buttonGetChild :: (HasCallStack, MonadIO m, IsButton a) => a -> m (Maybe Widget)

-- | Returns whether the button has a frame.
buttonGetHasFrame :: (HasCallStack, MonadIO m, IsButton a) => a -> m Bool

-- | Returns the icon name of the button.
--   
--   If the icon name has not been set with buttonSetIconName the
--   return value will be Nothing. This will be the case if you
--   create an empty button with buttonNew to use as a container.
buttonGetIconName :: (HasCallStack, MonadIO m, IsButton a) => a -> m (Maybe Text)

-- | Fetches the text from the label of the button.
--   
--   If the label text has not been set with buttonSetLabel the
--   return value will be Nothing. This will be the case if you
--   create an empty button with buttonNew to use as a container.
buttonGetLabel :: (HasCallStack, MonadIO m, IsButton a) => a -> m (Maybe Text)

-- | gets whether underlines are interpreted as mnemonics.
--   
--   See buttonSetUseUnderline.
buttonGetUseUnderline :: (HasCallStack, MonadIO m, IsButton a) => a -> m Bool

-- | Creates a new GtkButton widget.
--   
--   To add a child widget to the button, use buttonSetChild.
buttonNew :: (HasCallStack, MonadIO m) => m Button

-- | Creates a new button containing an icon from the current icon theme.
--   
--   If the icon name isn’t known, a “broken image” icon will be displayed
--   instead. If the current icon theme is changed, the icon will be
--   updated appropriately.
buttonNewFromIconName :: (HasCallStack, MonadIO m) => Text -> m Button

-- | Creates a GtkButton widget with a GtkLabel child.
buttonNewWithLabel :: (HasCallStack, MonadIO m) => Text -> m Button

-- | Creates a new GtkButton containing a label.
--   
--   If characters in label are preceded by an underscore,
--   they are underlined. If you need a literal underscore character in a
--   label, use “__” (two underscores). The first underlined character
--   represents a keyboard accelerator called a mnemonic. Pressing
--   <kbd>Alt</kbd> and that key activates the button.
buttonNewWithMnemonic :: (HasCallStack, MonadIO m) => Text -> m Button

-- | Sets whether the button size can be smaller than the natural size of
--   its contents.
--   
--   For text buttons, setting canShrink to true will
--   ellipsize the label.
--   
--   For icons and custom children, this function has no effect.
--   
--   Since: 4.12
buttonSetCanShrink :: (HasCallStack, MonadIO m, IsButton a) => a -> Bool -> m ()

-- | Sets the child widget of button.
--   
--   Note that by using this API, you take full responsibility for setting
--   up the proper accessibility label and description information for
--   button. Most likely, you'll either set the
--   accessibility label or description for button
--   explicitly, or you'll set a labelled-by or described-by relations from
--   child to button.
buttonSetChild :: (HasCallStack, MonadIO m, IsButton a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets the style of the button.
--   
--   Buttons can have a flat appearance or have a frame drawn around them.
buttonSetHasFrame :: (HasCallStack, MonadIO m, IsButton a) => a -> Bool -> m ()

-- | Adds a GtkImage with the given icon name as a child.
--   
--   If button already contains a child widget, that child
--   widget will be removed and replaced with the image.
buttonSetIconName :: (HasCallStack, MonadIO m, IsButton a) => a -> Text -> m ()

-- | Sets the text of the label of the button to label.
--   
--   This will also clear any previously set labels.
buttonSetLabel :: (HasCallStack, MonadIO m, IsButton a) => a -> Text -> m ()

-- | Sets whether to use underlines as mnemonics.
--   
--   If true, an underline in the text of the button label indicates the
--   next character should be used for the mnemonic accelerator key.
buttonSetUseUnderline :: (HasCallStack, MonadIO m, IsButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “can-shrink” property. This is rarely needed directly, but it
--   is used by new.
constructButtonCanShrink :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “can-shrink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get button #canShrink
--   
getButtonCanShrink :: (MonadIO m, IsButton o) => o -> m Bool

-- | Set the value of the “can-shrink” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set button [ #canShrink := value ]
--   
setButtonCanShrink :: (MonadIO m, IsButton o) => o -> Bool -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearButtonChild :: (MonadIO m, IsButton o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructButtonChild :: (IsButton o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get button #child
--   
getButtonChild :: (MonadIO m, IsButton o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set button [ #child := value ]
--   
setButtonChild :: (MonadIO m, IsButton o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “has-frame” property. This is rarely needed directly, but it
--   is used by new.
constructButtonHasFrame :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get button #hasFrame
--   
getButtonHasFrame :: (MonadIO m, IsButton o) => o -> m Bool

-- | Set the value of the “has-frame” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set button [ #hasFrame := value ]
--   
setButtonHasFrame :: (MonadIO m, IsButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “icon-name” property. This is rarely needed directly, but it
--   is used by new.
constructButtonIconName :: (IsButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get button #iconName
--   
getButtonIconName :: (MonadIO m, IsButton o) => o -> m (Maybe Text)

-- | Set the value of the “icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set button [ #iconName := value ]
--   
setButtonIconName :: (MonadIO m, IsButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “label” property. This is rarely needed directly, but it is
--   used by new.
constructButtonLabel :: (IsButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get button #label
--   
getButtonLabel :: (MonadIO m, IsButton o) => o -> m (Maybe Text)

-- | Set the value of the “label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set button [ #label := value ]
--   
setButtonLabel :: (MonadIO m, IsButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “use-underline” property. This is rarely needed directly, but
--   it is used by new.
constructButtonUseUnderline :: (IsButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get button #useUnderline
--   
getButtonUseUnderline :: (MonadIO m, IsButton o) => o -> m Bool

-- | Set the value of the “use-underline” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set button [ #useUnderline := value ]
--   
setButtonUseUnderline :: (MonadIO m, IsButton o) => o -> Bool -> m ()

-- | Emitted to animate press then release.
--   
--   This is an action signal. Applications should never connect to this
--   signal, but use the Button::clicked signal.
--   
--   The default bindings for this signal are all forms of the
--   <kbd>␣</kbd> and <kbd>Enter</kbd> keys.
type ButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after button #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterButtonActivate :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on button #activate callback
--   
onButtonActivate :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonActivateCallback) -> m SignalHandlerId

-- | Emitted when the button has been activated (pressed and released).
type ButtonClickedCallback = IO ()

-- | Connect a signal handler for the clicked signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after button #clicked callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterButtonClicked :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonClickedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the clicked signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on button #clicked callback
--   
onButtonClicked :: (IsButton a, MonadIO m) => a -> ((?self :: a) => ButtonClickedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Button.Button
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Button.Button
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Button.Button
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Button.Button o) => GI.Gtk.Objects.Button.IsButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Button.Button)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Button.Button
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Button.Button

-- | Arranges children in a single row or column.
--   
--   Whether it is a row or column depends on the value of its
--   Orientable:orientation property. Within the other dimension all
--   children all allocated the same size. The GtkBoxLayout will
--   respect the Widget:halign and Widget:valign properties
--   of each child widget.
--   
--   If you want all children to be assigned the same size, you can use the
--   BoxLayout:homogeneous property.
--   
--   If you want to specify the amount of space placed between each child,
--   you can use the BoxLayout:spacing property.
module GI.Gtk.Objects.BoxLayout

-- | Memory-managed wrapper type.
newtype BoxLayout
BoxLayout :: ManagedPtr BoxLayout -> BoxLayout

-- | Type class for types which can be safely cast to BoxLayout, for
--   instance with toBoxLayout.
class (GObject o, IsDescendantOf BoxLayout o) => IsBoxLayout o

-- | Cast to BoxLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toBoxLayout :: (MonadIO m, IsBoxLayout o) => o -> m BoxLayout

-- | Gets the value set by boxLayoutSetBaselineChild.
--   
--   Since: 4.12
boxLayoutGetBaselineChild :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> m Int32

-- | Gets the value set by boxLayoutSetBaselinePosition.
boxLayoutGetBaselinePosition :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> m BaselinePosition

-- | Returns whether the layout is set to be homogeneous.
boxLayoutGetHomogeneous :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> m Bool

-- | Returns the space that boxLayout puts between
--   children.
boxLayoutGetSpacing :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> m Word32

-- | Creates a new GtkBoxLayout.
boxLayoutNew :: (HasCallStack, MonadIO m) => Orientation -> m BoxLayout

-- | Sets the index of the child that determines the baseline in vertical
--   layout.
--   
--   Since: 4.12
boxLayoutSetBaselineChild :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> Int32 -> m ()

-- | Sets the baseline position of a box layout.
--   
--   The baseline position affects only horizontal boxes with at least one
--   baseline aligned child. If there is more vertical space available than
--   requested, and the baseline is not allocated by the parent then the
--   given position is used to allocate the baseline within
--   the extra space available.
boxLayoutSetBaselinePosition :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> BaselinePosition -> m ()

-- | Sets whether the box layout will allocate the same size to all
--   children.
boxLayoutSetHomogeneous :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> Bool -> m ()

-- | Sets how much spacing to put between children.
boxLayoutSetSpacing :: (HasCallStack, MonadIO m, IsBoxLayout a) => a -> Word32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-child” property. This is rarely needed directly,
--   but it is used by new.
constructBoxLayoutBaselineChild :: (IsBoxLayout o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “baseline-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get boxLayout #baselineChild
--   
getBoxLayoutBaselineChild :: (MonadIO m, IsBoxLayout o) => o -> m Int32

-- | Set the value of the “baseline-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set boxLayout [ #baselineChild := value ]
--   
setBoxLayoutBaselineChild :: (MonadIO m, IsBoxLayout o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-position” property. This is rarely needed directly,
--   but it is used by new.
constructBoxLayoutBaselinePosition :: (IsBoxLayout o, MonadIO m) => BaselinePosition -> m (GValueConstruct o)

-- | Get the value of the “baseline-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get boxLayout #baselinePosition
--   
getBoxLayoutBaselinePosition :: (MonadIO m, IsBoxLayout o) => o -> m BaselinePosition

-- | Set the value of the “baseline-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set boxLayout [ #baselinePosition := value ]
--   
setBoxLayoutBaselinePosition :: (MonadIO m, IsBoxLayout o) => o -> BaselinePosition -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “homogeneous” property. This is rarely needed directly, but
--   it is used by new.
constructBoxLayoutHomogeneous :: (IsBoxLayout o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get boxLayout #homogeneous
--   
getBoxLayoutHomogeneous :: (MonadIO m, IsBoxLayout o) => o -> m Bool

-- | Set the value of the “homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set boxLayout [ #homogeneous := value ]
--   
setBoxLayoutHomogeneous :: (MonadIO m, IsBoxLayout o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “spacing” property. This is rarely needed directly, but it is
--   used by new.
constructBoxLayoutSpacing :: (IsBoxLayout o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get boxLayout #spacing
--   
getBoxLayoutSpacing :: (MonadIO m, IsBoxLayout o) => o -> m Int32

-- | Set the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set boxLayout [ #spacing := value ]
--   
setBoxLayoutSpacing :: (MonadIO m, IsBoxLayout o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.BoxLayout.BoxLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.BoxLayout.BoxLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.BoxLayout.BoxLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.BoxLayout.BoxLayout o) => GI.Gtk.Objects.BoxLayout.IsBoxLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.BoxLayout.BoxLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.BoxLayout.BoxLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.BoxLayout.BoxLayout

-- | Arranges child widgets into a single row or column.
--   
--   <picture> <source srcset="box-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkBox" src="box.png"> </picture>
--   
--   Whether it is a row or column depends on the value of its
--   Orientable:orientation property. Within the other dimension,
--   all children are allocated the same size. The Widget:halign and
--   Widget:valign properties can be used on the children to
--   influence their allocation.
--   
--   Use repeated calls to boxAppend to pack widgets into a
--   GtkBox from start to end. Use boxRemove to remove
--   widgets from the GtkBox. boxInsertChildAfter can be
--   used to add a child at a particular position.
--   
--   Use boxSetHomogeneous to specify whether or not all children of
--   the GtkBox are forced to get the same amount of space.
--   
--   Use boxSetSpacing to determine how much space will be minimally
--   placed between all children in the GtkBox. Note that spacing
--   is added *between* the children.
--   
--   Use boxReorderChildAfter to move a child to a different place
--   in the box.
--   
--   
CSS nodes
--   
--   GtkBox uses a single CSS node with name box.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkBox used the AccessibleRoleGroup
--   role.
--   
--   Starting from GTK 4.12, GtkBox uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.Box

-- | Memory-managed wrapper type.
newtype Box
Box :: ManagedPtr Box -> Box

-- | Type class for types which can be safely cast to Box, for
--   instance with toBox.
class (GObject o, IsDescendantOf Box o) => IsBox o

-- | Cast to Box, for types for which this is known to be safe. For
--   general casts, use castTo.
toBox :: (MonadIO m, IsBox o) => o -> m Box

-- | Adds a child at the end.
boxAppend :: (HasCallStack, MonadIO m, IsBox a, IsWidget b) => a -> b -> m ()

-- | Gets the value set by boxSetBaselineChild.
--   
--   Since: 4.12
boxGetBaselineChild :: (HasCallStack, MonadIO m, IsBox a) => a -> m Int32

-- | Gets the value set by boxSetBaselinePosition.
boxGetBaselinePosition :: (HasCallStack, MonadIO m, IsBox a) => a -> m BaselinePosition

-- | Returns whether the box is homogeneous.
--   
--   In a homogeneous box all children are the same size.
boxGetHomogeneous :: (HasCallStack, MonadIO m, IsBox a) => a -> m Bool

-- | Gets the value set by boxSetSpacing.
boxGetSpacing :: (HasCallStack, MonadIO m, IsBox a) => a -> m Int32

-- | Inserts a child at a specific position.
--   
--   The child is added after sibling in the list of
--   box children.
--   
--   If sibling is NULL, the child
--   is placed at the beginning.
boxInsertChildAfter :: (HasCallStack, MonadIO m, IsBox a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m ()

-- | Creates a new box.
boxNew :: (HasCallStack, MonadIO m) => Orientation -> Int32 -> m Box

-- | Adds a child at the beginning.
boxPrepend :: (HasCallStack, MonadIO m, IsBox a, IsWidget b) => a -> b -> m ()

-- | Removes a child widget from the box.
--   
--   The child must have been added before with boxAppend,
--   boxPrepend, or boxInsertChildAfter.
boxRemove :: (HasCallStack, MonadIO m, IsBox a, IsWidget b) => a -> b -> m ()

-- | Moves a child to a different position.
--   
--   The child is moved to the position after sibling in
--   the list of box children.
--   
--   If sibling is NULL, the child is placed at
--   the beginning.
boxReorderChildAfter :: (HasCallStack, MonadIO m, IsBox a, IsWidget b, IsWidget c) => a -> b -> Maybe c -> m ()

-- | Sets the baseline child of a box.
--   
--   This affects only vertical boxes.
--   
--   Since: 4.12
boxSetBaselineChild :: (HasCallStack, MonadIO m, IsBox a) => a -> Int32 -> m ()

-- | Sets the baseline position of a box.
--   
--   This affects only horizontal boxes with at least one baseline aligned
--   child. If there is more vertical space available than requested, and
--   the baseline is not allocated by the parent then
--   position is used to allocate the baseline with respect
--   to the extra space available.
boxSetBaselinePosition :: (HasCallStack, MonadIO m, IsBox a) => a -> BaselinePosition -> m ()

-- | Sets whether or not all children are given equal space in the box.
boxSetHomogeneous :: (HasCallStack, MonadIO m, IsBox a) => a -> Bool -> m ()

-- | Sets the number of pixels to place between children.
boxSetSpacing :: (HasCallStack, MonadIO m, IsBox a) => a -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-child” property. This is rarely needed directly,
--   but it is used by new.
constructBoxBaselineChild :: (IsBox o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “baseline-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get box #baselineChild
--   
getBoxBaselineChild :: (MonadIO m, IsBox o) => o -> m Int32

-- | Set the value of the “baseline-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set box [ #baselineChild := value ]
--   
setBoxBaselineChild :: (MonadIO m, IsBox o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “baseline-position” property. This is rarely needed directly,
--   but it is used by new.
constructBoxBaselinePosition :: (IsBox o, MonadIO m) => BaselinePosition -> m (GValueConstruct o)

-- | Get the value of the “baseline-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get box #baselinePosition
--   
getBoxBaselinePosition :: (MonadIO m, IsBox o) => o -> m BaselinePosition

-- | Set the value of the “baseline-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set box [ #baselinePosition := value ]
--   
setBoxBaselinePosition :: (MonadIO m, IsBox o) => o -> BaselinePosition -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “homogeneous” property. This is rarely needed directly, but
--   it is used by new.
constructBoxHomogeneous :: (IsBox o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get box #homogeneous
--   
getBoxHomogeneous :: (MonadIO m, IsBox o) => o -> m Bool

-- | Set the value of the “homogeneous” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set box [ #homogeneous := value ]
--   
setBoxHomogeneous :: (MonadIO m, IsBox o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “spacing” property. This is rarely needed directly, but it is
--   used by new.
constructBoxSpacing :: (IsBox o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get box #spacing
--   
getBoxSpacing :: (MonadIO m, IsBox o) => o -> m Int32

-- | Set the value of the “spacing” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set box [ #spacing := value ]
--   
setBoxSpacing :: (MonadIO m, IsBox o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.Box.Box
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Box.Box
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Box.Box
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Box.Box o) => GI.Gtk.Objects.Box.IsBox o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Box.Box)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Box.Box
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Box.Box

-- | Evaluates a boolean expression to determine whether to include items.
module GI.Gtk.Objects.BoolFilter

-- | Memory-managed wrapper type.
newtype BoolFilter
BoolFilter :: ManagedPtr BoolFilter -> BoolFilter

-- | Type class for types which can be safely cast to BoolFilter,
--   for instance with toBoolFilter.
class (GObject o, IsDescendantOf BoolFilter o) => IsBoolFilter o

-- | Cast to BoolFilter, for types for which this is known to be
--   safe. For general casts, use castTo.
toBoolFilter :: (MonadIO m, IsBoolFilter o) => o -> m BoolFilter

-- | Gets the expression that the filter evaluates for each item.
boolFilterGetExpression :: (HasCallStack, MonadIO m, IsBoolFilter a) => a -> m (Maybe Expression)

-- | Returns whether the filter inverts the expression.
boolFilterGetInvert :: (HasCallStack, MonadIO m, IsBoolFilter a) => a -> m Bool

-- | Creates a new bool filter.
boolFilterNew :: (HasCallStack, MonadIO m, IsExpression a) => Maybe a -> m BoolFilter

-- | Sets the expression that the filter uses to check if items should be
--   filtered.
--   
--   The expression must have a value type of G_TYPE_BOOLEAN.
boolFilterSetExpression :: (HasCallStack, MonadIO m, IsBoolFilter a, IsExpression b) => a -> Maybe b -> m ()

-- | Sets whether the filter should invert the expression.
boolFilterSetInvert :: (HasCallStack, MonadIO m, IsBoolFilter a) => a -> Bool -> m ()

-- | Set the value of the “expression” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #expression
--   
clearBoolFilterExpression :: (MonadIO m, IsBoolFilter o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “expression” property. This is rarely needed directly, but it
--   is used by new.
constructBoolFilterExpression :: (IsBoolFilter o, MonadIO m, IsExpression a) => a -> m (GValueConstruct o)

-- | Get the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get boolFilter #expression
--   
getBoolFilterExpression :: (MonadIO m, IsBoolFilter o) => o -> m (Maybe Expression)

-- | Set the value of the “expression” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set boolFilter [ #expression := value ]
--   
setBoolFilterExpression :: (MonadIO m, IsBoolFilter o, IsExpression a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “invert” property. This is rarely needed directly, but it is
--   used by new.
constructBoolFilterInvert :: (IsBoolFilter o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “invert” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get boolFilter #invert
--   
getBoolFilterInvert :: (MonadIO m, IsBoolFilter o) => o -> m Bool

-- | Set the value of the “invert” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set boolFilter [ #invert := value ]
--   
setBoolFilterInvert :: (MonadIO m, IsBoolFilter o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.BoolFilter.BoolFilter
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.BoolFilter.BoolFilter
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.BoolFilter.BoolFilter
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.BoolFilter.BoolFilter o) => GI.Gtk.Objects.BoolFilter.IsBoolFilter o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.BoolFilter.BoolFilter)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.BoolFilter.BoolFilter
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.BoolFilter.BoolFilter

-- | A layout manager for widgets with a single child.
--   
--   GtkBinLayout will stack each child of a widget on top of each
--   other, using the Widget:hexpand, Widget:vexpand,
--   Widget:halign, and Widget:valign properties of each
--   child to determine where they should be positioned.
module GI.Gtk.Objects.BinLayout

-- | Memory-managed wrapper type.
newtype BinLayout
BinLayout :: ManagedPtr BinLayout -> BinLayout

-- | Type class for types which can be safely cast to BinLayout, for
--   instance with toBinLayout.
class (GObject o, IsDescendantOf BinLayout o) => IsBinLayout o

-- | Cast to BinLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toBinLayout :: (MonadIO m, IsBinLayout o) => o -> m BinLayout

-- | Creates a new GtkBinLayout instance.
binLayoutNew :: (HasCallStack, MonadIO m) => m BinLayout
instance GHC.Classes.Eq GI.Gtk.Objects.BinLayout.BinLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.BinLayout.BinLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.BinLayout.BinLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.BinLayout.BinLayout o) => GI.Gtk.Objects.BinLayout.IsBinLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.BinLayout.BinLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.BinLayout.BinLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.BinLayout.BinLayout

-- | GtkAssistantPage is an auxiliary object used by
--   GtkAssistant.
module GI.Gtk.Objects.AssistantPage

-- | Memory-managed wrapper type.
newtype AssistantPage
AssistantPage :: ManagedPtr AssistantPage -> AssistantPage

-- | Type class for types which can be safely cast to AssistantPage,
--   for instance with toAssistantPage.
class (GObject o, IsDescendantOf AssistantPage o) => IsAssistantPage o

-- | Cast to AssistantPage, for types for which this is known to be
--   safe. For general casts, use castTo.
toAssistantPage :: (MonadIO m, IsAssistantPage o) => o -> m AssistantPage

-- | Returns the child to which page belongs.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantPageGetChild :: (HasCallStack, MonadIO m, IsAssistantPage a) => a -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructAssistantPageChild :: (IsAssistantPage o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get assistantPage #child
--   
getAssistantPageChild :: (MonadIO m, IsAssistantPage o) => o -> m Widget

-- | Construct a GValueConstruct with valid value for the
--   “complete” property. This is rarely needed directly, but it
--   is used by new.
constructAssistantPageComplete :: (IsAssistantPage o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “complete” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get assistantPage #complete
--   
getAssistantPageComplete :: (MonadIO m, IsAssistantPage o) => o -> m Bool

-- | Set the value of the “complete” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set assistantPage [ #complete := value ]
--   
setAssistantPageComplete :: (MonadIO m, IsAssistantPage o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “page-type” property. This is rarely needed directly, but it
--   is used by new.
constructAssistantPagePageType :: (IsAssistantPage o, MonadIO m) => AssistantPageType -> m (GValueConstruct o)

-- | Get the value of the “page-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get assistantPage #pageType
--   
getAssistantPagePageType :: (MonadIO m, IsAssistantPage o) => o -> m AssistantPageType

-- | Set the value of the “page-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set assistantPage [ #pageType := value ]
--   
setAssistantPagePageType :: (MonadIO m, IsAssistantPage o) => o -> AssistantPageType -> m ()

-- | Set the value of the “title” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #title
--   
clearAssistantPageTitle :: (MonadIO m, IsAssistantPage o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “title” property. This is rarely needed directly, but it is
--   used by new.
constructAssistantPageTitle :: (IsAssistantPage o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get assistantPage #title
--   
getAssistantPageTitle :: (MonadIO m, IsAssistantPage o) => o -> m (Maybe Text)

-- | Set the value of the “title” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set assistantPage [ #title := value ]
--   
setAssistantPageTitle :: (MonadIO m, IsAssistantPage o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.AssistantPage.AssistantPage
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AssistantPage.AssistantPage
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AssistantPage.AssistantPage
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AssistantPage.AssistantPage o) => GI.Gtk.Objects.AssistantPage.IsAssistantPage o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AssistantPage.AssistantPage)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AssistantPage.AssistantPage
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AssistantPage.AssistantPage

-- | GtkAssistant is used to represent a complex as a series of
--   steps.
--   
--   <picture> <source srcset="assistant-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkAssistant" src="assistant.png"> </picture>
--   
--   Each step consists of one or more pages. GtkAssistant guides
--   the user through the pages, and controls the page flow to collect the
--   data needed for the operation.
--   
--   GtkAssistant handles which buttons to show and to make
--   sensitive based on page sequence knowledge and the
--   AssistantPageType of each page in addition to state information
--   like the *completed* and *committed* page statuses.
--   
--   If you have a case that doesn’t quite fit in GtkAssistants
--   way of handling buttons, you can use the
--   AssistantPageTypeCustom page type and handle buttons yourself.
--   
--   GtkAssistant maintains a GtkAssistantPage object for
--   each added child, which holds additional per-child properties. You
--   obtain the GtkAssistantPage for a child with
--   assistantGetPage.
--   
--   
GtkAssistant as GtkBuildable
--   
--   The GtkAssistant implementation of the GtkBuildable
--   interface exposes the actionArea as internal children
--   with the name “action_area”.
--   
--   To add pages to an assistant in GtkBuilder, simply add it as
--   a child to the GtkAssistant object. If you need to set
--   per-object properties, create a GtkAssistantPage object
--   explicitly, and set the child widget as a property on it.
--   
--   
CSS nodes
--   
--   GtkAssistant has a single CSS node with the name window and
--   style class .assistant.
module GI.Gtk.Objects.Assistant

-- | Memory-managed wrapper type.
newtype Assistant
Assistant :: ManagedPtr Assistant -> Assistant

-- | Type class for types which can be safely cast to Assistant, for
--   instance with toAssistant.
class (GObject o, IsDescendantOf Assistant o) => IsAssistant o

-- | Cast to Assistant, for types for which this is known to be
--   safe. For general casts, use castTo.
toAssistant :: (MonadIO m, IsAssistant o) => o -> m Assistant

-- | Adds a widget to the action area of a GtkAssistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantAddActionWidget :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m ()

-- | Appends a page to the assistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantAppendPage :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m Int32

-- | Erases the visited page history.
--   
--   GTK will then hide the back button on the current page, and removes
--   the cancel button from subsequent pages.
--   
--   Use this when the information provided up to the current page is
--   hereafter deemed permanent and cannot be modified or undone. For
--   example, showing a progress page to track a long-running, unreversible
--   operation after the user has clicked apply on a confirmation page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantCommit :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m ()

-- | Returns the page number of the current page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetCurrentPage :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m Int32

-- | Returns the number of pages in the assistant

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetNPages :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m Int32

-- | Returns the child widget contained in page number
--   pageNum.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetNthPage :: (HasCallStack, MonadIO m, IsAssistant a) => a -> Int32 -> m (Maybe Widget)

-- | Returns the GtkAssistantPage object for
--   child.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetPage :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m AssistantPage

-- | Gets whether page is complete.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetPageComplete :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m Bool

-- | Gets the title for page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetPageTitle :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m Text

-- | Gets the page type of page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetPageType :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m AssistantPageType

-- | Gets a list model of the assistant pages.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantGetPages :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m ListModel

-- | Inserts a page in the assistant at a given position.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantInsertPage :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> Int32 -> m Int32

-- | Creates a new GtkAssistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantNew :: (HasCallStack, MonadIO m) => m Assistant

-- | Navigate to the next page.
--   
--   It is a programming error to call this function when there is no next
--   page.
--   
--   This function is for use when creating pages of the
--   AssistantPageTypeCustom type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantNextPage :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m ()

-- | Prepends a page to the assistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantPrependPage :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m Int32

-- | Navigate to the previous visited page.
--   
--   It is a programming error to call this function when no previous page
--   is available.
--   
--   This function is for use when creating pages of the
--   AssistantPageTypeCustom type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantPreviousPage :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m ()

-- | Removes a widget from the action area of a GtkAssistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantRemoveActionWidget :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> m ()

-- | Removes the pageNum’s page from
--   assistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantRemovePage :: (HasCallStack, MonadIO m, IsAssistant a) => a -> Int32 -> m ()

-- | Switches the page to pageNum.
--   
--   Note that this will only be necessary in custom buttons, as the
--   assistant flow can be set with
--   assistantSetForwardPageFunc.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantSetCurrentPage :: (HasCallStack, MonadIO m, IsAssistant a) => a -> Int32 -> m ()

-- | Sets the page forwarding function to be pageFunc.
--   
--   This function will be used to determine what will be the next page
--   when the user presses the forward button. Setting
--   pageFunc to Nothing will make the assistant to
--   use the default forward function, which just goes to the next visible
--   page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantSetForwardPageFunc :: (HasCallStack, MonadIO m, IsAssistant a) => a -> Maybe AssistantPageFunc -> m ()

-- | Sets whether page contents are complete.
--   
--   This will make assistant update the buttons state to
--   be able to continue the task.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantSetPageComplete :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> Bool -> m ()

-- | Sets a title for page.
--   
--   The title is displayed in the header area of the assistant when
--   page is the current page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantSetPageTitle :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> Text -> m ()

-- | Sets the page type for page.
--   
--   The page type determines the page behavior in the
--   assistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantSetPageType :: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) => a -> b -> AssistantPageType -> m ()

-- | Forces assistant to recompute the buttons state.
--   
--   GTK automatically takes care of this in most situations, e.g. when the
--   user goes to a different page, or when the visibility or completeness
--   of a page changes.
--   
--   One situation where it can be necessary to call this function is when
--   changing a value on the current page affects the future page flow of
--   the assistant.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
assistantUpdateButtonsState :: (HasCallStack, MonadIO m, IsAssistant a) => a -> m ()

-- | Get the value of the “pages” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get assistant #pages
--   
getAssistantPages :: (MonadIO m, IsAssistant o) => o -> m (Maybe ListModel)

-- | Construct a GValueConstruct with valid value for the
--   “use-header-bar” property. This is rarely needed directly,
--   but it is used by new.
constructAssistantUseHeaderBar :: (IsAssistant o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “use-header-bar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get assistant #useHeaderBar
--   
getAssistantUseHeaderBar :: (MonadIO m, IsAssistant o) => o -> m Int32

-- | Emitted when the apply button is clicked.
--   
--   The default behavior of the GtkAssistant is to switch to the
--   page after the current page, unless the current page is the last one.
--   
--   A handler for the apply signal should carry out the actions for
--   which the wizard has collected data. If the action takes a long time
--   to complete, you might consider putting a page of type
--   AssistantPageTypeProgress after the confirmation page and
--   handle this operation within the Assistant::prepare signal of
--   the progress page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type AssistantApplyCallback = IO ()

-- | Connect a signal handler for the apply signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after assistant #apply callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAssistantApply :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantApplyCallback) -> m SignalHandlerId

-- | Connect a signal handler for the apply signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on assistant #apply callback
--   
onAssistantApply :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantApplyCallback) -> m SignalHandlerId

-- | Emitted when then the cancel button is clicked.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type AssistantCancelCallback = IO ()

-- | Connect a signal handler for the cancel signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after assistant #cancel callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAssistantCancel :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantCancelCallback) -> m SignalHandlerId

-- | Connect a signal handler for the cancel signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on assistant #cancel callback
--   
onAssistantCancel :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantCancelCallback) -> m SignalHandlerId

-- | Emitted either when the close button of a summary page is clicked, or
--   when the apply button in the last page in the flow (of type
--   AssistantPageTypeConfirm) is clicked.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type AssistantCloseCallback = IO ()

-- | Connect a signal handler for the close signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after assistant #close callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAssistantClose :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantCloseCallback) -> m SignalHandlerId

-- | Connect a signal handler for the close signal, to be run before
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   on assistant #close callback
--   
onAssistantClose :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantCloseCallback) -> m SignalHandlerId

-- | The action signal for the Escape binding.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type AssistantEscapeCallback = IO ()

-- | Connect a signal handler for the escape signal, to be run after
--   the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after assistant #escape callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAssistantEscape :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantEscapeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the escape signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on assistant #escape callback
--   
onAssistantEscape :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantEscapeCallback) -> m SignalHandlerId

-- | Emitted when a new page is set as the assistant's current page, before
--   making the new page visible.
--   
--   A handler for this signal can do any preparations which are necessary
--   before showing page.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
type AssistantPrepareCallback = Widget -> IO ()

-- | Connect a signal handler for the prepare signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after assistant #prepare callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAssistantPrepare :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantPrepareCallback) -> m SignalHandlerId

-- | Connect a signal handler for the prepare signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on assistant #prepare callback
--   
onAssistantPrepare :: (IsAssistant a, MonadIO m) => a -> ((?self :: a) => AssistantPrepareCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Assistant.Assistant
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Assistant.Assistant
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Assistant.Assistant
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Assistant.Assistant o) => GI.Gtk.Objects.Assistant.IsAssistant o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Assistant.Assistant)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Assistant.Assistant
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Assistant.Assistant

-- | Preserves the aspect ratio of its child.
--   
--   The frame can respect the aspect ratio of the child widget, or use its
--   own aspect ratio.
--   
--   
CSS nodes
--   
--   GtkAspectFrame uses a CSS node with name
--   aspectframe.
--   
--   
Accessibility
--   
--   Until GTK 4.10, GtkAspectFrame used the
--   AccessibleRoleGroup role.
--   
--   Starting from GTK 4.12, GtkAspectFrame uses the
--   AccessibleRoleGeneric role.
module GI.Gtk.Objects.AspectFrame

-- | Memory-managed wrapper type.
newtype AspectFrame
AspectFrame :: ManagedPtr AspectFrame -> AspectFrame

-- | Type class for types which can be safely cast to AspectFrame,
--   for instance with toAspectFrame.
class (GObject o, IsDescendantOf AspectFrame o) => IsAspectFrame o

-- | Cast to AspectFrame, for types for which this is known to be
--   safe. For general casts, use castTo.
toAspectFrame :: (MonadIO m, IsAspectFrame o) => o -> m AspectFrame

-- | Gets the child widget of self.
aspectFrameGetChild :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> m (Maybe Widget)

-- | Returns whether the child's size request should override the set
--   aspect ratio of the GtkAspectFrame.
aspectFrameGetObeyChild :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> m Bool

-- | Returns the desired aspect ratio of the child.
aspectFrameGetRatio :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> m Float

-- | Returns the horizontal alignment of the child within the allocation of
--   the GtkAspectFrame.
aspectFrameGetXalign :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> m Float

-- | Returns the vertical alignment of the child within the allocation of
--   the GtkAspectFrame.
aspectFrameGetYalign :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> m Float

-- | Create a new GtkAspectFrame.
aspectFrameNew :: (HasCallStack, MonadIO m) => Float -> Float -> Float -> Bool -> m AspectFrame

-- | Sets the child widget of self.
aspectFrameSetChild :: (HasCallStack, MonadIO m, IsAspectFrame a, IsWidget b) => a -> Maybe b -> m ()

-- | Sets whether the aspect ratio of the child's size request should
--   override the set aspect ratio of the GtkAspectFrame.
aspectFrameSetObeyChild :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> Bool -> m ()

-- | Sets the desired aspect ratio of the child.
aspectFrameSetRatio :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> Float -> m ()

-- | Sets the horizontal alignment of the child within the allocation of
--   the GtkAspectFrame.
aspectFrameSetXalign :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> Float -> m ()

-- | Sets the vertical alignment of the child within the allocation of the
--   GtkAspectFrame.
aspectFrameSetYalign :: (HasCallStack, MonadIO m, IsAspectFrame a) => a -> Float -> m ()

-- | Set the value of the “child” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #child
--   
clearAspectFrameChild :: (MonadIO m, IsAspectFrame o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “child” property. This is rarely needed directly, but it is
--   used by new.
constructAspectFrameChild :: (IsAspectFrame o, MonadIO m, IsWidget a) => a -> m (GValueConstruct o)

-- | Get the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aspectFrame #child
--   
getAspectFrameChild :: (MonadIO m, IsAspectFrame o) => o -> m (Maybe Widget)

-- | Set the value of the “child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aspectFrame [ #child := value ]
--   
setAspectFrameChild :: (MonadIO m, IsAspectFrame o, IsWidget a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “obey-child” property. This is rarely needed directly, but it
--   is used by new.
constructAspectFrameObeyChild :: (IsAspectFrame o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “obey-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aspectFrame #obeyChild
--   
getAspectFrameObeyChild :: (MonadIO m, IsAspectFrame o) => o -> m Bool

-- | Set the value of the “obey-child” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aspectFrame [ #obeyChild := value ]
--   
setAspectFrameObeyChild :: (MonadIO m, IsAspectFrame o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “ratio” property. This is rarely needed directly, but it is
--   used by new.
constructAspectFrameRatio :: (IsAspectFrame o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “ratio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aspectFrame #ratio
--   
getAspectFrameRatio :: (MonadIO m, IsAspectFrame o) => o -> m Float

-- | Set the value of the “ratio” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aspectFrame [ #ratio := value ]
--   
setAspectFrameRatio :: (MonadIO m, IsAspectFrame o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “xalign” property. This is rarely needed directly, but it is
--   used by new.
constructAspectFrameXalign :: (IsAspectFrame o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aspectFrame #xalign
--   
getAspectFrameXalign :: (MonadIO m, IsAspectFrame o) => o -> m Float

-- | Set the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aspectFrame [ #xalign := value ]
--   
setAspectFrameXalign :: (MonadIO m, IsAspectFrame o) => o -> Float -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “yalign” property. This is rarely needed directly, but it is
--   used by new.
constructAspectFrameYalign :: (IsAspectFrame o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aspectFrame #yalign
--   
getAspectFrameYalign :: (MonadIO m, IsAspectFrame o) => o -> m Float

-- | Set the value of the “yalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aspectFrame [ #yalign := value ]
--   
setAspectFrameYalign :: (MonadIO m, IsAspectFrame o) => o -> Float -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.AspectFrame.AspectFrame
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AspectFrame.AspectFrame
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AspectFrame.AspectFrame
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AspectFrame.AspectFrame o) => GI.Gtk.Objects.AspectFrame.IsAspectFrame o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AspectFrame.AspectFrame)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AspectFrame.AspectFrame
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AspectFrame.AspectFrame

-- | A GtkWindow subclass that integrates with
--   GtkApplication.
--   
--   Notably, GtkApplicationWindow can handle an application
--   menubar.
--   
--   This class implements the ActionGroup and ActionMap
--   interfaces, to let you add window-specific actions that will be
--   exported by the associated Application, together with its
--   application-wide actions. Window-specific actions are prefixed with
--   the “win.” prefix and application-wide actions are prefixed with the
--   “app.” prefix. Actions must be addressed with the prefixed name when
--   referring to them from a menu model.
--   
--   Note that widgets that are placed inside a
--   GtkApplicationWindow can also activate these actions, if they
--   implement the Actionable interface.
--   
--   The settings Settings:gtkShellShowsAppMenu and
--   Settings:gtkShellShowsMenubar tell GTK whether the desktop
--   environment is showing the application menu and menubar models outside
--   the application as part of the desktop shell. For instance, on OS X,
--   both menus will be displayed remotely; on Windows neither will be.
--   
--   If the desktop environment does not display the menubar, it can be
--   shown in the GtkApplicationWindow by setting the
--   ApplicationWindow:showMenubar property to true. If the desktop
--   environment does not display the application menu, then it will
--   automatically be included in the menubar or in the window’s
--   client-side decorations.
--   
--   See PopoverMenu for information about the XML language used by
--   GtkBuilder for menu models.
--   
--   See also: applicationSetMenubar.
--   
--   
A GtkApplicationWindow with a menubar
--   
--   The code sample below shows how to set up a
--   GtkApplicationWindow with a menu bar defined on the
--   Application:
--   
--   
c code
--   
--   
--   GtkApplication *app = gtk_application_new ("org.gtk.test", 0);
--   
--   GtkBuilder *builder = gtk_builder_new_from_string (
--       "<interface>"
--       "  <menu id='menubar'>"
--       "    <submenu>"
--       "      <attribute name='label' translatable='yes'>_Edit</attribute>"
--       "      <item>"
--       "        <attribute name='label' translatable='yes'>_Copy</attribute>"
--       "        <attribute name='action'>win.copy</attribute>"
--       "      </item>"
--       "      <item>"
--       "        <attribute name='label' translatable='yes'>_Paste</attribute>"
--       "        <attribute name='action'>win.paste</attribute>"
--       "      </item>"
--       "    </submenu>"
--       "  </menu>"
--       "</interface>",
--       -1);
--   
--   GMenuModel *menubar = G_MENU_MODEL (gtk_builder_get_object (builder, "menubar"));
--   gtk_application_set_menubar (GTK_APPLICATION (app), menubar);
--   g_object_unref (builder);
--   
--   // ...
--   
--   GtkWidget *window = gtk_application_window_new (app);
--   
module GI.Gtk.Objects.ApplicationWindow

-- | Memory-managed wrapper type.
newtype ApplicationWindow
ApplicationWindow :: ManagedPtr ApplicationWindow -> ApplicationWindow

-- | Type class for types which can be safely cast to
--   ApplicationWindow, for instance with
--   toApplicationWindow.
class (GObject o, IsDescendantOf ApplicationWindow o) => IsApplicationWindow o

-- | Cast to ApplicationWindow, for types for which this is known to
--   be safe. For general casts, use castTo.
toApplicationWindow :: (MonadIO m, IsApplicationWindow o) => o -> m ApplicationWindow

-- | Gets the GtkShortcutsWindow that is associated with
--   window.
--   
--   See applicationWindowSetHelpOverlay.

-- | Deprecated: (Since version 4.18)GtkShortcutsWindow will be
--   removed in GTK 5
applicationWindowGetHelpOverlay :: (HasCallStack, MonadIO m, IsApplicationWindow a) => a -> m (Maybe ShortcutsWindow)

-- | Returns the unique ID of the window.
--   
--   If the window has not yet been added to a GtkApplication,
--   returns 0.
applicationWindowGetId :: (HasCallStack, MonadIO m, IsApplicationWindow a) => a -> m Word32

-- | Returns whether the window will display a menubar for the app menu and
--   menubar as needed.
applicationWindowGetShowMenubar :: (HasCallStack, MonadIO m, IsApplicationWindow a) => a -> m Bool

-- | Creates a new GtkApplicationWindow.
applicationWindowNew :: (HasCallStack, MonadIO m, IsApplication a) => a -> m ApplicationWindow

-- | Associates a shortcuts window with the application window.
--   
--   Additionally, sets up an action with the name
--   win.show-help-overlay to present it.
--   
--   The window takes responsibility for destroying the help overlay.

-- | Deprecated: (Since version 4.18)GtkShortcutsWindow will be
--   removed in GTK 5
applicationWindowSetHelpOverlay :: (HasCallStack, MonadIO m, IsApplicationWindow a, IsShortcutsWindow b) => a -> Maybe b -> m ()

-- | Sets whether the window will display a menubar for the app menu and
--   menubar as needed.
applicationWindowSetShowMenubar :: (HasCallStack, MonadIO m, IsApplicationWindow a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-menubar” property. This is rarely needed directly, but
--   it is used by new.
constructApplicationWindowShowMenubar :: (IsApplicationWindow o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-menubar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get applicationWindow #showMenubar
--   
getApplicationWindowShowMenubar :: (MonadIO m, IsApplicationWindow o) => o -> m Bool

-- | Set the value of the “show-menubar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set applicationWindow [ #showMenubar := value ]
--   
setApplicationWindowShowMenubar :: (MonadIO m, IsApplicationWindow o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ApplicationWindow.ApplicationWindow
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ApplicationWindow.ApplicationWindow
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ApplicationWindow.ApplicationWindow
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ApplicationWindow.ApplicationWindow o) => GI.Gtk.Objects.ApplicationWindow.IsApplicationWindow o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ApplicationWindow.ApplicationWindow)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ApplicationWindow.ApplicationWindow
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ApplicationWindow.ApplicationWindow

-- | A high-level API for writing applications.
--   
--   GtkApplication supports many aspects of writing a GTK
--   application in a convenient fashion, without enforcing a
--   one-size-fits-all model.
--   
--   Currently, it handles GTK initialization, application uniqueness,
--   session management, provides some basic scriptability and desktop
--   shell integration by exporting actions and menus and manages a list of
--   toplevel windows whose life-cycle is automatically tied to the
--   life-cycle of your application.
--   
--   While GtkApplication works fine with plain Windows, it
--   is recommended to use it together with ApplicationWindow.
--   
--   
Initialization
--   
--   A typical GtkApplication will create a window in its
--   GIO.Application::activate,
--   GIO.Application::open or
--   GIO.Application::command-line handlers. Note that all
--   of these signals may be emitted multiple times, so handlers must be
--   careful to take existing windows into account.
--   
--   A typical activate handler should look like this:
--   
--   
--   static void
--   activate (GApplication *gapp)
--   {
--     GtkApplication *app = GTK_APPLICATION (gapp);
--     GtkWindow *window;
--   
--     window = gtk_application_get_active_window (app);
--     if (!window)
--       window = create_window (app);
--   
--     gtk_window_present (window);
--   }
--   
--   
--   
Automatic resources
--   
--   GtkApplication will automatically load menus from the
--   GtkBuilder resource located at "gtk/menus.ui", relative to
--   the application's resource base path (see
--   applicationSetResourceBasePath). The menu with the ID "menubar"
--   is taken as the application's menubar. Additional menus (most
--   interesting submenus) can be named and accessed via
--   applicationGetMenuById which allows for dynamic population of a
--   part of the menu structure.
--   
--   Note that automatic resource loading uses the resource base path that
--   is set at construction time and will not work if the resource base
--   path is changed at a later time.
--   
--   It is also possible to provide the menubar manually using
--   applicationSetMenubar.
--   
--   GtkApplication will also automatically setup an icon search
--   path for the default icon theme by appending "icons" to the resource
--   base path. This allows your application to easily store its icons as
--   resources. See iconThemeAddResourcePath for more information.
--   
--   If there is a resource located at gtk/help-overlay.ui which
--   defines a ShortcutsWindow with ID help_overlay then
--   GtkApplication associates an instance of this shortcuts
--   window with each ApplicationWindow and sets up the keyboard
--   accelerator <kbd>Control</kbd>+<kbd>?</kbd> to
--   open it. To create a menu item that displays the shortcuts window,
--   associate the item with the action win.show-help-overlay.
--   
--   GtkApplication will also automatically set the application id
--   as the default window icon. Use windowSetDefaultIconName or
--   Window:iconName to override that behavior.
--   
--   
Inhibiting
--   
--   An application can block various ways to end the session with the
--   applicationInhibit function. Typical use cases for this kind of
--   inhibiting are long-running, uninterruptible operations, such as
--   burning a CD or performing a disk backup. The session manager may not
--   honor the inhibitor, but it can be expected to inform the user about
--   the negative consequences of ending the session while inhibitors are
--   present.
--   
--   
A simple application
--   
--   A simple example is available in the GTK source code repository
--   
--   
See Also
--   
--   
--   
- Using GtkApplication
--   
- Getting Started with GTK: Basics
--   
module GI.Gtk.Objects.Application

-- | Memory-managed wrapper type.
newtype Application
Application :: ManagedPtr Application -> Application

-- | Type class for types which can be safely cast to Application,
--   for instance with toApplication.
class (GObject o, IsDescendantOf Application o) => IsApplication o

-- | Cast to Application, for types for which this is known to be
--   safe. For general casts, use castTo.
toApplication :: (MonadIO m, IsApplication o) => o -> m Application

-- | Adds a window to the application.
--   
--   This call can only happen after the application has started;
--   typically, you should add new application windows in response to the
--   emission of the GIO.Application::activate signal.
--   
--   This call is equivalent to setting the Window:application
--   property of the window to application.
--   
--   Normally, the connection between the application and the window will
--   remain until the window is destroyed, but you can explicitly remove it
--   with applicationRemoveWindow.
--   
--   GTK will keep the application running as long as it has any windows.
applicationAddWindow :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) => a -> b -> m ()

-- | Gets the accelerators that are currently associated with the given
--   action.
applicationGetAccelsForAction :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> m [Text]

-- | Returns the list of actions (possibly empty) that the accelerator maps
--   to.
--   
--   Each item in the list is a detailed action name in the usual form.
--   
--   This might be useful to discover if an accel already exists in order
--   to prevent installation of a conflicting accelerator (from an
--   accelerator editor or a plugin system, for example). Note that having
--   more than one action per accelerator may not be a bad thing and might
--   make sense in cases where the actions never appear in the same
--   context.
--   
--   In case there are no actions for a given accelerator, an empty array
--   is returned. NULL is never returned.
--   
--   It is a programmer error to pass an invalid accelerator string.
--   
--   If you are unsure, check it with acceleratorParse first.
applicationGetActionsForAccel :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> m [Text]

-- | Gets the “active” window for the application.
--   
--   The active window is the one that was most recently focused (within
--   the application). This window may not have the focus at the moment if
--   another application has it — this is just the most recently-focused
--   window within this application.
applicationGetActiveWindow :: (HasCallStack, MonadIO m, IsApplication a) => a -> m (Maybe Window)

-- | Gets a menu from automatically loaded resources.
--   
--   See the section on Automatic resources for more information.
applicationGetMenuById :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> m (Maybe Menu)

-- | Returns the menu model for the menu bar of the application.
applicationGetMenubar :: (HasCallStack, MonadIO m, IsApplication a) => a -> m (Maybe MenuModel)

-- | Returns the window with the given ID.
--   
--   The ID of a GtkApplicationWindow can be retrieved with
--   applicationWindowGetId.
applicationGetWindowById :: (HasCallStack, MonadIO m, IsApplication a) => a -> Word32 -> m (Maybe Window)

-- | Gets a list of the window associated with the application.
--   
--   The list is sorted by most recently focused window, such that the
--   first element is the currently focused window. (Useful for choosing a
--   parent for a transient window.)
--   
--   The list that is returned should not be modified in any way. It will
--   only remain valid until the next focus change or window creation or
--   deletion.
applicationGetWindows :: (HasCallStack, MonadIO m, IsApplication a) => a -> m [Window]

-- | Informs the session manager that certain types of actions should be
--   inhibited.
--   
--   This is not guaranteed to work on all platforms and for all types of
--   actions.
--   
--   Applications should invoke this method when they begin an operation
--   that should not be interrupted, such as creating a CD or DVD. The
--   types of actions that may be blocked are specified by the
--   flags parameter. When the application completes the
--   operation it should call applicationUninhibit to remove the
--   inhibitor. Note that an application can have multiple inhibitors, and
--   all of them must be individually removed. Inhibitors are also cleared
--   when the application exits.
--   
--   Applications should not expect that they will always be able to block
--   the action. In most cases, users will be given the option to force the
--   action to take place.
--   
--   The reason message should be short and to the point.
--   
--   If a window is given, the session manager may point the user to this
--   window to find out more about why the action is inhibited.
--   
--   The cookie that is returned by this function should be used as an
--   argument to applicationUninhibit in order to remove the
--   request.
applicationInhibit :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) => a -> Maybe b -> [ApplicationInhibitFlags] -> Maybe Text -> m Word32

-- | Lists the detailed action names which have associated accelerators.
--   
--   See applicationSetAccelsForAction.
applicationListActionDescriptions :: (HasCallStack, MonadIO m, IsApplication a) => a -> m [Text]

-- | Creates a new application instance.
--   
--   When using GtkApplication, it is not necessary to call
--   init manually. It is called as soon as the application gets
--   registered as the primary instance.
--   
--   Concretely, init is called in the default handler for the
--   GApplication::startup signal. Therefore,
--   GtkApplication subclasses should always chain up in their
--   GIO.Application.startup() handler before using any GTK
--   API.
--   
--   Note that commandline arguments are not passed to init.
--   
--   If application_id is not NULL, then it must be
--   valid. See applicationIdIsValid.
--   
--   If no application ID is given then some features (most notably
--   application uniqueness) will be disabled.
applicationNew :: (HasCallStack, MonadIO m) => Maybe Text -> [ApplicationFlags] -> m Application

-- | Remove a window from the application.
--   
--   If the window belongs to the application then this call is equivalent
--   to setting the Window:application property of the window to
--   NULL.
--   
--   The application may stop running as a result of a call to this
--   function, if the window was the last window of the application.
applicationRemoveWindow :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) => a -> b -> m ()

-- | Sets zero or more keyboard accelerators that will trigger the given
--   action.
--   
--   The first item in accels will be the primary
--   accelerator, which may be displayed in the UI.
--   
--   To remove all accelerators for an action, use an empty,
--   zero-terminated array for accels.
--   
--   For the detailedActionName, see
--   actionParseDetailedName and [Gio.Action.print_detailed_name].
applicationSetAccelsForAction :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> [Text] -> m ()

-- | Sets or unsets the menubar for windows of the application.
--   
--   This is a menubar in the traditional sense.
--   
--   This can only be done in the primary instance of the application,
--   after it has been registered.
--   GIO.Application.startup() is a good place to call
--   this.
--   
--   Depending on the desktop environment, this may appear at the top of
--   each window, or at the top of the screen. In some environments, if
--   both the application menu and the menubar are set, the application
--   menu will be presented as if it were the first item of the menubar.
--   Other environments treat the two as completely separate — for example,
--   the application menu may be rendered by the desktop shell while the
--   menubar (if set) remains in each individual window.
--   
--   Use the base GActionMap interface to add actions, to respond
--   to the user selecting these menu items.
applicationSetMenubar :: (HasCallStack, MonadIO m, IsApplication a, IsMenuModel b) => a -> Maybe b -> m ()

-- | Removes an inhibitor that has been previously established.
--   
--   See applicationInhibit.
--   
--   Inhibitors are also cleared when the application exits.
applicationUninhibit :: (HasCallStack, MonadIO m, IsApplication a) => a -> Word32 -> m ()

-- | Get the value of the “active-window” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get application #activeWindow
--   
getApplicationActiveWindow :: (MonadIO m, IsApplication o) => o -> m (Maybe Window)

-- | Set the value of the “menubar” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #menubar
--   
clearApplicationMenubar :: (MonadIO m, IsApplication o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “menubar” property. This is rarely needed directly, but it is
--   used by new.
constructApplicationMenubar :: (IsApplication o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)

-- | Get the value of the “menubar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get application #menubar
--   
getApplicationMenubar :: (MonadIO m, IsApplication o) => o -> m (Maybe MenuModel)

-- | Set the value of the “menubar” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set application [ #menubar := value ]
--   
setApplicationMenubar :: (MonadIO m, IsApplication o, IsMenuModel a) => o -> a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “register-session” property. This is rarely needed directly,
--   but it is used by new.
constructApplicationRegisterSession :: (IsApplication o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “register-session” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get application #registerSession
--   
getApplicationRegisterSession :: (MonadIO m, IsApplication o) => o -> m Bool

-- | Set the value of the “register-session” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set application [ #registerSession := value ]
--   
setApplicationRegisterSession :: (MonadIO m, IsApplication o) => o -> Bool -> m ()

-- | Get the value of the “screensaver-active” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get application #screensaverActive
--   
getApplicationScreensaverActive :: (MonadIO m, IsApplication o) => o -> m Bool

-- | Emitted when the session manager is about to end the session.
--   
--   Applications can connect to this signal and call
--   applicationInhibit with
--   [flagsgtk.ApplicationInhibitFlags.logout] to delay the
--   end of the session until state has been saved.
type ApplicationQueryEndCallback = IO ()

-- | Connect a signal handler for the queryEnd signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after application #queryEnd callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterApplicationQueryEnd :: (IsApplication a, MonadIO m) => a -> ((?self :: a) => ApplicationQueryEndCallback) -> m SignalHandlerId

-- | Connect a signal handler for the queryEnd signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on application #queryEnd callback
--   
onApplicationQueryEnd :: (IsApplication a, MonadIO m) => a -> ((?self :: a) => ApplicationQueryEndCallback) -> m SignalHandlerId

-- | Emitted when a window is added to an application.
--   
--   See applicationAddWindow.
type ApplicationWindowAddedCallback = Window -> IO ()

-- | Connect a signal handler for the windowAdded signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after application #windowAdded callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterApplicationWindowAdded :: (IsApplication a, MonadIO m) => a -> ((?self :: a) => ApplicationWindowAddedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the windowAdded signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on application #windowAdded callback
--   
onApplicationWindowAdded :: (IsApplication a, MonadIO m) => a -> ((?self :: a) => ApplicationWindowAddedCallback) -> m SignalHandlerId

-- | Emitted when a window is removed from an application.
--   
--   This can happen as a side-effect of the window being destroyed or
--   explicitly through applicationRemoveWindow.
type ApplicationWindowRemovedCallback = Window -> IO ()

-- | Connect a signal handler for the windowRemoved signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after application #windowRemoved callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterApplicationWindowRemoved :: (IsApplication a, MonadIO m) => a -> ((?self :: a) => ApplicationWindowRemovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the windowRemoved signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on application #windowRemoved callback
--   
onApplicationWindowRemoved :: (IsApplication a, MonadIO m) => a -> ((?self :: a) => ApplicationWindowRemovedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.Application.Application
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.Application.Application
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.Application.Application
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.Application.Application o) => GI.Gtk.Objects.Application.IsApplication o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.Application.Application)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.Application.Application
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.Application.Application

-- | GtkAppChooserWidget is a widget for selecting applications.
--   
--   It is the main building block for AppChooserDialog. Most
--   applications only need to use the latter; but you can use this widget
--   as part of a larger widget if you have special needs.
--   
--   GtkAppChooserWidget offers detailed control over what
--   applications are shown, using the AppChooserWidget:showDefault,
--   AppChooserWidget:showRecommended,
--   AppChooserWidget:showFallback,
--   AppChooserWidget:showOther and AppChooserWidget:showAll
--   properties. See the AppChooser documentation for more
--   information about these groups of applications.
--   
--   To keep track of the selected application, use the
--   AppChooserWidget::applicationSelected and
--   AppChooserWidget::applicationActivated signals.
--   
--   
CSS nodes
--   
--   GtkAppChooserWidget has a single CSS node with name
--   appchooser.
module GI.Gtk.Objects.AppChooserWidget

-- | Memory-managed wrapper type.
newtype AppChooserWidget
AppChooserWidget :: ManagedPtr AppChooserWidget -> AppChooserWidget

-- | Type class for types which can be safely cast to
--   AppChooserWidget, for instance with toAppChooserWidget.
class (GObject o, IsDescendantOf AppChooserWidget o) => IsAppChooserWidget o

-- | Cast to AppChooserWidget, for types for which this is known to
--   be safe. For general casts, use castTo.
toAppChooserWidget :: (MonadIO m, IsAppChooserWidget o) => o -> m AppChooserWidget

-- | Returns the text that is shown if there are not applications that can
--   handle the content type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetGetDefaultText :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> m (Maybe Text)

-- | Gets whether the app chooser should show all applications in a flat
--   list.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetGetShowAll :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> m Bool

-- | Gets whether the app chooser should show the default handler for the
--   content type in a separate section.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetGetShowDefault :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> m Bool

-- | Gets whether the app chooser should show related applications for the
--   content type in a separate section.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetGetShowFallback :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> m Bool

-- | Gets whether the app chooser should show applications which are
--   unrelated to the content type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetGetShowOther :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> m Bool

-- | Gets whether the app chooser should show recommended applications for
--   the content type in a separate section.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetGetShowRecommended :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> m Bool

-- | Creates a new GtkAppChooserWidget for applications that can
--   handle content of the given type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetNew :: (HasCallStack, MonadIO m) => Text -> m AppChooserWidget

-- | Sets the text that is shown if there are not applications that can
--   handle the content type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetSetDefaultText :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> Text -> m ()

-- | Sets whether the app chooser should show all applications in a flat
--   list.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetSetShowAll :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> Bool -> m ()

-- | Sets whether the app chooser should show the default handler for the
--   content type in a separate section.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetSetShowDefault :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> Bool -> m ()

-- | Sets whether the app chooser should show related applications for the
--   content type in a separate section.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetSetShowFallback :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> Bool -> m ()

-- | Sets whether the app chooser should show applications which are
--   unrelated to the content type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetSetShowOther :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> Bool -> m ()

-- | Sets whether the app chooser should show recommended applications for
--   the content type in a separate section.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserWidgetSetShowRecommended :: (HasCallStack, MonadIO m, IsAppChooserWidget a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-text” property. This is rarely needed directly, but
--   it is used by new.
constructAppChooserWidgetDefaultText :: (IsAppChooserWidget o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “default-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserWidget #defaultText
--   
getAppChooserWidgetDefaultText :: (MonadIO m, IsAppChooserWidget o) => o -> m (Maybe Text)

-- | Set the value of the “default-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserWidget [ #defaultText := value ]
--   
setAppChooserWidgetDefaultText :: (MonadIO m, IsAppChooserWidget o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-all” property. This is rarely needed directly, but it
--   is used by new.
constructAppChooserWidgetShowAll :: (IsAppChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-all” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserWidget #showAll
--   
getAppChooserWidgetShowAll :: (MonadIO m, IsAppChooserWidget o) => o -> m Bool

-- | Set the value of the “show-all” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserWidget [ #showAll := value ]
--   
setAppChooserWidgetShowAll :: (MonadIO m, IsAppChooserWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-default” property. This is rarely needed directly, but
--   it is used by new.
constructAppChooserWidgetShowDefault :: (IsAppChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserWidget #showDefault
--   
getAppChooserWidgetShowDefault :: (MonadIO m, IsAppChooserWidget o) => o -> m Bool

-- | Set the value of the “show-default” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserWidget [ #showDefault := value ]
--   
setAppChooserWidgetShowDefault :: (MonadIO m, IsAppChooserWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-fallback” property. This is rarely needed directly, but
--   it is used by new.
constructAppChooserWidgetShowFallback :: (IsAppChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-fallback” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserWidget #showFallback
--   
getAppChooserWidgetShowFallback :: (MonadIO m, IsAppChooserWidget o) => o -> m Bool

-- | Set the value of the “show-fallback” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserWidget [ #showFallback := value ]
--   
setAppChooserWidgetShowFallback :: (MonadIO m, IsAppChooserWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-other” property. This is rarely needed directly, but it
--   is used by new.
constructAppChooserWidgetShowOther :: (IsAppChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-other” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserWidget #showOther
--   
getAppChooserWidgetShowOther :: (MonadIO m, IsAppChooserWidget o) => o -> m Bool

-- | Set the value of the “show-other” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserWidget [ #showOther := value ]
--   
setAppChooserWidgetShowOther :: (MonadIO m, IsAppChooserWidget o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-recommended” property. This is rarely needed directly,
--   but it is used by new.
constructAppChooserWidgetShowRecommended :: (IsAppChooserWidget o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-recommended” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserWidget #showRecommended
--   
getAppChooserWidgetShowRecommended :: (MonadIO m, IsAppChooserWidget o) => o -> m Bool

-- | Set the value of the “show-recommended” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserWidget [ #showRecommended := value ]
--   
setAppChooserWidgetShowRecommended :: (MonadIO m, IsAppChooserWidget o) => o -> Bool -> m ()

-- | Emitted when an application item is activated from the widget's list.
--   
--   This usually happens when the user double clicks an item, or an item
--   is selected and the user presses one of the keys Space, Shift+Space,
--   Return or Enter.
type AppChooserWidgetApplicationActivatedCallback = AppInfo -> IO ()

-- | Connect a signal handler for the applicationActivated signal,
--   to be run after the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   after appChooserWidget #applicationActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAppChooserWidgetApplicationActivated :: (IsAppChooserWidget a, MonadIO m) => a -> ((?self :: a) => AppChooserWidgetApplicationActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the applicationActivated signal,
--   to be run before the default handler. When overloading is
--   enabled, this is equivalent to
--   
--   
--   on appChooserWidget #applicationActivated callback
--   
onAppChooserWidgetApplicationActivated :: (IsAppChooserWidget a, MonadIO m) => a -> ((?self :: a) => AppChooserWidgetApplicationActivatedCallback) -> m SignalHandlerId

-- | Emitted when an application item is selected from the widget's list.
type AppChooserWidgetApplicationSelectedCallback = AppInfo -> IO ()

-- | Connect a signal handler for the applicationSelected signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after appChooserWidget #applicationSelected callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAppChooserWidgetApplicationSelected :: (IsAppChooserWidget a, MonadIO m) => a -> ((?self :: a) => AppChooserWidgetApplicationSelectedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the applicationSelected signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on appChooserWidget #applicationSelected callback
--   
onAppChooserWidgetApplicationSelected :: (IsAppChooserWidget a, MonadIO m) => a -> ((?self :: a) => AppChooserWidgetApplicationSelectedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.AppChooserWidget.AppChooserWidget
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AppChooserWidget.AppChooserWidget
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AppChooserWidget.AppChooserWidget
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AppChooserWidget.AppChooserWidget o) => GI.Gtk.Objects.AppChooserWidget.IsAppChooserWidget o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AppChooserWidget.AppChooserWidget)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AppChooserWidget.AppChooserWidget
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AppChooserWidget.AppChooserWidget

-- | GtkAppChooserDialog shows a GtkAppChooserWidget
--   inside a GtkDialog.
--   
--   <picture> <source srcset="appchooserdialog-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkAppChooserDialog" src="appchooserdialog.png"> </picture>
--   
--   Note that GtkAppChooserDialog does not have any interesting
--   methods of its own. Instead, you should get the embedded
--   GtkAppChooserWidget using appChooserDialogGetWidget
--   and call its methods if the generic AppChooser interface is not
--   sufficient for your needs.
--   
--   To set the heading that is shown above the
--   GtkAppChooserWidget, use appChooserDialogSetHeading.
--   
--   
CSS nodes
--   
--   GtkAppChooserDialog has a single CSS node with the name
--   window and style class .appchooser.
module GI.Gtk.Objects.AppChooserDialog

-- | Memory-managed wrapper type.
newtype AppChooserDialog
AppChooserDialog :: ManagedPtr AppChooserDialog -> AppChooserDialog

-- | Type class for types which can be safely cast to
--   AppChooserDialog, for instance with toAppChooserDialog.
class (GObject o, IsDescendantOf AppChooserDialog o) => IsAppChooserDialog o

-- | Cast to AppChooserDialog, for types for which this is known to
--   be safe. For general casts, use castTo.
toAppChooserDialog :: (MonadIO m, IsAppChooserDialog o) => o -> m AppChooserDialog

-- | Returns the text to display at the top of the dialog.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserDialogGetHeading :: (HasCallStack, MonadIO m, IsAppChooserDialog a) => a -> m (Maybe Text)

-- | Returns the GtkAppChooserWidget of this dialog.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserDialogGetWidget :: (HasCallStack, MonadIO m, IsAppChooserDialog a) => a -> m Widget

-- | Creates a new GtkAppChooserDialog for the provided
--   GFile.
--   
--   The dialog will show applications that can open the file.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserDialogNew :: (HasCallStack, MonadIO m, IsWindow a, IsFile b) => Maybe a -> [DialogFlags] -> b -> m AppChooserDialog

-- | Creates a new GtkAppChooserDialog for the provided content
--   type.
--   
--   The dialog will show applications that can open the content type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserDialogNewForContentType :: (HasCallStack, MonadIO m, IsWindow a) => Maybe a -> [DialogFlags] -> Text -> m AppChooserDialog

-- | Sets the text to display at the top of the dialog.
--   
--   If the heading is not set, the dialog displays a default text.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserDialogSetHeading :: (HasCallStack, MonadIO m, IsAppChooserDialog a) => a -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “gfile” property. This is rarely needed directly, but it is
--   used by new.
constructAppChooserDialogGfile :: (IsAppChooserDialog o, MonadIO m, IsFile a) => a -> m (GValueConstruct o)

-- | Get the value of the “gfile” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserDialog #gfile
--   
getAppChooserDialogGfile :: (MonadIO m, IsAppChooserDialog o) => o -> m (Maybe File)

-- | Construct a GValueConstruct with valid value for the
--   “heading” property. This is rarely needed directly, but it is
--   used by new.
constructAppChooserDialogHeading :: (IsAppChooserDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “heading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserDialog #heading
--   
getAppChooserDialogHeading :: (MonadIO m, IsAppChooserDialog o) => o -> m (Maybe Text)

-- | Set the value of the “heading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserDialog [ #heading := value ]
--   
setAppChooserDialogHeading :: (MonadIO m, IsAppChooserDialog o) => o -> Text -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.AppChooserDialog.AppChooserDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AppChooserDialog.AppChooserDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AppChooserDialog.AppChooserDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AppChooserDialog.AppChooserDialog o) => GI.Gtk.Objects.AppChooserDialog.IsAppChooserDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AppChooserDialog.AppChooserDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AppChooserDialog.AppChooserDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AppChooserDialog.AppChooserDialog

-- | The GtkAppChooserButton lets the user select an application.
--   
--   <picture> <source srcset="appchooserbutton-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkAppChooserButton" src="appchooserbutton.png"> </picture>
--   
--   Initially, a GtkAppChooserButton selects the first
--   application in its list, which will either be the most-recently used
--   application or, if AppChooserButton:showDefaultItem is
--   True, the default application.
--   
--   The list of applications shown in a GtkAppChooserButton
--   includes the recommended applications for the given content type. When
--   AppChooserButton:showDefaultItem is set, the default
--   application is also included. To let the user chooser other
--   applications, you can set the AppChooserButton:showDialogItem
--   property, which allows to open a full AppChooserDialog.
--   
--   It is possible to add custom items to the list, using
--   appChooserButtonAppendCustomItem. These items cause the
--   AppChooserButton::customItemActivated signal to be emitted when
--   they are selected.
--   
--   To track changes in the selected application, use the
--   AppChooserButton::changed signal.
--   
--   
CSS nodes
--   
--   GtkAppChooserButton has a single CSS node with the name
--   “appchooserbutton”.
module GI.Gtk.Objects.AppChooserButton

-- | Memory-managed wrapper type.
newtype AppChooserButton
AppChooserButton :: ManagedPtr AppChooserButton -> AppChooserButton

-- | Type class for types which can be safely cast to
--   AppChooserButton, for instance with toAppChooserButton.
class (GObject o, IsDescendantOf AppChooserButton o) => IsAppChooserButton o

-- | Cast to AppChooserButton, for types for which this is known to
--   be safe. For general casts, use castTo.
toAppChooserButton :: (MonadIO m, IsAppChooserButton o) => o -> m AppChooserButton

-- | Appends a custom item to the list of applications that is shown in the
--   popup.
--   
--   The item name must be unique per-widget. Clients can use the provided
--   name as a detail for the AppChooserButton::customItemActivated
--   signal, to add a callback for the activation of a particular custom
--   item in the list.
--   
--   See also appChooserButtonAppendSeparator.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonAppendCustomItem :: (HasCallStack, MonadIO m, IsAppChooserButton a, IsIcon b) => a -> Text -> Text -> b -> m ()

-- | Appends a separator to the list of applications that is shown in the
--   popup.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonAppendSeparator :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> m ()

-- | Returns the text to display at the top of the dialog.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonGetHeading :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> m (Maybe Text)

-- | Gets whether the dialog is modal.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonGetModal :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> m Bool

-- | Returns whether the dropdown menu should show the default application
--   at the top.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonGetShowDefaultItem :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> m Bool

-- | Returns whether the dropdown menu shows an item for a
--   GtkAppChooserDialog.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonGetShowDialogItem :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> m Bool

-- | Creates a new GtkAppChooserButton for applications that can
--   handle content of the given type.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonNew :: (HasCallStack, MonadIO m) => Text -> m AppChooserButton

-- | Selects a custom item.
--   
--   See appChooserButtonAppendCustomItem.
--   
--   Use appChooserRefresh to bring the selection to its initial
--   state.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonSetActiveCustomItem :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> Text -> m ()

-- | Sets the text to display at the top of the dialog.
--   
--   If the heading is not set, the dialog displays a default text.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonSetHeading :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> Text -> m ()

-- | Sets whether the dialog should be modal.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonSetModal :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> Bool -> m ()

-- | Sets whether the dropdown menu of this button should show the default
--   application for the given content type at top.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonSetShowDefaultItem :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> Bool -> m ()

-- | Sets whether the dropdown menu of this button should show an entry to
--   trigger a GtkAppChooserDialog.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserButtonSetShowDialogItem :: (HasCallStack, MonadIO m, IsAppChooserButton a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “heading” property. This is rarely needed directly, but it is
--   used by new.
constructAppChooserButtonHeading :: (IsAppChooserButton o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “heading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserButton #heading
--   
getAppChooserButtonHeading :: (MonadIO m, IsAppChooserButton o) => o -> m (Maybe Text)

-- | Set the value of the “heading” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserButton [ #heading := value ]
--   
setAppChooserButtonHeading :: (MonadIO m, IsAppChooserButton o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructAppChooserButtonModal :: (IsAppChooserButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserButton #modal
--   
getAppChooserButtonModal :: (MonadIO m, IsAppChooserButton o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserButton [ #modal := value ]
--   
setAppChooserButtonModal :: (MonadIO m, IsAppChooserButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-default-item” property. This is rarely needed directly,
--   but it is used by new.
constructAppChooserButtonShowDefaultItem :: (IsAppChooserButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-default-item” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserButton #showDefaultItem
--   
getAppChooserButtonShowDefaultItem :: (MonadIO m, IsAppChooserButton o) => o -> m Bool

-- | Set the value of the “show-default-item” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserButton [ #showDefaultItem := value ]
--   
setAppChooserButtonShowDefaultItem :: (MonadIO m, IsAppChooserButton o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-dialog-item” property. This is rarely needed directly,
--   but it is used by new.
constructAppChooserButtonShowDialogItem :: (IsAppChooserButton o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-dialog-item” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooserButton #showDialogItem
--   
getAppChooserButtonShowDialogItem :: (MonadIO m, IsAppChooserButton o) => o -> m Bool

-- | Set the value of the “show-dialog-item” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set appChooserButton [ #showDialogItem := value ]
--   
setAppChooserButtonShowDialogItem :: (MonadIO m, IsAppChooserButton o) => o -> Bool -> m ()

-- | Emitted to when the button is activated.
--   
--   The ::activate signal on GtkAppChooserButton is an
--   action signal and emitting it causes the button to pop up its dialog.
--   
--   Since: 4.4
type AppChooserButtonActivateCallback = IO ()

-- | Connect a signal handler for the activate signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after appChooserButton #activate callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAppChooserButtonActivate :: (IsAppChooserButton a, MonadIO m) => a -> ((?self :: a) => AppChooserButtonActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activate signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on appChooserButton #activate callback
--   
onAppChooserButtonActivate :: (IsAppChooserButton a, MonadIO m) => a -> ((?self :: a) => AppChooserButtonActivateCallback) -> m SignalHandlerId

-- | Emitted when the active application changes.
type AppChooserButtonChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after appChooserButton #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAppChooserButtonChanged :: (IsAppChooserButton a, MonadIO m) => a -> ((?self :: a) => AppChooserButtonChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on appChooserButton #changed callback
--   
onAppChooserButtonChanged :: (IsAppChooserButton a, MonadIO m) => a -> ((?self :: a) => AppChooserButtonChangedCallback) -> m SignalHandlerId

-- | Emitted when a custom item is activated.
--   
--   Use appChooserButtonAppendCustomItem, to add custom items.
type AppChooserButtonCustomItemActivatedCallback = Text -> IO ()

-- | Connect a signal handler for the customItemActivated signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after appChooserButton #customItemActivated callback
--   
--   
--   This signal admits a optional parameter detail. If it's not
--   Nothing, we will connect to
--   “custom-item-activated::detail” instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAppChooserButtonCustomItemActivated :: (IsAppChooserButton a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AppChooserButtonCustomItemActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the customItemActivated signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on appChooserButton #customItemActivated callback
--   
--   
--   This signal admits a optional parameter detail. If it's not
--   Nothing, we will connect to
--   “custom-item-activated::detail” instead.
onAppChooserButtonCustomItemActivated :: (IsAppChooserButton a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => AppChooserButtonCustomItemActivatedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.AppChooserButton.AppChooserButton
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AppChooserButton.AppChooserButton
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AppChooserButton.AppChooserButton
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AppChooserButton.AppChooserButton o) => GI.Gtk.Objects.AppChooserButton.IsAppChooserButton o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AppChooserButton.AppChooserButton)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AppChooserButton.AppChooserButton
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AppChooserButton.AppChooserButton

-- | Collects the arguments that are needed to present a message to the
--   user.
--   
--   The message is shown with the alertDialogChoose function.
--   
--   If you don't need to wait for a button to be clicked, you can use
--   alertDialogShow.
--   
--   Since: 4.10
module GI.Gtk.Objects.AlertDialog

-- | Memory-managed wrapper type.
newtype AlertDialog
AlertDialog :: ManagedPtr AlertDialog -> AlertDialog

-- | Type class for types which can be safely cast to AlertDialog,
--   for instance with toAlertDialog.
class (GObject o, IsDescendantOf AlertDialog o) => IsAlertDialog o

-- | Cast to AlertDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toAlertDialog :: (MonadIO m, IsAlertDialog o) => o -> m AlertDialog

-- | Shows the alert to the user.
--   
--   It is ok to pass NULL for the callback if the alert does not
--   have more than one button. A simpler API for this case is
--   alertDialogShow.
--   
--   Since: 4.10
alertDialogChoose :: (HasCallStack, MonadIO m, IsAlertDialog a, IsWindow b, IsCancellable c) => a -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the alertDialogChoose call.
--   
--   Since: 4.10
alertDialogChooseFinish :: (HasCallStack, MonadIO m, IsAlertDialog a, IsAsyncResult b) => a -> b -> m Int32

-- | Returns the button labels for the alert.
--   
--   Since: 4.10
alertDialogGetButtons :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> m (Maybe [Text])

-- | Returns the index of the cancel button.
--   
--   Since: 4.10
alertDialogGetCancelButton :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> m Int32

-- | Returns the index of the default button.
--   
--   Since: 4.10
alertDialogGetDefaultButton :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> m Int32

-- | Returns the detail text that will be shown in the alert.
--   
--   Since: 4.10
alertDialogGetDetail :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> m Text

-- | Returns the message that will be shown in the alert.
--   
--   Since: 4.10
alertDialogGetMessage :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> m Text

-- | Returns whether the alert blocks interaction with the parent window
--   while it is presented.
--   
--   Since: 4.10
alertDialogGetModal :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> m Bool

-- | Sets the button labels for the alert.
--   
--   Since: 4.10
alertDialogSetButtons :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> [Text] -> m ()

-- | Sets the index of the cancel button.
--   
--   See AlertDialog:cancelButton for details of how this value is
--   used.
--   
--   Since: 4.10
alertDialogSetCancelButton :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> Int32 -> m ()

-- | Sets the index of the default button.
--   
--   See AlertDialog:defaultButton for details of how this value is
--   used.
--   
--   Since: 4.10
alertDialogSetDefaultButton :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> Int32 -> m ()

-- | Sets the detail text that will be shown in the alert.
--   
--   Since: 4.10
alertDialogSetDetail :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> Text -> m ()

-- | Sets the message that will be shown in the alert.
--   
--   Since: 4.10
alertDialogSetMessage :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> Text -> m ()

-- | Sets whether the alert blocks interaction with the parent window while
--   it is presented.
--   
--   Since: 4.10
alertDialogSetModal :: (HasCallStack, MonadIO m, IsAlertDialog a) => a -> Bool -> m ()

-- | Shows the alert to the user.
--   
--   This function is a simpler version of alertDialogChoose
--   intended for dialogs with a single button.
--   
--   If you want to cancel the dialog or if the alert has more than one
--   button, you should use that function instead and provide it with a
--   Cancellable and callback respectively.
--   
--   Since: 4.10
alertDialogShow :: (HasCallStack, MonadIO m, IsAlertDialog a, IsWindow b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “buttons” property. This is rarely needed directly, but it is
--   used by new.
constructAlertDialogButtons :: (IsAlertDialog o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “buttons” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alertDialog #buttons
--   
getAlertDialogButtons :: (MonadIO m, IsAlertDialog o) => o -> m (Maybe [Text])

-- | Set the value of the “buttons” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set alertDialog [ #buttons := value ]
--   
setAlertDialogButtons :: (MonadIO m, IsAlertDialog o) => o -> [Text] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “cancel-button” property. This is rarely needed directly, but
--   it is used by new.
constructAlertDialogCancelButton :: (IsAlertDialog o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “cancel-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alertDialog #cancelButton
--   
getAlertDialogCancelButton :: (MonadIO m, IsAlertDialog o) => o -> m Int32

-- | Set the value of the “cancel-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set alertDialog [ #cancelButton := value ]
--   
setAlertDialogCancelButton :: (MonadIO m, IsAlertDialog o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “default-button” property. This is rarely needed directly,
--   but it is used by new.
constructAlertDialogDefaultButton :: (IsAlertDialog o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “default-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alertDialog #defaultButton
--   
getAlertDialogDefaultButton :: (MonadIO m, IsAlertDialog o) => o -> m Int32

-- | Set the value of the “default-button” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set alertDialog [ #defaultButton := value ]
--   
setAlertDialogDefaultButton :: (MonadIO m, IsAlertDialog o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “detail” property. This is rarely needed directly, but it is
--   used by new.
constructAlertDialogDetail :: (IsAlertDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “detail” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alertDialog #detail
--   
getAlertDialogDetail :: (MonadIO m, IsAlertDialog o) => o -> m Text

-- | Set the value of the “detail” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set alertDialog [ #detail := value ]
--   
setAlertDialogDetail :: (MonadIO m, IsAlertDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “message” property. This is rarely needed directly, but it is
--   used by new.
constructAlertDialogMessage :: (IsAlertDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “message” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alertDialog #message
--   
getAlertDialogMessage :: (MonadIO m, IsAlertDialog o) => o -> m Text

-- | Set the value of the “message” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set alertDialog [ #message := value ]
--   
setAlertDialogMessage :: (MonadIO m, IsAlertDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “modal” property. This is rarely needed directly, but it is
--   used by new.
constructAlertDialogModal :: (IsAlertDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get alertDialog #modal
--   
getAlertDialogModal :: (MonadIO m, IsAlertDialog o) => o -> m Bool

-- | Set the value of the “modal” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set alertDialog [ #modal := value ]
--   
setAlertDialogModal :: (MonadIO m, IsAlertDialog o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.AlertDialog.AlertDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AlertDialog.AlertDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AlertDialog.AlertDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AlertDialog.AlertDialog o) => GI.Gtk.Objects.AlertDialog.IsAlertDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AlertDialog.AlertDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AlertDialog.AlertDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AlertDialog.AlertDialog

-- | Activates a widget.
--   
--   Widgets are activated by calling widgetActivate.
module GI.Gtk.Objects.ActivateAction

-- | Memory-managed wrapper type.
newtype ActivateAction
ActivateAction :: ManagedPtr ActivateAction -> ActivateAction

-- | Type class for types which can be safely cast to
--   ActivateAction, for instance with toActivateAction.
class (GObject o, IsDescendantOf ActivateAction o) => IsActivateAction o

-- | Cast to ActivateAction, for types for which this is known to be
--   safe. For general casts, use castTo.
toActivateAction :: (MonadIO m, IsActivateAction o) => o -> m ActivateAction

-- | Gets the activate action.
--   
--   This is an action that calls widgetActivate on the given widget
--   upon activation.
activateActionGet :: (HasCallStack, MonadIO m) => m ActivateAction
instance GHC.Classes.Eq GI.Gtk.Objects.ActivateAction.ActivateAction
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ActivateAction.ActivateAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ActivateAction.ActivateAction
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ActivateAction.ActivateAction o) => GI.Gtk.Objects.ActivateAction.IsActivateAction o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ActivateAction.ActivateAction)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ActivateAction.ActivateAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ActivateAction.ActivateAction

-- | Presents contextual actions.
--   
--   <picture> <source srcset="action-bar-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkActionBar" src="action-bar.png"> </picture>
--   
--   GtkActionBar is expected to be displayed below the content
--   and expand horizontally to fill the area.
--   
--   It allows placing children at the start or the end. In addition, it
--   contains an internal centered box which is centered with respect to
--   the full width of the box, even if the children at either side take up
--   different amounts of space.
--   
--   
GtkActionBar as GtkBuildable
--   
--   The GtkActionBar implementation of the GtkBuildable
--   interface supports adding children at the start or end sides by
--   specifying “start” or “end” as the “type” attribute of a
--   <child> element, or setting the center widget by
--   specifying “center” value.
--   
--   
CSS nodes
--   
--   
--   actionbar
--   ╰── revealer
--       ╰── box
--           ├── box.start
--           │   ╰── [start children]
--           ├── [center widget]
--           ╰── box.end
--               ╰── [end children]
--   
--   
--   A GtkActionBar's CSS node is called actionbar. It
--   contains a revealer subnode, which contains a box
--   subnode, which contains two box subnodes at the start and end
--   of the action bar, with start and end style classes
--   respectively, as well as a center node that represents the center
--   child.
--   
--   Each of the boxes contains children packed for that side.
module GI.Gtk.Objects.ActionBar

-- | Memory-managed wrapper type.
newtype ActionBar
ActionBar :: ManagedPtr ActionBar -> ActionBar

-- | Type class for types which can be safely cast to ActionBar, for
--   instance with toActionBar.
class (GObject o, IsDescendantOf ActionBar o) => IsActionBar o

-- | Cast to ActionBar, for types for which this is known to be
--   safe. For general casts, use castTo.
toActionBar :: (MonadIO m, IsActionBar o) => o -> m ActionBar

-- | Retrieves the center bar widget of the bar.
actionBarGetCenterWidget :: (HasCallStack, MonadIO m, IsActionBar a) => a -> m (Maybe Widget)

-- | Gets whether the contents of the action bar are revealed.
actionBarGetRevealed :: (HasCallStack, MonadIO m, IsActionBar a) => a -> m Bool

-- | Creates a new action bar widget.
actionBarNew :: (HasCallStack, MonadIO m) => m ActionBar

-- | Adds a child to the action bar, packed with reference to the end of
--   the action bar.
actionBarPackEnd :: (HasCallStack, MonadIO m, IsActionBar a, IsWidget b) => a -> b -> m ()

-- | Adds a child to the action, packed with reference to the start of the
--   action bar.
actionBarPackStart :: (HasCallStack, MonadIO m, IsActionBar a, IsWidget b) => a -> b -> m ()

-- | Removes a child from the action bar.
actionBarRemove :: (HasCallStack, MonadIO m, IsActionBar a, IsWidget b) => a -> b -> m ()

-- | Sets the center widget for the action bar.
actionBarSetCenterWidget :: (HasCallStack, MonadIO m, IsActionBar a, IsWidget b) => a -> Maybe b -> m ()

-- | Reveals or conceals the content of the action bar.
--   
--   Note: this does not show or hide the action bar in the
--   Widget:visible sense, so revealing has no effect if the action
--   bar is hidden.
actionBarSetRevealed :: (HasCallStack, MonadIO m, IsActionBar a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “revealed” property. This is rarely needed directly, but it
--   is used by new.
constructActionBarRevealed :: (IsActionBar o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “revealed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get actionBar #revealed
--   
getActionBarRevealed :: (MonadIO m, IsActionBar o) => o -> m Bool

-- | Set the value of the “revealed” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set actionBar [ #revealed := value ]
--   
setActionBarRevealed :: (MonadIO m, IsActionBar o) => o -> Bool -> m ()
instance GHC.Classes.Eq GI.Gtk.Objects.ActionBar.ActionBar
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.ActionBar.ActionBar
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.ActionBar.ActionBar
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.ActionBar.ActionBar o) => GI.Gtk.Objects.ActionBar.IsActionBar o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.ActionBar.ActionBar)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.ActionBar.ActionBar
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.ActionBar.ActionBar

-- | Displays information about a program.
--   
--   The shown information includes the programs' logo, name, copyright,
--   website and license. It is also possible to give credits to the
--   authors, documenters, translators and artists who have worked on the
--   program.
--   
--   An about dialog is typically opened when the user selects the
--   About option from the Help menu. All parts of the
--   dialog are optional.
--   
--   <picture> <source srcset="aboutdialot-dark.png"
--   media="(prefers-color-scheme: dark)"> <img alt="An example
--   GtkAboutDialog" src="aboutdialog.png"> </picture>
--   
--   About dialogs often contain links and email addresses.
--   GtkAboutDialog displays these as clickable links. By default,
--   it calls fileLauncherLaunch when a user clicks one. The
--   behaviour can be overridden with the AboutDialog::activateLink
--   signal.
--   
--   To specify a person with an email address, use a string like Edgar
--   Allan Poe <edgar@poe.com>. To specify a website with a
--   title, use a string like GTK team https://www.gtk.org.
--   
--   To make constructing an about dialog as convenient as possible, you
--   can use the function Gtk.show_about_dialog which
--   constructs and shows a dialog and keeps it around so that it can be
--   shown again.
--   
--   Note that GTK sets a default title of _("About %s") on the
--   dialog window (where %s is replaced by the name of the
--   application, but in order to ensure proper translation of the title,
--   applications should set the title property explicitly when
--   constructing an about dialog, as shown in the following example:
--   
--   
c code
--   
--   
--   GFile *logo_file = g_file_new_for_path ("./logo.png");
--   GdkTexture *example_logo = gdk_texture_new_from_file (logo_file, NULL);
--   g_object_unref (logo_file);
--   
--   gtk_show_about_dialog (NULL,
--                          "program-name", "ExampleCode",
--                          "logo", example_logo,
--                          "title", _("About ExampleCode"),
--                          NULL);
--   
--   
--   
Shortcuts and Gestures
--   
--   GtkAboutDialog supports the following keyboard shortcuts:
--   
--   
--   
- <kbd>Escape</kbd> closes the window.
--   
--   
--   
CSS nodes
--   
--   GtkAboutDialog has a single CSS node with the name
--   window and style class .aboutdialog.
module GI.Gtk.Objects.AboutDialog

-- | Memory-managed wrapper type.
newtype AboutDialog
AboutDialog :: ManagedPtr AboutDialog -> AboutDialog

-- | Type class for types which can be safely cast to AboutDialog,
--   for instance with toAboutDialog.
class (GObject o, IsDescendantOf AboutDialog o) => IsAboutDialog o

-- | Cast to AboutDialog, for types for which this is known to be
--   safe. For general casts, use castTo.
toAboutDialog :: (MonadIO m, IsAboutDialog o) => o -> m AboutDialog

-- | Creates a new section in the "Credits" page.
aboutDialogAddCreditSection :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Text -> [Text] -> m ()

-- | Returns the names of the artists which are displayed in the credits
--   page.
aboutDialogGetArtists :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m [Text]

-- | Returns the names of the authors which are displayed in the credits
--   page.
aboutDialogGetAuthors :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m [Text]

-- | Returns the comments string.
aboutDialogGetComments :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the copyright string.
aboutDialogGetCopyright :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the name of the documenters which are displayed in the credits
--   page.
aboutDialogGetDocumenters :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m [Text]

-- | Returns the license information.
aboutDialogGetLicense :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Retrieves the license type.
aboutDialogGetLicenseType :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m License

-- | Returns the paintable displayed as logo in the about dialog.
aboutDialogGetLogo :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Paintable)

-- | Returns the icon name displayed as logo in the about dialog.
aboutDialogGetLogoIconName :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the program name displayed in the about dialog.
aboutDialogGetProgramName :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the system information that is shown in the about dialog.
aboutDialogGetSystemInformation :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the translator credits string which is displayed in the
--   credits page.
aboutDialogGetTranslatorCredits :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the version string.
aboutDialogGetVersion :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the website URL.
aboutDialogGetWebsite :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns the label used for the website link.
aboutDialogGetWebsiteLabel :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m (Maybe Text)

-- | Returns whether the license text in the about dialog is automatically
--   wrapped.
aboutDialogGetWrapLicense :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> m Bool

-- | Creates a new GtkAboutDialog.
aboutDialogNew :: (HasCallStack, MonadIO m) => m AboutDialog

-- | Sets the names of the artists to be displayed in the "Credits" page.
aboutDialogSetArtists :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> [Text] -> m ()

-- | Sets the names of the authors which are displayed in the "Credits"
--   page of the about dialog.
aboutDialogSetAuthors :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> [Text] -> m ()

-- | Sets the comments string to display in the about dialog.
--   
--   This should be a short string of one or two lines.
aboutDialogSetComments :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the copyright string to display in the about dialog.
--   
--   This should be a short string of one or two lines.
aboutDialogSetCopyright :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the names of the documenters which are displayed in the "Credits"
--   page.
aboutDialogSetDocumenters :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> [Text] -> m ()

-- | Sets the license information to be displayed in the about dialog.
--   
--   If license is NULL, the license page is hidden.
aboutDialogSetLicense :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the license of the application showing the about dialog from a
--   list of known licenses.
--   
--   This function overrides the license set using
--   aboutDialogSetLicense.
aboutDialogSetLicenseType :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> License -> m ()

-- | Sets the logo in the about dialog.
aboutDialogSetLogo :: (HasCallStack, MonadIO m, IsAboutDialog a, IsPaintable b) => a -> Maybe b -> m ()

-- | Sets the icon name to be displayed as logo in the about dialog.
aboutDialogSetLogoIconName :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the name to display in the about dialog.
--   
--   If name is not set, the string returned by
--   g_get_application_name() is used.
aboutDialogSetProgramName :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the system information to be displayed in the about dialog.
--   
--   If system_information is NULL, the system
--   information page is hidden.
--   
--   See AboutDialog:systemInformation.
aboutDialogSetSystemInformation :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the translator credits string which is displayed in the credits
--   page.
--   
--   The intended use for this string is to display the translator of the
--   language which is currently used in the user interface. Using
--   gettext(), a simple way to achieve that is to mark the string
--   for translation:
--   
--   
c code
--   
--   
--   GtkWidget *about = gtk_about_dialog_new ();
--    gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (about),
--                                             _("translator-credits"));
--   
--   
--   It is a good idea to use the customary msgid
--   “translator-credits” for this purpose, since translators will already
--   know the purpose of that msgid, and since
--   GtkAboutDialog will detect if “translator-credits” is
--   untranslated and omit translator credits.
aboutDialogSetTranslatorCredits :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the version string to display in the about dialog.
aboutDialogSetVersion :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the URL to use for the website link.
aboutDialogSetWebsite :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Maybe Text -> m ()

-- | Sets the label to be used for the website link.
aboutDialogSetWebsiteLabel :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Text -> m ()

-- | Sets whether the license text in the about dialog should be
--   automatically wrapped.
aboutDialogSetWrapLicense :: (HasCallStack, MonadIO m, IsAboutDialog a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “artists” property. This is rarely needed directly, but it is
--   used by new.
constructAboutDialogArtists :: (IsAboutDialog o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “artists” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #artists
--   
getAboutDialogArtists :: (MonadIO m, IsAboutDialog o) => o -> m [Text]

-- | Set the value of the “artists” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #artists := value ]
--   
setAboutDialogArtists :: (MonadIO m, IsAboutDialog o) => o -> [Text] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “authors” property. This is rarely needed directly, but it is
--   used by new.
constructAboutDialogAuthors :: (IsAboutDialog o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “authors” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #authors
--   
getAboutDialogAuthors :: (MonadIO m, IsAboutDialog o) => o -> m [Text]

-- | Set the value of the “authors” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #authors := value ]
--   
setAboutDialogAuthors :: (MonadIO m, IsAboutDialog o) => o -> [Text] -> m ()

-- | Set the value of the “comments” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #comments
--   
clearAboutDialogComments :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “comments” property. This is rarely needed directly, but it
--   is used by new.
constructAboutDialogComments :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “comments” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #comments
--   
getAboutDialogComments :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “comments” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #comments := value ]
--   
setAboutDialogComments :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Set the value of the “copyright” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #copyright
--   
clearAboutDialogCopyright :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “copyright” property. This is rarely needed directly, but it
--   is used by new.
constructAboutDialogCopyright :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “copyright” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #copyright
--   
getAboutDialogCopyright :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “copyright” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #copyright := value ]
--   
setAboutDialogCopyright :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “documenters” property. This is rarely needed directly, but
--   it is used by new.
constructAboutDialogDocumenters :: (IsAboutDialog o, MonadIO m) => [Text] -> m (GValueConstruct o)

-- | Get the value of the “documenters” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #documenters
--   
getAboutDialogDocumenters :: (MonadIO m, IsAboutDialog o) => o -> m [Text]

-- | Set the value of the “documenters” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #documenters := value ]
--   
setAboutDialogDocumenters :: (MonadIO m, IsAboutDialog o) => o -> [Text] -> m ()

-- | Set the value of the “license” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #license
--   
clearAboutDialogLicense :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “license” property. This is rarely needed directly, but it is
--   used by new.
constructAboutDialogLicense :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “license” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #license
--   
getAboutDialogLicense :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “license” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #license := value ]
--   
setAboutDialogLicense :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “license-type” property. This is rarely needed directly, but
--   it is used by new.
constructAboutDialogLicenseType :: (IsAboutDialog o, MonadIO m) => License -> m (GValueConstruct o)

-- | Get the value of the “license-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #licenseType
--   
getAboutDialogLicenseType :: (MonadIO m, IsAboutDialog o) => o -> m License

-- | Set the value of the “license-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #licenseType := value ]
--   
setAboutDialogLicenseType :: (MonadIO m, IsAboutDialog o) => o -> License -> m ()

-- | Set the value of the “logo” property to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #logo
--   
clearAboutDialogLogo :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “logo” property. This is rarely needed directly, but it is
--   used by new.
constructAboutDialogLogo :: (IsAboutDialog o, MonadIO m, IsPaintable a) => a -> m (GValueConstruct o)

-- | Get the value of the “logo” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get aboutDialog #logo
--   
getAboutDialogLogo :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Paintable)

-- | Set the value of the “logo” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #logo := value ]
--   
setAboutDialogLogo :: (MonadIO m, IsAboutDialog o, IsPaintable a) => o -> a -> m ()

-- | Set the value of the “logo-icon-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #logoIconName
--   
clearAboutDialogLogoIconName :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “logo-icon-name” property. This is rarely needed directly,
--   but it is used by new.
constructAboutDialogLogoIconName :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “logo-icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #logoIconName
--   
getAboutDialogLogoIconName :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “logo-icon-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #logoIconName := value ]
--   
setAboutDialogLogoIconName :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Set the value of the “program-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #programName
--   
clearAboutDialogProgramName :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “program-name” property. This is rarely needed directly, but
--   it is used by new.
constructAboutDialogProgramName :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “program-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #programName
--   
getAboutDialogProgramName :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “program-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #programName := value ]
--   
setAboutDialogProgramName :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Set the value of the “system-information” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #systemInformation
--   
clearAboutDialogSystemInformation :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “system-information” property. This is rarely needed
--   directly, but it is used by new.
constructAboutDialogSystemInformation :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “system-information” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #systemInformation
--   
getAboutDialogSystemInformation :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “system-information” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #systemInformation := value ]
--   
setAboutDialogSystemInformation :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Set the value of the “translator-credits” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #translatorCredits
--   
clearAboutDialogTranslatorCredits :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “translator-credits” property. This is rarely needed
--   directly, but it is used by new.
constructAboutDialogTranslatorCredits :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “translator-credits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #translatorCredits
--   
getAboutDialogTranslatorCredits :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “translator-credits” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #translatorCredits := value ]
--   
setAboutDialogTranslatorCredits :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Set the value of the “version” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #version
--   
clearAboutDialogVersion :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “version” property. This is rarely needed directly, but it is
--   used by new.
constructAboutDialogVersion :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “version” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #version
--   
getAboutDialogVersion :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “version” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #version := value ]
--   
setAboutDialogVersion :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Set the value of the “website” property to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #website
--   
clearAboutDialogWebsite :: (MonadIO m, IsAboutDialog o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “website” property. This is rarely needed directly, but it is
--   used by new.
constructAboutDialogWebsite :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “website” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #website
--   
getAboutDialogWebsite :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “website” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #website := value ]
--   
setAboutDialogWebsite :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “website-label” property. This is rarely needed directly, but
--   it is used by new.
constructAboutDialogWebsiteLabel :: (IsAboutDialog o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “website-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #websiteLabel
--   
getAboutDialogWebsiteLabel :: (MonadIO m, IsAboutDialog o) => o -> m (Maybe Text)

-- | Set the value of the “website-label” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #websiteLabel := value ]
--   
setAboutDialogWebsiteLabel :: (MonadIO m, IsAboutDialog o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “wrap-license” property. This is rarely needed directly, but
--   it is used by new.
constructAboutDialogWrapLicense :: (IsAboutDialog o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “wrap-license” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get aboutDialog #wrapLicense
--   
getAboutDialogWrapLicense :: (MonadIO m, IsAboutDialog o) => o -> m Bool

-- | Set the value of the “wrap-license” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set aboutDialog [ #wrapLicense := value ]
--   
setAboutDialogWrapLicense :: (MonadIO m, IsAboutDialog o) => o -> Bool -> m ()

-- | Emitted every time a URL is activated.
--   
--   Applications may connect to it to override the default behaviour,
--   which is to call fileLauncherLaunch.
type AboutDialogActivateLinkCallback = Text -> IO Bool

-- | Connect a signal handler for the activateLink signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after aboutDialog #activateLink callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterAboutDialogActivateLink :: (IsAboutDialog a, MonadIO m) => a -> ((?self :: a) => AboutDialogActivateLinkCallback) -> m SignalHandlerId

-- | Connect a signal handler for the activateLink signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on aboutDialog #activateLink callback
--   
onAboutDialogActivateLink :: (IsAboutDialog a, MonadIO m) => a -> ((?self :: a) => AboutDialogActivateLinkCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Objects.AboutDialog.AboutDialog
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Objects.AboutDialog.AboutDialog
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Objects.AboutDialog.AboutDialog
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Objects.AboutDialog.AboutDialog o) => GI.Gtk.Objects.AboutDialog.IsAboutDialog o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Objects.AboutDialog.AboutDialog)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Objects.AboutDialog.AboutDialog
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Objects.AboutDialog.AboutDialog

module GI.Gtk.Objects

-- | The interface for sortable models used by GtkTreeView
--   
--   GtkTreeSortable is an interface to be implemented by tree
--   models which support sorting. The GtkTreeView uses the
--   methods provided by this interface to sort the model.
module GI.Gtk.Interfaces.TreeSortable

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)There is no replacement for this
--   interface. You shoulduse SortListModel to wrap your list model
--   instead
newtype TreeSortable

-- | Deprecated: (Since version 4.10)There is no replacement for this
--   interface. You shoulduse SortListModel to wrap your list model
--   instead
TreeSortable :: ManagedPtr TreeSortable -> TreeSortable

-- | Type class for types which can be safely cast to TreeSortable,
--   for instance with toTreeSortable.
class (GObject o, IsDescendantOf TreeSortable o) => IsTreeSortable o

-- | Cast to TreeSortable, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeSortable :: (MonadIO m, IsTreeSortable o) => o -> m TreeSortable

-- | Fills in sortColumnId and order with
--   the current sort column and the order. It returns True unless
--   the sortColumnId is
--   TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or
--   TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.

-- | Deprecated: (Since version 4.10)
treeSortableGetSortColumnId :: (HasCallStack, MonadIO m, IsTreeSortable a) => a -> m (Bool, Int32, SortType)

-- | Returns True if the model has a default sort function. This is
--   used primarily by GtkTreeViewColumns in order to determine if a model
--   can go back to the default state, or not.

-- | Deprecated: (Since version 4.10)
treeSortableHasDefaultSortFunc :: (HasCallStack, MonadIO m, IsTreeSortable a) => a -> m Bool

-- | Sets the default comparison function used when sorting to be
--   sortFunc. If the current sort column id of
--   sortable is
--   TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort
--   using this function.
--   
--   If sortFunc is Nothing, then there will be no
--   default comparison function. This means that once the model has been
--   sorted, it can’t go back to the default state. In this case, when the
--   current sort column id of sortable is
--   TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be
--   unsorted.

-- | Deprecated: (Since version 4.10)
treeSortableSetDefaultSortFunc :: (HasCallStack, MonadIO m, IsTreeSortable a) => a -> TreeIterCompareFunc -> m ()

-- | Sets the current sort column to be sortColumnId. The
--   sortable will resort itself to reflect this change,
--   after emitting a GtkTreeSortable::sort-column-changed signal.
--   sortColumnId may either be a regular column id, or one
--   of the following special values:
--   
--   
--   
- TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID: the default sort
--   function will be used, if it is set
--   
- TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: no sorting will
--   occur
--   

-- | Deprecated: (Since version 4.10)
treeSortableSetSortColumnId :: (HasCallStack, MonadIO m, IsTreeSortable a) => a -> Int32 -> SortType -> m ()

-- | Sets the comparison function used when sorting to be
--   sortFunc. If the current sort column id of
--   sortable is the same as sortColumnId,
--   then the model will sort using this function.

-- | Deprecated: (Since version 4.10)
treeSortableSetSortFunc :: (HasCallStack, MonadIO m, IsTreeSortable a) => a -> Int32 -> TreeIterCompareFunc -> m ()

-- | Emits a GtkTreeSortable::sort-column-changed signal on
--   sortable.

-- | Deprecated: (Since version 4.10)
treeSortableSortColumnChanged :: (HasCallStack, MonadIO m, IsTreeSortable a) => a -> m ()

-- | The sortColumnChanged signal is emitted when the sort column or
--   sort order of sortable is changed. The signal is
--   emitted before the contents of sortable are resorted.
type TreeSortableSortColumnChangedCallback = IO ()

-- | Connect a signal handler for the sortColumnChanged signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeSortable #sortColumnChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeSortableSortColumnChanged :: (IsTreeSortable a, MonadIO m) => a -> ((?self :: a) => TreeSortableSortColumnChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the sortColumnChanged signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeSortable #sortColumnChanged callback
--   
onTreeSortableSortColumnChanged :: (IsTreeSortable a, MonadIO m) => a -> ((?self :: a) => TreeSortableSortColumnChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.TreeSortable.TreeSortable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.TreeSortable.TreeSortable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.TreeSortable.TreeSortable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.TreeSortable.TreeSortable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.TreeSortable.TreeSortable o) => GI.Gtk.Interfaces.TreeSortable.IsTreeSortable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.TreeSortable.TreeSortable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.TreeSortable.TreeSortable

-- | The tree interface used by GtkTreeView
--   
--   The GtkTreeModel interface defines a generic tree interface
--   for use by the GtkTreeView widget. It is an abstract
--   interface, and is designed to be usable with any appropriate data
--   structure. The programmer just has to implement this interface on
--   their own data type for it to be viewable by a GtkTreeView
--   widget.
--   
--   The model is represented as a hierarchical tree of strongly-typed,
--   columned data. In other words, the model can be seen as a tree where
--   every node has different values depending on which column is being
--   queried. The type of data found in a column is determined by using the
--   GType system (ie. G_TYPE_INT,
--   GTK_TYPE_BUTTON, G_TYPE_POINTER, etc).
--   The types are homogeneous per column across all nodes. It is important
--   to note that this interface only provides a way of examining a model
--   and observing changes. The implementation of each individual model
--   decides how and if changes are made.
--   
--   In order to make life simpler for programmers who do not need to write
--   their own specialized model, two generic models are provided — the
--   GtkTreeStore and the GtkListStore. To use these, the
--   developer simply pushes data into these models as necessary. These
--   models provide the data structure as well as all appropriate tree
--   interfaces. As a result, implementing drag and drop, sorting, and
--   storing data is trivial. For the vast majority of trees and lists,
--   these two models are sufficient.
--   
--   Models are accessed on a node/column level of granularity. One can
--   query for the value of a model at a certain node and a certain column
--   on that node. There are two structures used to reference a particular
--   node in a model. They are the TreePath and the TreeIter
--   (“iter” is short for iterator). Most of the interface consists of
--   operations on a TreeIter.
--   
--   A path is essentially a potential node. It is a location on a model
--   that may or may not actually correspond to a node on a specific model.
--   A TreePath can be converted into either an array of unsigned
--   integers or a string. The string form is a list of numbers separated
--   by a colon. Each number refers to the offset at that level. Thus, the
--   path 0 refers to the root node and the path 2:4
--   refers to the fifth child of the third node.
--   
--   By contrast, a TreeIter is a reference to a specific node on a
--   specific model. It is a generic struct with an integer and three
--   generic pointers. These are filled in by the model in a model-specific
--   way. One can convert a path to an iterator by calling
--   treeModelGetIter. These iterators are the primary way of
--   accessing a model and are similar to the iterators used by
--   GtkTextBuffer. They are generally statically allocated on the
--   stack and only used for a short time. The model interface defines a
--   set of operations using them for navigating the model.
--   
--   It is expected that models fill in the iterator with private data. For
--   example, the GtkListStore model, which is internally a simple
--   linked list, stores a list node in one of the pointers. The
--   GtkTreeModelSort stores an array and an offset in two of the
--   pointers. Additionally, there is an integer field. This field is
--   generally filled with a unique stamp per model. This stamp is for
--   catching errors resulting from using invalid iterators with a model.
--   
--   The lifecycle of an iterator can be a little confusing at first.
--   Iterators are expected to always be valid for as long as the model is
--   unchanged (and doesn’t emit a signal). The model is considered to own
--   all outstanding iterators and nothing needs to be done to free them
--   from the user’s point of view. Additionally, some models guarantee
--   that an iterator is valid for as long as the node it refers to is
--   valid (most notably the GtkTreeStore and
--   GtkListStore). Although generally uninteresting, as one
--   always has to allow for the case where iterators do not persist beyond
--   a signal, some very important performance enhancements were made in
--   the sort model. As a result, the TreeModelFlagsItersPersist
--   flag was added to indicate this behavior.
--   
--   To help show some common operation of a model, some examples are
--   provided. The first example shows three ways of getting the iter at
--   the location 3:2:5. While the first method shown is easier,
--   the second is much more common, as you often get paths from callbacks.
--   
--   
Acquiring a GtkTreeIter
--   
--   
c code
--   
--   
--   // Three ways of getting the iter pointing to the location
--   GtkTreePath *path;
--   GtkTreeIter iter;
--   GtkTreeIter parent_iter;
--   
--   // get the iterator from a string
--   gtk_tree_model_get_iter_from_string (model,
--                                        &iter,
--                                        "3:2:5");
--   
--   // get the iterator from a path
--   path = gtk_tree_path_new_from_string ("3:2:5");
--   gtk_tree_model_get_iter (model, &iter, path);
--   gtk_tree_path_free (path);
--   
--   // walk the tree to find the iterator
--   gtk_tree_model_iter_nth_child (model, &iter,
--                                  NULL, 3);
--   parent_iter = iter;
--   gtk_tree_model_iter_nth_child (model, &iter,
--                                  &parent_iter, 2);
--   parent_iter = iter;
--   gtk_tree_model_iter_nth_child (model, &iter,
--                                  &parent_iter, 5);
--   
--   
--   This second example shows a quick way of iterating through a list and
--   getting a string and an integer from each row. The
--   populate_model() function used below is not shown, as
--   it is specific to the GtkListStore. For information on how to
--   write such a function, see the GtkListStore documentation.
--   
--   
Reading data from a GtkTreeModel
--   
--   
c code
--   
--   
--   enum
--   {
--     STRING_COLUMN,
--     INT_COLUMN,
--     N_COLUMNS
--   };
--   
--   ...
--   
--   GtkTreeModel *list_store;
--   GtkTreeIter iter;
--   gboolean valid;
--   int row_count = 0;
--   
--   // make a new list_store
--   list_store = gtk_list_store_new (N_COLUMNS,
--                                    G_TYPE_STRING,
--                                    G_TYPE_INT);
--   
--   // Fill the list store with data
--   populate_model (list_store);
--   
--   // Get the first iter in the list, check it is valid and walk
--   // through the list, reading each row.
--   
--   valid = gtk_tree_model_get_iter_first (list_store,
--                                          &iter);
--   while (valid)
--    {
--      char *str_data;
--      int    int_data;
--   
--      // Make sure you terminate calls to gtk_tree_model_get() with a “-1” value
--      gtk_tree_model_get (list_store, &iter,
--                          STRING_COLUMN, &str_data,
--                          INT_COLUMN, &int_data,
--                          -1);
--   
--      // Do something with the data
--      g_print ("Row %d: (%s,%d)\n",
--               row_count, str_data, int_data);
--      g_free (str_data);
--   
--      valid = gtk_tree_model_iter_next (list_store,
--                                        &iter);
--      row_count++;
--    }
--   
--   
--   The GtkTreeModel interface contains two methods for reference
--   counting: treeModelRefNode and treeModelUnrefNode. These
--   two methods are optional to implement. The reference counting is meant
--   as a way for views to let models know when nodes are being displayed.
--   GtkTreeView will take a reference on a node when it is
--   visible, which means the node is either in the toplevel or expanded.
--   Being displayed does not mean that the node is currently directly
--   visible to the user in the viewport. Based on this reference counting
--   scheme a caching model, for example, can decide whether or not to
--   cache a node based on the reference count. A file-system based model
--   would not want to keep the entire file hierarchy in memory, but just
--   the folders that are currently expanded in every current view.
--   
--   When working with reference counting, the following rules must be
--   taken into account:
--   
--   
--   
- Never take a reference on a node without owning a reference on its
--   parent. This means that all parent nodes of a referenced node must be
--   referenced as well.
--   
- Outstanding references on a deleted node are not released. This is
--   not possible because the node has already been deleted by the time the
--   row-deleted signal is received.
--   
- Models are not obligated to emit a signal on rows of which none of
--   its siblings are referenced. To phrase this differently, signals are
--   only required for levels in which nodes are referenced. For the root
--   level however, signals must be emitted at all times (however the root
--   level is always referenced when any view is attached).
--   
module GI.Gtk.Interfaces.TreeModel

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)Use ListModel instead
newtype TreeModel

-- | Deprecated: (Since version 4.10)Use ListModel instead
TreeModel :: ManagedPtr TreeModel -> TreeModel

-- | Type class for types which can be safely cast to TreeModel, for
--   instance with toTreeModel.
class (GObject o, IsDescendantOf TreeModel o) => IsTreeModel o

-- | Cast to TreeModel, for types for which this is known to be
--   safe. For general casts, use castTo.
toTreeModel :: (MonadIO m, IsTreeModel o) => o -> m TreeModel

-- | Creates a new GtkTreeModel, with childModel
--   as the child_model and root as the virtual root.

-- | Deprecated: (Since version 4.10)
treeModelFilterNew :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> Maybe TreePath -> m TreeModel

-- | Calls func on each node in model in a depth-first
--   fashion.
--   
--   If func returns True, then the tree ceases to
--   be walked, and treeModelForeach returns.

-- | Deprecated: (Since version 4.10)
treeModelForeach :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeModelForeachFunc -> m ()

-- | Returns the type of the column.

-- | Deprecated: (Since version 4.10)
treeModelGetColumnType :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> Int32 -> m GType

-- | Returns a set of flags supported by this interface.
--   
--   The flags are a bitwise combination of GtkTreeModelFlags. The
--   flags supported should not change during the lifetime of the
--   treeModel.

-- | Deprecated: (Since version 4.10)
treeModelGetFlags :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m [TreeModelFlags]

-- | Sets iter to a valid iterator pointing to
--   path.
--   
--   If path does not exist, iter is set to
--   an invalid iterator and False is returned.

-- | Deprecated: (Since version 4.10)
treeModelGetIter :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> m (Bool, TreeIter)

-- | Initializes iter with the first iterator in the tree
--   (the one at the path "0").
--   
--   Returns False if the tree is empty, True otherwise.

-- | Deprecated: (Since version 4.10)
treeModelGetIterFirst :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m (Bool, TreeIter)

-- | Sets iter to a valid iterator pointing to
--   pathString, if it exists.
--   
--   Otherwise, iter is left invalid and False is
--   returned.

-- | Deprecated: (Since version 4.10)
treeModelGetIterFromString :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> Text -> m (Bool, TreeIter)

-- | Returns the number of columns supported by treeModel.

-- | Deprecated: (Since version 4.10)
treeModelGetNColumns :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> m Int32

-- | Returns a newly-created GtkTreePath referenced by
--   iter.
--   
--   This path should be freed with treePathFree.

-- | Deprecated: (Since version 4.10)
treeModelGetPath :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m TreePath

-- | Generates a string representation of the iter.
--   
--   This string is a “:” separated list of numbers. For example,
--   “4:10:0:3” would be an acceptable return value for this string.

-- | Deprecated: (Since version 4.10)
treeModelGetStringFromIter :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m (Maybe Text)

-- | Initializes and sets value to that at
--   column.
--   
--   When done with value, valueUnset needs to be
--   called to free any allocated memory.

-- | Deprecated: (Since version 4.10)
treeModelGetValue :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> Int32 -> m GValue

-- | Sets iter to point to the first child of
--   parent.
--   
--   If parent has no children, False is returned
--   and iter is set to be invalid. parent
--   will remain a valid node after this function has been called.
--   
--   If parent is Nothing returns the first node,
--   equivalent to gtk_tree_model_get_iter_first (tree_model,
--   iter);

-- | Deprecated: (Since version 4.10)
treeModelIterChildren :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> Maybe TreeIter -> m (Bool, TreeIter)

-- | Returns True if iter has children, False
--   otherwise.

-- | Deprecated: (Since version 4.10)
treeModelIterHasChild :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m Bool

-- | Returns the number of children that iter has.
--   
--   As a special case, if iter is Nothing, then the
--   number of toplevel nodes is returned.

-- | Deprecated: (Since version 4.10)
treeModelIterNChildren :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> Maybe TreeIter -> m Int32

-- | Sets iter to point to the node following it at the
--   current level.
--   
--   If there is no next iter, False is returned and
--   iter is set to be invalid.

-- | Deprecated: (Since version 4.10)
treeModelIterNext :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m Bool

-- | Sets iter to be the child of parent,
--   using the given index.
--   
--   The first index is 0. If n is too big, or
--   parent has no children, iter is set to
--   an invalid iterator and False is returned.
--   parent will remain a valid node after this function
--   has been called. As a special case, if parent is
--   Nothing, then the n-th root node is set.

-- | Deprecated: (Since version 4.10)
treeModelIterNthChild :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> Maybe TreeIter -> Int32 -> m Bool

-- | Sets iter to be the parent of child.
--   
--   If child is at the toplevel, and doesn’t have a
--   parent, then iter is set to an invalid iterator and
--   False is returned. child will remain a valid
--   node after this function has been called.
--   
--   iter will be initialized before the lookup is
--   performed, so child and iter cannot
--   point to the same memory location.

-- | Deprecated: (Since version 4.10)
treeModelIterParent :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m (Bool, TreeIter)

-- | Sets iter to point to the previous node at the current
--   level.
--   
--   If there is no previous iter, False is returned
--   and iter is set to be invalid.

-- | Deprecated: (Since version 4.10)
treeModelIterPrevious :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m Bool

-- | Lets the tree ref the node.
--   
--   This is an optional method for models to implement. To be more
--   specific, models may ignore this call as it exists primarily for
--   performance reasons.
--   
--   This function is primarily meant as a way for views to let caching
--   models know when nodes are being displayed (and hence, whether or not
--   to cache that node). Being displayed means a node is in an expanded
--   branch, regardless of whether the node is currently visible in the
--   viewport. For example, a file-system based model would not want to
--   keep the entire file-hierarchy in memory, just the sections that are
--   currently being displayed by every current view.
--   
--   A model should be expected to be able to get an iter independent of
--   its reffed state.

-- | Deprecated: (Since version 4.10)
treeModelRefNode :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m ()

-- | Emits the rowChanged signal on treeModel.
--   
--   See TreeModel::rowChanged.

-- | Deprecated: (Since version 4.10)
treeModelRowChanged :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> TreeIter -> m ()

-- | Emits the rowDeleted signal on treeModel.
--   
--   See TreeModel::rowDeleted.
--   
--   This should be called by models after a row has been removed. The
--   location pointed to by path should be the location
--   that the row previously was at. It may not be a valid location
--   anymore.
--   
--   Nodes that are deleted are not unreffed, this means that any
--   outstanding references on the deleted node should not be released.

-- | Deprecated: (Since version 4.10)
treeModelRowDeleted :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> m ()

-- | Emits the rowHasChildToggled signal on
--   treeModel.
--   
--   See TreeModel::rowHasChildToggled.
--   
--   This should be called by models after the child state of a node
--   changes.

-- | Deprecated: (Since version 4.10)
treeModelRowHasChildToggled :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> TreeIter -> m ()

-- | Emits the rowInserted signal on treeModel.
--   
--   See TreeModel::rowInserted.

-- | Deprecated: (Since version 4.10)
treeModelRowInserted :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> TreeIter -> m ()

-- | Emits the rowsReordered signal on treeModel.
--   
--   See TreeModel::rows-reordered.
--   
--   This should be called by models when their rows have been reordered.

-- | Deprecated: (Since version 4.10)
treeModelRowsReordered :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> Maybe TreeIter -> [Int32] -> m ()

-- | Lets the tree unref the node.
--   
--   This is an optional method for models to implement. To be more
--   specific, models may ignore this call as it exists primarily for
--   performance reasons. For more information on what this means, see
--   treeModelRefNode.
--   
--   Please note that nodes that are deleted are not unreffed.

-- | Deprecated: (Since version 4.10)
treeModelUnrefNode :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreeIter -> m ()

-- | This signal is emitted when a row in the model has changed.
type TreeModelRowChangedCallback = TreePath -> TreeIter -> IO ()

-- | Connect a signal handler for the rowChanged signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeModel #rowChanged callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeModelRowChanged :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowChanged signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeModel #rowChanged callback
--   
onTreeModelRowChanged :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowChangedCallback) -> m SignalHandlerId

-- | This signal is emitted when a row has been deleted.
--   
--   Note that no iterator is passed to the signal handler, since the row
--   is already deleted.
--   
--   This should be called by models after a row has been removed. The
--   location pointed to by path should be the location
--   that the row previously was at. It may not be a valid location
--   anymore.
type TreeModelRowDeletedCallback = TreePath -> IO ()

-- | Connect a signal handler for the rowDeleted signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeModel #rowDeleted callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeModelRowDeleted :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowDeletedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowDeleted signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeModel #rowDeleted callback
--   
onTreeModelRowDeleted :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowDeletedCallback) -> m SignalHandlerId

-- | This signal is emitted when a row has gotten the first child row or
--   lost its last child row.
type TreeModelRowHasChildToggledCallback = TreePath -> TreeIter -> IO ()

-- | Connect a signal handler for the rowHasChildToggled signal, to
--   be run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after treeModel #rowHasChildToggled callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeModelRowHasChildToggled :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowHasChildToggledCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowHasChildToggled signal, to
--   be run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on treeModel #rowHasChildToggled callback
--   
onTreeModelRowHasChildToggled :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowHasChildToggledCallback) -> m SignalHandlerId

-- | This signal is emitted when a new row has been inserted in the model.
--   
--   Note that the row may still be empty at this point, since it is a
--   common pattern to first insert an empty row, and then fill it with the
--   desired values.
type TreeModelRowInsertedCallback = TreePath -> TreeIter -> IO ()

-- | Connect a signal handler for the rowInserted signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after treeModel #rowInserted callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterTreeModelRowInserted :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowInsertedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the rowInserted signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on treeModel #rowInserted callback
--   
onTreeModelRowInserted :: (IsTreeModel a, MonadIO m) => a -> ((?self :: a) => TreeModelRowInsertedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.TreeModel.TreeModel
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.TreeModel.TreeModel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.TreeModel.TreeModel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.TreeModel.TreeModel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.TreeModel.TreeModel o) => GI.Gtk.Interfaces.TreeModel.IsTreeModel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.TreeModel.TreeModel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.TreeModel.TreeModel

-- | An interface for widgets that can act as the root of a widget
--   hierarchy.
--   
--   The root widget takes care of providing the connection to the
--   windowing system and manages layout, drawing and event delivery for
--   its widget hierarchy.
--   
--   The obvious example of a GtkRoot is GtkWindow.
--   
--   To get the display to which a GtkRoot belongs, use
--   rootGetDisplay.
--   
--   GtkRoot also maintains the location of keyboard focus inside
--   its widget hierarchy, with rootSetFocus and
--   rootGetFocus.
module GI.Gtk.Interfaces.Root

-- | Memory-managed wrapper type.
newtype Root
Root :: ManagedPtr Root -> Root

-- | Type class for types which can be safely cast to Root, for
--   instance with toRoot.
class (GObject o, IsDescendantOf Root o) => IsRoot o

-- | Cast to Root, for types for which this is known to be safe. For
--   general casts, use castTo.
toRoot :: (MonadIO m, IsRoot o) => o -> m Root

-- | Returns the display that this GtkRoot is on.
rootGetDisplay :: (HasCallStack, MonadIO m, IsRoot a) => a -> m Display

-- | Retrieves the current focused widget within the root.
--   
--   Note that this is the widget that would have the focus if the root is
--   active; if the root is not focused then gtk_widget_has_focus
--   (widget) will be False for the widget.
rootGetFocus :: (HasCallStack, MonadIO m, IsRoot a) => a -> m (Maybe Widget)

-- | If focus is not the current focus widget, and is
--   focusable, sets it as the focus widget for the root.
--   
--   If focus is Nothing, unsets the focus widget
--   for the root.
--   
--   To set the focus to a particular widget in the root, it is usually
--   more convenient to use widgetGrabFocus instead of this
--   function.
rootSetFocus :: (HasCallStack, MonadIO m, IsRoot a, IsWidget b) => a -> Maybe b -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.Root.Root
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Root.Root
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Root.Root
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Root.Root)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Root.Root o) => GI.Gtk.Interfaces.Root.IsRoot o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Root.Root
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Root.Root

-- | An interface for widgets that have their own Surface.
--   
--   The obvious example of a GtkNative is GtkWindow.
--   
--   Every widget that is not itself a GtkNative is contained in
--   one, and you can get it with widgetGetNative.
--   
--   To get the surface of a GtkNative, use
--   nativeGetSurface. It is also possible to find the
--   GtkNative to which a surface belongs, with
--   nativeGetForSurface.
--   
--   In addition to a Surface, a GtkNative also provides a
--   Renderer for rendering on that surface. To get the renderer,
--   use nativeGetRenderer.
module GI.Gtk.Interfaces.Native

-- | Memory-managed wrapper type.
newtype Native
Native :: ManagedPtr Native -> Native

-- | Type class for types which can be safely cast to Native, for
--   instance with toNative.
class (GObject o, IsDescendantOf Native o) => IsNative o

-- | Cast to Native, for types for which this is known to be safe.
--   For general casts, use castTo.
toNative :: (MonadIO m, IsNative o) => o -> m Native

-- | Finds the GtkNative associated with the surface.
nativeGetForSurface :: (HasCallStack, MonadIO m, IsSurface a) => a -> m (Maybe Native)

-- | Returns the renderer that is used for this GtkNative.
nativeGetRenderer :: (HasCallStack, MonadIO m, IsNative a) => a -> m (Maybe Renderer)

-- | Returns the surface of this GtkNative.
nativeGetSurface :: (HasCallStack, MonadIO m, IsNative a) => a -> m (Maybe Surface)

-- | Retrieves the surface transform of self.
--   
--   This is the translation from self's surface
--   coordinates into self's widget coordinates.
nativeGetSurfaceTransform :: (HasCallStack, MonadIO m, IsNative a) => a -> m (Double, Double)

-- | Realizes a GtkNative.
--   
--   This should only be used by subclasses.
nativeRealize :: (HasCallStack, MonadIO m, IsNative a) => a -> m ()

-- | Unrealizes a GtkNative.
--   
--   This should only be used by subclasses.
nativeUnrealize :: (HasCallStack, MonadIO m, IsNative a) => a -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.Native.Native
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Native.Native
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Native.Native
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Native.Native)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Native.Native o) => GI.Gtk.Interfaces.Native.IsNative o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Native.Native
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Native.Native

-- | GtkFontChooser is an interface that can be implemented by
--   widgets for choosing fonts.
--   
--   In GTK, the main objects that implement this interface are
--   FontChooserWidget, FontChooserDialog and
--   FontButton.
module GI.Gtk.Interfaces.FontChooser

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
newtype FontChooser

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
FontChooser :: ManagedPtr FontChooser -> FontChooser

-- | Type class for types which can be safely cast to FontChooser,
--   for instance with toFontChooser.
class (GObject o, IsDescendantOf FontChooser o) => IsFontChooser o

-- | Cast to FontChooser, for types for which this is known to be
--   safe. For general casts, use castTo.
toFontChooser :: (MonadIO m, IsFontChooser o) => o -> m FontChooser

-- | Gets the currently-selected font name.
--   
--   Note that this can be a different string than what you set with
--   fontChooserSetFont, as the font chooser widget may normalize
--   font names and thus return a string with a different structure. For
--   example, “Helvetica Italic Bold 12” could be normalized to “Helvetica
--   Bold Italic 12”.
--   
--   Use fontDescriptionEqual if you want to compare two font
--   descriptions.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFont :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m (Maybe Text)

-- | Gets the currently-selected font.
--   
--   Note that this can be a different string than what you set with
--   fontChooserSetFont, as the font chooser widget may normalize
--   font names and thus return a string with a different structure. For
--   example, “Helvetica Italic Bold 12” could be normalized to “Helvetica
--   Bold Italic 12”.
--   
--   Use fontDescriptionEqual if you want to compare two font
--   descriptions.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFontDesc :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m (Maybe FontDescription)

-- | Gets the PangoFontFace representing the selected font group
--   details (i.e. family, slant, weight, width, etc).
--   
--   If the selected font is not installed, returns Nothing.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFontFace :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m (Maybe FontFace)

-- | Gets the PangoFontFamily representing the selected font
--   family.
--   
--   Font families are a collection of font faces.
--   
--   If the selected font is not installed, returns Nothing.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFontFamily :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m (Maybe FontFamily)

-- | Gets the currently-selected font features.
--   
--   The format of the returned string is compatible with the CSS
--   font-feature-settings property. It can be passed to
--   attrFontFeaturesNew.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFontFeatures :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m Text

-- | Gets the custom font map of this font chooser widget, or
--   Nothing if it does not have one.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFontMap :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m (Maybe FontMap)

-- | The selected font size.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetFontSize :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m Int32

-- | Gets the language that is used for font features.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetLanguage :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m Text

-- | Returns the current level of granularity for selecting fonts.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetLevel :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m [FontChooserLevel]

-- | Gets the text displayed in the preview area.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetPreviewText :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m Text

-- | Returns whether the preview entry is shown or not.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserGetShowPreviewEntry :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> m Bool

-- | Adds a filter function that decides which fonts to display in the font
--   chooser.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetFilterFunc :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> Maybe FontFilterFunc -> m ()

-- | Sets the currently-selected font.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetFont :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> Text -> m ()

-- | Sets the currently-selected font from fontDesc.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetFontDesc :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> FontDescription -> m ()

-- | Sets a custom font map to use for this font chooser widget.
--   
--   A custom font map can be used to present application-specific fonts
--   instead of or in addition to the normal system fonts.
--   
--   
c code
--   
--   
--   FcConfig *config;
--   PangoFontMap *fontmap;
--   
--   config = FcInitLoadConfigAndFonts ();
--   FcConfigAppFontAddFile (config, my_app_font_file);
--   
--   fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT);
--   pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fontmap), config);
--   
--   gtk_font_chooser_set_font_map (font_chooser, fontmap);
--   
--   
--   Note that other GTK widgets will only be able to use the
--   application-specific font if it is present in the font map they use:
--   
--   
c code
--   
--   
--   context = gtk_widget_get_pango_context (label);
--   pango_context_set_font_map (context, fontmap);
--   

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetFontMap :: (HasCallStack, MonadIO m, IsFontChooser a, IsFontMap b) => a -> Maybe b -> m ()

-- | Sets the language to use for font features.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetLanguage :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> Text -> m ()

-- | Sets the desired level of granularity for selecting fonts.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetLevel :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> [FontChooserLevel] -> m ()

-- | Sets the text displayed in the preview area.
--   
--   The text is used to show how the selected font looks.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetPreviewText :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> Text -> m ()

-- | Shows or hides the editable preview entry.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButtoninstead
fontChooserSetShowPreviewEntry :: (HasCallStack, MonadIO m, IsFontChooser a) => a -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font” property. This is rarely needed directly, but it is
--   used by new.
constructFontChooserFont :: (IsFontChooser o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “font” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get fontChooser #font
--   
getFontChooserFont :: (MonadIO m, IsFontChooser o) => o -> m (Maybe Text)

-- | Set the value of the “font” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set fontChooser [ #font := value ]
--   
setFontChooserFont :: (MonadIO m, IsFontChooser o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “font-desc” property. This is rarely needed directly, but it
--   is used by new.
constructFontChooserFontDesc :: (IsFontChooser o, MonadIO m) => FontDescription -> m (GValueConstruct o)

-- | Get the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooser #fontDesc
--   
getFontChooserFontDesc :: (MonadIO m, IsFontChooser o) => o -> m (Maybe FontDescription)

-- | Set the value of the “font-desc” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontChooser [ #fontDesc := value ]
--   
setFontChooserFontDesc :: (MonadIO m, IsFontChooser o) => o -> FontDescription -> m ()

-- | Get the value of the “font-features” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooser #fontFeatures
--   
getFontChooserFontFeatures :: (MonadIO m, IsFontChooser o) => o -> m (Maybe Text)

-- | Construct a GValueConstruct with valid value for the
--   “language” property. This is rarely needed directly, but it
--   is used by new.
constructFontChooserLanguage :: (IsFontChooser o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooser #language
--   
getFontChooserLanguage :: (MonadIO m, IsFontChooser o) => o -> m (Maybe Text)

-- | Set the value of the “language” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontChooser [ #language := value ]
--   
setFontChooserLanguage :: (MonadIO m, IsFontChooser o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “level” property. This is rarely needed directly, but it is
--   used by new.
constructFontChooserLevel :: (IsFontChooser o, MonadIO m) => [FontChooserLevel] -> m (GValueConstruct o)

-- | Get the value of the “level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooser #level
--   
getFontChooserLevel :: (MonadIO m, IsFontChooser o) => o -> m [FontChooserLevel]

-- | Set the value of the “level” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontChooser [ #level := value ]
--   
setFontChooserLevel :: (MonadIO m, IsFontChooser o) => o -> [FontChooserLevel] -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “preview-text” property. This is rarely needed directly, but
--   it is used by new.
constructFontChooserPreviewText :: (IsFontChooser o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “preview-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooser #previewText
--   
getFontChooserPreviewText :: (MonadIO m, IsFontChooser o) => o -> m (Maybe Text)

-- | Set the value of the “preview-text” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontChooser [ #previewText := value ]
--   
setFontChooserPreviewText :: (MonadIO m, IsFontChooser o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “show-preview-entry” property. This is rarely needed
--   directly, but it is used by new.
constructFontChooserShowPreviewEntry :: (IsFontChooser o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “show-preview-entry” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get fontChooser #showPreviewEntry
--   
getFontChooserShowPreviewEntry :: (MonadIO m, IsFontChooser o) => o -> m Bool

-- | Set the value of the “show-preview-entry” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set fontChooser [ #showPreviewEntry := value ]
--   
setFontChooserShowPreviewEntry :: (MonadIO m, IsFontChooser o) => o -> Bool -> m ()

-- | Emitted when a font is activated.
--   
--   This usually happens when the user double clicks an item, or an item
--   is selected and the user presses one of the keys Space, Shift+Space,
--   Return or Enter.

-- | Deprecated: (Since version 4.10)Use FontDialog and
--   FontDialogButton instead
type FontChooserFontActivatedCallback = Text -> IO ()

-- | Connect a signal handler for the fontActivated signal, to be
--   run after the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   after fontChooser #fontActivated callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterFontChooserFontActivated :: (IsFontChooser a, MonadIO m) => a -> ((?self :: a) => FontChooserFontActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the fontActivated signal, to be
--   run before the default handler. When overloading is enabled,
--   this is equivalent to
--   
--   
--   on fontChooser #fontActivated callback
--   
onFontChooserFontActivated :: (IsFontChooser a, MonadIO m) => a -> ((?self :: a) => FontChooserFontActivatedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.FontChooser.FontChooser
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.FontChooser.FontChooser
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.FontChooser.FontChooser
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.FontChooser.FontChooser o) => GI.Gtk.Interfaces.FontChooser.IsFontChooser o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.FontChooser.FontChooser)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.FontChooser.FontChooser
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.FontChooser.FontChooser

-- | Interface for single-line text editing widgets.
--   
--   Typical examples of editable widgets are Entry and
--   SpinButton. It contains functions for generically manipulating
--   an editable widget, a large number of action signals used for key
--   bindings, and several signals that an application can connect to
--   modify the behavior of a widget.
--   
--   As an example of the latter usage, by connecting the following handler
--   to Editable::insertText, an application can convert all entry
--   into a widget into uppercase.
--   
--   
Forcing entry to uppercase.
--   
--   
c code
--   
--   
--   #include <ctype.h>
--   
--   void
--   insert_text_handler (GtkEditable *editable,
--                        const char  *text,
--                        int          length,
--                        int         *position,
--                        gpointer     data)
--   {
--     char *result = g_utf8_strup (text, length);
--   
--     g_signal_handlers_block_by_func (editable,
--                                  (gpointer) insert_text_handler, data);
--     gtk_editable_insert_text (editable, result, length, position);
--     g_signal_handlers_unblock_by_func (editable,
--                                        (gpointer) insert_text_handler, data);
--   
--     g_signal_stop_emission_by_name (editable, "insert_text");
--   
--     g_free (result);
--   }
--   
--   
--   
Implementing GtkEditable
--   
--   The most likely scenario for implementing GtkEditable on your
--   own widget is that you will embed a GtkText inside a complex
--   widget, and want to delegate the editable functionality to that text
--   widget. GtkEditable provides some utility functions to make
--   this easy.
--   
--   In your class_init function, call editableInstallProperties,
--   passing the first available property ID:
--   
--   
c code
--   
--   
--   static void
--   my_class_init (MyClass *class)
--   {
--     ...
--     g_object_class_install_properties (object_class, NUM_PROPERTIES, props);
--     gtk_editable_install_properties (object_clas, NUM_PROPERTIES);
--     ...
--   }
--   
--   
--   In your interface_init function for the GtkEditable
--   interface, provide an implementation for the get_delegate vfunc that
--   returns your text widget:
--   
--   
c code
--   
--   
--   GtkEditable *
--   get_editable_delegate (GtkEditable *editable)
--   {
--     return GTK_EDITABLE (MY_WIDGET (editable)->text_widget);
--   }
--   
--   static void
--   my_editable_init (GtkEditableInterface *iface)
--   {
--     iface->get_delegate = get_editable_delegate;
--   }
--   
--   
--   You don't need to provide any other vfuncs. The default
--   implementations work by forwarding to the delegate that the
--   GtkEditableInterface.get_delegate() vfunc returns.
--   
--   In your instance_init function, create your text widget, and then call
--   editableInitDelegate:
--   
--   
c code
--   
--   
--   static void
--   my_widget_init (MyWidget *self)
--   {
--     ...
--     self->text_widget = gtk_text_new ();
--     gtk_editable_init_delegate (GTK_EDITABLE (self));
--     ...
--   }
--   
--   
--   In your dispose function, call editableFinishDelegate before
--   destroying your text widget:
--   
--   
c code
--   
--   
--   static void
--   my_widget_dispose (GObject *object)
--   {
--     ...
--     gtk_editable_finish_delegate (GTK_EDITABLE (self));
--     g_clear_pointer (&self->text_widget, gtk_widget_unparent);
--     ...
--   }
--   
--   
--   Finally, use editableDelegateSetProperty in your
--   set_property function (and similar for
--   get_property), to set the editable properties:
--   
--   
c code
--   
--   
--   ...
--   if (gtk_editable_delegate_set_property (object, prop_id, value, pspec))
--     return;
--   
--   switch (prop_id)
--   ...
--   
--   
--   It is important to note that if you create a GtkEditable that
--   uses a delegate, the low level Editable::insertText and
--   Editable::deleteText signals will be propagated from the
--   "wrapper" editable to the delegate, but they will not be propagated
--   from the delegate to the "wrapper" editable, as they would cause an
--   infinite recursion. If you wish to connect to the
--   Editable::insertText and Editable::deleteText signals,
--   you will need to connect to them on the delegate obtained via
--   editableGetDelegate.
module GI.Gtk.Interfaces.Editable

-- | Memory-managed wrapper type.
newtype Editable
Editable :: ManagedPtr Editable -> Editable

-- | Type class for types which can be safely cast to Editable, for
--   instance with toEditable.
class (GObject o, IsDescendantOf Editable o) => IsEditable o

-- | Cast to Editable, for types for which this is known to be safe.
--   For general casts, use castTo.
toEditable :: (MonadIO m, IsEditable o) => o -> m Editable

-- | Retrieves the accessible platform state from the editable delegate.
--   
--   This is an helper function to retrieve the accessible state for
--   GtkEditable interface implementations using a delegate
--   pattern.
--   
--   You should call this function in your editable widget implementation
--   of the Accessible.get_platform_state() virtual
--   function, for instance:
--   
--   
c code
--   
--   
--   static void
--   accessible_interface_init (GtkAccessibleInterface *iface)
--   {
--     iface->get_platform_state = your_editable_get_accessible_platform_state;
--   }
--   
--   static gboolean
--   your_editable_get_accessible_platform_state (GtkAccessible *accessible,
--                                                GtkAccessiblePlatformState state)
--   {
--     return gtk_editable_delegate_get_accessible_platform_state (GTK_EDITABLE (accessible), state);
--   }
--   
--   
--   Note that the widget which is the delegate *must* be a direct child of
--   this widget, otherwise your implementation of
--   Accessible.get_platform_state() might not even
--   be called, as the platform change will originate from the parent of
--   the delegate, and, as a result, will not work properly.
--   
--   So, if you can't ensure the direct child condition, you should give
--   the delegate the AccessibleRoleTextBox role, or you can change
--   your tree to allow this function to work.
--   
--   Since: 4.10
editableDelegateGetAccessiblePlatformState :: (HasCallStack, MonadIO m, IsEditable a) => a -> AccessiblePlatformState -> m Bool

-- | Gets a property of the GtkEditable delegate for
--   object.
--   
--   This is helper function that should be called in the
--   get_property function of your GtkEditable
--   implementation, before handling your own properties.
editableDelegateGetProperty :: (HasCallStack, MonadIO m, IsObject a) => a -> Word32 -> GValue -> GParamSpec -> m Bool

-- | Sets a property on the GtkEditable delegate for
--   object.
--   
--   This is a helper function that should be called in the
--   set_property function of your GtkEditable
--   implementation, before handling your own properties.
editableDelegateSetProperty :: (HasCallStack, MonadIO m, IsObject a) => a -> Word32 -> GValue -> GParamSpec -> m Bool

-- | Deletes the currently selected text of the editable.
--   
--   This call doesn’t do anything if there is no selected text.
editableDeleteSelection :: (HasCallStack, MonadIO m, IsEditable a) => a -> m ()

-- | Deletes a sequence of characters.
--   
--   The characters that are deleted are those characters at positions from
--   startPos up to, but not including
--   endPos. If endPos is negative, then
--   the characters deleted are those from startPos to the
--   end of the text.
--   
--   Note that the positions are specified in characters, not bytes.
editableDeleteText :: (HasCallStack, MonadIO m, IsEditable a) => a -> Int32 -> Int32 -> m ()

-- | Undoes the setup done by editableInitDelegate.
--   
--   This is a helper function that should be called from dispose, before
--   removing the delegate object.
editableFinishDelegate :: (HasCallStack, MonadIO m, IsEditable a) => a -> m ()

-- | Gets the alignment of the editable.
editableGetAlignment :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Float

-- | Retrieves a sequence of characters.
--   
--   The characters that are retrieved are those characters at positions
--   from startPos up to, but not including
--   endPos. If endPos is negative, then
--   the characters retrieved are those characters from
--   startPos to the end of the text.
--   
--   Note that positions are specified in characters, not bytes.
editableGetChars :: (HasCallStack, MonadIO m, IsEditable a) => a -> Int32 -> Int32 -> m Text

-- | Gets the GtkEditable that editable is
--   delegating its implementation to.
--   
--   Typically, the delegate is a Text widget.
editableGetDelegate :: (HasCallStack, MonadIO m, IsEditable a) => a -> m (Maybe Editable)

-- | Retrieves whether editable is editable.
editableGetEditable :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Bool

-- | Gets if undo/redo actions are enabled for editable
editableGetEnableUndo :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Bool

-- | Retrieves the desired maximum width of editable, in
--   characters.
editableGetMaxWidthChars :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Int32

-- | Retrieves the current position of the cursor relative to the start of
--   the content of the editable.
--   
--   Note that this position is in characters, not in bytes.
editableGetPosition :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Int32

-- | Retrieves the selection bound of the editable.
--   
--   startPos will be filled with the start of the
--   selection and endPos with end. If no text was selected
--   both will be identical and False will be returned.
--   
--   Note that positions are specified in characters, not bytes.
editableGetSelectionBounds :: (HasCallStack, MonadIO m, IsEditable a) => a -> m (Bool, Int32, Int32)

-- | Retrieves the contents of editable.
--   
--   The returned string is owned by GTK and must not be modified or freed.
editableGetText :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Text

-- | Gets the number of characters of space reserved for the contents of
--   the editable.
editableGetWidthChars :: (HasCallStack, MonadIO m, IsEditable a) => a -> m Int32

-- | Sets up a delegate for GtkEditable.
--   
--   This is assuming that the get_delegate vfunc in the
--   GtkEditable interface has been set up for the
--   editable's type.
--   
--   This is a helper function that should be called in instance init,
--   after creating the delegate object.
editableInitDelegate :: (HasCallStack, MonadIO m, IsEditable a) => a -> m ()

-- | Inserts length bytes of text into the
--   contents of the widget, at position position.
--   
--   Note that the position is in characters, not in bytes. The function
--   updates position to point after the newly inserted
--   text.
editableInsertText :: (HasCallStack, MonadIO m, IsEditable a) => a -> Text -> Int32 -> Int32 -> m Int32

-- | Overrides the GtkEditable properties for
--   class.
--   
--   This is a helper function that should be called in class_init, after
--   installing your own properties.
--   
--   Note that your class must have "text", "cursor-position",
--   "selection-bound", "editable", "width-chars", "max-width-chars",
--   "xalign" and "enable-undo" properties for this function to work.
--   
--   To handle the properties in your set_property and get_property
--   functions, you can either use editableDelegateSetProperty and
--   editableDelegateGetProperty (if you are using a delegate), or
--   remember the firstProp offset and add it to the values
--   in the EditableProperties enumeration to get the property IDs
--   for these properties.
editableInstallProperties :: (HasCallStack, MonadIO m) => ObjectClass -> Word32 -> m Word32

-- | Selects a region of text.
--   
--   The characters that are selected are those characters at positions
--   from startPos up to, but not including
--   endPos. If endPos is negative, then
--   the characters selected are those characters from
--   startPos to the end of the text.
--   
--   Note that positions are specified in characters, not bytes.
editableSelectRegion :: (HasCallStack, MonadIO m, IsEditable a) => a -> Int32 -> Int32 -> m ()

-- | Sets the alignment for the contents of the editable.
--   
--   This controls the horizontal positioning of the contents when the
--   displayed text is shorter than the width of the editable.
editableSetAlignment :: (HasCallStack, MonadIO m, IsEditable a) => a -> Float -> m ()

-- | Determines if the user can edit the text in the editable widget.
editableSetEditable :: (HasCallStack, MonadIO m, IsEditable a) => a -> Bool -> m ()

-- | If enabled, changes to editable will be saved for
--   undo/redo actions.
--   
--   This results in an additional copy of text changes and are not stored
--   in secure memory. As such, undo is forcefully disabled when
--   Text:visibility is set to False.
editableSetEnableUndo :: (HasCallStack, MonadIO m, IsEditable a) => a -> Bool -> m ()

-- | Sets the desired maximum width in characters of
--   editable.
editableSetMaxWidthChars :: (HasCallStack, MonadIO m, IsEditable a) => a -> Int32 -> m ()

-- | Sets the cursor position in the editable to the given value.
--   
--   The cursor is displayed before the character with the given (base 0)
--   index in the contents of the editable. The value must be less than or
--   equal to the number of characters in the editable. A value of -1
--   indicates that the position should be set after the last character of
--   the editable. Note that position is in characters, not
--   in bytes.
editableSetPosition :: (HasCallStack, MonadIO m, IsEditable a) => a -> Int32 -> m ()

-- | Sets the text in the editable to the given value.
--   
--   This is replacing the current contents.
editableSetText :: (HasCallStack, MonadIO m, IsEditable a) => a -> Text -> m ()

-- | Changes the size request of the editable to be about the right size
--   for nChars characters.
--   
--   Note that it changes the size request, the size can still be affected
--   by how you pack the widget into containers. If nChars
--   is -1, the size reverts to the default size.
editableSetWidthChars :: (HasCallStack, MonadIO m, IsEditable a) => a -> Int32 -> m ()

-- | Get the value of the “cursor-position” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #cursorPosition
--   
getEditableCursorPosition :: (MonadIO m, IsEditable o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “editable” property. This is rarely needed directly, but it
--   is used by new.
constructEditableEditable :: (IsEditable o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #editable
--   
getEditableEditable :: (MonadIO m, IsEditable o) => o -> m Bool

-- | Set the value of the “editable” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set editable [ #editable := value ]
--   
setEditableEditable :: (MonadIO m, IsEditable o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “enable-undo” property. This is rarely needed directly, but
--   it is used by new.
constructEditableEnableUndo :: (IsEditable o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “enable-undo” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #enableUndo
--   
getEditableEnableUndo :: (MonadIO m, IsEditable o) => o -> m Bool

-- | Set the value of the “enable-undo” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set editable [ #enableUndo := value ]
--   
setEditableEnableUndo :: (MonadIO m, IsEditable o) => o -> Bool -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “max-width-chars” property. This is rarely needed directly,
--   but it is used by new.
constructEditableMaxWidthChars :: (IsEditable o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “max-width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #maxWidthChars
--   
getEditableMaxWidthChars :: (MonadIO m, IsEditable o) => o -> m Int32

-- | Set the value of the “max-width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set editable [ #maxWidthChars := value ]
--   
setEditableMaxWidthChars :: (MonadIO m, IsEditable o) => o -> Int32 -> m ()

-- | Get the value of the “selection-bound” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #selectionBound
--   
getEditableSelectionBound :: (MonadIO m, IsEditable o) => o -> m Int32

-- | Construct a GValueConstruct with valid value for the
--   “text” property. This is rarely needed directly, but it is
--   used by new.
constructEditableText :: (IsEditable o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get editable #text
--   
getEditableText :: (MonadIO m, IsEditable o) => o -> m Text

-- | Set the value of the “text” property. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set editable [ #text := value ]
--   
setEditableText :: (MonadIO m, IsEditable o) => o -> Text -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “width-chars” property. This is rarely needed directly, but
--   it is used by new.
constructEditableWidthChars :: (IsEditable o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #widthChars
--   
getEditableWidthChars :: (MonadIO m, IsEditable o) => o -> m Int32

-- | Set the value of the “width-chars” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set editable [ #widthChars := value ]
--   
setEditableWidthChars :: (MonadIO m, IsEditable o) => o -> Int32 -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “xalign” property. This is rarely needed directly, but it is
--   used by new.
constructEditableXalign :: (IsEditable o, MonadIO m) => Float -> m (GValueConstruct o)

-- | Get the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get editable #xalign
--   
getEditableXalign :: (MonadIO m, IsEditable o) => o -> m Float

-- | Set the value of the “xalign” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set editable [ #xalign := value ]
--   
setEditableXalign :: (MonadIO m, IsEditable o) => o -> Float -> m ()

-- | Emitted at the end of a single user-visible operation on the contents.
--   
--   E.g., a paste operation that replaces the contents of the selection
--   will cause only one signal emission (even though it is implemented by
--   first deleting the selection, then inserting the new content, and may
--   cause multiple notifytext signals to be emitted).
type EditableChangedCallback = IO ()

-- | Connect a signal handler for the changed signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after editable #changed callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEditableChanged :: (IsEditable a, MonadIO m) => a -> ((?self :: a) => EditableChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the changed signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on editable #changed callback
--   
onEditableChanged :: (IsEditable a, MonadIO m) => a -> ((?self :: a) => EditableChangedCallback) -> m SignalHandlerId

-- | Emitted when text is deleted from the widget by the user.
--   
--   The default handler for this signal will normally be responsible for
--   deleting the text, so by connecting to this signal and then stopping
--   the signal with signalStopEmission, it is possible to modify
--   the range of deleted text, or prevent it from being deleted entirely.
--   
--   The startPos and endPos parameters are
--   interpreted as for editableDeleteText.
type EditableDeleteTextCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the deleteText signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after editable #deleteText callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEditableDeleteText :: (IsEditable a, MonadIO m) => a -> ((?self :: a) => EditableDeleteTextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the deleteText signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on editable #deleteText callback
--   
onEditableDeleteText :: (IsEditable a, MonadIO m) => a -> ((?self :: a) => EditableDeleteTextCallback) -> m SignalHandlerId

-- | Emitted when text is inserted into the widget by the user.
--   
--   The default handler for this signal will normally be responsible for
--   inserting the text, so by connecting to this signal and then stopping
--   the signal with signalStopEmission, it is possible to modify
--   the inserted text, or prevent it from being inserted entirely.
type EditableInsertTextCallback = Text -> Int32 -> Int32 -> IO Int32

-- | Connect a signal handler for the insertText signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after editable #insertText callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterEditableInsertText :: (IsEditable a, MonadIO m) => a -> ((?self :: a) => EditableInsertTextCallback) -> m SignalHandlerId

-- | Connect a signal handler for the insertText signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on editable #insertText callback
--   
onEditableInsertText :: (IsEditable a, MonadIO m) => a -> ((?self :: a) => EditableInsertTextCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.Editable.Editable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Editable.Editable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Editable.Editable
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Editable.Editable o) => GI.Gtk.Interfaces.Editable.IsEditable o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Editable.Editable)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Editable.Editable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Editable.Editable

-- | An interface for packing cells
--   
--   GtkCellLayout is an interface to be implemented by all
--   objects which want to provide a GtkTreeViewColumn like API
--   for packing cells, setting attributes and data funcs.
--   
--   One of the notable features provided by implementations of
--   GtkCellLayout are attributes. Attributes let you set the
--   properties in flexible ways. They can just be set to constant values
--   like regular properties. But they can also be mapped to a column of
--   the underlying tree model with
--   gtk_cell_layout_set_attributes(), which means that the
--   value of the attribute can change from cell to cell as they are
--   rendered by the cell renderer. Finally, it is possible to specify a
--   function with cellLayoutSetCellDataFunc that is called to
--   determine the value of the attribute for each cell that is rendered.
--   
--   
GtkCellLayouts as GtkBuildable
--   
--   Implementations of GtkCellLayout which also implement the GtkBuildable
--   interface (GtkCellView, GtkIconView,
--   GtkComboBox, GtkEntryCompletion,
--   GtkTreeViewColumn) accept GtkCellRenderer objects as
--   <child> elements in UI definitions. They support a
--   custom <attributes> element for their children, which
--   can contain multiple <attribute> elements. Each
--   <attribute> element has a name attribute which
--   specifies a property of the cell renderer; the content of the element
--   is the attribute value.
--   
--   This is an example of a UI definition fragment specifying attributes:
--   
--   
xml code
--   
--   
--   <object class="GtkCellView">
--     <child>
--       <object class="GtkCellRendererText"/>
--       <attributes>
--         <attribute name="text">0</attribute>
--       </attributes>
--     </child>
--   </object>
--   
--   
--   Furthermore for implementations of GtkCellLayout that use a
--   GtkCellArea to lay out cells (all GtkCellLayouts in
--   GTK use a GtkCellArea) cell properties can also be
--   defined in the format by specifying the custom
--   <cell-packing> attribute which can contain multiple
--   <property> elements.
--   
--   Here is a UI definition fragment specifying cell properties:
--   
--   
xml code
--   
--   
--   <object class="GtkTreeViewColumn">
--     <child>
--       <object class="GtkCellRendererText"/>
--       <cell-packing>
--         <property name="align">True</property>
--         <property name="expand">False</property>
--       </cell-packing>
--     </child>
--   </object>
--   
--   
--   
Subclassing GtkCellLayout implementations
--   
--   When subclassing a widget that implements GtkCellLayout like
--   GtkIconView or GtkComboBox, there are some
--   considerations related to the fact that these widgets internally use a
--   GtkCellArea. The cell area is exposed as a construct-only
--   property by these widgets. This means that it is possible to e.g. do
--   
--   
c code
--   
--   
--   GtkWIdget *combo =
--     g_object_new (GTK_TYPE_COMBO_BOX, "cell-area", my_cell_area, NULL);
--   
--   
--   to use a custom cell area with a combo box. But construct properties
--   are only initialized after instance init() functions have
--   run, which means that using functions which rely on the existence of
--   the cell area in your subclass init() function will cause the
--   default cell area to be instantiated. In this case, a provided
--   construct property value will be ignored (with a warning, to alert you
--   to the problem).
--   
--   
c code
--   
--   
--   static void
--   my_combo_box_init (MyComboBox *b)
--   {
--     GtkCellRenderer *cell;
--   
--     cell = gtk_cell_renderer_pixbuf_new ();
--   
--     // The following call causes the default cell area for combo boxes,
--     // a GtkCellAreaBox, to be instantiated
--     gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (b), cell, FALSE);
--     ...
--   }
--   
--   GtkWidget *
--   my_combo_box_new (GtkCellArea *area)
--   {
--     // This call is going to cause a warning about area being ignored
--     return g_object_new (MY_TYPE_COMBO_BOX, "cell-area", area, NULL);
--   }
--   
--   
--   If supporting alternative cell areas with your derived widget is not
--   important, then this does not have to concern you. If you want to
--   support alternative cell areas, you can do so by moving the
--   problematic calls out of init() and into a
--   constructor() for your class.
module GI.Gtk.Interfaces.CellLayout

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)List views use widgets to display
--   their contents.See LayoutManager for layout manager delegate
--   objects
newtype CellLayout

-- | Deprecated: (Since version 4.10)List views use widgets to display
--   their contents.See LayoutManager for layout manager delegate
--   objects
CellLayout :: ManagedPtr CellLayout -> CellLayout

-- | Type class for types which can be safely cast to CellLayout,
--   for instance with toCellLayout.
class (GObject o, IsDescendantOf CellLayout o) => IsCellLayout o

-- | Cast to CellLayout, for types for which this is known to be
--   safe. For general casts, use castTo.
toCellLayout :: (MonadIO m, IsCellLayout o) => o -> m CellLayout

-- | Adds an attribute mapping to the list in cellLayout.
--   
--   The column is the column of the model to get a value
--   from, and the attribute is the property on
--   cell to be set from that value. So for example if
--   column 2 of the model contains strings, you could have the “text”
--   attribute of a GtkCellRendererText get its values from column
--   2. In this context "attribute" and "property" are used
--   interchangeably.

-- | Deprecated: (Since version 4.10)
cellLayoutAddAttribute :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b) => a -> b -> Text -> Int32 -> m ()

-- | Unsets all the mappings on all renderers on cellLayout
--   and removes all renderers from cellLayout.

-- | Deprecated: (Since version 4.10)
cellLayoutClear :: (HasCallStack, MonadIO m, IsCellLayout a) => a -> m ()

-- | Clears all existing attributes previously set with
--   gtk_cell_layout_set_attributes().

-- | Deprecated: (Since version 4.10)
cellLayoutClearAttributes :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b) => a -> b -> m ()

-- | Returns the underlying GtkCellArea which might be
--   cellLayout if called on a GtkCellArea or
--   might be Nothing if no GtkCellArea is used by
--   cellLayout.

-- | Deprecated: (Since version 4.10)
cellLayoutGetArea :: (HasCallStack, MonadIO m, IsCellLayout a) => a -> m (Maybe CellArea)

-- | Returns the cell renderers which have been added to
--   cellLayout.

-- | Deprecated: (Since version 4.10)
cellLayoutGetCells :: (HasCallStack, MonadIO m, IsCellLayout a) => a -> m [CellRenderer]

-- | Adds the cell to the end of
--   cellLayout. If expand is False,
--   then the cell is allocated no more space than it
--   needs. Any unused space is divided evenly between cells for which
--   expand is True.
--   
--   Note that reusing the same cell renderer is not supported.

-- | Deprecated: (Since version 4.10)
cellLayoutPackEnd :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b) => a -> b -> Bool -> m ()

-- | Packs the cell into the beginning of
--   cellLayout. If expand is False,
--   then the cell is allocated no more space than it
--   needs. Any unused space is divided evenly between cells for which
--   expand is True.
--   
--   Note that reusing the same cell renderer is not supported.

-- | Deprecated: (Since version 4.10)
cellLayoutPackStart :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b) => a -> b -> Bool -> m ()

-- | Re-inserts cell at position.
--   
--   Note that cell has already to be packed into
--   cellLayout for this to function properly.

-- | Deprecated: (Since version 4.10)
cellLayoutReorder :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b) => a -> b -> Int32 -> m ()

-- | Sets the GtkCellLayoutDataFunc to use for
--   cellLayout.
--   
--   This function is used instead of the standard attributes mapping for
--   setting the column value, and should set the value of
--   cellLayout’s cell renderer(s) as appropriate.
--   
--   func may be Nothing to remove a previously set
--   function.

-- | Deprecated: (Since version 4.10)
cellLayoutSetCellDataFunc :: (HasCallStack, MonadIO m, IsCellLayout a, IsCellRenderer b) => a -> b -> Maybe CellLayoutDataFunc -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.CellLayout.CellLayout
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.CellLayout.CellLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.CellLayout.CellLayout
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.CellLayout.CellLayout o) => GI.Gtk.Interfaces.CellLayout.IsCellLayout o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.CellLayout.CellLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.CellLayout.CellLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.CellLayout.CellLayout

-- | Interface for widgets that can be used for editing cells
--   
--   The GtkCellEditable interface must be implemented for widgets
--   to be usable to edit the contents of a GtkTreeView cell. It
--   provides a way to specify how temporary widgets should be configured
--   for editing, get the new value, etc.
module GI.Gtk.Interfaces.CellEditable

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)List views use widgets for
--   displaying theircontents. See Editable for editable text
--   widgets
newtype CellEditable

-- | Deprecated: (Since version 4.10)List views use widgets for
--   displaying theircontents. See Editable for editable text
--   widgets
CellEditable :: ManagedPtr CellEditable -> CellEditable

-- | Type class for types which can be safely cast to CellEditable,
--   for instance with toCellEditable.
class (GObject o, IsDescendantOf CellEditable o) => IsCellEditable o

-- | Cast to CellEditable, for types for which this is known to be
--   safe. For general casts, use castTo.
toCellEditable :: (MonadIO m, IsCellEditable o) => o -> m CellEditable

-- | Emits the GtkCellEditable::editing-done signal.

-- | Deprecated: (Since version 4.10)
cellEditableEditingDone :: (HasCallStack, MonadIO m, IsCellEditable a) => a -> m ()

-- | Emits the GtkCellEditable::remove-widget signal.

-- | Deprecated: (Since version 4.10)
cellEditableRemoveWidget :: (HasCallStack, MonadIO m, IsCellEditable a) => a -> m ()

-- | Begins editing on a cellEditable.
--   
--   The GtkCellRenderer for the cell creates and returns a
--   GtkCellEditable from cellRendererStartEditing,
--   configured for the GtkCellRenderer type.
--   
--   cellEditableStartEditing can then set up
--   cellEditable suitably for editing a cell, e.g. making
--   the Esc key emit GtkCellEditable::editing-done.
--   
--   Note that the cellEditable is created on-demand for
--   the current edit; its lifetime is temporary and does not persist
--   across other edits and/or cells.
cellEditableStartEditing :: (HasCallStack, MonadIO m, IsCellEditable a, IsEvent b) => a -> Maybe b -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “editing-canceled” property. This is rarely needed directly,
--   but it is used by new.
constructCellEditableEditingCanceled :: (IsCellEditable o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “editing-canceled” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get cellEditable #editingCanceled
--   
getCellEditableEditingCanceled :: (MonadIO m, IsCellEditable o) => o -> m Bool

-- | Set the value of the “editing-canceled” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set cellEditable [ #editingCanceled := value ]
--   
setCellEditableEditingCanceled :: (MonadIO m, IsCellEditable o) => o -> Bool -> m ()

-- | This signal is a sign for the cell renderer to update its value from
--   the cellEditable.
--   
--   Implementations of GtkCellEditable are responsible for
--   emitting this signal when they are done editing, e.g.
--   GtkEntry emits this signal when the user presses Enter.
--   Typical things to do in a handler for editingDone are to
--   capture the edited value, disconnect the cellEditable
--   from signals on the GtkCellRenderer, etc.
--   
--   cellEditableEditingDone is a convenience method for emitting
--   GtkCellEditable::editing-done.
type CellEditableEditingDoneCallback = IO ()

-- | Connect a signal handler for the editingDone signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellEditable #editingDone callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellEditableEditingDone :: (IsCellEditable a, MonadIO m) => a -> ((?self :: a) => CellEditableEditingDoneCallback) -> m SignalHandlerId

-- | Connect a signal handler for the editingDone signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellEditable #editingDone callback
--   
onCellEditableEditingDone :: (IsCellEditable a, MonadIO m) => a -> ((?self :: a) => CellEditableEditingDoneCallback) -> m SignalHandlerId

-- | This signal is meant to indicate that the cell is finished editing,
--   and the cellEditable widget is being removed and may
--   subsequently be destroyed.
--   
--   Implementations of GtkCellEditable are responsible for
--   emitting this signal when they are done editing. It must be emitted
--   after the GtkCellEditable::editing-done signal, to give the
--   cell renderer a chance to update the cell's value before the widget is
--   removed.
--   
--   cellEditableRemoveWidget is a convenience method for emitting
--   GtkCellEditable::remove-widget.
type CellEditableRemoveWidgetCallback = IO ()

-- | Connect a signal handler for the removeWidget signal, to be run
--   after the default handler. When overloading is enabled, this is
--   equivalent to
--   
--   
--   after cellEditable #removeWidget callback
--   
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   ?self parameter. Note that this requires activating the
--   ImplicitParams GHC extension.
afterCellEditableRemoveWidget :: (IsCellEditable a, MonadIO m) => a -> ((?self :: a) => CellEditableRemoveWidgetCallback) -> m SignalHandlerId

-- | Connect a signal handler for the removeWidget signal, to be run
--   before the default handler. When overloading is enabled, this
--   is equivalent to
--   
--   
--   on cellEditable #removeWidget callback
--   
onCellEditableRemoveWidget :: (IsCellEditable a, MonadIO m) => a -> ((?self :: a) => CellEditableRemoveWidgetCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gtk.Interfaces.CellEditable.CellEditable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.CellEditable.CellEditable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.CellEditable.CellEditable
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.CellEditable.CellEditable o) => GI.Gtk.Interfaces.CellEditable.IsCellEditable o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.CellEditable.CellEditable)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.CellEditable.CellEditable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.CellEditable.CellEditable

-- | GtkAppChooser is an interface for widgets which allow the
--   user to choose an application.
--   
--   The main objects that implement this interface are
--   AppChooserWidget, AppChooserDialog and
--   AppChooserButton.
--   
--   Applications are represented by GIO GAppInfo objects here.
--   GIO has a concept of recommended and fallback applications for a given
--   content type. Recommended applications are those that claim to handle
--   the content type itself, while fallback also includes applications
--   that handle a more generic content type. GIO also knows the default
--   and last-used application for a given content type. The
--   GtkAppChooserWidget provides detailed control over whether
--   the shown list of applications should include default, recommended or
--   fallback applications.
--   
--   To obtain the application that has been selected in a
--   GtkAppChooser, use appChooserGetAppInfo.
module GI.Gtk.Interfaces.AppChooser

-- | Memory-managed wrapper type.

-- | Deprecated: (Since version 4.10)The application selection widgets
--   should beimplemented according to the design of each platform
--   and/orapplication requiring them.
newtype AppChooser

-- | Deprecated: (Since version 4.10)The application selection widgets
--   should beimplemented according to the design of each platform
--   and/orapplication requiring them.
AppChooser :: ManagedPtr AppChooser -> AppChooser

-- | Type class for types which can be safely cast to AppChooser,
--   for instance with toAppChooser.
class (GObject o, IsDescendantOf AppChooser o) => IsAppChooser o

-- | Cast to AppChooser, for types for which this is known to be
--   safe. For general casts, use castTo.
toAppChooser :: (MonadIO m, IsAppChooser o) => o -> m AppChooser

-- | Returns the currently selected application.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserGetAppInfo :: (HasCallStack, MonadIO m, IsAppChooser a) => a -> m (Maybe AppInfo)

-- | Returns the content type for which the GtkAppChooser shows
--   applications.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserGetContentType :: (HasCallStack, MonadIO m, IsAppChooser a) => a -> m Text

-- | Reloads the list of applications.

-- | Deprecated: (Since version 4.10)This widget will be removed in GTK
--   5
appChooserRefresh :: (HasCallStack, MonadIO m, IsAppChooser a) => a -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “content-type” property. This is rarely needed directly, but
--   it is used by new.
constructAppChooserContentType :: (IsAppChooser o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “content-type” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get appChooser #contentType
--   
getAppChooserContentType :: (MonadIO m, IsAppChooser o) => o -> m (Maybe Text)
instance GHC.Classes.Eq GI.Gtk.Interfaces.AppChooser.AppChooser
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.AppChooser.AppChooser
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.AppChooser.AppChooser
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.AppChooser.AppChooser o) => GI.Gtk.Interfaces.AppChooser.IsAppChooser o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.AppChooser.AppChooser)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.AppChooser.AppChooser
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.AppChooser.AppChooser

-- | Provides a way to associate widgets with actions.
--   
--   It primarily consists of two properties: Actionable:actionName
--   and Actionable:actionTarget. There are also some convenience
--   APIs for setting these properties.
--   
--   The action will be looked up in action groups that are found among the
--   widgets ancestors. Most commonly, these will be the actions with the
--   “win.” or “app.” prefix that are associated with the
--   GtkApplicationWindow or GtkApplication, but other
--   action groups that are added with widgetInsertActionGroup will
--   be consulted as well.
module GI.Gtk.Interfaces.Actionable

-- | Memory-managed wrapper type.
newtype Actionable
Actionable :: ManagedPtr Actionable -> Actionable

-- | Type class for types which can be safely cast to Actionable,
--   for instance with toActionable.
class (GObject o, IsDescendantOf Actionable o) => IsActionable o

-- | Cast to Actionable, for types for which this is known to be
--   safe. For general casts, use castTo.
toActionable :: (MonadIO m, IsActionable o) => o -> m Actionable

-- | Gets the action name for actionable.
actionableGetActionName :: (HasCallStack, MonadIO m, IsActionable a) => a -> m (Maybe Text)

-- | Gets the current target value of actionable.
actionableGetActionTargetValue :: (HasCallStack, MonadIO m, IsActionable a) => a -> m (Maybe GVariant)

-- | Specifies the name of the action with which this widget should be
--   associated.
--   
--   If actionName is Nothing then the widget will
--   be unassociated from any previous action.
--   
--   Usually this function is used when the widget is located (or will be
--   located) within the hierarchy of a GtkApplicationWindow.
--   
--   Names are of the form “win.save” or “app.quit” for actions on the
--   containing [classapplicationWindow] or its associated
--   [classapplication], respectively. This is the same
--   form used for actions in the Menu associated with the window.
actionableSetActionName :: (HasCallStack, MonadIO m, IsActionable a) => a -> Maybe Text -> m ()

-- | Sets the target value of an actionable widget.
--   
--   If targetValue is Nothing then the target value
--   is unset.
--   
--   The target value has two purposes. First, it is used as the parameter
--   to activation of the action associated with the GtkActionable
--   widget. Second, it is used to determine if the widget should be
--   rendered as “active” — the widget is active if the state is equal to
--   the given target.
--   
--   Consider the example of associating a set of buttons with a
--   Action with string state in a typical “radio button” situation.
--   Each button will be associated with the same action, but with a
--   different target value for that action. Clicking on a particular
--   button will activate the action with the target of that button, which
--   will typically cause the action’s state to change to that value. Since
--   the action’s state is now equal to the target value of the button, the
--   button will now be rendered as active (and the other buttons, with
--   different targets, rendered inactive).
actionableSetActionTargetValue :: (HasCallStack, MonadIO m, IsActionable a) => a -> Maybe GVariant -> m ()

-- | Sets the action-name and associated string target value of an
--   actionable widget.
--   
--   detailedActionName is a string in the format accepted
--   by actionParseDetailedName.
actionableSetDetailedActionName :: (HasCallStack, MonadIO m, IsActionable a) => a -> Text -> m ()

-- | Set the value of the “action-name” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #actionName
--   
clearActionableActionName :: (MonadIO m, IsActionable o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “action-name” property. This is rarely needed directly, but
--   it is used by new.
constructActionableActionName :: (IsActionable o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “action-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get actionable #actionName
--   
getActionableActionName :: (MonadIO m, IsActionable o) => o -> m (Maybe Text)

-- | Set the value of the “action-name” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set actionable [ #actionName := value ]
--   
setActionableActionName :: (MonadIO m, IsActionable o) => o -> Text -> m ()

-- | Set the value of the “action-target” property to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #actionTarget
--   
clearActionableActionTarget :: (MonadIO m, IsActionable o) => o -> m ()

-- | Construct a GValueConstruct with valid value for the
--   “action-target” property. This is rarely needed directly, but
--   it is used by new.
constructActionableActionTarget :: (IsActionable o, MonadIO m) => GVariant -> m (GValueConstruct o)

-- | Get the value of the “action-target” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get actionable #actionTarget
--   
getActionableActionTarget :: (MonadIO m, IsActionable o) => o -> m (Maybe GVariant)

-- | Set the value of the “action-target” property. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set actionable [ #actionTarget := value ]
--   
setActionableActionTarget :: (MonadIO m, IsActionable o) => o -> GVariant -> m ()
instance GHC.Classes.Eq GI.Gtk.Interfaces.Actionable.Actionable
instance Data.GI.Base.BasicTypes.GObject GI.Gtk.Interfaces.Actionable.Actionable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Interfaces.Actionable.Actionable
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gtk.Interfaces.Actionable.Actionable o) => GI.Gtk.Interfaces.Actionable.IsActionable o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Interfaces.Actionable.Actionable)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Interfaces.Actionable.Actionable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Interfaces.Actionable.Actionable

module GI.Gtk.Interfaces

module GI.Gtk.Functions

-- | Generates an accessible description of an accelerator.
--   
--   This function is similar to acceleratorGetLabel but it is meant
--   for accessibility layers labels rather than user-facing labels. The
--   output of this function is fit for
--   AccessiblePropertyKeyShortcuts.
--   
--   For more information, see the WAI-ARIA reference.
--   
--   Since: 4.22
acceleratorGetAccessibleLabel :: (HasCallStack, MonadIO m) => Word32 -> [ModifierType] -> m Text

-- | Gets the modifier mask.
--   
--   The modifier mask determines which modifiers are considered
--   significant for keyboard accelerators. This includes all keyboard
--   modifiers except for GDK_LOCK_MASK.
acceleratorGetDefaultModMask :: (HasCallStack, MonadIO m) => m [ModifierType]

-- | Converts an accelerator keyval and modifier mask into a string which
--   can be used to represent the accelerator to the user.
acceleratorGetLabel :: (HasCallStack, MonadIO m) => Word32 -> [ModifierType] -> m Text

-- | Converts an accelerator keyval and modifier mask into a string that
--   can be displayed to the user.
--   
--   The string may be translated.
--   
--   This function is similar to acceleratorGetLabel, but handling
--   keycodes. This is only useful for system-level components,
--   applications should use acceleratorGetLabel instead.
acceleratorGetLabelWithKeycode :: (HasCallStack, MonadIO m, IsDisplay a) => Maybe a -> Word32 -> Word32 -> [ModifierType] -> m Text

-- | Converts an accelerator keyval and modifier mask into a string that
--   can be parsed by acceleratorParse.
--   
--   For example, if you pass in GDK_KEY_q and
--   GDK_CONTROL_MASK, this function returns
--   <Control>q.
--   
--   If you need to display accelerators in the user interface, see
--   acceleratorGetLabel.
acceleratorName :: (HasCallStack, MonadIO m) => Word32 -> [ModifierType] -> m Text

-- | Converts an accelerator keyval and modifier mask into a string that
--   can be parsed by acceleratorParseWithKeycode.
--   
--   This is similar to acceleratorName but handling keycodes. This
--   is only useful for system-level components, applications should use
--   acceleratorName instead.
acceleratorNameWithKeycode :: (HasCallStack, MonadIO m, IsDisplay a) => Maybe a -> Word32 -> Word32 -> [ModifierType] -> m Text

-- | Parses a string representing an accelerator.
--   
--   The format looks like “<Control>a” or
--   “<Shift><Alt>F1”.
--   
--   The parser is fairly liberal and allows lower or upper case, and also
--   abbreviations such as “<Ctl>” and
--   “<Ctrl>”.
--   
--   Key names are parsed using keyvalFromName. For character keys
--   the name is not the symbol, but the lowercase name, e.g. one would use
--   “<Ctrl>minus” instead of “<Ctrl>-”.
--   
--   Modifiers are enclosed in angular brackets <>, and
--   match the [flagsgdk.ModifierType] mask:
--   
--   
--   
- <Shift> for GDK_SHIFT_MASK
--   
- <Ctrl> for GDK_CONTROL_MASK
--   
- <Alt> for GDK_ALT_MASK
--   
- <Meta> for GDK_META_MASK
--   
- <Super> for GDK_SUPER_MASK
--   
- <Hyper> for GDK_HYPER_MASK
--   
--   
--   If the parse operation fails, acceleratorKey and
--   acceleratorMods will be set to 0 (zero).
acceleratorParse :: (HasCallStack, MonadIO m) => Text -> m (Bool, Word32, [ModifierType])

-- | Parses a string representing an accelerator.
--   
--   This is similar to acceleratorParse but handles keycodes as
--   well. This is only useful for system-level components, applications
--   should use acceleratorParse instead.
--   
--   If acceleratorCodes is given and the result stored in
--   it is non-Nothing, the result must be freed with free.
--   
--   If a keycode is present in the accelerator and no
--   acceleratorCodes is given, the parse will fail.
--   
--   If the parse fails, acceleratorKey,
--   acceleratorMods and acceleratorCodes
--   will be set to 0 (zero).
acceleratorParseWithKeycode :: (HasCallStack, MonadIO m, IsDisplay a) => Text -> Maybe a -> m (Bool, Word32, [Word32], [ModifierType])

-- | Determines whether a given keyval and modifier mask constitute a valid
--   keyboard accelerator.
--   
--   For example, the GDK_KEY_a keyval plus
--   GDK_CONTROL_MASK mask is valid, and matches the “Ctrl+a”
--   accelerator. But, you can't, for instance, use the
--   GDK_KEY_Control_L keyval as an accelerator.
acceleratorValid :: (HasCallStack, MonadIO m) => Word32 -> [ModifierType] -> m Bool

-- | Checks that the GTK library in use is compatible with the given
--   version.
--   
--   Generally you would pass in the constants MAJOR_VERSION,
--   MINOR_VERSION, MICRO_VERSION as the three arguments to
--   this function; that produces a check that the library in use is
--   compatible with the version of GTK the application or module was
--   compiled against.
--   
--   Compatibility is defined by two things: first the version of the
--   running library is newer than the version
--   requiredMajor.required_minor.requiredMicro.
--   Second the running library must be binary compatible with the version
--   requiredMajor.required_minor.requiredMicro
--   (same major version.)
--   
--   This function is primarily for GTK modules; the module can call this
--   function to check that it wasn’t loaded into an incompatible version
--   of GTK. However, such a check isn’t completely reliable, since the
--   module may be linked against an old version of GTK and calling the old
--   version of checkVersion, but still get loaded into an
--   application using a newer version of GTK.
checkVersion :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> Word32 -> m (Maybe Text)

-- | Registers an error quark for CSS parsing errors.
cssParserErrorQuark :: (HasCallStack, MonadIO m) => m Word32

-- | Registers an error quark for CSS parsing warnings.
cssParserWarningQuark :: (HasCallStack, MonadIO m) => m Word32

-- | Prevents GTK from using the specified portals.
--   
--   This should only be used in portal implementations, apps must not call
--   it.
--   
--   Since: 4.22
disablePortalInterfaces :: (HasCallStack, MonadIO m) => [Text] -> m ()

-- | Prevents GTK from using portals.
--   
--   This is equivalent to setting GDK_DEBUG=no-portals in the
--   environment.
--   
--   This should only be used in portal implementations, apps must not call
--   it.
--   
--   Since: 4.18
disablePortals :: (HasCallStack, MonadIO m) => m ()

-- | Prevents init and initCheck from calling
--   setlocale().
--   
--   You would want to use this function if you wanted to set the locale
--   for your program to something other than the user’s locale, or if you
--   wanted to set different values for different locale categories.
--   
--   Most programs should not need to call this function.
disableSetlocale :: (HasCallStack, MonadIO m) => m ()

-- | Distributes extraSpace to child sizes
--   by bringing smaller children up to natural size first.
--   
--   The remaining space will be added to the minimumSize
--   member of the GtkRequestedSize struct. If all sizes reach
--   their natural size then the remaining space is returned.
distributeNaturalAllocation :: (HasCallStack, MonadIO m) => Int32 -> [RequestedSize] -> m Int32

-- | Calls a function for all printers that are known to GTK.
--   
--   If func returns true, the enumeration is stopped.
enumeratePrinters :: (HasCallStack, MonadIO m) => PrinterFunc -> Bool -> m ()

-- | Returns the binary age as passed to libtool.
--   
--   If libtool means nothing to you, don't worry about it.
getBinaryAge :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the GTK debug flags that are currently active.
--   
--   This function is intended for GTK modules that want to adjust their
--   debug output based on GTK debug flags.
getDebugFlags :: (HasCallStack, MonadIO m) => m [DebugFlags]

-- | Returns the PangoLanguage for the default language currently
--   in effect.
--   
--   Note that this can change over the life of an application.
--   
--   The default language is derived from the current locale. It
--   determines, for example, whether GTK uses the right-to-left or
--   left-to-right text direction.
--   
--   This function is equivalent to languageGetDefault. See that
--   function for details.
getDefaultLanguage :: (HasCallStack, MonadIO m) => m Language

-- | Returns the interface age as passed to libtool.
--   
--   If libtool means nothing to you, don't worry about it.
getInterfaceAge :: (HasCallStack, MonadIO m) => m Word32

-- | Gets the direction of the current locale.
--   
--   This is the expected reading direction for text and UI.
--   
--   This function depends on the current locale being set with
--   setlocale() and will default to setting the
--   GTK_TEXT_DIR_LTR direction otherwise.
--   GTK_TEXT_DIR_NONE will never be returned.
--   
--   GTK sets the default text direction according to the locale during
--   init, and you should normally use widgetGetDirection or
--   widgetGetDefaultDirection to obtain the current direction.
--   
--   This function is only needed rare cases when the locale is changed
--   after GTK has already been initialized. In this case, you can use it
--   to update the default text direction as follows:
--   
--   
c code
--   
--   
--   #include <locale.h>
--   
--   static void
--   update_locale (const char *new_locale)
--   {
--     setlocale (LC_ALL, new_locale);
--     gtk_widget_set_default_direction (gtk_get_locale_direction ());
--   }
--   
getLocaleDirection :: (HasCallStack, MonadIO m) => m TextDirection

-- | Returns the major version number of the GTK library.
--   
--   For example, in GTK version 3.1.5 this is 3.
--   
--   This function is in the library, so it represents the GTK library your
--   code is running against. Contrast with the MAJOR_VERSION macro,
--   which represents the major version of the GTK headers you have
--   included when compiling your code.
getMajorVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the micro version number of the GTK library.
--   
--   For example, in GTK version 3.1.5 this is 5.
--   
--   This function is in the library, so it represents the GTK library your
--   code is are running against. Contrast with the MICRO_VERSION
--   macro, which represents the micro version of the GTK headers you have
--   included when compiling your code.
getMicroVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the minor version number of the GTK library.
--   
--   For example, in GTK version 3.1.5 this is 1.
--   
--   This function is in the library, so it represents the GTK library your
--   code is are running against. Contrast with the MINOR_VERSION
--   macro, which represents the minor version of the GTK headers you have
--   included when compiling your code.
getMinorVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Converts a color from HSV space to RGB.
--   
--   Input values must be in the [0.0, 1.0] range; output values will be in
--   the same range.
hsvToRgb :: (HasCallStack, MonadIO m) => Float -> Float -> Float -> m (Float, Float, Float)

-- | Initializes GTK.
--   
--   This function must be called before using any other GTK functions in
--   your GUI applications.
--   
--   It will initialize everything needed to operate the toolkit. In
--   particular, it will open the default display (see
--   displayGetDefault).
--   
--   If you are using Application, you usually don't have to call
--   this function; the Application.startup()
--   handler does it for you. Though, if you are using
--   GApplication methods that will be invoked before
--   startup, such as local_command_line, you may need to
--   initialize GTK explicitly.
--   
--   This function will terminate your program if it was unable to
--   initialize the windowing system for some reason. If you want your
--   program to fall back to a textual interface, call initCheck
--   instead.
--   
--   GTK calls signal (SIGPIPE, SIG_IGN) during initialization, to
--   ignore SIGPIPE signals, since these are almost never wanted in
--   graphical applications. If you do need to handle SIGPIPE for some
--   reason, reset the handler after init, but notice that other
--   libraries (e.g. libdbus or gvfs) might do similar things.
init :: (HasCallStack, MonadIO m) => m ()

-- | Initializes GTK.
--   
--   This function does the same work as init with only a single
--   change: It does not terminate the program if the windowing system
--   can’t be initialized. Instead it returns false on failure.
--   
--   This way the application can fall back to some other means of
--   communication with the user - for example a curses or command line
--   interface.
initCheck :: (HasCallStack, MonadIO m) => m Bool

-- | Returns whether GTK has been initialized.
--   
--   See init.
isInitialized :: (HasCallStack, MonadIO m) => m Bool

-- | Creates a new GParamSpec instance for a property holding a
--   GtkExpression.
--   
--   See g_param_spec_internal() for details on the property
--   strings.
paramSpecExpression :: (HasCallStack, MonadIO m) => Text -> Text -> Text -> [ParamFlags] -> m GParamSpec

-- | Runs a page setup dialog, letting the user modify the values from
--   pageSetup.
--   
--   If the user cancels the dialog, the returned GtkPageSetup is
--   identical to the passed in pageSetup, otherwise it
--   contains the modifications done in the dialog.
--   
--   Note that this function may use a recursive mainloop to show the page
--   setup dialog. See printRunPageSetupDialogAsync if this is a
--   problem.
printRunPageSetupDialog :: (HasCallStack, MonadIO m, IsWindow a, IsPageSetup b, IsPrintSettings c) => Maybe a -> Maybe b -> c -> m PageSetup

-- | Runs a page setup dialog, letting the user modify the values from
--   pageSetup.
--   
--   In contrast to printRunPageSetupDialog, this function returns
--   after showing the page setup dialog on platforms that support this,
--   and calls doneCb from a signal handler for the
--   response signal of the dialog.
printRunPageSetupDialogAsync :: (HasCallStack, MonadIO m, IsWindow a, IsPageSetup b, IsPrintSettings c) => Maybe a -> Maybe b -> c -> PageSetupDoneFunc -> m ()

-- | Renders an activity indicator (such as in GtkSpinner). The
--   state StateFlagsChecked determines whether there is activity
--   going on.

-- | Deprecated: (Since version 4.10)
renderActivity :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders an arrow pointing to angle.
--   
--   Typical arrow rendering at 0, 1⁄2 π;, π; and 3⁄2 π:
--   

-- | Deprecated: (Since version 4.10)
renderArrow :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders the background of an element.
--   
--   Typical background rendering, showing the effect of
--   background-image, border-width and
--   border-radius:
--   

-- | Deprecated: (Since version 4.10)
renderBackground :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders a checkmark (as in a GtkCheckButton).
--   
--   The StateFlagsChecked state determines whether the check is on
--   or off, and StateFlagsInconsistent determines whether it should
--   be marked as undefined.
--   
--   Typical checkmark rendering:
--   

-- | Deprecated: (Since version 4.10)
renderCheck :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders an expander (as used in GtkTreeView and
--   GtkExpander) in the area defined by x,
--   y, width, height. The
--   state StateFlagsChecked determines whether the expander is
--   collapsed or expanded.
--   
--   Typical expander rendering:
--   

-- | Deprecated: (Since version 4.10)
renderExpander :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders a focus indicator on the rectangle determined by
--   x, y, width,
--   height.
--   
--   Typical focus rendering:
--   

-- | Deprecated: (Since version 4.10)
renderFocus :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders a frame around the rectangle defined by x,
--   y, width, height.
--   
--   Examples of frame rendering, showing the effect of
--   border-image, border-color, border-width,
--   border-radius and junctions:
--   

-- | Deprecated: (Since version 4.10)
renderFrame :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders a handle (as in GtkPaned and GtkWindow’s
--   resize grip), in the rectangle determined by x,
--   y, width, height.
--   
--   Handles rendered for the paned and grip classes:
--   

-- | Deprecated: (Since version 4.10)
renderHandle :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders the icon in texture at the specified
--   x and y coordinates.
--   
--   This function will render the icon in texture at
--   exactly its size, regardless of scaling factors, which may not be
--   appropriate when drawing on displays with high pixel densities.

-- | Deprecated: (Since version 4.10)
renderIcon :: (HasCallStack, MonadIO m, IsStyleContext a, IsTexture b) => a -> Context -> b -> Double -> Double -> m ()

-- | Renders layout on the coordinates x,
--   y

-- | Deprecated: (Since version 4.10)
renderLayout :: (HasCallStack, MonadIO m, IsStyleContext a, IsLayout b) => a -> Context -> Double -> Double -> b -> m ()

-- | Renders a line from (x0, y0) to (x1, y1).

-- | Deprecated: (Since version 4.10)
renderLine :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Renders an option mark (as in a radio button), the
--   StateFlagsChecked state will determine whether the option is on
--   or off, and StateFlagsInconsistent whether it should be marked
--   as undefined.
--   
--   Typical option mark rendering:
--   

-- | Deprecated: (Since version 4.10)
renderOption :: (HasCallStack, MonadIO m, IsStyleContext a) => a -> Context -> Double -> Double -> Double -> Double -> m ()

-- | Converts a color from RGB space to HSV.
--   
--   Input values must be in the [0.0, 1.0] range; output values will be in
--   the same range.
rgbToHsv :: (HasCallStack, MonadIO m) => Float -> Float -> Float -> m (Float, Float, Float)

-- | Sets the GTK debug flags.
setDebugFlags :: (HasCallStack, MonadIO m) => [DebugFlags] -> m ()

-- | This function launches the default application for showing a given
--   uri, or shows an error dialog if that fails.

-- | Deprecated: (Since version 4.10)Use fileLauncherLaunch
--   oruriLauncherLaunch instead
showUri :: (HasCallStack, MonadIO m, IsWindow a) => Maybe a -> Text -> Word32 -> m ()

-- | This function launches the default application for showing a given
--   uri.
--   
--   The callback will be called when the launch is
--   completed.
--   
--   This is the recommended call to be used as it passes information
--   necessary for sandbox helpers to parent their dialogs properly.

-- | Deprecated: (Since version 4.10)Use fileLauncherLaunch
--   oruriLauncherLaunch instead
showUriFull :: (HasCallStack, MonadIO m, IsWindow a, IsCancellable b) => Maybe a -> Text -> Word32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes the showUri call and returns the result of the
--   operation.

-- | Deprecated: (Since version 4.10)Use fileLauncherLaunch
--   oruriLauncherLaunch instead
showUriFullFinish :: (HasCallStack, MonadIO m, IsWindow a, IsAsyncResult b) => a -> b -> m ()

-- | Prints an assertion message for
--   gtk_test_accessible_assert_role().
testAccessibleAssertionMessageRole :: (HasCallStack, MonadIO m, IsAccessible a) => Text -> Text -> Int32 -> Text -> Text -> a -> AccessibleRole -> AccessibleRole -> m ()

-- | Checks whether the GtkAccessible has property
--   set.
testAccessibleHasProperty :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleProperty -> m Bool

-- | Checks whether the GtkAccessible has relation
--   set.
testAccessibleHasRelation :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleRelation -> m Bool

-- | Checks whether the GtkAccessible:accessible-role of the
--   accessible is role.
testAccessibleHasRole :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleRole -> m Bool

-- | Checks whether the GtkAccessible has state
--   set.
testAccessibleHasState :: (HasCallStack, MonadIO m, IsAccessible a) => a -> AccessibleState -> m Bool

-- | Return the type ids that have been registered after calling
--   testRegisterAllTypes.
testListAllTypes :: (HasCallStack, MonadIO m) => m ([GType], Word32)

-- | Force registration of all core GTK object types.
--   
--   This allows to refer to any of those object types via
--   typeFromName after calling this function.
testRegisterAllTypes :: (HasCallStack, MonadIO m) => m ()

-- | Enters the main loop and waits for widget to be
--   “drawn”.
--   
--   In this context that means it waits for the frame clock of
--   widget to have run a full styling, layout and drawing
--   cycle.
--   
--   This function is intended to be used for syncing with actions that
--   depend on widget relayouting or on interaction with
--   the display server.
testWidgetWaitForDraw :: (HasCallStack, MonadIO m, IsWidget a) => a -> m ()

-- | Creates a content provider for dragging path from
--   treeModel.

-- | Deprecated: (Since version 4.10)Use list models instead
treeCreateRowDragContent :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> m ContentProvider

-- | Obtains a treeModel and path from
--   value of target type GTK_TYPE_TREE_ROW_DATA.
--   
--   The returned path must be freed with treePathFree.

-- | Deprecated: (Since version 4.10)Use list models instead
treeGetRowDragData :: (HasCallStack, MonadIO m) => GValue -> m (Bool, Maybe TreeModel, Maybe TreePath)

-- | Retrieves the GtkExpression stored inside the given
--   value, and acquires a reference to it.
valueDupExpression :: (HasCallStack, MonadIO m) => GValue -> m (Maybe Expression)

-- | Retrieves the GtkExpression stored inside the given
--   value.
valueGetExpression :: (HasCallStack, MonadIO m) => GValue -> m (Maybe Expression)

-- | Stores the given GtkExpression inside value.
--   
--   The GValue will acquire a reference to the
--   expression.
valueSetExpression :: (HasCallStack, MonadIO m, IsExpression a) => GValue -> a -> m ()

-- | Stores the given GtkExpression inside value.
--   
--   This function transfers the ownership of the expression to
--   the GValue.
valueTakeExpression :: (HasCallStack, MonadIO m, IsExpression a) => GValue -> Maybe a -> m ()

-- | A GtkTreeRowReference tracks model changes so that it always refers to
--   the same row (a GtkTreePath refers to a position, not a fixed
--   row). Create a new GtkTreeRowReference with
--   treeRowReferenceNew.
module GI.Gtk.Structs.TreeRowReference

-- | Memory-managed wrapper type.
newtype TreeRowReference
TreeRowReference :: ManagedPtr TreeRowReference -> TreeRowReference

-- | Copies a GtkTreeRowReference.

-- | Deprecated: (Since version 4.10)
treeRowReferenceCopy :: (HasCallStack, MonadIO m) => TreeRowReference -> m TreeRowReference

-- | Lets a set of row reference created by treeRowReferenceNewProxy
--   know that the model emitted the rowDeleted signal.

-- | Deprecated: (Since version 4.10)
treeRowReferenceDeleted :: (HasCallStack, MonadIO m, IsObject a) => a -> TreePath -> m ()

-- | Free’s reference. reference may be
--   Nothing

-- | Deprecated: (Since version 4.10)
treeRowReferenceFree :: (HasCallStack, MonadIO m) => Maybe TreeRowReference -> m ()

-- | Returns the model that the row reference is monitoring.

-- | Deprecated: (Since version 4.10)
treeRowReferenceGetModel :: (HasCallStack, MonadIO m) => TreeRowReference -> m TreeModel

-- | Returns a path that the row reference currently points to, or
--   Nothing if the path pointed to is no longer valid.

-- | Deprecated: (Since version 4.10)
treeRowReferenceGetPath :: (HasCallStack, MonadIO m) => TreeRowReference -> m (Maybe TreePath)

-- | Lets a set of row reference created by treeRowReferenceNewProxy
--   know that the model emitted the rowInserted signal.

-- | Deprecated: (Since version 4.10)
treeRowReferenceInserted :: (HasCallStack, MonadIO m, IsObject a) => a -> TreePath -> m ()

-- | Creates a row reference based on path.
--   
--   This reference will keep pointing to the node pointed to by
--   path, so long as it exists. Any changes that occur on
--   model are propagated, and the path is updated
--   appropriately. If path isn’t a valid path in
--   model, then Nothing is returned.

-- | Deprecated: (Since version 4.10)
treeRowReferenceNew :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> m (Maybe TreeRowReference)

-- | You do not need to use this function.
--   
--   Creates a row reference based on path.
--   
--   This reference will keep pointing to the node pointed to by
--   path, so long as it exists. If path
--   isn’t a valid path in model, then Nothing is
--   returned. However, unlike references created with
--   treeRowReferenceNew, it does not listen to the model for
--   changes. The creator of the row reference must do this explicitly
--   using treeRowReferenceInserted, treeRowReferenceDeleted,
--   gtk_tree_row_reference_reordered().
--   
--   These functions must be called exactly once per proxy when the
--   corresponding signal on the model is emitted. This single call updates
--   all row references for that proxy. Since built-in GTK objects like
--   GtkTreeView already use this mechanism internally, using them
--   as the proxy object will produce unpredictable results. Further more,
--   passing the same object as model and
--   proxy doesn’t work for reasons of internal
--   implementation.
--   
--   This type of row reference is primarily meant by structures that need
--   to carefully monitor exactly when a row reference updates itself, and
--   is not generally needed by most applications.

-- | Deprecated: (Since version 4.10)
treeRowReferenceNewProxy :: (HasCallStack, MonadIO m, IsObject a, IsTreeModel b) => a -> b -> TreePath -> m (Maybe TreeRowReference)

-- | Returns True if the reference is
--   non-Nothing and refers to a current valid path.

-- | Deprecated: (Since version 4.10)
treeRowReferenceValid :: (HasCallStack, MonadIO m) => Maybe TreeRowReference -> m Bool
instance GHC.Classes.Eq GI.Gtk.Structs.TreeRowReference.TreeRowReference
instance Data.GI.Base.BasicTypes.GBoxed GI.Gtk.Structs.TreeRowReference.TreeRowReference
instance Data.GI.Base.Overloading.HasParentTypes GI.Gtk.Structs.TreeRowReference.TreeRowReference
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gtk.Structs.TreeRowReference.TreeRowReference)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.TreeRowReference.TreeRowReference
instance Data.GI.Base.BasicTypes.TypedObject GI.Gtk.Structs.TreeRowReference.TreeRowReference

-- | No description available in the introspection data.
module GI.Gtk.Structs.WidgetClass

-- | Memory-managed wrapper type.
newtype WidgetClass
WidgetClass :: ManagedPtr WidgetClass -> WidgetClass

-- | Construct a WidgetClass struct initialized to zero.
newZeroWidgetClass :: MonadIO m => m WidgetClass

-- | Installs a shortcut in widgetClass.
--   
--   Every instance created for widgetClass or its
--   subclasses will inherit this shortcut and trigger it.
--   
--   Shortcuts added this way will be triggered in the
--   PropagationPhaseBubble phase, which means they may also trigger
--   if child widgets have focus.
--   
--   This function must only be used in class initialization functions
--   otherwise it is not guaranteed that the shortcut will be installed.
widgetClassAddShortcut :: (HasCallStack, MonadIO m, IsShortcut a) => WidgetClass -> a -> m ()

-- | Associates a name to be used in GtkBuilder XML with a symbol.
--   
--   This function is not supported after
--   widgetClassSetTemplateScope has been used on
--   widgetClass.
--   
--   See builderCScopeAddCallbackSymbol.
--   
--   Note that this must be called from a composite widget classes class
--   initializer after calling widgetClassSetTemplate.
widgetClassBindTemplateCallbackFull :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> Callback -> m ()

-- | Assigns an object declared in the class template XML to be set to a
--   location on a freshly built instance’s private data, or alternatively
--   accessible via widgetGetTemplateChild.
--   
--   The struct can point either into the public instance, then you should
--   use G_STRUCT_OFFSET(WidgetType, member) for
--   structOffset, or in the private struct, then you
--   should use G_PRIVATE_OFFSET(WidgetType, member).
--   
--   An explicit strong reference will be held automatically for the
--   duration of your instance’s life cycle, it will be released
--   automatically when GObjectClass.dispose() runs on your
--   instance and if a nonzero structOffset is specified,
--   then the automatic location in your instance public or private data
--   will be set to NULL. You can however access an automated
--   child pointer the first time your classes
--   GObjectClass.dispose() runs, or alternatively in
--   Widget::destroy.
--   
--   If internalChild is specified,
--   Buildable.get_internal_child() will be
--   automatically implemented by the widget class so there is no need to
--   implement it manually.
--   
--   The wrapper macros
--   Gtk.widget_class_bind_template_child,
--   Gtk.widget_class_bind_template_child_internal,
--   Gtk.widget_class_bind_template_child_private and
--   Gtk.widget_class_bind_template_child_internal_private
--   might be more convenient to use.
--   
--   Note that this must be called from a composite widget classes class
--   initializer after calling widgetClassSetTemplate.
widgetClassBindTemplateChildFull :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> Bool -> Int64 -> m ()

-- | Retrieves the accessible role used by the given widget class.
--   
--   Different accessible roles have different states, and are rendered
--   differently by assistive technologies.
--   
--   See also: accessibleGetAccessibleRole.
widgetClassGetAccessibleRole :: (HasCallStack, MonadIO m) => WidgetClass -> m AccessibleRole

-- | Retrieves the signal id for the activation signal.
--   
--   The activation signal is set using
--   widgetClassSetActivateSignal.
widgetClassGetActivateSignal :: (HasCallStack, MonadIO m) => WidgetClass -> m Word32

-- | Gets the name used by this class for matching in CSS code.
--   
--   See widgetClassSetCssName for details.
widgetClassGetCssName :: (HasCallStack, MonadIO m) => WidgetClass -> m Text

-- | Retrieves the type of the LayoutManager used by widgets of
--   class widgetClass.
--   
--   See also: widgetClassSetLayoutManagerType.
widgetClassGetLayoutManagerType :: (HasCallStack, MonadIO m) => WidgetClass -> m GType

-- | Adds an action for all instances of a widget class.
--   
--   This function should be called at class initialization time.
--   
--   Actions installed by this function are stateless. The only state they
--   have is whether they are enabled or not (which can be changed with
--   widgetActionSetEnabled).
widgetClassInstallAction :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> Maybe Text -> WidgetActionActivateFunc -> m ()

-- | Installs an action called actionName on
--   widgetClass and binds its state to the value of the
--   propertyName property.
--   
--   This function will perform a few sanity checks on the property
--   selected via propertyName. Namely, the property must
--   exist, must be readable, writable and must not be construct-only.
--   There are also restrictions on the type of the given property, it must
--   be boolean, int, unsigned int, double or string. If any of these
--   conditions are not met, a critical warning will be printed and no
--   action will be added.
--   
--   The state type of the action matches the property type.
--   
--   If the property is boolean, the action will have no parameter and
--   toggle the property value. Otherwise, the action will have a parameter
--   of the same type as the property.
widgetClassInstallPropertyAction :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> Text -> m ()

-- | Returns details about an action that has been installed for
--   widgetClass.
--   
--   See widgetClassInstallAction for details on how to install
--   actions.
--   
--   Note that this function will also return actions defined by parent
--   classes. You can identify those by looking at owner.
widgetClassQueryAction :: (HasCallStack, MonadIO m) => WidgetClass -> Word32 -> m (Bool, GType, Text, Maybe VariantType, Maybe Text)

-- | Sets the accessible role used by the given widget class.
--   
--   Different accessible roles have different states, and are rendered
--   differently by assistive technologies.
widgetClassSetAccessibleRole :: (HasCallStack, MonadIO m) => WidgetClass -> AccessibleRole -> m ()

-- | Sets the activation signal for a widget class.
--   
--   The signal will be emitted when calling widgetActivate.
--   
--   The signalId must have been registered with
--   [function.GObject.signal_new] or GObject.signal_newv
--   before calling this function.
widgetClassSetActivateSignal :: (HasCallStack, MonadIO m) => WidgetClass -> Word32 -> m ()

-- | Sets the activation signal for a widget class.
--   
--   The signal id will by looked up by signalName.
--   
--   The signal will be emitted when calling widgetActivate.
--   
--   The signalName must have been registered with
--   [function.GObject.signal_new] or GObject.signal_newv
--   before calling this function.
widgetClassSetActivateSignalFromName :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> m ()

-- | Sets the name to be used for CSS matching of widgets.
--   
--   If this function is not called for a given class, the name set on the
--   parent class is used. By default, GtkWidget uses the name
--   "widget".
widgetClassSetCssName :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> m ()

-- | Sets the type to be used for creating layout managers for widgets of
--   widgetClass.
--   
--   The given type must be a subtype of
--   LayoutManager.
--   
--   This function should only be called from class init functions of
--   widgets.
widgetClassSetLayoutManagerType :: (HasCallStack, MonadIO m) => WidgetClass -> GType -> m ()

-- | This should be called at class initialization time to specify the
--   GtkBuilder XML to be used to extend a widget.
--   
--   For convenience, widgetClassSetTemplateFromResource is also
--   provided.
--   
--   Note that any class that installs templates must call
--   widgetInitTemplate in the widget’s instance initializer.
widgetClassSetTemplate :: (HasCallStack, MonadIO m) => WidgetClass -> Bytes -> m ()

-- | A convenience function that calls widgetClassSetTemplate with
--   the contents of a resource.
--   
--   Note that any class that installs templates must call
--   widgetInitTemplate in the widget’s instance initializer.
widgetClassSetTemplateFromResource :: (HasCallStack, MonadIO m) => WidgetClass -> Text -> m ()

-- | Overrides the default scope to be used when parsing the class
--   template.
--   
--   This function is intended for language bindings.
--   
--   Note that this must be called from a composite widget classes class
--   initializer after calling widgetClassSetTemplate.
widgetClassSetTemplateScope :: (HasCallStack, MonadIO m, IsBuilderScope a) => WidgetClass -> a -> m ()

-- | Set the value of the “compute_expand” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #computeExpand
--   
clearWidgetClassComputeExpand :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “compute_expand” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #computeExpand
--   
getWidgetClassComputeExpand :: MonadIO m => WidgetClass -> m (Maybe WidgetClassComputeExpandFieldCallback)

-- | Set the value of the “compute_expand” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #computeExpand := value ]
--   
setWidgetClassComputeExpand :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassComputeExpandFieldCallback -> m ()

-- | Set the value of the “contains” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #contains
--   
clearWidgetClassContains :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “contains” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #contains
--   
getWidgetClassContains :: MonadIO m => WidgetClass -> m (Maybe WidgetClassContainsFieldCallback)

-- | Set the value of the “contains” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #contains := value ]
--   
setWidgetClassContains :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassContainsFieldCallback -> m ()

-- | Set the value of the “css_changed” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #cssChanged
--   
clearWidgetClassCssChanged :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “css_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #cssChanged
--   
getWidgetClassCssChanged :: MonadIO m => WidgetClass -> m (Maybe WidgetClassCssChangedFieldCallback)

-- | Set the value of the “css_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #cssChanged := value ]
--   
setWidgetClassCssChanged :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassCssChangedFieldCallback -> m ()

-- | Set the value of the “direction_changed” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #directionChanged
--   
clearWidgetClassDirectionChanged :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “direction_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #directionChanged
--   
getWidgetClassDirectionChanged :: MonadIO m => WidgetClass -> m (Maybe WidgetClassDirectionChangedFieldCallback)

-- | Set the value of the “direction_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #directionChanged := value ]
--   
setWidgetClassDirectionChanged :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassDirectionChangedFieldCallback -> m ()

-- | Set the value of the “focus” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #focus
--   
clearWidgetClassFocus :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “focus” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widgetClass #focus
--   
getWidgetClassFocus :: MonadIO m => WidgetClass -> m (Maybe WidgetClassFocusFieldCallback)

-- | Set the value of the “focus” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #focus := value ]
--   
setWidgetClassFocus :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassFocusFieldCallback -> m ()

-- | Set the value of the “get_request_mode” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #getRequestMode
--   
clearWidgetClassGetRequestMode :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “get_request_mode” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #getRequestMode
--   
getWidgetClassGetRequestMode :: MonadIO m => WidgetClass -> m (Maybe WidgetClassGetRequestModeFieldCallback)

-- | Set the value of the “get_request_mode” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #getRequestMode := value ]
--   
setWidgetClassGetRequestMode :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassGetRequestModeFieldCallback -> m ()

-- | Set the value of the “grab_focus” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #grabFocus
--   
clearWidgetClassGrabFocus :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “grab_focus” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #grabFocus
--   
getWidgetClassGrabFocus :: MonadIO m => WidgetClass -> m (Maybe WidgetClassGrabFocusFieldCallback)

-- | Set the value of the “grab_focus” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #grabFocus := value ]
--   
setWidgetClassGrabFocus :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassGrabFocusFieldCallback -> m ()

-- | Set the value of the “hide” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #hide
--   
clearWidgetClassHide :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “hide” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get widgetClass #hide
--   
getWidgetClassHide :: MonadIO m => WidgetClass -> m (Maybe WidgetClassHideFieldCallback)

-- | Set the value of the “hide” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set widgetClass [ #hide := value ]
--   
setWidgetClassHide :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassHideFieldCallback -> m ()

-- | Set the value of the “keynav_failed” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #keynavFailed
--   
clearWidgetClassKeynavFailed :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “keynav_failed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #keynavFailed
--   
getWidgetClassKeynavFailed :: MonadIO m => WidgetClass -> m (Maybe WidgetClassKeynavFailedFieldCallback)

-- | Set the value of the “keynav_failed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #keynavFailed := value ]
--   
setWidgetClassKeynavFailed :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassKeynavFailedFieldCallback -> m ()

-- | Set the value of the “map” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #map
--   
clearWidgetClassMap :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “map” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get widgetClass #map
--   
getWidgetClassMap :: MonadIO m => WidgetClass -> m (Maybe WidgetClassMapFieldCallback)

-- | Set the value of the “map” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set widgetClass [ #map := value ]
--   
setWidgetClassMap :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassMapFieldCallback -> m ()

-- | Set the value of the “measure” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #measure
--   
clearWidgetClassMeasure :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “measure” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widgetClass #measure
--   
getWidgetClassMeasure :: MonadIO m => WidgetClass -> m (Maybe WidgetClassMeasureFieldCallback)

-- | Set the value of the “measure” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #measure := value ]
--   
setWidgetClassMeasure :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassMeasureFieldCallback -> m ()

-- | Set the value of the “mnemonic_activate” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #mnemonicActivate
--   
clearWidgetClassMnemonicActivate :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “mnemonic_activate” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #mnemonicActivate
--   
getWidgetClassMnemonicActivate :: MonadIO m => WidgetClass -> m (Maybe WidgetClassMnemonicActivateFieldCallback)

-- | Set the value of the “mnemonic_activate” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #mnemonicActivate := value ]
--   
setWidgetClassMnemonicActivate :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassMnemonicActivateFieldCallback -> m ()

-- | Set the value of the “move_focus” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #moveFocus
--   
clearWidgetClassMoveFocus :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “move_focus” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #moveFocus
--   
getWidgetClassMoveFocus :: MonadIO m => WidgetClass -> m (Maybe WidgetClassMoveFocusFieldCallback)

-- | Set the value of the “move_focus” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #moveFocus := value ]
--   
setWidgetClassMoveFocus :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassMoveFocusFieldCallback -> m ()

-- | Get the value of the “parent_class” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #parentClass
--   
getWidgetClassParentClass :: MonadIO m => WidgetClass -> m InitiallyUnownedClass

-- | Set the value of the “query_tooltip” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #queryTooltip
--   
clearWidgetClassQueryTooltip :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “query_tooltip” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #queryTooltip
--   
getWidgetClassQueryTooltip :: MonadIO m => WidgetClass -> m (Maybe WidgetClassQueryTooltipFieldCallback)

-- | Set the value of the “query_tooltip” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #queryTooltip := value ]
--   
setWidgetClassQueryTooltip :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassQueryTooltipFieldCallback -> m ()

-- | Set the value of the “realize” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #realize
--   
clearWidgetClassRealize :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “realize” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widgetClass #realize
--   
getWidgetClassRealize :: MonadIO m => WidgetClass -> m (Maybe WidgetClassRealizeFieldCallback)

-- | Set the value of the “realize” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #realize := value ]
--   
setWidgetClassRealize :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassRealizeFieldCallback -> m ()

-- | Set the value of the “root” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #root
--   
clearWidgetClassRoot :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “root” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get widgetClass #root
--   
getWidgetClassRoot :: MonadIO m => WidgetClass -> m (Maybe WidgetClassRootFieldCallback)

-- | Set the value of the “root” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set widgetClass [ #root := value ]
--   
setWidgetClassRoot :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassRootFieldCallback -> m ()

-- | Set the value of the “set_focus_child” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #setFocusChild
--   
clearWidgetClassSetFocusChild :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “set_focus_child” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #setFocusChild
--   
getWidgetClassSetFocusChild :: MonadIO m => WidgetClass -> m (Maybe WidgetClassSetFocusChildFieldCallback)

-- | Set the value of the “set_focus_child” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #setFocusChild := value ]
--   
setWidgetClassSetFocusChild :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassSetFocusChildFieldCallback -> m ()

-- | Set the value of the “show” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #show
--   
clearWidgetClassShow :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “show” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   get widgetClass #show
--   
getWidgetClassShow :: MonadIO m => WidgetClass -> m (Maybe WidgetClassShowFieldCallback)

-- | Set the value of the “show” field. When overloading is
--   enabled, this is equivalent to
--   
--   
--   set widgetClass [ #show := value ]
--   
setWidgetClassShow :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassShowFieldCallback -> m ()

-- | Set the value of the “size_allocate” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #sizeAllocate
--   
clearWidgetClassSizeAllocate :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “size_allocate” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #sizeAllocate
--   
getWidgetClassSizeAllocate :: MonadIO m => WidgetClass -> m (Maybe WidgetClassSizeAllocateFieldCallback)

-- | Set the value of the “size_allocate” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #sizeAllocate := value ]
--   
setWidgetClassSizeAllocate :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassSizeAllocateFieldCallback -> m ()

-- | Set the value of the “snapshot” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #snapshot
--   
clearWidgetClassSnapshot :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “snapshot” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #snapshot
--   
getWidgetClassSnapshot :: MonadIO m => WidgetClass -> m (Maybe WidgetClassSnapshotFieldCallback)

-- | Set the value of the “snapshot” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #snapshot := value ]
--   
setWidgetClassSnapshot :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassSnapshotFieldCallback -> m ()

-- | Set the value of the “state_flags_changed” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #stateFlagsChanged
--   
clearWidgetClassStateFlagsChanged :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “state_flags_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #stateFlagsChanged
--   
getWidgetClassStateFlagsChanged :: MonadIO m => WidgetClass -> m (Maybe WidgetClassStateFlagsChangedFieldCallback)

-- | Set the value of the “state_flags_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #stateFlagsChanged := value ]
--   
setWidgetClassStateFlagsChanged :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassStateFlagsChangedFieldCallback -> m ()

-- | Set the value of the “system_setting_changed” field to
--   Nothing. When overloading is enabled, this is equivalent
--   to
--   
--   
--   clear #systemSettingChanged
--   
clearWidgetClassSystemSettingChanged :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “system_setting_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #systemSettingChanged
--   
getWidgetClassSystemSettingChanged :: MonadIO m => WidgetClass -> m (Maybe WidgetClassSystemSettingChangedFieldCallback)

-- | Set the value of the “system_setting_changed” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #systemSettingChanged := value ]
--   
setWidgetClassSystemSettingChanged :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassSystemSettingChangedFieldCallback -> m ()

-- | Set the value of the “unmap” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #unmap
--   
clearWidgetClassUnmap :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “unmap” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widgetClass #unmap
--   
getWidgetClassUnmap :: MonadIO m => WidgetClass -> m (Maybe WidgetClassUnmapFieldCallback)

-- | Set the value of the “unmap” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #unmap := value ]
--   
setWidgetClassUnmap :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassUnmapFieldCallback -> m ()

-- | Set the value of the “unrealize” field to Nothing.
--   When overloading is enabled, this is equivalent to
--   
--   
--   clear #unrealize
--   
clearWidgetClassUnrealize :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “unrealize” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   get widgetClass #unrealize
--   
getWidgetClassUnrealize :: MonadIO m => WidgetClass -> m (Maybe WidgetClassUnrealizeFieldCallback)

-- | Set the value of the “unrealize” field. When
--   overloading is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #unrealize := value ]
--   
setWidgetClassUnrealize :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassUnrealizeFieldCallback -> m ()

-- | Set the value of the “unroot” field to Nothing. When
--   overloading is enabled, this is equivalent to
--   
--   
--   clear #unroot
--   
clearWidgetClassUnroot :: MonadIO m => WidgetClass -> m ()

-- | Get the value of the “unroot” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   get widgetClass #unroot
--   
getWidgetClassUnroot :: MonadIO m => WidgetClass -> m (Maybe WidgetClassUnrootFieldCallback)

-- | Set the value of the “unroot” field. When overloading
--   is enabled, this is equivalent to
--   
--   
--   set widgetClass [ #unroot := value ]
--   
setWidgetClassUnroot :: MonadIO m => WidgetClass -> FunPtr C_WidgetClassUnrootFieldCallback -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gtk.Structs.WidgetClass.WidgetClass
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gtk.Structs.WidgetClass.WidgetClass
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gtk.Structs.WidgetClass.WidgetClass tag
instance GHC.Classes.Eq GI.Gtk.Structs.WidgetClass.WidgetClass
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gtk.Structs.WidgetClass.WidgetClass

module GI.Gtk.Structs

module GI.Gtk
