-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Gtk.Callbacks
    ( 

 -- * Signals
-- ** AccelGroupActivate #signal:AccelGroupActivate#

    AccelGroupActivate                      ,
    C_AccelGroupActivate                    ,
    dynamic_AccelGroupActivate              ,
    genClosure_AccelGroupActivate           ,
    mk_AccelGroupActivate                   ,
    noAccelGroupActivate                    ,
    wrap_AccelGroupActivate                 ,


-- ** AccelGroupFindFunc #signal:AccelGroupFindFunc#

    AccelGroupFindFunc                      ,
    AccelGroupFindFunc_WithClosures         ,
    C_AccelGroupFindFunc                    ,
    drop_closures_AccelGroupFindFunc        ,
    dynamic_AccelGroupFindFunc              ,
    genClosure_AccelGroupFindFunc           ,
    mk_AccelGroupFindFunc                   ,
    noAccelGroupFindFunc                    ,
    noAccelGroupFindFunc_WithClosures       ,
    wrap_AccelGroupFindFunc                 ,


-- ** AccelMapForeach #signal:AccelMapForeach#

    AccelMapForeach                         ,
    C_AccelMapForeach                       ,
    dynamic_AccelMapForeach                 ,
    genClosure_AccelMapForeach              ,
    mk_AccelMapForeach                      ,
    noAccelMapForeach                       ,
    wrap_AccelMapForeach                    ,


-- ** AssistantPageFunc #signal:AssistantPageFunc#

    AssistantPageFunc                       ,
    AssistantPageFunc_WithClosures          ,
    C_AssistantPageFunc                     ,
    drop_closures_AssistantPageFunc         ,
    dynamic_AssistantPageFunc               ,
    genClosure_AssistantPageFunc            ,
    mk_AssistantPageFunc                    ,
    noAssistantPageFunc                     ,
    noAssistantPageFunc_WithClosures        ,
    wrap_AssistantPageFunc                  ,


-- ** BuilderConnectFunc #signal:BuilderConnectFunc#

    BuilderConnectFunc                      ,
    BuilderConnectFunc_WithClosures         ,
    C_BuilderConnectFunc                    ,
    drop_closures_BuilderConnectFunc        ,
    dynamic_BuilderConnectFunc              ,
    genClosure_BuilderConnectFunc           ,
    mk_BuilderConnectFunc                   ,
    noBuilderConnectFunc                    ,
    noBuilderConnectFunc_WithClosures       ,
    wrap_BuilderConnectFunc                 ,


-- ** CalendarDetailFunc #signal:CalendarDetailFunc#

    C_CalendarDetailFunc                    ,
    CalendarDetailFunc                      ,
    CalendarDetailFunc_WithClosures         ,
    drop_closures_CalendarDetailFunc        ,
    dynamic_CalendarDetailFunc              ,
    genClosure_CalendarDetailFunc           ,
    mk_CalendarDetailFunc                   ,
    noCalendarDetailFunc                    ,
    noCalendarDetailFunc_WithClosures       ,
    wrap_CalendarDetailFunc                 ,


-- ** Callback #signal:Callback#

    C_Callback                              ,
    Callback                                ,
    Callback_WithClosures                   ,
    drop_closures_Callback                  ,
    dynamic_Callback                        ,
    genClosure_Callback                     ,
    mk_Callback                             ,
    noCallback                              ,
    noCallback_WithClosures                 ,
    wrap_Callback                           ,


-- ** CellAllocCallback #signal:CellAllocCallback#

    C_CellAllocCallback                     ,
    CellAllocCallback                       ,
    CellAllocCallback_WithClosures          ,
    drop_closures_CellAllocCallback         ,
    dynamic_CellAllocCallback               ,
    genClosure_CellAllocCallback            ,
    mk_CellAllocCallback                    ,
    noCellAllocCallback                     ,
    noCellAllocCallback_WithClosures        ,
    wrap_CellAllocCallback                  ,


-- ** CellCallback #signal:CellCallback#

    C_CellCallback                          ,
    CellCallback                            ,
    CellCallback_WithClosures               ,
    drop_closures_CellCallback              ,
    dynamic_CellCallback                    ,
    genClosure_CellCallback                 ,
    mk_CellCallback                         ,
    noCellCallback                          ,
    noCellCallback_WithClosures             ,
    wrap_CellCallback                       ,


-- ** CellLayoutDataFunc #signal:CellLayoutDataFunc#

    C_CellLayoutDataFunc                    ,
    CellLayoutDataFunc                      ,
    CellLayoutDataFunc_WithClosures         ,
    drop_closures_CellLayoutDataFunc        ,
    dynamic_CellLayoutDataFunc              ,
    genClosure_CellLayoutDataFunc           ,
    mk_CellLayoutDataFunc                   ,
    noCellLayoutDataFunc                    ,
    noCellLayoutDataFunc_WithClosures       ,
    wrap_CellLayoutDataFunc                 ,


-- ** ClipboardClearFunc #signal:ClipboardClearFunc#

    C_ClipboardClearFunc                    ,
    ClipboardClearFunc                      ,
    dynamic_ClipboardClearFunc              ,
    genClosure_ClipboardClearFunc           ,
    mk_ClipboardClearFunc                   ,
    noClipboardClearFunc                    ,
    wrap_ClipboardClearFunc                 ,


-- ** ClipboardGetFunc #signal:ClipboardGetFunc#

    C_ClipboardGetFunc                      ,
    ClipboardGetFunc                        ,
    dynamic_ClipboardGetFunc                ,
    genClosure_ClipboardGetFunc             ,
    mk_ClipboardGetFunc                     ,
    noClipboardGetFunc                      ,
    wrap_ClipboardGetFunc                   ,


-- ** ClipboardImageReceivedFunc #signal:ClipboardImageReceivedFunc#

    C_ClipboardImageReceivedFunc            ,
    ClipboardImageReceivedFunc              ,
    ClipboardImageReceivedFunc_WithClosures ,
    drop_closures_ClipboardImageReceivedFunc,
    dynamic_ClipboardImageReceivedFunc      ,
    genClosure_ClipboardImageReceivedFunc   ,
    mk_ClipboardImageReceivedFunc           ,
    noClipboardImageReceivedFunc            ,
    noClipboardImageReceivedFunc_WithClosures,
    wrap_ClipboardImageReceivedFunc         ,


-- ** ClipboardReceivedFunc #signal:ClipboardReceivedFunc#

    C_ClipboardReceivedFunc                 ,
    ClipboardReceivedFunc                   ,
    ClipboardReceivedFunc_WithClosures      ,
    drop_closures_ClipboardReceivedFunc     ,
    dynamic_ClipboardReceivedFunc           ,
    genClosure_ClipboardReceivedFunc        ,
    mk_ClipboardReceivedFunc                ,
    noClipboardReceivedFunc                 ,
    noClipboardReceivedFunc_WithClosures    ,
    wrap_ClipboardReceivedFunc              ,


-- ** ClipboardRichTextReceivedFunc #signal:ClipboardRichTextReceivedFunc#

    C_ClipboardRichTextReceivedFunc         ,
    ClipboardRichTextReceivedFunc           ,
    ClipboardRichTextReceivedFunc_WithClosures,
    drop_closures_ClipboardRichTextReceivedFunc,
    dynamic_ClipboardRichTextReceivedFunc   ,
    genClosure_ClipboardRichTextReceivedFunc,
    mk_ClipboardRichTextReceivedFunc        ,
    noClipboardRichTextReceivedFunc         ,
    noClipboardRichTextReceivedFunc_WithClosures,
    wrap_ClipboardRichTextReceivedFunc      ,


-- ** ClipboardTargetsReceivedFunc #signal:ClipboardTargetsReceivedFunc#

    C_ClipboardTargetsReceivedFunc          ,
    ClipboardTargetsReceivedFunc            ,
    ClipboardTargetsReceivedFunc_WithClosures,
    drop_closures_ClipboardTargetsReceivedFunc,
    dynamic_ClipboardTargetsReceivedFunc    ,
    genClosure_ClipboardTargetsReceivedFunc ,
    mk_ClipboardTargetsReceivedFunc         ,
    noClipboardTargetsReceivedFunc          ,
    noClipboardTargetsReceivedFunc_WithClosures,
    wrap_ClipboardTargetsReceivedFunc       ,


-- ** ClipboardTextReceivedFunc #signal:ClipboardTextReceivedFunc#

    C_ClipboardTextReceivedFunc             ,
    ClipboardTextReceivedFunc               ,
    ClipboardTextReceivedFunc_WithClosures  ,
    drop_closures_ClipboardTextReceivedFunc ,
    dynamic_ClipboardTextReceivedFunc       ,
    genClosure_ClipboardTextReceivedFunc    ,
    mk_ClipboardTextReceivedFunc            ,
    noClipboardTextReceivedFunc             ,
    noClipboardTextReceivedFunc_WithClosures,
    wrap_ClipboardTextReceivedFunc          ,


-- ** ClipboardURIReceivedFunc #signal:ClipboardURIReceivedFunc#

    C_ClipboardURIReceivedFunc              ,
    ClipboardURIReceivedFunc                ,
    ClipboardURIReceivedFunc_WithClosures   ,
    drop_closures_ClipboardURIReceivedFunc  ,
    dynamic_ClipboardURIReceivedFunc        ,
    genClosure_ClipboardURIReceivedFunc     ,
    mk_ClipboardURIReceivedFunc             ,
    noClipboardURIReceivedFunc              ,
    noClipboardURIReceivedFunc_WithClosures ,
    wrap_ClipboardURIReceivedFunc           ,


-- ** ColorSelectionChangePaletteFunc #signal:ColorSelectionChangePaletteFunc#

    C_ColorSelectionChangePaletteFunc       ,
    ColorSelectionChangePaletteFunc         ,
    dynamic_ColorSelectionChangePaletteFunc ,
    genClosure_ColorSelectionChangePaletteFunc,
    mk_ColorSelectionChangePaletteFunc      ,
    noColorSelectionChangePaletteFunc       ,
    wrap_ColorSelectionChangePaletteFunc    ,


-- ** ColorSelectionChangePaletteWithScreenFunc #signal:ColorSelectionChangePaletteWithScreenFunc#

    C_ColorSelectionChangePaletteWithScreenFunc,
    ColorSelectionChangePaletteWithScreenFunc,
    dynamic_ColorSelectionChangePaletteWithScreenFunc,
    genClosure_ColorSelectionChangePaletteWithScreenFunc,
    mk_ColorSelectionChangePaletteWithScreenFunc,
    noColorSelectionChangePaletteWithScreenFunc,
    wrap_ColorSelectionChangePaletteWithScreenFunc,


-- ** ContainerClassAddFieldCallback #signal:ContainerClassAddFieldCallback#

    C_ContainerClassAddFieldCallback        ,
    ContainerClassAddFieldCallback          ,
    dynamic_ContainerClassAddFieldCallback  ,
    genClosure_ContainerClassAddFieldCallback,
    mk_ContainerClassAddFieldCallback       ,
    noContainerClassAddFieldCallback        ,
    wrap_ContainerClassAddFieldCallback     ,


-- ** ContainerClassCheckResizeFieldCallback #signal:ContainerClassCheckResizeFieldCallback#

    C_ContainerClassCheckResizeFieldCallback,
    ContainerClassCheckResizeFieldCallback  ,
    dynamic_ContainerClassCheckResizeFieldCallback,
    genClosure_ContainerClassCheckResizeFieldCallback,
    mk_ContainerClassCheckResizeFieldCallback,
    noContainerClassCheckResizeFieldCallback,
    wrap_ContainerClassCheckResizeFieldCallback,


-- ** ContainerClassChildTypeFieldCallback #signal:ContainerClassChildTypeFieldCallback#

    C_ContainerClassChildTypeFieldCallback  ,
    ContainerClassChildTypeFieldCallback    ,
    dynamic_ContainerClassChildTypeFieldCallback,
    genClosure_ContainerClassChildTypeFieldCallback,
    mk_ContainerClassChildTypeFieldCallback ,
    noContainerClassChildTypeFieldCallback  ,
    wrap_ContainerClassChildTypeFieldCallback,


-- ** ContainerClassCompositeNameFieldCallback #signal:ContainerClassCompositeNameFieldCallback#

    C_ContainerClassCompositeNameFieldCallback,
    ContainerClassCompositeNameFieldCallback,
    dynamic_ContainerClassCompositeNameFieldCallback,
    genClosure_ContainerClassCompositeNameFieldCallback,
    mk_ContainerClassCompositeNameFieldCallback,
    noContainerClassCompositeNameFieldCallback,
    wrap_ContainerClassCompositeNameFieldCallback,


-- ** ContainerClassForallFieldCallback #signal:ContainerClassForallFieldCallback#

    C_ContainerClassForallFieldCallback     ,
    ContainerClassForallFieldCallback       ,
    ContainerClassForallFieldCallback_WithClosures,
    drop_closures_ContainerClassForallFieldCallback,
    dynamic_ContainerClassForallFieldCallback,
    genClosure_ContainerClassForallFieldCallback,
    mk_ContainerClassForallFieldCallback    ,
    noContainerClassForallFieldCallback     ,
    noContainerClassForallFieldCallback_WithClosures,
    wrap_ContainerClassForallFieldCallback  ,


-- ** ContainerClassGetChildPropertyFieldCallback #signal:ContainerClassGetChildPropertyFieldCallback#

    C_ContainerClassGetChildPropertyFieldCallback,
    ContainerClassGetChildPropertyFieldCallback,
    dynamic_ContainerClassGetChildPropertyFieldCallback,
    genClosure_ContainerClassGetChildPropertyFieldCallback,
    mk_ContainerClassGetChildPropertyFieldCallback,
    noContainerClassGetChildPropertyFieldCallback,
    wrap_ContainerClassGetChildPropertyFieldCallback,


-- ** ContainerClassGetPathForChildFieldCallback #signal:ContainerClassGetPathForChildFieldCallback#

    C_ContainerClassGetPathForChildFieldCallback,
    ContainerClassGetPathForChildFieldCallback,
    dynamic_ContainerClassGetPathForChildFieldCallback,
    genClosure_ContainerClassGetPathForChildFieldCallback,
    mk_ContainerClassGetPathForChildFieldCallback,
    noContainerClassGetPathForChildFieldCallback,
    wrap_ContainerClassGetPathForChildFieldCallback,


-- ** ContainerClassRemoveFieldCallback #signal:ContainerClassRemoveFieldCallback#

    C_ContainerClassRemoveFieldCallback     ,
    ContainerClassRemoveFieldCallback       ,
    dynamic_ContainerClassRemoveFieldCallback,
    genClosure_ContainerClassRemoveFieldCallback,
    mk_ContainerClassRemoveFieldCallback    ,
    noContainerClassRemoveFieldCallback     ,
    wrap_ContainerClassRemoveFieldCallback  ,


-- ** ContainerClassSetChildPropertyFieldCallback #signal:ContainerClassSetChildPropertyFieldCallback#

    C_ContainerClassSetChildPropertyFieldCallback,
    ContainerClassSetChildPropertyFieldCallback,
    dynamic_ContainerClassSetChildPropertyFieldCallback,
    genClosure_ContainerClassSetChildPropertyFieldCallback,
    mk_ContainerClassSetChildPropertyFieldCallback,
    noContainerClassSetChildPropertyFieldCallback,
    wrap_ContainerClassSetChildPropertyFieldCallback,


-- ** ContainerClassSetFocusChildFieldCallback #signal:ContainerClassSetFocusChildFieldCallback#

    C_ContainerClassSetFocusChildFieldCallback,
    ContainerClassSetFocusChildFieldCallback,
    dynamic_ContainerClassSetFocusChildFieldCallback,
    genClosure_ContainerClassSetFocusChildFieldCallback,
    mk_ContainerClassSetFocusChildFieldCallback,
    noContainerClassSetFocusChildFieldCallback,
    wrap_ContainerClassSetFocusChildFieldCallback,


-- ** EntryCompletionMatchFunc #signal:EntryCompletionMatchFunc#

    C_EntryCompletionMatchFunc              ,
    EntryCompletionMatchFunc                ,
    EntryCompletionMatchFunc_WithClosures   ,
    drop_closures_EntryCompletionMatchFunc  ,
    dynamic_EntryCompletionMatchFunc        ,
    genClosure_EntryCompletionMatchFunc     ,
    mk_EntryCompletionMatchFunc             ,
    noEntryCompletionMatchFunc              ,
    noEntryCompletionMatchFunc_WithClosures ,
    wrap_EntryCompletionMatchFunc           ,


-- ** FileFilterFunc #signal:FileFilterFunc#

    C_FileFilterFunc                        ,
    FileFilterFunc                          ,
    FileFilterFunc_WithClosures             ,
    drop_closures_FileFilterFunc            ,
    dynamic_FileFilterFunc                  ,
    genClosure_FileFilterFunc               ,
    mk_FileFilterFunc                       ,
    noFileFilterFunc                        ,
    noFileFilterFunc_WithClosures           ,
    wrap_FileFilterFunc                     ,


-- ** FlowBoxCreateWidgetFunc #signal:FlowBoxCreateWidgetFunc#

    C_FlowBoxCreateWidgetFunc               ,
    FlowBoxCreateWidgetFunc                 ,
    FlowBoxCreateWidgetFunc_WithClosures    ,
    drop_closures_FlowBoxCreateWidgetFunc   ,
    dynamic_FlowBoxCreateWidgetFunc         ,
    genClosure_FlowBoxCreateWidgetFunc      ,
    mk_FlowBoxCreateWidgetFunc              ,
    noFlowBoxCreateWidgetFunc               ,
    noFlowBoxCreateWidgetFunc_WithClosures  ,
    wrap_FlowBoxCreateWidgetFunc            ,


-- ** FlowBoxFilterFunc #signal:FlowBoxFilterFunc#

    C_FlowBoxFilterFunc                     ,
    FlowBoxFilterFunc                       ,
    FlowBoxFilterFunc_WithClosures          ,
    drop_closures_FlowBoxFilterFunc         ,
    dynamic_FlowBoxFilterFunc               ,
    genClosure_FlowBoxFilterFunc            ,
    mk_FlowBoxFilterFunc                    ,
    noFlowBoxFilterFunc                     ,
    noFlowBoxFilterFunc_WithClosures        ,
    wrap_FlowBoxFilterFunc                  ,


-- ** FlowBoxForeachFunc #signal:FlowBoxForeachFunc#

    C_FlowBoxForeachFunc                    ,
    FlowBoxForeachFunc                      ,
    FlowBoxForeachFunc_WithClosures         ,
    drop_closures_FlowBoxForeachFunc        ,
    dynamic_FlowBoxForeachFunc              ,
    genClosure_FlowBoxForeachFunc           ,
    mk_FlowBoxForeachFunc                   ,
    noFlowBoxForeachFunc                    ,
    noFlowBoxForeachFunc_WithClosures       ,
    wrap_FlowBoxForeachFunc                 ,


-- ** FlowBoxSortFunc #signal:FlowBoxSortFunc#

    C_FlowBoxSortFunc                       ,
    FlowBoxSortFunc                         ,
    FlowBoxSortFunc_WithClosures            ,
    drop_closures_FlowBoxSortFunc           ,
    dynamic_FlowBoxSortFunc                 ,
    genClosure_FlowBoxSortFunc              ,
    mk_FlowBoxSortFunc                      ,
    noFlowBoxSortFunc                       ,
    noFlowBoxSortFunc_WithClosures          ,
    wrap_FlowBoxSortFunc                    ,


-- ** FontFilterFunc #signal:FontFilterFunc#

    C_FontFilterFunc                        ,
    FontFilterFunc                          ,
    FontFilterFunc_WithClosures             ,
    drop_closures_FontFilterFunc            ,
    dynamic_FontFilterFunc                  ,
    genClosure_FontFilterFunc               ,
    mk_FontFilterFunc                       ,
    noFontFilterFunc                        ,
    noFontFilterFunc_WithClosures           ,
    wrap_FontFilterFunc                     ,


-- ** IconViewForeachFunc #signal:IconViewForeachFunc#

    C_IconViewForeachFunc                   ,
    IconViewForeachFunc                     ,
    IconViewForeachFunc_WithClosures        ,
    drop_closures_IconViewForeachFunc       ,
    dynamic_IconViewForeachFunc             ,
    genClosure_IconViewForeachFunc          ,
    mk_IconViewForeachFunc                  ,
    noIconViewForeachFunc                   ,
    noIconViewForeachFunc_WithClosures      ,
    wrap_IconViewForeachFunc                ,


-- ** KeySnoopFunc #signal:KeySnoopFunc#

    C_KeySnoopFunc                          ,
    KeySnoopFunc                            ,
    KeySnoopFunc_WithClosures               ,
    drop_closures_KeySnoopFunc              ,
    dynamic_KeySnoopFunc                    ,
    genClosure_KeySnoopFunc                 ,
    mk_KeySnoopFunc                         ,
    noKeySnoopFunc                          ,
    noKeySnoopFunc_WithClosures             ,
    wrap_KeySnoopFunc                       ,


-- ** ListBoxCreateWidgetFunc #signal:ListBoxCreateWidgetFunc#

    C_ListBoxCreateWidgetFunc               ,
    ListBoxCreateWidgetFunc                 ,
    ListBoxCreateWidgetFunc_WithClosures    ,
    drop_closures_ListBoxCreateWidgetFunc   ,
    dynamic_ListBoxCreateWidgetFunc         ,
    genClosure_ListBoxCreateWidgetFunc      ,
    mk_ListBoxCreateWidgetFunc              ,
    noListBoxCreateWidgetFunc               ,
    noListBoxCreateWidgetFunc_WithClosures  ,
    wrap_ListBoxCreateWidgetFunc            ,


-- ** ListBoxFilterFunc #signal:ListBoxFilterFunc#

    C_ListBoxFilterFunc                     ,
    ListBoxFilterFunc                       ,
    ListBoxFilterFunc_WithClosures          ,
    drop_closures_ListBoxFilterFunc         ,
    dynamic_ListBoxFilterFunc               ,
    genClosure_ListBoxFilterFunc            ,
    mk_ListBoxFilterFunc                    ,
    noListBoxFilterFunc                     ,
    noListBoxFilterFunc_WithClosures        ,
    wrap_ListBoxFilterFunc                  ,


-- ** ListBoxForeachFunc #signal:ListBoxForeachFunc#

    C_ListBoxForeachFunc                    ,
    ListBoxForeachFunc                      ,
    ListBoxForeachFunc_WithClosures         ,
    drop_closures_ListBoxForeachFunc        ,
    dynamic_ListBoxForeachFunc              ,
    genClosure_ListBoxForeachFunc           ,
    mk_ListBoxForeachFunc                   ,
    noListBoxForeachFunc                    ,
    noListBoxForeachFunc_WithClosures       ,
    wrap_ListBoxForeachFunc                 ,


-- ** ListBoxSortFunc #signal:ListBoxSortFunc#

    C_ListBoxSortFunc                       ,
    ListBoxSortFunc                         ,
    ListBoxSortFunc_WithClosures            ,
    drop_closures_ListBoxSortFunc           ,
    dynamic_ListBoxSortFunc                 ,
    genClosure_ListBoxSortFunc              ,
    mk_ListBoxSortFunc                      ,
    noListBoxSortFunc                       ,
    noListBoxSortFunc_WithClosures          ,
    wrap_ListBoxSortFunc                    ,


-- ** ListBoxUpdateHeaderFunc #signal:ListBoxUpdateHeaderFunc#

    C_ListBoxUpdateHeaderFunc               ,
    ListBoxUpdateHeaderFunc                 ,
    ListBoxUpdateHeaderFunc_WithClosures    ,
    drop_closures_ListBoxUpdateHeaderFunc   ,
    dynamic_ListBoxUpdateHeaderFunc         ,
    genClosure_ListBoxUpdateHeaderFunc      ,
    mk_ListBoxUpdateHeaderFunc              ,
    noListBoxUpdateHeaderFunc               ,
    noListBoxUpdateHeaderFunc_WithClosures  ,
    wrap_ListBoxUpdateHeaderFunc            ,


-- ** MenuDetachFunc #signal:MenuDetachFunc#

    C_MenuDetachFunc                        ,
    MenuDetachFunc                          ,
    dynamic_MenuDetachFunc                  ,
    genClosure_MenuDetachFunc               ,
    mk_MenuDetachFunc                       ,
    noMenuDetachFunc                        ,
    wrap_MenuDetachFunc                     ,


-- ** MenuPositionFunc #signal:MenuPositionFunc#

    C_MenuPositionFunc                      ,
    MenuPositionFunc                        ,
    MenuPositionFunc_WithClosures           ,
    drop_closures_MenuPositionFunc          ,
    dynamic_MenuPositionFunc                ,
    genClosure_MenuPositionFunc             ,
    mk_MenuPositionFunc                     ,
    noMenuPositionFunc                      ,
    noMenuPositionFunc_WithClosures         ,
    wrap_MenuPositionFunc                   ,


-- ** ModuleDisplayInitFunc #signal:ModuleDisplayInitFunc#

    C_ModuleDisplayInitFunc                 ,
    ModuleDisplayInitFunc                   ,
    dynamic_ModuleDisplayInitFunc           ,
    genClosure_ModuleDisplayInitFunc        ,
    mk_ModuleDisplayInitFunc                ,
    noModuleDisplayInitFunc                 ,
    wrap_ModuleDisplayInitFunc              ,


-- ** ModuleInitFunc #signal:ModuleInitFunc#

    C_ModuleInitFunc                        ,
    ModuleInitFunc                          ,
    dynamic_ModuleInitFunc                  ,
    genClosure_ModuleInitFunc               ,
    mk_ModuleInitFunc                       ,
    noModuleInitFunc                        ,
    wrap_ModuleInitFunc                     ,


-- ** PageSetupDoneFunc #signal:PageSetupDoneFunc#

    C_PageSetupDoneFunc                     ,
    PageSetupDoneFunc                       ,
    PageSetupDoneFunc_WithClosures          ,
    drop_closures_PageSetupDoneFunc         ,
    dynamic_PageSetupDoneFunc               ,
    genClosure_PageSetupDoneFunc            ,
    mk_PageSetupDoneFunc                    ,
    noPageSetupDoneFunc                     ,
    noPageSetupDoneFunc_WithClosures        ,
    wrap_PageSetupDoneFunc                  ,


-- ** PrintSettingsFunc #signal:PrintSettingsFunc#

    C_PrintSettingsFunc                     ,
    PrintSettingsFunc                       ,
    PrintSettingsFunc_WithClosures          ,
    drop_closures_PrintSettingsFunc         ,
    dynamic_PrintSettingsFunc               ,
    genClosure_PrintSettingsFunc            ,
    mk_PrintSettingsFunc                    ,
    noPrintSettingsFunc                     ,
    noPrintSettingsFunc_WithClosures        ,
    wrap_PrintSettingsFunc                  ,


-- ** RcPropertyParser #signal:RcPropertyParser#

    C_RcPropertyParser                      ,
    RcPropertyParser                        ,
    dynamic_RcPropertyParser                ,
    genClosure_RcPropertyParser             ,
    mk_RcPropertyParser                     ,
    noRcPropertyParser                      ,
    wrap_RcPropertyParser                   ,


-- ** RecentFilterFunc #signal:RecentFilterFunc#

    C_RecentFilterFunc                      ,
    RecentFilterFunc                        ,
    RecentFilterFunc_WithClosures           ,
    drop_closures_RecentFilterFunc          ,
    dynamic_RecentFilterFunc                ,
    genClosure_RecentFilterFunc             ,
    mk_RecentFilterFunc                     ,
    noRecentFilterFunc                      ,
    noRecentFilterFunc_WithClosures         ,
    wrap_RecentFilterFunc                   ,


-- ** RecentSortFunc #signal:RecentSortFunc#

    C_RecentSortFunc                        ,
    RecentSortFunc                          ,
    RecentSortFunc_WithClosures             ,
    drop_closures_RecentSortFunc            ,
    dynamic_RecentSortFunc                  ,
    genClosure_RecentSortFunc               ,
    mk_RecentSortFunc                       ,
    noRecentSortFunc                        ,
    noRecentSortFunc_WithClosures           ,
    wrap_RecentSortFunc                     ,


-- ** StylePropertyParser #signal:StylePropertyParser#

    C_StylePropertyParser                   ,
    StylePropertyParser                     ,
    dynamic_StylePropertyParser             ,
    mk_StylePropertyParser                  ,
    noStylePropertyParser                   ,


-- ** TextBufferDeserializeFunc #signal:TextBufferDeserializeFunc#

    C_TextBufferDeserializeFunc             ,
    TextBufferDeserializeFunc               ,
    TextBufferDeserializeFunc_WithClosures  ,
    drop_closures_TextBufferDeserializeFunc ,
    dynamic_TextBufferDeserializeFunc       ,
    mk_TextBufferDeserializeFunc            ,
    noTextBufferDeserializeFunc             ,
    noTextBufferDeserializeFunc_WithClosures,


-- ** TextBufferSerializeFunc #signal:TextBufferSerializeFunc#

    C_TextBufferSerializeFunc               ,
    TextBufferSerializeFunc                 ,
    TextBufferSerializeFunc_WithClosures    ,
    drop_closures_TextBufferSerializeFunc   ,
    dynamic_TextBufferSerializeFunc         ,
    genClosure_TextBufferSerializeFunc      ,
    mk_TextBufferSerializeFunc              ,
    noTextBufferSerializeFunc               ,
    noTextBufferSerializeFunc_WithClosures  ,
    wrap_TextBufferSerializeFunc            ,


-- ** TextCharPredicate #signal:TextCharPredicate#

    C_TextCharPredicate                     ,
    TextCharPredicate                       ,
    TextCharPredicate_WithClosures          ,
    drop_closures_TextCharPredicate         ,
    dynamic_TextCharPredicate               ,
    genClosure_TextCharPredicate            ,
    mk_TextCharPredicate                    ,
    noTextCharPredicate                     ,
    noTextCharPredicate_WithClosures        ,
    wrap_TextCharPredicate                  ,


-- ** TextTagTableForeach #signal:TextTagTableForeach#

    C_TextTagTableForeach                   ,
    TextTagTableForeach                     ,
    TextTagTableForeach_WithClosures        ,
    drop_closures_TextTagTableForeach       ,
    dynamic_TextTagTableForeach             ,
    genClosure_TextTagTableForeach          ,
    mk_TextTagTableForeach                  ,
    noTextTagTableForeach                   ,
    noTextTagTableForeach_WithClosures      ,
    wrap_TextTagTableForeach                ,


-- ** TickCallback #signal:TickCallback#

    C_TickCallback                          ,
    TickCallback                            ,
    TickCallback_WithClosures               ,
    drop_closures_TickCallback              ,
    dynamic_TickCallback                    ,
    genClosure_TickCallback                 ,
    mk_TickCallback                         ,
    noTickCallback                          ,
    noTickCallback_WithClosures             ,
    wrap_TickCallback                       ,


-- ** TranslateFunc #signal:TranslateFunc#

    C_TranslateFunc                         ,
    TranslateFunc                           ,
    TranslateFunc_WithClosures              ,
    drop_closures_TranslateFunc             ,
    dynamic_TranslateFunc                   ,
    genClosure_TranslateFunc                ,
    mk_TranslateFunc                        ,
    noTranslateFunc                         ,
    noTranslateFunc_WithClosures            ,
    wrap_TranslateFunc                      ,


-- ** TreeCellDataFunc #signal:TreeCellDataFunc#

    C_TreeCellDataFunc                      ,
    TreeCellDataFunc                        ,
    TreeCellDataFunc_WithClosures           ,
    drop_closures_TreeCellDataFunc          ,
    dynamic_TreeCellDataFunc                ,
    genClosure_TreeCellDataFunc             ,
    mk_TreeCellDataFunc                     ,
    noTreeCellDataFunc                      ,
    noTreeCellDataFunc_WithClosures         ,
    wrap_TreeCellDataFunc                   ,


-- ** TreeDestroyCountFunc #signal:TreeDestroyCountFunc#

    C_TreeDestroyCountFunc                  ,
    TreeDestroyCountFunc                    ,
    TreeDestroyCountFunc_WithClosures       ,
    drop_closures_TreeDestroyCountFunc      ,
    dynamic_TreeDestroyCountFunc            ,
    genClosure_TreeDestroyCountFunc         ,
    mk_TreeDestroyCountFunc                 ,
    noTreeDestroyCountFunc                  ,
    noTreeDestroyCountFunc_WithClosures     ,
    wrap_TreeDestroyCountFunc               ,


-- ** TreeIterCompareFunc #signal:TreeIterCompareFunc#

    C_TreeIterCompareFunc                   ,
    TreeIterCompareFunc                     ,
    TreeIterCompareFunc_WithClosures        ,
    drop_closures_TreeIterCompareFunc       ,
    dynamic_TreeIterCompareFunc             ,
    genClosure_TreeIterCompareFunc          ,
    mk_TreeIterCompareFunc                  ,
    noTreeIterCompareFunc                   ,
    noTreeIterCompareFunc_WithClosures      ,
    wrap_TreeIterCompareFunc                ,


-- ** TreeModelFilterVisibleFunc #signal:TreeModelFilterVisibleFunc#

    C_TreeModelFilterVisibleFunc            ,
    TreeModelFilterVisibleFunc              ,
    TreeModelFilterVisibleFunc_WithClosures ,
    drop_closures_TreeModelFilterVisibleFunc,
    dynamic_TreeModelFilterVisibleFunc      ,
    genClosure_TreeModelFilterVisibleFunc   ,
    mk_TreeModelFilterVisibleFunc           ,
    noTreeModelFilterVisibleFunc            ,
    noTreeModelFilterVisibleFunc_WithClosures,
    wrap_TreeModelFilterVisibleFunc         ,


-- ** TreeModelForeachFunc #signal:TreeModelForeachFunc#

    C_TreeModelForeachFunc                  ,
    TreeModelForeachFunc                    ,
    TreeModelForeachFunc_WithClosures       ,
    drop_closures_TreeModelForeachFunc      ,
    dynamic_TreeModelForeachFunc            ,
    genClosure_TreeModelForeachFunc         ,
    mk_TreeModelForeachFunc                 ,
    noTreeModelForeachFunc                  ,
    noTreeModelForeachFunc_WithClosures     ,
    wrap_TreeModelForeachFunc               ,


-- ** TreeSelectionForeachFunc #signal:TreeSelectionForeachFunc#

    C_TreeSelectionForeachFunc              ,
    TreeSelectionForeachFunc                ,
    TreeSelectionForeachFunc_WithClosures   ,
    drop_closures_TreeSelectionForeachFunc  ,
    dynamic_TreeSelectionForeachFunc        ,
    genClosure_TreeSelectionForeachFunc     ,
    mk_TreeSelectionForeachFunc             ,
    noTreeSelectionForeachFunc              ,
    noTreeSelectionForeachFunc_WithClosures ,
    wrap_TreeSelectionForeachFunc           ,


-- ** TreeSelectionFunc #signal:TreeSelectionFunc#

    C_TreeSelectionFunc                     ,
    TreeSelectionFunc                       ,
    TreeSelectionFunc_WithClosures          ,
    drop_closures_TreeSelectionFunc         ,
    dynamic_TreeSelectionFunc               ,
    genClosure_TreeSelectionFunc            ,
    mk_TreeSelectionFunc                    ,
    noTreeSelectionFunc                     ,
    noTreeSelectionFunc_WithClosures        ,
    wrap_TreeSelectionFunc                  ,


-- ** TreeViewColumnDropFunc #signal:TreeViewColumnDropFunc#

    C_TreeViewColumnDropFunc                ,
    TreeViewColumnDropFunc                  ,
    TreeViewColumnDropFunc_WithClosures     ,
    drop_closures_TreeViewColumnDropFunc    ,
    dynamic_TreeViewColumnDropFunc          ,
    genClosure_TreeViewColumnDropFunc       ,
    mk_TreeViewColumnDropFunc               ,
    noTreeViewColumnDropFunc                ,
    noTreeViewColumnDropFunc_WithClosures   ,
    wrap_TreeViewColumnDropFunc             ,


-- ** TreeViewMappingFunc #signal:TreeViewMappingFunc#

    C_TreeViewMappingFunc                   ,
    TreeViewMappingFunc                     ,
    TreeViewMappingFunc_WithClosures        ,
    drop_closures_TreeViewMappingFunc       ,
    dynamic_TreeViewMappingFunc             ,
    genClosure_TreeViewMappingFunc          ,
    mk_TreeViewMappingFunc                  ,
    noTreeViewMappingFunc                   ,
    noTreeViewMappingFunc_WithClosures      ,
    wrap_TreeViewMappingFunc                ,


-- ** TreeViewRowSeparatorFunc #signal:TreeViewRowSeparatorFunc#

    C_TreeViewRowSeparatorFunc              ,
    TreeViewRowSeparatorFunc                ,
    TreeViewRowSeparatorFunc_WithClosures   ,
    drop_closures_TreeViewRowSeparatorFunc  ,
    dynamic_TreeViewRowSeparatorFunc        ,
    genClosure_TreeViewRowSeparatorFunc     ,
    mk_TreeViewRowSeparatorFunc             ,
    noTreeViewRowSeparatorFunc              ,
    noTreeViewRowSeparatorFunc_WithClosures ,
    wrap_TreeViewRowSeparatorFunc           ,


-- ** TreeViewSearchEqualFunc #signal:TreeViewSearchEqualFunc#

    C_TreeViewSearchEqualFunc               ,
    TreeViewSearchEqualFunc                 ,
    TreeViewSearchEqualFunc_WithClosures    ,
    drop_closures_TreeViewSearchEqualFunc   ,
    dynamic_TreeViewSearchEqualFunc         ,
    genClosure_TreeViewSearchEqualFunc      ,
    mk_TreeViewSearchEqualFunc              ,
    noTreeViewSearchEqualFunc               ,
    noTreeViewSearchEqualFunc_WithClosures  ,
    wrap_TreeViewSearchEqualFunc            ,


-- ** TreeViewSearchPositionFunc #signal:TreeViewSearchPositionFunc#

    C_TreeViewSearchPositionFunc            ,
    TreeViewSearchPositionFunc              ,
    TreeViewSearchPositionFunc_WithClosures ,
    drop_closures_TreeViewSearchPositionFunc,
    dynamic_TreeViewSearchPositionFunc      ,
    genClosure_TreeViewSearchPositionFunc   ,
    mk_TreeViewSearchPositionFunc           ,
    noTreeViewSearchPositionFunc            ,
    noTreeViewSearchPositionFunc_WithClosures,
    wrap_TreeViewSearchPositionFunc         ,


-- ** WidgetClassAdjustBaselineAllocationFieldCallback #signal:WidgetClassAdjustBaselineAllocationFieldCallback#

    C_WidgetClassAdjustBaselineAllocationFieldCallback,
    WidgetClassAdjustBaselineAllocationFieldCallback,
    dynamic_WidgetClassAdjustBaselineAllocationFieldCallback,
    genClosure_WidgetClassAdjustBaselineAllocationFieldCallback,
    mk_WidgetClassAdjustBaselineAllocationFieldCallback,
    noWidgetClassAdjustBaselineAllocationFieldCallback,
    wrap_WidgetClassAdjustBaselineAllocationFieldCallback,


-- ** WidgetClassAdjustBaselineRequestFieldCallback #signal:WidgetClassAdjustBaselineRequestFieldCallback#

    C_WidgetClassAdjustBaselineRequestFieldCallback,
    WidgetClassAdjustBaselineRequestFieldCallback,
    dynamic_WidgetClassAdjustBaselineRequestFieldCallback,
    genClosure_WidgetClassAdjustBaselineRequestFieldCallback,
    mk_WidgetClassAdjustBaselineRequestFieldCallback,
    noWidgetClassAdjustBaselineRequestFieldCallback,
    wrap_WidgetClassAdjustBaselineRequestFieldCallback,


-- ** WidgetClassAdjustSizeAllocationFieldCallback #signal:WidgetClassAdjustSizeAllocationFieldCallback#

    C_WidgetClassAdjustSizeAllocationFieldCallback,
    WidgetClassAdjustSizeAllocationFieldCallback,
    dynamic_WidgetClassAdjustSizeAllocationFieldCallback,
    genClosure_WidgetClassAdjustSizeAllocationFieldCallback,
    mk_WidgetClassAdjustSizeAllocationFieldCallback,
    noWidgetClassAdjustSizeAllocationFieldCallback,
    wrap_WidgetClassAdjustSizeAllocationFieldCallback,


-- ** WidgetClassAdjustSizeRequestFieldCallback #signal:WidgetClassAdjustSizeRequestFieldCallback#

    C_WidgetClassAdjustSizeRequestFieldCallback,
    WidgetClassAdjustSizeRequestFieldCallback,
    dynamic_WidgetClassAdjustSizeRequestFieldCallback,
    genClosure_WidgetClassAdjustSizeRequestFieldCallback,
    mk_WidgetClassAdjustSizeRequestFieldCallback,
    noWidgetClassAdjustSizeRequestFieldCallback,
    wrap_WidgetClassAdjustSizeRequestFieldCallback,


-- ** WidgetClassButtonPressEventFieldCallback #signal:WidgetClassButtonPressEventFieldCallback#

    C_WidgetClassButtonPressEventFieldCallback,
    WidgetClassButtonPressEventFieldCallback,
    dynamic_WidgetClassButtonPressEventFieldCallback,
    genClosure_WidgetClassButtonPressEventFieldCallback,
    mk_WidgetClassButtonPressEventFieldCallback,
    noWidgetClassButtonPressEventFieldCallback,
    wrap_WidgetClassButtonPressEventFieldCallback,


-- ** WidgetClassButtonReleaseEventFieldCallback #signal:WidgetClassButtonReleaseEventFieldCallback#

    C_WidgetClassButtonReleaseEventFieldCallback,
    WidgetClassButtonReleaseEventFieldCallback,
    dynamic_WidgetClassButtonReleaseEventFieldCallback,
    genClosure_WidgetClassButtonReleaseEventFieldCallback,
    mk_WidgetClassButtonReleaseEventFieldCallback,
    noWidgetClassButtonReleaseEventFieldCallback,
    wrap_WidgetClassButtonReleaseEventFieldCallback,


-- ** WidgetClassCanActivateAccelFieldCallback #signal:WidgetClassCanActivateAccelFieldCallback#

    C_WidgetClassCanActivateAccelFieldCallback,
    WidgetClassCanActivateAccelFieldCallback,
    dynamic_WidgetClassCanActivateAccelFieldCallback,
    genClosure_WidgetClassCanActivateAccelFieldCallback,
    mk_WidgetClassCanActivateAccelFieldCallback,
    noWidgetClassCanActivateAccelFieldCallback,
    wrap_WidgetClassCanActivateAccelFieldCallback,


-- ** WidgetClassChildNotifyFieldCallback #signal:WidgetClassChildNotifyFieldCallback#

    C_WidgetClassChildNotifyFieldCallback   ,
    WidgetClassChildNotifyFieldCallback     ,
    dynamic_WidgetClassChildNotifyFieldCallback,
    genClosure_WidgetClassChildNotifyFieldCallback,
    mk_WidgetClassChildNotifyFieldCallback  ,
    noWidgetClassChildNotifyFieldCallback   ,
    wrap_WidgetClassChildNotifyFieldCallback,


-- ** WidgetClassCompositedChangedFieldCallback #signal:WidgetClassCompositedChangedFieldCallback#

    C_WidgetClassCompositedChangedFieldCallback,
    WidgetClassCompositedChangedFieldCallback,
    dynamic_WidgetClassCompositedChangedFieldCallback,
    genClosure_WidgetClassCompositedChangedFieldCallback,
    mk_WidgetClassCompositedChangedFieldCallback,
    noWidgetClassCompositedChangedFieldCallback,
    wrap_WidgetClassCompositedChangedFieldCallback,


-- ** WidgetClassComputeExpandFieldCallback #signal:WidgetClassComputeExpandFieldCallback#

    C_WidgetClassComputeExpandFieldCallback ,
    WidgetClassComputeExpandFieldCallback   ,
    dynamic_WidgetClassComputeExpandFieldCallback,
    genClosure_WidgetClassComputeExpandFieldCallback,
    mk_WidgetClassComputeExpandFieldCallback,
    noWidgetClassComputeExpandFieldCallback ,
    wrap_WidgetClassComputeExpandFieldCallback,


-- ** WidgetClassConfigureEventFieldCallback #signal:WidgetClassConfigureEventFieldCallback#

    C_WidgetClassConfigureEventFieldCallback,
    WidgetClassConfigureEventFieldCallback  ,
    dynamic_WidgetClassConfigureEventFieldCallback,
    genClosure_WidgetClassConfigureEventFieldCallback,
    mk_WidgetClassConfigureEventFieldCallback,
    noWidgetClassConfigureEventFieldCallback,
    wrap_WidgetClassConfigureEventFieldCallback,


-- ** WidgetClassDamageEventFieldCallback #signal:WidgetClassDamageEventFieldCallback#

    C_WidgetClassDamageEventFieldCallback   ,
    WidgetClassDamageEventFieldCallback     ,
    dynamic_WidgetClassDamageEventFieldCallback,
    genClosure_WidgetClassDamageEventFieldCallback,
    mk_WidgetClassDamageEventFieldCallback  ,
    noWidgetClassDamageEventFieldCallback   ,
    wrap_WidgetClassDamageEventFieldCallback,


-- ** WidgetClassDeleteEventFieldCallback #signal:WidgetClassDeleteEventFieldCallback#

    C_WidgetClassDeleteEventFieldCallback   ,
    WidgetClassDeleteEventFieldCallback     ,
    dynamic_WidgetClassDeleteEventFieldCallback,
    genClosure_WidgetClassDeleteEventFieldCallback,
    mk_WidgetClassDeleteEventFieldCallback  ,
    noWidgetClassDeleteEventFieldCallback   ,
    wrap_WidgetClassDeleteEventFieldCallback,


-- ** WidgetClassDestroyEventFieldCallback #signal:WidgetClassDestroyEventFieldCallback#

    C_WidgetClassDestroyEventFieldCallback  ,
    WidgetClassDestroyEventFieldCallback    ,
    dynamic_WidgetClassDestroyEventFieldCallback,
    genClosure_WidgetClassDestroyEventFieldCallback,
    mk_WidgetClassDestroyEventFieldCallback ,
    noWidgetClassDestroyEventFieldCallback  ,
    wrap_WidgetClassDestroyEventFieldCallback,


-- ** WidgetClassDestroyFieldCallback #signal:WidgetClassDestroyFieldCallback#

    C_WidgetClassDestroyFieldCallback       ,
    WidgetClassDestroyFieldCallback         ,
    dynamic_WidgetClassDestroyFieldCallback ,
    genClosure_WidgetClassDestroyFieldCallback,
    mk_WidgetClassDestroyFieldCallback      ,
    noWidgetClassDestroyFieldCallback       ,
    wrap_WidgetClassDestroyFieldCallback    ,


-- ** WidgetClassDirectionChangedFieldCallback #signal:WidgetClassDirectionChangedFieldCallback#

    C_WidgetClassDirectionChangedFieldCallback,
    WidgetClassDirectionChangedFieldCallback,
    dynamic_WidgetClassDirectionChangedFieldCallback,
    genClosure_WidgetClassDirectionChangedFieldCallback,
    mk_WidgetClassDirectionChangedFieldCallback,
    noWidgetClassDirectionChangedFieldCallback,
    wrap_WidgetClassDirectionChangedFieldCallback,


-- ** WidgetClassDispatchChildPropertiesChangedFieldCallback #signal:WidgetClassDispatchChildPropertiesChangedFieldCallback#

    C_WidgetClassDispatchChildPropertiesChangedFieldCallback,
    WidgetClassDispatchChildPropertiesChangedFieldCallback,
    dynamic_WidgetClassDispatchChildPropertiesChangedFieldCallback,
    genClosure_WidgetClassDispatchChildPropertiesChangedFieldCallback,
    mk_WidgetClassDispatchChildPropertiesChangedFieldCallback,
    noWidgetClassDispatchChildPropertiesChangedFieldCallback,
    wrap_WidgetClassDispatchChildPropertiesChangedFieldCallback,


-- ** WidgetClassDragBeginFieldCallback #signal:WidgetClassDragBeginFieldCallback#

    C_WidgetClassDragBeginFieldCallback     ,
    WidgetClassDragBeginFieldCallback       ,
    dynamic_WidgetClassDragBeginFieldCallback,
    genClosure_WidgetClassDragBeginFieldCallback,
    mk_WidgetClassDragBeginFieldCallback    ,
    noWidgetClassDragBeginFieldCallback     ,
    wrap_WidgetClassDragBeginFieldCallback  ,


-- ** WidgetClassDragDataDeleteFieldCallback #signal:WidgetClassDragDataDeleteFieldCallback#

    C_WidgetClassDragDataDeleteFieldCallback,
    WidgetClassDragDataDeleteFieldCallback  ,
    dynamic_WidgetClassDragDataDeleteFieldCallback,
    genClosure_WidgetClassDragDataDeleteFieldCallback,
    mk_WidgetClassDragDataDeleteFieldCallback,
    noWidgetClassDragDataDeleteFieldCallback,
    wrap_WidgetClassDragDataDeleteFieldCallback,


-- ** WidgetClassDragDataGetFieldCallback #signal:WidgetClassDragDataGetFieldCallback#

    C_WidgetClassDragDataGetFieldCallback   ,
    WidgetClassDragDataGetFieldCallback     ,
    dynamic_WidgetClassDragDataGetFieldCallback,
    genClosure_WidgetClassDragDataGetFieldCallback,
    mk_WidgetClassDragDataGetFieldCallback  ,
    noWidgetClassDragDataGetFieldCallback   ,
    wrap_WidgetClassDragDataGetFieldCallback,


-- ** WidgetClassDragDataReceivedFieldCallback #signal:WidgetClassDragDataReceivedFieldCallback#

    C_WidgetClassDragDataReceivedFieldCallback,
    WidgetClassDragDataReceivedFieldCallback,
    dynamic_WidgetClassDragDataReceivedFieldCallback,
    genClosure_WidgetClassDragDataReceivedFieldCallback,
    mk_WidgetClassDragDataReceivedFieldCallback,
    noWidgetClassDragDataReceivedFieldCallback,
    wrap_WidgetClassDragDataReceivedFieldCallback,


-- ** WidgetClassDragDropFieldCallback #signal:WidgetClassDragDropFieldCallback#

    C_WidgetClassDragDropFieldCallback      ,
    WidgetClassDragDropFieldCallback        ,
    dynamic_WidgetClassDragDropFieldCallback,
    genClosure_WidgetClassDragDropFieldCallback,
    mk_WidgetClassDragDropFieldCallback     ,
    noWidgetClassDragDropFieldCallback      ,
    wrap_WidgetClassDragDropFieldCallback   ,


-- ** WidgetClassDragEndFieldCallback #signal:WidgetClassDragEndFieldCallback#

    C_WidgetClassDragEndFieldCallback       ,
    WidgetClassDragEndFieldCallback         ,
    dynamic_WidgetClassDragEndFieldCallback ,
    genClosure_WidgetClassDragEndFieldCallback,
    mk_WidgetClassDragEndFieldCallback      ,
    noWidgetClassDragEndFieldCallback       ,
    wrap_WidgetClassDragEndFieldCallback    ,


-- ** WidgetClassDragFailedFieldCallback #signal:WidgetClassDragFailedFieldCallback#

    C_WidgetClassDragFailedFieldCallback    ,
    WidgetClassDragFailedFieldCallback      ,
    dynamic_WidgetClassDragFailedFieldCallback,
    genClosure_WidgetClassDragFailedFieldCallback,
    mk_WidgetClassDragFailedFieldCallback   ,
    noWidgetClassDragFailedFieldCallback    ,
    wrap_WidgetClassDragFailedFieldCallback ,


-- ** WidgetClassDragLeaveFieldCallback #signal:WidgetClassDragLeaveFieldCallback#

    C_WidgetClassDragLeaveFieldCallback     ,
    WidgetClassDragLeaveFieldCallback       ,
    dynamic_WidgetClassDragLeaveFieldCallback,
    genClosure_WidgetClassDragLeaveFieldCallback,
    mk_WidgetClassDragLeaveFieldCallback    ,
    noWidgetClassDragLeaveFieldCallback     ,
    wrap_WidgetClassDragLeaveFieldCallback  ,


-- ** WidgetClassDragMotionFieldCallback #signal:WidgetClassDragMotionFieldCallback#

    C_WidgetClassDragMotionFieldCallback    ,
    WidgetClassDragMotionFieldCallback      ,
    dynamic_WidgetClassDragMotionFieldCallback,
    genClosure_WidgetClassDragMotionFieldCallback,
    mk_WidgetClassDragMotionFieldCallback   ,
    noWidgetClassDragMotionFieldCallback    ,
    wrap_WidgetClassDragMotionFieldCallback ,


-- ** WidgetClassDrawFieldCallback #signal:WidgetClassDrawFieldCallback#

    C_WidgetClassDrawFieldCallback          ,
    WidgetClassDrawFieldCallback            ,
    dynamic_WidgetClassDrawFieldCallback    ,
    genClosure_WidgetClassDrawFieldCallback ,
    mk_WidgetClassDrawFieldCallback         ,
    noWidgetClassDrawFieldCallback          ,
    wrap_WidgetClassDrawFieldCallback       ,


-- ** WidgetClassEnterNotifyEventFieldCallback #signal:WidgetClassEnterNotifyEventFieldCallback#

    C_WidgetClassEnterNotifyEventFieldCallback,
    WidgetClassEnterNotifyEventFieldCallback,
    dynamic_WidgetClassEnterNotifyEventFieldCallback,
    genClosure_WidgetClassEnterNotifyEventFieldCallback,
    mk_WidgetClassEnterNotifyEventFieldCallback,
    noWidgetClassEnterNotifyEventFieldCallback,
    wrap_WidgetClassEnterNotifyEventFieldCallback,


-- ** WidgetClassEventFieldCallback #signal:WidgetClassEventFieldCallback#

    C_WidgetClassEventFieldCallback         ,
    WidgetClassEventFieldCallback           ,
    dynamic_WidgetClassEventFieldCallback   ,
    genClosure_WidgetClassEventFieldCallback,
    mk_WidgetClassEventFieldCallback        ,
    noWidgetClassEventFieldCallback         ,
    wrap_WidgetClassEventFieldCallback      ,


-- ** WidgetClassFocusFieldCallback #signal:WidgetClassFocusFieldCallback#

    C_WidgetClassFocusFieldCallback         ,
    WidgetClassFocusFieldCallback           ,
    dynamic_WidgetClassFocusFieldCallback   ,
    genClosure_WidgetClassFocusFieldCallback,
    mk_WidgetClassFocusFieldCallback        ,
    noWidgetClassFocusFieldCallback         ,
    wrap_WidgetClassFocusFieldCallback      ,


-- ** WidgetClassFocusInEventFieldCallback #signal:WidgetClassFocusInEventFieldCallback#

    C_WidgetClassFocusInEventFieldCallback  ,
    WidgetClassFocusInEventFieldCallback    ,
    dynamic_WidgetClassFocusInEventFieldCallback,
    genClosure_WidgetClassFocusInEventFieldCallback,
    mk_WidgetClassFocusInEventFieldCallback ,
    noWidgetClassFocusInEventFieldCallback  ,
    wrap_WidgetClassFocusInEventFieldCallback,


-- ** WidgetClassFocusOutEventFieldCallback #signal:WidgetClassFocusOutEventFieldCallback#

    C_WidgetClassFocusOutEventFieldCallback ,
    WidgetClassFocusOutEventFieldCallback   ,
    dynamic_WidgetClassFocusOutEventFieldCallback,
    genClosure_WidgetClassFocusOutEventFieldCallback,
    mk_WidgetClassFocusOutEventFieldCallback,
    noWidgetClassFocusOutEventFieldCallback ,
    wrap_WidgetClassFocusOutEventFieldCallback,


-- ** WidgetClassGetAccessibleFieldCallback #signal:WidgetClassGetAccessibleFieldCallback#

    C_WidgetClassGetAccessibleFieldCallback ,
    WidgetClassGetAccessibleFieldCallback   ,
    dynamic_WidgetClassGetAccessibleFieldCallback,
    genClosure_WidgetClassGetAccessibleFieldCallback,
    mk_WidgetClassGetAccessibleFieldCallback,
    noWidgetClassGetAccessibleFieldCallback ,
    wrap_WidgetClassGetAccessibleFieldCallback,


-- ** WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback #signal:WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback#

    C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,
    WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,
    dynamic_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,
    genClosure_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,
    mk_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,
    noWidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,
    wrap_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback,


-- ** WidgetClassGetPreferredHeightFieldCallback #signal:WidgetClassGetPreferredHeightFieldCallback#

    C_WidgetClassGetPreferredHeightFieldCallback,
    WidgetClassGetPreferredHeightFieldCallback,
    dynamic_WidgetClassGetPreferredHeightFieldCallback,
    genClosure_WidgetClassGetPreferredHeightFieldCallback,
    mk_WidgetClassGetPreferredHeightFieldCallback,
    noWidgetClassGetPreferredHeightFieldCallback,
    wrap_WidgetClassGetPreferredHeightFieldCallback,


-- ** WidgetClassGetPreferredHeightForWidthFieldCallback #signal:WidgetClassGetPreferredHeightForWidthFieldCallback#

    C_WidgetClassGetPreferredHeightForWidthFieldCallback,
    WidgetClassGetPreferredHeightForWidthFieldCallback,
    dynamic_WidgetClassGetPreferredHeightForWidthFieldCallback,
    genClosure_WidgetClassGetPreferredHeightForWidthFieldCallback,
    mk_WidgetClassGetPreferredHeightForWidthFieldCallback,
    noWidgetClassGetPreferredHeightForWidthFieldCallback,
    wrap_WidgetClassGetPreferredHeightForWidthFieldCallback,


-- ** WidgetClassGetPreferredWidthFieldCallback #signal:WidgetClassGetPreferredWidthFieldCallback#

    C_WidgetClassGetPreferredWidthFieldCallback,
    WidgetClassGetPreferredWidthFieldCallback,
    dynamic_WidgetClassGetPreferredWidthFieldCallback,
    genClosure_WidgetClassGetPreferredWidthFieldCallback,
    mk_WidgetClassGetPreferredWidthFieldCallback,
    noWidgetClassGetPreferredWidthFieldCallback,
    wrap_WidgetClassGetPreferredWidthFieldCallback,


-- ** WidgetClassGetPreferredWidthForHeightFieldCallback #signal:WidgetClassGetPreferredWidthForHeightFieldCallback#

    C_WidgetClassGetPreferredWidthForHeightFieldCallback,
    WidgetClassGetPreferredWidthForHeightFieldCallback,
    dynamic_WidgetClassGetPreferredWidthForHeightFieldCallback,
    genClosure_WidgetClassGetPreferredWidthForHeightFieldCallback,
    mk_WidgetClassGetPreferredWidthForHeightFieldCallback,
    noWidgetClassGetPreferredWidthForHeightFieldCallback,
    wrap_WidgetClassGetPreferredWidthForHeightFieldCallback,


-- ** WidgetClassGetRequestModeFieldCallback #signal:WidgetClassGetRequestModeFieldCallback#

    C_WidgetClassGetRequestModeFieldCallback,
    WidgetClassGetRequestModeFieldCallback  ,
    dynamic_WidgetClassGetRequestModeFieldCallback,
    genClosure_WidgetClassGetRequestModeFieldCallback,
    mk_WidgetClassGetRequestModeFieldCallback,
    noWidgetClassGetRequestModeFieldCallback,
    wrap_WidgetClassGetRequestModeFieldCallback,


-- ** WidgetClassGrabBrokenEventFieldCallback #signal:WidgetClassGrabBrokenEventFieldCallback#

    C_WidgetClassGrabBrokenEventFieldCallback,
    WidgetClassGrabBrokenEventFieldCallback ,
    dynamic_WidgetClassGrabBrokenEventFieldCallback,
    genClosure_WidgetClassGrabBrokenEventFieldCallback,
    mk_WidgetClassGrabBrokenEventFieldCallback,
    noWidgetClassGrabBrokenEventFieldCallback,
    wrap_WidgetClassGrabBrokenEventFieldCallback,


-- ** WidgetClassGrabFocusFieldCallback #signal:WidgetClassGrabFocusFieldCallback#

    C_WidgetClassGrabFocusFieldCallback     ,
    WidgetClassGrabFocusFieldCallback       ,
    dynamic_WidgetClassGrabFocusFieldCallback,
    genClosure_WidgetClassGrabFocusFieldCallback,
    mk_WidgetClassGrabFocusFieldCallback    ,
    noWidgetClassGrabFocusFieldCallback     ,
    wrap_WidgetClassGrabFocusFieldCallback  ,


-- ** WidgetClassGrabNotifyFieldCallback #signal:WidgetClassGrabNotifyFieldCallback#

    C_WidgetClassGrabNotifyFieldCallback    ,
    WidgetClassGrabNotifyFieldCallback      ,
    dynamic_WidgetClassGrabNotifyFieldCallback,
    genClosure_WidgetClassGrabNotifyFieldCallback,
    mk_WidgetClassGrabNotifyFieldCallback   ,
    noWidgetClassGrabNotifyFieldCallback    ,
    wrap_WidgetClassGrabNotifyFieldCallback ,


-- ** WidgetClassHideFieldCallback #signal:WidgetClassHideFieldCallback#

    C_WidgetClassHideFieldCallback          ,
    WidgetClassHideFieldCallback            ,
    dynamic_WidgetClassHideFieldCallback    ,
    genClosure_WidgetClassHideFieldCallback ,
    mk_WidgetClassHideFieldCallback         ,
    noWidgetClassHideFieldCallback          ,
    wrap_WidgetClassHideFieldCallback       ,


-- ** WidgetClassHierarchyChangedFieldCallback #signal:WidgetClassHierarchyChangedFieldCallback#

    C_WidgetClassHierarchyChangedFieldCallback,
    WidgetClassHierarchyChangedFieldCallback,
    dynamic_WidgetClassHierarchyChangedFieldCallback,
    genClosure_WidgetClassHierarchyChangedFieldCallback,
    mk_WidgetClassHierarchyChangedFieldCallback,
    noWidgetClassHierarchyChangedFieldCallback,
    wrap_WidgetClassHierarchyChangedFieldCallback,


-- ** WidgetClassKeyPressEventFieldCallback #signal:WidgetClassKeyPressEventFieldCallback#

    C_WidgetClassKeyPressEventFieldCallback ,
    WidgetClassKeyPressEventFieldCallback   ,
    dynamic_WidgetClassKeyPressEventFieldCallback,
    genClosure_WidgetClassKeyPressEventFieldCallback,
    mk_WidgetClassKeyPressEventFieldCallback,
    noWidgetClassKeyPressEventFieldCallback ,
    wrap_WidgetClassKeyPressEventFieldCallback,


-- ** WidgetClassKeyReleaseEventFieldCallback #signal:WidgetClassKeyReleaseEventFieldCallback#

    C_WidgetClassKeyReleaseEventFieldCallback,
    WidgetClassKeyReleaseEventFieldCallback ,
    dynamic_WidgetClassKeyReleaseEventFieldCallback,
    genClosure_WidgetClassKeyReleaseEventFieldCallback,
    mk_WidgetClassKeyReleaseEventFieldCallback,
    noWidgetClassKeyReleaseEventFieldCallback,
    wrap_WidgetClassKeyReleaseEventFieldCallback,


-- ** WidgetClassKeynavFailedFieldCallback #signal:WidgetClassKeynavFailedFieldCallback#

    C_WidgetClassKeynavFailedFieldCallback  ,
    WidgetClassKeynavFailedFieldCallback    ,
    dynamic_WidgetClassKeynavFailedFieldCallback,
    genClosure_WidgetClassKeynavFailedFieldCallback,
    mk_WidgetClassKeynavFailedFieldCallback ,
    noWidgetClassKeynavFailedFieldCallback  ,
    wrap_WidgetClassKeynavFailedFieldCallback,


-- ** WidgetClassLeaveNotifyEventFieldCallback #signal:WidgetClassLeaveNotifyEventFieldCallback#

    C_WidgetClassLeaveNotifyEventFieldCallback,
    WidgetClassLeaveNotifyEventFieldCallback,
    dynamic_WidgetClassLeaveNotifyEventFieldCallback,
    genClosure_WidgetClassLeaveNotifyEventFieldCallback,
    mk_WidgetClassLeaveNotifyEventFieldCallback,
    noWidgetClassLeaveNotifyEventFieldCallback,
    wrap_WidgetClassLeaveNotifyEventFieldCallback,


-- ** WidgetClassMapEventFieldCallback #signal:WidgetClassMapEventFieldCallback#

    C_WidgetClassMapEventFieldCallback      ,
    WidgetClassMapEventFieldCallback        ,
    dynamic_WidgetClassMapEventFieldCallback,
    genClosure_WidgetClassMapEventFieldCallback,
    mk_WidgetClassMapEventFieldCallback     ,
    noWidgetClassMapEventFieldCallback      ,
    wrap_WidgetClassMapEventFieldCallback   ,


-- ** WidgetClassMapFieldCallback #signal:WidgetClassMapFieldCallback#

    C_WidgetClassMapFieldCallback           ,
    WidgetClassMapFieldCallback             ,
    dynamic_WidgetClassMapFieldCallback     ,
    genClosure_WidgetClassMapFieldCallback  ,
    mk_WidgetClassMapFieldCallback          ,
    noWidgetClassMapFieldCallback           ,
    wrap_WidgetClassMapFieldCallback        ,


-- ** WidgetClassMnemonicActivateFieldCallback #signal:WidgetClassMnemonicActivateFieldCallback#

    C_WidgetClassMnemonicActivateFieldCallback,
    WidgetClassMnemonicActivateFieldCallback,
    dynamic_WidgetClassMnemonicActivateFieldCallback,
    genClosure_WidgetClassMnemonicActivateFieldCallback,
    mk_WidgetClassMnemonicActivateFieldCallback,
    noWidgetClassMnemonicActivateFieldCallback,
    wrap_WidgetClassMnemonicActivateFieldCallback,


-- ** WidgetClassMotionNotifyEventFieldCallback #signal:WidgetClassMotionNotifyEventFieldCallback#

    C_WidgetClassMotionNotifyEventFieldCallback,
    WidgetClassMotionNotifyEventFieldCallback,
    dynamic_WidgetClassMotionNotifyEventFieldCallback,
    genClosure_WidgetClassMotionNotifyEventFieldCallback,
    mk_WidgetClassMotionNotifyEventFieldCallback,
    noWidgetClassMotionNotifyEventFieldCallback,
    wrap_WidgetClassMotionNotifyEventFieldCallback,


-- ** WidgetClassMoveFocusFieldCallback #signal:WidgetClassMoveFocusFieldCallback#

    C_WidgetClassMoveFocusFieldCallback     ,
    WidgetClassMoveFocusFieldCallback       ,
    dynamic_WidgetClassMoveFocusFieldCallback,
    genClosure_WidgetClassMoveFocusFieldCallback,
    mk_WidgetClassMoveFocusFieldCallback    ,
    noWidgetClassMoveFocusFieldCallback     ,
    wrap_WidgetClassMoveFocusFieldCallback  ,


-- ** WidgetClassParentSetFieldCallback #signal:WidgetClassParentSetFieldCallback#

    C_WidgetClassParentSetFieldCallback     ,
    WidgetClassParentSetFieldCallback       ,
    dynamic_WidgetClassParentSetFieldCallback,
    genClosure_WidgetClassParentSetFieldCallback,
    mk_WidgetClassParentSetFieldCallback    ,
    noWidgetClassParentSetFieldCallback     ,
    wrap_WidgetClassParentSetFieldCallback  ,


-- ** WidgetClassPopupMenuFieldCallback #signal:WidgetClassPopupMenuFieldCallback#

    C_WidgetClassPopupMenuFieldCallback     ,
    WidgetClassPopupMenuFieldCallback       ,
    dynamic_WidgetClassPopupMenuFieldCallback,
    genClosure_WidgetClassPopupMenuFieldCallback,
    mk_WidgetClassPopupMenuFieldCallback    ,
    noWidgetClassPopupMenuFieldCallback     ,
    wrap_WidgetClassPopupMenuFieldCallback  ,


-- ** WidgetClassPropertyNotifyEventFieldCallback #signal:WidgetClassPropertyNotifyEventFieldCallback#

    C_WidgetClassPropertyNotifyEventFieldCallback,
    WidgetClassPropertyNotifyEventFieldCallback,
    dynamic_WidgetClassPropertyNotifyEventFieldCallback,
    genClosure_WidgetClassPropertyNotifyEventFieldCallback,
    mk_WidgetClassPropertyNotifyEventFieldCallback,
    noWidgetClassPropertyNotifyEventFieldCallback,
    wrap_WidgetClassPropertyNotifyEventFieldCallback,


-- ** WidgetClassProximityInEventFieldCallback #signal:WidgetClassProximityInEventFieldCallback#

    C_WidgetClassProximityInEventFieldCallback,
    WidgetClassProximityInEventFieldCallback,
    dynamic_WidgetClassProximityInEventFieldCallback,
    genClosure_WidgetClassProximityInEventFieldCallback,
    mk_WidgetClassProximityInEventFieldCallback,
    noWidgetClassProximityInEventFieldCallback,
    wrap_WidgetClassProximityInEventFieldCallback,


-- ** WidgetClassProximityOutEventFieldCallback #signal:WidgetClassProximityOutEventFieldCallback#

    C_WidgetClassProximityOutEventFieldCallback,
    WidgetClassProximityOutEventFieldCallback,
    dynamic_WidgetClassProximityOutEventFieldCallback,
    genClosure_WidgetClassProximityOutEventFieldCallback,
    mk_WidgetClassProximityOutEventFieldCallback,
    noWidgetClassProximityOutEventFieldCallback,
    wrap_WidgetClassProximityOutEventFieldCallback,


-- ** WidgetClassQueryTooltipFieldCallback #signal:WidgetClassQueryTooltipFieldCallback#

    C_WidgetClassQueryTooltipFieldCallback  ,
    WidgetClassQueryTooltipFieldCallback    ,
    dynamic_WidgetClassQueryTooltipFieldCallback,
    genClosure_WidgetClassQueryTooltipFieldCallback,
    mk_WidgetClassQueryTooltipFieldCallback ,
    noWidgetClassQueryTooltipFieldCallback  ,
    wrap_WidgetClassQueryTooltipFieldCallback,


-- ** WidgetClassQueueDrawRegionFieldCallback #signal:WidgetClassQueueDrawRegionFieldCallback#

    C_WidgetClassQueueDrawRegionFieldCallback,
    WidgetClassQueueDrawRegionFieldCallback ,
    dynamic_WidgetClassQueueDrawRegionFieldCallback,
    genClosure_WidgetClassQueueDrawRegionFieldCallback,
    mk_WidgetClassQueueDrawRegionFieldCallback,
    noWidgetClassQueueDrawRegionFieldCallback,
    wrap_WidgetClassQueueDrawRegionFieldCallback,


-- ** WidgetClassRealizeFieldCallback #signal:WidgetClassRealizeFieldCallback#

    C_WidgetClassRealizeFieldCallback       ,
    WidgetClassRealizeFieldCallback         ,
    dynamic_WidgetClassRealizeFieldCallback ,
    genClosure_WidgetClassRealizeFieldCallback,
    mk_WidgetClassRealizeFieldCallback      ,
    noWidgetClassRealizeFieldCallback       ,
    wrap_WidgetClassRealizeFieldCallback    ,


-- ** WidgetClassScreenChangedFieldCallback #signal:WidgetClassScreenChangedFieldCallback#

    C_WidgetClassScreenChangedFieldCallback ,
    WidgetClassScreenChangedFieldCallback   ,
    dynamic_WidgetClassScreenChangedFieldCallback,
    genClosure_WidgetClassScreenChangedFieldCallback,
    mk_WidgetClassScreenChangedFieldCallback,
    noWidgetClassScreenChangedFieldCallback ,
    wrap_WidgetClassScreenChangedFieldCallback,


-- ** WidgetClassScrollEventFieldCallback #signal:WidgetClassScrollEventFieldCallback#

    C_WidgetClassScrollEventFieldCallback   ,
    WidgetClassScrollEventFieldCallback     ,
    dynamic_WidgetClassScrollEventFieldCallback,
    genClosure_WidgetClassScrollEventFieldCallback,
    mk_WidgetClassScrollEventFieldCallback  ,
    noWidgetClassScrollEventFieldCallback   ,
    wrap_WidgetClassScrollEventFieldCallback,


-- ** WidgetClassSelectionClearEventFieldCallback #signal:WidgetClassSelectionClearEventFieldCallback#

    C_WidgetClassSelectionClearEventFieldCallback,
    WidgetClassSelectionClearEventFieldCallback,
    dynamic_WidgetClassSelectionClearEventFieldCallback,
    genClosure_WidgetClassSelectionClearEventFieldCallback,
    mk_WidgetClassSelectionClearEventFieldCallback,
    noWidgetClassSelectionClearEventFieldCallback,
    wrap_WidgetClassSelectionClearEventFieldCallback,


-- ** WidgetClassSelectionGetFieldCallback #signal:WidgetClassSelectionGetFieldCallback#

    C_WidgetClassSelectionGetFieldCallback  ,
    WidgetClassSelectionGetFieldCallback    ,
    dynamic_WidgetClassSelectionGetFieldCallback,
    genClosure_WidgetClassSelectionGetFieldCallback,
    mk_WidgetClassSelectionGetFieldCallback ,
    noWidgetClassSelectionGetFieldCallback  ,
    wrap_WidgetClassSelectionGetFieldCallback,


-- ** WidgetClassSelectionNotifyEventFieldCallback #signal:WidgetClassSelectionNotifyEventFieldCallback#

    C_WidgetClassSelectionNotifyEventFieldCallback,
    WidgetClassSelectionNotifyEventFieldCallback,
    dynamic_WidgetClassSelectionNotifyEventFieldCallback,
    genClosure_WidgetClassSelectionNotifyEventFieldCallback,
    mk_WidgetClassSelectionNotifyEventFieldCallback,
    noWidgetClassSelectionNotifyEventFieldCallback,
    wrap_WidgetClassSelectionNotifyEventFieldCallback,


-- ** WidgetClassSelectionReceivedFieldCallback #signal:WidgetClassSelectionReceivedFieldCallback#

    C_WidgetClassSelectionReceivedFieldCallback,
    WidgetClassSelectionReceivedFieldCallback,
    dynamic_WidgetClassSelectionReceivedFieldCallback,
    genClosure_WidgetClassSelectionReceivedFieldCallback,
    mk_WidgetClassSelectionReceivedFieldCallback,
    noWidgetClassSelectionReceivedFieldCallback,
    wrap_WidgetClassSelectionReceivedFieldCallback,


-- ** WidgetClassSelectionRequestEventFieldCallback #signal:WidgetClassSelectionRequestEventFieldCallback#

    C_WidgetClassSelectionRequestEventFieldCallback,
    WidgetClassSelectionRequestEventFieldCallback,
    dynamic_WidgetClassSelectionRequestEventFieldCallback,
    genClosure_WidgetClassSelectionRequestEventFieldCallback,
    mk_WidgetClassSelectionRequestEventFieldCallback,
    noWidgetClassSelectionRequestEventFieldCallback,
    wrap_WidgetClassSelectionRequestEventFieldCallback,


-- ** WidgetClassShowAllFieldCallback #signal:WidgetClassShowAllFieldCallback#

    C_WidgetClassShowAllFieldCallback       ,
    WidgetClassShowAllFieldCallback         ,
    dynamic_WidgetClassShowAllFieldCallback ,
    genClosure_WidgetClassShowAllFieldCallback,
    mk_WidgetClassShowAllFieldCallback      ,
    noWidgetClassShowAllFieldCallback       ,
    wrap_WidgetClassShowAllFieldCallback    ,


-- ** WidgetClassShowFieldCallback #signal:WidgetClassShowFieldCallback#

    C_WidgetClassShowFieldCallback          ,
    WidgetClassShowFieldCallback            ,
    dynamic_WidgetClassShowFieldCallback    ,
    genClosure_WidgetClassShowFieldCallback ,
    mk_WidgetClassShowFieldCallback         ,
    noWidgetClassShowFieldCallback          ,
    wrap_WidgetClassShowFieldCallback       ,


-- ** WidgetClassShowHelpFieldCallback #signal:WidgetClassShowHelpFieldCallback#

    C_WidgetClassShowHelpFieldCallback      ,
    WidgetClassShowHelpFieldCallback        ,
    dynamic_WidgetClassShowHelpFieldCallback,
    genClosure_WidgetClassShowHelpFieldCallback,
    mk_WidgetClassShowHelpFieldCallback     ,
    noWidgetClassShowHelpFieldCallback      ,
    wrap_WidgetClassShowHelpFieldCallback   ,


-- ** WidgetClassSizeAllocateFieldCallback #signal:WidgetClassSizeAllocateFieldCallback#

    C_WidgetClassSizeAllocateFieldCallback  ,
    WidgetClassSizeAllocateFieldCallback    ,
    dynamic_WidgetClassSizeAllocateFieldCallback,
    genClosure_WidgetClassSizeAllocateFieldCallback,
    mk_WidgetClassSizeAllocateFieldCallback ,
    noWidgetClassSizeAllocateFieldCallback  ,
    wrap_WidgetClassSizeAllocateFieldCallback,


-- ** WidgetClassStateChangedFieldCallback #signal:WidgetClassStateChangedFieldCallback#

    C_WidgetClassStateChangedFieldCallback  ,
    WidgetClassStateChangedFieldCallback    ,
    dynamic_WidgetClassStateChangedFieldCallback,
    genClosure_WidgetClassStateChangedFieldCallback,
    mk_WidgetClassStateChangedFieldCallback ,
    noWidgetClassStateChangedFieldCallback  ,
    wrap_WidgetClassStateChangedFieldCallback,


-- ** WidgetClassStateFlagsChangedFieldCallback #signal:WidgetClassStateFlagsChangedFieldCallback#

    C_WidgetClassStateFlagsChangedFieldCallback,
    WidgetClassStateFlagsChangedFieldCallback,
    dynamic_WidgetClassStateFlagsChangedFieldCallback,
    genClosure_WidgetClassStateFlagsChangedFieldCallback,
    mk_WidgetClassStateFlagsChangedFieldCallback,
    noWidgetClassStateFlagsChangedFieldCallback,
    wrap_WidgetClassStateFlagsChangedFieldCallback,


-- ** WidgetClassStyleSetFieldCallback #signal:WidgetClassStyleSetFieldCallback#

    C_WidgetClassStyleSetFieldCallback      ,
    WidgetClassStyleSetFieldCallback        ,
    dynamic_WidgetClassStyleSetFieldCallback,
    genClosure_WidgetClassStyleSetFieldCallback,
    mk_WidgetClassStyleSetFieldCallback     ,
    noWidgetClassStyleSetFieldCallback      ,
    wrap_WidgetClassStyleSetFieldCallback   ,


-- ** WidgetClassStyleUpdatedFieldCallback #signal:WidgetClassStyleUpdatedFieldCallback#

    C_WidgetClassStyleUpdatedFieldCallback  ,
    WidgetClassStyleUpdatedFieldCallback    ,
    dynamic_WidgetClassStyleUpdatedFieldCallback,
    genClosure_WidgetClassStyleUpdatedFieldCallback,
    mk_WidgetClassStyleUpdatedFieldCallback ,
    noWidgetClassStyleUpdatedFieldCallback  ,
    wrap_WidgetClassStyleUpdatedFieldCallback,


-- ** WidgetClassTouchEventFieldCallback #signal:WidgetClassTouchEventFieldCallback#

    C_WidgetClassTouchEventFieldCallback    ,
    WidgetClassTouchEventFieldCallback      ,
    dynamic_WidgetClassTouchEventFieldCallback,
    genClosure_WidgetClassTouchEventFieldCallback,
    mk_WidgetClassTouchEventFieldCallback   ,
    noWidgetClassTouchEventFieldCallback    ,
    wrap_WidgetClassTouchEventFieldCallback ,


-- ** WidgetClassUnmapEventFieldCallback #signal:WidgetClassUnmapEventFieldCallback#

    C_WidgetClassUnmapEventFieldCallback    ,
    WidgetClassUnmapEventFieldCallback      ,
    dynamic_WidgetClassUnmapEventFieldCallback,
    genClosure_WidgetClassUnmapEventFieldCallback,
    mk_WidgetClassUnmapEventFieldCallback   ,
    noWidgetClassUnmapEventFieldCallback    ,
    wrap_WidgetClassUnmapEventFieldCallback ,


-- ** WidgetClassUnmapFieldCallback #signal:WidgetClassUnmapFieldCallback#

    C_WidgetClassUnmapFieldCallback         ,
    WidgetClassUnmapFieldCallback           ,
    dynamic_WidgetClassUnmapFieldCallback   ,
    genClosure_WidgetClassUnmapFieldCallback,
    mk_WidgetClassUnmapFieldCallback        ,
    noWidgetClassUnmapFieldCallback         ,
    wrap_WidgetClassUnmapFieldCallback      ,


-- ** WidgetClassUnrealizeFieldCallback #signal:WidgetClassUnrealizeFieldCallback#

    C_WidgetClassUnrealizeFieldCallback     ,
    WidgetClassUnrealizeFieldCallback       ,
    dynamic_WidgetClassUnrealizeFieldCallback,
    genClosure_WidgetClassUnrealizeFieldCallback,
    mk_WidgetClassUnrealizeFieldCallback    ,
    noWidgetClassUnrealizeFieldCallback     ,
    wrap_WidgetClassUnrealizeFieldCallback  ,


-- ** WidgetClassVisibilityNotifyEventFieldCallback #signal:WidgetClassVisibilityNotifyEventFieldCallback#

    C_WidgetClassVisibilityNotifyEventFieldCallback,
    WidgetClassVisibilityNotifyEventFieldCallback,
    dynamic_WidgetClassVisibilityNotifyEventFieldCallback,
    genClosure_WidgetClassVisibilityNotifyEventFieldCallback,
    mk_WidgetClassVisibilityNotifyEventFieldCallback,
    noWidgetClassVisibilityNotifyEventFieldCallback,
    wrap_WidgetClassVisibilityNotifyEventFieldCallback,


-- ** WidgetClassWindowStateEventFieldCallback #signal:WidgetClassWindowStateEventFieldCallback#

    C_WidgetClassWindowStateEventFieldCallback,
    WidgetClassWindowStateEventFieldCallback,
    dynamic_WidgetClassWindowStateEventFieldCallback,
    genClosure_WidgetClassWindowStateEventFieldCallback,
    mk_WidgetClassWindowStateEventFieldCallback,
    noWidgetClassWindowStateEventFieldCallback,
    wrap_WidgetClassWindowStateEventFieldCallback,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

import qualified GI.Atk.Objects.Object as Atk.Object
import qualified GI.Cairo.Structs.Context as Cairo.Context
import qualified GI.Cairo.Structs.Region as Cairo.Region
import qualified GI.GLib.Structs.String as GLib.String
import qualified GI.GObject.Flags as GObject.Flags
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Flags as Gdk.Flags
import qualified GI.Gdk.Objects.Display as Gdk.Display
import qualified GI.Gdk.Objects.DragContext as Gdk.DragContext
import qualified GI.Gdk.Objects.FrameClock as Gdk.FrameClock
import qualified GI.Gdk.Objects.Screen as Gdk.Screen
import qualified GI.Gdk.Structs.Atom as Gdk.Atom
import qualified GI.Gdk.Structs.Color as Gdk.Color
import qualified GI.Gdk.Structs.EventAny as Gdk.EventAny
import qualified GI.Gdk.Structs.EventButton as Gdk.EventButton
import qualified GI.Gdk.Structs.EventConfigure as Gdk.EventConfigure
import qualified GI.Gdk.Structs.EventCrossing as Gdk.EventCrossing
import qualified GI.Gdk.Structs.EventExpose as Gdk.EventExpose
import qualified GI.Gdk.Structs.EventFocus as Gdk.EventFocus
import qualified GI.Gdk.Structs.EventGrabBroken as Gdk.EventGrabBroken
import qualified GI.Gdk.Structs.EventKey as Gdk.EventKey
import qualified GI.Gdk.Structs.EventMotion as Gdk.EventMotion
import qualified GI.Gdk.Structs.EventProperty as Gdk.EventProperty
import qualified GI.Gdk.Structs.EventProximity as Gdk.EventProximity
import qualified GI.Gdk.Structs.EventScroll as Gdk.EventScroll
import qualified GI.Gdk.Structs.EventSelection as Gdk.EventSelection
import qualified GI.Gdk.Structs.EventTouch as Gdk.EventTouch
import qualified GI.Gdk.Structs.EventVisibility as Gdk.EventVisibility
import qualified GI.Gdk.Structs.EventWindowState as Gdk.EventWindowState
import qualified GI.Gdk.Structs.Rectangle as Gdk.Rectangle
import qualified GI.Gdk.Unions.Event as Gdk.Event
import qualified GI.GdkPixbuf.Objects.Pixbuf as GdkPixbuf.Pixbuf
import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
import {-# SOURCE #-} qualified GI.Gtk.Flags as Gtk.Flags
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.CellLayout as Gtk.CellLayout
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeModel as Gtk.TreeModel
import {-# SOURCE #-} qualified GI.Gtk.Objects.AccelGroup as Gtk.AccelGroup
import {-# SOURCE #-} qualified GI.Gtk.Objects.Builder as Gtk.Builder
import {-# SOURCE #-} qualified GI.Gtk.Objects.Calendar as Gtk.Calendar
import {-# SOURCE #-} qualified GI.Gtk.Objects.CellRenderer as Gtk.CellRenderer
import {-# SOURCE #-} qualified GI.Gtk.Objects.Clipboard as Gtk.Clipboard
import {-# SOURCE #-} qualified GI.Gtk.Objects.Container as Gtk.Container
import {-# SOURCE #-} qualified GI.Gtk.Objects.EntryCompletion as Gtk.EntryCompletion
import {-# SOURCE #-} qualified GI.Gtk.Objects.FlowBox as Gtk.FlowBox
import {-# SOURCE #-} qualified GI.Gtk.Objects.FlowBoxChild as Gtk.FlowBoxChild
import {-# SOURCE #-} qualified GI.Gtk.Objects.IconView as Gtk.IconView
import {-# SOURCE #-} qualified GI.Gtk.Objects.ListBox as Gtk.ListBox
import {-# SOURCE #-} qualified GI.Gtk.Objects.ListBoxRow as Gtk.ListBoxRow
import {-# SOURCE #-} qualified GI.Gtk.Objects.Menu as Gtk.Menu
import {-# SOURCE #-} qualified GI.Gtk.Objects.PageSetup as Gtk.PageSetup
import {-# SOURCE #-} qualified GI.Gtk.Objects.Style as Gtk.Style
import {-# SOURCE #-} qualified GI.Gtk.Objects.TextBuffer as Gtk.TextBuffer
import {-# SOURCE #-} qualified GI.Gtk.Objects.TextTag as Gtk.TextTag
import {-# SOURCE #-} qualified GI.Gtk.Objects.Tooltip as Gtk.Tooltip
import {-# SOURCE #-} qualified GI.Gtk.Objects.TreeSelection as Gtk.TreeSelection
import {-# SOURCE #-} qualified GI.Gtk.Objects.TreeView as Gtk.TreeView
import {-# SOURCE #-} qualified GI.Gtk.Objects.TreeViewColumn as Gtk.TreeViewColumn
import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget
import {-# SOURCE #-} qualified GI.Gtk.Structs.AccelKey as Gtk.AccelKey
import {-# SOURCE #-} qualified GI.Gtk.Structs.FileFilterInfo as Gtk.FileFilterInfo
import {-# SOURCE #-} qualified GI.Gtk.Structs.RecentFilterInfo as Gtk.RecentFilterInfo
import {-# SOURCE #-} qualified GI.Gtk.Structs.RecentInfo as Gtk.RecentInfo
import {-# SOURCE #-} qualified GI.Gtk.Structs.SelectionData as Gtk.SelectionData
import {-# SOURCE #-} qualified GI.Gtk.Structs.TextIter as Gtk.TextIter
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreeIter as Gtk.TreeIter
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreePath as Gtk.TreePath
import {-# SOURCE #-} qualified GI.Gtk.Structs.WidgetPath as Gtk.WidgetPath
import qualified GI.Pango.Objects.FontFace as Pango.FontFace
import qualified GI.Pango.Objects.FontFamily as Pango.FontFamily

-- callback WidgetClassWindowStateEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventWindowState"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassWindowStateEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventWindowState.EventWindowState ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventWindowState" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassWindowStateEventFieldCallback :: FunPtr C_WidgetClassWindowStateEventFieldCallback -> C_WidgetClassWindowStateEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassWindowStateEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassWindowStateEventFieldCallback
    -> a
    -> Gdk.EventWindowState.EventWindowState
    -> m Bool
dynamic_WidgetClassWindowStateEventFieldCallback :: FunPtr C_WidgetClassWindowStateEventFieldCallback
-> a -> EventWindowState -> m Bool
dynamic_WidgetClassWindowStateEventFieldCallback __funPtr :: FunPtr C_WidgetClassWindowStateEventFieldCallback
__funPtr widget :: a
widget event :: EventWindowState
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventWindowState
event' <- EventWindowState -> IO (Ptr EventWindowState)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventWindowState
event
    CInt
result <- (FunPtr C_WidgetClassWindowStateEventFieldCallback
-> C_WidgetClassWindowStateEventFieldCallback
__dynamic_C_WidgetClassWindowStateEventFieldCallback FunPtr C_WidgetClassWindowStateEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventWindowState
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventWindowState -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventWindowState
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassWindowStateEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassWindowStateEventFieldCallback :: C_WidgetClassWindowStateEventFieldCallback -> IO (FunPtr C_WidgetClassWindowStateEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassWindowStateEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventWindowState.EventWindowState
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassWindowStateEventFieldCallback`@.
noWidgetClassWindowStateEventFieldCallback :: Maybe WidgetClassWindowStateEventFieldCallback
noWidgetClassWindowStateEventFieldCallback :: Maybe WidgetClassWindowStateEventFieldCallback
noWidgetClassWindowStateEventFieldCallback = Maybe WidgetClassWindowStateEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassWindowStateEventFieldCallback :: MonadIO m => WidgetClassWindowStateEventFieldCallback -> m (GClosure C_WidgetClassWindowStateEventFieldCallback)
genClosure_WidgetClassWindowStateEventFieldCallback :: WidgetClassWindowStateEventFieldCallback
-> m (GClosure C_WidgetClassWindowStateEventFieldCallback)
genClosure_WidgetClassWindowStateEventFieldCallback cb :: WidgetClassWindowStateEventFieldCallback
cb = IO (GClosure C_WidgetClassWindowStateEventFieldCallback)
-> m (GClosure C_WidgetClassWindowStateEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassWindowStateEventFieldCallback)
 -> m (GClosure C_WidgetClassWindowStateEventFieldCallback))
-> IO (GClosure C_WidgetClassWindowStateEventFieldCallback)
-> m (GClosure C_WidgetClassWindowStateEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassWindowStateEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback))
-> WidgetClassWindowStateEventFieldCallback
-> C_WidgetClassWindowStateEventFieldCallback
wrap_WidgetClassWindowStateEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassWindowStateEventFieldCallback
cb
    C_WidgetClassWindowStateEventFieldCallback
-> IO (FunPtr C_WidgetClassWindowStateEventFieldCallback)
mk_WidgetClassWindowStateEventFieldCallback C_WidgetClassWindowStateEventFieldCallback
cb' IO (FunPtr C_WidgetClassWindowStateEventFieldCallback)
-> (FunPtr C_WidgetClassWindowStateEventFieldCallback
    -> IO (GClosure C_WidgetClassWindowStateEventFieldCallback))
-> IO (GClosure C_WidgetClassWindowStateEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassWindowStateEventFieldCallback
-> IO (GClosure C_WidgetClassWindowStateEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassWindowStateEventFieldCallback` into a `C_WidgetClassWindowStateEventFieldCallback`.
wrap_WidgetClassWindowStateEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback)) ->
    WidgetClassWindowStateEventFieldCallback ->
    C_WidgetClassWindowStateEventFieldCallback
wrap_WidgetClassWindowStateEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback))
-> WidgetClassWindowStateEventFieldCallback
-> C_WidgetClassWindowStateEventFieldCallback
wrap_WidgetClassWindowStateEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback))
funptrptr _cb :: WidgetClassWindowStateEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventWindowState
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventWindowState
event' <- ((ManagedPtr EventWindowState -> EventWindowState)
-> Ptr EventWindowState -> IO EventWindowState
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventWindowState -> EventWindowState
Gdk.EventWindowState.EventWindowState) Ptr EventWindowState
event
    Bool
result <- WidgetClassWindowStateEventFieldCallback
_cb  Widget
widget' EventWindowState
event'
    Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassWindowStateEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassVisibilityNotifyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventVisibility"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassVisibilityNotifyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventVisibility.EventVisibility ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventVisibility" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassVisibilityNotifyEventFieldCallback :: FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback -> C_WidgetClassVisibilityNotifyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassVisibilityNotifyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
    -> a
    -> Gdk.EventVisibility.EventVisibility
    -> m Bool
dynamic_WidgetClassVisibilityNotifyEventFieldCallback :: FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
-> a -> EventVisibility -> m Bool
dynamic_WidgetClassVisibilityNotifyEventFieldCallback __funPtr :: FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
__funPtr widget :: a
widget event :: EventVisibility
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventVisibility
event' <- EventVisibility -> IO (Ptr EventVisibility)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventVisibility
event
    CInt
result <- (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
-> C_WidgetClassVisibilityNotifyEventFieldCallback
__dynamic_C_WidgetClassVisibilityNotifyEventFieldCallback FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventVisibility
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventVisibility -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventVisibility
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassVisibilityNotifyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassVisibilityNotifyEventFieldCallback :: C_WidgetClassVisibilityNotifyEventFieldCallback -> IO (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassVisibilityNotifyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventVisibility.EventVisibility
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassVisibilityNotifyEventFieldCallback`@.
noWidgetClassVisibilityNotifyEventFieldCallback :: Maybe WidgetClassVisibilityNotifyEventFieldCallback
noWidgetClassVisibilityNotifyEventFieldCallback :: Maybe WidgetClassVisibilityNotifyEventFieldCallback
noWidgetClassVisibilityNotifyEventFieldCallback = Maybe WidgetClassVisibilityNotifyEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassVisibilityNotifyEventFieldCallback :: MonadIO m => WidgetClassVisibilityNotifyEventFieldCallback -> m (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
genClosure_WidgetClassVisibilityNotifyEventFieldCallback :: WidgetClassVisibilityNotifyEventFieldCallback
-> m (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
genClosure_WidgetClassVisibilityNotifyEventFieldCallback cb :: WidgetClassVisibilityNotifyEventFieldCallback
cb = IO (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
 -> m (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassVisibilityNotifyEventFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback))
-> WidgetClassVisibilityNotifyEventFieldCallback
-> C_WidgetClassVisibilityNotifyEventFieldCallback
wrap_WidgetClassVisibilityNotifyEventFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassVisibilityNotifyEventFieldCallback
cb
    C_WidgetClassVisibilityNotifyEventFieldCallback
-> IO (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback)
mk_WidgetClassVisibilityNotifyEventFieldCallback C_WidgetClassVisibilityNotifyEventFieldCallback
cb' IO (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback)
-> (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
    -> IO (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback
-> IO (GClosure C_WidgetClassVisibilityNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassVisibilityNotifyEventFieldCallback` into a `C_WidgetClassVisibilityNotifyEventFieldCallback`.
wrap_WidgetClassVisibilityNotifyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback)) ->
    WidgetClassVisibilityNotifyEventFieldCallback ->
    C_WidgetClassVisibilityNotifyEventFieldCallback
wrap_WidgetClassVisibilityNotifyEventFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback))
-> WidgetClassVisibilityNotifyEventFieldCallback
-> C_WidgetClassVisibilityNotifyEventFieldCallback
wrap_WidgetClassVisibilityNotifyEventFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback))
funptrptr _cb :: WidgetClassVisibilityNotifyEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventVisibility
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventVisibility
event' <- ((ManagedPtr EventVisibility -> EventVisibility)
-> Ptr EventVisibility -> IO EventVisibility
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventVisibility -> EventVisibility
Gdk.EventVisibility.EventVisibility) Ptr EventVisibility
event
    Bool
result <- WidgetClassVisibilityNotifyEventFieldCallback
_cb  Widget
widget' EventVisibility
event'
    Maybe
  (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassVisibilityNotifyEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassUnrealizeFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassUnrealizeFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassUnrealizeFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> C_WidgetClassUnrealizeFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassUnrealizeFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassUnrealizeFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassUnrealizeFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassUnrealizeFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassUnrealizeFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassUnrealizeFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassUnrealizeFieldCallback :: C_WidgetClassUnrealizeFieldCallback -> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassUnrealizeFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassUnrealizeFieldCallback`@.
noWidgetClassUnrealizeFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassUnrealizeFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassUnrealizeFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassUnrealizeFieldCallback :: MonadIO m => WidgetClassUnrealizeFieldCallback -> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassUnrealizeFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassUnrealizeFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassUnrealizeFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassUnrealizeFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassUnrealizeFieldCallback` into a `C_WidgetClassUnrealizeFieldCallback`.
wrap_WidgetClassUnrealizeFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) ->
    WidgetClassUnrealizeFieldCallback ->
    C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassUnrealizeFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassUnrealizeFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassUnmapFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassUnmapFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassUnmapFieldCallback :: FunPtr C_WidgetClassUnmapFieldCallback -> C_WidgetClassUnmapFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassUnmapFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassUnmapFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassUnmapFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassUnmapFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassUnmapFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassUnmapFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassUnmapFieldCallback :: C_WidgetClassUnmapFieldCallback -> IO (FunPtr C_WidgetClassUnmapFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassUnmapFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassUnmapFieldCallback`@.
noWidgetClassUnmapFieldCallback :: Maybe WidgetClassUnmapFieldCallback
noWidgetClassUnmapFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassUnmapFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassUnmapFieldCallback :: MonadIO m => WidgetClassUnmapFieldCallback -> m (GClosure C_WidgetClassUnmapFieldCallback)
genClosure_WidgetClassUnmapFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassUnmapFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassUnmapFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassUnmapFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassUnmapFieldCallback` into a `C_WidgetClassUnmapFieldCallback`.
wrap_WidgetClassUnmapFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassUnmapFieldCallback)) ->
    WidgetClassUnmapFieldCallback ->
    C_WidgetClassUnmapFieldCallback
wrap_WidgetClassUnmapFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassUnmapFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassUnmapEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventAny"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassUnmapEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventAny.EventAny ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventAny" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassUnmapEventFieldCallback :: FunPtr C_WidgetClassUnmapEventFieldCallback -> C_WidgetClassUnmapEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassUnmapEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassUnmapEventFieldCallback
    -> a
    -> Gdk.EventAny.EventAny
    -> m Bool
dynamic_WidgetClassUnmapEventFieldCallback :: FunPtr C_WidgetClassUnmapEventFieldCallback
-> a -> EventAny -> m Bool
dynamic_WidgetClassUnmapEventFieldCallback __funPtr :: FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr widget :: a
widget event :: EventAny
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventAny
event' <- EventAny -> IO (Ptr EventAny)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventAny
event
    CInt
result <- (FunPtr C_WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
__dynamic_C_WidgetClassUnmapEventFieldCallback FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventAny
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventAny -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventAny
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassUnmapEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassUnmapEventFieldCallback :: C_WidgetClassUnmapEventFieldCallback -> IO (FunPtr C_WidgetClassUnmapEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassUnmapEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventAny.EventAny
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassUnmapEventFieldCallback`@.
noWidgetClassUnmapEventFieldCallback :: Maybe WidgetClassUnmapEventFieldCallback
noWidgetClassUnmapEventFieldCallback :: Maybe WidgetClassUnmapEventFieldCallback
noWidgetClassUnmapEventFieldCallback = Maybe WidgetClassUnmapEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassUnmapEventFieldCallback :: MonadIO m => WidgetClassUnmapEventFieldCallback -> m (GClosure C_WidgetClassUnmapEventFieldCallback)
genClosure_WidgetClassUnmapEventFieldCallback :: WidgetClassUnmapEventFieldCallback
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
genClosure_WidgetClassUnmapEventFieldCallback cb :: WidgetClassUnmapEventFieldCallback
cb = IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnmapEventFieldCallback)
 -> m (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnmapEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassUnmapEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnmapEventFieldCallback
cb
    C_WidgetClassUnmapEventFieldCallback
-> IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
mk_WidgetClassUnmapEventFieldCallback C_WidgetClassUnmapEventFieldCallback
cb' IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
-> (FunPtr C_WidgetClassUnmapEventFieldCallback
    -> IO (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnmapEventFieldCallback
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassUnmapEventFieldCallback` into a `C_WidgetClassUnmapEventFieldCallback`.
wrap_WidgetClassUnmapEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback)) ->
    WidgetClassUnmapEventFieldCallback ->
    C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassUnmapEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassUnmapEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr _cb :: WidgetClassUnmapEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventAny
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventAny
event' <- ((ManagedPtr EventAny -> EventAny) -> Ptr EventAny -> IO EventAny
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventAny -> EventAny
Gdk.EventAny.EventAny) Ptr EventAny
event
    Bool
result <- WidgetClassUnmapEventFieldCallback
_cb  Widget
widget' EventAny
event'
    Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassTouchEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventTouch"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassTouchEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventTouch.EventTouch ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventTouch" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassTouchEventFieldCallback :: FunPtr C_WidgetClassTouchEventFieldCallback -> C_WidgetClassTouchEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassTouchEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassTouchEventFieldCallback
    -> a
    -> Gdk.EventTouch.EventTouch
    -> m Bool
dynamic_WidgetClassTouchEventFieldCallback :: FunPtr C_WidgetClassTouchEventFieldCallback
-> a -> EventTouch -> m Bool
dynamic_WidgetClassTouchEventFieldCallback __funPtr :: FunPtr C_WidgetClassTouchEventFieldCallback
__funPtr widget :: a
widget event :: EventTouch
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventTouch
event' <- EventTouch -> IO (Ptr EventTouch)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventTouch
event
    CInt
result <- (FunPtr C_WidgetClassTouchEventFieldCallback
-> C_WidgetClassTouchEventFieldCallback
__dynamic_C_WidgetClassTouchEventFieldCallback FunPtr C_WidgetClassTouchEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventTouch
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventTouch -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventTouch
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassTouchEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassTouchEventFieldCallback :: C_WidgetClassTouchEventFieldCallback -> IO (FunPtr C_WidgetClassTouchEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassTouchEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventTouch.EventTouch
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassTouchEventFieldCallback`@.
noWidgetClassTouchEventFieldCallback :: Maybe WidgetClassTouchEventFieldCallback
noWidgetClassTouchEventFieldCallback :: Maybe WidgetClassTouchEventFieldCallback
noWidgetClassTouchEventFieldCallback = Maybe WidgetClassTouchEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassTouchEventFieldCallback :: MonadIO m => WidgetClassTouchEventFieldCallback -> m (GClosure C_WidgetClassTouchEventFieldCallback)
genClosure_WidgetClassTouchEventFieldCallback :: WidgetClassTouchEventFieldCallback
-> m (GClosure C_WidgetClassTouchEventFieldCallback)
genClosure_WidgetClassTouchEventFieldCallback cb :: WidgetClassTouchEventFieldCallback
cb = IO (GClosure C_WidgetClassTouchEventFieldCallback)
-> m (GClosure C_WidgetClassTouchEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassTouchEventFieldCallback)
 -> m (GClosure C_WidgetClassTouchEventFieldCallback))
-> IO (GClosure C_WidgetClassTouchEventFieldCallback)
-> m (GClosure C_WidgetClassTouchEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassTouchEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback))
-> WidgetClassTouchEventFieldCallback
-> C_WidgetClassTouchEventFieldCallback
wrap_WidgetClassTouchEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassTouchEventFieldCallback
cb
    C_WidgetClassTouchEventFieldCallback
-> IO (FunPtr C_WidgetClassTouchEventFieldCallback)
mk_WidgetClassTouchEventFieldCallback C_WidgetClassTouchEventFieldCallback
cb' IO (FunPtr C_WidgetClassTouchEventFieldCallback)
-> (FunPtr C_WidgetClassTouchEventFieldCallback
    -> IO (GClosure C_WidgetClassTouchEventFieldCallback))
-> IO (GClosure C_WidgetClassTouchEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassTouchEventFieldCallback
-> IO (GClosure C_WidgetClassTouchEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassTouchEventFieldCallback` into a `C_WidgetClassTouchEventFieldCallback`.
wrap_WidgetClassTouchEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback)) ->
    WidgetClassTouchEventFieldCallback ->
    C_WidgetClassTouchEventFieldCallback
wrap_WidgetClassTouchEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback))
-> WidgetClassTouchEventFieldCallback
-> C_WidgetClassTouchEventFieldCallback
wrap_WidgetClassTouchEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback))
funptrptr _cb :: WidgetClassTouchEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventTouch
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventTouch
event' <- ((ManagedPtr EventTouch -> EventTouch)
-> Ptr EventTouch -> IO EventTouch
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventTouch -> EventTouch
Gdk.EventTouch.EventTouch) Ptr EventTouch
event
    Bool
result <- WidgetClassTouchEventFieldCallback
_cb  Widget
widget' EventTouch
event'
    Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassTouchEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassStyleUpdatedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassStyleUpdatedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassStyleUpdatedFieldCallback :: FunPtr C_WidgetClassStyleUpdatedFieldCallback -> C_WidgetClassStyleUpdatedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassStyleUpdatedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassStyleUpdatedFieldCallback
    -> a
    -> m ()
dynamic_WidgetClassStyleUpdatedFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassStyleUpdatedFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassStyleUpdatedFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassStyleUpdatedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassStyleUpdatedFieldCallback :: C_WidgetClassStyleUpdatedFieldCallback -> IO (FunPtr C_WidgetClassStyleUpdatedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassStyleUpdatedFieldCallback =
    Gtk.Widget.Widget
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassStyleUpdatedFieldCallback`@.
noWidgetClassStyleUpdatedFieldCallback :: Maybe WidgetClassStyleUpdatedFieldCallback
noWidgetClassStyleUpdatedFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassStyleUpdatedFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassStyleUpdatedFieldCallback :: MonadIO m => WidgetClassStyleUpdatedFieldCallback -> m (GClosure C_WidgetClassStyleUpdatedFieldCallback)
genClosure_WidgetClassStyleUpdatedFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassStyleUpdatedFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassStyleUpdatedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassStyleUpdatedFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassStyleUpdatedFieldCallback` into a `C_WidgetClassStyleUpdatedFieldCallback`.
wrap_WidgetClassStyleUpdatedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassStyleUpdatedFieldCallback)) ->
    WidgetClassStyleUpdatedFieldCallback ->
    C_WidgetClassStyleUpdatedFieldCallback
wrap_WidgetClassStyleUpdatedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassStyleUpdatedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassStyleSetFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_style", argType = TInterface (Name {namespace = "Gtk", name = "Style"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassStyleSetFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gtk.Style.Style ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_style"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Style" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassStyleSetFieldCallback :: FunPtr C_WidgetClassStyleSetFieldCallback -> C_WidgetClassStyleSetFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassStyleSetFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gtk.Style.IsStyle b) =>
    FunPtr C_WidgetClassStyleSetFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassStyleSetFieldCallback :: FunPtr C_WidgetClassStyleSetFieldCallback -> a -> b -> m ()
dynamic_WidgetClassStyleSetFieldCallback __funPtr :: FunPtr C_WidgetClassStyleSetFieldCallback
__funPtr widget :: a
widget previousStyle :: b
previousStyle = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Style
previousStyle' <- b -> IO (Ptr Style)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
previousStyle
    (FunPtr C_WidgetClassStyleSetFieldCallback
-> C_WidgetClassStyleSetFieldCallback
__dynamic_C_WidgetClassStyleSetFieldCallback FunPtr C_WidgetClassStyleSetFieldCallback
__funPtr) Ptr Widget
widget' Ptr Style
previousStyle'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
previousStyle
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassStyleSetFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassStyleSetFieldCallback :: C_WidgetClassStyleSetFieldCallback -> IO (FunPtr C_WidgetClassStyleSetFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassStyleSetFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Style.Style
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassStyleSetFieldCallback`@.
noWidgetClassStyleSetFieldCallback :: Maybe WidgetClassStyleSetFieldCallback
noWidgetClassStyleSetFieldCallback :: Maybe WidgetClassStyleSetFieldCallback
noWidgetClassStyleSetFieldCallback = Maybe WidgetClassStyleSetFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassStyleSetFieldCallback :: MonadIO m => WidgetClassStyleSetFieldCallback -> m (GClosure C_WidgetClassStyleSetFieldCallback)
genClosure_WidgetClassStyleSetFieldCallback :: WidgetClassStyleSetFieldCallback
-> m (GClosure C_WidgetClassStyleSetFieldCallback)
genClosure_WidgetClassStyleSetFieldCallback cb :: WidgetClassStyleSetFieldCallback
cb = IO (GClosure C_WidgetClassStyleSetFieldCallback)
-> m (GClosure C_WidgetClassStyleSetFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassStyleSetFieldCallback)
 -> m (GClosure C_WidgetClassStyleSetFieldCallback))
-> IO (GClosure C_WidgetClassStyleSetFieldCallback)
-> m (GClosure C_WidgetClassStyleSetFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassStyleSetFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback))
-> WidgetClassStyleSetFieldCallback
-> C_WidgetClassStyleSetFieldCallback
wrap_WidgetClassStyleSetFieldCallback Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback))
forall a. Maybe a
Nothing WidgetClassStyleSetFieldCallback
cb
    C_WidgetClassStyleSetFieldCallback
-> IO (FunPtr C_WidgetClassStyleSetFieldCallback)
mk_WidgetClassStyleSetFieldCallback C_WidgetClassStyleSetFieldCallback
cb' IO (FunPtr C_WidgetClassStyleSetFieldCallback)
-> (FunPtr C_WidgetClassStyleSetFieldCallback
    -> IO (GClosure C_WidgetClassStyleSetFieldCallback))
-> IO (GClosure C_WidgetClassStyleSetFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassStyleSetFieldCallback
-> IO (GClosure C_WidgetClassStyleSetFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassStyleSetFieldCallback` into a `C_WidgetClassStyleSetFieldCallback`.
wrap_WidgetClassStyleSetFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback)) ->
    WidgetClassStyleSetFieldCallback ->
    C_WidgetClassStyleSetFieldCallback
wrap_WidgetClassStyleSetFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback))
-> WidgetClassStyleSetFieldCallback
-> C_WidgetClassStyleSetFieldCallback
wrap_WidgetClassStyleSetFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback))
funptrptr _cb :: WidgetClassStyleSetFieldCallback
_cb widget :: Ptr Widget
widget previousStyle :: Ptr Style
previousStyle = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Style
previousStyle' <- ((ManagedPtr Style -> Style) -> Ptr Style -> IO Style
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Style -> Style
Gtk.Style.Style) Ptr Style
previousStyle
    WidgetClassStyleSetFieldCallback
_cb  Widget
widget' Style
previousStyle'
    Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassStyleSetFieldCallback))
funptrptr


-- callback WidgetClassStateFlagsChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_state_flags", argType = TInterface (Name {namespace = "Gtk", name = "StateFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassStateFlagsChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_state_flags"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "StateFlags" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassStateFlagsChangedFieldCallback :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback -> C_WidgetClassStateFlagsChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassStateFlagsChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassStateFlagsChangedFieldCallback
    -> a
    -> [Gtk.Flags.StateFlags]
    -> m ()
dynamic_WidgetClassStateFlagsChangedFieldCallback :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> a -> [StateFlags] -> m ()
dynamic_WidgetClassStateFlagsChangedFieldCallback __funPtr :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr widget :: a
widget previousStateFlags :: [StateFlags]
previousStateFlags = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let previousStateFlags' :: CUInt
previousStateFlags' = [StateFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [StateFlags]
previousStateFlags
    (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
__dynamic_C_WidgetClassStateFlagsChangedFieldCallback FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr) Ptr Widget
widget' CUInt
previousStateFlags'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassStateFlagsChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassStateFlagsChangedFieldCallback :: C_WidgetClassStateFlagsChangedFieldCallback -> IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassStateFlagsChangedFieldCallback =
    Gtk.Widget.Widget
    -> [Gtk.Flags.StateFlags]
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassStateFlagsChangedFieldCallback`@.
noWidgetClassStateFlagsChangedFieldCallback :: Maybe WidgetClassStateFlagsChangedFieldCallback
noWidgetClassStateFlagsChangedFieldCallback :: Maybe WidgetClassStateFlagsChangedFieldCallback
noWidgetClassStateFlagsChangedFieldCallback = Maybe WidgetClassStateFlagsChangedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassStateFlagsChangedFieldCallback :: MonadIO m => WidgetClassStateFlagsChangedFieldCallback -> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
genClosure_WidgetClassStateFlagsChangedFieldCallback :: WidgetClassStateFlagsChangedFieldCallback
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
genClosure_WidgetClassStateFlagsChangedFieldCallback cb :: WidgetClassStateFlagsChangedFieldCallback
cb = IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
 -> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassStateFlagsChangedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassStateFlagsChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassStateFlagsChangedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
forall a. Maybe a
Nothing WidgetClassStateFlagsChangedFieldCallback
cb
    C_WidgetClassStateFlagsChangedFieldCallback
-> IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
mk_WidgetClassStateFlagsChangedFieldCallback C_WidgetClassStateFlagsChangedFieldCallback
cb' IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
-> (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
    -> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassStateFlagsChangedFieldCallback` into a `C_WidgetClassStateFlagsChangedFieldCallback`.
wrap_WidgetClassStateFlagsChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)) ->
    WidgetClassStateFlagsChangedFieldCallback ->
    C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassStateFlagsChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassStateFlagsChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassStateFlagsChangedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr _cb :: WidgetClassStateFlagsChangedFieldCallback
_cb widget :: Ptr Widget
widget previousStateFlags :: CUInt
previousStateFlags = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let previousStateFlags' :: [StateFlags]
previousStateFlags' = CUInt -> [StateFlags]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
previousStateFlags
    WidgetClassStateFlagsChangedFieldCallback
_cb  Widget
widget' [StateFlags]
previousStateFlags'
    Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr


-- callback WidgetClassStateChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_state", argType = TInterface (Name {namespace = "Gtk", name = "StateType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassStateChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_state"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "StateType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassStateChangedFieldCallback :: FunPtr C_WidgetClassStateChangedFieldCallback -> C_WidgetClassStateChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassStateChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassStateChangedFieldCallback
    -> a
    -> Gtk.Enums.StateType
    -> m ()
dynamic_WidgetClassStateChangedFieldCallback :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> a -> StateType -> m ()
dynamic_WidgetClassStateChangedFieldCallback __funPtr :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr widget :: a
widget previousState :: StateType
previousState = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let previousState' :: CUInt
previousState' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (StateType -> Int) -> StateType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. StateType -> Int
forall a. Enum a => a -> Int
fromEnum) StateType
previousState
    (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
__dynamic_C_WidgetClassStateChangedFieldCallback FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr) Ptr Widget
widget' CUInt
previousState'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassStateChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassStateChangedFieldCallback :: C_WidgetClassStateChangedFieldCallback -> IO (FunPtr C_WidgetClassStateChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassStateChangedFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.StateType
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassStateChangedFieldCallback`@.
noWidgetClassStateChangedFieldCallback :: Maybe WidgetClassStateChangedFieldCallback
noWidgetClassStateChangedFieldCallback :: Maybe WidgetClassStateChangedFieldCallback
noWidgetClassStateChangedFieldCallback = Maybe WidgetClassStateChangedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassStateChangedFieldCallback :: MonadIO m => WidgetClassStateChangedFieldCallback -> m (GClosure C_WidgetClassStateChangedFieldCallback)
genClosure_WidgetClassStateChangedFieldCallback :: WidgetClassStateChangedFieldCallback
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
genClosure_WidgetClassStateChangedFieldCallback cb :: WidgetClassStateChangedFieldCallback
cb = IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
 -> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassStateFlagsChangedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassStateChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassStateChangedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
forall a. Maybe a
Nothing WidgetClassStateChangedFieldCallback
cb
    C_WidgetClassStateFlagsChangedFieldCallback
-> IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
mk_WidgetClassStateChangedFieldCallback C_WidgetClassStateFlagsChangedFieldCallback
cb' IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
-> (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
    -> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassStateChangedFieldCallback` into a `C_WidgetClassStateChangedFieldCallback`.
wrap_WidgetClassStateChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassStateChangedFieldCallback)) ->
    WidgetClassStateChangedFieldCallback ->
    C_WidgetClassStateChangedFieldCallback
wrap_WidgetClassStateChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassStateChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassStateChangedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr _cb :: WidgetClassStateChangedFieldCallback
_cb widget :: Ptr Widget
widget previousState :: CUInt
previousState = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let previousState' :: StateType
previousState' = (Int -> StateType
forall a. Enum a => Int -> a
toEnum (Int -> StateType) -> (CUInt -> Int) -> CUInt -> StateType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
previousState
    WidgetClassStateChangedFieldCallback
_cb  Widget
widget' StateType
previousState'
    Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr


-- callback WidgetClassSizeAllocateFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocation", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "position and size to be allocated to @widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSizeAllocateFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.Rectangle.Rectangle ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "allocation"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Rectangle" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "position and size to be allocated to @widget"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassSizeAllocateFieldCallback :: FunPtr C_WidgetClassSizeAllocateFieldCallback -> C_WidgetClassSizeAllocateFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassSizeAllocateFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassSizeAllocateFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Gdk.Rectangle.Rectangle
    -- ^ /@allocation@/: position and size to be allocated to /@widget@/
    -> m ()
dynamic_WidgetClassSizeAllocateFieldCallback :: FunPtr C_WidgetClassSizeAllocateFieldCallback
-> a -> Rectangle -> m ()
dynamic_WidgetClassSizeAllocateFieldCallback __funPtr :: FunPtr C_WidgetClassSizeAllocateFieldCallback
__funPtr widget :: a
widget allocation :: Rectangle
allocation = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Rectangle
allocation' <- Rectangle -> IO (Ptr Rectangle)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Rectangle
allocation
    (FunPtr C_WidgetClassSizeAllocateFieldCallback
-> C_WidgetClassSizeAllocateFieldCallback
__dynamic_C_WidgetClassSizeAllocateFieldCallback FunPtr C_WidgetClassSizeAllocateFieldCallback
__funPtr) Ptr Widget
widget' Ptr Rectangle
allocation'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Rectangle -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Rectangle
allocation
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassSizeAllocateFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassSizeAllocateFieldCallback :: C_WidgetClassSizeAllocateFieldCallback -> IO (FunPtr C_WidgetClassSizeAllocateFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassSizeAllocateFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Gdk.Rectangle.Rectangle
    -- ^ /@allocation@/: position and size to be allocated to /@widget@/
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassSizeAllocateFieldCallback`@.
noWidgetClassSizeAllocateFieldCallback :: Maybe WidgetClassSizeAllocateFieldCallback
noWidgetClassSizeAllocateFieldCallback :: Maybe WidgetClassSizeAllocateFieldCallback
noWidgetClassSizeAllocateFieldCallback = Maybe WidgetClassSizeAllocateFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassSizeAllocateFieldCallback :: MonadIO m => WidgetClassSizeAllocateFieldCallback -> m (GClosure C_WidgetClassSizeAllocateFieldCallback)
genClosure_WidgetClassSizeAllocateFieldCallback :: WidgetClassSizeAllocateFieldCallback
-> m (GClosure C_WidgetClassSizeAllocateFieldCallback)
genClosure_WidgetClassSizeAllocateFieldCallback cb :: WidgetClassSizeAllocateFieldCallback
cb = IO (GClosure C_WidgetClassSizeAllocateFieldCallback)
-> m (GClosure C_WidgetClassSizeAllocateFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassSizeAllocateFieldCallback)
 -> m (GClosure C_WidgetClassSizeAllocateFieldCallback))
-> IO (GClosure C_WidgetClassSizeAllocateFieldCallback)
-> m (GClosure C_WidgetClassSizeAllocateFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassSizeAllocateFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback))
-> WidgetClassSizeAllocateFieldCallback
-> C_WidgetClassSizeAllocateFieldCallback
wrap_WidgetClassSizeAllocateFieldCallback Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback))
forall a. Maybe a
Nothing WidgetClassSizeAllocateFieldCallback
cb
    C_WidgetClassSizeAllocateFieldCallback
-> IO (FunPtr C_WidgetClassSizeAllocateFieldCallback)
mk_WidgetClassSizeAllocateFieldCallback C_WidgetClassSizeAllocateFieldCallback
cb' IO (FunPtr C_WidgetClassSizeAllocateFieldCallback)
-> (FunPtr C_WidgetClassSizeAllocateFieldCallback
    -> IO (GClosure C_WidgetClassSizeAllocateFieldCallback))
-> IO (GClosure C_WidgetClassSizeAllocateFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassSizeAllocateFieldCallback
-> IO (GClosure C_WidgetClassSizeAllocateFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassSizeAllocateFieldCallback` into a `C_WidgetClassSizeAllocateFieldCallback`.
wrap_WidgetClassSizeAllocateFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback)) ->
    WidgetClassSizeAllocateFieldCallback ->
    C_WidgetClassSizeAllocateFieldCallback
wrap_WidgetClassSizeAllocateFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback))
-> WidgetClassSizeAllocateFieldCallback
-> C_WidgetClassSizeAllocateFieldCallback
wrap_WidgetClassSizeAllocateFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback))
funptrptr _cb :: WidgetClassSizeAllocateFieldCallback
_cb widget :: Ptr Widget
widget allocation :: Ptr Rectangle
allocation = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (ManagedPtr Rectangle -> Rectangle)
-> Ptr Rectangle -> (Rectangle -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr Rectangle -> Rectangle
Gdk.Rectangle.Rectangle Ptr Rectangle
allocation ((Rectangle -> IO ()) -> IO ()) -> (Rectangle -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \allocation' :: Rectangle
allocation' -> do
        WidgetClassSizeAllocateFieldCallback
_cb  Widget
widget' Rectangle
allocation'
        Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassSizeAllocateFieldCallback))
funptrptr


-- callback WidgetClassShowHelpFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "help_type", argType = TInterface (Name {namespace = "Gtk", name = "WidgetHelpType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassShowHelpFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "help_type"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "WidgetHelpType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassShowHelpFieldCallback :: FunPtr C_WidgetClassShowHelpFieldCallback -> C_WidgetClassShowHelpFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassShowHelpFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassShowHelpFieldCallback
    -> a
    -> Gtk.Enums.WidgetHelpType
    -> m Bool
dynamic_WidgetClassShowHelpFieldCallback :: FunPtr C_WidgetClassShowHelpFieldCallback
-> a -> WidgetHelpType -> m Bool
dynamic_WidgetClassShowHelpFieldCallback __funPtr :: FunPtr C_WidgetClassShowHelpFieldCallback
__funPtr widget :: a
widget helpType :: WidgetHelpType
helpType = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let helpType' :: CUInt
helpType' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (WidgetHelpType -> Int) -> WidgetHelpType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. WidgetHelpType -> Int
forall a. Enum a => a -> Int
fromEnum) WidgetHelpType
helpType
    CInt
result <- (FunPtr C_WidgetClassShowHelpFieldCallback
-> C_WidgetClassShowHelpFieldCallback
__dynamic_C_WidgetClassShowHelpFieldCallback FunPtr C_WidgetClassShowHelpFieldCallback
__funPtr) Ptr Widget
widget' CUInt
helpType'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassShowHelpFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassShowHelpFieldCallback :: C_WidgetClassShowHelpFieldCallback -> IO (FunPtr C_WidgetClassShowHelpFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassShowHelpFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.WidgetHelpType
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassShowHelpFieldCallback`@.
noWidgetClassShowHelpFieldCallback :: Maybe WidgetClassShowHelpFieldCallback
noWidgetClassShowHelpFieldCallback :: Maybe WidgetClassShowHelpFieldCallback
noWidgetClassShowHelpFieldCallback = Maybe WidgetClassShowHelpFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassShowHelpFieldCallback :: MonadIO m => WidgetClassShowHelpFieldCallback -> m (GClosure C_WidgetClassShowHelpFieldCallback)
genClosure_WidgetClassShowHelpFieldCallback :: WidgetClassShowHelpFieldCallback
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
genClosure_WidgetClassShowHelpFieldCallback cb :: WidgetClassShowHelpFieldCallback
cb = IO (GClosure C_WidgetClassShowHelpFieldCallback)
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassShowHelpFieldCallback)
 -> m (GClosure C_WidgetClassShowHelpFieldCallback))
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassShowHelpFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
-> WidgetClassShowHelpFieldCallback
-> C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassShowHelpFieldCallback Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
forall a. Maybe a
Nothing WidgetClassShowHelpFieldCallback
cb
    C_WidgetClassShowHelpFieldCallback
-> IO (FunPtr C_WidgetClassShowHelpFieldCallback)
mk_WidgetClassShowHelpFieldCallback C_WidgetClassShowHelpFieldCallback
cb' IO (FunPtr C_WidgetClassShowHelpFieldCallback)
-> (FunPtr C_WidgetClassShowHelpFieldCallback
    -> IO (GClosure C_WidgetClassShowHelpFieldCallback))
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassShowHelpFieldCallback
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassShowHelpFieldCallback` into a `C_WidgetClassShowHelpFieldCallback`.
wrap_WidgetClassShowHelpFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback)) ->
    WidgetClassShowHelpFieldCallback ->
    C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassShowHelpFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
-> WidgetClassShowHelpFieldCallback
-> C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassShowHelpFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
funptrptr _cb :: WidgetClassShowHelpFieldCallback
_cb widget :: Ptr Widget
widget helpType :: CUInt
helpType = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let helpType' :: WidgetHelpType
helpType' = (Int -> WidgetHelpType
forall a. Enum a => Int -> a
toEnum (Int -> WidgetHelpType)
-> (CUInt -> Int) -> CUInt -> WidgetHelpType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
helpType
    Bool
result <- WidgetClassShowHelpFieldCallback
_cb  Widget
widget' WidgetHelpType
helpType'
    Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassShowFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassShowFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassShowFieldCallback :: FunPtr C_WidgetClassShowFieldCallback -> C_WidgetClassShowFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassShowFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassShowFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassShowFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassShowFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassShowFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassShowFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassShowFieldCallback :: C_WidgetClassShowFieldCallback -> IO (FunPtr C_WidgetClassShowFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassShowFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassShowFieldCallback`@.
noWidgetClassShowFieldCallback :: Maybe WidgetClassShowFieldCallback
noWidgetClassShowFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassShowFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassShowFieldCallback :: MonadIO m => WidgetClassShowFieldCallback -> m (GClosure C_WidgetClassShowFieldCallback)
genClosure_WidgetClassShowFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassShowFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassShowFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassShowFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassShowFieldCallback` into a `C_WidgetClassShowFieldCallback`.
wrap_WidgetClassShowFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassShowFieldCallback)) ->
    WidgetClassShowFieldCallback ->
    C_WidgetClassShowFieldCallback
wrap_WidgetClassShowFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassShowFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassShowAllFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassShowAllFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassShowAllFieldCallback :: FunPtr C_WidgetClassShowAllFieldCallback -> C_WidgetClassShowAllFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassShowAllFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassShowAllFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassShowAllFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassShowAllFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassShowAllFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassShowAllFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassShowAllFieldCallback :: C_WidgetClassShowAllFieldCallback -> IO (FunPtr C_WidgetClassShowAllFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassShowAllFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassShowAllFieldCallback`@.
noWidgetClassShowAllFieldCallback :: Maybe WidgetClassShowAllFieldCallback
noWidgetClassShowAllFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassShowAllFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassShowAllFieldCallback :: MonadIO m => WidgetClassShowAllFieldCallback -> m (GClosure C_WidgetClassShowAllFieldCallback)
genClosure_WidgetClassShowAllFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassShowAllFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassShowAllFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassShowAllFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassShowAllFieldCallback` into a `C_WidgetClassShowAllFieldCallback`.
wrap_WidgetClassShowAllFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassShowAllFieldCallback)) ->
    WidgetClassShowAllFieldCallback ->
    C_WidgetClassShowAllFieldCallback
wrap_WidgetClassShowAllFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassShowAllFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassSelectionRequestEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventSelection"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSelectionRequestEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventSelection.EventSelection ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventSelection" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassSelectionRequestEventFieldCallback :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback -> C_WidgetClassSelectionRequestEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassSelectionRequestEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassSelectionRequestEventFieldCallback
    -> a
    -> Gdk.EventSelection.EventSelection
    -> m Bool
dynamic_WidgetClassSelectionRequestEventFieldCallback :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> a -> EventSelection -> m Bool
dynamic_WidgetClassSelectionRequestEventFieldCallback __funPtr :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback
__funPtr widget :: a
widget event :: EventSelection
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventSelection
event' <- EventSelection -> IO (Ptr EventSelection)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventSelection
event
    CInt
result <- (FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
__dynamic_C_WidgetClassSelectionRequestEventFieldCallback FunPtr C_WidgetClassSelectionRequestEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventSelection
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventSelection -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventSelection
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassSelectionRequestEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassSelectionRequestEventFieldCallback :: C_WidgetClassSelectionRequestEventFieldCallback -> IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassSelectionRequestEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventSelection.EventSelection
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassSelectionRequestEventFieldCallback`@.
noWidgetClassSelectionRequestEventFieldCallback :: Maybe WidgetClassSelectionRequestEventFieldCallback
noWidgetClassSelectionRequestEventFieldCallback :: Maybe WidgetClassSelectionRequestEventFieldCallback
noWidgetClassSelectionRequestEventFieldCallback = Maybe WidgetClassSelectionRequestEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassSelectionRequestEventFieldCallback :: MonadIO m => WidgetClassSelectionRequestEventFieldCallback -> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
genClosure_WidgetClassSelectionRequestEventFieldCallback :: WidgetClassSelectionRequestEventFieldCallback
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
genClosure_WidgetClassSelectionRequestEventFieldCallback cb :: WidgetClassSelectionRequestEventFieldCallback
cb = IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
 -> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback))
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassSelectionRequestEventFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionRequestEventFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassSelectionRequestEventFieldCallback
cb
    C_WidgetClassSelectionRequestEventFieldCallback
-> IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)
mk_WidgetClassSelectionRequestEventFieldCallback C_WidgetClassSelectionRequestEventFieldCallback
cb' IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)
-> (FunPtr C_WidgetClassSelectionRequestEventFieldCallback
    -> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback))
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassSelectionRequestEventFieldCallback` into a `C_WidgetClassSelectionRequestEventFieldCallback`.
wrap_WidgetClassSelectionRequestEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)) ->
    WidgetClassSelectionRequestEventFieldCallback ->
    C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionRequestEventFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionRequestEventFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
funptrptr _cb :: WidgetClassSelectionRequestEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventSelection
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventSelection
event' <- ((ManagedPtr EventSelection -> EventSelection)
-> Ptr EventSelection -> IO EventSelection
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventSelection -> EventSelection
Gdk.EventSelection.EventSelection) Ptr EventSelection
event
    Bool
result <- WidgetClassSelectionRequestEventFieldCallback
_cb  Widget
widget' EventSelection
event'
    Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassSelectionReceivedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_data", argType = TInterface (Name {namespace = "Gtk", name = "SelectionData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSelectionReceivedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gtk.SelectionData.SelectionData ->
    Word32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "selection_data"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "SelectionData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassSelectionReceivedFieldCallback :: FunPtr C_WidgetClassSelectionReceivedFieldCallback -> C_WidgetClassSelectionReceivedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassSelectionReceivedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassSelectionReceivedFieldCallback
    -> a
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> m ()
dynamic_WidgetClassSelectionReceivedFieldCallback :: FunPtr C_WidgetClassSelectionReceivedFieldCallback
-> a -> SelectionData -> Word32 -> m ()
dynamic_WidgetClassSelectionReceivedFieldCallback __funPtr :: FunPtr C_WidgetClassSelectionReceivedFieldCallback
__funPtr widget :: a
widget selectionData :: SelectionData
selectionData time_ :: Word32
time_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr SelectionData
selectionData' <- SelectionData -> IO (Ptr SelectionData)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SelectionData
selectionData
    (FunPtr C_WidgetClassSelectionReceivedFieldCallback
-> C_WidgetClassSelectionReceivedFieldCallback
__dynamic_C_WidgetClassSelectionReceivedFieldCallback FunPtr C_WidgetClassSelectionReceivedFieldCallback
__funPtr) Ptr Widget
widget' Ptr SelectionData
selectionData' Word32
time_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    SelectionData -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SelectionData
selectionData
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassSelectionReceivedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassSelectionReceivedFieldCallback :: C_WidgetClassSelectionReceivedFieldCallback -> IO (FunPtr C_WidgetClassSelectionReceivedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassSelectionReceivedFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassSelectionReceivedFieldCallback`@.
noWidgetClassSelectionReceivedFieldCallback :: Maybe WidgetClassSelectionReceivedFieldCallback
noWidgetClassSelectionReceivedFieldCallback :: Maybe WidgetClassSelectionReceivedFieldCallback
noWidgetClassSelectionReceivedFieldCallback = Maybe WidgetClassSelectionReceivedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassSelectionReceivedFieldCallback :: MonadIO m => WidgetClassSelectionReceivedFieldCallback -> m (GClosure C_WidgetClassSelectionReceivedFieldCallback)
genClosure_WidgetClassSelectionReceivedFieldCallback :: WidgetClassSelectionReceivedFieldCallback
-> m (GClosure C_WidgetClassSelectionReceivedFieldCallback)
genClosure_WidgetClassSelectionReceivedFieldCallback cb :: WidgetClassSelectionReceivedFieldCallback
cb = IO (GClosure C_WidgetClassSelectionReceivedFieldCallback)
-> m (GClosure C_WidgetClassSelectionReceivedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassSelectionReceivedFieldCallback)
 -> m (GClosure C_WidgetClassSelectionReceivedFieldCallback))
-> IO (GClosure C_WidgetClassSelectionReceivedFieldCallback)
-> m (GClosure C_WidgetClassSelectionReceivedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassSelectionReceivedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback))
-> WidgetClassSelectionReceivedFieldCallback
-> C_WidgetClassSelectionReceivedFieldCallback
wrap_WidgetClassSelectionReceivedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback))
forall a. Maybe a
Nothing WidgetClassSelectionReceivedFieldCallback
cb
    C_WidgetClassSelectionReceivedFieldCallback
-> IO (FunPtr C_WidgetClassSelectionReceivedFieldCallback)
mk_WidgetClassSelectionReceivedFieldCallback C_WidgetClassSelectionReceivedFieldCallback
cb' IO (FunPtr C_WidgetClassSelectionReceivedFieldCallback)
-> (FunPtr C_WidgetClassSelectionReceivedFieldCallback
    -> IO (GClosure C_WidgetClassSelectionReceivedFieldCallback))
-> IO (GClosure C_WidgetClassSelectionReceivedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassSelectionReceivedFieldCallback
-> IO (GClosure C_WidgetClassSelectionReceivedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassSelectionReceivedFieldCallback` into a `C_WidgetClassSelectionReceivedFieldCallback`.
wrap_WidgetClassSelectionReceivedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback)) ->
    WidgetClassSelectionReceivedFieldCallback ->
    C_WidgetClassSelectionReceivedFieldCallback
wrap_WidgetClassSelectionReceivedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback))
-> WidgetClassSelectionReceivedFieldCallback
-> C_WidgetClassSelectionReceivedFieldCallback
wrap_WidgetClassSelectionReceivedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback))
funptrptr _cb :: WidgetClassSelectionReceivedFieldCallback
_cb widget :: Ptr Widget
widget selectionData :: Ptr SelectionData
selectionData time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (ManagedPtr SelectionData -> SelectionData)
-> Ptr SelectionData -> (SelectionData -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr SelectionData -> SelectionData
Gtk.SelectionData.SelectionData Ptr SelectionData
selectionData ((SelectionData -> IO ()) -> IO ())
-> (SelectionData -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \selectionData' :: SelectionData
selectionData' -> do
        WidgetClassSelectionReceivedFieldCallback
_cb  Widget
widget' SelectionData
selectionData' Word32
time_
        Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassSelectionReceivedFieldCallback))
funptrptr


-- callback WidgetClassSelectionNotifyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventSelection"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSelectionNotifyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventSelection.EventSelection ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventSelection" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassSelectionNotifyEventFieldCallback :: FunPtr C_WidgetClassSelectionNotifyEventFieldCallback -> C_WidgetClassSelectionNotifyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassSelectionNotifyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassSelectionNotifyEventFieldCallback
    -> a
    -> Gdk.EventSelection.EventSelection
    -> m Bool
dynamic_WidgetClassSelectionNotifyEventFieldCallback :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> a -> EventSelection -> m Bool
dynamic_WidgetClassSelectionNotifyEventFieldCallback __funPtr :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback
__funPtr widget :: a
widget event :: EventSelection
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventSelection
event' <- EventSelection -> IO (Ptr EventSelection)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventSelection
event
    CInt
result <- (FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
__dynamic_C_WidgetClassSelectionNotifyEventFieldCallback FunPtr C_WidgetClassSelectionRequestEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventSelection
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventSelection -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventSelection
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassSelectionNotifyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassSelectionNotifyEventFieldCallback :: C_WidgetClassSelectionNotifyEventFieldCallback -> IO (FunPtr C_WidgetClassSelectionNotifyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassSelectionNotifyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventSelection.EventSelection
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassSelectionNotifyEventFieldCallback`@.
noWidgetClassSelectionNotifyEventFieldCallback :: Maybe WidgetClassSelectionNotifyEventFieldCallback
noWidgetClassSelectionNotifyEventFieldCallback :: Maybe WidgetClassSelectionRequestEventFieldCallback
noWidgetClassSelectionNotifyEventFieldCallback = Maybe WidgetClassSelectionRequestEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassSelectionNotifyEventFieldCallback :: MonadIO m => WidgetClassSelectionNotifyEventFieldCallback -> m (GClosure C_WidgetClassSelectionNotifyEventFieldCallback)
genClosure_WidgetClassSelectionNotifyEventFieldCallback :: WidgetClassSelectionRequestEventFieldCallback
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
genClosure_WidgetClassSelectionNotifyEventFieldCallback cb :: WidgetClassSelectionRequestEventFieldCallback
cb = IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
 -> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback))
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassSelectionRequestEventFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionNotifyEventFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassSelectionRequestEventFieldCallback
cb
    C_WidgetClassSelectionRequestEventFieldCallback
-> IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)
mk_WidgetClassSelectionNotifyEventFieldCallback C_WidgetClassSelectionRequestEventFieldCallback
cb' IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)
-> (FunPtr C_WidgetClassSelectionRequestEventFieldCallback
    -> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback))
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassSelectionNotifyEventFieldCallback` into a `C_WidgetClassSelectionNotifyEventFieldCallback`.
wrap_WidgetClassSelectionNotifyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassSelectionNotifyEventFieldCallback)) ->
    WidgetClassSelectionNotifyEventFieldCallback ->
    C_WidgetClassSelectionNotifyEventFieldCallback
wrap_WidgetClassSelectionNotifyEventFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionNotifyEventFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
funptrptr _cb :: WidgetClassSelectionRequestEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventSelection
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventSelection
event' <- ((ManagedPtr EventSelection -> EventSelection)
-> Ptr EventSelection -> IO EventSelection
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventSelection -> EventSelection
Gdk.EventSelection.EventSelection) Ptr EventSelection
event
    Bool
result <- WidgetClassSelectionRequestEventFieldCallback
_cb  Widget
widget' EventSelection
event'
    Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassSelectionGetFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_data", argType = TInterface (Name {namespace = "Gtk", name = "SelectionData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSelectionGetFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gtk.SelectionData.SelectionData ->
    Word32 ->
    Word32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "selection_data"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "SelectionData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "info"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassSelectionGetFieldCallback :: FunPtr C_WidgetClassSelectionGetFieldCallback -> C_WidgetClassSelectionGetFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassSelectionGetFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassSelectionGetFieldCallback
    -> a
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> Word32
    -> m ()
dynamic_WidgetClassSelectionGetFieldCallback :: FunPtr C_WidgetClassSelectionGetFieldCallback
-> a -> SelectionData -> Word32 -> Word32 -> m ()
dynamic_WidgetClassSelectionGetFieldCallback __funPtr :: FunPtr C_WidgetClassSelectionGetFieldCallback
__funPtr widget :: a
widget selectionData :: SelectionData
selectionData info :: Word32
info time_ :: Word32
time_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr SelectionData
selectionData' <- SelectionData -> IO (Ptr SelectionData)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SelectionData
selectionData
    (FunPtr C_WidgetClassSelectionGetFieldCallback
-> C_WidgetClassSelectionGetFieldCallback
__dynamic_C_WidgetClassSelectionGetFieldCallback FunPtr C_WidgetClassSelectionGetFieldCallback
__funPtr) Ptr Widget
widget' Ptr SelectionData
selectionData' Word32
info Word32
time_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    SelectionData -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SelectionData
selectionData
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassSelectionGetFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassSelectionGetFieldCallback :: C_WidgetClassSelectionGetFieldCallback -> IO (FunPtr C_WidgetClassSelectionGetFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassSelectionGetFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> Word32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassSelectionGetFieldCallback`@.
noWidgetClassSelectionGetFieldCallback :: Maybe WidgetClassSelectionGetFieldCallback
noWidgetClassSelectionGetFieldCallback :: Maybe WidgetClassSelectionGetFieldCallback
noWidgetClassSelectionGetFieldCallback = Maybe WidgetClassSelectionGetFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassSelectionGetFieldCallback :: MonadIO m => WidgetClassSelectionGetFieldCallback -> m (GClosure C_WidgetClassSelectionGetFieldCallback)
genClosure_WidgetClassSelectionGetFieldCallback :: WidgetClassSelectionGetFieldCallback
-> m (GClosure C_WidgetClassSelectionGetFieldCallback)
genClosure_WidgetClassSelectionGetFieldCallback cb :: WidgetClassSelectionGetFieldCallback
cb = IO (GClosure C_WidgetClassSelectionGetFieldCallback)
-> m (GClosure C_WidgetClassSelectionGetFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassSelectionGetFieldCallback)
 -> m (GClosure C_WidgetClassSelectionGetFieldCallback))
-> IO (GClosure C_WidgetClassSelectionGetFieldCallback)
-> m (GClosure C_WidgetClassSelectionGetFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassSelectionGetFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback))
-> WidgetClassSelectionGetFieldCallback
-> C_WidgetClassSelectionGetFieldCallback
wrap_WidgetClassSelectionGetFieldCallback Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback))
forall a. Maybe a
Nothing WidgetClassSelectionGetFieldCallback
cb
    C_WidgetClassSelectionGetFieldCallback
-> IO (FunPtr C_WidgetClassSelectionGetFieldCallback)
mk_WidgetClassSelectionGetFieldCallback C_WidgetClassSelectionGetFieldCallback
cb' IO (FunPtr C_WidgetClassSelectionGetFieldCallback)
-> (FunPtr C_WidgetClassSelectionGetFieldCallback
    -> IO (GClosure C_WidgetClassSelectionGetFieldCallback))
-> IO (GClosure C_WidgetClassSelectionGetFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassSelectionGetFieldCallback
-> IO (GClosure C_WidgetClassSelectionGetFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassSelectionGetFieldCallback` into a `C_WidgetClassSelectionGetFieldCallback`.
wrap_WidgetClassSelectionGetFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback)) ->
    WidgetClassSelectionGetFieldCallback ->
    C_WidgetClassSelectionGetFieldCallback
wrap_WidgetClassSelectionGetFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback))
-> WidgetClassSelectionGetFieldCallback
-> C_WidgetClassSelectionGetFieldCallback
wrap_WidgetClassSelectionGetFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback))
funptrptr _cb :: WidgetClassSelectionGetFieldCallback
_cb widget :: Ptr Widget
widget selectionData :: Ptr SelectionData
selectionData info :: Word32
info time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (ManagedPtr SelectionData -> SelectionData)
-> Ptr SelectionData -> (SelectionData -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr SelectionData -> SelectionData
Gtk.SelectionData.SelectionData Ptr SelectionData
selectionData ((SelectionData -> IO ()) -> IO ())
-> (SelectionData -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \selectionData' :: SelectionData
selectionData' -> do
        WidgetClassSelectionGetFieldCallback
_cb  Widget
widget' SelectionData
selectionData' Word32
info Word32
time_
        Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassSelectionGetFieldCallback))
funptrptr


-- callback WidgetClassSelectionClearEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventSelection"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassSelectionClearEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventSelection.EventSelection ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventSelection" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassSelectionClearEventFieldCallback :: FunPtr C_WidgetClassSelectionClearEventFieldCallback -> C_WidgetClassSelectionClearEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassSelectionClearEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassSelectionClearEventFieldCallback
    -> a
    -> Gdk.EventSelection.EventSelection
    -> m Bool
dynamic_WidgetClassSelectionClearEventFieldCallback :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> a -> EventSelection -> m Bool
dynamic_WidgetClassSelectionClearEventFieldCallback __funPtr :: FunPtr C_WidgetClassSelectionRequestEventFieldCallback
__funPtr widget :: a
widget event :: EventSelection
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventSelection
event' <- EventSelection -> IO (Ptr EventSelection)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventSelection
event
    CInt
result <- (FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
__dynamic_C_WidgetClassSelectionClearEventFieldCallback FunPtr C_WidgetClassSelectionRequestEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventSelection
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventSelection -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventSelection
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassSelectionClearEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassSelectionClearEventFieldCallback :: C_WidgetClassSelectionClearEventFieldCallback -> IO (FunPtr C_WidgetClassSelectionClearEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassSelectionClearEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventSelection.EventSelection
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassSelectionClearEventFieldCallback`@.
noWidgetClassSelectionClearEventFieldCallback :: Maybe WidgetClassSelectionClearEventFieldCallback
noWidgetClassSelectionClearEventFieldCallback :: Maybe WidgetClassSelectionRequestEventFieldCallback
noWidgetClassSelectionClearEventFieldCallback = Maybe WidgetClassSelectionRequestEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassSelectionClearEventFieldCallback :: MonadIO m => WidgetClassSelectionClearEventFieldCallback -> m (GClosure C_WidgetClassSelectionClearEventFieldCallback)
genClosure_WidgetClassSelectionClearEventFieldCallback :: WidgetClassSelectionRequestEventFieldCallback
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
genClosure_WidgetClassSelectionClearEventFieldCallback cb :: WidgetClassSelectionRequestEventFieldCallback
cb = IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
 -> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback))
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
-> m (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassSelectionRequestEventFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionClearEventFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassSelectionRequestEventFieldCallback
cb
    C_WidgetClassSelectionRequestEventFieldCallback
-> IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)
mk_WidgetClassSelectionClearEventFieldCallback C_WidgetClassSelectionRequestEventFieldCallback
cb' IO (FunPtr C_WidgetClassSelectionRequestEventFieldCallback)
-> (FunPtr C_WidgetClassSelectionRequestEventFieldCallback
    -> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback))
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassSelectionRequestEventFieldCallback
-> IO (GClosure C_WidgetClassSelectionRequestEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassSelectionClearEventFieldCallback` into a `C_WidgetClassSelectionClearEventFieldCallback`.
wrap_WidgetClassSelectionClearEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassSelectionClearEventFieldCallback)) ->
    WidgetClassSelectionClearEventFieldCallback ->
    C_WidgetClassSelectionClearEventFieldCallback
wrap_WidgetClassSelectionClearEventFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> WidgetClassSelectionRequestEventFieldCallback
-> C_WidgetClassSelectionRequestEventFieldCallback
wrap_WidgetClassSelectionClearEventFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
funptrptr _cb :: WidgetClassSelectionRequestEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventSelection
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventSelection
event' <- ((ManagedPtr EventSelection -> EventSelection)
-> Ptr EventSelection -> IO EventSelection
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventSelection -> EventSelection
Gdk.EventSelection.EventSelection) Ptr EventSelection
event
    Bool
result <- WidgetClassSelectionRequestEventFieldCallback
_cb  Widget
widget' EventSelection
event'
    Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassSelectionRequestEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassScrollEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventScroll"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassScrollEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventScroll.EventScroll ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventScroll" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassScrollEventFieldCallback :: FunPtr C_WidgetClassScrollEventFieldCallback -> C_WidgetClassScrollEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassScrollEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassScrollEventFieldCallback
    -> a
    -> Gdk.EventScroll.EventScroll
    -> m Bool
dynamic_WidgetClassScrollEventFieldCallback :: FunPtr C_WidgetClassScrollEventFieldCallback
-> a -> EventScroll -> m Bool
dynamic_WidgetClassScrollEventFieldCallback __funPtr :: FunPtr C_WidgetClassScrollEventFieldCallback
__funPtr widget :: a
widget event :: EventScroll
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventScroll
event' <- EventScroll -> IO (Ptr EventScroll)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventScroll
event
    CInt
result <- (FunPtr C_WidgetClassScrollEventFieldCallback
-> C_WidgetClassScrollEventFieldCallback
__dynamic_C_WidgetClassScrollEventFieldCallback FunPtr C_WidgetClassScrollEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventScroll
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventScroll -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventScroll
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassScrollEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassScrollEventFieldCallback :: C_WidgetClassScrollEventFieldCallback -> IO (FunPtr C_WidgetClassScrollEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassScrollEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventScroll.EventScroll
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassScrollEventFieldCallback`@.
noWidgetClassScrollEventFieldCallback :: Maybe WidgetClassScrollEventFieldCallback
noWidgetClassScrollEventFieldCallback :: Maybe WidgetClassScrollEventFieldCallback
noWidgetClassScrollEventFieldCallback = Maybe WidgetClassScrollEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassScrollEventFieldCallback :: MonadIO m => WidgetClassScrollEventFieldCallback -> m (GClosure C_WidgetClassScrollEventFieldCallback)
genClosure_WidgetClassScrollEventFieldCallback :: WidgetClassScrollEventFieldCallback
-> m (GClosure C_WidgetClassScrollEventFieldCallback)
genClosure_WidgetClassScrollEventFieldCallback cb :: WidgetClassScrollEventFieldCallback
cb = IO (GClosure C_WidgetClassScrollEventFieldCallback)
-> m (GClosure C_WidgetClassScrollEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassScrollEventFieldCallback)
 -> m (GClosure C_WidgetClassScrollEventFieldCallback))
-> IO (GClosure C_WidgetClassScrollEventFieldCallback)
-> m (GClosure C_WidgetClassScrollEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassScrollEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback))
-> WidgetClassScrollEventFieldCallback
-> C_WidgetClassScrollEventFieldCallback
wrap_WidgetClassScrollEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassScrollEventFieldCallback
cb
    C_WidgetClassScrollEventFieldCallback
-> IO (FunPtr C_WidgetClassScrollEventFieldCallback)
mk_WidgetClassScrollEventFieldCallback C_WidgetClassScrollEventFieldCallback
cb' IO (FunPtr C_WidgetClassScrollEventFieldCallback)
-> (FunPtr C_WidgetClassScrollEventFieldCallback
    -> IO (GClosure C_WidgetClassScrollEventFieldCallback))
-> IO (GClosure C_WidgetClassScrollEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassScrollEventFieldCallback
-> IO (GClosure C_WidgetClassScrollEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassScrollEventFieldCallback` into a `C_WidgetClassScrollEventFieldCallback`.
wrap_WidgetClassScrollEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback)) ->
    WidgetClassScrollEventFieldCallback ->
    C_WidgetClassScrollEventFieldCallback
wrap_WidgetClassScrollEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback))
-> WidgetClassScrollEventFieldCallback
-> C_WidgetClassScrollEventFieldCallback
wrap_WidgetClassScrollEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback))
funptrptr _cb :: WidgetClassScrollEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventScroll
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventScroll
event' <- ((ManagedPtr EventScroll -> EventScroll)
-> Ptr EventScroll -> IO EventScroll
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventScroll -> EventScroll
Gdk.EventScroll.EventScroll) Ptr EventScroll
event
    Bool
result <- WidgetClassScrollEventFieldCallback
_cb  Widget
widget' EventScroll
event'
    Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassScrollEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassScreenChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_screen", argType = TInterface (Name {namespace = "Gdk", name = "Screen"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassScreenChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.Screen.Screen ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_screen"
--           , argType = TInterface Name { namespace = "Gdk" , name = "Screen" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassScreenChangedFieldCallback :: FunPtr C_WidgetClassScreenChangedFieldCallback -> C_WidgetClassScreenChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassScreenChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.Screen.IsScreen b) =>
    FunPtr C_WidgetClassScreenChangedFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassScreenChangedFieldCallback :: FunPtr C_WidgetClassScreenChangedFieldCallback -> a -> b -> m ()
dynamic_WidgetClassScreenChangedFieldCallback __funPtr :: FunPtr C_WidgetClassScreenChangedFieldCallback
__funPtr widget :: a
widget previousScreen :: b
previousScreen = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Screen
previousScreen' <- b -> IO (Ptr Screen)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
previousScreen
    (FunPtr C_WidgetClassScreenChangedFieldCallback
-> C_WidgetClassScreenChangedFieldCallback
__dynamic_C_WidgetClassScreenChangedFieldCallback FunPtr C_WidgetClassScreenChangedFieldCallback
__funPtr) Ptr Widget
widget' Ptr Screen
previousScreen'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
previousScreen
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassScreenChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassScreenChangedFieldCallback :: C_WidgetClassScreenChangedFieldCallback -> IO (FunPtr C_WidgetClassScreenChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassScreenChangedFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.Screen.Screen
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassScreenChangedFieldCallback`@.
noWidgetClassScreenChangedFieldCallback :: Maybe WidgetClassScreenChangedFieldCallback
noWidgetClassScreenChangedFieldCallback :: Maybe WidgetClassScreenChangedFieldCallback
noWidgetClassScreenChangedFieldCallback = Maybe WidgetClassScreenChangedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassScreenChangedFieldCallback :: MonadIO m => WidgetClassScreenChangedFieldCallback -> m (GClosure C_WidgetClassScreenChangedFieldCallback)
genClosure_WidgetClassScreenChangedFieldCallback :: WidgetClassScreenChangedFieldCallback
-> m (GClosure C_WidgetClassScreenChangedFieldCallback)
genClosure_WidgetClassScreenChangedFieldCallback cb :: WidgetClassScreenChangedFieldCallback
cb = IO (GClosure C_WidgetClassScreenChangedFieldCallback)
-> m (GClosure C_WidgetClassScreenChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassScreenChangedFieldCallback)
 -> m (GClosure C_WidgetClassScreenChangedFieldCallback))
-> IO (GClosure C_WidgetClassScreenChangedFieldCallback)
-> m (GClosure C_WidgetClassScreenChangedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassScreenChangedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback))
-> WidgetClassScreenChangedFieldCallback
-> C_WidgetClassScreenChangedFieldCallback
wrap_WidgetClassScreenChangedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback))
forall a. Maybe a
Nothing WidgetClassScreenChangedFieldCallback
cb
    C_WidgetClassScreenChangedFieldCallback
-> IO (FunPtr C_WidgetClassScreenChangedFieldCallback)
mk_WidgetClassScreenChangedFieldCallback C_WidgetClassScreenChangedFieldCallback
cb' IO (FunPtr C_WidgetClassScreenChangedFieldCallback)
-> (FunPtr C_WidgetClassScreenChangedFieldCallback
    -> IO (GClosure C_WidgetClassScreenChangedFieldCallback))
-> IO (GClosure C_WidgetClassScreenChangedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassScreenChangedFieldCallback
-> IO (GClosure C_WidgetClassScreenChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassScreenChangedFieldCallback` into a `C_WidgetClassScreenChangedFieldCallback`.
wrap_WidgetClassScreenChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback)) ->
    WidgetClassScreenChangedFieldCallback ->
    C_WidgetClassScreenChangedFieldCallback
wrap_WidgetClassScreenChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback))
-> WidgetClassScreenChangedFieldCallback
-> C_WidgetClassScreenChangedFieldCallback
wrap_WidgetClassScreenChangedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback))
funptrptr _cb :: WidgetClassScreenChangedFieldCallback
_cb widget :: Ptr Widget
widget previousScreen :: Ptr Screen
previousScreen = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Screen
previousScreen' <- ((ManagedPtr Screen -> Screen) -> Ptr Screen -> IO Screen
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Screen -> Screen
Gdk.Screen.Screen) Ptr Screen
previousScreen
    WidgetClassScreenChangedFieldCallback
_cb  Widget
widget' Screen
previousScreen'
    Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassScreenChangedFieldCallback))
funptrptr


-- callback WidgetClassRealizeFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassRealizeFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassRealizeFieldCallback :: FunPtr C_WidgetClassRealizeFieldCallback -> C_WidgetClassRealizeFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassRealizeFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassRealizeFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassRealizeFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassRealizeFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassRealizeFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassRealizeFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassRealizeFieldCallback :: C_WidgetClassRealizeFieldCallback -> IO (FunPtr C_WidgetClassRealizeFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassRealizeFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassRealizeFieldCallback`@.
noWidgetClassRealizeFieldCallback :: Maybe WidgetClassRealizeFieldCallback
noWidgetClassRealizeFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassRealizeFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassRealizeFieldCallback :: MonadIO m => WidgetClassRealizeFieldCallback -> m (GClosure C_WidgetClassRealizeFieldCallback)
genClosure_WidgetClassRealizeFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassRealizeFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassRealizeFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassRealizeFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassRealizeFieldCallback` into a `C_WidgetClassRealizeFieldCallback`.
wrap_WidgetClassRealizeFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassRealizeFieldCallback)) ->
    WidgetClassRealizeFieldCallback ->
    C_WidgetClassRealizeFieldCallback
wrap_WidgetClassRealizeFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassRealizeFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassQueueDrawRegionFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface (Name {namespace = "cairo", name = "Region"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "region to draw", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassQueueDrawRegionFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Cairo.Region.Region ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "region"
--           , argType =
--               TInterface Name { namespace = "cairo" , name = "Region" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "region to draw" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassQueueDrawRegionFieldCallback :: FunPtr C_WidgetClassQueueDrawRegionFieldCallback -> C_WidgetClassQueueDrawRegionFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassQueueDrawRegionFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassQueueDrawRegionFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Cairo.Region.Region
    -- ^ /@region@/: region to draw
    -> m ()
dynamic_WidgetClassQueueDrawRegionFieldCallback :: FunPtr C_WidgetClassQueueDrawRegionFieldCallback
-> a -> Region -> m ()
dynamic_WidgetClassQueueDrawRegionFieldCallback __funPtr :: FunPtr C_WidgetClassQueueDrawRegionFieldCallback
__funPtr widget :: a
widget region :: Region
region = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Region
region' <- Region -> IO (Ptr Region)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Region
region
    (FunPtr C_WidgetClassQueueDrawRegionFieldCallback
-> C_WidgetClassQueueDrawRegionFieldCallback
__dynamic_C_WidgetClassQueueDrawRegionFieldCallback FunPtr C_WidgetClassQueueDrawRegionFieldCallback
__funPtr) Ptr Widget
widget' Ptr Region
region'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Region -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Region
region
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassQueueDrawRegionFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassQueueDrawRegionFieldCallback :: C_WidgetClassQueueDrawRegionFieldCallback -> IO (FunPtr C_WidgetClassQueueDrawRegionFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassQueueDrawRegionFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Cairo.Region.Region
    -- ^ /@region@/: region to draw
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassQueueDrawRegionFieldCallback`@.
noWidgetClassQueueDrawRegionFieldCallback :: Maybe WidgetClassQueueDrawRegionFieldCallback
noWidgetClassQueueDrawRegionFieldCallback :: Maybe WidgetClassQueueDrawRegionFieldCallback
noWidgetClassQueueDrawRegionFieldCallback = Maybe WidgetClassQueueDrawRegionFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassQueueDrawRegionFieldCallback :: MonadIO m => WidgetClassQueueDrawRegionFieldCallback -> m (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
genClosure_WidgetClassQueueDrawRegionFieldCallback :: WidgetClassQueueDrawRegionFieldCallback
-> m (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
genClosure_WidgetClassQueueDrawRegionFieldCallback cb :: WidgetClassQueueDrawRegionFieldCallback
cb = IO (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
-> m (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
 -> m (GClosure C_WidgetClassQueueDrawRegionFieldCallback))
-> IO (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
-> m (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassQueueDrawRegionFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback))
-> WidgetClassQueueDrawRegionFieldCallback
-> C_WidgetClassQueueDrawRegionFieldCallback
wrap_WidgetClassQueueDrawRegionFieldCallback Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback))
forall a. Maybe a
Nothing WidgetClassQueueDrawRegionFieldCallback
cb
    C_WidgetClassQueueDrawRegionFieldCallback
-> IO (FunPtr C_WidgetClassQueueDrawRegionFieldCallback)
mk_WidgetClassQueueDrawRegionFieldCallback C_WidgetClassQueueDrawRegionFieldCallback
cb' IO (FunPtr C_WidgetClassQueueDrawRegionFieldCallback)
-> (FunPtr C_WidgetClassQueueDrawRegionFieldCallback
    -> IO (GClosure C_WidgetClassQueueDrawRegionFieldCallback))
-> IO (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassQueueDrawRegionFieldCallback
-> IO (GClosure C_WidgetClassQueueDrawRegionFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassQueueDrawRegionFieldCallback` into a `C_WidgetClassQueueDrawRegionFieldCallback`.
wrap_WidgetClassQueueDrawRegionFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback)) ->
    WidgetClassQueueDrawRegionFieldCallback ->
    C_WidgetClassQueueDrawRegionFieldCallback
wrap_WidgetClassQueueDrawRegionFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback))
-> WidgetClassQueueDrawRegionFieldCallback
-> C_WidgetClassQueueDrawRegionFieldCallback
wrap_WidgetClassQueueDrawRegionFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback))
funptrptr _cb :: WidgetClassQueueDrawRegionFieldCallback
_cb widget :: Ptr Widget
widget region :: Ptr Region
region = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (ManagedPtr Region -> Region)
-> Ptr Region -> (Region -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr Region -> Region
Cairo.Region.Region Ptr Region
region ((Region -> IO ()) -> IO ()) -> (Region -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \region' :: Region
region' -> do
        WidgetClassQueueDrawRegionFieldCallback
_cb  Widget
widget' Region
region'
        Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassQueueDrawRegionFieldCallback))
funptrptr


-- callback WidgetClassQueryTooltipFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyboard_tooltip", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tooltip", argType = TInterface (Name {namespace = "Gtk", name = "Tooltip"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassQueryTooltipFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Int32 ->
    Int32 ->
    CInt ->
    Ptr Gtk.Tooltip.Tooltip ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "keyboard_tooltip"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "tooltip"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Tooltip" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassQueryTooltipFieldCallback :: FunPtr C_WidgetClassQueryTooltipFieldCallback -> C_WidgetClassQueryTooltipFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassQueryTooltipFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gtk.Tooltip.IsTooltip b) =>
    FunPtr C_WidgetClassQueryTooltipFieldCallback
    -> a
    -> Int32
    -> Int32
    -> Bool
    -> b
    -> m Bool
dynamic_WidgetClassQueryTooltipFieldCallback :: FunPtr C_WidgetClassQueryTooltipFieldCallback
-> a -> Int32 -> Int32 -> Bool -> b -> m Bool
dynamic_WidgetClassQueryTooltipFieldCallback __funPtr :: FunPtr C_WidgetClassQueryTooltipFieldCallback
__funPtr widget :: a
widget x :: Int32
x y :: Int32
y keyboardTooltip :: Bool
keyboardTooltip tooltip :: b
tooltip = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let keyboardTooltip' :: CInt
keyboardTooltip' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
keyboardTooltip
    Ptr Tooltip
tooltip' <- b -> IO (Ptr Tooltip)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
tooltip
    CInt
result <- (FunPtr C_WidgetClassQueryTooltipFieldCallback
-> C_WidgetClassQueryTooltipFieldCallback
__dynamic_C_WidgetClassQueryTooltipFieldCallback FunPtr C_WidgetClassQueryTooltipFieldCallback
__funPtr) Ptr Widget
widget' Int32
x Int32
y CInt
keyboardTooltip' Ptr Tooltip
tooltip'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
tooltip
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassQueryTooltipFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassQueryTooltipFieldCallback :: C_WidgetClassQueryTooltipFieldCallback -> IO (FunPtr C_WidgetClassQueryTooltipFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassQueryTooltipFieldCallback =
    Gtk.Widget.Widget
    -> Int32
    -> Int32
    -> Bool
    -> Gtk.Tooltip.Tooltip
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassQueryTooltipFieldCallback`@.
noWidgetClassQueryTooltipFieldCallback :: Maybe WidgetClassQueryTooltipFieldCallback
noWidgetClassQueryTooltipFieldCallback :: Maybe WidgetClassQueryTooltipFieldCallback
noWidgetClassQueryTooltipFieldCallback = Maybe WidgetClassQueryTooltipFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassQueryTooltipFieldCallback :: MonadIO m => WidgetClassQueryTooltipFieldCallback -> m (GClosure C_WidgetClassQueryTooltipFieldCallback)
genClosure_WidgetClassQueryTooltipFieldCallback :: WidgetClassQueryTooltipFieldCallback
-> m (GClosure C_WidgetClassQueryTooltipFieldCallback)
genClosure_WidgetClassQueryTooltipFieldCallback cb :: WidgetClassQueryTooltipFieldCallback
cb = IO (GClosure C_WidgetClassQueryTooltipFieldCallback)
-> m (GClosure C_WidgetClassQueryTooltipFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassQueryTooltipFieldCallback)
 -> m (GClosure C_WidgetClassQueryTooltipFieldCallback))
-> IO (GClosure C_WidgetClassQueryTooltipFieldCallback)
-> m (GClosure C_WidgetClassQueryTooltipFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassQueryTooltipFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback))
-> WidgetClassQueryTooltipFieldCallback
-> C_WidgetClassQueryTooltipFieldCallback
wrap_WidgetClassQueryTooltipFieldCallback Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback))
forall a. Maybe a
Nothing WidgetClassQueryTooltipFieldCallback
cb
    C_WidgetClassQueryTooltipFieldCallback
-> IO (FunPtr C_WidgetClassQueryTooltipFieldCallback)
mk_WidgetClassQueryTooltipFieldCallback C_WidgetClassQueryTooltipFieldCallback
cb' IO (FunPtr C_WidgetClassQueryTooltipFieldCallback)
-> (FunPtr C_WidgetClassQueryTooltipFieldCallback
    -> IO (GClosure C_WidgetClassQueryTooltipFieldCallback))
-> IO (GClosure C_WidgetClassQueryTooltipFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassQueryTooltipFieldCallback
-> IO (GClosure C_WidgetClassQueryTooltipFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassQueryTooltipFieldCallback` into a `C_WidgetClassQueryTooltipFieldCallback`.
wrap_WidgetClassQueryTooltipFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback)) ->
    WidgetClassQueryTooltipFieldCallback ->
    C_WidgetClassQueryTooltipFieldCallback
wrap_WidgetClassQueryTooltipFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback))
-> WidgetClassQueryTooltipFieldCallback
-> C_WidgetClassQueryTooltipFieldCallback
wrap_WidgetClassQueryTooltipFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback))
funptrptr _cb :: WidgetClassQueryTooltipFieldCallback
_cb widget :: Ptr Widget
widget x :: Int32
x y :: Int32
y keyboardTooltip :: CInt
keyboardTooltip tooltip :: Ptr Tooltip
tooltip = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let keyboardTooltip' :: Bool
keyboardTooltip' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
keyboardTooltip
    Tooltip
tooltip' <- ((ManagedPtr Tooltip -> Tooltip) -> Ptr Tooltip -> IO Tooltip
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Tooltip -> Tooltip
Gtk.Tooltip.Tooltip) Ptr Tooltip
tooltip
    Bool
result <- WidgetClassQueryTooltipFieldCallback
_cb  Widget
widget' Int32
x Int32
y Bool
keyboardTooltip' Tooltip
tooltip'
    Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassQueryTooltipFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassProximityOutEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventProximity"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassProximityOutEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventProximity.EventProximity ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventProximity" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassProximityOutEventFieldCallback :: FunPtr C_WidgetClassProximityOutEventFieldCallback -> C_WidgetClassProximityOutEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassProximityOutEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassProximityOutEventFieldCallback
    -> a
    -> Gdk.EventProximity.EventProximity
    -> m Bool
dynamic_WidgetClassProximityOutEventFieldCallback :: FunPtr C_WidgetClassProximityOutEventFieldCallback
-> a -> EventProximity -> m Bool
dynamic_WidgetClassProximityOutEventFieldCallback __funPtr :: FunPtr C_WidgetClassProximityOutEventFieldCallback
__funPtr widget :: a
widget event :: EventProximity
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventProximity
event' <- EventProximity -> IO (Ptr EventProximity)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventProximity
event
    CInt
result <- (FunPtr C_WidgetClassProximityOutEventFieldCallback
-> C_WidgetClassProximityOutEventFieldCallback
__dynamic_C_WidgetClassProximityOutEventFieldCallback FunPtr C_WidgetClassProximityOutEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventProximity
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventProximity -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventProximity
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassProximityOutEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassProximityOutEventFieldCallback :: C_WidgetClassProximityOutEventFieldCallback -> IO (FunPtr C_WidgetClassProximityOutEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassProximityOutEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventProximity.EventProximity
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassProximityOutEventFieldCallback`@.
noWidgetClassProximityOutEventFieldCallback :: Maybe WidgetClassProximityOutEventFieldCallback
noWidgetClassProximityOutEventFieldCallback :: Maybe WidgetClassProximityOutEventFieldCallback
noWidgetClassProximityOutEventFieldCallback = Maybe WidgetClassProximityOutEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassProximityOutEventFieldCallback :: MonadIO m => WidgetClassProximityOutEventFieldCallback -> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
genClosure_WidgetClassProximityOutEventFieldCallback :: WidgetClassProximityOutEventFieldCallback
-> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
genClosure_WidgetClassProximityOutEventFieldCallback cb :: WidgetClassProximityOutEventFieldCallback
cb = IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
-> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
 -> m (GClosure C_WidgetClassProximityOutEventFieldCallback))
-> IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
-> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassProximityOutEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
-> WidgetClassProximityOutEventFieldCallback
-> C_WidgetClassProximityOutEventFieldCallback
wrap_WidgetClassProximityOutEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassProximityOutEventFieldCallback
cb
    C_WidgetClassProximityOutEventFieldCallback
-> IO (FunPtr C_WidgetClassProximityOutEventFieldCallback)
mk_WidgetClassProximityOutEventFieldCallback C_WidgetClassProximityOutEventFieldCallback
cb' IO (FunPtr C_WidgetClassProximityOutEventFieldCallback)
-> (FunPtr C_WidgetClassProximityOutEventFieldCallback
    -> IO (GClosure C_WidgetClassProximityOutEventFieldCallback))
-> IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassProximityOutEventFieldCallback
-> IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassProximityOutEventFieldCallback` into a `C_WidgetClassProximityOutEventFieldCallback`.
wrap_WidgetClassProximityOutEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback)) ->
    WidgetClassProximityOutEventFieldCallback ->
    C_WidgetClassProximityOutEventFieldCallback
wrap_WidgetClassProximityOutEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
-> WidgetClassProximityOutEventFieldCallback
-> C_WidgetClassProximityOutEventFieldCallback
wrap_WidgetClassProximityOutEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
funptrptr _cb :: WidgetClassProximityOutEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventProximity
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventProximity
event' <- ((ManagedPtr EventProximity -> EventProximity)
-> Ptr EventProximity -> IO EventProximity
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventProximity -> EventProximity
Gdk.EventProximity.EventProximity) Ptr EventProximity
event
    Bool
result <- WidgetClassProximityOutEventFieldCallback
_cb  Widget
widget' EventProximity
event'
    Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassProximityInEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventProximity"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassProximityInEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventProximity.EventProximity ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventProximity" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassProximityInEventFieldCallback :: FunPtr C_WidgetClassProximityInEventFieldCallback -> C_WidgetClassProximityInEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassProximityInEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassProximityInEventFieldCallback
    -> a
    -> Gdk.EventProximity.EventProximity
    -> m Bool
dynamic_WidgetClassProximityInEventFieldCallback :: FunPtr C_WidgetClassProximityOutEventFieldCallback
-> a -> EventProximity -> m Bool
dynamic_WidgetClassProximityInEventFieldCallback __funPtr :: FunPtr C_WidgetClassProximityOutEventFieldCallback
__funPtr widget :: a
widget event :: EventProximity
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventProximity
event' <- EventProximity -> IO (Ptr EventProximity)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventProximity
event
    CInt
result <- (FunPtr C_WidgetClassProximityOutEventFieldCallback
-> C_WidgetClassProximityOutEventFieldCallback
__dynamic_C_WidgetClassProximityInEventFieldCallback FunPtr C_WidgetClassProximityOutEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventProximity
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventProximity -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventProximity
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassProximityInEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassProximityInEventFieldCallback :: C_WidgetClassProximityInEventFieldCallback -> IO (FunPtr C_WidgetClassProximityInEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassProximityInEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventProximity.EventProximity
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassProximityInEventFieldCallback`@.
noWidgetClassProximityInEventFieldCallback :: Maybe WidgetClassProximityInEventFieldCallback
noWidgetClassProximityInEventFieldCallback :: Maybe WidgetClassProximityOutEventFieldCallback
noWidgetClassProximityInEventFieldCallback = Maybe WidgetClassProximityOutEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassProximityInEventFieldCallback :: MonadIO m => WidgetClassProximityInEventFieldCallback -> m (GClosure C_WidgetClassProximityInEventFieldCallback)
genClosure_WidgetClassProximityInEventFieldCallback :: WidgetClassProximityOutEventFieldCallback
-> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
genClosure_WidgetClassProximityInEventFieldCallback cb :: WidgetClassProximityOutEventFieldCallback
cb = IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
-> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
 -> m (GClosure C_WidgetClassProximityOutEventFieldCallback))
-> IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
-> m (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassProximityOutEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
-> WidgetClassProximityOutEventFieldCallback
-> C_WidgetClassProximityOutEventFieldCallback
wrap_WidgetClassProximityInEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassProximityOutEventFieldCallback
cb
    C_WidgetClassProximityOutEventFieldCallback
-> IO (FunPtr C_WidgetClassProximityOutEventFieldCallback)
mk_WidgetClassProximityInEventFieldCallback C_WidgetClassProximityOutEventFieldCallback
cb' IO (FunPtr C_WidgetClassProximityOutEventFieldCallback)
-> (FunPtr C_WidgetClassProximityOutEventFieldCallback
    -> IO (GClosure C_WidgetClassProximityOutEventFieldCallback))
-> IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassProximityOutEventFieldCallback
-> IO (GClosure C_WidgetClassProximityOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassProximityInEventFieldCallback` into a `C_WidgetClassProximityInEventFieldCallback`.
wrap_WidgetClassProximityInEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassProximityInEventFieldCallback)) ->
    WidgetClassProximityInEventFieldCallback ->
    C_WidgetClassProximityInEventFieldCallback
wrap_WidgetClassProximityInEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
-> WidgetClassProximityOutEventFieldCallback
-> C_WidgetClassProximityOutEventFieldCallback
wrap_WidgetClassProximityInEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
funptrptr _cb :: WidgetClassProximityOutEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventProximity
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventProximity
event' <- ((ManagedPtr EventProximity -> EventProximity)
-> Ptr EventProximity -> IO EventProximity
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventProximity -> EventProximity
Gdk.EventProximity.EventProximity) Ptr EventProximity
event
    Bool
result <- WidgetClassProximityOutEventFieldCallback
_cb  Widget
widget' EventProximity
event'
    Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassProximityOutEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassPropertyNotifyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventProperty"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassPropertyNotifyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventProperty.EventProperty ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventProperty" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassPropertyNotifyEventFieldCallback :: FunPtr C_WidgetClassPropertyNotifyEventFieldCallback -> C_WidgetClassPropertyNotifyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassPropertyNotifyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
    -> a
    -> Gdk.EventProperty.EventProperty
    -> m Bool
dynamic_WidgetClassPropertyNotifyEventFieldCallback :: FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
-> a -> EventProperty -> m Bool
dynamic_WidgetClassPropertyNotifyEventFieldCallback __funPtr :: FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
__funPtr widget :: a
widget event :: EventProperty
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventProperty
event' <- EventProperty -> IO (Ptr EventProperty)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventProperty
event
    CInt
result <- (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
-> C_WidgetClassPropertyNotifyEventFieldCallback
__dynamic_C_WidgetClassPropertyNotifyEventFieldCallback FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventProperty
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventProperty -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventProperty
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassPropertyNotifyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassPropertyNotifyEventFieldCallback :: C_WidgetClassPropertyNotifyEventFieldCallback -> IO (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassPropertyNotifyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventProperty.EventProperty
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassPropertyNotifyEventFieldCallback`@.
noWidgetClassPropertyNotifyEventFieldCallback :: Maybe WidgetClassPropertyNotifyEventFieldCallback
noWidgetClassPropertyNotifyEventFieldCallback :: Maybe WidgetClassPropertyNotifyEventFieldCallback
noWidgetClassPropertyNotifyEventFieldCallback = Maybe WidgetClassPropertyNotifyEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassPropertyNotifyEventFieldCallback :: MonadIO m => WidgetClassPropertyNotifyEventFieldCallback -> m (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
genClosure_WidgetClassPropertyNotifyEventFieldCallback :: WidgetClassPropertyNotifyEventFieldCallback
-> m (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
genClosure_WidgetClassPropertyNotifyEventFieldCallback cb :: WidgetClassPropertyNotifyEventFieldCallback
cb = IO (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
 -> m (GClosure C_WidgetClassPropertyNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassPropertyNotifyEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback))
-> WidgetClassPropertyNotifyEventFieldCallback
-> C_WidgetClassPropertyNotifyEventFieldCallback
wrap_WidgetClassPropertyNotifyEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassPropertyNotifyEventFieldCallback
cb
    C_WidgetClassPropertyNotifyEventFieldCallback
-> IO (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback)
mk_WidgetClassPropertyNotifyEventFieldCallback C_WidgetClassPropertyNotifyEventFieldCallback
cb' IO (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback)
-> (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
    -> IO (GClosure C_WidgetClassPropertyNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassPropertyNotifyEventFieldCallback
-> IO (GClosure C_WidgetClassPropertyNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassPropertyNotifyEventFieldCallback` into a `C_WidgetClassPropertyNotifyEventFieldCallback`.
wrap_WidgetClassPropertyNotifyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback)) ->
    WidgetClassPropertyNotifyEventFieldCallback ->
    C_WidgetClassPropertyNotifyEventFieldCallback
wrap_WidgetClassPropertyNotifyEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback))
-> WidgetClassPropertyNotifyEventFieldCallback
-> C_WidgetClassPropertyNotifyEventFieldCallback
wrap_WidgetClassPropertyNotifyEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback))
funptrptr _cb :: WidgetClassPropertyNotifyEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventProperty
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventProperty
event' <- ((ManagedPtr EventProperty -> EventProperty)
-> Ptr EventProperty -> IO EventProperty
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventProperty -> EventProperty
Gdk.EventProperty.EventProperty) Ptr EventProperty
event
    Bool
result <- WidgetClassPropertyNotifyEventFieldCallback
_cb  Widget
widget' EventProperty
event'
    Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassPropertyNotifyEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassPopupMenuFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassPopupMenuFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassPopupMenuFieldCallback :: FunPtr C_WidgetClassPopupMenuFieldCallback -> C_WidgetClassPopupMenuFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassPopupMenuFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassPopupMenuFieldCallback
    -> a
    -> m Bool
dynamic_WidgetClassPopupMenuFieldCallback :: FunPtr C_WidgetClassPopupMenuFieldCallback -> a -> m Bool
dynamic_WidgetClassPopupMenuFieldCallback __funPtr :: FunPtr C_WidgetClassPopupMenuFieldCallback
__funPtr widget :: a
widget = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    CInt
result <- (FunPtr C_WidgetClassPopupMenuFieldCallback
-> C_WidgetClassPopupMenuFieldCallback
__dynamic_C_WidgetClassPopupMenuFieldCallback FunPtr C_WidgetClassPopupMenuFieldCallback
__funPtr) Ptr Widget
widget'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassPopupMenuFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassPopupMenuFieldCallback :: C_WidgetClassPopupMenuFieldCallback -> IO (FunPtr C_WidgetClassPopupMenuFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassPopupMenuFieldCallback =
    Gtk.Widget.Widget
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassPopupMenuFieldCallback`@.
noWidgetClassPopupMenuFieldCallback :: Maybe WidgetClassPopupMenuFieldCallback
noWidgetClassPopupMenuFieldCallback :: Maybe WidgetClassPopupMenuFieldCallback
noWidgetClassPopupMenuFieldCallback = Maybe WidgetClassPopupMenuFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassPopupMenuFieldCallback :: MonadIO m => WidgetClassPopupMenuFieldCallback -> m (GClosure C_WidgetClassPopupMenuFieldCallback)
genClosure_WidgetClassPopupMenuFieldCallback :: WidgetClassPopupMenuFieldCallback
-> m (GClosure C_WidgetClassPopupMenuFieldCallback)
genClosure_WidgetClassPopupMenuFieldCallback cb :: WidgetClassPopupMenuFieldCallback
cb = IO (GClosure C_WidgetClassPopupMenuFieldCallback)
-> m (GClosure C_WidgetClassPopupMenuFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassPopupMenuFieldCallback)
 -> m (GClosure C_WidgetClassPopupMenuFieldCallback))
-> IO (GClosure C_WidgetClassPopupMenuFieldCallback)
-> m (GClosure C_WidgetClassPopupMenuFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassPopupMenuFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback))
-> WidgetClassPopupMenuFieldCallback
-> C_WidgetClassPopupMenuFieldCallback
wrap_WidgetClassPopupMenuFieldCallback Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback))
forall a. Maybe a
Nothing WidgetClassPopupMenuFieldCallback
cb
    C_WidgetClassPopupMenuFieldCallback
-> IO (FunPtr C_WidgetClassPopupMenuFieldCallback)
mk_WidgetClassPopupMenuFieldCallback C_WidgetClassPopupMenuFieldCallback
cb' IO (FunPtr C_WidgetClassPopupMenuFieldCallback)
-> (FunPtr C_WidgetClassPopupMenuFieldCallback
    -> IO (GClosure C_WidgetClassPopupMenuFieldCallback))
-> IO (GClosure C_WidgetClassPopupMenuFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassPopupMenuFieldCallback
-> IO (GClosure C_WidgetClassPopupMenuFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassPopupMenuFieldCallback` into a `C_WidgetClassPopupMenuFieldCallback`.
wrap_WidgetClassPopupMenuFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback)) ->
    WidgetClassPopupMenuFieldCallback ->
    C_WidgetClassPopupMenuFieldCallback
wrap_WidgetClassPopupMenuFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback))
-> WidgetClassPopupMenuFieldCallback
-> C_WidgetClassPopupMenuFieldCallback
wrap_WidgetClassPopupMenuFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback))
funptrptr _cb :: WidgetClassPopupMenuFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Bool
result <- WidgetClassPopupMenuFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassPopupMenuFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassParentSetFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_parent", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassParentSetFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_parent"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassParentSetFieldCallback :: FunPtr C_WidgetClassParentSetFieldCallback -> C_WidgetClassParentSetFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassParentSetFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gtk.Widget.IsWidget b) =>
    FunPtr C_WidgetClassParentSetFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassParentSetFieldCallback :: FunPtr C_WidgetClassParentSetFieldCallback -> a -> b -> m ()
dynamic_WidgetClassParentSetFieldCallback __funPtr :: FunPtr C_WidgetClassParentSetFieldCallback
__funPtr widget :: a
widget previousParent :: b
previousParent = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Widget
previousParent' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
previousParent
    (FunPtr C_WidgetClassParentSetFieldCallback
-> C_WidgetClassParentSetFieldCallback
__dynamic_C_WidgetClassParentSetFieldCallback FunPtr C_WidgetClassParentSetFieldCallback
__funPtr) Ptr Widget
widget' Ptr Widget
previousParent'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
previousParent
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassParentSetFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassParentSetFieldCallback :: C_WidgetClassParentSetFieldCallback -> IO (FunPtr C_WidgetClassParentSetFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassParentSetFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Widget.Widget
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassParentSetFieldCallback`@.
noWidgetClassParentSetFieldCallback :: Maybe WidgetClassParentSetFieldCallback
noWidgetClassParentSetFieldCallback :: Maybe WidgetClassParentSetFieldCallback
noWidgetClassParentSetFieldCallback = Maybe WidgetClassParentSetFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassParentSetFieldCallback :: MonadIO m => WidgetClassParentSetFieldCallback -> m (GClosure C_WidgetClassParentSetFieldCallback)
genClosure_WidgetClassParentSetFieldCallback :: WidgetClassParentSetFieldCallback
-> m (GClosure C_WidgetClassParentSetFieldCallback)
genClosure_WidgetClassParentSetFieldCallback cb :: WidgetClassParentSetFieldCallback
cb = IO (GClosure C_WidgetClassParentSetFieldCallback)
-> m (GClosure C_WidgetClassParentSetFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassParentSetFieldCallback)
 -> m (GClosure C_WidgetClassParentSetFieldCallback))
-> IO (GClosure C_WidgetClassParentSetFieldCallback)
-> m (GClosure C_WidgetClassParentSetFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassParentSetFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
-> WidgetClassParentSetFieldCallback
-> C_WidgetClassParentSetFieldCallback
wrap_WidgetClassParentSetFieldCallback Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
forall a. Maybe a
Nothing WidgetClassParentSetFieldCallback
cb
    C_WidgetClassParentSetFieldCallback
-> IO (FunPtr C_WidgetClassParentSetFieldCallback)
mk_WidgetClassParentSetFieldCallback C_WidgetClassParentSetFieldCallback
cb' IO (FunPtr C_WidgetClassParentSetFieldCallback)
-> (FunPtr C_WidgetClassParentSetFieldCallback
    -> IO (GClosure C_WidgetClassParentSetFieldCallback))
-> IO (GClosure C_WidgetClassParentSetFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassParentSetFieldCallback
-> IO (GClosure C_WidgetClassParentSetFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassParentSetFieldCallback` into a `C_WidgetClassParentSetFieldCallback`.
wrap_WidgetClassParentSetFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback)) ->
    WidgetClassParentSetFieldCallback ->
    C_WidgetClassParentSetFieldCallback
wrap_WidgetClassParentSetFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
-> WidgetClassParentSetFieldCallback
-> C_WidgetClassParentSetFieldCallback
wrap_WidgetClassParentSetFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
funptrptr _cb :: WidgetClassParentSetFieldCallback
_cb widget :: Ptr Widget
widget previousParent :: Ptr Widget
previousParent = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Widget
previousParent' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
previousParent
    WidgetClassParentSetFieldCallback
_cb  Widget
widget' Widget
previousParent'
    Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
funptrptr


-- callback WidgetClassMoveFocusFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "direction", argType = TInterface (Name {namespace = "Gtk", name = "DirectionType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMoveFocusFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "direction"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "DirectionType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassMoveFocusFieldCallback :: FunPtr C_WidgetClassMoveFocusFieldCallback -> C_WidgetClassMoveFocusFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassMoveFocusFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassMoveFocusFieldCallback
    -> a
    -> Gtk.Enums.DirectionType
    -> m ()
dynamic_WidgetClassMoveFocusFieldCallback :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> a -> DirectionType -> m ()
dynamic_WidgetClassMoveFocusFieldCallback __funPtr :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr widget :: a
widget direction :: DirectionType
direction = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let direction' :: CUInt
direction' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (DirectionType -> Int) -> DirectionType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DirectionType -> Int
forall a. Enum a => a -> Int
fromEnum) DirectionType
direction
    (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
__dynamic_C_WidgetClassMoveFocusFieldCallback FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr) Ptr Widget
widget' CUInt
direction'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassMoveFocusFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassMoveFocusFieldCallback :: C_WidgetClassMoveFocusFieldCallback -> IO (FunPtr C_WidgetClassMoveFocusFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassMoveFocusFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.DirectionType
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassMoveFocusFieldCallback`@.
noWidgetClassMoveFocusFieldCallback :: Maybe WidgetClassMoveFocusFieldCallback
noWidgetClassMoveFocusFieldCallback :: Maybe WidgetClassMoveFocusFieldCallback
noWidgetClassMoveFocusFieldCallback = Maybe WidgetClassMoveFocusFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassMoveFocusFieldCallback :: MonadIO m => WidgetClassMoveFocusFieldCallback -> m (GClosure C_WidgetClassMoveFocusFieldCallback)
genClosure_WidgetClassMoveFocusFieldCallback :: WidgetClassMoveFocusFieldCallback
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
genClosure_WidgetClassMoveFocusFieldCallback cb :: WidgetClassMoveFocusFieldCallback
cb = IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
 -> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassStateFlagsChangedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassMoveFocusFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassMoveFocusFieldCallback Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
forall a. Maybe a
Nothing WidgetClassMoveFocusFieldCallback
cb
    C_WidgetClassStateFlagsChangedFieldCallback
-> IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
mk_WidgetClassMoveFocusFieldCallback C_WidgetClassStateFlagsChangedFieldCallback
cb' IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
-> (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
    -> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassMoveFocusFieldCallback` into a `C_WidgetClassMoveFocusFieldCallback`.
wrap_WidgetClassMoveFocusFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassMoveFocusFieldCallback)) ->
    WidgetClassMoveFocusFieldCallback ->
    C_WidgetClassMoveFocusFieldCallback
wrap_WidgetClassMoveFocusFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassMoveFocusFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassMoveFocusFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr _cb :: WidgetClassMoveFocusFieldCallback
_cb widget :: Ptr Widget
widget direction :: CUInt
direction = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let direction' :: DirectionType
direction' = (Int -> DirectionType
forall a. Enum a => Int -> a
toEnum (Int -> DirectionType) -> (CUInt -> Int) -> CUInt -> DirectionType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
direction
    WidgetClassMoveFocusFieldCallback
_cb  Widget
widget' DirectionType
direction'
    Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr


-- callback WidgetClassMotionNotifyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventMotion"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMotionNotifyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventMotion.EventMotion ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventMotion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassMotionNotifyEventFieldCallback :: FunPtr C_WidgetClassMotionNotifyEventFieldCallback -> C_WidgetClassMotionNotifyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassMotionNotifyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassMotionNotifyEventFieldCallback
    -> a
    -> Gdk.EventMotion.EventMotion
    -> m Bool
dynamic_WidgetClassMotionNotifyEventFieldCallback :: FunPtr C_WidgetClassMotionNotifyEventFieldCallback
-> a -> EventMotion -> m Bool
dynamic_WidgetClassMotionNotifyEventFieldCallback __funPtr :: FunPtr C_WidgetClassMotionNotifyEventFieldCallback
__funPtr widget :: a
widget event :: EventMotion
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventMotion
event' <- EventMotion -> IO (Ptr EventMotion)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventMotion
event
    CInt
result <- (FunPtr C_WidgetClassMotionNotifyEventFieldCallback
-> C_WidgetClassMotionNotifyEventFieldCallback
__dynamic_C_WidgetClassMotionNotifyEventFieldCallback FunPtr C_WidgetClassMotionNotifyEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventMotion
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventMotion -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventMotion
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassMotionNotifyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassMotionNotifyEventFieldCallback :: C_WidgetClassMotionNotifyEventFieldCallback -> IO (FunPtr C_WidgetClassMotionNotifyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassMotionNotifyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventMotion.EventMotion
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassMotionNotifyEventFieldCallback`@.
noWidgetClassMotionNotifyEventFieldCallback :: Maybe WidgetClassMotionNotifyEventFieldCallback
noWidgetClassMotionNotifyEventFieldCallback :: Maybe WidgetClassMotionNotifyEventFieldCallback
noWidgetClassMotionNotifyEventFieldCallback = Maybe WidgetClassMotionNotifyEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassMotionNotifyEventFieldCallback :: MonadIO m => WidgetClassMotionNotifyEventFieldCallback -> m (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
genClosure_WidgetClassMotionNotifyEventFieldCallback :: WidgetClassMotionNotifyEventFieldCallback
-> m (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
genClosure_WidgetClassMotionNotifyEventFieldCallback cb :: WidgetClassMotionNotifyEventFieldCallback
cb = IO (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
 -> m (GClosure C_WidgetClassMotionNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassMotionNotifyEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback))
-> WidgetClassMotionNotifyEventFieldCallback
-> C_WidgetClassMotionNotifyEventFieldCallback
wrap_WidgetClassMotionNotifyEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassMotionNotifyEventFieldCallback
cb
    C_WidgetClassMotionNotifyEventFieldCallback
-> IO (FunPtr C_WidgetClassMotionNotifyEventFieldCallback)
mk_WidgetClassMotionNotifyEventFieldCallback C_WidgetClassMotionNotifyEventFieldCallback
cb' IO (FunPtr C_WidgetClassMotionNotifyEventFieldCallback)
-> (FunPtr C_WidgetClassMotionNotifyEventFieldCallback
    -> IO (GClosure C_WidgetClassMotionNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassMotionNotifyEventFieldCallback
-> IO (GClosure C_WidgetClassMotionNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassMotionNotifyEventFieldCallback` into a `C_WidgetClassMotionNotifyEventFieldCallback`.
wrap_WidgetClassMotionNotifyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback)) ->
    WidgetClassMotionNotifyEventFieldCallback ->
    C_WidgetClassMotionNotifyEventFieldCallback
wrap_WidgetClassMotionNotifyEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback))
-> WidgetClassMotionNotifyEventFieldCallback
-> C_WidgetClassMotionNotifyEventFieldCallback
wrap_WidgetClassMotionNotifyEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback))
funptrptr _cb :: WidgetClassMotionNotifyEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventMotion
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventMotion
event' <- ((ManagedPtr EventMotion -> EventMotion)
-> Ptr EventMotion -> IO EventMotion
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventMotion -> EventMotion
Gdk.EventMotion.EventMotion) Ptr EventMotion
event
    Bool
result <- WidgetClassMotionNotifyEventFieldCallback
_cb  Widget
widget' EventMotion
event'
    Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassMotionNotifyEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassMnemonicActivateFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the signal has been handled", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_cycling", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if there are other widgets with the same mnemonic", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMnemonicActivateFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CInt ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "group_cycling"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%TRUE if there are other widgets with the same mnemonic"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassMnemonicActivateFieldCallback :: FunPtr C_WidgetClassMnemonicActivateFieldCallback -> C_WidgetClassMnemonicActivateFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassMnemonicActivateFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassMnemonicActivateFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Bool
    -- ^ /@groupCycling@/: 'P.True' if there are other widgets with the same mnemonic
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the signal has been handled
dynamic_WidgetClassMnemonicActivateFieldCallback :: FunPtr C_WidgetClassMnemonicActivateFieldCallback
-> a -> Bool -> m Bool
dynamic_WidgetClassMnemonicActivateFieldCallback __funPtr :: FunPtr C_WidgetClassMnemonicActivateFieldCallback
__funPtr widget :: a
widget groupCycling :: Bool
groupCycling = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let groupCycling' :: CInt
groupCycling' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
groupCycling
    CInt
result <- (FunPtr C_WidgetClassMnemonicActivateFieldCallback
-> C_WidgetClassMnemonicActivateFieldCallback
__dynamic_C_WidgetClassMnemonicActivateFieldCallback FunPtr C_WidgetClassMnemonicActivateFieldCallback
__funPtr) Ptr Widget
widget' CInt
groupCycling'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassMnemonicActivateFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassMnemonicActivateFieldCallback :: C_WidgetClassMnemonicActivateFieldCallback -> IO (FunPtr C_WidgetClassMnemonicActivateFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassMnemonicActivateFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Bool
    -- ^ /@groupCycling@/: 'P.True' if there are other widgets with the same mnemonic
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the signal has been handled

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassMnemonicActivateFieldCallback`@.
noWidgetClassMnemonicActivateFieldCallback :: Maybe WidgetClassMnemonicActivateFieldCallback
noWidgetClassMnemonicActivateFieldCallback :: Maybe WidgetClassMnemonicActivateFieldCallback
noWidgetClassMnemonicActivateFieldCallback = Maybe WidgetClassMnemonicActivateFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassMnemonicActivateFieldCallback :: MonadIO m => WidgetClassMnemonicActivateFieldCallback -> m (GClosure C_WidgetClassMnemonicActivateFieldCallback)
genClosure_WidgetClassMnemonicActivateFieldCallback :: WidgetClassMnemonicActivateFieldCallback
-> m (GClosure C_WidgetClassMnemonicActivateFieldCallback)
genClosure_WidgetClassMnemonicActivateFieldCallback cb :: WidgetClassMnemonicActivateFieldCallback
cb = IO (GClosure C_WidgetClassMnemonicActivateFieldCallback)
-> m (GClosure C_WidgetClassMnemonicActivateFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassMnemonicActivateFieldCallback)
 -> m (GClosure C_WidgetClassMnemonicActivateFieldCallback))
-> IO (GClosure C_WidgetClassMnemonicActivateFieldCallback)
-> m (GClosure C_WidgetClassMnemonicActivateFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassMnemonicActivateFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback))
-> WidgetClassMnemonicActivateFieldCallback
-> C_WidgetClassMnemonicActivateFieldCallback
wrap_WidgetClassMnemonicActivateFieldCallback Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback))
forall a. Maybe a
Nothing WidgetClassMnemonicActivateFieldCallback
cb
    C_WidgetClassMnemonicActivateFieldCallback
-> IO (FunPtr C_WidgetClassMnemonicActivateFieldCallback)
mk_WidgetClassMnemonicActivateFieldCallback C_WidgetClassMnemonicActivateFieldCallback
cb' IO (FunPtr C_WidgetClassMnemonicActivateFieldCallback)
-> (FunPtr C_WidgetClassMnemonicActivateFieldCallback
    -> IO (GClosure C_WidgetClassMnemonicActivateFieldCallback))
-> IO (GClosure C_WidgetClassMnemonicActivateFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassMnemonicActivateFieldCallback
-> IO (GClosure C_WidgetClassMnemonicActivateFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassMnemonicActivateFieldCallback` into a `C_WidgetClassMnemonicActivateFieldCallback`.
wrap_WidgetClassMnemonicActivateFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback)) ->
    WidgetClassMnemonicActivateFieldCallback ->
    C_WidgetClassMnemonicActivateFieldCallback
wrap_WidgetClassMnemonicActivateFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback))
-> WidgetClassMnemonicActivateFieldCallback
-> C_WidgetClassMnemonicActivateFieldCallback
wrap_WidgetClassMnemonicActivateFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback))
funptrptr _cb :: WidgetClassMnemonicActivateFieldCallback
_cb widget :: Ptr Widget
widget groupCycling :: CInt
groupCycling = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let groupCycling' :: Bool
groupCycling' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
groupCycling
    Bool
result <- WidgetClassMnemonicActivateFieldCallback
_cb  Widget
widget' Bool
groupCycling'
    Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassMnemonicActivateFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassMapFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMapFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassMapFieldCallback :: FunPtr C_WidgetClassMapFieldCallback -> C_WidgetClassMapFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassMapFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassMapFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassMapFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassMapFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassMapFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassMapFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassMapFieldCallback :: C_WidgetClassMapFieldCallback -> IO (FunPtr C_WidgetClassMapFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassMapFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassMapFieldCallback`@.
noWidgetClassMapFieldCallback :: Maybe WidgetClassMapFieldCallback
noWidgetClassMapFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassMapFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassMapFieldCallback :: MonadIO m => WidgetClassMapFieldCallback -> m (GClosure C_WidgetClassMapFieldCallback)
genClosure_WidgetClassMapFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassMapFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassMapFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassMapFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassMapFieldCallback` into a `C_WidgetClassMapFieldCallback`.
wrap_WidgetClassMapFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassMapFieldCallback)) ->
    WidgetClassMapFieldCallback ->
    C_WidgetClassMapFieldCallback
wrap_WidgetClassMapFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassMapFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassMapEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventAny"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassMapEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventAny.EventAny ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventAny" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassMapEventFieldCallback :: FunPtr C_WidgetClassMapEventFieldCallback -> C_WidgetClassMapEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassMapEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassMapEventFieldCallback
    -> a
    -> Gdk.EventAny.EventAny
    -> m Bool
dynamic_WidgetClassMapEventFieldCallback :: FunPtr C_WidgetClassUnmapEventFieldCallback
-> a -> EventAny -> m Bool
dynamic_WidgetClassMapEventFieldCallback __funPtr :: FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr widget :: a
widget event :: EventAny
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventAny
event' <- EventAny -> IO (Ptr EventAny)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventAny
event
    CInt
result <- (FunPtr C_WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
__dynamic_C_WidgetClassMapEventFieldCallback FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventAny
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventAny -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventAny
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassMapEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassMapEventFieldCallback :: C_WidgetClassMapEventFieldCallback -> IO (FunPtr C_WidgetClassMapEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassMapEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventAny.EventAny
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassMapEventFieldCallback`@.
noWidgetClassMapEventFieldCallback :: Maybe WidgetClassMapEventFieldCallback
noWidgetClassMapEventFieldCallback :: Maybe WidgetClassUnmapEventFieldCallback
noWidgetClassMapEventFieldCallback = Maybe WidgetClassUnmapEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassMapEventFieldCallback :: MonadIO m => WidgetClassMapEventFieldCallback -> m (GClosure C_WidgetClassMapEventFieldCallback)
genClosure_WidgetClassMapEventFieldCallback :: WidgetClassUnmapEventFieldCallback
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
genClosure_WidgetClassMapEventFieldCallback cb :: WidgetClassUnmapEventFieldCallback
cb = IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnmapEventFieldCallback)
 -> m (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnmapEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassMapEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnmapEventFieldCallback
cb
    C_WidgetClassUnmapEventFieldCallback
-> IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
mk_WidgetClassMapEventFieldCallback C_WidgetClassUnmapEventFieldCallback
cb' IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
-> (FunPtr C_WidgetClassUnmapEventFieldCallback
    -> IO (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnmapEventFieldCallback
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassMapEventFieldCallback` into a `C_WidgetClassMapEventFieldCallback`.
wrap_WidgetClassMapEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassMapEventFieldCallback)) ->
    WidgetClassMapEventFieldCallback ->
    C_WidgetClassMapEventFieldCallback
wrap_WidgetClassMapEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassMapEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr _cb :: WidgetClassUnmapEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventAny
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventAny
event' <- ((ManagedPtr EventAny -> EventAny) -> Ptr EventAny -> IO EventAny
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventAny -> EventAny
Gdk.EventAny.EventAny) Ptr EventAny
event
    Bool
result <- WidgetClassUnmapEventFieldCallback
_cb  Widget
widget' EventAny
event'
    Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassLeaveNotifyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventCrossing"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassLeaveNotifyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventCrossing.EventCrossing ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventCrossing" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassLeaveNotifyEventFieldCallback :: FunPtr C_WidgetClassLeaveNotifyEventFieldCallback -> C_WidgetClassLeaveNotifyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassLeaveNotifyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
    -> a
    -> Gdk.EventCrossing.EventCrossing
    -> m Bool
dynamic_WidgetClassLeaveNotifyEventFieldCallback :: FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
-> a -> EventCrossing -> m Bool
dynamic_WidgetClassLeaveNotifyEventFieldCallback __funPtr :: FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
__funPtr widget :: a
widget event :: EventCrossing
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventCrossing
event' <- EventCrossing -> IO (Ptr EventCrossing)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventCrossing
event
    CInt
result <- (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
-> C_WidgetClassLeaveNotifyEventFieldCallback
__dynamic_C_WidgetClassLeaveNotifyEventFieldCallback FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventCrossing
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventCrossing -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventCrossing
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassLeaveNotifyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassLeaveNotifyEventFieldCallback :: C_WidgetClassLeaveNotifyEventFieldCallback -> IO (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassLeaveNotifyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventCrossing.EventCrossing
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassLeaveNotifyEventFieldCallback`@.
noWidgetClassLeaveNotifyEventFieldCallback :: Maybe WidgetClassLeaveNotifyEventFieldCallback
noWidgetClassLeaveNotifyEventFieldCallback :: Maybe WidgetClassLeaveNotifyEventFieldCallback
noWidgetClassLeaveNotifyEventFieldCallback = Maybe WidgetClassLeaveNotifyEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassLeaveNotifyEventFieldCallback :: MonadIO m => WidgetClassLeaveNotifyEventFieldCallback -> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
genClosure_WidgetClassLeaveNotifyEventFieldCallback :: WidgetClassLeaveNotifyEventFieldCallback
-> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
genClosure_WidgetClassLeaveNotifyEventFieldCallback cb :: WidgetClassLeaveNotifyEventFieldCallback
cb = IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
 -> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassLeaveNotifyEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
-> WidgetClassLeaveNotifyEventFieldCallback
-> C_WidgetClassLeaveNotifyEventFieldCallback
wrap_WidgetClassLeaveNotifyEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassLeaveNotifyEventFieldCallback
cb
    C_WidgetClassLeaveNotifyEventFieldCallback
-> IO (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback)
mk_WidgetClassLeaveNotifyEventFieldCallback C_WidgetClassLeaveNotifyEventFieldCallback
cb' IO (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback)
-> (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
    -> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
-> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassLeaveNotifyEventFieldCallback` into a `C_WidgetClassLeaveNotifyEventFieldCallback`.
wrap_WidgetClassLeaveNotifyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback)) ->
    WidgetClassLeaveNotifyEventFieldCallback ->
    C_WidgetClassLeaveNotifyEventFieldCallback
wrap_WidgetClassLeaveNotifyEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
-> WidgetClassLeaveNotifyEventFieldCallback
-> C_WidgetClassLeaveNotifyEventFieldCallback
wrap_WidgetClassLeaveNotifyEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
funptrptr _cb :: WidgetClassLeaveNotifyEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventCrossing
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventCrossing
event' <- ((ManagedPtr EventCrossing -> EventCrossing)
-> Ptr EventCrossing -> IO EventCrossing
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventCrossing -> EventCrossing
Gdk.EventCrossing.EventCrossing) Ptr EventCrossing
event
    Bool
result <- WidgetClassLeaveNotifyEventFieldCallback
_cb  Widget
widget' EventCrossing
event'
    Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassKeynavFailedFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if stopping keyboard navigation is fine, %FALSE\n              if the emitting widget should try to handle the keyboard\n              navigation attempt in its parent container(s).", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "direction", argType = TInterface (Name {namespace = "Gtk", name = "DirectionType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "direction of focus movement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassKeynavFailedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "direction"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "DirectionType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "direction of focus movement"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassKeynavFailedFieldCallback :: FunPtr C_WidgetClassKeynavFailedFieldCallback -> C_WidgetClassKeynavFailedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassKeynavFailedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassKeynavFailedFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Gtk.Enums.DirectionType
    -- ^ /@direction@/: direction of focus movement
    -> m Bool
    -- ^ __Returns:__ 'P.True' if stopping keyboard navigation is fine, 'P.False'
    --               if the emitting widget should try to handle the keyboard
    --               navigation attempt in its parent container(s).
dynamic_WidgetClassKeynavFailedFieldCallback :: FunPtr C_WidgetClassShowHelpFieldCallback
-> a -> DirectionType -> m Bool
dynamic_WidgetClassKeynavFailedFieldCallback __funPtr :: FunPtr C_WidgetClassShowHelpFieldCallback
__funPtr widget :: a
widget direction :: DirectionType
direction = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let direction' :: CUInt
direction' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (DirectionType -> Int) -> DirectionType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DirectionType -> Int
forall a. Enum a => a -> Int
fromEnum) DirectionType
direction
    CInt
result <- (FunPtr C_WidgetClassShowHelpFieldCallback
-> C_WidgetClassShowHelpFieldCallback
__dynamic_C_WidgetClassKeynavFailedFieldCallback FunPtr C_WidgetClassShowHelpFieldCallback
__funPtr) Ptr Widget
widget' CUInt
direction'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassKeynavFailedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassKeynavFailedFieldCallback :: C_WidgetClassKeynavFailedFieldCallback -> IO (FunPtr C_WidgetClassKeynavFailedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassKeynavFailedFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Gtk.Enums.DirectionType
    -- ^ /@direction@/: direction of focus movement
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if stopping keyboard navigation is fine, 'P.False'
    --               if the emitting widget should try to handle the keyboard
    --               navigation attempt in its parent container(s).

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassKeynavFailedFieldCallback`@.
noWidgetClassKeynavFailedFieldCallback :: Maybe WidgetClassKeynavFailedFieldCallback
noWidgetClassKeynavFailedFieldCallback :: Maybe WidgetClassKeynavFailedFieldCallback
noWidgetClassKeynavFailedFieldCallback = Maybe WidgetClassKeynavFailedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassKeynavFailedFieldCallback :: MonadIO m => WidgetClassKeynavFailedFieldCallback -> m (GClosure C_WidgetClassKeynavFailedFieldCallback)
genClosure_WidgetClassKeynavFailedFieldCallback :: WidgetClassKeynavFailedFieldCallback
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
genClosure_WidgetClassKeynavFailedFieldCallback cb :: WidgetClassKeynavFailedFieldCallback
cb = IO (GClosure C_WidgetClassShowHelpFieldCallback)
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassShowHelpFieldCallback)
 -> m (GClosure C_WidgetClassShowHelpFieldCallback))
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassShowHelpFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
-> WidgetClassKeynavFailedFieldCallback
-> C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassKeynavFailedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
forall a. Maybe a
Nothing WidgetClassKeynavFailedFieldCallback
cb
    C_WidgetClassShowHelpFieldCallback
-> IO (FunPtr C_WidgetClassShowHelpFieldCallback)
mk_WidgetClassKeynavFailedFieldCallback C_WidgetClassShowHelpFieldCallback
cb' IO (FunPtr C_WidgetClassShowHelpFieldCallback)
-> (FunPtr C_WidgetClassShowHelpFieldCallback
    -> IO (GClosure C_WidgetClassShowHelpFieldCallback))
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassShowHelpFieldCallback
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassKeynavFailedFieldCallback` into a `C_WidgetClassKeynavFailedFieldCallback`.
wrap_WidgetClassKeynavFailedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassKeynavFailedFieldCallback)) ->
    WidgetClassKeynavFailedFieldCallback ->
    C_WidgetClassKeynavFailedFieldCallback
wrap_WidgetClassKeynavFailedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
-> WidgetClassKeynavFailedFieldCallback
-> C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassKeynavFailedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
funptrptr _cb :: WidgetClassKeynavFailedFieldCallback
_cb widget :: Ptr Widget
widget direction :: CUInt
direction = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let direction' :: DirectionType
direction' = (Int -> DirectionType
forall a. Enum a => Int -> a
toEnum (Int -> DirectionType) -> (CUInt -> Int) -> CUInt -> DirectionType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
direction
    Bool
result <- WidgetClassKeynavFailedFieldCallback
_cb  Widget
widget' DirectionType
direction'
    Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassKeyReleaseEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassKeyReleaseEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventKey.EventKey ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventKey" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassKeyReleaseEventFieldCallback :: FunPtr C_WidgetClassKeyReleaseEventFieldCallback -> C_WidgetClassKeyReleaseEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassKeyReleaseEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassKeyReleaseEventFieldCallback
    -> a
    -> Gdk.EventKey.EventKey
    -> m Bool
dynamic_WidgetClassKeyReleaseEventFieldCallback :: FunPtr C_WidgetClassKeyReleaseEventFieldCallback
-> a -> EventKey -> m Bool
dynamic_WidgetClassKeyReleaseEventFieldCallback __funPtr :: FunPtr C_WidgetClassKeyReleaseEventFieldCallback
__funPtr widget :: a
widget event :: EventKey
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventKey
event' <- EventKey -> IO (Ptr EventKey)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventKey
event
    CInt
result <- (FunPtr C_WidgetClassKeyReleaseEventFieldCallback
-> C_WidgetClassKeyReleaseEventFieldCallback
__dynamic_C_WidgetClassKeyReleaseEventFieldCallback FunPtr C_WidgetClassKeyReleaseEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventKey
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventKey -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventKey
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassKeyReleaseEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassKeyReleaseEventFieldCallback :: C_WidgetClassKeyReleaseEventFieldCallback -> IO (FunPtr C_WidgetClassKeyReleaseEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassKeyReleaseEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventKey.EventKey
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassKeyReleaseEventFieldCallback`@.
noWidgetClassKeyReleaseEventFieldCallback :: Maybe WidgetClassKeyReleaseEventFieldCallback
noWidgetClassKeyReleaseEventFieldCallback :: Maybe WidgetClassKeyReleaseEventFieldCallback
noWidgetClassKeyReleaseEventFieldCallback = Maybe WidgetClassKeyReleaseEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassKeyReleaseEventFieldCallback :: MonadIO m => WidgetClassKeyReleaseEventFieldCallback -> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
genClosure_WidgetClassKeyReleaseEventFieldCallback :: WidgetClassKeyReleaseEventFieldCallback
-> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
genClosure_WidgetClassKeyReleaseEventFieldCallback cb :: WidgetClassKeyReleaseEventFieldCallback
cb = IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
 -> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassKeyReleaseEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
-> WidgetClassKeyReleaseEventFieldCallback
-> C_WidgetClassKeyReleaseEventFieldCallback
wrap_WidgetClassKeyReleaseEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassKeyReleaseEventFieldCallback
cb
    C_WidgetClassKeyReleaseEventFieldCallback
-> IO (FunPtr C_WidgetClassKeyReleaseEventFieldCallback)
mk_WidgetClassKeyReleaseEventFieldCallback C_WidgetClassKeyReleaseEventFieldCallback
cb' IO (FunPtr C_WidgetClassKeyReleaseEventFieldCallback)
-> (FunPtr C_WidgetClassKeyReleaseEventFieldCallback
    -> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassKeyReleaseEventFieldCallback
-> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassKeyReleaseEventFieldCallback` into a `C_WidgetClassKeyReleaseEventFieldCallback`.
wrap_WidgetClassKeyReleaseEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback)) ->
    WidgetClassKeyReleaseEventFieldCallback ->
    C_WidgetClassKeyReleaseEventFieldCallback
wrap_WidgetClassKeyReleaseEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
-> WidgetClassKeyReleaseEventFieldCallback
-> C_WidgetClassKeyReleaseEventFieldCallback
wrap_WidgetClassKeyReleaseEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
funptrptr _cb :: WidgetClassKeyReleaseEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventKey
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventKey
event' <- ((ManagedPtr EventKey -> EventKey) -> Ptr EventKey -> IO EventKey
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventKey -> EventKey
Gdk.EventKey.EventKey) Ptr EventKey
event
    Bool
result <- WidgetClassKeyReleaseEventFieldCallback
_cb  Widget
widget' EventKey
event'
    Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassKeyPressEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassKeyPressEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventKey.EventKey ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventKey" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassKeyPressEventFieldCallback :: FunPtr C_WidgetClassKeyPressEventFieldCallback -> C_WidgetClassKeyPressEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassKeyPressEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassKeyPressEventFieldCallback
    -> a
    -> Gdk.EventKey.EventKey
    -> m Bool
dynamic_WidgetClassKeyPressEventFieldCallback :: FunPtr C_WidgetClassKeyReleaseEventFieldCallback
-> a -> EventKey -> m Bool
dynamic_WidgetClassKeyPressEventFieldCallback __funPtr :: FunPtr C_WidgetClassKeyReleaseEventFieldCallback
__funPtr widget :: a
widget event :: EventKey
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventKey
event' <- EventKey -> IO (Ptr EventKey)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventKey
event
    CInt
result <- (FunPtr C_WidgetClassKeyReleaseEventFieldCallback
-> C_WidgetClassKeyReleaseEventFieldCallback
__dynamic_C_WidgetClassKeyPressEventFieldCallback FunPtr C_WidgetClassKeyReleaseEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventKey
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventKey -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventKey
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassKeyPressEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassKeyPressEventFieldCallback :: C_WidgetClassKeyPressEventFieldCallback -> IO (FunPtr C_WidgetClassKeyPressEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassKeyPressEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventKey.EventKey
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassKeyPressEventFieldCallback`@.
noWidgetClassKeyPressEventFieldCallback :: Maybe WidgetClassKeyPressEventFieldCallback
noWidgetClassKeyPressEventFieldCallback :: Maybe WidgetClassKeyReleaseEventFieldCallback
noWidgetClassKeyPressEventFieldCallback = Maybe WidgetClassKeyReleaseEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassKeyPressEventFieldCallback :: MonadIO m => WidgetClassKeyPressEventFieldCallback -> m (GClosure C_WidgetClassKeyPressEventFieldCallback)
genClosure_WidgetClassKeyPressEventFieldCallback :: WidgetClassKeyReleaseEventFieldCallback
-> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
genClosure_WidgetClassKeyPressEventFieldCallback cb :: WidgetClassKeyReleaseEventFieldCallback
cb = IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
 -> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassKeyReleaseEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
-> WidgetClassKeyReleaseEventFieldCallback
-> C_WidgetClassKeyReleaseEventFieldCallback
wrap_WidgetClassKeyPressEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassKeyReleaseEventFieldCallback
cb
    C_WidgetClassKeyReleaseEventFieldCallback
-> IO (FunPtr C_WidgetClassKeyReleaseEventFieldCallback)
mk_WidgetClassKeyPressEventFieldCallback C_WidgetClassKeyReleaseEventFieldCallback
cb' IO (FunPtr C_WidgetClassKeyReleaseEventFieldCallback)
-> (FunPtr C_WidgetClassKeyReleaseEventFieldCallback
    -> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassKeyReleaseEventFieldCallback
-> IO (GClosure C_WidgetClassKeyReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassKeyPressEventFieldCallback` into a `C_WidgetClassKeyPressEventFieldCallback`.
wrap_WidgetClassKeyPressEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassKeyPressEventFieldCallback)) ->
    WidgetClassKeyPressEventFieldCallback ->
    C_WidgetClassKeyPressEventFieldCallback
wrap_WidgetClassKeyPressEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
-> WidgetClassKeyReleaseEventFieldCallback
-> C_WidgetClassKeyReleaseEventFieldCallback
wrap_WidgetClassKeyPressEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
funptrptr _cb :: WidgetClassKeyReleaseEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventKey
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventKey
event' <- ((ManagedPtr EventKey -> EventKey) -> Ptr EventKey -> IO EventKey
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventKey -> EventKey
Gdk.EventKey.EventKey) Ptr EventKey
event
    Bool
result <- WidgetClassKeyReleaseEventFieldCallback
_cb  Widget
widget' EventKey
event'
    Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassKeyReleaseEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassHierarchyChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_toplevel", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassHierarchyChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_toplevel"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassHierarchyChangedFieldCallback :: FunPtr C_WidgetClassHierarchyChangedFieldCallback -> C_WidgetClassHierarchyChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassHierarchyChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gtk.Widget.IsWidget b) =>
    FunPtr C_WidgetClassHierarchyChangedFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassHierarchyChangedFieldCallback :: FunPtr C_WidgetClassParentSetFieldCallback -> a -> b -> m ()
dynamic_WidgetClassHierarchyChangedFieldCallback __funPtr :: FunPtr C_WidgetClassParentSetFieldCallback
__funPtr widget :: a
widget previousToplevel :: b
previousToplevel = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Widget
previousToplevel' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
previousToplevel
    (FunPtr C_WidgetClassParentSetFieldCallback
-> C_WidgetClassParentSetFieldCallback
__dynamic_C_WidgetClassHierarchyChangedFieldCallback FunPtr C_WidgetClassParentSetFieldCallback
__funPtr) Ptr Widget
widget' Ptr Widget
previousToplevel'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
previousToplevel
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassHierarchyChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassHierarchyChangedFieldCallback :: C_WidgetClassHierarchyChangedFieldCallback -> IO (FunPtr C_WidgetClassHierarchyChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassHierarchyChangedFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Widget.Widget
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassHierarchyChangedFieldCallback`@.
noWidgetClassHierarchyChangedFieldCallback :: Maybe WidgetClassHierarchyChangedFieldCallback
noWidgetClassHierarchyChangedFieldCallback :: Maybe WidgetClassParentSetFieldCallback
noWidgetClassHierarchyChangedFieldCallback = Maybe WidgetClassParentSetFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassHierarchyChangedFieldCallback :: MonadIO m => WidgetClassHierarchyChangedFieldCallback -> m (GClosure C_WidgetClassHierarchyChangedFieldCallback)
genClosure_WidgetClassHierarchyChangedFieldCallback :: WidgetClassParentSetFieldCallback
-> m (GClosure C_WidgetClassParentSetFieldCallback)
genClosure_WidgetClassHierarchyChangedFieldCallback cb :: WidgetClassParentSetFieldCallback
cb = IO (GClosure C_WidgetClassParentSetFieldCallback)
-> m (GClosure C_WidgetClassParentSetFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassParentSetFieldCallback)
 -> m (GClosure C_WidgetClassParentSetFieldCallback))
-> IO (GClosure C_WidgetClassParentSetFieldCallback)
-> m (GClosure C_WidgetClassParentSetFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassParentSetFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
-> WidgetClassParentSetFieldCallback
-> C_WidgetClassParentSetFieldCallback
wrap_WidgetClassHierarchyChangedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
forall a. Maybe a
Nothing WidgetClassParentSetFieldCallback
cb
    C_WidgetClassParentSetFieldCallback
-> IO (FunPtr C_WidgetClassParentSetFieldCallback)
mk_WidgetClassHierarchyChangedFieldCallback C_WidgetClassParentSetFieldCallback
cb' IO (FunPtr C_WidgetClassParentSetFieldCallback)
-> (FunPtr C_WidgetClassParentSetFieldCallback
    -> IO (GClosure C_WidgetClassParentSetFieldCallback))
-> IO (GClosure C_WidgetClassParentSetFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassParentSetFieldCallback
-> IO (GClosure C_WidgetClassParentSetFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassHierarchyChangedFieldCallback` into a `C_WidgetClassHierarchyChangedFieldCallback`.
wrap_WidgetClassHierarchyChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassHierarchyChangedFieldCallback)) ->
    WidgetClassHierarchyChangedFieldCallback ->
    C_WidgetClassHierarchyChangedFieldCallback
wrap_WidgetClassHierarchyChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
-> WidgetClassParentSetFieldCallback
-> C_WidgetClassParentSetFieldCallback
wrap_WidgetClassHierarchyChangedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
funptrptr _cb :: WidgetClassParentSetFieldCallback
_cb widget :: Ptr Widget
widget previousToplevel :: Ptr Widget
previousToplevel = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Widget
previousToplevel' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
previousToplevel
    WidgetClassParentSetFieldCallback
_cb  Widget
widget' Widget
previousToplevel'
    Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassParentSetFieldCallback))
funptrptr


-- callback WidgetClassHideFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassHideFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassHideFieldCallback :: FunPtr C_WidgetClassHideFieldCallback -> C_WidgetClassHideFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassHideFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassHideFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassHideFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassHideFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassHideFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassHideFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassHideFieldCallback :: C_WidgetClassHideFieldCallback -> IO (FunPtr C_WidgetClassHideFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassHideFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassHideFieldCallback`@.
noWidgetClassHideFieldCallback :: Maybe WidgetClassHideFieldCallback
noWidgetClassHideFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassHideFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassHideFieldCallback :: MonadIO m => WidgetClassHideFieldCallback -> m (GClosure C_WidgetClassHideFieldCallback)
genClosure_WidgetClassHideFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassHideFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassHideFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassHideFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassHideFieldCallback` into a `C_WidgetClassHideFieldCallback`.
wrap_WidgetClassHideFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassHideFieldCallback)) ->
    WidgetClassHideFieldCallback ->
    C_WidgetClassHideFieldCallback
wrap_WidgetClassHideFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassHideFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassGrabNotifyFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "was_grabbed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGrabNotifyFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "was_grabbed"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGrabNotifyFieldCallback :: FunPtr C_WidgetClassGrabNotifyFieldCallback -> C_WidgetClassGrabNotifyFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGrabNotifyFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGrabNotifyFieldCallback
    -> a
    -> Bool
    -> m ()
dynamic_WidgetClassGrabNotifyFieldCallback :: FunPtr C_WidgetClassGrabNotifyFieldCallback -> a -> Bool -> m ()
dynamic_WidgetClassGrabNotifyFieldCallback __funPtr :: FunPtr C_WidgetClassGrabNotifyFieldCallback
__funPtr widget :: a
widget wasGrabbed :: Bool
wasGrabbed = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let wasGrabbed' :: CInt
wasGrabbed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
wasGrabbed
    (FunPtr C_WidgetClassGrabNotifyFieldCallback
-> C_WidgetClassGrabNotifyFieldCallback
__dynamic_C_WidgetClassGrabNotifyFieldCallback FunPtr C_WidgetClassGrabNotifyFieldCallback
__funPtr) Ptr Widget
widget' CInt
wasGrabbed'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGrabNotifyFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGrabNotifyFieldCallback :: C_WidgetClassGrabNotifyFieldCallback -> IO (FunPtr C_WidgetClassGrabNotifyFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGrabNotifyFieldCallback =
    Gtk.Widget.Widget
    -> Bool
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGrabNotifyFieldCallback`@.
noWidgetClassGrabNotifyFieldCallback :: Maybe WidgetClassGrabNotifyFieldCallback
noWidgetClassGrabNotifyFieldCallback :: Maybe WidgetClassGrabNotifyFieldCallback
noWidgetClassGrabNotifyFieldCallback = Maybe WidgetClassGrabNotifyFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGrabNotifyFieldCallback :: MonadIO m => WidgetClassGrabNotifyFieldCallback -> m (GClosure C_WidgetClassGrabNotifyFieldCallback)
genClosure_WidgetClassGrabNotifyFieldCallback :: WidgetClassGrabNotifyFieldCallback
-> m (GClosure C_WidgetClassGrabNotifyFieldCallback)
genClosure_WidgetClassGrabNotifyFieldCallback cb :: WidgetClassGrabNotifyFieldCallback
cb = IO (GClosure C_WidgetClassGrabNotifyFieldCallback)
-> m (GClosure C_WidgetClassGrabNotifyFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGrabNotifyFieldCallback)
 -> m (GClosure C_WidgetClassGrabNotifyFieldCallback))
-> IO (GClosure C_WidgetClassGrabNotifyFieldCallback)
-> m (GClosure C_WidgetClassGrabNotifyFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGrabNotifyFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback))
-> WidgetClassGrabNotifyFieldCallback
-> C_WidgetClassGrabNotifyFieldCallback
wrap_WidgetClassGrabNotifyFieldCallback Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback))
forall a. Maybe a
Nothing WidgetClassGrabNotifyFieldCallback
cb
    C_WidgetClassGrabNotifyFieldCallback
-> IO (FunPtr C_WidgetClassGrabNotifyFieldCallback)
mk_WidgetClassGrabNotifyFieldCallback C_WidgetClassGrabNotifyFieldCallback
cb' IO (FunPtr C_WidgetClassGrabNotifyFieldCallback)
-> (FunPtr C_WidgetClassGrabNotifyFieldCallback
    -> IO (GClosure C_WidgetClassGrabNotifyFieldCallback))
-> IO (GClosure C_WidgetClassGrabNotifyFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGrabNotifyFieldCallback
-> IO (GClosure C_WidgetClassGrabNotifyFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGrabNotifyFieldCallback` into a `C_WidgetClassGrabNotifyFieldCallback`.
wrap_WidgetClassGrabNotifyFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback)) ->
    WidgetClassGrabNotifyFieldCallback ->
    C_WidgetClassGrabNotifyFieldCallback
wrap_WidgetClassGrabNotifyFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback))
-> WidgetClassGrabNotifyFieldCallback
-> C_WidgetClassGrabNotifyFieldCallback
wrap_WidgetClassGrabNotifyFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback))
funptrptr _cb :: WidgetClassGrabNotifyFieldCallback
_cb widget :: Ptr Widget
widget wasGrabbed :: CInt
wasGrabbed = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let wasGrabbed' :: Bool
wasGrabbed' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
wasGrabbed
    WidgetClassGrabNotifyFieldCallback
_cb  Widget
widget' Bool
wasGrabbed'
    Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassGrabNotifyFieldCallback))
funptrptr


-- callback WidgetClassGrabFocusFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGrabFocusFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGrabFocusFieldCallback :: FunPtr C_WidgetClassGrabFocusFieldCallback -> C_WidgetClassGrabFocusFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGrabFocusFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGrabFocusFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassGrabFocusFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassGrabFocusFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassGrabFocusFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGrabFocusFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGrabFocusFieldCallback :: C_WidgetClassGrabFocusFieldCallback -> IO (FunPtr C_WidgetClassGrabFocusFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGrabFocusFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGrabFocusFieldCallback`@.
noWidgetClassGrabFocusFieldCallback :: Maybe WidgetClassGrabFocusFieldCallback
noWidgetClassGrabFocusFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassGrabFocusFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGrabFocusFieldCallback :: MonadIO m => WidgetClassGrabFocusFieldCallback -> m (GClosure C_WidgetClassGrabFocusFieldCallback)
genClosure_WidgetClassGrabFocusFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassGrabFocusFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassGrabFocusFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassGrabFocusFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGrabFocusFieldCallback` into a `C_WidgetClassGrabFocusFieldCallback`.
wrap_WidgetClassGrabFocusFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGrabFocusFieldCallback)) ->
    WidgetClassGrabFocusFieldCallback ->
    C_WidgetClassGrabFocusFieldCallback
wrap_WidgetClassGrabFocusFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassGrabFocusFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassGrabBrokenEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventGrabBroken"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGrabBrokenEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventGrabBroken.EventGrabBroken ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventGrabBroken" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGrabBrokenEventFieldCallback :: FunPtr C_WidgetClassGrabBrokenEventFieldCallback -> C_WidgetClassGrabBrokenEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGrabBrokenEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGrabBrokenEventFieldCallback
    -> a
    -> Gdk.EventGrabBroken.EventGrabBroken
    -> m Bool
dynamic_WidgetClassGrabBrokenEventFieldCallback :: FunPtr C_WidgetClassGrabBrokenEventFieldCallback
-> a -> EventGrabBroken -> m Bool
dynamic_WidgetClassGrabBrokenEventFieldCallback __funPtr :: FunPtr C_WidgetClassGrabBrokenEventFieldCallback
__funPtr widget :: a
widget event :: EventGrabBroken
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventGrabBroken
event' <- EventGrabBroken -> IO (Ptr EventGrabBroken)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventGrabBroken
event
    CInt
result <- (FunPtr C_WidgetClassGrabBrokenEventFieldCallback
-> C_WidgetClassGrabBrokenEventFieldCallback
__dynamic_C_WidgetClassGrabBrokenEventFieldCallback FunPtr C_WidgetClassGrabBrokenEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventGrabBroken
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventGrabBroken -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventGrabBroken
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGrabBrokenEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGrabBrokenEventFieldCallback :: C_WidgetClassGrabBrokenEventFieldCallback -> IO (FunPtr C_WidgetClassGrabBrokenEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGrabBrokenEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventGrabBroken.EventGrabBroken
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGrabBrokenEventFieldCallback`@.
noWidgetClassGrabBrokenEventFieldCallback :: Maybe WidgetClassGrabBrokenEventFieldCallback
noWidgetClassGrabBrokenEventFieldCallback :: Maybe WidgetClassGrabBrokenEventFieldCallback
noWidgetClassGrabBrokenEventFieldCallback = Maybe WidgetClassGrabBrokenEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGrabBrokenEventFieldCallback :: MonadIO m => WidgetClassGrabBrokenEventFieldCallback -> m (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
genClosure_WidgetClassGrabBrokenEventFieldCallback :: WidgetClassGrabBrokenEventFieldCallback
-> m (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
genClosure_WidgetClassGrabBrokenEventFieldCallback cb :: WidgetClassGrabBrokenEventFieldCallback
cb = IO (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
-> m (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
 -> m (GClosure C_WidgetClassGrabBrokenEventFieldCallback))
-> IO (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
-> m (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGrabBrokenEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback))
-> WidgetClassGrabBrokenEventFieldCallback
-> C_WidgetClassGrabBrokenEventFieldCallback
wrap_WidgetClassGrabBrokenEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassGrabBrokenEventFieldCallback
cb
    C_WidgetClassGrabBrokenEventFieldCallback
-> IO (FunPtr C_WidgetClassGrabBrokenEventFieldCallback)
mk_WidgetClassGrabBrokenEventFieldCallback C_WidgetClassGrabBrokenEventFieldCallback
cb' IO (FunPtr C_WidgetClassGrabBrokenEventFieldCallback)
-> (FunPtr C_WidgetClassGrabBrokenEventFieldCallback
    -> IO (GClosure C_WidgetClassGrabBrokenEventFieldCallback))
-> IO (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGrabBrokenEventFieldCallback
-> IO (GClosure C_WidgetClassGrabBrokenEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGrabBrokenEventFieldCallback` into a `C_WidgetClassGrabBrokenEventFieldCallback`.
wrap_WidgetClassGrabBrokenEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback)) ->
    WidgetClassGrabBrokenEventFieldCallback ->
    C_WidgetClassGrabBrokenEventFieldCallback
wrap_WidgetClassGrabBrokenEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback))
-> WidgetClassGrabBrokenEventFieldCallback
-> C_WidgetClassGrabBrokenEventFieldCallback
wrap_WidgetClassGrabBrokenEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback))
funptrptr _cb :: WidgetClassGrabBrokenEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventGrabBroken
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventGrabBroken
event' <- ((ManagedPtr EventGrabBroken -> EventGrabBroken)
-> Ptr EventGrabBroken -> IO EventGrabBroken
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventGrabBroken -> EventGrabBroken
Gdk.EventGrabBroken.EventGrabBroken) Ptr EventGrabBroken
event
    Bool
result <- WidgetClassGrabBrokenEventFieldCallback
_cb  Widget
widget' EventGrabBroken
event'
    Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassGrabBrokenEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassGetRequestModeFieldCallback
--          -> Callable {returnType = Just (TInterface (Name {namespace = "Gtk", name = "SizeRequestMode"})), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "The #GtkSizeRequestMode preferred by @widget.", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetRequestModeFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO CUInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget instance"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Gtk" , name = "SizeRequestMode" })
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetRequestModeFieldCallback :: FunPtr C_WidgetClassGetRequestModeFieldCallback -> C_WidgetClassGetRequestModeFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetRequestModeFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetRequestModeFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> m Gtk.Enums.SizeRequestMode
    -- ^ __Returns:__ The t'GI.Gtk.Enums.SizeRequestMode' preferred by /@widget@/.
dynamic_WidgetClassGetRequestModeFieldCallback :: FunPtr C_WidgetClassGetRequestModeFieldCallback
-> a -> m SizeRequestMode
dynamic_WidgetClassGetRequestModeFieldCallback __funPtr :: FunPtr C_WidgetClassGetRequestModeFieldCallback
__funPtr widget :: a
widget = IO SizeRequestMode -> m SizeRequestMode
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SizeRequestMode -> m SizeRequestMode)
-> IO SizeRequestMode -> m SizeRequestMode
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    CUInt
result <- (FunPtr C_WidgetClassGetRequestModeFieldCallback
-> C_WidgetClassGetRequestModeFieldCallback
__dynamic_C_WidgetClassGetRequestModeFieldCallback FunPtr C_WidgetClassGetRequestModeFieldCallback
__funPtr) Ptr Widget
widget'
    let result' :: SizeRequestMode
result' = (Int -> SizeRequestMode
forall a. Enum a => Int -> a
toEnum (Int -> SizeRequestMode)
-> (CUInt -> Int) -> CUInt -> SizeRequestMode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    SizeRequestMode -> IO SizeRequestMode
forall (m :: * -> *) a. Monad m => a -> m a
return SizeRequestMode
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetRequestModeFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetRequestModeFieldCallback :: C_WidgetClassGetRequestModeFieldCallback -> IO (FunPtr C_WidgetClassGetRequestModeFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetRequestModeFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> IO Gtk.Enums.SizeRequestMode
    -- ^ __Returns:__ The t'GI.Gtk.Enums.SizeRequestMode' preferred by /@widget@/.

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetRequestModeFieldCallback`@.
noWidgetClassGetRequestModeFieldCallback :: Maybe WidgetClassGetRequestModeFieldCallback
noWidgetClassGetRequestModeFieldCallback :: Maybe WidgetClassGetRequestModeFieldCallback
noWidgetClassGetRequestModeFieldCallback = Maybe WidgetClassGetRequestModeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetRequestModeFieldCallback :: MonadIO m => WidgetClassGetRequestModeFieldCallback -> m (GClosure C_WidgetClassGetRequestModeFieldCallback)
genClosure_WidgetClassGetRequestModeFieldCallback :: WidgetClassGetRequestModeFieldCallback
-> m (GClosure C_WidgetClassGetRequestModeFieldCallback)
genClosure_WidgetClassGetRequestModeFieldCallback cb :: WidgetClassGetRequestModeFieldCallback
cb = IO (GClosure C_WidgetClassGetRequestModeFieldCallback)
-> m (GClosure C_WidgetClassGetRequestModeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGetRequestModeFieldCallback)
 -> m (GClosure C_WidgetClassGetRequestModeFieldCallback))
-> IO (GClosure C_WidgetClassGetRequestModeFieldCallback)
-> m (GClosure C_WidgetClassGetRequestModeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetRequestModeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback))
-> WidgetClassGetRequestModeFieldCallback
-> C_WidgetClassGetRequestModeFieldCallback
wrap_WidgetClassGetRequestModeFieldCallback Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetRequestModeFieldCallback
cb
    C_WidgetClassGetRequestModeFieldCallback
-> IO (FunPtr C_WidgetClassGetRequestModeFieldCallback)
mk_WidgetClassGetRequestModeFieldCallback C_WidgetClassGetRequestModeFieldCallback
cb' IO (FunPtr C_WidgetClassGetRequestModeFieldCallback)
-> (FunPtr C_WidgetClassGetRequestModeFieldCallback
    -> IO (GClosure C_WidgetClassGetRequestModeFieldCallback))
-> IO (GClosure C_WidgetClassGetRequestModeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGetRequestModeFieldCallback
-> IO (GClosure C_WidgetClassGetRequestModeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetRequestModeFieldCallback` into a `C_WidgetClassGetRequestModeFieldCallback`.
wrap_WidgetClassGetRequestModeFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback)) ->
    WidgetClassGetRequestModeFieldCallback ->
    C_WidgetClassGetRequestModeFieldCallback
wrap_WidgetClassGetRequestModeFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback))
-> WidgetClassGetRequestModeFieldCallback
-> C_WidgetClassGetRequestModeFieldCallback
wrap_WidgetClassGetRequestModeFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback))
funptrptr _cb :: WidgetClassGetRequestModeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    SizeRequestMode
result <- WidgetClassGetRequestModeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassGetRequestModeFieldCallback))
funptrptr
    let result' :: CUInt
result' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (SizeRequestMode -> Int) -> SizeRequestMode -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SizeRequestMode -> Int
forall a. Enum a => a -> Int
fromEnum) SizeRequestMode
result
    CUInt -> IO CUInt
forall (m :: * -> *) a. Monad m => a -> m a
return CUInt
result'


-- callback WidgetClassGetPreferredWidthForHeightFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the height which is available for allocation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the minimum width, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "natural_width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the natural width, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetPreferredWidthForHeightFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Int32 ->
    Ptr Int32 ->
    Ptr Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget instance"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "height"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the height which is available for allocation"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_width"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location for storing the minimum width, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "natural_width"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location for storing the natural width, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetPreferredWidthForHeightFieldCallback :: FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback -> C_WidgetClassGetPreferredWidthForHeightFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetPreferredWidthForHeightFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> Int32
    -- ^ /@height@/: the height which is available for allocation
    -> m ((Int32, Int32))
dynamic_WidgetClassGetPreferredWidthForHeightFieldCallback :: FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> a -> Int32 -> m (Int32, Int32)
dynamic_WidgetClassGetPreferredWidthForHeightFieldCallback __funPtr :: FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
__funPtr widget :: a
widget height :: Int32
height = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Int32
minimumWidth <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
naturalWidth <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> C_WidgetClassGetPreferredWidthForHeightFieldCallback
__dynamic_C_WidgetClassGetPreferredWidthForHeightFieldCallback FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
__funPtr) Ptr Widget
widget' Int32
height Ptr Int32
minimumWidth Ptr Int32
naturalWidth
    Int32
minimumWidth' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
minimumWidth
    Int32
naturalWidth' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
naturalWidth
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
minimumWidth
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
naturalWidth
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
minimumWidth', Int32
naturalWidth')

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetPreferredWidthForHeightFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetPreferredWidthForHeightFieldCallback :: C_WidgetClassGetPreferredWidthForHeightFieldCallback -> IO (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetPreferredWidthForHeightFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> Int32
    -- ^ /@height@/: the height which is available for allocation
    -> IO ((Int32, Int32))

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetPreferredWidthForHeightFieldCallback`@.
noWidgetClassGetPreferredWidthForHeightFieldCallback :: Maybe WidgetClassGetPreferredWidthForHeightFieldCallback
noWidgetClassGetPreferredWidthForHeightFieldCallback :: Maybe WidgetClassGetPreferredWidthForHeightFieldCallback
noWidgetClassGetPreferredWidthForHeightFieldCallback = Maybe WidgetClassGetPreferredWidthForHeightFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetPreferredWidthForHeightFieldCallback :: MonadIO m => WidgetClassGetPreferredWidthForHeightFieldCallback -> m (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
genClosure_WidgetClassGetPreferredWidthForHeightFieldCallback :: WidgetClassGetPreferredWidthForHeightFieldCallback
-> m (GClosure
        C_WidgetClassGetPreferredWidthForHeightFieldCallback)
genClosure_WidgetClassGetPreferredWidthForHeightFieldCallback cb :: WidgetClassGetPreferredWidthForHeightFieldCallback
cb = IO (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
-> m (GClosure
        C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
 -> m (GClosure
         C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> IO
     (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
-> m (GClosure
        C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetPreferredWidthForHeightFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> WidgetClassGetPreferredWidthForHeightFieldCallback
-> C_WidgetClassGetPreferredWidthForHeightFieldCallback
wrap_WidgetClassGetPreferredWidthForHeightFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetPreferredWidthForHeightFieldCallback
cb
    C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> IO (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback)
mk_WidgetClassGetPreferredWidthForHeightFieldCallback C_WidgetClassGetPreferredWidthForHeightFieldCallback
cb' IO (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback)
-> (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
    -> IO
         (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> IO
     (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> IO
     (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetPreferredWidthForHeightFieldCallback` into a `C_WidgetClassGetPreferredWidthForHeightFieldCallback`.
wrap_WidgetClassGetPreferredWidthForHeightFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback)) ->
    WidgetClassGetPreferredWidthForHeightFieldCallback ->
    C_WidgetClassGetPreferredWidthForHeightFieldCallback
wrap_WidgetClassGetPreferredWidthForHeightFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> WidgetClassGetPreferredWidthForHeightFieldCallback
-> C_WidgetClassGetPreferredWidthForHeightFieldCallback
wrap_WidgetClassGetPreferredWidthForHeightFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
funptrptr _cb :: WidgetClassGetPreferredWidthForHeightFieldCallback
_cb widget :: Ptr Widget
widget height :: Int32
height minimumWidth :: Ptr Int32
minimumWidth naturalWidth :: Ptr Int32
naturalWidth = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (outminimumWidth :: Int32
outminimumWidth, outnaturalWidth :: Int32
outnaturalWidth) <- WidgetClassGetPreferredWidthForHeightFieldCallback
_cb  Widget
widget' Int32
height
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
minimumWidth Int32
outminimumWidth
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
naturalWidth Int32
outnaturalWidth
    Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
funptrptr


-- callback WidgetClassGetPreferredWidthFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the minimum width, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "natural_width", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the natural width, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetPreferredWidthFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Int32 ->
    Ptr Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget instance"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_width"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "location to store the minimum width, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "natural_width"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "location to store the natural width, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetPreferredWidthFieldCallback :: FunPtr C_WidgetClassGetPreferredWidthFieldCallback -> C_WidgetClassGetPreferredWidthFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetPreferredWidthFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetPreferredWidthFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> m ((Int32, Int32))
dynamic_WidgetClassGetPreferredWidthFieldCallback :: FunPtr C_WidgetClassGetPreferredWidthFieldCallback
-> a -> m (Int32, Int32)
dynamic_WidgetClassGetPreferredWidthFieldCallback __funPtr :: FunPtr C_WidgetClassGetPreferredWidthFieldCallback
__funPtr widget :: a
widget = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Int32
minimumWidth <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
naturalWidth <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    (FunPtr C_WidgetClassGetPreferredWidthFieldCallback
-> C_WidgetClassGetPreferredWidthFieldCallback
__dynamic_C_WidgetClassGetPreferredWidthFieldCallback FunPtr C_WidgetClassGetPreferredWidthFieldCallback
__funPtr) Ptr Widget
widget' Ptr Int32
minimumWidth Ptr Int32
naturalWidth
    Int32
minimumWidth' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
minimumWidth
    Int32
naturalWidth' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
naturalWidth
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
minimumWidth
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
naturalWidth
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
minimumWidth', Int32
naturalWidth')

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetPreferredWidthFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetPreferredWidthFieldCallback :: C_WidgetClassGetPreferredWidthFieldCallback -> IO (FunPtr C_WidgetClassGetPreferredWidthFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetPreferredWidthFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> IO ((Int32, Int32))

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetPreferredWidthFieldCallback`@.
noWidgetClassGetPreferredWidthFieldCallback :: Maybe WidgetClassGetPreferredWidthFieldCallback
noWidgetClassGetPreferredWidthFieldCallback :: Maybe WidgetClassGetPreferredWidthFieldCallback
noWidgetClassGetPreferredWidthFieldCallback = Maybe WidgetClassGetPreferredWidthFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetPreferredWidthFieldCallback :: MonadIO m => WidgetClassGetPreferredWidthFieldCallback -> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
genClosure_WidgetClassGetPreferredWidthFieldCallback :: WidgetClassGetPreferredWidthFieldCallback
-> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
genClosure_WidgetClassGetPreferredWidthFieldCallback cb :: WidgetClassGetPreferredWidthFieldCallback
cb = IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
-> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
 -> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback))
-> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
-> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetPreferredWidthFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
-> WidgetClassGetPreferredWidthFieldCallback
-> C_WidgetClassGetPreferredWidthFieldCallback
wrap_WidgetClassGetPreferredWidthFieldCallback Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetPreferredWidthFieldCallback
cb
    C_WidgetClassGetPreferredWidthFieldCallback
-> IO (FunPtr C_WidgetClassGetPreferredWidthFieldCallback)
mk_WidgetClassGetPreferredWidthFieldCallback C_WidgetClassGetPreferredWidthFieldCallback
cb' IO (FunPtr C_WidgetClassGetPreferredWidthFieldCallback)
-> (FunPtr C_WidgetClassGetPreferredWidthFieldCallback
    -> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback))
-> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGetPreferredWidthFieldCallback
-> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetPreferredWidthFieldCallback` into a `C_WidgetClassGetPreferredWidthFieldCallback`.
wrap_WidgetClassGetPreferredWidthFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback)) ->
    WidgetClassGetPreferredWidthFieldCallback ->
    C_WidgetClassGetPreferredWidthFieldCallback
wrap_WidgetClassGetPreferredWidthFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
-> WidgetClassGetPreferredWidthFieldCallback
-> C_WidgetClassGetPreferredWidthFieldCallback
wrap_WidgetClassGetPreferredWidthFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
funptrptr _cb :: WidgetClassGetPreferredWidthFieldCallback
_cb widget :: Ptr Widget
widget minimumWidth :: Ptr Int32
minimumWidth naturalWidth :: Ptr Int32
naturalWidth = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (outminimumWidth :: Int32
outminimumWidth, outnaturalWidth :: Int32
outnaturalWidth) <- WidgetClassGetPreferredWidthFieldCallback
_cb  Widget
widget'
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
minimumWidth Int32
outminimumWidth
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
naturalWidth Int32
outnaturalWidth
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
funptrptr


-- callback WidgetClassGetPreferredHeightForWidthFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width which is available for allocation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the minimum height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "natural_height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the natural height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetPreferredHeightForWidthFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Int32 ->
    Ptr Int32 ->
    Ptr Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget instance"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "width"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the width which is available for allocation"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_height"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location for storing the minimum height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "natural_height"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location for storing the natural height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetPreferredHeightForWidthFieldCallback :: FunPtr C_WidgetClassGetPreferredHeightForWidthFieldCallback -> C_WidgetClassGetPreferredHeightForWidthFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetPreferredHeightForWidthFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetPreferredHeightForWidthFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> Int32
    -- ^ /@width@/: the width which is available for allocation
    -> m ((Int32, Int32))
dynamic_WidgetClassGetPreferredHeightForWidthFieldCallback :: FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> a -> Int32 -> m (Int32, Int32)
dynamic_WidgetClassGetPreferredHeightForWidthFieldCallback __funPtr :: FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
__funPtr widget :: a
widget width :: Int32
width = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Int32
minimumHeight <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
naturalHeight <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> C_WidgetClassGetPreferredWidthForHeightFieldCallback
__dynamic_C_WidgetClassGetPreferredHeightForWidthFieldCallback FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
__funPtr) Ptr Widget
widget' Int32
width Ptr Int32
minimumHeight Ptr Int32
naturalHeight
    Int32
minimumHeight' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
minimumHeight
    Int32
naturalHeight' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
naturalHeight
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
minimumHeight
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
naturalHeight
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
minimumHeight', Int32
naturalHeight')

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetPreferredHeightForWidthFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetPreferredHeightForWidthFieldCallback :: C_WidgetClassGetPreferredHeightForWidthFieldCallback -> IO (FunPtr C_WidgetClassGetPreferredHeightForWidthFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetPreferredHeightForWidthFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> Int32
    -- ^ /@width@/: the width which is available for allocation
    -> IO ((Int32, Int32))

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetPreferredHeightForWidthFieldCallback`@.
noWidgetClassGetPreferredHeightForWidthFieldCallback :: Maybe WidgetClassGetPreferredHeightForWidthFieldCallback
noWidgetClassGetPreferredHeightForWidthFieldCallback :: Maybe WidgetClassGetPreferredWidthForHeightFieldCallback
noWidgetClassGetPreferredHeightForWidthFieldCallback = Maybe WidgetClassGetPreferredWidthForHeightFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetPreferredHeightForWidthFieldCallback :: MonadIO m => WidgetClassGetPreferredHeightForWidthFieldCallback -> m (GClosure C_WidgetClassGetPreferredHeightForWidthFieldCallback)
genClosure_WidgetClassGetPreferredHeightForWidthFieldCallback :: WidgetClassGetPreferredWidthForHeightFieldCallback
-> m (GClosure
        C_WidgetClassGetPreferredWidthForHeightFieldCallback)
genClosure_WidgetClassGetPreferredHeightForWidthFieldCallback cb :: WidgetClassGetPreferredWidthForHeightFieldCallback
cb = IO (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
-> m (GClosure
        C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
 -> m (GClosure
         C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> IO
     (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
-> m (GClosure
        C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetPreferredWidthForHeightFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> WidgetClassGetPreferredWidthForHeightFieldCallback
-> C_WidgetClassGetPreferredWidthForHeightFieldCallback
wrap_WidgetClassGetPreferredHeightForWidthFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetPreferredWidthForHeightFieldCallback
cb
    C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> IO (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback)
mk_WidgetClassGetPreferredHeightForWidthFieldCallback C_WidgetClassGetPreferredWidthForHeightFieldCallback
cb' IO (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback)
-> (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
    -> IO
         (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> IO
     (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback
-> IO
     (GClosure C_WidgetClassGetPreferredWidthForHeightFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetPreferredHeightForWidthFieldCallback` into a `C_WidgetClassGetPreferredHeightForWidthFieldCallback`.
wrap_WidgetClassGetPreferredHeightForWidthFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredHeightForWidthFieldCallback)) ->
    WidgetClassGetPreferredHeightForWidthFieldCallback ->
    C_WidgetClassGetPreferredHeightForWidthFieldCallback
wrap_WidgetClassGetPreferredHeightForWidthFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> WidgetClassGetPreferredWidthForHeightFieldCallback
-> C_WidgetClassGetPreferredWidthForHeightFieldCallback
wrap_WidgetClassGetPreferredHeightForWidthFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
funptrptr _cb :: WidgetClassGetPreferredWidthForHeightFieldCallback
_cb widget :: Ptr Widget
widget width :: Int32
width minimumHeight :: Ptr Int32
minimumHeight naturalHeight :: Ptr Int32
naturalHeight = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (outminimumHeight :: Int32
outminimumHeight, outnaturalHeight :: Int32
outnaturalHeight) <- WidgetClassGetPreferredWidthForHeightFieldCallback
_cb  Widget
widget' Int32
width
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
minimumHeight Int32
outminimumHeight
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
naturalHeight Int32
outnaturalHeight
    Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassGetPreferredWidthForHeightFieldCallback))
funptrptr


-- callback WidgetClassGetPreferredHeightFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the minimum height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "natural_height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the natural height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetPreferredHeightFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Int32 ->
    Ptr Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget instance"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_height"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location to store the minimum height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "natural_height"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location to store the natural height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetPreferredHeightFieldCallback :: FunPtr C_WidgetClassGetPreferredHeightFieldCallback -> C_WidgetClassGetPreferredHeightFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetPreferredHeightFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetPreferredHeightFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> m ((Int32, Int32))
dynamic_WidgetClassGetPreferredHeightFieldCallback :: FunPtr C_WidgetClassGetPreferredWidthFieldCallback
-> a -> m (Int32, Int32)
dynamic_WidgetClassGetPreferredHeightFieldCallback __funPtr :: FunPtr C_WidgetClassGetPreferredWidthFieldCallback
__funPtr widget :: a
widget = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Int32
minimumHeight <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
naturalHeight <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    (FunPtr C_WidgetClassGetPreferredWidthFieldCallback
-> C_WidgetClassGetPreferredWidthFieldCallback
__dynamic_C_WidgetClassGetPreferredHeightFieldCallback FunPtr C_WidgetClassGetPreferredWidthFieldCallback
__funPtr) Ptr Widget
widget' Ptr Int32
minimumHeight Ptr Int32
naturalHeight
    Int32
minimumHeight' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
minimumHeight
    Int32
naturalHeight' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
naturalHeight
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
minimumHeight
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
naturalHeight
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
minimumHeight', Int32
naturalHeight')

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetPreferredHeightFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetPreferredHeightFieldCallback :: C_WidgetClassGetPreferredHeightFieldCallback -> IO (FunPtr C_WidgetClassGetPreferredHeightFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetPreferredHeightFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> IO ((Int32, Int32))

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetPreferredHeightFieldCallback`@.
noWidgetClassGetPreferredHeightFieldCallback :: Maybe WidgetClassGetPreferredHeightFieldCallback
noWidgetClassGetPreferredHeightFieldCallback :: Maybe WidgetClassGetPreferredWidthFieldCallback
noWidgetClassGetPreferredHeightFieldCallback = Maybe WidgetClassGetPreferredWidthFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetPreferredHeightFieldCallback :: MonadIO m => WidgetClassGetPreferredHeightFieldCallback -> m (GClosure C_WidgetClassGetPreferredHeightFieldCallback)
genClosure_WidgetClassGetPreferredHeightFieldCallback :: WidgetClassGetPreferredWidthFieldCallback
-> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
genClosure_WidgetClassGetPreferredHeightFieldCallback cb :: WidgetClassGetPreferredWidthFieldCallback
cb = IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
-> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
 -> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback))
-> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
-> m (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetPreferredWidthFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
-> WidgetClassGetPreferredWidthFieldCallback
-> C_WidgetClassGetPreferredWidthFieldCallback
wrap_WidgetClassGetPreferredHeightFieldCallback Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetPreferredWidthFieldCallback
cb
    C_WidgetClassGetPreferredWidthFieldCallback
-> IO (FunPtr C_WidgetClassGetPreferredWidthFieldCallback)
mk_WidgetClassGetPreferredHeightFieldCallback C_WidgetClassGetPreferredWidthFieldCallback
cb' IO (FunPtr C_WidgetClassGetPreferredWidthFieldCallback)
-> (FunPtr C_WidgetClassGetPreferredWidthFieldCallback
    -> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback))
-> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGetPreferredWidthFieldCallback
-> IO (GClosure C_WidgetClassGetPreferredWidthFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetPreferredHeightFieldCallback` into a `C_WidgetClassGetPreferredHeightFieldCallback`.
wrap_WidgetClassGetPreferredHeightFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredHeightFieldCallback)) ->
    WidgetClassGetPreferredHeightFieldCallback ->
    C_WidgetClassGetPreferredHeightFieldCallback
wrap_WidgetClassGetPreferredHeightFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
-> WidgetClassGetPreferredWidthFieldCallback
-> C_WidgetClassGetPreferredWidthFieldCallback
wrap_WidgetClassGetPreferredHeightFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
funptrptr _cb :: WidgetClassGetPreferredWidthFieldCallback
_cb widget :: Ptr Widget
widget minimumHeight :: Ptr Int32
minimumHeight naturalHeight :: Ptr Int32
naturalHeight = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (outminimumHeight :: Int32
outminimumHeight, outnaturalHeight :: Int32
outnaturalHeight) <- WidgetClassGetPreferredWidthFieldCallback
_cb  Widget
widget'
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
minimumHeight Int32
outminimumHeight
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
naturalHeight Int32
outnaturalHeight
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassGetPreferredWidthFieldCallback))
funptrptr


-- callback WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width which is available for allocation, or -1 if none", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the minimum height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "natural_height", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the natural height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "minimum_baseline", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the baseline for the minimum height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "natural_baseline", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location for storing the baseline for the natural height, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Int32 ->
    Ptr Int32 ->
    Ptr Int32 ->
    Ptr Int32 ->
    Ptr Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget instance"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "width"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the width which is available for allocation, or -1 if none"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_height"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location for storing the minimum height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "natural_height"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "location for storing the natural height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "minimum_baseline"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "location for storing the baseline for the minimum height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "natural_baseline"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "location for storing the baseline for the natural height, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: FunPtr C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback -> C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> Int32
    -- ^ /@width@/: the width which is available for allocation, or -1 if none
    -> m ((Int32, Int32, Int32, Int32))
dynamic_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: FunPtr
  C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> a -> Int32 -> m (Int32, Int32, Int32, Int32)
dynamic_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback __funPtr :: FunPtr
  C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
__funPtr widget :: a
widget width :: Int32
width = IO (Int32, Int32, Int32, Int32) -> m (Int32, Int32, Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32, Int32, Int32) -> m (Int32, Int32, Int32, Int32))
-> IO (Int32, Int32, Int32, Int32)
-> m (Int32, Int32, Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Int32
minimumHeight <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
naturalHeight <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
minimumBaseline <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
naturalBaseline <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    (FunPtr
  C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
__dynamic_C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback FunPtr
  C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
__funPtr) Ptr Widget
widget' Int32
width Ptr Int32
minimumHeight Ptr Int32
naturalHeight Ptr Int32
minimumBaseline Ptr Int32
naturalBaseline
    Int32
minimumHeight' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
minimumHeight
    Int32
naturalHeight' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
naturalHeight
    Int32
minimumBaseline' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
minimumBaseline
    Int32
naturalBaseline' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
naturalBaseline
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
minimumHeight
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
naturalHeight
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
minimumBaseline
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
naturalBaseline
    (Int32, Int32, Int32, Int32) -> IO (Int32, Int32, Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
minimumHeight', Int32
naturalHeight', Int32
minimumBaseline', Int32
naturalBaseline')

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback -> IO (FunPtr C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget' instance
    -> Int32
    -- ^ /@width@/: the width which is available for allocation, or -1 if none
    -> IO ((Int32, Int32, Int32, Int32))

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback`@.
noWidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: Maybe WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
noWidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: Maybe WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
noWidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback = Maybe WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: MonadIO m => WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback -> m (GClosure C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
genClosure_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> m (GClosure
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
genClosure_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback cb :: WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
cb = IO
  (GClosure
     C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
-> m (GClosure
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO
   (GClosure
      C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
 -> m (GClosure
         C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
-> IO
     (GClosure
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
-> m (GClosure
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
cb' = Maybe
  (Ptr
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
-> WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
wrap_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback Maybe
  (Ptr
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
cb
    C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> IO
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
mk_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
cb' IO
  (FunPtr
     C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
-> (FunPtr
      C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
    -> IO
         (GClosure
            C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
-> IO
     (GClosure
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr
  C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> IO
     (GClosure
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback` into a `C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback`.
wrap_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback)) ->
    WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback ->
    C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
wrap_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback :: Maybe
  (Ptr
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
-> WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
-> C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
wrap_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback funptrptr :: Maybe
  (Ptr
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
funptrptr _cb :: WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
_cb widget :: Ptr Widget
widget width :: Int32
width minimumHeight :: Ptr Int32
minimumHeight naturalHeight :: Ptr Int32
naturalHeight minimumBaseline :: Ptr Int32
minimumBaseline naturalBaseline :: Ptr Int32
naturalBaseline = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (outminimumHeight :: Int32
outminimumHeight, outnaturalHeight :: Int32
outnaturalHeight, outminimumBaseline :: Int32
outminimumBaseline, outnaturalBaseline :: Int32
outnaturalBaseline) <- WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback
_cb  Widget
widget' Int32
width
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
minimumHeight Int32
outminimumHeight
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
naturalHeight Int32
outnaturalHeight
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
minimumBaseline Int32
outminimumBaseline
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
naturalBaseline Int32
outnaturalBaseline
    Maybe
  (Ptr
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr
     (FunPtr
        C_WidgetClassGetPreferredHeightAndBaselineForWidthFieldCallback))
funptrptr


-- callback WidgetClassGetAccessibleFieldCallback
--          -> Callable {returnType = Just (TInterface (Name {namespace = "Atk", name = "Object"})), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "the #AtkObject associated with @widget", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassGetAccessibleFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO (Ptr Atk.Object.Object)

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Atk" , name = "Object" })
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassGetAccessibleFieldCallback :: FunPtr C_WidgetClassGetAccessibleFieldCallback -> C_WidgetClassGetAccessibleFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassGetAccessibleFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassGetAccessibleFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m Atk.Object.Object
    -- ^ __Returns:__ the t'GI.Atk.Objects.Object.Object' associated with /@widget@/
dynamic_WidgetClassGetAccessibleFieldCallback :: FunPtr C_WidgetClassGetAccessibleFieldCallback -> a -> m Object
dynamic_WidgetClassGetAccessibleFieldCallback __funPtr :: FunPtr C_WidgetClassGetAccessibleFieldCallback
__funPtr widget :: a
widget = IO Object -> m Object
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Object -> m Object) -> IO Object -> m Object
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Object
result <- (FunPtr C_WidgetClassGetAccessibleFieldCallback
-> C_WidgetClassGetAccessibleFieldCallback
__dynamic_C_WidgetClassGetAccessibleFieldCallback FunPtr C_WidgetClassGetAccessibleFieldCallback
__funPtr) Ptr Widget
widget'
    Text -> Ptr Object -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "widgetClassGetAccessibleFieldCallback" Ptr Object
result
    Object
result' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
Atk.Object.Object) Ptr Object
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Object -> IO Object
forall (m :: * -> *) a. Monad m => a -> m a
return Object
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassGetAccessibleFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassGetAccessibleFieldCallback :: C_WidgetClassGetAccessibleFieldCallback -> IO (FunPtr C_WidgetClassGetAccessibleFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassGetAccessibleFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO Atk.Object.Object
    -- ^ __Returns:__ the t'GI.Atk.Objects.Object.Object' associated with /@widget@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassGetAccessibleFieldCallback`@.
noWidgetClassGetAccessibleFieldCallback :: Maybe WidgetClassGetAccessibleFieldCallback
noWidgetClassGetAccessibleFieldCallback :: Maybe WidgetClassGetAccessibleFieldCallback
noWidgetClassGetAccessibleFieldCallback = Maybe WidgetClassGetAccessibleFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassGetAccessibleFieldCallback :: MonadIO m => WidgetClassGetAccessibleFieldCallback -> m (GClosure C_WidgetClassGetAccessibleFieldCallback)
genClosure_WidgetClassGetAccessibleFieldCallback :: WidgetClassGetAccessibleFieldCallback
-> m (GClosure C_WidgetClassGetAccessibleFieldCallback)
genClosure_WidgetClassGetAccessibleFieldCallback cb :: WidgetClassGetAccessibleFieldCallback
cb = IO (GClosure C_WidgetClassGetAccessibleFieldCallback)
-> m (GClosure C_WidgetClassGetAccessibleFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassGetAccessibleFieldCallback)
 -> m (GClosure C_WidgetClassGetAccessibleFieldCallback))
-> IO (GClosure C_WidgetClassGetAccessibleFieldCallback)
-> m (GClosure C_WidgetClassGetAccessibleFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassGetAccessibleFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback))
-> WidgetClassGetAccessibleFieldCallback
-> C_WidgetClassGetAccessibleFieldCallback
wrap_WidgetClassGetAccessibleFieldCallback Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback))
forall a. Maybe a
Nothing WidgetClassGetAccessibleFieldCallback
cb
    C_WidgetClassGetAccessibleFieldCallback
-> IO (FunPtr C_WidgetClassGetAccessibleFieldCallback)
mk_WidgetClassGetAccessibleFieldCallback C_WidgetClassGetAccessibleFieldCallback
cb' IO (FunPtr C_WidgetClassGetAccessibleFieldCallback)
-> (FunPtr C_WidgetClassGetAccessibleFieldCallback
    -> IO (GClosure C_WidgetClassGetAccessibleFieldCallback))
-> IO (GClosure C_WidgetClassGetAccessibleFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassGetAccessibleFieldCallback
-> IO (GClosure C_WidgetClassGetAccessibleFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassGetAccessibleFieldCallback` into a `C_WidgetClassGetAccessibleFieldCallback`.
wrap_WidgetClassGetAccessibleFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback)) ->
    WidgetClassGetAccessibleFieldCallback ->
    C_WidgetClassGetAccessibleFieldCallback
wrap_WidgetClassGetAccessibleFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback))
-> WidgetClassGetAccessibleFieldCallback
-> C_WidgetClassGetAccessibleFieldCallback
wrap_WidgetClassGetAccessibleFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback))
funptrptr _cb :: WidgetClassGetAccessibleFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Object
result <- WidgetClassGetAccessibleFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassGetAccessibleFieldCallback))
funptrptr
    Ptr Object
result' <- Object -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr Object
result
    Ptr Object -> IO (Ptr Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
result'


-- callback WidgetClassFocusOutEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventFocus"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassFocusOutEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventFocus.EventFocus ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventFocus" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassFocusOutEventFieldCallback :: FunPtr C_WidgetClassFocusOutEventFieldCallback -> C_WidgetClassFocusOutEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassFocusOutEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassFocusOutEventFieldCallback
    -> a
    -> Gdk.EventFocus.EventFocus
    -> m Bool
dynamic_WidgetClassFocusOutEventFieldCallback :: FunPtr C_WidgetClassFocusOutEventFieldCallback
-> a -> EventFocus -> m Bool
dynamic_WidgetClassFocusOutEventFieldCallback __funPtr :: FunPtr C_WidgetClassFocusOutEventFieldCallback
__funPtr widget :: a
widget event :: EventFocus
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventFocus
event' <- EventFocus -> IO (Ptr EventFocus)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventFocus
event
    CInt
result <- (FunPtr C_WidgetClassFocusOutEventFieldCallback
-> C_WidgetClassFocusOutEventFieldCallback
__dynamic_C_WidgetClassFocusOutEventFieldCallback FunPtr C_WidgetClassFocusOutEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventFocus
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventFocus -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventFocus
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassFocusOutEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassFocusOutEventFieldCallback :: C_WidgetClassFocusOutEventFieldCallback -> IO (FunPtr C_WidgetClassFocusOutEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassFocusOutEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventFocus.EventFocus
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassFocusOutEventFieldCallback`@.
noWidgetClassFocusOutEventFieldCallback :: Maybe WidgetClassFocusOutEventFieldCallback
noWidgetClassFocusOutEventFieldCallback :: Maybe WidgetClassFocusOutEventFieldCallback
noWidgetClassFocusOutEventFieldCallback = Maybe WidgetClassFocusOutEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassFocusOutEventFieldCallback :: MonadIO m => WidgetClassFocusOutEventFieldCallback -> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
genClosure_WidgetClassFocusOutEventFieldCallback :: WidgetClassFocusOutEventFieldCallback
-> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
genClosure_WidgetClassFocusOutEventFieldCallback cb :: WidgetClassFocusOutEventFieldCallback
cb = IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
-> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
 -> m (GClosure C_WidgetClassFocusOutEventFieldCallback))
-> IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
-> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassFocusOutEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
-> WidgetClassFocusOutEventFieldCallback
-> C_WidgetClassFocusOutEventFieldCallback
wrap_WidgetClassFocusOutEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassFocusOutEventFieldCallback
cb
    C_WidgetClassFocusOutEventFieldCallback
-> IO (FunPtr C_WidgetClassFocusOutEventFieldCallback)
mk_WidgetClassFocusOutEventFieldCallback C_WidgetClassFocusOutEventFieldCallback
cb' IO (FunPtr C_WidgetClassFocusOutEventFieldCallback)
-> (FunPtr C_WidgetClassFocusOutEventFieldCallback
    -> IO (GClosure C_WidgetClassFocusOutEventFieldCallback))
-> IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassFocusOutEventFieldCallback
-> IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassFocusOutEventFieldCallback` into a `C_WidgetClassFocusOutEventFieldCallback`.
wrap_WidgetClassFocusOutEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback)) ->
    WidgetClassFocusOutEventFieldCallback ->
    C_WidgetClassFocusOutEventFieldCallback
wrap_WidgetClassFocusOutEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
-> WidgetClassFocusOutEventFieldCallback
-> C_WidgetClassFocusOutEventFieldCallback
wrap_WidgetClassFocusOutEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
funptrptr _cb :: WidgetClassFocusOutEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventFocus
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventFocus
event' <- ((ManagedPtr EventFocus -> EventFocus)
-> Ptr EventFocus -> IO EventFocus
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventFocus -> EventFocus
Gdk.EventFocus.EventFocus) Ptr EventFocus
event
    Bool
result <- WidgetClassFocusOutEventFieldCallback
_cb  Widget
widget' EventFocus
event'
    Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassFocusInEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventFocus"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassFocusInEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventFocus.EventFocus ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventFocus" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassFocusInEventFieldCallback :: FunPtr C_WidgetClassFocusInEventFieldCallback -> C_WidgetClassFocusInEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassFocusInEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassFocusInEventFieldCallback
    -> a
    -> Gdk.EventFocus.EventFocus
    -> m Bool
dynamic_WidgetClassFocusInEventFieldCallback :: FunPtr C_WidgetClassFocusOutEventFieldCallback
-> a -> EventFocus -> m Bool
dynamic_WidgetClassFocusInEventFieldCallback __funPtr :: FunPtr C_WidgetClassFocusOutEventFieldCallback
__funPtr widget :: a
widget event :: EventFocus
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventFocus
event' <- EventFocus -> IO (Ptr EventFocus)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventFocus
event
    CInt
result <- (FunPtr C_WidgetClassFocusOutEventFieldCallback
-> C_WidgetClassFocusOutEventFieldCallback
__dynamic_C_WidgetClassFocusInEventFieldCallback FunPtr C_WidgetClassFocusOutEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventFocus
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventFocus -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventFocus
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassFocusInEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassFocusInEventFieldCallback :: C_WidgetClassFocusInEventFieldCallback -> IO (FunPtr C_WidgetClassFocusInEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassFocusInEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventFocus.EventFocus
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassFocusInEventFieldCallback`@.
noWidgetClassFocusInEventFieldCallback :: Maybe WidgetClassFocusInEventFieldCallback
noWidgetClassFocusInEventFieldCallback :: Maybe WidgetClassFocusOutEventFieldCallback
noWidgetClassFocusInEventFieldCallback = Maybe WidgetClassFocusOutEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassFocusInEventFieldCallback :: MonadIO m => WidgetClassFocusInEventFieldCallback -> m (GClosure C_WidgetClassFocusInEventFieldCallback)
genClosure_WidgetClassFocusInEventFieldCallback :: WidgetClassFocusOutEventFieldCallback
-> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
genClosure_WidgetClassFocusInEventFieldCallback cb :: WidgetClassFocusOutEventFieldCallback
cb = IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
-> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
 -> m (GClosure C_WidgetClassFocusOutEventFieldCallback))
-> IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
-> m (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassFocusOutEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
-> WidgetClassFocusOutEventFieldCallback
-> C_WidgetClassFocusOutEventFieldCallback
wrap_WidgetClassFocusInEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassFocusOutEventFieldCallback
cb
    C_WidgetClassFocusOutEventFieldCallback
-> IO (FunPtr C_WidgetClassFocusOutEventFieldCallback)
mk_WidgetClassFocusInEventFieldCallback C_WidgetClassFocusOutEventFieldCallback
cb' IO (FunPtr C_WidgetClassFocusOutEventFieldCallback)
-> (FunPtr C_WidgetClassFocusOutEventFieldCallback
    -> IO (GClosure C_WidgetClassFocusOutEventFieldCallback))
-> IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassFocusOutEventFieldCallback
-> IO (GClosure C_WidgetClassFocusOutEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassFocusInEventFieldCallback` into a `C_WidgetClassFocusInEventFieldCallback`.
wrap_WidgetClassFocusInEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassFocusInEventFieldCallback)) ->
    WidgetClassFocusInEventFieldCallback ->
    C_WidgetClassFocusInEventFieldCallback
wrap_WidgetClassFocusInEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
-> WidgetClassFocusOutEventFieldCallback
-> C_WidgetClassFocusOutEventFieldCallback
wrap_WidgetClassFocusInEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
funptrptr _cb :: WidgetClassFocusOutEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventFocus
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventFocus
event' <- ((ManagedPtr EventFocus -> EventFocus)
-> Ptr EventFocus -> IO EventFocus
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventFocus -> EventFocus
Gdk.EventFocus.EventFocus) Ptr EventFocus
event
    Bool
result <- WidgetClassFocusOutEventFieldCallback
_cb  Widget
widget' EventFocus
event'
    Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassFocusOutEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassFocusFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "direction", argType = TInterface (Name {namespace = "Gtk", name = "DirectionType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassFocusFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "direction"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "DirectionType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassFocusFieldCallback :: FunPtr C_WidgetClassFocusFieldCallback -> C_WidgetClassFocusFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassFocusFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassFocusFieldCallback
    -> a
    -> Gtk.Enums.DirectionType
    -> m Bool
dynamic_WidgetClassFocusFieldCallback :: FunPtr C_WidgetClassShowHelpFieldCallback
-> a -> DirectionType -> m Bool
dynamic_WidgetClassFocusFieldCallback __funPtr :: FunPtr C_WidgetClassShowHelpFieldCallback
__funPtr widget :: a
widget direction :: DirectionType
direction = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let direction' :: CUInt
direction' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (DirectionType -> Int) -> DirectionType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DirectionType -> Int
forall a. Enum a => a -> Int
fromEnum) DirectionType
direction
    CInt
result <- (FunPtr C_WidgetClassShowHelpFieldCallback
-> C_WidgetClassShowHelpFieldCallback
__dynamic_C_WidgetClassFocusFieldCallback FunPtr C_WidgetClassShowHelpFieldCallback
__funPtr) Ptr Widget
widget' CUInt
direction'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassFocusFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassFocusFieldCallback :: C_WidgetClassFocusFieldCallback -> IO (FunPtr C_WidgetClassFocusFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassFocusFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.DirectionType
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassFocusFieldCallback`@.
noWidgetClassFocusFieldCallback :: Maybe WidgetClassFocusFieldCallback
noWidgetClassFocusFieldCallback :: Maybe WidgetClassKeynavFailedFieldCallback
noWidgetClassFocusFieldCallback = Maybe WidgetClassKeynavFailedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassFocusFieldCallback :: MonadIO m => WidgetClassFocusFieldCallback -> m (GClosure C_WidgetClassFocusFieldCallback)
genClosure_WidgetClassFocusFieldCallback :: WidgetClassKeynavFailedFieldCallback
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
genClosure_WidgetClassFocusFieldCallback cb :: WidgetClassKeynavFailedFieldCallback
cb = IO (GClosure C_WidgetClassShowHelpFieldCallback)
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassShowHelpFieldCallback)
 -> m (GClosure C_WidgetClassShowHelpFieldCallback))
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
-> m (GClosure C_WidgetClassShowHelpFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassShowHelpFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
-> WidgetClassKeynavFailedFieldCallback
-> C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassFocusFieldCallback Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
forall a. Maybe a
Nothing WidgetClassKeynavFailedFieldCallback
cb
    C_WidgetClassShowHelpFieldCallback
-> IO (FunPtr C_WidgetClassShowHelpFieldCallback)
mk_WidgetClassFocusFieldCallback C_WidgetClassShowHelpFieldCallback
cb' IO (FunPtr C_WidgetClassShowHelpFieldCallback)
-> (FunPtr C_WidgetClassShowHelpFieldCallback
    -> IO (GClosure C_WidgetClassShowHelpFieldCallback))
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassShowHelpFieldCallback
-> IO (GClosure C_WidgetClassShowHelpFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassFocusFieldCallback` into a `C_WidgetClassFocusFieldCallback`.
wrap_WidgetClassFocusFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassFocusFieldCallback)) ->
    WidgetClassFocusFieldCallback ->
    C_WidgetClassFocusFieldCallback
wrap_WidgetClassFocusFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
-> WidgetClassKeynavFailedFieldCallback
-> C_WidgetClassShowHelpFieldCallback
wrap_WidgetClassFocusFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
funptrptr _cb :: WidgetClassKeynavFailedFieldCallback
_cb widget :: Ptr Widget
widget direction :: CUInt
direction = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let direction' :: DirectionType
direction' = (Int -> DirectionType
forall a. Enum a => Int -> a
toEnum (Int -> DirectionType) -> (CUInt -> Int) -> CUInt -> DirectionType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
direction
    Bool
result <- WidgetClassKeynavFailedFieldCallback
_cb  Widget
widget' DirectionType
direction'
    Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassShowHelpFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "return from the event signal emission (%TRUE if\n              the event was handled)", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.Event.Event ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType = TInterface Name { namespace = "Gdk" , name = "Event" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GdkEvent" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassEventFieldCallback :: FunPtr C_WidgetClassEventFieldCallback -> C_WidgetClassEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassEventFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Gdk.Event.Event
    -- ^ /@event@/: a t'GI.Gdk.Unions.Event.Event'
    -> m Bool
    -- ^ __Returns:__ return from the event signal emission ('P.True' if
    --               the event was handled)
dynamic_WidgetClassEventFieldCallback :: FunPtr C_WidgetClassEventFieldCallback -> a -> Event -> m Bool
dynamic_WidgetClassEventFieldCallback __funPtr :: FunPtr C_WidgetClassEventFieldCallback
__funPtr widget :: a
widget event :: Event
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Event
event' <- Event -> IO (Ptr Event)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Event
event
    CInt
result <- (FunPtr C_WidgetClassEventFieldCallback
-> C_WidgetClassEventFieldCallback
__dynamic_C_WidgetClassEventFieldCallback FunPtr C_WidgetClassEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr Event
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Event -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Event
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassEventFieldCallback :: C_WidgetClassEventFieldCallback -> IO (FunPtr C_WidgetClassEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassEventFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Gdk.Event.Event
    -- ^ /@event@/: a t'GI.Gdk.Unions.Event.Event'
    -> IO Bool
    -- ^ __Returns:__ return from the event signal emission ('P.True' if
    --               the event was handled)

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassEventFieldCallback`@.
noWidgetClassEventFieldCallback :: Maybe WidgetClassEventFieldCallback
noWidgetClassEventFieldCallback :: Maybe WidgetClassEventFieldCallback
noWidgetClassEventFieldCallback = Maybe WidgetClassEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassEventFieldCallback :: MonadIO m => WidgetClassEventFieldCallback -> m (GClosure C_WidgetClassEventFieldCallback)
genClosure_WidgetClassEventFieldCallback :: WidgetClassEventFieldCallback
-> m (GClosure C_WidgetClassEventFieldCallback)
genClosure_WidgetClassEventFieldCallback cb :: WidgetClassEventFieldCallback
cb = IO (GClosure C_WidgetClassEventFieldCallback)
-> m (GClosure C_WidgetClassEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassEventFieldCallback)
 -> m (GClosure C_WidgetClassEventFieldCallback))
-> IO (GClosure C_WidgetClassEventFieldCallback)
-> m (GClosure C_WidgetClassEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback))
-> WidgetClassEventFieldCallback -> C_WidgetClassEventFieldCallback
wrap_WidgetClassEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassEventFieldCallback
cb
    C_WidgetClassEventFieldCallback
-> IO (FunPtr C_WidgetClassEventFieldCallback)
mk_WidgetClassEventFieldCallback C_WidgetClassEventFieldCallback
cb' IO (FunPtr C_WidgetClassEventFieldCallback)
-> (FunPtr C_WidgetClassEventFieldCallback
    -> IO (GClosure C_WidgetClassEventFieldCallback))
-> IO (GClosure C_WidgetClassEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassEventFieldCallback
-> IO (GClosure C_WidgetClassEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassEventFieldCallback` into a `C_WidgetClassEventFieldCallback`.
wrap_WidgetClassEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback)) ->
    WidgetClassEventFieldCallback ->
    C_WidgetClassEventFieldCallback
wrap_WidgetClassEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback))
-> WidgetClassEventFieldCallback -> C_WidgetClassEventFieldCallback
wrap_WidgetClassEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback))
funptrptr _cb :: WidgetClassEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr Event
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (ManagedPtr Event -> Event)
-> Ptr Event -> (Event -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr Event -> Event
Gdk.Event.Event Ptr Event
event ((Event -> IO CInt) -> IO CInt) -> (Event -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \event' :: Event
event' -> do
        Bool
result <- WidgetClassEventFieldCallback
_cb  Widget
widget' Event
event'
        Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassEventFieldCallback))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassEnterNotifyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventCrossing"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassEnterNotifyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventCrossing.EventCrossing ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventCrossing" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassEnterNotifyEventFieldCallback :: FunPtr C_WidgetClassEnterNotifyEventFieldCallback -> C_WidgetClassEnterNotifyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassEnterNotifyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassEnterNotifyEventFieldCallback
    -> a
    -> Gdk.EventCrossing.EventCrossing
    -> m Bool
dynamic_WidgetClassEnterNotifyEventFieldCallback :: FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
-> a -> EventCrossing -> m Bool
dynamic_WidgetClassEnterNotifyEventFieldCallback __funPtr :: FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
__funPtr widget :: a
widget event :: EventCrossing
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventCrossing
event' <- EventCrossing -> IO (Ptr EventCrossing)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventCrossing
event
    CInt
result <- (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
-> C_WidgetClassLeaveNotifyEventFieldCallback
__dynamic_C_WidgetClassEnterNotifyEventFieldCallback FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventCrossing
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventCrossing -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventCrossing
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassEnterNotifyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassEnterNotifyEventFieldCallback :: C_WidgetClassEnterNotifyEventFieldCallback -> IO (FunPtr C_WidgetClassEnterNotifyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassEnterNotifyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventCrossing.EventCrossing
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassEnterNotifyEventFieldCallback`@.
noWidgetClassEnterNotifyEventFieldCallback :: Maybe WidgetClassEnterNotifyEventFieldCallback
noWidgetClassEnterNotifyEventFieldCallback :: Maybe WidgetClassLeaveNotifyEventFieldCallback
noWidgetClassEnterNotifyEventFieldCallback = Maybe WidgetClassLeaveNotifyEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassEnterNotifyEventFieldCallback :: MonadIO m => WidgetClassEnterNotifyEventFieldCallback -> m (GClosure C_WidgetClassEnterNotifyEventFieldCallback)
genClosure_WidgetClassEnterNotifyEventFieldCallback :: WidgetClassLeaveNotifyEventFieldCallback
-> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
genClosure_WidgetClassEnterNotifyEventFieldCallback cb :: WidgetClassLeaveNotifyEventFieldCallback
cb = IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
 -> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
-> m (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassLeaveNotifyEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
-> WidgetClassLeaveNotifyEventFieldCallback
-> C_WidgetClassLeaveNotifyEventFieldCallback
wrap_WidgetClassEnterNotifyEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassLeaveNotifyEventFieldCallback
cb
    C_WidgetClassLeaveNotifyEventFieldCallback
-> IO (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback)
mk_WidgetClassEnterNotifyEventFieldCallback C_WidgetClassLeaveNotifyEventFieldCallback
cb' IO (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback)
-> (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
    -> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback))
-> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassLeaveNotifyEventFieldCallback
-> IO (GClosure C_WidgetClassLeaveNotifyEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassEnterNotifyEventFieldCallback` into a `C_WidgetClassEnterNotifyEventFieldCallback`.
wrap_WidgetClassEnterNotifyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassEnterNotifyEventFieldCallback)) ->
    WidgetClassEnterNotifyEventFieldCallback ->
    C_WidgetClassEnterNotifyEventFieldCallback
wrap_WidgetClassEnterNotifyEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
-> WidgetClassLeaveNotifyEventFieldCallback
-> C_WidgetClassLeaveNotifyEventFieldCallback
wrap_WidgetClassEnterNotifyEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
funptrptr _cb :: WidgetClassLeaveNotifyEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventCrossing
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventCrossing
event' <- ((ManagedPtr EventCrossing -> EventCrossing)
-> Ptr EventCrossing -> IO EventCrossing
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventCrossing -> EventCrossing
Gdk.EventCrossing.EventCrossing) Ptr EventCrossing
event
    Bool
result <- WidgetClassLeaveNotifyEventFieldCallback
_cb  Widget
widget' EventCrossing
event'
    Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassLeaveNotifyEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDrawFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cr", argType = TInterface (Name {namespace = "cairo", name = "Context"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDrawFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Cairo.Context.Context ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cr"
--           , argType =
--               TInterface Name { namespace = "cairo" , name = "Context" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDrawFieldCallback :: FunPtr C_WidgetClassDrawFieldCallback -> C_WidgetClassDrawFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDrawFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDrawFieldCallback
    -> a
    -> Cairo.Context.Context
    -> m Bool
dynamic_WidgetClassDrawFieldCallback :: FunPtr C_WidgetClassDrawFieldCallback -> a -> Context -> m Bool
dynamic_WidgetClassDrawFieldCallback __funPtr :: FunPtr C_WidgetClassDrawFieldCallback
__funPtr widget :: a
widget cr :: Context
cr = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr Context
cr' <- Context -> IO (Ptr Context)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Context
cr
    CInt
result <- (FunPtr C_WidgetClassDrawFieldCallback
-> C_WidgetClassDrawFieldCallback
__dynamic_C_WidgetClassDrawFieldCallback FunPtr C_WidgetClassDrawFieldCallback
__funPtr) Ptr Widget
widget' Ptr Context
cr'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Context -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Context
cr
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDrawFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDrawFieldCallback :: C_WidgetClassDrawFieldCallback -> IO (FunPtr C_WidgetClassDrawFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDrawFieldCallback =
    Gtk.Widget.Widget
    -> Cairo.Context.Context
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDrawFieldCallback`@.
noWidgetClassDrawFieldCallback :: Maybe WidgetClassDrawFieldCallback
noWidgetClassDrawFieldCallback :: Maybe WidgetClassDrawFieldCallback
noWidgetClassDrawFieldCallback = Maybe WidgetClassDrawFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDrawFieldCallback :: MonadIO m => WidgetClassDrawFieldCallback -> m (GClosure C_WidgetClassDrawFieldCallback)
genClosure_WidgetClassDrawFieldCallback :: WidgetClassDrawFieldCallback
-> m (GClosure C_WidgetClassDrawFieldCallback)
genClosure_WidgetClassDrawFieldCallback cb :: WidgetClassDrawFieldCallback
cb = IO (GClosure C_WidgetClassDrawFieldCallback)
-> m (GClosure C_WidgetClassDrawFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDrawFieldCallback)
 -> m (GClosure C_WidgetClassDrawFieldCallback))
-> IO (GClosure C_WidgetClassDrawFieldCallback)
-> m (GClosure C_WidgetClassDrawFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDrawFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback))
-> WidgetClassDrawFieldCallback -> C_WidgetClassDrawFieldCallback
wrap_WidgetClassDrawFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback))
forall a. Maybe a
Nothing WidgetClassDrawFieldCallback
cb
    C_WidgetClassDrawFieldCallback
-> IO (FunPtr C_WidgetClassDrawFieldCallback)
mk_WidgetClassDrawFieldCallback C_WidgetClassDrawFieldCallback
cb' IO (FunPtr C_WidgetClassDrawFieldCallback)
-> (FunPtr C_WidgetClassDrawFieldCallback
    -> IO (GClosure C_WidgetClassDrawFieldCallback))
-> IO (GClosure C_WidgetClassDrawFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDrawFieldCallback
-> IO (GClosure C_WidgetClassDrawFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDrawFieldCallback` into a `C_WidgetClassDrawFieldCallback`.
wrap_WidgetClassDrawFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback)) ->
    WidgetClassDrawFieldCallback ->
    C_WidgetClassDrawFieldCallback
wrap_WidgetClassDrawFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback))
-> WidgetClassDrawFieldCallback -> C_WidgetClassDrawFieldCallback
wrap_WidgetClassDrawFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback))
funptrptr _cb :: WidgetClassDrawFieldCallback
_cb widget :: Ptr Widget
widget cr :: Ptr Context
cr = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    (ManagedPtr Context -> Context)
-> Ptr Context -> (Context -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr Context -> Context
Cairo.Context.Context Ptr Context
cr ((Context -> IO CInt) -> IO CInt)
-> (Context -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \cr' :: Context
cr' -> do
        Bool
result <- WidgetClassDrawFieldCallback
_cb  Widget
widget' Context
cr'
        Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDrawFieldCallback))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDragMotionFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragMotionFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    Int32 ->
    Int32 ->
    Word32 ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragMotionFieldCallback :: FunPtr C_WidgetClassDragMotionFieldCallback -> C_WidgetClassDragMotionFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragMotionFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragMotionFieldCallback
    -> a
    -> b
    -> Int32
    -> Int32
    -> Word32
    -> m Bool
dynamic_WidgetClassDragMotionFieldCallback :: FunPtr C_WidgetClassDragMotionFieldCallback
-> a -> b -> Int32 -> Int32 -> Word32 -> m Bool
dynamic_WidgetClassDragMotionFieldCallback __funPtr :: FunPtr C_WidgetClassDragMotionFieldCallback
__funPtr widget :: a
widget context :: b
context x :: Int32
x y :: Int32
y time_ :: Word32
time_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    CInt
result <- (FunPtr C_WidgetClassDragMotionFieldCallback
-> C_WidgetClassDragMotionFieldCallback
__dynamic_C_WidgetClassDragMotionFieldCallback FunPtr C_WidgetClassDragMotionFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context' Int32
x Int32
y Word32
time_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragMotionFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragMotionFieldCallback :: C_WidgetClassDragMotionFieldCallback -> IO (FunPtr C_WidgetClassDragMotionFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragMotionFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> Int32
    -> Int32
    -> Word32
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragMotionFieldCallback`@.
noWidgetClassDragMotionFieldCallback :: Maybe WidgetClassDragMotionFieldCallback
noWidgetClassDragMotionFieldCallback :: Maybe WidgetClassDragMotionFieldCallback
noWidgetClassDragMotionFieldCallback = Maybe WidgetClassDragMotionFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragMotionFieldCallback :: MonadIO m => WidgetClassDragMotionFieldCallback -> m (GClosure C_WidgetClassDragMotionFieldCallback)
genClosure_WidgetClassDragMotionFieldCallback :: WidgetClassDragMotionFieldCallback
-> m (GClosure C_WidgetClassDragMotionFieldCallback)
genClosure_WidgetClassDragMotionFieldCallback cb :: WidgetClassDragMotionFieldCallback
cb = IO (GClosure C_WidgetClassDragMotionFieldCallback)
-> m (GClosure C_WidgetClassDragMotionFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragMotionFieldCallback)
 -> m (GClosure C_WidgetClassDragMotionFieldCallback))
-> IO (GClosure C_WidgetClassDragMotionFieldCallback)
-> m (GClosure C_WidgetClassDragMotionFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragMotionFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
-> WidgetClassDragMotionFieldCallback
-> C_WidgetClassDragMotionFieldCallback
wrap_WidgetClassDragMotionFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragMotionFieldCallback
cb
    C_WidgetClassDragMotionFieldCallback
-> IO (FunPtr C_WidgetClassDragMotionFieldCallback)
mk_WidgetClassDragMotionFieldCallback C_WidgetClassDragMotionFieldCallback
cb' IO (FunPtr C_WidgetClassDragMotionFieldCallback)
-> (FunPtr C_WidgetClassDragMotionFieldCallback
    -> IO (GClosure C_WidgetClassDragMotionFieldCallback))
-> IO (GClosure C_WidgetClassDragMotionFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragMotionFieldCallback
-> IO (GClosure C_WidgetClassDragMotionFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragMotionFieldCallback` into a `C_WidgetClassDragMotionFieldCallback`.
wrap_WidgetClassDragMotionFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback)) ->
    WidgetClassDragMotionFieldCallback ->
    C_WidgetClassDragMotionFieldCallback
wrap_WidgetClassDragMotionFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
-> WidgetClassDragMotionFieldCallback
-> C_WidgetClassDragMotionFieldCallback
wrap_WidgetClassDragMotionFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
funptrptr _cb :: WidgetClassDragMotionFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context x :: Int32
x y :: Int32
y time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    Bool
result <- WidgetClassDragMotionFieldCallback
_cb  Widget
widget' DragContext
context' Int32
x Int32
y Word32
time_
    Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDragLeaveFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragLeaveFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    Word32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragLeaveFieldCallback :: FunPtr C_WidgetClassDragLeaveFieldCallback -> C_WidgetClassDragLeaveFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragLeaveFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragLeaveFieldCallback
    -> a
    -> b
    -> Word32
    -> m ()
dynamic_WidgetClassDragLeaveFieldCallback :: FunPtr C_WidgetClassDragLeaveFieldCallback
-> a -> b -> Word32 -> m ()
dynamic_WidgetClassDragLeaveFieldCallback __funPtr :: FunPtr C_WidgetClassDragLeaveFieldCallback
__funPtr widget :: a
widget context :: b
context time_ :: Word32
time_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    (FunPtr C_WidgetClassDragLeaveFieldCallback
-> C_WidgetClassDragLeaveFieldCallback
__dynamic_C_WidgetClassDragLeaveFieldCallback FunPtr C_WidgetClassDragLeaveFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context' Word32
time_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragLeaveFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragLeaveFieldCallback :: C_WidgetClassDragLeaveFieldCallback -> IO (FunPtr C_WidgetClassDragLeaveFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragLeaveFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> Word32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragLeaveFieldCallback`@.
noWidgetClassDragLeaveFieldCallback :: Maybe WidgetClassDragLeaveFieldCallback
noWidgetClassDragLeaveFieldCallback :: Maybe WidgetClassDragLeaveFieldCallback
noWidgetClassDragLeaveFieldCallback = Maybe WidgetClassDragLeaveFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragLeaveFieldCallback :: MonadIO m => WidgetClassDragLeaveFieldCallback -> m (GClosure C_WidgetClassDragLeaveFieldCallback)
genClosure_WidgetClassDragLeaveFieldCallback :: WidgetClassDragLeaveFieldCallback
-> m (GClosure C_WidgetClassDragLeaveFieldCallback)
genClosure_WidgetClassDragLeaveFieldCallback cb :: WidgetClassDragLeaveFieldCallback
cb = IO (GClosure C_WidgetClassDragLeaveFieldCallback)
-> m (GClosure C_WidgetClassDragLeaveFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragLeaveFieldCallback)
 -> m (GClosure C_WidgetClassDragLeaveFieldCallback))
-> IO (GClosure C_WidgetClassDragLeaveFieldCallback)
-> m (GClosure C_WidgetClassDragLeaveFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragLeaveFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback))
-> WidgetClassDragLeaveFieldCallback
-> C_WidgetClassDragLeaveFieldCallback
wrap_WidgetClassDragLeaveFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragLeaveFieldCallback
cb
    C_WidgetClassDragLeaveFieldCallback
-> IO (FunPtr C_WidgetClassDragLeaveFieldCallback)
mk_WidgetClassDragLeaveFieldCallback C_WidgetClassDragLeaveFieldCallback
cb' IO (FunPtr C_WidgetClassDragLeaveFieldCallback)
-> (FunPtr C_WidgetClassDragLeaveFieldCallback
    -> IO (GClosure C_WidgetClassDragLeaveFieldCallback))
-> IO (GClosure C_WidgetClassDragLeaveFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragLeaveFieldCallback
-> IO (GClosure C_WidgetClassDragLeaveFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragLeaveFieldCallback` into a `C_WidgetClassDragLeaveFieldCallback`.
wrap_WidgetClassDragLeaveFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback)) ->
    WidgetClassDragLeaveFieldCallback ->
    C_WidgetClassDragLeaveFieldCallback
wrap_WidgetClassDragLeaveFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback))
-> WidgetClassDragLeaveFieldCallback
-> C_WidgetClassDragLeaveFieldCallback
wrap_WidgetClassDragLeaveFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback))
funptrptr _cb :: WidgetClassDragLeaveFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    WidgetClassDragLeaveFieldCallback
_cb  Widget
widget' DragContext
context' Word32
time_
    Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragLeaveFieldCallback))
funptrptr


-- callback WidgetClassDragFailedFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gtk", name = "DragResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragFailedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    CUInt ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "result"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "DragResult" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragFailedFieldCallback :: FunPtr C_WidgetClassDragFailedFieldCallback -> C_WidgetClassDragFailedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragFailedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragFailedFieldCallback
    -> a
    -> b
    -> Gtk.Enums.DragResult
    -> m Bool
dynamic_WidgetClassDragFailedFieldCallback :: FunPtr C_WidgetClassDragFailedFieldCallback
-> a -> b -> DragResult -> m Bool
dynamic_WidgetClassDragFailedFieldCallback __funPtr :: FunPtr C_WidgetClassDragFailedFieldCallback
__funPtr widget :: a
widget context :: b
context result_ :: DragResult
result_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    let result_' :: CUInt
result_' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (DragResult -> Int) -> DragResult -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DragResult -> Int
forall a. Enum a => a -> Int
fromEnum) DragResult
result_
    CInt
result <- (FunPtr C_WidgetClassDragFailedFieldCallback
-> C_WidgetClassDragFailedFieldCallback
__dynamic_C_WidgetClassDragFailedFieldCallback FunPtr C_WidgetClassDragFailedFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context' CUInt
result_'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragFailedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragFailedFieldCallback :: C_WidgetClassDragFailedFieldCallback -> IO (FunPtr C_WidgetClassDragFailedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragFailedFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> Gtk.Enums.DragResult
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragFailedFieldCallback`@.
noWidgetClassDragFailedFieldCallback :: Maybe WidgetClassDragFailedFieldCallback
noWidgetClassDragFailedFieldCallback :: Maybe WidgetClassDragFailedFieldCallback
noWidgetClassDragFailedFieldCallback = Maybe WidgetClassDragFailedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragFailedFieldCallback :: MonadIO m => WidgetClassDragFailedFieldCallback -> m (GClosure C_WidgetClassDragFailedFieldCallback)
genClosure_WidgetClassDragFailedFieldCallback :: WidgetClassDragFailedFieldCallback
-> m (GClosure C_WidgetClassDragFailedFieldCallback)
genClosure_WidgetClassDragFailedFieldCallback cb :: WidgetClassDragFailedFieldCallback
cb = IO (GClosure C_WidgetClassDragFailedFieldCallback)
-> m (GClosure C_WidgetClassDragFailedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragFailedFieldCallback)
 -> m (GClosure C_WidgetClassDragFailedFieldCallback))
-> IO (GClosure C_WidgetClassDragFailedFieldCallback)
-> m (GClosure C_WidgetClassDragFailedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragFailedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback))
-> WidgetClassDragFailedFieldCallback
-> C_WidgetClassDragFailedFieldCallback
wrap_WidgetClassDragFailedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragFailedFieldCallback
cb
    C_WidgetClassDragFailedFieldCallback
-> IO (FunPtr C_WidgetClassDragFailedFieldCallback)
mk_WidgetClassDragFailedFieldCallback C_WidgetClassDragFailedFieldCallback
cb' IO (FunPtr C_WidgetClassDragFailedFieldCallback)
-> (FunPtr C_WidgetClassDragFailedFieldCallback
    -> IO (GClosure C_WidgetClassDragFailedFieldCallback))
-> IO (GClosure C_WidgetClassDragFailedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragFailedFieldCallback
-> IO (GClosure C_WidgetClassDragFailedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragFailedFieldCallback` into a `C_WidgetClassDragFailedFieldCallback`.
wrap_WidgetClassDragFailedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback)) ->
    WidgetClassDragFailedFieldCallback ->
    C_WidgetClassDragFailedFieldCallback
wrap_WidgetClassDragFailedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback))
-> WidgetClassDragFailedFieldCallback
-> C_WidgetClassDragFailedFieldCallback
wrap_WidgetClassDragFailedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback))
funptrptr _cb :: WidgetClassDragFailedFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context result_ :: CUInt
result_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    let result_' :: DragResult
result_' = (Int -> DragResult
forall a. Enum a => Int -> a
toEnum (Int -> DragResult) -> (CUInt -> Int) -> CUInt -> DragResult
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result_
    Bool
result <- WidgetClassDragFailedFieldCallback
_cb  Widget
widget' DragContext
context' DragResult
result_'
    Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragFailedFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDragEndFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragEndFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragEndFieldCallback :: FunPtr C_WidgetClassDragEndFieldCallback -> C_WidgetClassDragEndFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragEndFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragEndFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassDragEndFieldCallback :: FunPtr C_WidgetClassDragEndFieldCallback -> a -> b -> m ()
dynamic_WidgetClassDragEndFieldCallback __funPtr :: FunPtr C_WidgetClassDragEndFieldCallback
__funPtr widget :: a
widget context :: b
context = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    (FunPtr C_WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
__dynamic_C_WidgetClassDragEndFieldCallback FunPtr C_WidgetClassDragEndFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragEndFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragEndFieldCallback :: C_WidgetClassDragEndFieldCallback -> IO (FunPtr C_WidgetClassDragEndFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragEndFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragEndFieldCallback`@.
noWidgetClassDragEndFieldCallback :: Maybe WidgetClassDragEndFieldCallback
noWidgetClassDragEndFieldCallback :: Maybe WidgetClassDragEndFieldCallback
noWidgetClassDragEndFieldCallback = Maybe WidgetClassDragEndFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragEndFieldCallback :: MonadIO m => WidgetClassDragEndFieldCallback -> m (GClosure C_WidgetClassDragEndFieldCallback)
genClosure_WidgetClassDragEndFieldCallback :: WidgetClassDragEndFieldCallback
-> m (GClosure C_WidgetClassDragEndFieldCallback)
genClosure_WidgetClassDragEndFieldCallback cb :: WidgetClassDragEndFieldCallback
cb = IO (GClosure C_WidgetClassDragEndFieldCallback)
-> m (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragEndFieldCallback)
 -> m (GClosure C_WidgetClassDragEndFieldCallback))
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
-> m (GClosure C_WidgetClassDragEndFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragEndFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
-> WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragEndFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragEndFieldCallback
cb
    C_WidgetClassDragEndFieldCallback
-> IO (FunPtr C_WidgetClassDragEndFieldCallback)
mk_WidgetClassDragEndFieldCallback C_WidgetClassDragEndFieldCallback
cb' IO (FunPtr C_WidgetClassDragEndFieldCallback)
-> (FunPtr C_WidgetClassDragEndFieldCallback
    -> IO (GClosure C_WidgetClassDragEndFieldCallback))
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragEndFieldCallback
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragEndFieldCallback` into a `C_WidgetClassDragEndFieldCallback`.
wrap_WidgetClassDragEndFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback)) ->
    WidgetClassDragEndFieldCallback ->
    C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragEndFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
-> WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragEndFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
funptrptr _cb :: WidgetClassDragEndFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    WidgetClassDragEndFieldCallback
_cb  Widget
widget' DragContext
context'
    Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
funptrptr


-- callback WidgetClassDragDropFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragDropFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    Int32 ->
    Int32 ->
    Word32 ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragDropFieldCallback :: FunPtr C_WidgetClassDragDropFieldCallback -> C_WidgetClassDragDropFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragDropFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragDropFieldCallback
    -> a
    -> b
    -> Int32
    -> Int32
    -> Word32
    -> m Bool
dynamic_WidgetClassDragDropFieldCallback :: FunPtr C_WidgetClassDragMotionFieldCallback
-> a -> b -> Int32 -> Int32 -> Word32 -> m Bool
dynamic_WidgetClassDragDropFieldCallback __funPtr :: FunPtr C_WidgetClassDragMotionFieldCallback
__funPtr widget :: a
widget context :: b
context x :: Int32
x y :: Int32
y time_ :: Word32
time_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    CInt
result <- (FunPtr C_WidgetClassDragMotionFieldCallback
-> C_WidgetClassDragMotionFieldCallback
__dynamic_C_WidgetClassDragDropFieldCallback FunPtr C_WidgetClassDragMotionFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context' Int32
x Int32
y Word32
time_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragDropFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragDropFieldCallback :: C_WidgetClassDragDropFieldCallback -> IO (FunPtr C_WidgetClassDragDropFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragDropFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> Int32
    -> Int32
    -> Word32
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragDropFieldCallback`@.
noWidgetClassDragDropFieldCallback :: Maybe WidgetClassDragDropFieldCallback
noWidgetClassDragDropFieldCallback :: Maybe WidgetClassDragMotionFieldCallback
noWidgetClassDragDropFieldCallback = Maybe WidgetClassDragMotionFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragDropFieldCallback :: MonadIO m => WidgetClassDragDropFieldCallback -> m (GClosure C_WidgetClassDragDropFieldCallback)
genClosure_WidgetClassDragDropFieldCallback :: WidgetClassDragMotionFieldCallback
-> m (GClosure C_WidgetClassDragMotionFieldCallback)
genClosure_WidgetClassDragDropFieldCallback cb :: WidgetClassDragMotionFieldCallback
cb = IO (GClosure C_WidgetClassDragMotionFieldCallback)
-> m (GClosure C_WidgetClassDragMotionFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragMotionFieldCallback)
 -> m (GClosure C_WidgetClassDragMotionFieldCallback))
-> IO (GClosure C_WidgetClassDragMotionFieldCallback)
-> m (GClosure C_WidgetClassDragMotionFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragMotionFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
-> WidgetClassDragMotionFieldCallback
-> C_WidgetClassDragMotionFieldCallback
wrap_WidgetClassDragDropFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragMotionFieldCallback
cb
    C_WidgetClassDragMotionFieldCallback
-> IO (FunPtr C_WidgetClassDragMotionFieldCallback)
mk_WidgetClassDragDropFieldCallback C_WidgetClassDragMotionFieldCallback
cb' IO (FunPtr C_WidgetClassDragMotionFieldCallback)
-> (FunPtr C_WidgetClassDragMotionFieldCallback
    -> IO (GClosure C_WidgetClassDragMotionFieldCallback))
-> IO (GClosure C_WidgetClassDragMotionFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragMotionFieldCallback
-> IO (GClosure C_WidgetClassDragMotionFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragDropFieldCallback` into a `C_WidgetClassDragDropFieldCallback`.
wrap_WidgetClassDragDropFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragDropFieldCallback)) ->
    WidgetClassDragDropFieldCallback ->
    C_WidgetClassDragDropFieldCallback
wrap_WidgetClassDragDropFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
-> WidgetClassDragMotionFieldCallback
-> C_WidgetClassDragMotionFieldCallback
wrap_WidgetClassDragDropFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
funptrptr _cb :: WidgetClassDragMotionFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context x :: Int32
x y :: Int32
y time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    Bool
result <- WidgetClassDragMotionFieldCallback
_cb  Widget
widget' DragContext
context' Int32
x Int32
y Word32
time_
    Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragMotionFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDragDataReceivedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_data", argType = TInterface (Name {namespace = "Gtk", name = "SelectionData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragDataReceivedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    Int32 ->
    Int32 ->
    Ptr Gtk.SelectionData.SelectionData ->
    Word32 ->
    Word32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "selection_data"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "SelectionData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "info"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragDataReceivedFieldCallback :: FunPtr C_WidgetClassDragDataReceivedFieldCallback -> C_WidgetClassDragDataReceivedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragDataReceivedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragDataReceivedFieldCallback
    -> a
    -> b
    -> Int32
    -> Int32
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> Word32
    -> m ()
dynamic_WidgetClassDragDataReceivedFieldCallback :: FunPtr C_WidgetClassDragDataReceivedFieldCallback
-> a
-> b
-> Int32
-> Int32
-> SelectionData
-> Word32
-> Word32
-> m ()
dynamic_WidgetClassDragDataReceivedFieldCallback __funPtr :: FunPtr C_WidgetClassDragDataReceivedFieldCallback
__funPtr widget :: a
widget context :: b
context x :: Int32
x y :: Int32
y selectionData :: SelectionData
selectionData info :: Word32
info time_ :: Word32
time_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    Ptr SelectionData
selectionData' <- SelectionData -> IO (Ptr SelectionData)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SelectionData
selectionData
    (FunPtr C_WidgetClassDragDataReceivedFieldCallback
-> C_WidgetClassDragDataReceivedFieldCallback
__dynamic_C_WidgetClassDragDataReceivedFieldCallback FunPtr C_WidgetClassDragDataReceivedFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context' Int32
x Int32
y Ptr SelectionData
selectionData' Word32
info Word32
time_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    SelectionData -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SelectionData
selectionData
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragDataReceivedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragDataReceivedFieldCallback :: C_WidgetClassDragDataReceivedFieldCallback -> IO (FunPtr C_WidgetClassDragDataReceivedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragDataReceivedFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> Int32
    -> Int32
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> Word32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragDataReceivedFieldCallback`@.
noWidgetClassDragDataReceivedFieldCallback :: Maybe WidgetClassDragDataReceivedFieldCallback
noWidgetClassDragDataReceivedFieldCallback :: Maybe WidgetClassDragDataReceivedFieldCallback
noWidgetClassDragDataReceivedFieldCallback = Maybe WidgetClassDragDataReceivedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragDataReceivedFieldCallback :: MonadIO m => WidgetClassDragDataReceivedFieldCallback -> m (GClosure C_WidgetClassDragDataReceivedFieldCallback)
genClosure_WidgetClassDragDataReceivedFieldCallback :: WidgetClassDragDataReceivedFieldCallback
-> m (GClosure C_WidgetClassDragDataReceivedFieldCallback)
genClosure_WidgetClassDragDataReceivedFieldCallback cb :: WidgetClassDragDataReceivedFieldCallback
cb = IO (GClosure C_WidgetClassDragDataReceivedFieldCallback)
-> m (GClosure C_WidgetClassDragDataReceivedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragDataReceivedFieldCallback)
 -> m (GClosure C_WidgetClassDragDataReceivedFieldCallback))
-> IO (GClosure C_WidgetClassDragDataReceivedFieldCallback)
-> m (GClosure C_WidgetClassDragDataReceivedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragDataReceivedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback))
-> WidgetClassDragDataReceivedFieldCallback
-> C_WidgetClassDragDataReceivedFieldCallback
wrap_WidgetClassDragDataReceivedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragDataReceivedFieldCallback
cb
    C_WidgetClassDragDataReceivedFieldCallback
-> IO (FunPtr C_WidgetClassDragDataReceivedFieldCallback)
mk_WidgetClassDragDataReceivedFieldCallback C_WidgetClassDragDataReceivedFieldCallback
cb' IO (FunPtr C_WidgetClassDragDataReceivedFieldCallback)
-> (FunPtr C_WidgetClassDragDataReceivedFieldCallback
    -> IO (GClosure C_WidgetClassDragDataReceivedFieldCallback))
-> IO (GClosure C_WidgetClassDragDataReceivedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragDataReceivedFieldCallback
-> IO (GClosure C_WidgetClassDragDataReceivedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragDataReceivedFieldCallback` into a `C_WidgetClassDragDataReceivedFieldCallback`.
wrap_WidgetClassDragDataReceivedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback)) ->
    WidgetClassDragDataReceivedFieldCallback ->
    C_WidgetClassDragDataReceivedFieldCallback
wrap_WidgetClassDragDataReceivedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback))
-> WidgetClassDragDataReceivedFieldCallback
-> C_WidgetClassDragDataReceivedFieldCallback
wrap_WidgetClassDragDataReceivedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback))
funptrptr _cb :: WidgetClassDragDataReceivedFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context x :: Int32
x y :: Int32
y selectionData :: Ptr SelectionData
selectionData info :: Word32
info time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    (ManagedPtr SelectionData -> SelectionData)
-> Ptr SelectionData -> (SelectionData -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr SelectionData -> SelectionData
Gtk.SelectionData.SelectionData Ptr SelectionData
selectionData ((SelectionData -> IO ()) -> IO ())
-> (SelectionData -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \selectionData' :: SelectionData
selectionData' -> do
        WidgetClassDragDataReceivedFieldCallback
_cb  Widget
widget' DragContext
context' Int32
x Int32
y SelectionData
selectionData' Word32
info Word32
time_
        Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragDataReceivedFieldCallback))
funptrptr


-- callback WidgetClassDragDataGetFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_data", argType = TInterface (Name {namespace = "Gtk", name = "SelectionData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragDataGetFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    Ptr Gtk.SelectionData.SelectionData ->
    Word32 ->
    Word32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "selection_data"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "SelectionData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "info"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "time_"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragDataGetFieldCallback :: FunPtr C_WidgetClassDragDataGetFieldCallback -> C_WidgetClassDragDataGetFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragDataGetFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragDataGetFieldCallback
    -> a
    -> b
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> Word32
    -> m ()
dynamic_WidgetClassDragDataGetFieldCallback :: FunPtr C_WidgetClassDragDataGetFieldCallback
-> a -> b -> SelectionData -> Word32 -> Word32 -> m ()
dynamic_WidgetClassDragDataGetFieldCallback __funPtr :: FunPtr C_WidgetClassDragDataGetFieldCallback
__funPtr widget :: a
widget context :: b
context selectionData :: SelectionData
selectionData info :: Word32
info time_ :: Word32
time_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    Ptr SelectionData
selectionData' <- SelectionData -> IO (Ptr SelectionData)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SelectionData
selectionData
    (FunPtr C_WidgetClassDragDataGetFieldCallback
-> C_WidgetClassDragDataGetFieldCallback
__dynamic_C_WidgetClassDragDataGetFieldCallback FunPtr C_WidgetClassDragDataGetFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context' Ptr SelectionData
selectionData' Word32
info Word32
time_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    SelectionData -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SelectionData
selectionData
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragDataGetFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragDataGetFieldCallback :: C_WidgetClassDragDataGetFieldCallback -> IO (FunPtr C_WidgetClassDragDataGetFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragDataGetFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> Gtk.SelectionData.SelectionData
    -> Word32
    -> Word32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragDataGetFieldCallback`@.
noWidgetClassDragDataGetFieldCallback :: Maybe WidgetClassDragDataGetFieldCallback
noWidgetClassDragDataGetFieldCallback :: Maybe WidgetClassDragDataGetFieldCallback
noWidgetClassDragDataGetFieldCallback = Maybe WidgetClassDragDataGetFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragDataGetFieldCallback :: MonadIO m => WidgetClassDragDataGetFieldCallback -> m (GClosure C_WidgetClassDragDataGetFieldCallback)
genClosure_WidgetClassDragDataGetFieldCallback :: WidgetClassDragDataGetFieldCallback
-> m (GClosure C_WidgetClassDragDataGetFieldCallback)
genClosure_WidgetClassDragDataGetFieldCallback cb :: WidgetClassDragDataGetFieldCallback
cb = IO (GClosure C_WidgetClassDragDataGetFieldCallback)
-> m (GClosure C_WidgetClassDragDataGetFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragDataGetFieldCallback)
 -> m (GClosure C_WidgetClassDragDataGetFieldCallback))
-> IO (GClosure C_WidgetClassDragDataGetFieldCallback)
-> m (GClosure C_WidgetClassDragDataGetFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragDataGetFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback))
-> WidgetClassDragDataGetFieldCallback
-> C_WidgetClassDragDataGetFieldCallback
wrap_WidgetClassDragDataGetFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragDataGetFieldCallback
cb
    C_WidgetClassDragDataGetFieldCallback
-> IO (FunPtr C_WidgetClassDragDataGetFieldCallback)
mk_WidgetClassDragDataGetFieldCallback C_WidgetClassDragDataGetFieldCallback
cb' IO (FunPtr C_WidgetClassDragDataGetFieldCallback)
-> (FunPtr C_WidgetClassDragDataGetFieldCallback
    -> IO (GClosure C_WidgetClassDragDataGetFieldCallback))
-> IO (GClosure C_WidgetClassDragDataGetFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragDataGetFieldCallback
-> IO (GClosure C_WidgetClassDragDataGetFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragDataGetFieldCallback` into a `C_WidgetClassDragDataGetFieldCallback`.
wrap_WidgetClassDragDataGetFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback)) ->
    WidgetClassDragDataGetFieldCallback ->
    C_WidgetClassDragDataGetFieldCallback
wrap_WidgetClassDragDataGetFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback))
-> WidgetClassDragDataGetFieldCallback
-> C_WidgetClassDragDataGetFieldCallback
wrap_WidgetClassDragDataGetFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback))
funptrptr _cb :: WidgetClassDragDataGetFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context selectionData :: Ptr SelectionData
selectionData info :: Word32
info time_ :: Word32
time_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    (ManagedPtr SelectionData -> SelectionData)
-> Ptr SelectionData -> (SelectionData -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr SelectionData -> SelectionData
Gtk.SelectionData.SelectionData Ptr SelectionData
selectionData ((SelectionData -> IO ()) -> IO ())
-> (SelectionData -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \selectionData' :: SelectionData
selectionData' -> do
        WidgetClassDragDataGetFieldCallback
_cb  Widget
widget' DragContext
context' SelectionData
selectionData' Word32
info Word32
time_
        Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragDataGetFieldCallback))
funptrptr


-- callback WidgetClassDragDataDeleteFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragDataDeleteFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragDataDeleteFieldCallback :: FunPtr C_WidgetClassDragDataDeleteFieldCallback -> C_WidgetClassDragDataDeleteFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragDataDeleteFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragDataDeleteFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassDragDataDeleteFieldCallback :: FunPtr C_WidgetClassDragEndFieldCallback -> a -> b -> m ()
dynamic_WidgetClassDragDataDeleteFieldCallback __funPtr :: FunPtr C_WidgetClassDragEndFieldCallback
__funPtr widget :: a
widget context :: b
context = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    (FunPtr C_WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
__dynamic_C_WidgetClassDragDataDeleteFieldCallback FunPtr C_WidgetClassDragEndFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragDataDeleteFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragDataDeleteFieldCallback :: C_WidgetClassDragDataDeleteFieldCallback -> IO (FunPtr C_WidgetClassDragDataDeleteFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragDataDeleteFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragDataDeleteFieldCallback`@.
noWidgetClassDragDataDeleteFieldCallback :: Maybe WidgetClassDragDataDeleteFieldCallback
noWidgetClassDragDataDeleteFieldCallback :: Maybe WidgetClassDragEndFieldCallback
noWidgetClassDragDataDeleteFieldCallback = Maybe WidgetClassDragEndFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragDataDeleteFieldCallback :: MonadIO m => WidgetClassDragDataDeleteFieldCallback -> m (GClosure C_WidgetClassDragDataDeleteFieldCallback)
genClosure_WidgetClassDragDataDeleteFieldCallback :: WidgetClassDragEndFieldCallback
-> m (GClosure C_WidgetClassDragEndFieldCallback)
genClosure_WidgetClassDragDataDeleteFieldCallback cb :: WidgetClassDragEndFieldCallback
cb = IO (GClosure C_WidgetClassDragEndFieldCallback)
-> m (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragEndFieldCallback)
 -> m (GClosure C_WidgetClassDragEndFieldCallback))
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
-> m (GClosure C_WidgetClassDragEndFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragEndFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
-> WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragDataDeleteFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragEndFieldCallback
cb
    C_WidgetClassDragEndFieldCallback
-> IO (FunPtr C_WidgetClassDragEndFieldCallback)
mk_WidgetClassDragDataDeleteFieldCallback C_WidgetClassDragEndFieldCallback
cb' IO (FunPtr C_WidgetClassDragEndFieldCallback)
-> (FunPtr C_WidgetClassDragEndFieldCallback
    -> IO (GClosure C_WidgetClassDragEndFieldCallback))
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragEndFieldCallback
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragDataDeleteFieldCallback` into a `C_WidgetClassDragDataDeleteFieldCallback`.
wrap_WidgetClassDragDataDeleteFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragDataDeleteFieldCallback)) ->
    WidgetClassDragDataDeleteFieldCallback ->
    C_WidgetClassDragDataDeleteFieldCallback
wrap_WidgetClassDragDataDeleteFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
-> WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragDataDeleteFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
funptrptr _cb :: WidgetClassDragEndFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    WidgetClassDragEndFieldCallback
_cb  Widget
widget' DragContext
context'
    Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
funptrptr


-- callback WidgetClassDragBeginFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface (Name {namespace = "Gdk", name = "DragContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDragBeginFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.DragContext.DragContext ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "context"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "DragContext" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDragBeginFieldCallback :: FunPtr C_WidgetClassDragBeginFieldCallback -> C_WidgetClassDragBeginFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDragBeginFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.DragContext.IsDragContext b) =>
    FunPtr C_WidgetClassDragBeginFieldCallback
    -> a
    -> b
    -> m ()
dynamic_WidgetClassDragBeginFieldCallback :: FunPtr C_WidgetClassDragEndFieldCallback -> a -> b -> m ()
dynamic_WidgetClassDragBeginFieldCallback __funPtr :: FunPtr C_WidgetClassDragEndFieldCallback
__funPtr widget :: a
widget context :: b
context = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr DragContext
context' <- b -> IO (Ptr DragContext)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
    (FunPtr C_WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
__dynamic_C_WidgetClassDragBeginFieldCallback FunPtr C_WidgetClassDragEndFieldCallback
__funPtr) Ptr Widget
widget' Ptr DragContext
context'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDragBeginFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDragBeginFieldCallback :: C_WidgetClassDragBeginFieldCallback -> IO (FunPtr C_WidgetClassDragBeginFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDragBeginFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.DragContext.DragContext
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDragBeginFieldCallback`@.
noWidgetClassDragBeginFieldCallback :: Maybe WidgetClassDragBeginFieldCallback
noWidgetClassDragBeginFieldCallback :: Maybe WidgetClassDragEndFieldCallback
noWidgetClassDragBeginFieldCallback = Maybe WidgetClassDragEndFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDragBeginFieldCallback :: MonadIO m => WidgetClassDragBeginFieldCallback -> m (GClosure C_WidgetClassDragBeginFieldCallback)
genClosure_WidgetClassDragBeginFieldCallback :: WidgetClassDragEndFieldCallback
-> m (GClosure C_WidgetClassDragEndFieldCallback)
genClosure_WidgetClassDragBeginFieldCallback cb :: WidgetClassDragEndFieldCallback
cb = IO (GClosure C_WidgetClassDragEndFieldCallback)
-> m (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDragEndFieldCallback)
 -> m (GClosure C_WidgetClassDragEndFieldCallback))
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
-> m (GClosure C_WidgetClassDragEndFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDragEndFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
-> WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragBeginFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
forall a. Maybe a
Nothing WidgetClassDragEndFieldCallback
cb
    C_WidgetClassDragEndFieldCallback
-> IO (FunPtr C_WidgetClassDragEndFieldCallback)
mk_WidgetClassDragBeginFieldCallback C_WidgetClassDragEndFieldCallback
cb' IO (FunPtr C_WidgetClassDragEndFieldCallback)
-> (FunPtr C_WidgetClassDragEndFieldCallback
    -> IO (GClosure C_WidgetClassDragEndFieldCallback))
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDragEndFieldCallback
-> IO (GClosure C_WidgetClassDragEndFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDragBeginFieldCallback` into a `C_WidgetClassDragBeginFieldCallback`.
wrap_WidgetClassDragBeginFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDragBeginFieldCallback)) ->
    WidgetClassDragBeginFieldCallback ->
    C_WidgetClassDragBeginFieldCallback
wrap_WidgetClassDragBeginFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
-> WidgetClassDragEndFieldCallback
-> C_WidgetClassDragEndFieldCallback
wrap_WidgetClassDragBeginFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
funptrptr _cb :: WidgetClassDragEndFieldCallback
_cb widget :: Ptr Widget
widget context :: Ptr DragContext
context = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    DragContext
context' <- ((ManagedPtr DragContext -> DragContext)
-> Ptr DragContext -> IO DragContext
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DragContext -> DragContext
Gdk.DragContext.DragContext) Ptr DragContext
context
    WidgetClassDragEndFieldCallback
_cb  Widget
widget' DragContext
context'
    Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDragEndFieldCallback))
funptrptr


-- callback WidgetClassDispatchChildPropertiesChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_pspecs", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspecs", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDispatchChildPropertiesChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Word32 ->
    Ptr GParamSpec ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "n_pspecs"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "pspecs"
--           , argType = TParamSpec
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDispatchChildPropertiesChangedFieldCallback :: FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback -> C_WidgetClassDispatchChildPropertiesChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDispatchChildPropertiesChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
    -> a
    -> Word32
    -> GParamSpec
    -> m ()
dynamic_WidgetClassDispatchChildPropertiesChangedFieldCallback :: FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
-> a -> Word32 -> GParamSpec -> m ()
dynamic_WidgetClassDispatchChildPropertiesChangedFieldCallback __funPtr :: FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
__funPtr widget :: a
widget nPspecs :: Word32
nPspecs pspecs :: GParamSpec
pspecs = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr GParamSpec
pspecs' <- GParamSpec -> IO (Ptr GParamSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GParamSpec
pspecs
    (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
-> C_WidgetClassDispatchChildPropertiesChangedFieldCallback
__dynamic_C_WidgetClassDispatchChildPropertiesChangedFieldCallback FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
__funPtr) Ptr Widget
widget' Word32
nPspecs Ptr GParamSpec
pspecs'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    GParamSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GParamSpec
pspecs
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDispatchChildPropertiesChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDispatchChildPropertiesChangedFieldCallback :: C_WidgetClassDispatchChildPropertiesChangedFieldCallback -> IO (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDispatchChildPropertiesChangedFieldCallback =
    Gtk.Widget.Widget
    -> Word32
    -> GParamSpec
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDispatchChildPropertiesChangedFieldCallback`@.
noWidgetClassDispatchChildPropertiesChangedFieldCallback :: Maybe WidgetClassDispatchChildPropertiesChangedFieldCallback
noWidgetClassDispatchChildPropertiesChangedFieldCallback :: Maybe WidgetClassDispatchChildPropertiesChangedFieldCallback
noWidgetClassDispatchChildPropertiesChangedFieldCallback = Maybe WidgetClassDispatchChildPropertiesChangedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDispatchChildPropertiesChangedFieldCallback :: MonadIO m => WidgetClassDispatchChildPropertiesChangedFieldCallback -> m (GClosure C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
genClosure_WidgetClassDispatchChildPropertiesChangedFieldCallback :: WidgetClassDispatchChildPropertiesChangedFieldCallback
-> m (GClosure
        C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
genClosure_WidgetClassDispatchChildPropertiesChangedFieldCallback cb :: WidgetClassDispatchChildPropertiesChangedFieldCallback
cb = IO
  (GClosure C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
-> m (GClosure
        C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO
   (GClosure C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
 -> m (GClosure
         C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
-> IO
     (GClosure C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
-> m (GClosure
        C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDispatchChildPropertiesChangedFieldCallback
cb' = Maybe
  (Ptr
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
-> WidgetClassDispatchChildPropertiesChangedFieldCallback
-> C_WidgetClassDispatchChildPropertiesChangedFieldCallback
wrap_WidgetClassDispatchChildPropertiesChangedFieldCallback Maybe
  (Ptr
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
forall a. Maybe a
Nothing WidgetClassDispatchChildPropertiesChangedFieldCallback
cb
    C_WidgetClassDispatchChildPropertiesChangedFieldCallback
-> IO
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
mk_WidgetClassDispatchChildPropertiesChangedFieldCallback C_WidgetClassDispatchChildPropertiesChangedFieldCallback
cb' IO
  (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
-> (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
    -> IO
         (GClosure
            C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
-> IO
     (GClosure C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback
-> IO
     (GClosure C_WidgetClassDispatchChildPropertiesChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDispatchChildPropertiesChangedFieldCallback` into a `C_WidgetClassDispatchChildPropertiesChangedFieldCallback`.
wrap_WidgetClassDispatchChildPropertiesChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback)) ->
    WidgetClassDispatchChildPropertiesChangedFieldCallback ->
    C_WidgetClassDispatchChildPropertiesChangedFieldCallback
wrap_WidgetClassDispatchChildPropertiesChangedFieldCallback :: Maybe
  (Ptr
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
-> WidgetClassDispatchChildPropertiesChangedFieldCallback
-> C_WidgetClassDispatchChildPropertiesChangedFieldCallback
wrap_WidgetClassDispatchChildPropertiesChangedFieldCallback funptrptr :: Maybe
  (Ptr
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
funptrptr _cb :: WidgetClassDispatchChildPropertiesChangedFieldCallback
_cb widget :: Ptr Widget
widget nPspecs :: Word32
nPspecs pspecs :: Ptr GParamSpec
pspecs = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    GParamSpec
pspecs' <- Ptr GParamSpec -> IO GParamSpec
B.GParamSpec.newGParamSpecFromPtr Ptr GParamSpec
pspecs
    WidgetClassDispatchChildPropertiesChangedFieldCallback
_cb  Widget
widget' Word32
nPspecs GParamSpec
pspecs'
    Maybe
  (Ptr
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr
     (FunPtr C_WidgetClassDispatchChildPropertiesChangedFieldCallback))
funptrptr


-- callback WidgetClassDirectionChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "previous_direction", argType = TInterface (Name {namespace = "Gtk", name = "TextDirection"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDirectionChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "previous_direction"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextDirection" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDirectionChangedFieldCallback :: FunPtr C_WidgetClassDirectionChangedFieldCallback -> C_WidgetClassDirectionChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDirectionChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDirectionChangedFieldCallback
    -> a
    -> Gtk.Enums.TextDirection
    -> m ()
dynamic_WidgetClassDirectionChangedFieldCallback :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> a -> TextDirection -> m ()
dynamic_WidgetClassDirectionChangedFieldCallback __funPtr :: FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr widget :: a
widget previousDirection :: TextDirection
previousDirection = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let previousDirection' :: CUInt
previousDirection' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (TextDirection -> Int) -> TextDirection -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TextDirection -> Int
forall a. Enum a => a -> Int
fromEnum) TextDirection
previousDirection
    (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
__dynamic_C_WidgetClassDirectionChangedFieldCallback FunPtr C_WidgetClassStateFlagsChangedFieldCallback
__funPtr) Ptr Widget
widget' CUInt
previousDirection'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDirectionChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDirectionChangedFieldCallback :: C_WidgetClassDirectionChangedFieldCallback -> IO (FunPtr C_WidgetClassDirectionChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDirectionChangedFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.TextDirection
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDirectionChangedFieldCallback`@.
noWidgetClassDirectionChangedFieldCallback :: Maybe WidgetClassDirectionChangedFieldCallback
noWidgetClassDirectionChangedFieldCallback :: Maybe WidgetClassDirectionChangedFieldCallback
noWidgetClassDirectionChangedFieldCallback = Maybe WidgetClassDirectionChangedFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDirectionChangedFieldCallback :: MonadIO m => WidgetClassDirectionChangedFieldCallback -> m (GClosure C_WidgetClassDirectionChangedFieldCallback)
genClosure_WidgetClassDirectionChangedFieldCallback :: WidgetClassDirectionChangedFieldCallback
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
genClosure_WidgetClassDirectionChangedFieldCallback cb :: WidgetClassDirectionChangedFieldCallback
cb = IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
 -> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
-> m (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassStateFlagsChangedFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassDirectionChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassDirectionChangedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
forall a. Maybe a
Nothing WidgetClassDirectionChangedFieldCallback
cb
    C_WidgetClassStateFlagsChangedFieldCallback
-> IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
mk_WidgetClassDirectionChangedFieldCallback C_WidgetClassStateFlagsChangedFieldCallback
cb' IO (FunPtr C_WidgetClassStateFlagsChangedFieldCallback)
-> (FunPtr C_WidgetClassStateFlagsChangedFieldCallback
    -> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback))
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassStateFlagsChangedFieldCallback
-> IO (GClosure C_WidgetClassStateFlagsChangedFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDirectionChangedFieldCallback` into a `C_WidgetClassDirectionChangedFieldCallback`.
wrap_WidgetClassDirectionChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDirectionChangedFieldCallback)) ->
    WidgetClassDirectionChangedFieldCallback ->
    C_WidgetClassDirectionChangedFieldCallback
wrap_WidgetClassDirectionChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> WidgetClassDirectionChangedFieldCallback
-> C_WidgetClassStateFlagsChangedFieldCallback
wrap_WidgetClassDirectionChangedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr _cb :: WidgetClassDirectionChangedFieldCallback
_cb widget :: Ptr Widget
widget previousDirection :: CUInt
previousDirection = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let previousDirection' :: TextDirection
previousDirection' = (Int -> TextDirection
forall a. Enum a => Int -> a
toEnum (Int -> TextDirection) -> (CUInt -> Int) -> CUInt -> TextDirection
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
previousDirection
    WidgetClassDirectionChangedFieldCallback
_cb  Widget
widget' TextDirection
previousDirection'
    Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassStateFlagsChangedFieldCallback))
funptrptr


-- callback WidgetClassDestroyFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDestroyFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDestroyFieldCallback :: FunPtr C_WidgetClassDestroyFieldCallback -> C_WidgetClassDestroyFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDestroyFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDestroyFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> m ()
dynamic_WidgetClassDestroyFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassDestroyFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassDestroyFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDestroyFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDestroyFieldCallback :: C_WidgetClassDestroyFieldCallback -> IO (FunPtr C_WidgetClassDestroyFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDestroyFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDestroyFieldCallback`@.
noWidgetClassDestroyFieldCallback :: Maybe WidgetClassDestroyFieldCallback
noWidgetClassDestroyFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassDestroyFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDestroyFieldCallback :: MonadIO m => WidgetClassDestroyFieldCallback -> m (GClosure C_WidgetClassDestroyFieldCallback)
genClosure_WidgetClassDestroyFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassDestroyFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassDestroyFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassDestroyFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDestroyFieldCallback` into a `C_WidgetClassDestroyFieldCallback`.
wrap_WidgetClassDestroyFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDestroyFieldCallback)) ->
    WidgetClassDestroyFieldCallback ->
    C_WidgetClassDestroyFieldCallback
wrap_WidgetClassDestroyFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassDestroyFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassDestroyEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventAny"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDestroyEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventAny.EventAny ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventAny" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDestroyEventFieldCallback :: FunPtr C_WidgetClassDestroyEventFieldCallback -> C_WidgetClassDestroyEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDestroyEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDestroyEventFieldCallback
    -> a
    -> Gdk.EventAny.EventAny
    -> m Bool
dynamic_WidgetClassDestroyEventFieldCallback :: FunPtr C_WidgetClassUnmapEventFieldCallback
-> a -> EventAny -> m Bool
dynamic_WidgetClassDestroyEventFieldCallback __funPtr :: FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr widget :: a
widget event :: EventAny
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventAny
event' <- EventAny -> IO (Ptr EventAny)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventAny
event
    CInt
result <- (FunPtr C_WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
__dynamic_C_WidgetClassDestroyEventFieldCallback FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventAny
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventAny -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventAny
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDestroyEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDestroyEventFieldCallback :: C_WidgetClassDestroyEventFieldCallback -> IO (FunPtr C_WidgetClassDestroyEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDestroyEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventAny.EventAny
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDestroyEventFieldCallback`@.
noWidgetClassDestroyEventFieldCallback :: Maybe WidgetClassDestroyEventFieldCallback
noWidgetClassDestroyEventFieldCallback :: Maybe WidgetClassUnmapEventFieldCallback
noWidgetClassDestroyEventFieldCallback = Maybe WidgetClassUnmapEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDestroyEventFieldCallback :: MonadIO m => WidgetClassDestroyEventFieldCallback -> m (GClosure C_WidgetClassDestroyEventFieldCallback)
genClosure_WidgetClassDestroyEventFieldCallback :: WidgetClassUnmapEventFieldCallback
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
genClosure_WidgetClassDestroyEventFieldCallback cb :: WidgetClassUnmapEventFieldCallback
cb = IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnmapEventFieldCallback)
 -> m (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnmapEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassDestroyEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnmapEventFieldCallback
cb
    C_WidgetClassUnmapEventFieldCallback
-> IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
mk_WidgetClassDestroyEventFieldCallback C_WidgetClassUnmapEventFieldCallback
cb' IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
-> (FunPtr C_WidgetClassUnmapEventFieldCallback
    -> IO (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnmapEventFieldCallback
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDestroyEventFieldCallback` into a `C_WidgetClassDestroyEventFieldCallback`.
wrap_WidgetClassDestroyEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDestroyEventFieldCallback)) ->
    WidgetClassDestroyEventFieldCallback ->
    C_WidgetClassDestroyEventFieldCallback
wrap_WidgetClassDestroyEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassDestroyEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr _cb :: WidgetClassUnmapEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventAny
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventAny
event' <- ((ManagedPtr EventAny -> EventAny) -> Ptr EventAny -> IO EventAny
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventAny -> EventAny
Gdk.EventAny.EventAny) Ptr EventAny
event
    Bool
result <- WidgetClassUnmapEventFieldCallback
_cb  Widget
widget' EventAny
event'
    Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDeleteEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventAny"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDeleteEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventAny.EventAny ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventAny" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDeleteEventFieldCallback :: FunPtr C_WidgetClassDeleteEventFieldCallback -> C_WidgetClassDeleteEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDeleteEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDeleteEventFieldCallback
    -> a
    -> Gdk.EventAny.EventAny
    -> m Bool
dynamic_WidgetClassDeleteEventFieldCallback :: FunPtr C_WidgetClassUnmapEventFieldCallback
-> a -> EventAny -> m Bool
dynamic_WidgetClassDeleteEventFieldCallback __funPtr :: FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr widget :: a
widget event :: EventAny
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventAny
event' <- EventAny -> IO (Ptr EventAny)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventAny
event
    CInt
result <- (FunPtr C_WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
__dynamic_C_WidgetClassDeleteEventFieldCallback FunPtr C_WidgetClassUnmapEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventAny
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventAny -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventAny
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDeleteEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDeleteEventFieldCallback :: C_WidgetClassDeleteEventFieldCallback -> IO (FunPtr C_WidgetClassDeleteEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDeleteEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventAny.EventAny
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDeleteEventFieldCallback`@.
noWidgetClassDeleteEventFieldCallback :: Maybe WidgetClassDeleteEventFieldCallback
noWidgetClassDeleteEventFieldCallback :: Maybe WidgetClassUnmapEventFieldCallback
noWidgetClassDeleteEventFieldCallback = Maybe WidgetClassUnmapEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDeleteEventFieldCallback :: MonadIO m => WidgetClassDeleteEventFieldCallback -> m (GClosure C_WidgetClassDeleteEventFieldCallback)
genClosure_WidgetClassDeleteEventFieldCallback :: WidgetClassUnmapEventFieldCallback
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
genClosure_WidgetClassDeleteEventFieldCallback cb :: WidgetClassUnmapEventFieldCallback
cb = IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnmapEventFieldCallback)
 -> m (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
-> m (GClosure C_WidgetClassUnmapEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnmapEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassDeleteEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnmapEventFieldCallback
cb
    C_WidgetClassUnmapEventFieldCallback
-> IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
mk_WidgetClassDeleteEventFieldCallback C_WidgetClassUnmapEventFieldCallback
cb' IO (FunPtr C_WidgetClassUnmapEventFieldCallback)
-> (FunPtr C_WidgetClassUnmapEventFieldCallback
    -> IO (GClosure C_WidgetClassUnmapEventFieldCallback))
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnmapEventFieldCallback
-> IO (GClosure C_WidgetClassUnmapEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDeleteEventFieldCallback` into a `C_WidgetClassDeleteEventFieldCallback`.
wrap_WidgetClassDeleteEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDeleteEventFieldCallback)) ->
    WidgetClassDeleteEventFieldCallback ->
    C_WidgetClassDeleteEventFieldCallback
wrap_WidgetClassDeleteEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
-> WidgetClassUnmapEventFieldCallback
-> C_WidgetClassUnmapEventFieldCallback
wrap_WidgetClassDeleteEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr _cb :: WidgetClassUnmapEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventAny
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventAny
event' <- ((ManagedPtr EventAny -> EventAny) -> Ptr EventAny -> IO EventAny
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventAny -> EventAny
Gdk.EventAny.EventAny) Ptr EventAny
event
    Bool
result <- WidgetClassUnmapEventFieldCallback
_cb  Widget
widget' EventAny
event'
    Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnmapEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassDamageEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventExpose"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassDamageEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventExpose.EventExpose ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventExpose" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassDamageEventFieldCallback :: FunPtr C_WidgetClassDamageEventFieldCallback -> C_WidgetClassDamageEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassDamageEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassDamageEventFieldCallback
    -> a
    -> Gdk.EventExpose.EventExpose
    -> m Bool
dynamic_WidgetClassDamageEventFieldCallback :: FunPtr C_WidgetClassDamageEventFieldCallback
-> a -> EventExpose -> m Bool
dynamic_WidgetClassDamageEventFieldCallback __funPtr :: FunPtr C_WidgetClassDamageEventFieldCallback
__funPtr widget :: a
widget event :: EventExpose
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventExpose
event' <- EventExpose -> IO (Ptr EventExpose)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventExpose
event
    CInt
result <- (FunPtr C_WidgetClassDamageEventFieldCallback
-> C_WidgetClassDamageEventFieldCallback
__dynamic_C_WidgetClassDamageEventFieldCallback FunPtr C_WidgetClassDamageEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventExpose
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventExpose -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventExpose
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassDamageEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassDamageEventFieldCallback :: C_WidgetClassDamageEventFieldCallback -> IO (FunPtr C_WidgetClassDamageEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassDamageEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventExpose.EventExpose
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassDamageEventFieldCallback`@.
noWidgetClassDamageEventFieldCallback :: Maybe WidgetClassDamageEventFieldCallback
noWidgetClassDamageEventFieldCallback :: Maybe WidgetClassDamageEventFieldCallback
noWidgetClassDamageEventFieldCallback = Maybe WidgetClassDamageEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassDamageEventFieldCallback :: MonadIO m => WidgetClassDamageEventFieldCallback -> m (GClosure C_WidgetClassDamageEventFieldCallback)
genClosure_WidgetClassDamageEventFieldCallback :: WidgetClassDamageEventFieldCallback
-> m (GClosure C_WidgetClassDamageEventFieldCallback)
genClosure_WidgetClassDamageEventFieldCallback cb :: WidgetClassDamageEventFieldCallback
cb = IO (GClosure C_WidgetClassDamageEventFieldCallback)
-> m (GClosure C_WidgetClassDamageEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassDamageEventFieldCallback)
 -> m (GClosure C_WidgetClassDamageEventFieldCallback))
-> IO (GClosure C_WidgetClassDamageEventFieldCallback)
-> m (GClosure C_WidgetClassDamageEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassDamageEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback))
-> WidgetClassDamageEventFieldCallback
-> C_WidgetClassDamageEventFieldCallback
wrap_WidgetClassDamageEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassDamageEventFieldCallback
cb
    C_WidgetClassDamageEventFieldCallback
-> IO (FunPtr C_WidgetClassDamageEventFieldCallback)
mk_WidgetClassDamageEventFieldCallback C_WidgetClassDamageEventFieldCallback
cb' IO (FunPtr C_WidgetClassDamageEventFieldCallback)
-> (FunPtr C_WidgetClassDamageEventFieldCallback
    -> IO (GClosure C_WidgetClassDamageEventFieldCallback))
-> IO (GClosure C_WidgetClassDamageEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassDamageEventFieldCallback
-> IO (GClosure C_WidgetClassDamageEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassDamageEventFieldCallback` into a `C_WidgetClassDamageEventFieldCallback`.
wrap_WidgetClassDamageEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback)) ->
    WidgetClassDamageEventFieldCallback ->
    C_WidgetClassDamageEventFieldCallback
wrap_WidgetClassDamageEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback))
-> WidgetClassDamageEventFieldCallback
-> C_WidgetClassDamageEventFieldCallback
wrap_WidgetClassDamageEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback))
funptrptr _cb :: WidgetClassDamageEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventExpose
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventExpose
event' <- ((ManagedPtr EventExpose -> EventExpose)
-> Ptr EventExpose -> IO EventExpose
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventExpose -> EventExpose
Gdk.EventExpose.EventExpose) Ptr EventExpose
event
    Bool
result <- WidgetClassDamageEventFieldCallback
_cb  Widget
widget' EventExpose
event'
    Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassDamageEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassConfigureEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventConfigure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassConfigureEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventConfigure.EventConfigure ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventConfigure" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassConfigureEventFieldCallback :: FunPtr C_WidgetClassConfigureEventFieldCallback -> C_WidgetClassConfigureEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassConfigureEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassConfigureEventFieldCallback
    -> a
    -> Gdk.EventConfigure.EventConfigure
    -> m Bool
dynamic_WidgetClassConfigureEventFieldCallback :: FunPtr C_WidgetClassConfigureEventFieldCallback
-> a -> EventConfigure -> m Bool
dynamic_WidgetClassConfigureEventFieldCallback __funPtr :: FunPtr C_WidgetClassConfigureEventFieldCallback
__funPtr widget :: a
widget event :: EventConfigure
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventConfigure
event' <- EventConfigure -> IO (Ptr EventConfigure)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventConfigure
event
    CInt
result <- (FunPtr C_WidgetClassConfigureEventFieldCallback
-> C_WidgetClassConfigureEventFieldCallback
__dynamic_C_WidgetClassConfigureEventFieldCallback FunPtr C_WidgetClassConfigureEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventConfigure
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventConfigure -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventConfigure
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassConfigureEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassConfigureEventFieldCallback :: C_WidgetClassConfigureEventFieldCallback -> IO (FunPtr C_WidgetClassConfigureEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassConfigureEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventConfigure.EventConfigure
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassConfigureEventFieldCallback`@.
noWidgetClassConfigureEventFieldCallback :: Maybe WidgetClassConfigureEventFieldCallback
noWidgetClassConfigureEventFieldCallback :: Maybe WidgetClassConfigureEventFieldCallback
noWidgetClassConfigureEventFieldCallback = Maybe WidgetClassConfigureEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassConfigureEventFieldCallback :: MonadIO m => WidgetClassConfigureEventFieldCallback -> m (GClosure C_WidgetClassConfigureEventFieldCallback)
genClosure_WidgetClassConfigureEventFieldCallback :: WidgetClassConfigureEventFieldCallback
-> m (GClosure C_WidgetClassConfigureEventFieldCallback)
genClosure_WidgetClassConfigureEventFieldCallback cb :: WidgetClassConfigureEventFieldCallback
cb = IO (GClosure C_WidgetClassConfigureEventFieldCallback)
-> m (GClosure C_WidgetClassConfigureEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassConfigureEventFieldCallback)
 -> m (GClosure C_WidgetClassConfigureEventFieldCallback))
-> IO (GClosure C_WidgetClassConfigureEventFieldCallback)
-> m (GClosure C_WidgetClassConfigureEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassConfigureEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback))
-> WidgetClassConfigureEventFieldCallback
-> C_WidgetClassConfigureEventFieldCallback
wrap_WidgetClassConfigureEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassConfigureEventFieldCallback
cb
    C_WidgetClassConfigureEventFieldCallback
-> IO (FunPtr C_WidgetClassConfigureEventFieldCallback)
mk_WidgetClassConfigureEventFieldCallback C_WidgetClassConfigureEventFieldCallback
cb' IO (FunPtr C_WidgetClassConfigureEventFieldCallback)
-> (FunPtr C_WidgetClassConfigureEventFieldCallback
    -> IO (GClosure C_WidgetClassConfigureEventFieldCallback))
-> IO (GClosure C_WidgetClassConfigureEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassConfigureEventFieldCallback
-> IO (GClosure C_WidgetClassConfigureEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassConfigureEventFieldCallback` into a `C_WidgetClassConfigureEventFieldCallback`.
wrap_WidgetClassConfigureEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback)) ->
    WidgetClassConfigureEventFieldCallback ->
    C_WidgetClassConfigureEventFieldCallback
wrap_WidgetClassConfigureEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback))
-> WidgetClassConfigureEventFieldCallback
-> C_WidgetClassConfigureEventFieldCallback
wrap_WidgetClassConfigureEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback))
funptrptr _cb :: WidgetClassConfigureEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventConfigure
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventConfigure
event' <- ((ManagedPtr EventConfigure -> EventConfigure)
-> Ptr EventConfigure -> IO EventConfigure
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventConfigure -> EventConfigure
Gdk.EventConfigure.EventConfigure) Ptr EventConfigure
event
    Bool
result <- WidgetClassConfigureEventFieldCallback
_cb  Widget
widget' EventConfigure
event'
    Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassConfigureEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassComputeExpandFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hexpand_p", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "vexpand_p", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassComputeExpandFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CInt ->
    CInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "hexpand_p"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "vexpand_p"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassComputeExpandFieldCallback :: FunPtr C_WidgetClassComputeExpandFieldCallback -> C_WidgetClassComputeExpandFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassComputeExpandFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassComputeExpandFieldCallback
    -> a
    -> Bool
    -> Bool
    -> m ()
dynamic_WidgetClassComputeExpandFieldCallback :: FunPtr C_WidgetClassComputeExpandFieldCallback
-> a -> Bool -> Bool -> m ()
dynamic_WidgetClassComputeExpandFieldCallback __funPtr :: FunPtr C_WidgetClassComputeExpandFieldCallback
__funPtr widget :: a
widget hexpandP :: Bool
hexpandP vexpandP :: Bool
vexpandP = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let hexpandP' :: CInt
hexpandP' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
hexpandP
    let vexpandP' :: CInt
vexpandP' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
vexpandP
    (FunPtr C_WidgetClassComputeExpandFieldCallback
-> C_WidgetClassComputeExpandFieldCallback
__dynamic_C_WidgetClassComputeExpandFieldCallback FunPtr C_WidgetClassComputeExpandFieldCallback
__funPtr) Ptr Widget
widget' CInt
hexpandP' CInt
vexpandP'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassComputeExpandFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassComputeExpandFieldCallback :: C_WidgetClassComputeExpandFieldCallback -> IO (FunPtr C_WidgetClassComputeExpandFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassComputeExpandFieldCallback =
    Gtk.Widget.Widget
    -> Bool
    -> Bool
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassComputeExpandFieldCallback`@.
noWidgetClassComputeExpandFieldCallback :: Maybe WidgetClassComputeExpandFieldCallback
noWidgetClassComputeExpandFieldCallback :: Maybe WidgetClassComputeExpandFieldCallback
noWidgetClassComputeExpandFieldCallback = Maybe WidgetClassComputeExpandFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassComputeExpandFieldCallback :: MonadIO m => WidgetClassComputeExpandFieldCallback -> m (GClosure C_WidgetClassComputeExpandFieldCallback)
genClosure_WidgetClassComputeExpandFieldCallback :: WidgetClassComputeExpandFieldCallback
-> m (GClosure C_WidgetClassComputeExpandFieldCallback)
genClosure_WidgetClassComputeExpandFieldCallback cb :: WidgetClassComputeExpandFieldCallback
cb = IO (GClosure C_WidgetClassComputeExpandFieldCallback)
-> m (GClosure C_WidgetClassComputeExpandFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassComputeExpandFieldCallback)
 -> m (GClosure C_WidgetClassComputeExpandFieldCallback))
-> IO (GClosure C_WidgetClassComputeExpandFieldCallback)
-> m (GClosure C_WidgetClassComputeExpandFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassComputeExpandFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback))
-> WidgetClassComputeExpandFieldCallback
-> C_WidgetClassComputeExpandFieldCallback
wrap_WidgetClassComputeExpandFieldCallback Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback))
forall a. Maybe a
Nothing WidgetClassComputeExpandFieldCallback
cb
    C_WidgetClassComputeExpandFieldCallback
-> IO (FunPtr C_WidgetClassComputeExpandFieldCallback)
mk_WidgetClassComputeExpandFieldCallback C_WidgetClassComputeExpandFieldCallback
cb' IO (FunPtr C_WidgetClassComputeExpandFieldCallback)
-> (FunPtr C_WidgetClassComputeExpandFieldCallback
    -> IO (GClosure C_WidgetClassComputeExpandFieldCallback))
-> IO (GClosure C_WidgetClassComputeExpandFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassComputeExpandFieldCallback
-> IO (GClosure C_WidgetClassComputeExpandFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassComputeExpandFieldCallback` into a `C_WidgetClassComputeExpandFieldCallback`.
wrap_WidgetClassComputeExpandFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback)) ->
    WidgetClassComputeExpandFieldCallback ->
    C_WidgetClassComputeExpandFieldCallback
wrap_WidgetClassComputeExpandFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback))
-> WidgetClassComputeExpandFieldCallback
-> C_WidgetClassComputeExpandFieldCallback
wrap_WidgetClassComputeExpandFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback))
funptrptr _cb :: WidgetClassComputeExpandFieldCallback
_cb widget :: Ptr Widget
widget hexpandP :: CInt
hexpandP vexpandP :: CInt
vexpandP = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let hexpandP' :: Bool
hexpandP' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
hexpandP
    let vexpandP' :: Bool
vexpandP' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
vexpandP
    WidgetClassComputeExpandFieldCallback
_cb  Widget
widget' Bool
hexpandP' Bool
vexpandP'
    Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassComputeExpandFieldCallback))
funptrptr


-- callback WidgetClassCompositedChangedFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassCompositedChangedFieldCallback =
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassCompositedChangedFieldCallback :: FunPtr C_WidgetClassCompositedChangedFieldCallback -> C_WidgetClassCompositedChangedFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassCompositedChangedFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassCompositedChangedFieldCallback
    -> a
    -> m ()
dynamic_WidgetClassCompositedChangedFieldCallback :: FunPtr C_WidgetClassUnrealizeFieldCallback -> a -> m ()
dynamic_WidgetClassCompositedChangedFieldCallback __funPtr :: FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr widget :: a
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
__dynamic_C_WidgetClassCompositedChangedFieldCallback FunPtr C_WidgetClassUnrealizeFieldCallback
__funPtr) Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassCompositedChangedFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassCompositedChangedFieldCallback :: C_WidgetClassCompositedChangedFieldCallback -> IO (FunPtr C_WidgetClassCompositedChangedFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassCompositedChangedFieldCallback =
    Gtk.Widget.Widget
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassCompositedChangedFieldCallback`@.
noWidgetClassCompositedChangedFieldCallback :: Maybe WidgetClassCompositedChangedFieldCallback
noWidgetClassCompositedChangedFieldCallback :: Maybe WidgetClassUnrealizeFieldCallback
noWidgetClassCompositedChangedFieldCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassCompositedChangedFieldCallback :: MonadIO m => WidgetClassCompositedChangedFieldCallback -> m (GClosure C_WidgetClassCompositedChangedFieldCallback)
genClosure_WidgetClassCompositedChangedFieldCallback :: WidgetClassUnrealizeFieldCallback
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
genClosure_WidgetClassCompositedChangedFieldCallback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassUnrealizeFieldCallback)
 -> m (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
-> m (GClosure C_WidgetClassUnrealizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassUnrealizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassCompositedChangedFieldCallback Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
forall a. Maybe a
Nothing WidgetClassUnrealizeFieldCallback
cb
    C_WidgetClassUnrealizeFieldCallback
-> IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
mk_WidgetClassCompositedChangedFieldCallback C_WidgetClassUnrealizeFieldCallback
cb' IO (FunPtr C_WidgetClassUnrealizeFieldCallback)
-> (FunPtr C_WidgetClassUnrealizeFieldCallback
    -> IO (GClosure C_WidgetClassUnrealizeFieldCallback))
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassUnrealizeFieldCallback
-> IO (GClosure C_WidgetClassUnrealizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassCompositedChangedFieldCallback` into a `C_WidgetClassCompositedChangedFieldCallback`.
wrap_WidgetClassCompositedChangedFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassCompositedChangedFieldCallback)) ->
    WidgetClassCompositedChangedFieldCallback ->
    C_WidgetClassCompositedChangedFieldCallback
wrap_WidgetClassCompositedChangedFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
-> WidgetClassUnrealizeFieldCallback
-> C_WidgetClassUnrealizeFieldCallback
wrap_WidgetClassCompositedChangedFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr _cb :: WidgetClassUnrealizeFieldCallback
_cb widget :: Ptr Widget
widget = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassUnrealizeFieldCallback
_cb  Widget
widget'
    Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassUnrealizeFieldCallback))
funptrptr


-- callback WidgetClassChildNotifyFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_property", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name of a child property installed on the\n                 class of @widget\8217s parent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassChildNotifyFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr GParamSpec ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child_property"
--           , argType = TParamSpec
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the name of a child property installed on the\n                 class of @widget\8217s parent"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassChildNotifyFieldCallback :: FunPtr C_WidgetClassChildNotifyFieldCallback -> C_WidgetClassChildNotifyFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassChildNotifyFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassChildNotifyFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> GParamSpec
    -- ^ /@childProperty@/: the name of a child property installed on the
    --                  class of /@widget@/’s parent
    -> m ()
dynamic_WidgetClassChildNotifyFieldCallback :: FunPtr C_WidgetClassChildNotifyFieldCallback
-> a -> GParamSpec -> m ()
dynamic_WidgetClassChildNotifyFieldCallback __funPtr :: FunPtr C_WidgetClassChildNotifyFieldCallback
__funPtr widget :: a
widget childProperty :: GParamSpec
childProperty = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr GParamSpec
childProperty' <- GParamSpec -> IO (Ptr GParamSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GParamSpec
childProperty
    (FunPtr C_WidgetClassChildNotifyFieldCallback
-> C_WidgetClassChildNotifyFieldCallback
__dynamic_C_WidgetClassChildNotifyFieldCallback FunPtr C_WidgetClassChildNotifyFieldCallback
__funPtr) Ptr Widget
widget' Ptr GParamSpec
childProperty'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    GParamSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GParamSpec
childProperty
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassChildNotifyFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassChildNotifyFieldCallback :: C_WidgetClassChildNotifyFieldCallback -> IO (FunPtr C_WidgetClassChildNotifyFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassChildNotifyFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> GParamSpec
    -- ^ /@childProperty@/: the name of a child property installed on the
    --                  class of /@widget@/’s parent
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassChildNotifyFieldCallback`@.
noWidgetClassChildNotifyFieldCallback :: Maybe WidgetClassChildNotifyFieldCallback
noWidgetClassChildNotifyFieldCallback :: Maybe WidgetClassChildNotifyFieldCallback
noWidgetClassChildNotifyFieldCallback = Maybe WidgetClassChildNotifyFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassChildNotifyFieldCallback :: MonadIO m => WidgetClassChildNotifyFieldCallback -> m (GClosure C_WidgetClassChildNotifyFieldCallback)
genClosure_WidgetClassChildNotifyFieldCallback :: WidgetClassChildNotifyFieldCallback
-> m (GClosure C_WidgetClassChildNotifyFieldCallback)
genClosure_WidgetClassChildNotifyFieldCallback cb :: WidgetClassChildNotifyFieldCallback
cb = IO (GClosure C_WidgetClassChildNotifyFieldCallback)
-> m (GClosure C_WidgetClassChildNotifyFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassChildNotifyFieldCallback)
 -> m (GClosure C_WidgetClassChildNotifyFieldCallback))
-> IO (GClosure C_WidgetClassChildNotifyFieldCallback)
-> m (GClosure C_WidgetClassChildNotifyFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassChildNotifyFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback))
-> WidgetClassChildNotifyFieldCallback
-> C_WidgetClassChildNotifyFieldCallback
wrap_WidgetClassChildNotifyFieldCallback Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback))
forall a. Maybe a
Nothing WidgetClassChildNotifyFieldCallback
cb
    C_WidgetClassChildNotifyFieldCallback
-> IO (FunPtr C_WidgetClassChildNotifyFieldCallback)
mk_WidgetClassChildNotifyFieldCallback C_WidgetClassChildNotifyFieldCallback
cb' IO (FunPtr C_WidgetClassChildNotifyFieldCallback)
-> (FunPtr C_WidgetClassChildNotifyFieldCallback
    -> IO (GClosure C_WidgetClassChildNotifyFieldCallback))
-> IO (GClosure C_WidgetClassChildNotifyFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassChildNotifyFieldCallback
-> IO (GClosure C_WidgetClassChildNotifyFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassChildNotifyFieldCallback` into a `C_WidgetClassChildNotifyFieldCallback`.
wrap_WidgetClassChildNotifyFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback)) ->
    WidgetClassChildNotifyFieldCallback ->
    C_WidgetClassChildNotifyFieldCallback
wrap_WidgetClassChildNotifyFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback))
-> WidgetClassChildNotifyFieldCallback
-> C_WidgetClassChildNotifyFieldCallback
wrap_WidgetClassChildNotifyFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback))
funptrptr _cb :: WidgetClassChildNotifyFieldCallback
_cb widget :: Ptr Widget
widget childProperty :: Ptr GParamSpec
childProperty = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    GParamSpec
childProperty' <- Ptr GParamSpec -> IO GParamSpec
B.GParamSpec.newGParamSpecFromPtr Ptr GParamSpec
childProperty
    WidgetClassChildNotifyFieldCallback
_cb  Widget
widget' GParamSpec
childProperty'
    Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassChildNotifyFieldCallback))
funptrptr


-- callback WidgetClassCanActivateAccelFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the accelerator can be activated.", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkWidget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the ID of a signal installed on @widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassCanActivateAccelFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Word32 ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "signal_id"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the ID of a signal installed on @widget"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassCanActivateAccelFieldCallback :: FunPtr C_WidgetClassCanActivateAccelFieldCallback -> C_WidgetClassCanActivateAccelFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassCanActivateAccelFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassCanActivateAccelFieldCallback
    -> a
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Word32
    -- ^ /@signalId@/: the ID of a signal installed on /@widget@/
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the accelerator can be activated.
dynamic_WidgetClassCanActivateAccelFieldCallback :: FunPtr C_WidgetClassCanActivateAccelFieldCallback
-> a -> Word32 -> m Bool
dynamic_WidgetClassCanActivateAccelFieldCallback __funPtr :: FunPtr C_WidgetClassCanActivateAccelFieldCallback
__funPtr widget :: a
widget signalId :: Word32
signalId = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    CInt
result <- (FunPtr C_WidgetClassCanActivateAccelFieldCallback
-> C_WidgetClassCanActivateAccelFieldCallback
__dynamic_C_WidgetClassCanActivateAccelFieldCallback FunPtr C_WidgetClassCanActivateAccelFieldCallback
__funPtr) Ptr Widget
widget' Word32
signalId
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassCanActivateAccelFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassCanActivateAccelFieldCallback :: C_WidgetClassCanActivateAccelFieldCallback -> IO (FunPtr C_WidgetClassCanActivateAccelFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassCanActivateAccelFieldCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: a t'GI.Gtk.Objects.Widget.Widget'
    -> Word32
    -- ^ /@signalId@/: the ID of a signal installed on /@widget@/
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the accelerator can be activated.

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassCanActivateAccelFieldCallback`@.
noWidgetClassCanActivateAccelFieldCallback :: Maybe WidgetClassCanActivateAccelFieldCallback
noWidgetClassCanActivateAccelFieldCallback :: Maybe WidgetClassCanActivateAccelFieldCallback
noWidgetClassCanActivateAccelFieldCallback = Maybe WidgetClassCanActivateAccelFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassCanActivateAccelFieldCallback :: MonadIO m => WidgetClassCanActivateAccelFieldCallback -> m (GClosure C_WidgetClassCanActivateAccelFieldCallback)
genClosure_WidgetClassCanActivateAccelFieldCallback :: WidgetClassCanActivateAccelFieldCallback
-> m (GClosure C_WidgetClassCanActivateAccelFieldCallback)
genClosure_WidgetClassCanActivateAccelFieldCallback cb :: WidgetClassCanActivateAccelFieldCallback
cb = IO (GClosure C_WidgetClassCanActivateAccelFieldCallback)
-> m (GClosure C_WidgetClassCanActivateAccelFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassCanActivateAccelFieldCallback)
 -> m (GClosure C_WidgetClassCanActivateAccelFieldCallback))
-> IO (GClosure C_WidgetClassCanActivateAccelFieldCallback)
-> m (GClosure C_WidgetClassCanActivateAccelFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassCanActivateAccelFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback))
-> WidgetClassCanActivateAccelFieldCallback
-> C_WidgetClassCanActivateAccelFieldCallback
wrap_WidgetClassCanActivateAccelFieldCallback Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback))
forall a. Maybe a
Nothing WidgetClassCanActivateAccelFieldCallback
cb
    C_WidgetClassCanActivateAccelFieldCallback
-> IO (FunPtr C_WidgetClassCanActivateAccelFieldCallback)
mk_WidgetClassCanActivateAccelFieldCallback C_WidgetClassCanActivateAccelFieldCallback
cb' IO (FunPtr C_WidgetClassCanActivateAccelFieldCallback)
-> (FunPtr C_WidgetClassCanActivateAccelFieldCallback
    -> IO (GClosure C_WidgetClassCanActivateAccelFieldCallback))
-> IO (GClosure C_WidgetClassCanActivateAccelFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassCanActivateAccelFieldCallback
-> IO (GClosure C_WidgetClassCanActivateAccelFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassCanActivateAccelFieldCallback` into a `C_WidgetClassCanActivateAccelFieldCallback`.
wrap_WidgetClassCanActivateAccelFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback)) ->
    WidgetClassCanActivateAccelFieldCallback ->
    C_WidgetClassCanActivateAccelFieldCallback
wrap_WidgetClassCanActivateAccelFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback))
-> WidgetClassCanActivateAccelFieldCallback
-> C_WidgetClassCanActivateAccelFieldCallback
wrap_WidgetClassCanActivateAccelFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback))
funptrptr _cb :: WidgetClassCanActivateAccelFieldCallback
_cb widget :: Ptr Widget
widget signalId :: Word32
signalId = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Bool
result <- WidgetClassCanActivateAccelFieldCallback
_cb  Widget
widget' Word32
signalId
    Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassCanActivateAccelFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassButtonReleaseEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventButton"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassButtonReleaseEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventButton.EventButton ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventButton" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassButtonReleaseEventFieldCallback :: FunPtr C_WidgetClassButtonReleaseEventFieldCallback -> C_WidgetClassButtonReleaseEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassButtonReleaseEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassButtonReleaseEventFieldCallback
    -> a
    -> Gdk.EventButton.EventButton
    -> m Bool
dynamic_WidgetClassButtonReleaseEventFieldCallback :: FunPtr C_WidgetClassButtonReleaseEventFieldCallback
-> a -> EventButton -> m Bool
dynamic_WidgetClassButtonReleaseEventFieldCallback __funPtr :: FunPtr C_WidgetClassButtonReleaseEventFieldCallback
__funPtr widget :: a
widget event :: EventButton
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventButton
event' <- EventButton -> IO (Ptr EventButton)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventButton
event
    CInt
result <- (FunPtr C_WidgetClassButtonReleaseEventFieldCallback
-> C_WidgetClassButtonReleaseEventFieldCallback
__dynamic_C_WidgetClassButtonReleaseEventFieldCallback FunPtr C_WidgetClassButtonReleaseEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventButton
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventButton -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventButton
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassButtonReleaseEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassButtonReleaseEventFieldCallback :: C_WidgetClassButtonReleaseEventFieldCallback -> IO (FunPtr C_WidgetClassButtonReleaseEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassButtonReleaseEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventButton.EventButton
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassButtonReleaseEventFieldCallback`@.
noWidgetClassButtonReleaseEventFieldCallback :: Maybe WidgetClassButtonReleaseEventFieldCallback
noWidgetClassButtonReleaseEventFieldCallback :: Maybe WidgetClassButtonReleaseEventFieldCallback
noWidgetClassButtonReleaseEventFieldCallback = Maybe WidgetClassButtonReleaseEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassButtonReleaseEventFieldCallback :: MonadIO m => WidgetClassButtonReleaseEventFieldCallback -> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
genClosure_WidgetClassButtonReleaseEventFieldCallback :: WidgetClassButtonReleaseEventFieldCallback
-> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
genClosure_WidgetClassButtonReleaseEventFieldCallback cb :: WidgetClassButtonReleaseEventFieldCallback
cb = IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
 -> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassButtonReleaseEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
-> WidgetClassButtonReleaseEventFieldCallback
-> C_WidgetClassButtonReleaseEventFieldCallback
wrap_WidgetClassButtonReleaseEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassButtonReleaseEventFieldCallback
cb
    C_WidgetClassButtonReleaseEventFieldCallback
-> IO (FunPtr C_WidgetClassButtonReleaseEventFieldCallback)
mk_WidgetClassButtonReleaseEventFieldCallback C_WidgetClassButtonReleaseEventFieldCallback
cb' IO (FunPtr C_WidgetClassButtonReleaseEventFieldCallback)
-> (FunPtr C_WidgetClassButtonReleaseEventFieldCallback
    -> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassButtonReleaseEventFieldCallback
-> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassButtonReleaseEventFieldCallback` into a `C_WidgetClassButtonReleaseEventFieldCallback`.
wrap_WidgetClassButtonReleaseEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback)) ->
    WidgetClassButtonReleaseEventFieldCallback ->
    C_WidgetClassButtonReleaseEventFieldCallback
wrap_WidgetClassButtonReleaseEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
-> WidgetClassButtonReleaseEventFieldCallback
-> C_WidgetClassButtonReleaseEventFieldCallback
wrap_WidgetClassButtonReleaseEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
funptrptr _cb :: WidgetClassButtonReleaseEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventButton
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventButton
event' <- ((ManagedPtr EventButton -> EventButton)
-> Ptr EventButton -> IO EventButton
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventButton -> EventButton
Gdk.EventButton.EventButton) Ptr EventButton
event
    Bool
result <- WidgetClassButtonReleaseEventFieldCallback
_cb  Widget
widget' EventButton
event'
    Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassButtonPressEventFieldCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventButton"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassButtonPressEventFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventButton.EventButton ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventButton" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassButtonPressEventFieldCallback :: FunPtr C_WidgetClassButtonPressEventFieldCallback -> C_WidgetClassButtonPressEventFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassButtonPressEventFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassButtonPressEventFieldCallback
    -> a
    -> Gdk.EventButton.EventButton
    -> m Bool
dynamic_WidgetClassButtonPressEventFieldCallback :: FunPtr C_WidgetClassButtonReleaseEventFieldCallback
-> a -> EventButton -> m Bool
dynamic_WidgetClassButtonPressEventFieldCallback __funPtr :: FunPtr C_WidgetClassButtonReleaseEventFieldCallback
__funPtr widget :: a
widget event :: EventButton
event = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr EventButton
event' <- EventButton -> IO (Ptr EventButton)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventButton
event
    CInt
result <- (FunPtr C_WidgetClassButtonReleaseEventFieldCallback
-> C_WidgetClassButtonReleaseEventFieldCallback
__dynamic_C_WidgetClassButtonPressEventFieldCallback FunPtr C_WidgetClassButtonReleaseEventFieldCallback
__funPtr) Ptr Widget
widget' Ptr EventButton
event'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    EventButton -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventButton
event
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_WidgetClassButtonPressEventFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassButtonPressEventFieldCallback :: C_WidgetClassButtonPressEventFieldCallback -> IO (FunPtr C_WidgetClassButtonPressEventFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassButtonPressEventFieldCallback =
    Gtk.Widget.Widget
    -> Gdk.EventButton.EventButton
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassButtonPressEventFieldCallback`@.
noWidgetClassButtonPressEventFieldCallback :: Maybe WidgetClassButtonPressEventFieldCallback
noWidgetClassButtonPressEventFieldCallback :: Maybe WidgetClassButtonReleaseEventFieldCallback
noWidgetClassButtonPressEventFieldCallback = Maybe WidgetClassButtonReleaseEventFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassButtonPressEventFieldCallback :: MonadIO m => WidgetClassButtonPressEventFieldCallback -> m (GClosure C_WidgetClassButtonPressEventFieldCallback)
genClosure_WidgetClassButtonPressEventFieldCallback :: WidgetClassButtonReleaseEventFieldCallback
-> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
genClosure_WidgetClassButtonPressEventFieldCallback cb :: WidgetClassButtonReleaseEventFieldCallback
cb = IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
 -> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
-> m (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassButtonReleaseEventFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
-> WidgetClassButtonReleaseEventFieldCallback
-> C_WidgetClassButtonReleaseEventFieldCallback
wrap_WidgetClassButtonPressEventFieldCallback Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
forall a. Maybe a
Nothing WidgetClassButtonReleaseEventFieldCallback
cb
    C_WidgetClassButtonReleaseEventFieldCallback
-> IO (FunPtr C_WidgetClassButtonReleaseEventFieldCallback)
mk_WidgetClassButtonPressEventFieldCallback C_WidgetClassButtonReleaseEventFieldCallback
cb' IO (FunPtr C_WidgetClassButtonReleaseEventFieldCallback)
-> (FunPtr C_WidgetClassButtonReleaseEventFieldCallback
    -> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback))
-> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassButtonReleaseEventFieldCallback
-> IO (GClosure C_WidgetClassButtonReleaseEventFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassButtonPressEventFieldCallback` into a `C_WidgetClassButtonPressEventFieldCallback`.
wrap_WidgetClassButtonPressEventFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassButtonPressEventFieldCallback)) ->
    WidgetClassButtonPressEventFieldCallback ->
    C_WidgetClassButtonPressEventFieldCallback
wrap_WidgetClassButtonPressEventFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
-> WidgetClassButtonReleaseEventFieldCallback
-> C_WidgetClassButtonReleaseEventFieldCallback
wrap_WidgetClassButtonPressEventFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
funptrptr _cb :: WidgetClassButtonReleaseEventFieldCallback
_cb widget :: Ptr Widget
widget event :: Ptr EventButton
event = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    EventButton
event' <- ((ManagedPtr EventButton -> EventButton)
-> Ptr EventButton -> IO EventButton
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventButton -> EventButton
Gdk.EventButton.EventButton) Ptr EventButton
event
    Bool
result <- WidgetClassButtonReleaseEventFieldCallback
_cb  Widget
widget' EventButton
event'
    Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassButtonReleaseEventFieldCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback WidgetClassAdjustSizeRequestFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orientation", argType = TInterface (Name {namespace = "Gtk", name = "Orientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "natural_size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassAdjustSizeRequestFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    Int32 ->
    Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "orientation"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Orientation" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_size"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "natural_size"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassAdjustSizeRequestFieldCallback :: FunPtr C_WidgetClassAdjustSizeRequestFieldCallback -> C_WidgetClassAdjustSizeRequestFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassAdjustSizeRequestFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
    -> a
    -> Gtk.Enums.Orientation
    -> Int32
    -> Int32
    -> m ()
dynamic_WidgetClassAdjustSizeRequestFieldCallback :: FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
-> a -> Orientation -> Int32 -> Int32 -> m ()
dynamic_WidgetClassAdjustSizeRequestFieldCallback __funPtr :: FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
__funPtr widget :: a
widget orientation :: Orientation
orientation minimumSize :: Int32
minimumSize naturalSize :: Int32
naturalSize = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let orientation' :: CUInt
orientation' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (Orientation -> Int) -> Orientation -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Orientation -> Int
forall a. Enum a => a -> Int
fromEnum) Orientation
orientation
    (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
-> C_WidgetClassAdjustSizeRequestFieldCallback
__dynamic_C_WidgetClassAdjustSizeRequestFieldCallback FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
__funPtr) Ptr Widget
widget' CUInt
orientation' Int32
minimumSize Int32
naturalSize
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassAdjustSizeRequestFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassAdjustSizeRequestFieldCallback :: C_WidgetClassAdjustSizeRequestFieldCallback -> IO (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassAdjustSizeRequestFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.Orientation
    -> Int32
    -> Int32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassAdjustSizeRequestFieldCallback`@.
noWidgetClassAdjustSizeRequestFieldCallback :: Maybe WidgetClassAdjustSizeRequestFieldCallback
noWidgetClassAdjustSizeRequestFieldCallback :: Maybe WidgetClassAdjustSizeRequestFieldCallback
noWidgetClassAdjustSizeRequestFieldCallback = Maybe WidgetClassAdjustSizeRequestFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassAdjustSizeRequestFieldCallback :: MonadIO m => WidgetClassAdjustSizeRequestFieldCallback -> m (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
genClosure_WidgetClassAdjustSizeRequestFieldCallback :: WidgetClassAdjustSizeRequestFieldCallback
-> m (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
genClosure_WidgetClassAdjustSizeRequestFieldCallback cb :: WidgetClassAdjustSizeRequestFieldCallback
cb = IO (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
-> m (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
 -> m (GClosure C_WidgetClassAdjustSizeRequestFieldCallback))
-> IO (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
-> m (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassAdjustSizeRequestFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback))
-> WidgetClassAdjustSizeRequestFieldCallback
-> C_WidgetClassAdjustSizeRequestFieldCallback
wrap_WidgetClassAdjustSizeRequestFieldCallback Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback))
forall a. Maybe a
Nothing WidgetClassAdjustSizeRequestFieldCallback
cb
    C_WidgetClassAdjustSizeRequestFieldCallback
-> IO (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback)
mk_WidgetClassAdjustSizeRequestFieldCallback C_WidgetClassAdjustSizeRequestFieldCallback
cb' IO (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback)
-> (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
    -> IO (GClosure C_WidgetClassAdjustSizeRequestFieldCallback))
-> IO (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassAdjustSizeRequestFieldCallback
-> IO (GClosure C_WidgetClassAdjustSizeRequestFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassAdjustSizeRequestFieldCallback` into a `C_WidgetClassAdjustSizeRequestFieldCallback`.
wrap_WidgetClassAdjustSizeRequestFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback)) ->
    WidgetClassAdjustSizeRequestFieldCallback ->
    C_WidgetClassAdjustSizeRequestFieldCallback
wrap_WidgetClassAdjustSizeRequestFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback))
-> WidgetClassAdjustSizeRequestFieldCallback
-> C_WidgetClassAdjustSizeRequestFieldCallback
wrap_WidgetClassAdjustSizeRequestFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback))
funptrptr _cb :: WidgetClassAdjustSizeRequestFieldCallback
_cb widget :: Ptr Widget
widget orientation :: CUInt
orientation minimumSize :: Int32
minimumSize naturalSize :: Int32
naturalSize = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let orientation' :: Orientation
orientation' = (Int -> Orientation
forall a. Enum a => Int -> a
toEnum (Int -> Orientation) -> (CUInt -> Int) -> CUInt -> Orientation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
orientation
    WidgetClassAdjustSizeRequestFieldCallback
_cb  Widget
widget' Orientation
orientation' Int32
minimumSize Int32
naturalSize
    Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeRequestFieldCallback))
funptrptr


-- callback WidgetClassAdjustSizeAllocationFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orientation", argType = TInterface (Name {namespace = "Gtk", name = "Orientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "natural_size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocated_pos", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocated_size", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassAdjustSizeAllocationFieldCallback =
    Ptr Gtk.Widget.Widget ->
    CUInt ->
    Int32 ->
    Int32 ->
    Int32 ->
    Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "orientation"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Orientation" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_size"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "natural_size"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "allocated_pos"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "allocated_size"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassAdjustSizeAllocationFieldCallback :: FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback -> C_WidgetClassAdjustSizeAllocationFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassAdjustSizeAllocationFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
    -> a
    -> Gtk.Enums.Orientation
    -> Int32
    -> Int32
    -> Int32
    -> Int32
    -> m ()
dynamic_WidgetClassAdjustSizeAllocationFieldCallback :: FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
-> a -> Orientation -> Int32 -> Int32 -> Int32 -> Int32 -> m ()
dynamic_WidgetClassAdjustSizeAllocationFieldCallback __funPtr :: FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
__funPtr widget :: a
widget orientation :: Orientation
orientation minimumSize :: Int32
minimumSize naturalSize :: Int32
naturalSize allocatedPos :: Int32
allocatedPos allocatedSize :: Int32
allocatedSize = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    let orientation' :: CUInt
orientation' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (Orientation -> Int) -> Orientation -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Orientation -> Int
forall a. Enum a => a -> Int
fromEnum) Orientation
orientation
    (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
-> C_WidgetClassAdjustSizeAllocationFieldCallback
__dynamic_C_WidgetClassAdjustSizeAllocationFieldCallback FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
__funPtr) Ptr Widget
widget' CUInt
orientation' Int32
minimumSize Int32
naturalSize Int32
allocatedPos Int32
allocatedSize
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassAdjustSizeAllocationFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassAdjustSizeAllocationFieldCallback :: C_WidgetClassAdjustSizeAllocationFieldCallback -> IO (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassAdjustSizeAllocationFieldCallback =
    Gtk.Widget.Widget
    -> Gtk.Enums.Orientation
    -> Int32
    -> Int32
    -> Int32
    -> Int32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassAdjustSizeAllocationFieldCallback`@.
noWidgetClassAdjustSizeAllocationFieldCallback :: Maybe WidgetClassAdjustSizeAllocationFieldCallback
noWidgetClassAdjustSizeAllocationFieldCallback :: Maybe WidgetClassAdjustSizeAllocationFieldCallback
noWidgetClassAdjustSizeAllocationFieldCallback = Maybe WidgetClassAdjustSizeAllocationFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassAdjustSizeAllocationFieldCallback :: MonadIO m => WidgetClassAdjustSizeAllocationFieldCallback -> m (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
genClosure_WidgetClassAdjustSizeAllocationFieldCallback :: WidgetClassAdjustSizeAllocationFieldCallback
-> m (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
genClosure_WidgetClassAdjustSizeAllocationFieldCallback cb :: WidgetClassAdjustSizeAllocationFieldCallback
cb = IO (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
-> m (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
 -> m (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback))
-> IO (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
-> m (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassAdjustSizeAllocationFieldCallback
cb' = Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback))
-> WidgetClassAdjustSizeAllocationFieldCallback
-> C_WidgetClassAdjustSizeAllocationFieldCallback
wrap_WidgetClassAdjustSizeAllocationFieldCallback Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback))
forall a. Maybe a
Nothing WidgetClassAdjustSizeAllocationFieldCallback
cb
    C_WidgetClassAdjustSizeAllocationFieldCallback
-> IO (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback)
mk_WidgetClassAdjustSizeAllocationFieldCallback C_WidgetClassAdjustSizeAllocationFieldCallback
cb' IO (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback)
-> (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
    -> IO (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback))
-> IO (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback
-> IO (GClosure C_WidgetClassAdjustSizeAllocationFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassAdjustSizeAllocationFieldCallback` into a `C_WidgetClassAdjustSizeAllocationFieldCallback`.
wrap_WidgetClassAdjustSizeAllocationFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback)) ->
    WidgetClassAdjustSizeAllocationFieldCallback ->
    C_WidgetClassAdjustSizeAllocationFieldCallback
wrap_WidgetClassAdjustSizeAllocationFieldCallback :: Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback))
-> WidgetClassAdjustSizeAllocationFieldCallback
-> C_WidgetClassAdjustSizeAllocationFieldCallback
wrap_WidgetClassAdjustSizeAllocationFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback))
funptrptr _cb :: WidgetClassAdjustSizeAllocationFieldCallback
_cb widget :: Ptr Widget
widget orientation :: CUInt
orientation minimumSize :: Int32
minimumSize naturalSize :: Int32
naturalSize allocatedPos :: Int32
allocatedPos allocatedSize :: Int32
allocatedSize = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    let orientation' :: Orientation
orientation' = (Int -> Orientation
forall a. Enum a => Int -> a
toEnum (Int -> Orientation) -> (CUInt -> Int) -> CUInt -> Orientation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
orientation
    WidgetClassAdjustSizeAllocationFieldCallback
_cb  Widget
widget' Orientation
orientation' Int32
minimumSize Int32
naturalSize Int32
allocatedPos Int32
allocatedSize
    Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_WidgetClassAdjustSizeAllocationFieldCallback))
funptrptr


-- callback WidgetClassAdjustBaselineRequestFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum_baseline", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "natural_baseline", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassAdjustBaselineRequestFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Int32 ->
    Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "minimum_baseline"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "natural_baseline"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassAdjustBaselineRequestFieldCallback :: FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback -> C_WidgetClassAdjustBaselineRequestFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassAdjustBaselineRequestFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
    -> a
    -> Int32
    -> Int32
    -> m ()
dynamic_WidgetClassAdjustBaselineRequestFieldCallback :: FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
-> a -> Int32 -> Int32 -> m ()
dynamic_WidgetClassAdjustBaselineRequestFieldCallback __funPtr :: FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
__funPtr widget :: a
widget minimumBaseline :: Int32
minimumBaseline naturalBaseline :: Int32
naturalBaseline = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
-> C_WidgetClassAdjustBaselineRequestFieldCallback
__dynamic_C_WidgetClassAdjustBaselineRequestFieldCallback FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
__funPtr) Ptr Widget
widget' Int32
minimumBaseline Int32
naturalBaseline
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassAdjustBaselineRequestFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassAdjustBaselineRequestFieldCallback :: C_WidgetClassAdjustBaselineRequestFieldCallback -> IO (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassAdjustBaselineRequestFieldCallback =
    Gtk.Widget.Widget
    -> Int32
    -> Int32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassAdjustBaselineRequestFieldCallback`@.
noWidgetClassAdjustBaselineRequestFieldCallback :: Maybe WidgetClassAdjustBaselineRequestFieldCallback
noWidgetClassAdjustBaselineRequestFieldCallback :: Maybe WidgetClassAdjustBaselineRequestFieldCallback
noWidgetClassAdjustBaselineRequestFieldCallback = Maybe WidgetClassAdjustBaselineRequestFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassAdjustBaselineRequestFieldCallback :: MonadIO m => WidgetClassAdjustBaselineRequestFieldCallback -> m (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
genClosure_WidgetClassAdjustBaselineRequestFieldCallback :: WidgetClassAdjustBaselineRequestFieldCallback
-> m (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
genClosure_WidgetClassAdjustBaselineRequestFieldCallback cb :: WidgetClassAdjustBaselineRequestFieldCallback
cb = IO (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
-> m (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
 -> m (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback))
-> IO (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
-> m (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassAdjustBaselineRequestFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback))
-> WidgetClassAdjustBaselineRequestFieldCallback
-> C_WidgetClassAdjustBaselineRequestFieldCallback
wrap_WidgetClassAdjustBaselineRequestFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback))
forall a. Maybe a
Nothing WidgetClassAdjustBaselineRequestFieldCallback
cb
    C_WidgetClassAdjustBaselineRequestFieldCallback
-> IO (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback)
mk_WidgetClassAdjustBaselineRequestFieldCallback C_WidgetClassAdjustBaselineRequestFieldCallback
cb' IO (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback)
-> (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
    -> IO (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback))
-> IO (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback
-> IO (GClosure C_WidgetClassAdjustBaselineRequestFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassAdjustBaselineRequestFieldCallback` into a `C_WidgetClassAdjustBaselineRequestFieldCallback`.
wrap_WidgetClassAdjustBaselineRequestFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback)) ->
    WidgetClassAdjustBaselineRequestFieldCallback ->
    C_WidgetClassAdjustBaselineRequestFieldCallback
wrap_WidgetClassAdjustBaselineRequestFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback))
-> WidgetClassAdjustBaselineRequestFieldCallback
-> C_WidgetClassAdjustBaselineRequestFieldCallback
wrap_WidgetClassAdjustBaselineRequestFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback))
funptrptr _cb :: WidgetClassAdjustBaselineRequestFieldCallback
_cb widget :: Ptr Widget
widget minimumBaseline :: Int32
minimumBaseline naturalBaseline :: Int32
naturalBaseline = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassAdjustBaselineRequestFieldCallback
_cb  Widget
widget' Int32
minimumBaseline Int32
naturalBaseline
    Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineRequestFieldCallback))
funptrptr


-- callback WidgetClassAdjustBaselineAllocationFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "baseline", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_WidgetClassAdjustBaselineAllocationFieldCallback =
    Ptr Gtk.Widget.Widget ->
    Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "baseline"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_WidgetClassAdjustBaselineAllocationFieldCallback :: FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback -> C_WidgetClassAdjustBaselineAllocationFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_WidgetClassAdjustBaselineAllocationFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
    -> a
    -> Int32
    -> m ()
dynamic_WidgetClassAdjustBaselineAllocationFieldCallback :: FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
-> a -> Int32 -> m ()
dynamic_WidgetClassAdjustBaselineAllocationFieldCallback __funPtr :: FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
__funPtr widget :: a
widget baseline :: Int32
baseline = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
-> C_WidgetClassAdjustBaselineAllocationFieldCallback
__dynamic_C_WidgetClassAdjustBaselineAllocationFieldCallback FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
__funPtr) Ptr Widget
widget' Int32
baseline
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_WidgetClassAdjustBaselineAllocationFieldCallback`.
foreign import ccall "wrapper"
    mk_WidgetClassAdjustBaselineAllocationFieldCallback :: C_WidgetClassAdjustBaselineAllocationFieldCallback -> IO (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback)

-- | /No description available in the introspection data./
type WidgetClassAdjustBaselineAllocationFieldCallback =
    Gtk.Widget.Widget
    -> Int32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WidgetClassAdjustBaselineAllocationFieldCallback`@.
noWidgetClassAdjustBaselineAllocationFieldCallback :: Maybe WidgetClassAdjustBaselineAllocationFieldCallback
noWidgetClassAdjustBaselineAllocationFieldCallback :: Maybe WidgetClassAdjustBaselineAllocationFieldCallback
noWidgetClassAdjustBaselineAllocationFieldCallback = Maybe WidgetClassAdjustBaselineAllocationFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_WidgetClassAdjustBaselineAllocationFieldCallback :: MonadIO m => WidgetClassAdjustBaselineAllocationFieldCallback -> m (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
genClosure_WidgetClassAdjustBaselineAllocationFieldCallback :: WidgetClassAdjustBaselineAllocationFieldCallback
-> m (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
genClosure_WidgetClassAdjustBaselineAllocationFieldCallback cb :: WidgetClassAdjustBaselineAllocationFieldCallback
cb = IO (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
-> m (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
 -> m (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback))
-> IO (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
-> m (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WidgetClassAdjustBaselineAllocationFieldCallback
cb' = Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback))
-> WidgetClassAdjustBaselineAllocationFieldCallback
-> C_WidgetClassAdjustBaselineAllocationFieldCallback
wrap_WidgetClassAdjustBaselineAllocationFieldCallback Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback))
forall a. Maybe a
Nothing WidgetClassAdjustBaselineAllocationFieldCallback
cb
    C_WidgetClassAdjustBaselineAllocationFieldCallback
-> IO (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback)
mk_WidgetClassAdjustBaselineAllocationFieldCallback C_WidgetClassAdjustBaselineAllocationFieldCallback
cb' IO (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback)
-> (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
    -> IO
         (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback))
-> IO (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback
-> IO (GClosure C_WidgetClassAdjustBaselineAllocationFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WidgetClassAdjustBaselineAllocationFieldCallback` into a `C_WidgetClassAdjustBaselineAllocationFieldCallback`.
wrap_WidgetClassAdjustBaselineAllocationFieldCallback ::
    Maybe (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback)) ->
    WidgetClassAdjustBaselineAllocationFieldCallback ->
    C_WidgetClassAdjustBaselineAllocationFieldCallback
wrap_WidgetClassAdjustBaselineAllocationFieldCallback :: Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback))
-> WidgetClassAdjustBaselineAllocationFieldCallback
-> C_WidgetClassAdjustBaselineAllocationFieldCallback
wrap_WidgetClassAdjustBaselineAllocationFieldCallback funptrptr :: Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback))
funptrptr _cb :: WidgetClassAdjustBaselineAllocationFieldCallback
_cb widget :: Ptr Widget
widget baseline :: Int32
baseline = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    WidgetClassAdjustBaselineAllocationFieldCallback
_cb  Widget
widget' Int32
baseline
    Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe
  (Ptr (FunPtr C_WidgetClassAdjustBaselineAllocationFieldCallback))
funptrptr


-- callback TreeViewSearchPositionFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "search_dialog", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewSearchPositionFunc =
    Ptr Gtk.TreeView.TreeView ->
    Ptr Gtk.Widget.Widget ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "tree_view"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeView" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "search_dialog"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeViewSearchPositionFunc :: FunPtr C_TreeViewSearchPositionFunc -> C_TreeViewSearchPositionFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeViewSearchPositionFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeView.IsTreeView a, Gtk.Widget.IsWidget b) =>
    FunPtr C_TreeViewSearchPositionFunc
    -> a
    -> b
    -> Ptr ()
    -> m ()
dynamic_TreeViewSearchPositionFunc :: FunPtr C_TreeViewSearchPositionFunc -> a -> b -> Ptr () -> m ()
dynamic_TreeViewSearchPositionFunc __funPtr :: FunPtr C_TreeViewSearchPositionFunc
__funPtr treeView :: a
treeView searchDialog :: b
searchDialog userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Widget
searchDialog' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
searchDialog
    (FunPtr C_TreeViewSearchPositionFunc -> C_TreeViewSearchPositionFunc
__dynamic_C_TreeViewSearchPositionFunc FunPtr C_TreeViewSearchPositionFunc
__funPtr) Ptr TreeView
treeView' Ptr Widget
searchDialog' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
searchDialog
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewSearchPositionFunc`.
foreign import ccall "wrapper"
    mk_TreeViewSearchPositionFunc :: C_TreeViewSearchPositionFunc -> IO (FunPtr C_TreeViewSearchPositionFunc)

-- | /No description available in the introspection data./
type TreeViewSearchPositionFunc =
    Gtk.TreeView.TreeView
    -> Gtk.Widget.Widget
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSearchPositionFunc`@.
noTreeViewSearchPositionFunc :: Maybe TreeViewSearchPositionFunc
noTreeViewSearchPositionFunc :: Maybe TreeViewSearchPositionFunc
noTreeViewSearchPositionFunc = Maybe TreeViewSearchPositionFunc
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type TreeViewSearchPositionFunc_WithClosures =
    Gtk.TreeView.TreeView
    -> Gtk.Widget.Widget
    -> Ptr ()
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSearchPositionFunc_WithClosures`@.
noTreeViewSearchPositionFunc_WithClosures :: Maybe TreeViewSearchPositionFunc_WithClosures
noTreeViewSearchPositionFunc_WithClosures :: Maybe TreeViewSearchPositionFunc_WithClosures
noTreeViewSearchPositionFunc_WithClosures = Maybe TreeViewSearchPositionFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewSearchPositionFunc :: TreeViewSearchPositionFunc -> TreeViewSearchPositionFunc_WithClosures
drop_closures_TreeViewSearchPositionFunc :: TreeViewSearchPositionFunc
-> TreeViewSearchPositionFunc_WithClosures
drop_closures_TreeViewSearchPositionFunc _f :: TreeViewSearchPositionFunc
_f treeView :: TreeView
treeView searchDialog :: Widget
searchDialog _ = TreeViewSearchPositionFunc
_f TreeView
treeView Widget
searchDialog

-- | Wrap the callback into a `GClosure`.
genClosure_TreeViewSearchPositionFunc :: MonadIO m => TreeViewSearchPositionFunc -> m (GClosure C_TreeViewSearchPositionFunc)
genClosure_TreeViewSearchPositionFunc :: TreeViewSearchPositionFunc
-> m (GClosure C_TreeViewSearchPositionFunc)
genClosure_TreeViewSearchPositionFunc cb :: TreeViewSearchPositionFunc
cb = IO (GClosure C_TreeViewSearchPositionFunc)
-> m (GClosure C_TreeViewSearchPositionFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSearchPositionFunc)
 -> m (GClosure C_TreeViewSearchPositionFunc))
-> IO (GClosure C_TreeViewSearchPositionFunc)
-> m (GClosure C_TreeViewSearchPositionFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeViewSearchPositionFunc_WithClosures
cb' = TreeViewSearchPositionFunc
-> TreeViewSearchPositionFunc_WithClosures
drop_closures_TreeViewSearchPositionFunc TreeViewSearchPositionFunc
cb
    let cb'' :: C_TreeViewSearchPositionFunc
cb'' = Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc))
-> TreeViewSearchPositionFunc_WithClosures
-> C_TreeViewSearchPositionFunc
wrap_TreeViewSearchPositionFunc Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc))
forall a. Maybe a
Nothing TreeViewSearchPositionFunc_WithClosures
cb'
    C_TreeViewSearchPositionFunc
-> IO (FunPtr C_TreeViewSearchPositionFunc)
mk_TreeViewSearchPositionFunc C_TreeViewSearchPositionFunc
cb'' IO (FunPtr C_TreeViewSearchPositionFunc)
-> (FunPtr C_TreeViewSearchPositionFunc
    -> IO (GClosure C_TreeViewSearchPositionFunc))
-> IO (GClosure C_TreeViewSearchPositionFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSearchPositionFunc
-> IO (GClosure C_TreeViewSearchPositionFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewSearchPositionFunc` into a `C_TreeViewSearchPositionFunc`.
wrap_TreeViewSearchPositionFunc ::
    Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc)) ->
    TreeViewSearchPositionFunc_WithClosures ->
    C_TreeViewSearchPositionFunc
wrap_TreeViewSearchPositionFunc :: Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc))
-> TreeViewSearchPositionFunc_WithClosures
-> C_TreeViewSearchPositionFunc
wrap_TreeViewSearchPositionFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc))
funptrptr _cb :: TreeViewSearchPositionFunc_WithClosures
_cb treeView :: Ptr TreeView
treeView searchDialog :: Ptr Widget
searchDialog userData :: Ptr ()
userData = do
    TreeView
treeView' <- ((ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeView -> TreeView
Gtk.TreeView.TreeView) Ptr TreeView
treeView
    Widget
searchDialog' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
searchDialog
    TreeViewSearchPositionFunc_WithClosures
_cb  TreeView
treeView' Widget
searchDialog' Ptr ()
userData
    Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeViewSearchPositionFunc))
funptrptr


-- callback TreeViewSearchEqualFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%FALSE if the row matches, %TRUE otherwise.", sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTreeModel being searched", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the search column set by gtk_tree_view_set_search_column()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the key string to compare with", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeIter pointing the row of @model that should be compared\n with @key.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "search_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data from gtk_tree_view_set_search_equal_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used for checking whether a row in @model matches\na search key string entered by the user. Note the return value\nis reversed from what you would normally expect, though it\nhas some similarity to strcmp() returning 0 for equal strings.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewSearchEqualFunc =
    Ptr Gtk.TreeModel.TreeModel ->
    Int32 ->
    CString ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkTreeModel being searched"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "column"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the search column set by gtk_tree_view_set_search_column()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "key"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the key string to compare with"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreeIter pointing the row of @model that should be compared\n with @key."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "search_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data from gtk_tree_view_set_search_equal_func()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeViewSearchEqualFunc :: FunPtr C_TreeViewSearchEqualFunc -> C_TreeViewSearchEqualFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeViewSearchEqualFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    FunPtr C_TreeViewSearchEqualFunc
    -> a
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel' being searched
    -> Int32
    -- ^ /@column@/: the search column set by 'GI.Gtk.Objects.TreeView.treeViewSetSearchColumn'
    -> T.Text
    -- ^ /@key@/: the key string to compare with
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing the row of /@model@/ that should be compared
    --  with /@key@/.
    -> Ptr ()
    -- ^ /@searchData@/: user data from 'GI.Gtk.Objects.TreeView.treeViewSetSearchEqualFunc'
    -> m Bool
    -- ^ __Returns:__ 'P.False' if the row matches, 'P.True' otherwise.
dynamic_TreeViewSearchEqualFunc :: FunPtr C_TreeViewSearchEqualFunc
-> a -> Int32 -> Text -> TreeIter -> Ptr () -> m Bool
dynamic_TreeViewSearchEqualFunc __funPtr :: FunPtr C_TreeViewSearchEqualFunc
__funPtr model :: a
model column :: Int32
column key :: Text
key iter :: TreeIter
iter searchData :: Ptr ()
searchData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    CString
key' <- Text -> IO CString
textToCString Text
key
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    CInt
result <- (FunPtr C_TreeViewSearchEqualFunc -> C_TreeViewSearchEqualFunc
__dynamic_C_TreeViewSearchEqualFunc FunPtr C_TreeViewSearchEqualFunc
__funPtr) Ptr TreeModel
model' Int32
column CString
key' Ptr TreeIter
iter' Ptr ()
searchData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
key'
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TreeViewSearchEqualFunc`.
foreign import ccall "wrapper"
    mk_TreeViewSearchEqualFunc :: C_TreeViewSearchEqualFunc -> IO (FunPtr C_TreeViewSearchEqualFunc)

-- | 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 =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel' being searched
    -> Int32
    -- ^ /@column@/: the search column set by 'GI.Gtk.Objects.TreeView.treeViewSetSearchColumn'
    -> T.Text
    -- ^ /@key@/: the key string to compare with
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing the row of /@model@/ that should be compared
    --  with /@key@/.
    -> IO Bool
    -- ^ __Returns:__ 'P.False' if the row matches, 'P.True' otherwise.

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSearchEqualFunc`@.
noTreeViewSearchEqualFunc :: Maybe TreeViewSearchEqualFunc
noTreeViewSearchEqualFunc :: Maybe TreeViewSearchEqualFunc
noTreeViewSearchEqualFunc = Maybe TreeViewSearchEqualFunc
forall a. Maybe a
Nothing

-- | 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 =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel' being searched
    -> Int32
    -- ^ /@column@/: the search column set by 'GI.Gtk.Objects.TreeView.treeViewSetSearchColumn'
    -> T.Text
    -- ^ /@key@/: the key string to compare with
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing the row of /@model@/ that should be compared
    --  with /@key@/.
    -> Ptr ()
    -- ^ /@searchData@/: user data from 'GI.Gtk.Objects.TreeView.treeViewSetSearchEqualFunc'
    -> IO Bool
    -- ^ __Returns:__ 'P.False' if the row matches, 'P.True' otherwise.

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSearchEqualFunc_WithClosures`@.
noTreeViewSearchEqualFunc_WithClosures :: Maybe TreeViewSearchEqualFunc_WithClosures
noTreeViewSearchEqualFunc_WithClosures :: Maybe TreeViewSearchEqualFunc_WithClosures
noTreeViewSearchEqualFunc_WithClosures = Maybe TreeViewSearchEqualFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewSearchEqualFunc :: TreeViewSearchEqualFunc -> TreeViewSearchEqualFunc_WithClosures
drop_closures_TreeViewSearchEqualFunc :: TreeViewSearchEqualFunc -> TreeViewSearchEqualFunc_WithClosures
drop_closures_TreeViewSearchEqualFunc _f :: TreeViewSearchEqualFunc
_f model :: TreeModel
model column :: Int32
column key :: Text
key iter :: TreeIter
iter _ = TreeViewSearchEqualFunc
_f TreeModel
model Int32
column Text
key TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_TreeViewSearchEqualFunc :: MonadIO m => TreeViewSearchEqualFunc -> m (GClosure C_TreeViewSearchEqualFunc)
genClosure_TreeViewSearchEqualFunc :: TreeViewSearchEqualFunc -> m (GClosure C_TreeViewSearchEqualFunc)
genClosure_TreeViewSearchEqualFunc cb :: TreeViewSearchEqualFunc
cb = IO (GClosure C_TreeViewSearchEqualFunc)
-> m (GClosure C_TreeViewSearchEqualFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSearchEqualFunc)
 -> m (GClosure C_TreeViewSearchEqualFunc))
-> IO (GClosure C_TreeViewSearchEqualFunc)
-> m (GClosure C_TreeViewSearchEqualFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeViewSearchEqualFunc_WithClosures
cb' = TreeViewSearchEqualFunc -> TreeViewSearchEqualFunc_WithClosures
drop_closures_TreeViewSearchEqualFunc TreeViewSearchEqualFunc
cb
    let cb'' :: C_TreeViewSearchEqualFunc
cb'' = Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
-> TreeViewSearchEqualFunc_WithClosures
-> C_TreeViewSearchEqualFunc
wrap_TreeViewSearchEqualFunc Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
forall a. Maybe a
Nothing TreeViewSearchEqualFunc_WithClosures
cb'
    C_TreeViewSearchEqualFunc -> IO (FunPtr C_TreeViewSearchEqualFunc)
mk_TreeViewSearchEqualFunc C_TreeViewSearchEqualFunc
cb'' IO (FunPtr C_TreeViewSearchEqualFunc)
-> (FunPtr C_TreeViewSearchEqualFunc
    -> IO (GClosure C_TreeViewSearchEqualFunc))
-> IO (GClosure C_TreeViewSearchEqualFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSearchEqualFunc
-> IO (GClosure C_TreeViewSearchEqualFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewSearchEqualFunc` into a `C_TreeViewSearchEqualFunc`.
wrap_TreeViewSearchEqualFunc ::
    Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc)) ->
    TreeViewSearchEqualFunc_WithClosures ->
    C_TreeViewSearchEqualFunc
wrap_TreeViewSearchEqualFunc :: Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
-> TreeViewSearchEqualFunc_WithClosures
-> C_TreeViewSearchEqualFunc
wrap_TreeViewSearchEqualFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
funptrptr _cb :: TreeViewSearchEqualFunc_WithClosures
_cb model :: Ptr TreeModel
model column :: Int32
column key :: CString
key iter :: Ptr TreeIter
iter searchData :: Ptr ()
searchData = do
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    Text
key' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
key
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
        Bool
result <- TreeViewSearchEqualFunc_WithClosures
_cb  TreeModel
model' Int32
column Text
key' TreeIter
iter' Ptr ()
searchData
        Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TreeViewRowSeparatorFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the row is a separator", sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTreeModel", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeIter pointing at a row in @model", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Function type for determining whether the row pointed to by @iter should\nbe rendered as a separator. A common way to implement this is to have a\nboolean column in the model, whose values the #GtkTreeViewRowSeparatorFunc\nreturns.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewRowSeparatorFunc =
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkTreeModel" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTreeIter pointing at a row in @model"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeViewRowSeparatorFunc :: FunPtr C_TreeViewRowSeparatorFunc -> C_TreeViewRowSeparatorFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeViewRowSeparatorFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    FunPtr C_TreeViewRowSeparatorFunc
    -> a
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing at a row in /@model@/
    -> Ptr ()
    -- ^ /@data@/: user data
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the row is a separator
dynamic_TreeViewRowSeparatorFunc :: FunPtr C_TreeViewRowSeparatorFunc
-> a -> TreeIter -> Ptr () -> m Bool
dynamic_TreeViewRowSeparatorFunc __funPtr :: FunPtr C_TreeViewRowSeparatorFunc
__funPtr model :: a
model iter :: TreeIter
iter data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    CInt
result <- (FunPtr C_TreeViewRowSeparatorFunc -> C_TreeViewRowSeparatorFunc
__dynamic_C_TreeViewRowSeparatorFunc FunPtr C_TreeViewRowSeparatorFunc
__funPtr) Ptr TreeModel
model' Ptr TreeIter
iter' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TreeViewRowSeparatorFunc`.
foreign import ccall "wrapper"
    mk_TreeViewRowSeparatorFunc :: C_TreeViewRowSeparatorFunc -> IO (FunPtr C_TreeViewRowSeparatorFunc)

-- | 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 t'GI.Gtk.Callbacks.TreeViewRowSeparatorFunc'
-- returns.
type TreeViewRowSeparatorFunc =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing at a row in /@model@/
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the row is a separator

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewRowSeparatorFunc`@.
noTreeViewRowSeparatorFunc :: Maybe TreeViewRowSeparatorFunc
noTreeViewRowSeparatorFunc :: Maybe TreeViewRowSeparatorFunc
noTreeViewRowSeparatorFunc = Maybe TreeViewRowSeparatorFunc
forall a. Maybe a
Nothing

-- | 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 t'GI.Gtk.Callbacks.TreeViewRowSeparatorFunc'
-- returns.
type TreeViewRowSeparatorFunc_WithClosures =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing at a row in /@model@/
    -> Ptr ()
    -- ^ /@data@/: user data
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the row is a separator

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewRowSeparatorFunc_WithClosures`@.
noTreeViewRowSeparatorFunc_WithClosures :: Maybe TreeViewRowSeparatorFunc_WithClosures
noTreeViewRowSeparatorFunc_WithClosures :: Maybe TreeViewRowSeparatorFunc_WithClosures
noTreeViewRowSeparatorFunc_WithClosures = Maybe TreeViewRowSeparatorFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewRowSeparatorFunc :: TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures
drop_closures_TreeViewRowSeparatorFunc :: TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures
drop_closures_TreeViewRowSeparatorFunc _f :: TreeViewRowSeparatorFunc
_f model :: TreeModel
model iter :: TreeIter
iter _ = TreeViewRowSeparatorFunc
_f TreeModel
model TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_TreeViewRowSeparatorFunc :: MonadIO m => TreeViewRowSeparatorFunc -> m (GClosure C_TreeViewRowSeparatorFunc)
genClosure_TreeViewRowSeparatorFunc :: TreeViewRowSeparatorFunc -> m (GClosure C_TreeViewRowSeparatorFunc)
genClosure_TreeViewRowSeparatorFunc cb :: TreeViewRowSeparatorFunc
cb = IO (GClosure C_TreeViewRowSeparatorFunc)
-> m (GClosure C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewRowSeparatorFunc)
 -> m (GClosure C_TreeViewRowSeparatorFunc))
-> IO (GClosure C_TreeViewRowSeparatorFunc)
-> m (GClosure C_TreeViewRowSeparatorFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeViewRowSeparatorFunc_WithClosures
cb' = TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures
drop_closures_TreeViewRowSeparatorFunc TreeViewRowSeparatorFunc
cb
    let cb'' :: C_TreeViewRowSeparatorFunc
cb'' = Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
-> TreeViewRowSeparatorFunc_WithClosures
-> C_TreeViewRowSeparatorFunc
wrap_TreeViewRowSeparatorFunc Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
forall a. Maybe a
Nothing TreeViewRowSeparatorFunc_WithClosures
cb'
    C_TreeViewRowSeparatorFunc
-> IO (FunPtr C_TreeViewRowSeparatorFunc)
mk_TreeViewRowSeparatorFunc C_TreeViewRowSeparatorFunc
cb'' IO (FunPtr C_TreeViewRowSeparatorFunc)
-> (FunPtr C_TreeViewRowSeparatorFunc
    -> IO (GClosure C_TreeViewRowSeparatorFunc))
-> IO (GClosure C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewRowSeparatorFunc
-> IO (GClosure C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewRowSeparatorFunc` into a `C_TreeViewRowSeparatorFunc`.
wrap_TreeViewRowSeparatorFunc ::
    Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc)) ->
    TreeViewRowSeparatorFunc_WithClosures ->
    C_TreeViewRowSeparatorFunc
wrap_TreeViewRowSeparatorFunc :: Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
-> TreeViewRowSeparatorFunc_WithClosures
-> C_TreeViewRowSeparatorFunc
wrap_TreeViewRowSeparatorFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
funptrptr _cb :: TreeViewRowSeparatorFunc_WithClosures
_cb model :: Ptr TreeModel
model iter :: Ptr TreeIter
iter data_ :: Ptr ()
data_ = do
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
        Bool
result <- TreeViewRowSeparatorFunc_WithClosures
_cb  TreeModel
model' TreeIter
iter' Ptr ()
data_
        Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TreeViewMappingFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The path that\8217s expanded", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Function used for gtk_tree_view_map_expanded_rows().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewMappingFunc =
    Ptr Gtk.TreeView.TreeView ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "tree_view"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeView" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeView" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The path that\8217s expanded"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeViewMappingFunc :: FunPtr C_TreeViewMappingFunc -> C_TreeViewMappingFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeViewMappingFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeView.IsTreeView a) =>
    FunPtr C_TreeViewMappingFunc
    -> a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The path that’s expanded
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m ()
dynamic_TreeViewMappingFunc :: FunPtr C_TreeViewMappingFunc -> a -> TreePath -> Ptr () -> m ()
dynamic_TreeViewMappingFunc __funPtr :: FunPtr C_TreeViewMappingFunc
__funPtr treeView :: a
treeView path :: TreePath
path userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    (FunPtr C_TreeViewMappingFunc -> C_TreeViewMappingFunc
__dynamic_C_TreeViewMappingFunc FunPtr C_TreeViewMappingFunc
__funPtr) Ptr TreeView
treeView' Ptr TreePath
path' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewMappingFunc`.
foreign import ccall "wrapper"
    mk_TreeViewMappingFunc :: C_TreeViewMappingFunc -> IO (FunPtr C_TreeViewMappingFunc)

-- | Function used for 'GI.Gtk.Objects.TreeView.treeViewMapExpandedRows'.
type TreeViewMappingFunc =
    Gtk.TreeView.TreeView
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The path that’s expanded
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewMappingFunc`@.
noTreeViewMappingFunc :: Maybe TreeViewMappingFunc
noTreeViewMappingFunc :: Maybe TreeViewMappingFunc
noTreeViewMappingFunc = Maybe TreeViewMappingFunc
forall a. Maybe a
Nothing

-- | Function used for 'GI.Gtk.Objects.TreeView.treeViewMapExpandedRows'.
type TreeViewMappingFunc_WithClosures =
    Gtk.TreeView.TreeView
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The path that’s expanded
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewMappingFunc_WithClosures`@.
noTreeViewMappingFunc_WithClosures :: Maybe TreeViewMappingFunc_WithClosures
noTreeViewMappingFunc_WithClosures :: Maybe TreeViewMappingFunc_WithClosures
noTreeViewMappingFunc_WithClosures = Maybe TreeViewMappingFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewMappingFunc :: TreeViewMappingFunc -> TreeViewMappingFunc_WithClosures
drop_closures_TreeViewMappingFunc :: TreeViewMappingFunc -> TreeViewMappingFunc_WithClosures
drop_closures_TreeViewMappingFunc _f :: TreeViewMappingFunc
_f treeView :: TreeView
treeView path :: TreePath
path _ = TreeViewMappingFunc
_f TreeView
treeView TreePath
path

-- | Wrap the callback into a `GClosure`.
genClosure_TreeViewMappingFunc :: MonadIO m => TreeViewMappingFunc -> m (GClosure C_TreeViewMappingFunc)
genClosure_TreeViewMappingFunc :: TreeViewMappingFunc -> m (GClosure C_TreeViewMappingFunc)
genClosure_TreeViewMappingFunc cb :: TreeViewMappingFunc
cb = IO (GClosure C_TreeViewMappingFunc)
-> m (GClosure C_TreeViewMappingFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewMappingFunc)
 -> m (GClosure C_TreeViewMappingFunc))
-> IO (GClosure C_TreeViewMappingFunc)
-> m (GClosure C_TreeViewMappingFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeViewMappingFunc_WithClosures
cb' = TreeViewMappingFunc -> TreeViewMappingFunc_WithClosures
drop_closures_TreeViewMappingFunc TreeViewMappingFunc
cb
    let cb'' :: C_TreeViewMappingFunc
cb'' = Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
-> TreeViewMappingFunc_WithClosures -> C_TreeViewMappingFunc
wrap_TreeViewMappingFunc Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
forall a. Maybe a
Nothing TreeViewMappingFunc_WithClosures
cb'
    C_TreeViewMappingFunc -> IO (FunPtr C_TreeViewMappingFunc)
mk_TreeViewMappingFunc C_TreeViewMappingFunc
cb'' IO (FunPtr C_TreeViewMappingFunc)
-> (FunPtr C_TreeViewMappingFunc
    -> IO (GClosure C_TreeViewMappingFunc))
-> IO (GClosure C_TreeViewMappingFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewMappingFunc -> IO (GClosure C_TreeViewMappingFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewMappingFunc` into a `C_TreeViewMappingFunc`.
wrap_TreeViewMappingFunc ::
    Maybe (Ptr (FunPtr C_TreeViewMappingFunc)) ->
    TreeViewMappingFunc_WithClosures ->
    C_TreeViewMappingFunc
wrap_TreeViewMappingFunc :: Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
-> TreeViewMappingFunc_WithClosures -> C_TreeViewMappingFunc
wrap_TreeViewMappingFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
funptrptr _cb :: TreeViewMappingFunc_WithClosures
_cb treeView :: Ptr TreeView
treeView path :: Ptr TreePath
path userData :: Ptr ()
userData = do
    TreeView
treeView' <- ((ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeView -> TreeView
Gtk.TreeView.TreeView) Ptr TreeView
treeView
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \path' :: TreePath
path' -> do
        TreeViewMappingFunc_WithClosures
_cb  TreeView
treeView' TreePath
path' Ptr ()
userData
        Maybe (Ptr (FunPtr C_TreeViewMappingFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
funptrptr


-- callback TreeViewColumnDropFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE, if @column can be dropped in this spot", sinceVersion = Nothing}, args = [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreeViewColumn being dragged", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "prev_column", argType = TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeViewColumn on one side of @column", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "next_column", argType = TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeViewColumn on the other side of @column", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Function type for determining whether @column can be dropped in a\nparticular spot (as determined by @prev_column and @next_column).  In\nleft to right locales, @prev_column is on the left of the potential drop\nspot, and @next_column is on the right.  In right to left mode, this is\nreversed.  This function should return %TRUE if the spot is a valid drop\nspot.  Please note that returning %TRUE does not actually indicate that\nthe column drop was made, but is meant only to indicate a possible drop\nspot to the user.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewColumnDropFunc =
    Ptr Gtk.TreeView.TreeView ->
    Ptr Gtk.TreeViewColumn.TreeViewColumn ->
    Ptr Gtk.TreeViewColumn.TreeViewColumn ->
    Ptr Gtk.TreeViewColumn.TreeViewColumn ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "tree_view"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeView" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeView" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreeViewColumn being dragged"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "prev_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeViewColumn on one side of @column"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "next_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "A #GtkTreeViewColumn on the other side of @column"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeViewColumnDropFunc :: FunPtr C_TreeViewColumnDropFunc -> C_TreeViewColumnDropFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeViewColumnDropFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeView.IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b, Gtk.TreeViewColumn.IsTreeViewColumn c, Gtk.TreeViewColumn.IsTreeViewColumn d) =>
    FunPtr C_TreeViewColumnDropFunc
    -> a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> b
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' being dragged
    -> c
    -- ^ /@prevColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' on one side of /@column@/
    -> d
    -- ^ /@nextColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' on the other side of /@column@/
    -> Ptr ()
    -- ^ /@data@/: user data
    -> m Bool
    -- ^ __Returns:__ 'P.True', if /@column@/ can be dropped in this spot
dynamic_TreeViewColumnDropFunc :: FunPtr C_TreeViewColumnDropFunc
-> a -> b -> c -> d -> Ptr () -> m Bool
dynamic_TreeViewColumnDropFunc __funPtr :: FunPtr C_TreeViewColumnDropFunc
__funPtr treeView :: a
treeView column :: b
column prevColumn :: c
prevColumn nextColumn :: d
nextColumn data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
column' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
column
    Ptr TreeViewColumn
prevColumn' <- c -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
prevColumn
    Ptr TreeViewColumn
nextColumn' <- d -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr d
nextColumn
    CInt
result <- (FunPtr C_TreeViewColumnDropFunc -> C_TreeViewColumnDropFunc
__dynamic_C_TreeViewColumnDropFunc FunPtr C_TreeViewColumnDropFunc
__funPtr) Ptr TreeView
treeView' Ptr TreeViewColumn
column' Ptr TreeViewColumn
prevColumn' Ptr TreeViewColumn
nextColumn' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
column
    c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr c
prevColumn
    d -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr d
nextColumn
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TreeViewColumnDropFunc`.
foreign import ccall "wrapper"
    mk_TreeViewColumnDropFunc :: C_TreeViewColumnDropFunc -> IO (FunPtr C_TreeViewColumnDropFunc)

-- | 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 'P.True' if the spot is a valid drop
-- spot.  Please note that returning 'P.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 =
    Gtk.TreeView.TreeView
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' being dragged
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@prevColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' on one side of /@column@/
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@nextColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' on the other side of /@column@/
    -> IO Bool
    -- ^ __Returns:__ 'P.True', if /@column@/ can be dropped in this spot

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewColumnDropFunc`@.
noTreeViewColumnDropFunc :: Maybe TreeViewColumnDropFunc
noTreeViewColumnDropFunc :: Maybe TreeViewColumnDropFunc
noTreeViewColumnDropFunc = Maybe TreeViewColumnDropFunc
forall a. Maybe a
Nothing

-- | 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 'P.True' if the spot is a valid drop
-- spot.  Please note that returning 'P.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 =
    Gtk.TreeView.TreeView
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' being dragged
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@prevColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' on one side of /@column@/
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@nextColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' on the other side of /@column@/
    -> Ptr ()
    -- ^ /@data@/: user data
    -> IO Bool
    -- ^ __Returns:__ 'P.True', if /@column@/ can be dropped in this spot

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewColumnDropFunc_WithClosures`@.
noTreeViewColumnDropFunc_WithClosures :: Maybe TreeViewColumnDropFunc_WithClosures
noTreeViewColumnDropFunc_WithClosures :: Maybe TreeViewColumnDropFunc_WithClosures
noTreeViewColumnDropFunc_WithClosures = Maybe TreeViewColumnDropFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeViewColumnDropFunc :: TreeViewColumnDropFunc -> TreeViewColumnDropFunc_WithClosures
drop_closures_TreeViewColumnDropFunc :: TreeViewColumnDropFunc -> TreeViewColumnDropFunc_WithClosures
drop_closures_TreeViewColumnDropFunc _f :: TreeViewColumnDropFunc
_f treeView :: TreeView
treeView column :: TreeViewColumn
column prevColumn :: TreeViewColumn
prevColumn nextColumn :: TreeViewColumn
nextColumn _ = TreeViewColumnDropFunc
_f TreeView
treeView TreeViewColumn
column TreeViewColumn
prevColumn TreeViewColumn
nextColumn

-- | Wrap the callback into a `GClosure`.
genClosure_TreeViewColumnDropFunc :: MonadIO m => TreeViewColumnDropFunc -> m (GClosure C_TreeViewColumnDropFunc)
genClosure_TreeViewColumnDropFunc :: TreeViewColumnDropFunc -> m (GClosure C_TreeViewColumnDropFunc)
genClosure_TreeViewColumnDropFunc cb :: TreeViewColumnDropFunc
cb = IO (GClosure C_TreeViewColumnDropFunc)
-> m (GClosure C_TreeViewColumnDropFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewColumnDropFunc)
 -> m (GClosure C_TreeViewColumnDropFunc))
-> IO (GClosure C_TreeViewColumnDropFunc)
-> m (GClosure C_TreeViewColumnDropFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeViewColumnDropFunc_WithClosures
cb' = TreeViewColumnDropFunc -> TreeViewColumnDropFunc_WithClosures
drop_closures_TreeViewColumnDropFunc TreeViewColumnDropFunc
cb
    let cb'' :: C_TreeViewColumnDropFunc
cb'' = Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
-> TreeViewColumnDropFunc_WithClosures -> C_TreeViewColumnDropFunc
wrap_TreeViewColumnDropFunc Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
forall a. Maybe a
Nothing TreeViewColumnDropFunc_WithClosures
cb'
    C_TreeViewColumnDropFunc -> IO (FunPtr C_TreeViewColumnDropFunc)
mk_TreeViewColumnDropFunc C_TreeViewColumnDropFunc
cb'' IO (FunPtr C_TreeViewColumnDropFunc)
-> (FunPtr C_TreeViewColumnDropFunc
    -> IO (GClosure C_TreeViewColumnDropFunc))
-> IO (GClosure C_TreeViewColumnDropFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewColumnDropFunc
-> IO (GClosure C_TreeViewColumnDropFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewColumnDropFunc` into a `C_TreeViewColumnDropFunc`.
wrap_TreeViewColumnDropFunc ::
    Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc)) ->
    TreeViewColumnDropFunc_WithClosures ->
    C_TreeViewColumnDropFunc
wrap_TreeViewColumnDropFunc :: Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
-> TreeViewColumnDropFunc_WithClosures -> C_TreeViewColumnDropFunc
wrap_TreeViewColumnDropFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
funptrptr _cb :: TreeViewColumnDropFunc_WithClosures
_cb treeView :: Ptr TreeView
treeView column :: Ptr TreeViewColumn
column prevColumn :: Ptr TreeViewColumn
prevColumn nextColumn :: Ptr TreeViewColumn
nextColumn data_ :: Ptr ()
data_ = do
    TreeView
treeView' <- ((ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeView -> TreeView
Gtk.TreeView.TreeView) Ptr TreeView
treeView
    TreeViewColumn
column' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
column
    TreeViewColumn
prevColumn' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
prevColumn
    TreeViewColumn
nextColumn' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
nextColumn
    Bool
result <- TreeViewColumnDropFunc_WithClosures
_cb  TreeView
treeView' TreeViewColumn
column' TreeViewColumn
prevColumn' TreeViewColumn
nextColumn' Ptr ()
data_
    Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TreeSelectionFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE, if the selection state of the row can be toggled", sinceVersion = Nothing}, args = [Arg {argCName = "selection", argType = TInterface (Name {namespace = "Gtk", name = "TreeSelection"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeSelection", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeModel being viewed", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreePath of the row in question", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path_currently_selected", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE, if the path is currently selected", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used by gtk_tree_selection_set_select_function() to filter\nwhether or not a row may be selected.  It is called whenever a row's\nstate might change.  A return value of %TRUE indicates to @selection\nthat it is okay to change the selection.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeSelectionFunc =
    Ptr Gtk.TreeSelection.TreeSelection ->
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreePath.TreePath ->
    CInt ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "selection"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeSelection" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeSelection"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeModel being viewed"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreePath of the row in question"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path_currently_selected"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE, if the path is currently selected"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeSelectionFunc :: FunPtr C_TreeSelectionFunc -> C_TreeSelectionFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeSelectionFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeSelection.IsTreeSelection a, Gtk.TreeModel.IsTreeModel b) =>
    FunPtr C_TreeSelectionFunc
    -> a
    -- ^ /@selection@/: A t'GI.Gtk.Objects.TreeSelection.TreeSelection'
    -> b
    -- ^ /@model@/: A t'GI.Gtk.Interfaces.TreeModel.TreeModel' being viewed
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of the row in question
    -> Bool
    -- ^ /@pathCurrentlySelected@/: 'P.True', if the path is currently selected
    -> Ptr ()
    -- ^ /@data@/: user data
    -> m Bool
    -- ^ __Returns:__ 'P.True', if the selection state of the row can be toggled
dynamic_TreeSelectionFunc :: FunPtr C_TreeSelectionFunc
-> a -> b -> TreePath -> Bool -> Ptr () -> m Bool
dynamic_TreeSelectionFunc __funPtr :: FunPtr C_TreeSelectionFunc
__funPtr selection :: a
selection model :: b
model path :: TreePath
path pathCurrentlySelected :: Bool
pathCurrentlySelected data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeSelection
selection' <- a -> IO (Ptr TreeSelection)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
selection
    Ptr TreeModel
model' <- b -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
model
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    let pathCurrentlySelected' :: CInt
pathCurrentlySelected' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
pathCurrentlySelected
    CInt
result <- (FunPtr C_TreeSelectionFunc -> C_TreeSelectionFunc
__dynamic_C_TreeSelectionFunc FunPtr C_TreeSelectionFunc
__funPtr) Ptr TreeSelection
selection' Ptr TreeModel
model' Ptr TreePath
path' CInt
pathCurrentlySelected' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
selection
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
model
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TreeSelectionFunc`.
foreign import ccall "wrapper"
    mk_TreeSelectionFunc :: C_TreeSelectionFunc -> IO (FunPtr C_TreeSelectionFunc)

-- | A function used by 'GI.Gtk.Objects.TreeSelection.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 'P.True' indicates to /@selection@/
-- that it is okay to change the selection.
type TreeSelectionFunc =
    Gtk.TreeSelection.TreeSelection
    -- ^ /@selection@/: A t'GI.Gtk.Objects.TreeSelection.TreeSelection'
    -> Gtk.TreeModel.TreeModel
    -- ^ /@model@/: A t'GI.Gtk.Interfaces.TreeModel.TreeModel' being viewed
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of the row in question
    -> Bool
    -- ^ /@pathCurrentlySelected@/: 'P.True', if the path is currently selected
    -> IO Bool
    -- ^ __Returns:__ 'P.True', if the selection state of the row can be toggled

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeSelectionFunc`@.
noTreeSelectionFunc :: Maybe TreeSelectionFunc
noTreeSelectionFunc :: Maybe TreeSelectionFunc
noTreeSelectionFunc = Maybe TreeSelectionFunc
forall a. Maybe a
Nothing

-- | A function used by 'GI.Gtk.Objects.TreeSelection.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 'P.True' indicates to /@selection@/
-- that it is okay to change the selection.
type TreeSelectionFunc_WithClosures =
    Gtk.TreeSelection.TreeSelection
    -- ^ /@selection@/: A t'GI.Gtk.Objects.TreeSelection.TreeSelection'
    -> Gtk.TreeModel.TreeModel
    -- ^ /@model@/: A t'GI.Gtk.Interfaces.TreeModel.TreeModel' being viewed
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of the row in question
    -> Bool
    -- ^ /@pathCurrentlySelected@/: 'P.True', if the path is currently selected
    -> Ptr ()
    -- ^ /@data@/: user data
    -> IO Bool
    -- ^ __Returns:__ 'P.True', if the selection state of the row can be toggled

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeSelectionFunc_WithClosures`@.
noTreeSelectionFunc_WithClosures :: Maybe TreeSelectionFunc_WithClosures
noTreeSelectionFunc_WithClosures :: Maybe TreeSelectionFunc_WithClosures
noTreeSelectionFunc_WithClosures = Maybe TreeSelectionFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeSelectionFunc :: TreeSelectionFunc -> TreeSelectionFunc_WithClosures
drop_closures_TreeSelectionFunc :: TreeSelectionFunc -> TreeSelectionFunc_WithClosures
drop_closures_TreeSelectionFunc _f :: TreeSelectionFunc
_f selection :: TreeSelection
selection model :: TreeModel
model path :: TreePath
path pathCurrentlySelected :: Bool
pathCurrentlySelected _ = TreeSelectionFunc
_f TreeSelection
selection TreeModel
model TreePath
path Bool
pathCurrentlySelected

-- | Wrap the callback into a `GClosure`.
genClosure_TreeSelectionFunc :: MonadIO m => TreeSelectionFunc -> m (GClosure C_TreeSelectionFunc)
genClosure_TreeSelectionFunc :: TreeSelectionFunc -> m (GClosure C_TreeSelectionFunc)
genClosure_TreeSelectionFunc cb :: TreeSelectionFunc
cb = IO (GClosure C_TreeSelectionFunc)
-> m (GClosure C_TreeSelectionFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeSelectionFunc)
 -> m (GClosure C_TreeSelectionFunc))
-> IO (GClosure C_TreeSelectionFunc)
-> m (GClosure C_TreeSelectionFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeSelectionFunc_WithClosures
cb' = TreeSelectionFunc -> TreeSelectionFunc_WithClosures
drop_closures_TreeSelectionFunc TreeSelectionFunc
cb
    let cb'' :: C_TreeSelectionFunc
cb'' = Maybe (Ptr (FunPtr C_TreeSelectionFunc))
-> TreeSelectionFunc_WithClosures -> C_TreeSelectionFunc
wrap_TreeSelectionFunc Maybe (Ptr (FunPtr C_TreeSelectionFunc))
forall a. Maybe a
Nothing TreeSelectionFunc_WithClosures
cb'
    C_TreeSelectionFunc -> IO (FunPtr C_TreeSelectionFunc)
mk_TreeSelectionFunc C_TreeSelectionFunc
cb'' IO (FunPtr C_TreeSelectionFunc)
-> (FunPtr C_TreeSelectionFunc
    -> IO (GClosure C_TreeSelectionFunc))
-> IO (GClosure C_TreeSelectionFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeSelectionFunc -> IO (GClosure C_TreeSelectionFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeSelectionFunc` into a `C_TreeSelectionFunc`.
wrap_TreeSelectionFunc ::
    Maybe (Ptr (FunPtr C_TreeSelectionFunc)) ->
    TreeSelectionFunc_WithClosures ->
    C_TreeSelectionFunc
wrap_TreeSelectionFunc :: Maybe (Ptr (FunPtr C_TreeSelectionFunc))
-> TreeSelectionFunc_WithClosures -> C_TreeSelectionFunc
wrap_TreeSelectionFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeSelectionFunc))
funptrptr _cb :: TreeSelectionFunc_WithClosures
_cb selection :: Ptr TreeSelection
selection model :: Ptr TreeModel
model path :: Ptr TreePath
path pathCurrentlySelected :: CInt
pathCurrentlySelected data_ :: Ptr ()
data_ = do
    TreeSelection
selection' <- ((ManagedPtr TreeSelection -> TreeSelection)
-> Ptr TreeSelection -> IO TreeSelection
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeSelection -> TreeSelection
Gtk.TreeSelection.TreeSelection) Ptr TreeSelection
selection
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO CInt) -> IO CInt)
-> (TreePath -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \path' :: TreePath
path' -> do
        let pathCurrentlySelected' :: Bool
pathCurrentlySelected' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
pathCurrentlySelected
        Bool
result <- TreeSelectionFunc_WithClosures
_cb  TreeSelection
selection' TreeModel
model' TreePath
path' Bool
pathCurrentlySelected' Ptr ()
data_
        Maybe (Ptr (FunPtr C_TreeSelectionFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeSelectionFunc))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TreeSelectionForeachFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreeModel being viewed", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreePath of a selected row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter pointing to a selected row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used by gtk_tree_selection_selected_foreach() to map all\nselected rows.  It will be called on every selected row in the view.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeSelectionForeachFunc =
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreeModel being viewed"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreePath of a selected row"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeIter pointing to a selected row"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeSelectionForeachFunc :: FunPtr C_TreeSelectionForeachFunc -> C_TreeSelectionForeachFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeSelectionForeachFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    FunPtr C_TreeSelectionForeachFunc
    -> a
    -- ^ /@model@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' being viewed
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of a selected row
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' pointing to a selected row
    -> Ptr ()
    -- ^ /@data@/: user data
    -> m ()
dynamic_TreeSelectionForeachFunc :: FunPtr C_TreeSelectionForeachFunc
-> a -> TreePath -> TreeIter -> Ptr () -> m ()
dynamic_TreeSelectionForeachFunc __funPtr :: FunPtr C_TreeSelectionForeachFunc
__funPtr model :: a
model path :: TreePath
path iter :: TreeIter
iter data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    (FunPtr C_TreeSelectionForeachFunc -> C_TreeSelectionForeachFunc
__dynamic_C_TreeSelectionForeachFunc FunPtr C_TreeSelectionForeachFunc
__funPtr) Ptr TreeModel
model' Ptr TreePath
path' Ptr TreeIter
iter' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_TreeSelectionForeachFunc`.
foreign import ccall "wrapper"
    mk_TreeSelectionForeachFunc :: C_TreeSelectionForeachFunc -> IO (FunPtr C_TreeSelectionForeachFunc)

-- | A function used by 'GI.Gtk.Objects.TreeSelection.treeSelectionSelectedForeach' to map all
-- selected rows.  It will be called on every selected row in the view.
type TreeSelectionForeachFunc =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' being viewed
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of a selected row
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' pointing to a selected row
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeSelectionForeachFunc`@.
noTreeSelectionForeachFunc :: Maybe TreeSelectionForeachFunc
noTreeSelectionForeachFunc :: Maybe TreeSelectionForeachFunc
noTreeSelectionForeachFunc = Maybe TreeSelectionForeachFunc
forall a. Maybe a
Nothing

-- | A function used by 'GI.Gtk.Objects.TreeSelection.treeSelectionSelectedForeach' to map all
-- selected rows.  It will be called on every selected row in the view.
type TreeSelectionForeachFunc_WithClosures =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' being viewed
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of a selected row
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' pointing to a selected row
    -> Ptr ()
    -- ^ /@data@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeSelectionForeachFunc_WithClosures`@.
noTreeSelectionForeachFunc_WithClosures :: Maybe TreeSelectionForeachFunc_WithClosures
noTreeSelectionForeachFunc_WithClosures :: Maybe TreeSelectionForeachFunc_WithClosures
noTreeSelectionForeachFunc_WithClosures = Maybe TreeSelectionForeachFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeSelectionForeachFunc :: TreeSelectionForeachFunc -> TreeSelectionForeachFunc_WithClosures
drop_closures_TreeSelectionForeachFunc :: TreeSelectionForeachFunc -> TreeSelectionForeachFunc_WithClosures
drop_closures_TreeSelectionForeachFunc _f :: TreeSelectionForeachFunc
_f model :: TreeModel
model path :: TreePath
path iter :: TreeIter
iter _ = TreeSelectionForeachFunc
_f TreeModel
model TreePath
path TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_TreeSelectionForeachFunc :: MonadIO m => TreeSelectionForeachFunc -> m (GClosure C_TreeSelectionForeachFunc)
genClosure_TreeSelectionForeachFunc :: TreeSelectionForeachFunc -> m (GClosure C_TreeSelectionForeachFunc)
genClosure_TreeSelectionForeachFunc cb :: TreeSelectionForeachFunc
cb = IO (GClosure C_TreeSelectionForeachFunc)
-> m (GClosure C_TreeSelectionForeachFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeSelectionForeachFunc)
 -> m (GClosure C_TreeSelectionForeachFunc))
-> IO (GClosure C_TreeSelectionForeachFunc)
-> m (GClosure C_TreeSelectionForeachFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeSelectionForeachFunc_WithClosures
cb' = TreeSelectionForeachFunc -> TreeSelectionForeachFunc_WithClosures
drop_closures_TreeSelectionForeachFunc TreeSelectionForeachFunc
cb
    let cb'' :: C_TreeSelectionForeachFunc
cb'' = Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc))
-> TreeSelectionForeachFunc_WithClosures
-> C_TreeSelectionForeachFunc
wrap_TreeSelectionForeachFunc Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc))
forall a. Maybe a
Nothing TreeSelectionForeachFunc_WithClosures
cb'
    C_TreeSelectionForeachFunc
-> IO (FunPtr C_TreeSelectionForeachFunc)
mk_TreeSelectionForeachFunc C_TreeSelectionForeachFunc
cb'' IO (FunPtr C_TreeSelectionForeachFunc)
-> (FunPtr C_TreeSelectionForeachFunc
    -> IO (GClosure C_TreeSelectionForeachFunc))
-> IO (GClosure C_TreeSelectionForeachFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeSelectionForeachFunc
-> IO (GClosure C_TreeSelectionForeachFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeSelectionForeachFunc` into a `C_TreeSelectionForeachFunc`.
wrap_TreeSelectionForeachFunc ::
    Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc)) ->
    TreeSelectionForeachFunc_WithClosures ->
    C_TreeSelectionForeachFunc
wrap_TreeSelectionForeachFunc :: Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc))
-> TreeSelectionForeachFunc_WithClosures
-> C_TreeSelectionForeachFunc
wrap_TreeSelectionForeachFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc))
funptrptr _cb :: TreeSelectionForeachFunc_WithClosures
_cb model :: Ptr TreeModel
model path :: Ptr TreePath
path iter :: Ptr TreeIter
iter data_ :: Ptr ()
data_ = do
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \path' :: TreePath
path' -> do
        (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO ()) -> IO ()) -> (TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
            TreeSelectionForeachFunc_WithClosures
_cb  TreeModel
model' TreePath
path' TreeIter
iter' Ptr ()
data_
            Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeSelectionForeachFunc))
funptrptr


-- callback TreeModelForeachFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE to stop iterating, %FALSE to continue", sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTreeModel being iterated", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the current #GtkTreePath", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the current #GtkTreeIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The user data passed to gtk_tree_model_foreach()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Type of the callback passed to gtk_tree_model_foreach() to\niterate over the rows in a tree model.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeModelForeachFunc =
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkTreeModel being iterated"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the current #GtkTreePath"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the current #GtkTreeIter"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The user data passed to gtk_tree_model_foreach()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeModelForeachFunc :: FunPtr C_TreeModelForeachFunc -> C_TreeModelForeachFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeModelForeachFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    FunPtr C_TreeModelForeachFunc
    -> a
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel' being iterated
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: the current t'GI.Gtk.Structs.TreePath.TreePath'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: the current t'GI.Gtk.Structs.TreeIter.TreeIter'
    -> Ptr ()
    -- ^ /@data@/: The user data passed to 'GI.Gtk.Interfaces.TreeModel.treeModelForeach'
    -> m Bool
    -- ^ __Returns:__ 'P.True' to stop iterating, 'P.False' to continue
dynamic_TreeModelForeachFunc :: FunPtr C_TreeModelForeachFunc
-> a -> TreePath -> TreeIter -> Ptr () -> m Bool
dynamic_TreeModelForeachFunc __funPtr :: FunPtr C_TreeModelForeachFunc
__funPtr model :: a
model path :: TreePath
path iter :: TreeIter
iter data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    CInt
result <- (FunPtr C_TreeModelForeachFunc -> C_TreeModelForeachFunc
__dynamic_C_TreeModelForeachFunc FunPtr C_TreeModelForeachFunc
__funPtr) Ptr TreeModel
model' Ptr TreePath
path' Ptr TreeIter
iter' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TreeModelForeachFunc`.
foreign import ccall "wrapper"
    mk_TreeModelForeachFunc :: C_TreeModelForeachFunc -> IO (FunPtr C_TreeModelForeachFunc)

-- | Type of the callback passed to 'GI.Gtk.Interfaces.TreeModel.treeModelForeach' to
-- iterate over the rows in a tree model.
type TreeModelForeachFunc =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel' being iterated
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: the current t'GI.Gtk.Structs.TreePath.TreePath'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: the current t'GI.Gtk.Structs.TreeIter.TreeIter'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop iterating, 'P.False' to continue

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeModelForeachFunc`@.
noTreeModelForeachFunc :: Maybe TreeModelForeachFunc
noTreeModelForeachFunc :: Maybe TreeModelForeachFunc
noTreeModelForeachFunc = Maybe TreeModelForeachFunc
forall a. Maybe a
Nothing

-- | Type of the callback passed to 'GI.Gtk.Interfaces.TreeModel.treeModelForeach' to
-- iterate over the rows in a tree model.
type TreeModelForeachFunc_WithClosures =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the t'GI.Gtk.Interfaces.TreeModel.TreeModel' being iterated
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: the current t'GI.Gtk.Structs.TreePath.TreePath'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: the current t'GI.Gtk.Structs.TreeIter.TreeIter'
    -> Ptr ()
    -- ^ /@data@/: The user data passed to 'GI.Gtk.Interfaces.TreeModel.treeModelForeach'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop iterating, 'P.False' to continue

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeModelForeachFunc_WithClosures`@.
noTreeModelForeachFunc_WithClosures :: Maybe TreeModelForeachFunc_WithClosures
noTreeModelForeachFunc_WithClosures :: Maybe TreeModelForeachFunc_WithClosures
noTreeModelForeachFunc_WithClosures = Maybe TreeModelForeachFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeModelForeachFunc :: TreeModelForeachFunc -> TreeModelForeachFunc_WithClosures
drop_closures_TreeModelForeachFunc :: TreeModelForeachFunc -> TreeModelForeachFunc_WithClosures
drop_closures_TreeModelForeachFunc _f :: TreeModelForeachFunc
_f model :: TreeModel
model path :: TreePath
path iter :: TreeIter
iter _ = TreeModelForeachFunc
_f TreeModel
model TreePath
path TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_TreeModelForeachFunc :: MonadIO m => TreeModelForeachFunc -> m (GClosure C_TreeModelForeachFunc)
genClosure_TreeModelForeachFunc :: TreeModelForeachFunc -> m (GClosure C_TreeModelForeachFunc)
genClosure_TreeModelForeachFunc cb :: TreeModelForeachFunc
cb = IO (GClosure C_TreeModelForeachFunc)
-> m (GClosure C_TreeModelForeachFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeModelForeachFunc)
 -> m (GClosure C_TreeModelForeachFunc))
-> IO (GClosure C_TreeModelForeachFunc)
-> m (GClosure C_TreeModelForeachFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeModelForeachFunc_WithClosures
cb' = TreeModelForeachFunc -> TreeModelForeachFunc_WithClosures
drop_closures_TreeModelForeachFunc TreeModelForeachFunc
cb
    let cb'' :: C_TreeModelForeachFunc
cb'' = Maybe (Ptr (FunPtr C_TreeModelForeachFunc))
-> TreeModelForeachFunc_WithClosures -> C_TreeModelForeachFunc
wrap_TreeModelForeachFunc Maybe (Ptr (FunPtr C_TreeModelForeachFunc))
forall a. Maybe a
Nothing TreeModelForeachFunc_WithClosures
cb'
    C_TreeModelForeachFunc -> IO (FunPtr C_TreeModelForeachFunc)
mk_TreeModelForeachFunc C_TreeModelForeachFunc
cb'' IO (FunPtr C_TreeModelForeachFunc)
-> (FunPtr C_TreeModelForeachFunc
    -> IO (GClosure C_TreeModelForeachFunc))
-> IO (GClosure C_TreeModelForeachFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeModelForeachFunc
-> IO (GClosure C_TreeModelForeachFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeModelForeachFunc` into a `C_TreeModelForeachFunc`.
wrap_TreeModelForeachFunc ::
    Maybe (Ptr (FunPtr C_TreeModelForeachFunc)) ->
    TreeModelForeachFunc_WithClosures ->
    C_TreeModelForeachFunc
wrap_TreeModelForeachFunc :: Maybe (Ptr (FunPtr C_TreeModelForeachFunc))
-> TreeModelForeachFunc_WithClosures -> C_TreeModelForeachFunc
wrap_TreeModelForeachFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeModelForeachFunc))
funptrptr _cb :: TreeModelForeachFunc_WithClosures
_cb model :: Ptr TreeModel
model path :: Ptr TreePath
path iter :: Ptr TreeIter
iter data_ :: Ptr ()
data_ = do
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO CInt) -> IO CInt)
-> (TreePath -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \path' :: TreePath
path' -> do
        (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
            Bool
result <- TreeModelForeachFunc_WithClosures
_cb  TreeModel
model' TreePath
path' TreeIter
iter' Ptr ()
data_
            Maybe (Ptr (FunPtr C_TreeModelForeachFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeModelForeachFunc))
funptrptr
            let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
            CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TreeModelFilterVisibleFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "Whether the row indicated by @iter is visible.", sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the child model of the #GtkTreeModelFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeIter pointing to the row in @model whose visibility\n  is determined", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data given to gtk_tree_model_filter_set_visible_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function which decides whether the row indicated by @iter is visible.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeModelFilterVisibleFunc =
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the child model of the #GtkTreeModelFilter"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreeIter pointing to the row in @model whose visibility\n  is determined"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data given to gtk_tree_model_filter_set_visible_func()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeModelFilterVisibleFunc :: FunPtr C_TreeModelFilterVisibleFunc -> C_TreeModelFilterVisibleFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeModelFilterVisibleFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    FunPtr C_TreeModelFilterVisibleFunc
    -> a
    -- ^ /@model@/: the child model of the t'GI.Gtk.Objects.TreeModelFilter.TreeModelFilter'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing to the row in /@model@/ whose visibility
    --   is determined
    -> Ptr ()
    -- ^ /@data@/: user data given to 'GI.Gtk.Objects.TreeModelFilter.treeModelFilterSetVisibleFunc'
    -> m Bool
    -- ^ __Returns:__ Whether the row indicated by /@iter@/ is visible.
dynamic_TreeModelFilterVisibleFunc :: FunPtr C_TreeViewRowSeparatorFunc
-> a -> TreeIter -> Ptr () -> m Bool
dynamic_TreeModelFilterVisibleFunc __funPtr :: FunPtr C_TreeViewRowSeparatorFunc
__funPtr model :: a
model iter :: TreeIter
iter data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    CInt
result <- (FunPtr C_TreeViewRowSeparatorFunc -> C_TreeViewRowSeparatorFunc
__dynamic_C_TreeModelFilterVisibleFunc FunPtr C_TreeViewRowSeparatorFunc
__funPtr) Ptr TreeModel
model' Ptr TreeIter
iter' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TreeModelFilterVisibleFunc`.
foreign import ccall "wrapper"
    mk_TreeModelFilterVisibleFunc :: C_TreeModelFilterVisibleFunc -> IO (FunPtr C_TreeModelFilterVisibleFunc)

-- | A function which decides whether the row indicated by /@iter@/ is visible.
type TreeModelFilterVisibleFunc =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the child model of the t'GI.Gtk.Objects.TreeModelFilter.TreeModelFilter'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing to the row in /@model@/ whose visibility
    --   is determined
    -> IO Bool
    -- ^ __Returns:__ Whether the row indicated by /@iter@/ is visible.

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeModelFilterVisibleFunc`@.
noTreeModelFilterVisibleFunc :: Maybe TreeModelFilterVisibleFunc
noTreeModelFilterVisibleFunc :: Maybe TreeViewRowSeparatorFunc
noTreeModelFilterVisibleFunc = Maybe TreeViewRowSeparatorFunc
forall a. Maybe a
Nothing

-- | A function which decides whether the row indicated by /@iter@/ is visible.
type TreeModelFilterVisibleFunc_WithClosures =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: the child model of the t'GI.Gtk.Objects.TreeModelFilter.TreeModelFilter'
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' pointing to the row in /@model@/ whose visibility
    --   is determined
    -> Ptr ()
    -- ^ /@data@/: user data given to 'GI.Gtk.Objects.TreeModelFilter.treeModelFilterSetVisibleFunc'
    -> IO Bool
    -- ^ __Returns:__ Whether the row indicated by /@iter@/ is visible.

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeModelFilterVisibleFunc_WithClosures`@.
noTreeModelFilterVisibleFunc_WithClosures :: Maybe TreeModelFilterVisibleFunc_WithClosures
noTreeModelFilterVisibleFunc_WithClosures :: Maybe TreeViewRowSeparatorFunc_WithClosures
noTreeModelFilterVisibleFunc_WithClosures = Maybe TreeViewRowSeparatorFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeModelFilterVisibleFunc :: TreeModelFilterVisibleFunc -> TreeModelFilterVisibleFunc_WithClosures
drop_closures_TreeModelFilterVisibleFunc :: TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures
drop_closures_TreeModelFilterVisibleFunc _f :: TreeViewRowSeparatorFunc
_f model :: TreeModel
model iter :: TreeIter
iter _ = TreeViewRowSeparatorFunc
_f TreeModel
model TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_TreeModelFilterVisibleFunc :: MonadIO m => TreeModelFilterVisibleFunc -> m (GClosure C_TreeModelFilterVisibleFunc)
genClosure_TreeModelFilterVisibleFunc :: TreeViewRowSeparatorFunc -> m (GClosure C_TreeViewRowSeparatorFunc)
genClosure_TreeModelFilterVisibleFunc cb :: TreeViewRowSeparatorFunc
cb = IO (GClosure C_TreeViewRowSeparatorFunc)
-> m (GClosure C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewRowSeparatorFunc)
 -> m (GClosure C_TreeViewRowSeparatorFunc))
-> IO (GClosure C_TreeViewRowSeparatorFunc)
-> m (GClosure C_TreeViewRowSeparatorFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeViewRowSeparatorFunc_WithClosures
cb' = TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures
drop_closures_TreeModelFilterVisibleFunc TreeViewRowSeparatorFunc
cb
    let cb'' :: C_TreeViewRowSeparatorFunc
cb'' = Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
-> TreeViewRowSeparatorFunc_WithClosures
-> C_TreeViewRowSeparatorFunc
wrap_TreeModelFilterVisibleFunc Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
forall a. Maybe a
Nothing TreeViewRowSeparatorFunc_WithClosures
cb'
    C_TreeViewRowSeparatorFunc
-> IO (FunPtr C_TreeViewRowSeparatorFunc)
mk_TreeModelFilterVisibleFunc C_TreeViewRowSeparatorFunc
cb'' IO (FunPtr C_TreeViewRowSeparatorFunc)
-> (FunPtr C_TreeViewRowSeparatorFunc
    -> IO (GClosure C_TreeViewRowSeparatorFunc))
-> IO (GClosure C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewRowSeparatorFunc
-> IO (GClosure C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeModelFilterVisibleFunc` into a `C_TreeModelFilterVisibleFunc`.
wrap_TreeModelFilterVisibleFunc ::
    Maybe (Ptr (FunPtr C_TreeModelFilterVisibleFunc)) ->
    TreeModelFilterVisibleFunc_WithClosures ->
    C_TreeModelFilterVisibleFunc
wrap_TreeModelFilterVisibleFunc :: Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
-> TreeViewRowSeparatorFunc_WithClosures
-> C_TreeViewRowSeparatorFunc
wrap_TreeModelFilterVisibleFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
funptrptr _cb :: TreeViewRowSeparatorFunc_WithClosures
_cb model :: Ptr TreeModel
model iter :: Ptr TreeIter
iter data_ :: Ptr ()
data_ = do
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
        Bool
result <- TreeViewRowSeparatorFunc_WithClosures
_cb  TreeModel
model' TreeIter
iter' Ptr ()
data_
        Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TreeModelFilterModifyFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTreeModelFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeIter pointing to the row whose display values are determined", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GValue which is already initialized for\n with the correct type for the column @column.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the column whose display value is determined", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data given to gtk_tree_model_filter_set_modify_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function which calculates display values from raw values in the model.\nIt must fill @value with the display value for the column @column in the\nrow indicated by @iter.\n\nSince this function is called for each data access, it\8217s not a\nparticularly efficient operation.", sinceVersion = Nothing}}
-- XXX Could not generate callback wrapper for TreeModelFilterModifyFunc
-- Error was : Not implemented: "Unexpected transfer type for \"value\""
-- callback TreeIterCompareFunc
--          -> Callable {returnType = Just (TBasicType TInt), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "a negative integer, zero or a positive integer depending on whether\n  @a sorts before, with or after @b", sinceVersion = Nothing}, args = [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreeModel the comparison is within", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter in @model", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Another #GtkTreeIter in @model", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Data passed when the compare func is assigned e.g. by\n gtk_tree_sortable_set_sort_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive\ninteger if @a sorts before @b, @a sorts with @b, or @a sorts after @b\nrespectively. If two iters compare as equal, their order in the sorted model\nis undefined. In order to ensure that the #GtkTreeSortable behaves as\nexpected, the GtkTreeIterCompareFunc must define a partial order on\nthe model, i.e. it must be reflexive, antisymmetric and transitive.\n\nFor example, if @model is a product catalogue, then a compare function\nfor the \8220price\8221 column could be one which returns\n`price_of(@a) - price_of(@b)`.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeIterCompareFunc =
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO Int32

-- Args: [ Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreeModel the comparison is within"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "a"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeIter in @model"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "b"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Another #GtkTreeIter in @model"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "Data passed when the compare func is assigned e.g. by\n gtk_tree_sortable_set_sort_func()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeIterCompareFunc :: FunPtr C_TreeIterCompareFunc -> C_TreeIterCompareFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeIterCompareFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    FunPtr C_TreeIterCompareFunc
    -> a
    -- ^ /@model@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' the comparison is within
    -> Gtk.TreeIter.TreeIter
    -- ^ /@a@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' in /@model@/
    -> Gtk.TreeIter.TreeIter
    -- ^ /@b@/: Another t'GI.Gtk.Structs.TreeIter.TreeIter' in /@model@/
    -> Ptr ()
    -- ^ /@userData@/: Data passed when the compare func is assigned e.g. by
    --  'GI.Gtk.Interfaces.TreeSortable.treeSortableSetSortFunc'
    -> m Int32
    -- ^ __Returns:__ a negative integer, zero or a positive integer depending on whether
    --   /@a@/ sorts before, with or after /@b@/
dynamic_TreeIterCompareFunc :: FunPtr C_TreeIterCompareFunc
-> a -> TreeIter -> TreeIter -> Ptr () -> m Int32
dynamic_TreeIterCompareFunc __funPtr :: FunPtr C_TreeIterCompareFunc
__funPtr model :: a
model a :: TreeIter
a b :: TreeIter
b userData :: Ptr ()
userData = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr TreeIter
a' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
a
    Ptr TreeIter
b' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
b
    Int32
result <- (FunPtr C_TreeIterCompareFunc -> C_TreeIterCompareFunc
__dynamic_C_TreeIterCompareFunc FunPtr C_TreeIterCompareFunc
__funPtr) Ptr TreeModel
model' Ptr TreeIter
a' Ptr TreeIter
b' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
a
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
b
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

-- | Generate a function pointer callable from C code, from a `C_TreeIterCompareFunc`.
foreign import ccall "wrapper"
    mk_TreeIterCompareFunc :: C_TreeIterCompareFunc -> IO (FunPtr C_TreeIterCompareFunc)

-- | 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 t'GI.Gtk.Interfaces.TreeSortable.TreeSortable' 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 =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' the comparison is within
    -> Gtk.TreeIter.TreeIter
    -- ^ /@a@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' in /@model@/
    -> Gtk.TreeIter.TreeIter
    -- ^ /@b@/: Another t'GI.Gtk.Structs.TreeIter.TreeIter' in /@model@/
    -> IO Int32
    -- ^ __Returns:__ a negative integer, zero or a positive integer depending on whether
    --   /@a@/ sorts before, with or after /@b@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeIterCompareFunc`@.
noTreeIterCompareFunc :: Maybe TreeIterCompareFunc
noTreeIterCompareFunc :: Maybe TreeIterCompareFunc
noTreeIterCompareFunc = Maybe TreeIterCompareFunc
forall a. Maybe a
Nothing

-- | 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 t'GI.Gtk.Interfaces.TreeSortable.TreeSortable' 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 =
    Gtk.TreeModel.TreeModel
    -- ^ /@model@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' the comparison is within
    -> Gtk.TreeIter.TreeIter
    -- ^ /@a@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' in /@model@/
    -> Gtk.TreeIter.TreeIter
    -- ^ /@b@/: Another t'GI.Gtk.Structs.TreeIter.TreeIter' in /@model@/
    -> Ptr ()
    -- ^ /@userData@/: Data passed when the compare func is assigned e.g. by
    --  'GI.Gtk.Interfaces.TreeSortable.treeSortableSetSortFunc'
    -> IO Int32
    -- ^ __Returns:__ a negative integer, zero or a positive integer depending on whether
    --   /@a@/ sorts before, with or after /@b@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeIterCompareFunc_WithClosures`@.
noTreeIterCompareFunc_WithClosures :: Maybe TreeIterCompareFunc_WithClosures
noTreeIterCompareFunc_WithClosures :: Maybe TreeIterCompareFunc_WithClosures
noTreeIterCompareFunc_WithClosures = Maybe TreeIterCompareFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeIterCompareFunc :: TreeIterCompareFunc -> TreeIterCompareFunc_WithClosures
drop_closures_TreeIterCompareFunc :: TreeIterCompareFunc -> TreeIterCompareFunc_WithClosures
drop_closures_TreeIterCompareFunc _f :: TreeIterCompareFunc
_f model :: TreeModel
model a :: TreeIter
a b :: TreeIter
b _ = TreeIterCompareFunc
_f TreeModel
model TreeIter
a TreeIter
b

-- | Wrap the callback into a `GClosure`.
genClosure_TreeIterCompareFunc :: MonadIO m => TreeIterCompareFunc -> m (GClosure C_TreeIterCompareFunc)
genClosure_TreeIterCompareFunc :: TreeIterCompareFunc -> m (GClosure C_TreeIterCompareFunc)
genClosure_TreeIterCompareFunc cb :: TreeIterCompareFunc
cb = IO (GClosure C_TreeIterCompareFunc)
-> m (GClosure C_TreeIterCompareFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeIterCompareFunc)
 -> m (GClosure C_TreeIterCompareFunc))
-> IO (GClosure C_TreeIterCompareFunc)
-> m (GClosure C_TreeIterCompareFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeIterCompareFunc_WithClosures
cb' = TreeIterCompareFunc -> TreeIterCompareFunc_WithClosures
drop_closures_TreeIterCompareFunc TreeIterCompareFunc
cb
    let cb'' :: C_TreeIterCompareFunc
cb'' = Maybe (Ptr (FunPtr C_TreeIterCompareFunc))
-> TreeIterCompareFunc_WithClosures -> C_TreeIterCompareFunc
wrap_TreeIterCompareFunc Maybe (Ptr (FunPtr C_TreeIterCompareFunc))
forall a. Maybe a
Nothing TreeIterCompareFunc_WithClosures
cb'
    C_TreeIterCompareFunc -> IO (FunPtr C_TreeIterCompareFunc)
mk_TreeIterCompareFunc C_TreeIterCompareFunc
cb'' IO (FunPtr C_TreeIterCompareFunc)
-> (FunPtr C_TreeIterCompareFunc
    -> IO (GClosure C_TreeIterCompareFunc))
-> IO (GClosure C_TreeIterCompareFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeIterCompareFunc -> IO (GClosure C_TreeIterCompareFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeIterCompareFunc` into a `C_TreeIterCompareFunc`.
wrap_TreeIterCompareFunc ::
    Maybe (Ptr (FunPtr C_TreeIterCompareFunc)) ->
    TreeIterCompareFunc_WithClosures ->
    C_TreeIterCompareFunc
wrap_TreeIterCompareFunc :: Maybe (Ptr (FunPtr C_TreeIterCompareFunc))
-> TreeIterCompareFunc_WithClosures -> C_TreeIterCompareFunc
wrap_TreeIterCompareFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeIterCompareFunc))
funptrptr _cb :: TreeIterCompareFunc_WithClosures
_cb model :: Ptr TreeModel
model a :: Ptr TreeIter
a b :: Ptr TreeIter
b userData :: Ptr ()
userData = do
    TreeModel
model' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO Int32) -> IO Int32
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
a ((TreeIter -> IO Int32) -> IO Int32)
-> (TreeIter -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \a' :: TreeIter
a' -> do
        (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO Int32) -> IO Int32
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
b ((TreeIter -> IO Int32) -> IO Int32)
-> (TreeIter -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \b' :: TreeIter
b' -> do
            Int32
result <- TreeIterCompareFunc_WithClosures
_cb  TreeModel
model' TreeIter
a' TreeIter
b' Ptr ()
userData
            Maybe (Ptr (FunPtr C_TreeIterCompareFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeIterCompareFunc))
funptrptr
            Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result


-- callback TreeDestroyCountFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "children", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeDestroyCountFunc =
    Ptr Gtk.TreeView.TreeView ->
    Ptr Gtk.TreePath.TreePath ->
    Int32 ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "tree_view"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeView" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "children"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeDestroyCountFunc :: FunPtr C_TreeDestroyCountFunc -> C_TreeDestroyCountFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeDestroyCountFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeView.IsTreeView a) =>
    FunPtr C_TreeDestroyCountFunc
    -> a
    -> Gtk.TreePath.TreePath
    -> Int32
    -> Ptr ()
    -> m ()
dynamic_TreeDestroyCountFunc :: FunPtr C_TreeDestroyCountFunc
-> a -> TreePath -> Int32 -> Ptr () -> m ()
dynamic_TreeDestroyCountFunc __funPtr :: FunPtr C_TreeDestroyCountFunc
__funPtr treeView :: a
treeView path :: TreePath
path children :: Int32
children userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    (FunPtr C_TreeDestroyCountFunc -> C_TreeDestroyCountFunc
__dynamic_C_TreeDestroyCountFunc FunPtr C_TreeDestroyCountFunc
__funPtr) Ptr TreeView
treeView' Ptr TreePath
path' Int32
children Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_TreeDestroyCountFunc`.
foreign import ccall "wrapper"
    mk_TreeDestroyCountFunc :: C_TreeDestroyCountFunc -> IO (FunPtr C_TreeDestroyCountFunc)

-- | /No description available in the introspection data./
type TreeDestroyCountFunc =
    Gtk.TreeView.TreeView
    -> Gtk.TreePath.TreePath
    -> Int32
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeDestroyCountFunc`@.
noTreeDestroyCountFunc :: Maybe TreeDestroyCountFunc
noTreeDestroyCountFunc :: Maybe TreeDestroyCountFunc
noTreeDestroyCountFunc = Maybe TreeDestroyCountFunc
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type TreeDestroyCountFunc_WithClosures =
    Gtk.TreeView.TreeView
    -> Gtk.TreePath.TreePath
    -> Int32
    -> Ptr ()
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeDestroyCountFunc_WithClosures`@.
noTreeDestroyCountFunc_WithClosures :: Maybe TreeDestroyCountFunc_WithClosures
noTreeDestroyCountFunc_WithClosures :: Maybe TreeDestroyCountFunc_WithClosures
noTreeDestroyCountFunc_WithClosures = Maybe TreeDestroyCountFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeDestroyCountFunc :: TreeDestroyCountFunc -> TreeDestroyCountFunc_WithClosures
drop_closures_TreeDestroyCountFunc :: TreeDestroyCountFunc -> TreeDestroyCountFunc_WithClosures
drop_closures_TreeDestroyCountFunc _f :: TreeDestroyCountFunc
_f treeView :: TreeView
treeView path :: TreePath
path children :: Int32
children _ = TreeDestroyCountFunc
_f TreeView
treeView TreePath
path Int32
children

-- | Wrap the callback into a `GClosure`.
genClosure_TreeDestroyCountFunc :: MonadIO m => TreeDestroyCountFunc -> m (GClosure C_TreeDestroyCountFunc)
genClosure_TreeDestroyCountFunc :: TreeDestroyCountFunc -> m (GClosure C_TreeDestroyCountFunc)
genClosure_TreeDestroyCountFunc cb :: TreeDestroyCountFunc
cb = IO (GClosure C_TreeDestroyCountFunc)
-> m (GClosure C_TreeDestroyCountFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeDestroyCountFunc)
 -> m (GClosure C_TreeDestroyCountFunc))
-> IO (GClosure C_TreeDestroyCountFunc)
-> m (GClosure C_TreeDestroyCountFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeDestroyCountFunc_WithClosures
cb' = TreeDestroyCountFunc -> TreeDestroyCountFunc_WithClosures
drop_closures_TreeDestroyCountFunc TreeDestroyCountFunc
cb
    let cb'' :: C_TreeDestroyCountFunc
cb'' = Maybe (Ptr (FunPtr C_TreeDestroyCountFunc))
-> TreeDestroyCountFunc_WithClosures -> C_TreeDestroyCountFunc
wrap_TreeDestroyCountFunc Maybe (Ptr (FunPtr C_TreeDestroyCountFunc))
forall a. Maybe a
Nothing TreeDestroyCountFunc_WithClosures
cb'
    C_TreeDestroyCountFunc -> IO (FunPtr C_TreeDestroyCountFunc)
mk_TreeDestroyCountFunc C_TreeDestroyCountFunc
cb'' IO (FunPtr C_TreeDestroyCountFunc)
-> (FunPtr C_TreeDestroyCountFunc
    -> IO (GClosure C_TreeDestroyCountFunc))
-> IO (GClosure C_TreeDestroyCountFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeDestroyCountFunc
-> IO (GClosure C_TreeDestroyCountFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeDestroyCountFunc` into a `C_TreeDestroyCountFunc`.
wrap_TreeDestroyCountFunc ::
    Maybe (Ptr (FunPtr C_TreeDestroyCountFunc)) ->
    TreeDestroyCountFunc_WithClosures ->
    C_TreeDestroyCountFunc
wrap_TreeDestroyCountFunc :: Maybe (Ptr (FunPtr C_TreeDestroyCountFunc))
-> TreeDestroyCountFunc_WithClosures -> C_TreeDestroyCountFunc
wrap_TreeDestroyCountFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeDestroyCountFunc))
funptrptr _cb :: TreeDestroyCountFunc_WithClosures
_cb treeView :: Ptr TreeView
treeView path :: Ptr TreePath
path children :: Int32
children userData :: Ptr ()
userData = do
    TreeView
treeView' <- ((ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeView -> TreeView
Gtk.TreeView.TreeView) Ptr TreeView
treeView
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \path' :: TreePath
path' -> do
        TreeDestroyCountFunc_WithClosures
_cb  TreeView
treeView' TreePath
path' Int32
children Ptr ()
userData
        Maybe (Ptr (FunPtr C_TreeDestroyCountFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeDestroyCountFunc))
funptrptr


-- callback TreeCellDataFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "tree_column", argType = TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeViewColumn", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cell", argType = TInterface (Name {namespace = "Gtk", name = "CellRenderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkCellRenderer that is being rendered by @tree_column", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tree_model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreeModel being rendered", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter of the current row rendered", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to set the properties of a cell instead of just using the\nstraight mapping between the cell and the model.  This is useful for\ncustomizing the cell renderer.  For example, a function might get an\ninteger from the @tree_model, and render it to the \8220text\8221 attribute of\n\8220cell\8221 by converting it to its written equivalent.  This is set by\ncalling gtk_tree_view_column_set_cell_data_func()", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TreeCellDataFunc =
    Ptr Gtk.TreeViewColumn.TreeViewColumn ->
    Ptr Gtk.CellRenderer.CellRenderer ->
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "tree_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeViewColumn"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The #GtkCellRenderer that is being rendered by @tree_column"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "tree_model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreeModel being rendered"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeIter of the current row rendered"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TreeCellDataFunc :: FunPtr C_TreeCellDataFunc -> C_TreeCellDataFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TreeCellDataFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeViewColumn.IsTreeViewColumn a, Gtk.CellRenderer.IsCellRenderer b, Gtk.TreeModel.IsTreeModel c) =>
    FunPtr C_TreeCellDataFunc
    -> a
    -- ^ /@treeColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn'
    -> b
    -- ^ /@cell@/: The t'GI.Gtk.Objects.CellRenderer.CellRenderer' that is being rendered by /@treeColumn@/
    -> c
    -- ^ /@treeModel@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' being rendered
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' of the current row rendered
    -> Ptr ()
    -- ^ /@data@/: user data
    -> m ()
dynamic_TreeCellDataFunc :: FunPtr C_TreeCellDataFunc
-> a -> b -> c -> TreeIter -> Ptr () -> m ()
dynamic_TreeCellDataFunc __funPtr :: FunPtr C_TreeCellDataFunc
__funPtr treeColumn :: a
treeColumn cell :: b
cell treeModel :: c
treeModel iter :: TreeIter
iter data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeViewColumn
treeColumn' <- a -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeColumn
    Ptr CellRenderer
cell' <- b -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
cell
    Ptr TreeModel
treeModel' <- c -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
treeModel
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    (FunPtr C_TreeCellDataFunc -> C_TreeCellDataFunc
__dynamic_C_TreeCellDataFunc FunPtr C_TreeCellDataFunc
__funPtr) Ptr TreeViewColumn
treeColumn' Ptr CellRenderer
cell' Ptr TreeModel
treeModel' Ptr TreeIter
iter' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeColumn
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
cell
    c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr c
treeModel
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_TreeCellDataFunc`.
foreign import ccall "wrapper"
    mk_TreeCellDataFunc :: C_TreeCellDataFunc -> IO (FunPtr C_TreeCellDataFunc)

-- | A function to set the properties of a cell instead of just using the
-- straight mapping between the cell and the model.  This 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.  This is set by
-- calling 'GI.Gtk.Objects.TreeViewColumn.treeViewColumnSetCellDataFunc'
type TreeCellDataFunc =
    Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@treeColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn'
    -> Gtk.CellRenderer.CellRenderer
    -- ^ /@cell@/: The t'GI.Gtk.Objects.CellRenderer.CellRenderer' that is being rendered by /@treeColumn@/
    -> Gtk.TreeModel.TreeModel
    -- ^ /@treeModel@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' being rendered
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' of the current row rendered
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeCellDataFunc`@.
noTreeCellDataFunc :: Maybe TreeCellDataFunc
noTreeCellDataFunc :: Maybe TreeCellDataFunc
noTreeCellDataFunc = Maybe TreeCellDataFunc
forall a. Maybe a
Nothing

-- | A function to set the properties of a cell instead of just using the
-- straight mapping between the cell and the model.  This 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.  This is set by
-- calling 'GI.Gtk.Objects.TreeViewColumn.treeViewColumnSetCellDataFunc'
type TreeCellDataFunc_WithClosures =
    Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@treeColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn'
    -> Gtk.CellRenderer.CellRenderer
    -- ^ /@cell@/: The t'GI.Gtk.Objects.CellRenderer.CellRenderer' that is being rendered by /@treeColumn@/
    -> Gtk.TreeModel.TreeModel
    -- ^ /@treeModel@/: The t'GI.Gtk.Interfaces.TreeModel.TreeModel' being rendered
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: A t'GI.Gtk.Structs.TreeIter.TreeIter' of the current row rendered
    -> Ptr ()
    -- ^ /@data@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeCellDataFunc_WithClosures`@.
noTreeCellDataFunc_WithClosures :: Maybe TreeCellDataFunc_WithClosures
noTreeCellDataFunc_WithClosures :: Maybe TreeCellDataFunc_WithClosures
noTreeCellDataFunc_WithClosures = Maybe TreeCellDataFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TreeCellDataFunc :: TreeCellDataFunc -> TreeCellDataFunc_WithClosures
drop_closures_TreeCellDataFunc :: TreeCellDataFunc -> TreeCellDataFunc_WithClosures
drop_closures_TreeCellDataFunc _f :: TreeCellDataFunc
_f treeColumn :: TreeViewColumn
treeColumn cell :: CellRenderer
cell treeModel :: TreeModel
treeModel iter :: TreeIter
iter _ = TreeCellDataFunc
_f TreeViewColumn
treeColumn CellRenderer
cell TreeModel
treeModel TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_TreeCellDataFunc :: MonadIO m => TreeCellDataFunc -> m (GClosure C_TreeCellDataFunc)
genClosure_TreeCellDataFunc :: TreeCellDataFunc -> m (GClosure C_TreeCellDataFunc)
genClosure_TreeCellDataFunc cb :: TreeCellDataFunc
cb = IO (GClosure C_TreeCellDataFunc) -> m (GClosure C_TreeCellDataFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeCellDataFunc)
 -> m (GClosure C_TreeCellDataFunc))
-> IO (GClosure C_TreeCellDataFunc)
-> m (GClosure C_TreeCellDataFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TreeCellDataFunc_WithClosures
cb' = TreeCellDataFunc -> TreeCellDataFunc_WithClosures
drop_closures_TreeCellDataFunc TreeCellDataFunc
cb
    let cb'' :: C_TreeCellDataFunc
cb'' = Maybe (Ptr (FunPtr C_TreeCellDataFunc))
-> TreeCellDataFunc_WithClosures -> C_TreeCellDataFunc
wrap_TreeCellDataFunc Maybe (Ptr (FunPtr C_TreeCellDataFunc))
forall a. Maybe a
Nothing TreeCellDataFunc_WithClosures
cb'
    C_TreeCellDataFunc -> IO (FunPtr C_TreeCellDataFunc)
mk_TreeCellDataFunc C_TreeCellDataFunc
cb'' IO (FunPtr C_TreeCellDataFunc)
-> (FunPtr C_TreeCellDataFunc -> IO (GClosure C_TreeCellDataFunc))
-> IO (GClosure C_TreeCellDataFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeCellDataFunc -> IO (GClosure C_TreeCellDataFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeCellDataFunc` into a `C_TreeCellDataFunc`.
wrap_TreeCellDataFunc ::
    Maybe (Ptr (FunPtr C_TreeCellDataFunc)) ->
    TreeCellDataFunc_WithClosures ->
    C_TreeCellDataFunc
wrap_TreeCellDataFunc :: Maybe (Ptr (FunPtr C_TreeCellDataFunc))
-> TreeCellDataFunc_WithClosures -> C_TreeCellDataFunc
wrap_TreeCellDataFunc funptrptr :: Maybe (Ptr (FunPtr C_TreeCellDataFunc))
funptrptr _cb :: TreeCellDataFunc_WithClosures
_cb treeColumn :: Ptr TreeViewColumn
treeColumn cell :: Ptr CellRenderer
cell treeModel :: Ptr TreeModel
treeModel iter :: Ptr TreeIter
iter data_ :: Ptr ()
data_ = do
    TreeViewColumn
treeColumn' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
treeColumn
    CellRenderer
cell' <- ((ManagedPtr CellRenderer -> CellRenderer)
-> Ptr CellRenderer -> IO CellRenderer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CellRenderer -> CellRenderer
Gtk.CellRenderer.CellRenderer) Ptr CellRenderer
cell
    TreeModel
treeModel' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
treeModel
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO ()) -> IO ()) -> (TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
        TreeCellDataFunc_WithClosures
_cb  TreeViewColumn
treeColumn' CellRenderer
cell' TreeModel
treeModel' TreeIter
iter' Ptr ()
data_
        Maybe (Ptr (FunPtr C_TreeCellDataFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TreeCellDataFunc))
funptrptr


-- callback TranslateFunc
--          -> Callable {returnType = Just (TBasicType TUTF8), returnMayBeNull = False, returnTransfer = TransferEverything, returnDocumentation = Documentation {rawDocText = Just "the translated message", sinceVersion = Nothing}, args = [Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The id of the message. In #GtkActionGroup this will be a label\n  or tooltip from a #GtkActionEntry.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data passed in when registering the\n  function", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Just (DeprecationInfo {deprecatedSinceVersion = Just "3.10", deprecationMessage = Nothing}), callableDocumentation = Documentation {rawDocText = Just "The function used to translate messages in e.g. #GtkIconFactory\nand #GtkActionGroup.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TranslateFunc =
    CString ->
    Ptr () ->
    IO CString

-- Args: [ Arg
--           { argCName = "path"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "The id of the message. In #GtkActionGroup this will be a label\n  or tooltip from a #GtkActionEntry."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "func_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data passed in when registering the\n  function"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TranslateFunc :: FunPtr C_TranslateFunc -> C_TranslateFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TranslateFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_TranslateFunc
    -> T.Text
    -- ^ /@path@/: The id of the message. In t'GI.Gtk.Objects.ActionGroup.ActionGroup' this will be a label
    --   or tooltip from a t'GI.Gtk.Structs.ActionEntry.ActionEntry'.
    -> Ptr ()
    -- ^ /@funcData@/: user data passed in when registering the
    --   function
    -> m T.Text
    -- ^ __Returns:__ the translated message
dynamic_TranslateFunc :: FunPtr C_TranslateFunc -> Text -> Ptr () -> m Text
dynamic_TranslateFunc __funPtr :: FunPtr C_TranslateFunc
__funPtr path :: Text
path funcData :: Ptr ()
funcData = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    CString
path' <- Text -> IO CString
textToCString Text
path
    CString
result <- (FunPtr C_TranslateFunc -> C_TranslateFunc
__dynamic_C_TranslateFunc FunPtr C_TranslateFunc
__funPtr) CString
path' Ptr ()
funcData
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "translateFunc" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

-- | Generate a function pointer callable from C code, from a `C_TranslateFunc`.
foreign import ccall "wrapper"
    mk_TranslateFunc :: C_TranslateFunc -> IO (FunPtr C_TranslateFunc)

{-# DEPRECATED TranslateFunc ["(Since version 3.10)"] #-}
-- | The function used to translate messages in e.g. t'GI.Gtk.Objects.IconFactory.IconFactory'
-- and t'GI.Gtk.Objects.ActionGroup.ActionGroup'.
type TranslateFunc =
    T.Text
    -- ^ /@path@/: The id of the message. In t'GI.Gtk.Objects.ActionGroup.ActionGroup' this will be a label
    --   or tooltip from a t'GI.Gtk.Structs.ActionEntry.ActionEntry'.
    -> IO T.Text
    -- ^ __Returns:__ the translated message

-- | A convenience synonym for @`Nothing` :: `Maybe` `TranslateFunc`@.
noTranslateFunc :: Maybe TranslateFunc
noTranslateFunc :: Maybe (Text -> IO Text)
noTranslateFunc = Maybe (Text -> IO Text)
forall a. Maybe a
Nothing

-- | The function used to translate messages in e.g. t'GI.Gtk.Objects.IconFactory.IconFactory'
-- and t'GI.Gtk.Objects.ActionGroup.ActionGroup'.
type TranslateFunc_WithClosures =
    T.Text
    -- ^ /@path@/: The id of the message. In t'GI.Gtk.Objects.ActionGroup.ActionGroup' this will be a label
    --   or tooltip from a t'GI.Gtk.Structs.ActionEntry.ActionEntry'.
    -> Ptr ()
    -- ^ /@funcData@/: user data passed in when registering the
    --   function
    -> IO T.Text
    -- ^ __Returns:__ the translated message

-- | A convenience synonym for @`Nothing` :: `Maybe` `TranslateFunc_WithClosures`@.
noTranslateFunc_WithClosures :: Maybe TranslateFunc_WithClosures
noTranslateFunc_WithClosures :: Maybe TranslateFunc_WithClosures
noTranslateFunc_WithClosures = Maybe TranslateFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TranslateFunc :: TranslateFunc -> TranslateFunc_WithClosures
drop_closures_TranslateFunc :: (Text -> IO Text) -> TranslateFunc_WithClosures
drop_closures_TranslateFunc _f :: Text -> IO Text
_f path :: Text
path _ = Text -> IO Text
_f Text
path

-- | Wrap the callback into a `GClosure`.
genClosure_TranslateFunc :: MonadIO m => TranslateFunc -> m (GClosure C_TranslateFunc)
genClosure_TranslateFunc :: (Text -> IO Text) -> m (GClosure C_TranslateFunc)
genClosure_TranslateFunc cb :: Text -> IO Text
cb = IO (GClosure C_TranslateFunc) -> m (GClosure C_TranslateFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TranslateFunc) -> m (GClosure C_TranslateFunc))
-> IO (GClosure C_TranslateFunc) -> m (GClosure C_TranslateFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TranslateFunc_WithClosures
cb' = (Text -> IO Text) -> TranslateFunc_WithClosures
drop_closures_TranslateFunc Text -> IO Text
cb
    let cb'' :: C_TranslateFunc
cb'' = Maybe (Ptr (FunPtr C_TranslateFunc))
-> TranslateFunc_WithClosures -> C_TranslateFunc
wrap_TranslateFunc Maybe (Ptr (FunPtr C_TranslateFunc))
forall a. Maybe a
Nothing TranslateFunc_WithClosures
cb'
    C_TranslateFunc -> IO (FunPtr C_TranslateFunc)
mk_TranslateFunc C_TranslateFunc
cb'' IO (FunPtr C_TranslateFunc)
-> (FunPtr C_TranslateFunc -> IO (GClosure C_TranslateFunc))
-> IO (GClosure C_TranslateFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TranslateFunc -> IO (GClosure C_TranslateFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TranslateFunc` into a `C_TranslateFunc`.
wrap_TranslateFunc ::
    Maybe (Ptr (FunPtr C_TranslateFunc)) ->
    TranslateFunc_WithClosures ->
    C_TranslateFunc
wrap_TranslateFunc :: Maybe (Ptr (FunPtr C_TranslateFunc))
-> TranslateFunc_WithClosures -> C_TranslateFunc
wrap_TranslateFunc funptrptr :: Maybe (Ptr (FunPtr C_TranslateFunc))
funptrptr _cb :: TranslateFunc_WithClosures
_cb path :: CString
path funcData :: Ptr ()
funcData = do
    Text
path' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
path
    Text
result <- TranslateFunc_WithClosures
_cb  Text
path' Ptr ()
funcData
    Maybe (Ptr (FunPtr C_TranslateFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TranslateFunc))
funptrptr
    CString
result' <- Text -> IO CString
textToCString Text
result
    CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
result'


-- callback TickCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%G_SOURCE_CONTINUE if the tick callback should continue to be called,\n %G_SOURCE_REMOVE if the tick callback should be removed.", sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame_clock", argType = TInterface (Name {namespace = "Gdk", name = "FrameClock"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the frame clock for the widget (same as calling gtk_widget_get_frame_clock())", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data passed to gtk_widget_add_tick_callback().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Callback type for adding a function to update animations. See gtk_widget_add_tick_callback().", sinceVersion = Just "3.8"}}
-- | Type for the callback on the (unwrapped) C side.
type C_TickCallback =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.FrameClock.FrameClock ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the widget" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "frame_clock"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "FrameClock" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the frame clock for the widget (same as calling gtk_widget_get_frame_clock())"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data passed to gtk_widget_add_tick_callback()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TickCallback :: FunPtr C_TickCallback -> C_TickCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TickCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gdk.FrameClock.IsFrameClock b) =>
    FunPtr C_TickCallback
    -> a
    -- ^ /@widget@/: the widget
    -> b
    -- ^ /@frameClock@/: the frame clock for the widget (same as calling 'GI.Gtk.Objects.Widget.widgetGetFrameClock')
    -> Ptr ()
    -- ^ /@userData@/: user data passed to 'GI.Gtk.Objects.Widget.widgetAddTickCallback'.
    -> m Bool
    -- ^ __Returns:__ 'GI.GLib.Constants.SOURCE_CONTINUE' if the tick callback should continue to be called,
    --  'GI.GLib.Constants.SOURCE_REMOVE' if the tick callback should be removed.
dynamic_TickCallback :: FunPtr C_TickCallback -> a -> b -> Ptr () -> m Bool
dynamic_TickCallback __funPtr :: FunPtr C_TickCallback
__funPtr widget :: a
widget frameClock :: b
frameClock userData :: Ptr ()
userData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    Ptr FrameClock
frameClock' <- b -> IO (Ptr FrameClock)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
frameClock
    CInt
result <- (FunPtr C_TickCallback -> C_TickCallback
__dynamic_C_TickCallback FunPtr C_TickCallback
__funPtr) Ptr Widget
widget' Ptr FrameClock
frameClock' Ptr ()
userData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
frameClock
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TickCallback`.
foreign import ccall "wrapper"
    mk_TickCallback :: C_TickCallback -> IO (FunPtr C_TickCallback)

-- | Callback type for adding a function to update animations. See 'GI.Gtk.Objects.Widget.widgetAddTickCallback'.
-- 
-- /Since: 3.8/
type TickCallback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: the widget
    -> Gdk.FrameClock.FrameClock
    -- ^ /@frameClock@/: the frame clock for the widget (same as calling 'GI.Gtk.Objects.Widget.widgetGetFrameClock')
    -> IO Bool
    -- ^ __Returns:__ 'GI.GLib.Constants.SOURCE_CONTINUE' if the tick callback should continue to be called,
    --  'GI.GLib.Constants.SOURCE_REMOVE' if the tick callback should be removed.

-- | A convenience synonym for @`Nothing` :: `Maybe` `TickCallback`@.
noTickCallback :: Maybe TickCallback
noTickCallback :: Maybe TickCallback
noTickCallback = Maybe TickCallback
forall a. Maybe a
Nothing

-- | Callback type for adding a function to update animations. See 'GI.Gtk.Objects.Widget.widgetAddTickCallback'.
-- 
-- /Since: 3.8/
type TickCallback_WithClosures =
    Gtk.Widget.Widget
    -- ^ /@widget@/: the widget
    -> Gdk.FrameClock.FrameClock
    -- ^ /@frameClock@/: the frame clock for the widget (same as calling 'GI.Gtk.Objects.Widget.widgetGetFrameClock')
    -> Ptr ()
    -- ^ /@userData@/: user data passed to 'GI.Gtk.Objects.Widget.widgetAddTickCallback'.
    -> IO Bool
    -- ^ __Returns:__ 'GI.GLib.Constants.SOURCE_CONTINUE' if the tick callback should continue to be called,
    --  'GI.GLib.Constants.SOURCE_REMOVE' if the tick callback should be removed.

-- | A convenience synonym for @`Nothing` :: `Maybe` `TickCallback_WithClosures`@.
noTickCallback_WithClosures :: Maybe TickCallback_WithClosures
noTickCallback_WithClosures :: Maybe TickCallback_WithClosures
noTickCallback_WithClosures = Maybe TickCallback_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TickCallback :: TickCallback -> TickCallback_WithClosures
drop_closures_TickCallback :: TickCallback -> TickCallback_WithClosures
drop_closures_TickCallback _f :: TickCallback
_f widget :: Widget
widget frameClock :: FrameClock
frameClock _ = TickCallback
_f Widget
widget FrameClock
frameClock

-- | Wrap the callback into a `GClosure`.
genClosure_TickCallback :: MonadIO m => TickCallback -> m (GClosure C_TickCallback)
genClosure_TickCallback :: TickCallback -> m (GClosure C_TickCallback)
genClosure_TickCallback cb :: TickCallback
cb = IO (GClosure C_TickCallback) -> m (GClosure C_TickCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TickCallback) -> m (GClosure C_TickCallback))
-> IO (GClosure C_TickCallback) -> m (GClosure C_TickCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TickCallback_WithClosures
cb' = TickCallback -> TickCallback_WithClosures
drop_closures_TickCallback TickCallback
cb
    let cb'' :: C_TickCallback
cb'' = Maybe (Ptr (FunPtr C_TickCallback))
-> TickCallback_WithClosures -> C_TickCallback
wrap_TickCallback Maybe (Ptr (FunPtr C_TickCallback))
forall a. Maybe a
Nothing TickCallback_WithClosures
cb'
    C_TickCallback -> IO (FunPtr C_TickCallback)
mk_TickCallback C_TickCallback
cb'' IO (FunPtr C_TickCallback)
-> (FunPtr C_TickCallback -> IO (GClosure C_TickCallback))
-> IO (GClosure C_TickCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TickCallback -> IO (GClosure C_TickCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TickCallback` into a `C_TickCallback`.
wrap_TickCallback ::
    Maybe (Ptr (FunPtr C_TickCallback)) ->
    TickCallback_WithClosures ->
    C_TickCallback
wrap_TickCallback :: Maybe (Ptr (FunPtr C_TickCallback))
-> TickCallback_WithClosures -> C_TickCallback
wrap_TickCallback funptrptr :: Maybe (Ptr (FunPtr C_TickCallback))
funptrptr _cb :: TickCallback_WithClosures
_cb widget :: Ptr Widget
widget frameClock :: Ptr FrameClock
frameClock userData :: Ptr ()
userData = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    FrameClock
frameClock' <- ((ManagedPtr FrameClock -> FrameClock)
-> Ptr FrameClock -> IO FrameClock
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FrameClock -> FrameClock
Gdk.FrameClock.FrameClock) Ptr FrameClock
frameClock
    Bool
result <- TickCallback_WithClosures
_cb  Widget
widget' FrameClock
frameClock' Ptr ()
userData
    Maybe (Ptr (FunPtr C_TickCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TickCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TextTagTableForeach
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "tag", argType = TInterface (Name {namespace = "Gtk", name = "TextTag"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTextTag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "data passed to gtk_text_tag_table_foreach()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TextTagTableForeach =
    Ptr Gtk.TextTag.TextTag ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "tag"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextTag" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkTextTag" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "data passed to gtk_text_tag_table_foreach()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TextTagTableForeach :: FunPtr C_TextTagTableForeach -> C_TextTagTableForeach

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TextTagTableForeach ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TextTag.IsTextTag a) =>
    FunPtr C_TextTagTableForeach
    -> a
    -- ^ /@tag@/: the t'GI.Gtk.Objects.TextTag.TextTag'
    -> Ptr ()
    -- ^ /@data@/: data passed to 'GI.Gtk.Objects.TextTagTable.textTagTableForeach'
    -> m ()
dynamic_TextTagTableForeach :: FunPtr C_TextTagTableForeach -> a -> Ptr () -> m ()
dynamic_TextTagTableForeach __funPtr :: FunPtr C_TextTagTableForeach
__funPtr tag :: a
tag data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TextTag
tag' <- a -> IO (Ptr TextTag)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tag
    (FunPtr C_TextTagTableForeach -> C_TextTagTableForeach
__dynamic_C_TextTagTableForeach FunPtr C_TextTagTableForeach
__funPtr) Ptr TextTag
tag' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tag
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_TextTagTableForeach`.
foreign import ccall "wrapper"
    mk_TextTagTableForeach :: C_TextTagTableForeach -> IO (FunPtr C_TextTagTableForeach)

-- | /No description available in the introspection data./
type TextTagTableForeach =
    Gtk.TextTag.TextTag
    -- ^ /@tag@/: the t'GI.Gtk.Objects.TextTag.TextTag'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextTagTableForeach`@.
noTextTagTableForeach :: Maybe TextTagTableForeach
noTextTagTableForeach :: Maybe TextTagTableForeach
noTextTagTableForeach = Maybe TextTagTableForeach
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type TextTagTableForeach_WithClosures =
    Gtk.TextTag.TextTag
    -- ^ /@tag@/: the t'GI.Gtk.Objects.TextTag.TextTag'
    -> Ptr ()
    -- ^ /@data@/: data passed to 'GI.Gtk.Objects.TextTagTable.textTagTableForeach'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextTagTableForeach_WithClosures`@.
noTextTagTableForeach_WithClosures :: Maybe TextTagTableForeach_WithClosures
noTextTagTableForeach_WithClosures :: Maybe TextTagTableForeach_WithClosures
noTextTagTableForeach_WithClosures = Maybe TextTagTableForeach_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextTagTableForeach :: TextTagTableForeach -> TextTagTableForeach_WithClosures
drop_closures_TextTagTableForeach :: TextTagTableForeach -> TextTagTableForeach_WithClosures
drop_closures_TextTagTableForeach _f :: TextTagTableForeach
_f tag :: TextTag
tag _ = TextTagTableForeach
_f TextTag
tag

-- | Wrap the callback into a `GClosure`.
genClosure_TextTagTableForeach :: MonadIO m => TextTagTableForeach -> m (GClosure C_TextTagTableForeach)
genClosure_TextTagTableForeach :: TextTagTableForeach -> m (GClosure C_TextTagTableForeach)
genClosure_TextTagTableForeach cb :: TextTagTableForeach
cb = IO (GClosure C_TextTagTableForeach)
-> m (GClosure C_TextTagTableForeach)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TextTagTableForeach)
 -> m (GClosure C_TextTagTableForeach))
-> IO (GClosure C_TextTagTableForeach)
-> m (GClosure C_TextTagTableForeach)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TextTagTableForeach_WithClosures
cb' = TextTagTableForeach -> TextTagTableForeach_WithClosures
drop_closures_TextTagTableForeach TextTagTableForeach
cb
    let cb'' :: C_TextTagTableForeach
cb'' = Maybe (Ptr (FunPtr C_TextTagTableForeach))
-> TextTagTableForeach_WithClosures -> C_TextTagTableForeach
wrap_TextTagTableForeach Maybe (Ptr (FunPtr C_TextTagTableForeach))
forall a. Maybe a
Nothing TextTagTableForeach_WithClosures
cb'
    C_TextTagTableForeach -> IO (FunPtr C_TextTagTableForeach)
mk_TextTagTableForeach C_TextTagTableForeach
cb'' IO (FunPtr C_TextTagTableForeach)
-> (FunPtr C_TextTagTableForeach
    -> IO (GClosure C_TextTagTableForeach))
-> IO (GClosure C_TextTagTableForeach)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TextTagTableForeach -> IO (GClosure C_TextTagTableForeach)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TextTagTableForeach` into a `C_TextTagTableForeach`.
wrap_TextTagTableForeach ::
    Maybe (Ptr (FunPtr C_TextTagTableForeach)) ->
    TextTagTableForeach_WithClosures ->
    C_TextTagTableForeach
wrap_TextTagTableForeach :: Maybe (Ptr (FunPtr C_TextTagTableForeach))
-> TextTagTableForeach_WithClosures -> C_TextTagTableForeach
wrap_TextTagTableForeach funptrptr :: Maybe (Ptr (FunPtr C_TextTagTableForeach))
funptrptr _cb :: TextTagTableForeach_WithClosures
_cb tag :: Ptr TextTag
tag data_ :: Ptr ()
data_ = do
    TextTag
tag' <- ((ManagedPtr TextTag -> TextTag) -> Ptr TextTag -> IO TextTag
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TextTag -> TextTag
Gtk.TextTag.TextTag) Ptr TextTag
tag
    TextTagTableForeach_WithClosures
_cb  TextTag
tag' Ptr ()
data_
    Maybe (Ptr (FunPtr C_TextTagTableForeach)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TextTagTableForeach))
funptrptr


-- callback TextCharPredicate
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TextCharPredicate =
    CInt ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "ch"
--           , argType = TBasicType TUniChar
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TextCharPredicate :: FunPtr C_TextCharPredicate -> C_TextCharPredicate

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TextCharPredicate ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_TextCharPredicate
    -> Char
    -> Ptr ()
    -> m Bool
dynamic_TextCharPredicate :: FunPtr C_TextCharPredicate -> Char -> Ptr () -> m Bool
dynamic_TextCharPredicate __funPtr :: FunPtr C_TextCharPredicate
__funPtr ch :: Char
ch userData :: Ptr ()
userData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    let ch' :: CInt
ch' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Char -> Int) -> Char -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Int
ord) Char
ch
    CInt
result <- (FunPtr C_TextCharPredicate -> C_TextCharPredicate
__dynamic_C_TextCharPredicate FunPtr C_TextCharPredicate
__funPtr) CInt
ch' Ptr ()
userData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_TextCharPredicate`.
foreign import ccall "wrapper"
    mk_TextCharPredicate :: C_TextCharPredicate -> IO (FunPtr C_TextCharPredicate)

-- | /No description available in the introspection data./
type TextCharPredicate =
    Char
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextCharPredicate`@.
noTextCharPredicate :: Maybe TextCharPredicate
noTextCharPredicate :: Maybe TextCharPredicate
noTextCharPredicate = Maybe TextCharPredicate
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type TextCharPredicate_WithClosures =
    Char
    -> Ptr ()
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextCharPredicate_WithClosures`@.
noTextCharPredicate_WithClosures :: Maybe TextCharPredicate_WithClosures
noTextCharPredicate_WithClosures :: Maybe TextCharPredicate_WithClosures
noTextCharPredicate_WithClosures = Maybe TextCharPredicate_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextCharPredicate :: TextCharPredicate -> TextCharPredicate_WithClosures
drop_closures_TextCharPredicate :: TextCharPredicate -> TextCharPredicate_WithClosures
drop_closures_TextCharPredicate _f :: TextCharPredicate
_f ch :: Char
ch _ = TextCharPredicate
_f Char
ch

-- | Wrap the callback into a `GClosure`.
genClosure_TextCharPredicate :: MonadIO m => TextCharPredicate -> m (GClosure C_TextCharPredicate)
genClosure_TextCharPredicate :: TextCharPredicate -> m (GClosure C_TextCharPredicate)
genClosure_TextCharPredicate cb :: TextCharPredicate
cb = IO (GClosure C_TextCharPredicate)
-> m (GClosure C_TextCharPredicate)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TextCharPredicate)
 -> m (GClosure C_TextCharPredicate))
-> IO (GClosure C_TextCharPredicate)
-> m (GClosure C_TextCharPredicate)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TextCharPredicate_WithClosures
cb' = TextCharPredicate -> TextCharPredicate_WithClosures
drop_closures_TextCharPredicate TextCharPredicate
cb
    let cb'' :: C_TextCharPredicate
cb'' = Maybe (Ptr (FunPtr C_TextCharPredicate))
-> TextCharPredicate_WithClosures -> C_TextCharPredicate
wrap_TextCharPredicate Maybe (Ptr (FunPtr C_TextCharPredicate))
forall a. Maybe a
Nothing TextCharPredicate_WithClosures
cb'
    C_TextCharPredicate -> IO (FunPtr C_TextCharPredicate)
mk_TextCharPredicate C_TextCharPredicate
cb'' IO (FunPtr C_TextCharPredicate)
-> (FunPtr C_TextCharPredicate
    -> IO (GClosure C_TextCharPredicate))
-> IO (GClosure C_TextCharPredicate)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TextCharPredicate -> IO (GClosure C_TextCharPredicate)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TextCharPredicate` into a `C_TextCharPredicate`.
wrap_TextCharPredicate ::
    Maybe (Ptr (FunPtr C_TextCharPredicate)) ->
    TextCharPredicate_WithClosures ->
    C_TextCharPredicate
wrap_TextCharPredicate :: Maybe (Ptr (FunPtr C_TextCharPredicate))
-> TextCharPredicate_WithClosures -> C_TextCharPredicate
wrap_TextCharPredicate funptrptr :: Maybe (Ptr (FunPtr C_TextCharPredicate))
funptrptr _cb :: TextCharPredicate_WithClosures
_cb ch :: CInt
ch userData :: Ptr ()
userData = do
    let ch' :: Char
ch' = (Int -> Char
chr (Int -> Char) -> (CInt -> Int) -> CInt -> Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CInt
ch
    Bool
result <- TextCharPredicate_WithClosures
_cb  Char
ch' Ptr ()
userData
    Maybe (Ptr (FunPtr C_TextCharPredicate)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TextCharPredicate))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback TextBufferSerializeFunc
--          -> Callable {returnType = Just (TBasicType TUInt8), returnMayBeNull = True, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "a newly-allocated array of guint8 which contains\nthe serialized data, or %NULL if an error occurred", sinceVersion = Nothing}, args = [Arg {argCName = "register_buffer", argType = TInterface (Name {namespace = "Gtk", name = "TextBuffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTextBuffer for which the format is registered", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_buffer", argType = TInterface (Name {namespace = "Gtk", name = "TextBuffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTextBuffer to serialize", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "start of the block of text to serialize", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "end of the block of text to serialize", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return location for the length of the serialized data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data that was specified when registering the format", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function that is called to serialize the content of a text buffer.\nIt must return the serialized form of the content.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TextBufferSerializeFunc =
    Ptr Gtk.TextBuffer.TextBuffer ->
    Ptr Gtk.TextBuffer.TextBuffer ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr Gtk.TextIter.TextIter ->
    Word64 ->
    Ptr () ->
    IO Word8

-- Args: [ Arg
--           { argCName = "register_buffer"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the #GtkTextBuffer for which the format is registered"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "content_buffer"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkTextBuffer to serialize"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "start"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "start of the block of text to serialize"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "end"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "end of the block of text to serialize"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "length"
--           , argType = TBasicType TUInt64
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Return location for the length of the serialized data"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data that was specified when registering the format"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 5
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt8)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TextBufferSerializeFunc :: FunPtr C_TextBufferSerializeFunc -> C_TextBufferSerializeFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TextBufferSerializeFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TextBuffer.IsTextBuffer a, Gtk.TextBuffer.IsTextBuffer b) =>
    FunPtr C_TextBufferSerializeFunc
    -> a
    -- ^ /@registerBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' for which the format is registered
    -> b
    -- ^ /@contentBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' to serialize
    -> Gtk.TextIter.TextIter
    -- ^ /@start@/: start of the block of text to serialize
    -> Gtk.TextIter.TextIter
    -- ^ /@end@/: end of the block of text to serialize
    -> Word64
    -- ^ /@length@/: Return location for the length of the serialized data
    -> Ptr ()
    -- ^ /@userData@/: user data that was specified when registering the format
    -> m Word8
    -- ^ __Returns:__ a newly-allocated array of guint8 which contains
    -- the serialized data, or 'P.Nothing' if an error occurred
dynamic_TextBufferSerializeFunc :: FunPtr C_TextBufferSerializeFunc
-> a -> b -> TextIter -> TextIter -> Word64 -> Ptr () -> m Word8
dynamic_TextBufferSerializeFunc __funPtr :: FunPtr C_TextBufferSerializeFunc
__funPtr registerBuffer :: a
registerBuffer contentBuffer :: b
contentBuffer start :: TextIter
start end :: TextIter
end length_ :: Word64
length_ userData :: Ptr ()
userData = IO Word8 -> m Word8
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word8 -> m Word8) -> IO Word8 -> m Word8
forall a b. (a -> b) -> a -> b
$ do
    Ptr TextBuffer
registerBuffer' <- a -> IO (Ptr TextBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
registerBuffer
    Ptr TextBuffer
contentBuffer' <- b -> IO (Ptr TextBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
contentBuffer
    Ptr TextIter
start' <- TextIter -> IO (Ptr TextIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TextIter
start
    Ptr TextIter
end' <- TextIter -> IO (Ptr TextIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TextIter
end
    Word8
result <- (FunPtr C_TextBufferSerializeFunc -> C_TextBufferSerializeFunc
__dynamic_C_TextBufferSerializeFunc FunPtr C_TextBufferSerializeFunc
__funPtr) Ptr TextBuffer
registerBuffer' Ptr TextBuffer
contentBuffer' Ptr TextIter
start' Ptr TextIter
end' Word64
length_ Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
registerBuffer
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
contentBuffer
    TextIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TextIter
start
    TextIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TextIter
end
    Word8 -> IO Word8
forall (m :: * -> *) a. Monad m => a -> m a
return Word8
result

-- | Generate a function pointer callable from C code, from a `C_TextBufferSerializeFunc`.
foreign import ccall "wrapper"
    mk_TextBufferSerializeFunc :: C_TextBufferSerializeFunc -> IO (FunPtr C_TextBufferSerializeFunc)

-- | A function that is called to serialize the content of a text buffer.
-- It must return the serialized form of the content.
type TextBufferSerializeFunc =
    Gtk.TextBuffer.TextBuffer
    -- ^ /@registerBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' for which the format is registered
    -> Gtk.TextBuffer.TextBuffer
    -- ^ /@contentBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' to serialize
    -> Gtk.TextIter.TextIter
    -- ^ /@start@/: start of the block of text to serialize
    -> Gtk.TextIter.TextIter
    -- ^ /@end@/: end of the block of text to serialize
    -> Word64
    -- ^ /@length@/: Return location for the length of the serialized data
    -> IO Word8
    -- ^ __Returns:__ a newly-allocated array of guint8 which contains
    -- the serialized data, or 'P.Nothing' if an error occurred

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextBufferSerializeFunc`@.
noTextBufferSerializeFunc :: Maybe TextBufferSerializeFunc
noTextBufferSerializeFunc :: Maybe TextBufferSerializeFunc
noTextBufferSerializeFunc = Maybe TextBufferSerializeFunc
forall a. Maybe a
Nothing

-- | A function that is called to serialize the content of a text buffer.
-- It must return the serialized form of the content.
type TextBufferSerializeFunc_WithClosures =
    Gtk.TextBuffer.TextBuffer
    -- ^ /@registerBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' for which the format is registered
    -> Gtk.TextBuffer.TextBuffer
    -- ^ /@contentBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' to serialize
    -> Gtk.TextIter.TextIter
    -- ^ /@start@/: start of the block of text to serialize
    -> Gtk.TextIter.TextIter
    -- ^ /@end@/: end of the block of text to serialize
    -> Word64
    -- ^ /@length@/: Return location for the length of the serialized data
    -> Ptr ()
    -- ^ /@userData@/: user data that was specified when registering the format
    -> IO Word8
    -- ^ __Returns:__ a newly-allocated array of guint8 which contains
    -- the serialized data, or 'P.Nothing' if an error occurred

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextBufferSerializeFunc_WithClosures`@.
noTextBufferSerializeFunc_WithClosures :: Maybe TextBufferSerializeFunc_WithClosures
noTextBufferSerializeFunc_WithClosures :: Maybe TextBufferSerializeFunc_WithClosures
noTextBufferSerializeFunc_WithClosures = Maybe TextBufferSerializeFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextBufferSerializeFunc :: TextBufferSerializeFunc -> TextBufferSerializeFunc_WithClosures
drop_closures_TextBufferSerializeFunc :: TextBufferSerializeFunc -> TextBufferSerializeFunc_WithClosures
drop_closures_TextBufferSerializeFunc _f :: TextBufferSerializeFunc
_f registerBuffer :: TextBuffer
registerBuffer contentBuffer :: TextBuffer
contentBuffer start :: TextIter
start end :: TextIter
end length_ :: Word64
length_ _ = TextBufferSerializeFunc
_f TextBuffer
registerBuffer TextBuffer
contentBuffer TextIter
start TextIter
end Word64
length_

-- | Wrap the callback into a `GClosure`.
genClosure_TextBufferSerializeFunc :: MonadIO m => TextBufferSerializeFunc -> m (GClosure C_TextBufferSerializeFunc)
genClosure_TextBufferSerializeFunc :: TextBufferSerializeFunc -> m (GClosure C_TextBufferSerializeFunc)
genClosure_TextBufferSerializeFunc cb :: TextBufferSerializeFunc
cb = IO (GClosure C_TextBufferSerializeFunc)
-> m (GClosure C_TextBufferSerializeFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TextBufferSerializeFunc)
 -> m (GClosure C_TextBufferSerializeFunc))
-> IO (GClosure C_TextBufferSerializeFunc)
-> m (GClosure C_TextBufferSerializeFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: TextBufferSerializeFunc_WithClosures
cb' = TextBufferSerializeFunc -> TextBufferSerializeFunc_WithClosures
drop_closures_TextBufferSerializeFunc TextBufferSerializeFunc
cb
    let cb'' :: C_TextBufferSerializeFunc
cb'' = Maybe (Ptr (FunPtr C_TextBufferSerializeFunc))
-> TextBufferSerializeFunc_WithClosures
-> C_TextBufferSerializeFunc
wrap_TextBufferSerializeFunc Maybe (Ptr (FunPtr C_TextBufferSerializeFunc))
forall a. Maybe a
Nothing TextBufferSerializeFunc_WithClosures
cb'
    C_TextBufferSerializeFunc -> IO (FunPtr C_TextBufferSerializeFunc)
mk_TextBufferSerializeFunc C_TextBufferSerializeFunc
cb'' IO (FunPtr C_TextBufferSerializeFunc)
-> (FunPtr C_TextBufferSerializeFunc
    -> IO (GClosure C_TextBufferSerializeFunc))
-> IO (GClosure C_TextBufferSerializeFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TextBufferSerializeFunc
-> IO (GClosure C_TextBufferSerializeFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TextBufferSerializeFunc` into a `C_TextBufferSerializeFunc`.
wrap_TextBufferSerializeFunc ::
    Maybe (Ptr (FunPtr C_TextBufferSerializeFunc)) ->
    TextBufferSerializeFunc_WithClosures ->
    C_TextBufferSerializeFunc
wrap_TextBufferSerializeFunc :: Maybe (Ptr (FunPtr C_TextBufferSerializeFunc))
-> TextBufferSerializeFunc_WithClosures
-> C_TextBufferSerializeFunc
wrap_TextBufferSerializeFunc funptrptr :: Maybe (Ptr (FunPtr C_TextBufferSerializeFunc))
funptrptr _cb :: TextBufferSerializeFunc_WithClosures
_cb registerBuffer :: Ptr TextBuffer
registerBuffer contentBuffer :: Ptr TextBuffer
contentBuffer start :: Ptr TextIter
start end :: Ptr TextIter
end length_ :: Word64
length_ userData :: Ptr ()
userData = do
    TextBuffer
registerBuffer' <- ((ManagedPtr TextBuffer -> TextBuffer)
-> Ptr TextBuffer -> IO TextBuffer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TextBuffer -> TextBuffer
Gtk.TextBuffer.TextBuffer) Ptr TextBuffer
registerBuffer
    TextBuffer
contentBuffer' <- ((ManagedPtr TextBuffer -> TextBuffer)
-> Ptr TextBuffer -> IO TextBuffer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TextBuffer -> TextBuffer
Gtk.TextBuffer.TextBuffer) Ptr TextBuffer
contentBuffer
    (ManagedPtr TextIter -> TextIter)
-> Ptr TextIter -> (TextIter -> IO Word8) -> IO Word8
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TextIter -> TextIter
Gtk.TextIter.TextIter Ptr TextIter
start ((TextIter -> IO Word8) -> IO Word8)
-> (TextIter -> IO Word8) -> IO Word8
forall a b. (a -> b) -> a -> b
$ \start' :: TextIter
start' -> do
        (ManagedPtr TextIter -> TextIter)
-> Ptr TextIter -> (TextIter -> IO Word8) -> IO Word8
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TextIter -> TextIter
Gtk.TextIter.TextIter Ptr TextIter
end ((TextIter -> IO Word8) -> IO Word8)
-> (TextIter -> IO Word8) -> IO Word8
forall a b. (a -> b) -> a -> b
$ \end' :: TextIter
end' -> do
            Word8
result <- TextBufferSerializeFunc_WithClosures
_cb  TextBuffer
registerBuffer' TextBuffer
contentBuffer' TextIter
start' TextIter
end' Word64
length_ Ptr ()
userData
            Maybe (Ptr (FunPtr C_TextBufferSerializeFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_TextBufferSerializeFunc))
funptrptr
            Word8 -> IO Word8
forall (m :: * -> *) a. Monad m => a -> m a
return Word8
result


-- callback TextBufferDeserializeFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE on success, %FALSE otherwise", sinceVersion = Nothing}, args = [Arg {argCName = "register_buffer", argType = TInterface (Name {namespace = "Gtk", name = "TextBuffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTextBuffer the format is registered with", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_buffer", argType = TInterface (Name {namespace = "Gtk", name = "TextBuffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkTextBuffer to deserialize into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TextIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "insertion point for the deserialized text", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "data to deserialize", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "length of @data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "create_tags", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if deserializing may create tags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data that was specified when registering the format", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = True, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function that is called to deserialize rich text that has been\nserialized with gtk_text_buffer_serialize(), and insert it at @iter.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_TextBufferDeserializeFunc =
    Ptr Gtk.TextBuffer.TextBuffer ->
    Ptr Gtk.TextBuffer.TextBuffer ->
    Ptr Gtk.TextIter.TextIter ->
    Ptr Word8 ->
    Word64 ->
    CInt ->
    Ptr () ->
    Ptr (Ptr GError) ->
    IO CInt

-- Args: [ Arg
--           { argCName = "register_buffer"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the #GtkTextBuffer the format is registered with"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "content_buffer"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextBuffer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkTextBuffer to deserialize into"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TextIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "insertion point for the deserialized text"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TCArray False (-1) 4 (TBasicType TUInt8)
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "data to deserialize"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "length"
--           , argType = TBasicType TUInt64
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "length of @data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "create_tags"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE if deserializing may create tags"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data that was specified when registering the format"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 6
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: [ Arg
--              { argCName = "length"
--              , argType = TBasicType TUInt64
--              , direction = DirectionIn
--              , mayBeNull = False
--              , argDoc =
--                  Documentation
--                    { rawDocText = Just "length of @data" , sinceVersion = Nothing }
--              , argScope = ScopeTypeInvalid
--              , argClosure = -1
--              , argDestroy = -1
--              , argCallerAllocates = False
--              , transfer = TransferNothing
--              }
--          ]
-- returnType: Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_TextBufferDeserializeFunc :: FunPtr C_TextBufferDeserializeFunc -> C_TextBufferDeserializeFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_TextBufferDeserializeFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TextBuffer.IsTextBuffer a, Gtk.TextBuffer.IsTextBuffer b) =>
    FunPtr C_TextBufferDeserializeFunc
    -> a
    -- ^ /@registerBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' the format is registered with
    -> b
    -- ^ /@contentBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' to deserialize into
    -> Gtk.TextIter.TextIter
    -- ^ /@iter@/: insertion point for the deserialized text
    -> ByteString
    -- ^ /@data@/: data to deserialize
    -> Bool
    -- ^ /@createTags@/: 'P.True' if deserializing may create tags
    -> Ptr ()
    -- ^ /@userData@/: user data that was specified when registering the format
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dynamic_TextBufferDeserializeFunc :: FunPtr C_TextBufferDeserializeFunc
-> a -> b -> TextIter -> ByteString -> Bool -> Ptr () -> m ()
dynamic_TextBufferDeserializeFunc __funPtr :: FunPtr C_TextBufferDeserializeFunc
__funPtr registerBuffer :: a
registerBuffer contentBuffer :: b
contentBuffer iter :: TextIter
iter data_ :: ByteString
data_ createTags :: Bool
createTags userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    let length_ :: Word64
length_ = Int -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word64) -> Int -> Word64
forall a b. (a -> b) -> a -> b
$ ByteString -> Int
B.length ByteString
data_
    Ptr TextBuffer
registerBuffer' <- a -> IO (Ptr TextBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
registerBuffer
    Ptr TextBuffer
contentBuffer' <- b -> IO (Ptr TextBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
contentBuffer
    Ptr TextIter
iter' <- TextIter -> IO (Ptr TextIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TextIter
iter
    Ptr Word8
data_' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
data_
    let createTags' :: CInt
createTags' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
createTags
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ (FunPtr C_TextBufferDeserializeFunc -> C_TextBufferDeserializeFunc
__dynamic_C_TextBufferDeserializeFunc FunPtr C_TextBufferDeserializeFunc
__funPtr) Ptr TextBuffer
registerBuffer' Ptr TextBuffer
contentBuffer' Ptr TextIter
iter' Ptr Word8
data_' Word64
length_ CInt
createTags' Ptr ()
userData
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
registerBuffer
        b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
contentBuffer
        TextIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TextIter
iter
        Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
data_'
        () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
data_'
     )

-- | Generate a function pointer callable from C code, from a `C_TextBufferDeserializeFunc`.
foreign import ccall "wrapper"
    mk_TextBufferDeserializeFunc :: C_TextBufferDeserializeFunc -> IO (FunPtr C_TextBufferDeserializeFunc)

-- | A function that is called to deserialize rich text that has been
-- serialized with 'GI.Gtk.Objects.TextBuffer.textBufferSerialize', and insert it at /@iter@/.
type TextBufferDeserializeFunc =
    Gtk.TextBuffer.TextBuffer
    -- ^ /@registerBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' the format is registered with
    -> Gtk.TextBuffer.TextBuffer
    -- ^ /@contentBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' to deserialize into
    -> Gtk.TextIter.TextIter
    -- ^ /@iter@/: insertion point for the deserialized text
    -> ByteString
    -- ^ /@data@/: data to deserialize
    -> Bool
    -- ^ /@createTags@/: 'P.True' if deserializing may create tags
    -> IO ()
    -- ^ __Returns:__ 'P.True' on success, 'P.False' otherwise /(Can throw 'Data.GI.Base.GError.GError')/

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextBufferDeserializeFunc`@.
noTextBufferDeserializeFunc :: Maybe TextBufferDeserializeFunc
noTextBufferDeserializeFunc :: Maybe TextBufferDeserializeFunc
noTextBufferDeserializeFunc = Maybe TextBufferDeserializeFunc
forall a. Maybe a
Nothing

-- | A function that is called to deserialize rich text that has been
-- serialized with 'GI.Gtk.Objects.TextBuffer.textBufferSerialize', and insert it at /@iter@/.
type TextBufferDeserializeFunc_WithClosures =
    Gtk.TextBuffer.TextBuffer
    -- ^ /@registerBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' the format is registered with
    -> Gtk.TextBuffer.TextBuffer
    -- ^ /@contentBuffer@/: the t'GI.Gtk.Objects.TextBuffer.TextBuffer' to deserialize into
    -> Gtk.TextIter.TextIter
    -- ^ /@iter@/: insertion point for the deserialized text
    -> ByteString
    -- ^ /@data@/: data to deserialize
    -> Bool
    -- ^ /@createTags@/: 'P.True' if deserializing may create tags
    -> Ptr ()
    -- ^ /@userData@/: user data that was specified when registering the format
    -> IO ()
    -- ^ __Returns:__ 'P.True' on success, 'P.False' otherwise /(Can throw 'Data.GI.Base.GError.GError')/

-- | A convenience synonym for @`Nothing` :: `Maybe` `TextBufferDeserializeFunc_WithClosures`@.
noTextBufferDeserializeFunc_WithClosures :: Maybe TextBufferDeserializeFunc_WithClosures
noTextBufferDeserializeFunc_WithClosures :: Maybe TextBufferDeserializeFunc_WithClosures
noTextBufferDeserializeFunc_WithClosures = Maybe TextBufferDeserializeFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_TextBufferDeserializeFunc :: TextBufferDeserializeFunc -> TextBufferDeserializeFunc_WithClosures
drop_closures_TextBufferDeserializeFunc :: TextBufferDeserializeFunc -> TextBufferDeserializeFunc_WithClosures
drop_closures_TextBufferDeserializeFunc _f :: TextBufferDeserializeFunc
_f registerBuffer :: TextBuffer
registerBuffer contentBuffer :: TextBuffer
contentBuffer iter :: TextIter
iter data_ :: ByteString
data_ createTags :: Bool
createTags _ = TextBufferDeserializeFunc
_f TextBuffer
registerBuffer TextBuffer
contentBuffer TextIter
iter ByteString
data_ Bool
createTags

-- No Haskell->C wrapper generated since the function throws.

-- callback StylePropertyParser
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = True, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_StylePropertyParser =
    CString ->
    Ptr GValue ->
    Ptr (Ptr GError) ->
    IO CInt

-- Args: [ Arg
--           { argCName = "string"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "value"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Value" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_StylePropertyParser :: FunPtr C_StylePropertyParser -> C_StylePropertyParser

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_StylePropertyParser ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_StylePropertyParser
    -> T.Text
    -> GValue
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dynamic_StylePropertyParser :: FunPtr C_StylePropertyParser -> Text -> GValue -> m ()
dynamic_StylePropertyParser __funPtr :: FunPtr C_StylePropertyParser
__funPtr string :: Text
string value :: GValue
value = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    CString
string' <- Text -> IO CString
textToCString Text
string
    Ptr GValue
value' <- GValue -> IO (Ptr GValue)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GValue
value
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ (FunPtr C_StylePropertyParser -> C_StylePropertyParser
__dynamic_C_StylePropertyParser FunPtr C_StylePropertyParser
__funPtr) CString
string' Ptr GValue
value'
        GValue -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GValue
value
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
string'
        () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
string'
     )

-- | Generate a function pointer callable from C code, from a `C_StylePropertyParser`.
foreign import ccall "wrapper"
    mk_StylePropertyParser :: C_StylePropertyParser -> IO (FunPtr C_StylePropertyParser)

-- | /No description available in the introspection data./
type StylePropertyParser =
    T.Text
    -> GValue
    -> IO ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/

-- | A convenience synonym for @`Nothing` :: `Maybe` `StylePropertyParser`@.
noStylePropertyParser :: Maybe StylePropertyParser
noStylePropertyParser :: Maybe StylePropertyParser
noStylePropertyParser = Maybe StylePropertyParser
forall a. Maybe a
Nothing

-- No Haskell->C wrapper generated since the function throws.

-- callback RecentSortFunc
--          -> Callable {returnType = Just (TBasicType TInt), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "a", argType = TInterface (Name {namespace = "Gtk", name = "RecentInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "Gtk", name = "RecentInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_RecentSortFunc =
    Ptr Gtk.RecentInfo.RecentInfo ->
    Ptr Gtk.RecentInfo.RecentInfo ->
    Ptr () ->
    IO Int32

-- Args: [ Arg
--           { argCName = "a"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "RecentInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "b"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "RecentInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_RecentSortFunc :: FunPtr C_RecentSortFunc -> C_RecentSortFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_RecentSortFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_RecentSortFunc
    -> Gtk.RecentInfo.RecentInfo
    -> Gtk.RecentInfo.RecentInfo
    -> Ptr ()
    -> m Int32
dynamic_RecentSortFunc :: FunPtr C_RecentSortFunc
-> RecentInfo -> RecentInfo -> Ptr () -> m Int32
dynamic_RecentSortFunc __funPtr :: FunPtr C_RecentSortFunc
__funPtr a :: RecentInfo
a b :: RecentInfo
b userData :: Ptr ()
userData = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr RecentInfo
a' <- RecentInfo -> IO (Ptr RecentInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr RecentInfo
a
    Ptr RecentInfo
b' <- RecentInfo -> IO (Ptr RecentInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr RecentInfo
b
    Int32
result <- (FunPtr C_RecentSortFunc -> C_RecentSortFunc
__dynamic_C_RecentSortFunc FunPtr C_RecentSortFunc
__funPtr) Ptr RecentInfo
a' Ptr RecentInfo
b' Ptr ()
userData
    RecentInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr RecentInfo
a
    RecentInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr RecentInfo
b
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

-- | Generate a function pointer callable from C code, from a `C_RecentSortFunc`.
foreign import ccall "wrapper"
    mk_RecentSortFunc :: C_RecentSortFunc -> IO (FunPtr C_RecentSortFunc)

-- | /No description available in the introspection data./
type RecentSortFunc =
    Gtk.RecentInfo.RecentInfo
    -> Gtk.RecentInfo.RecentInfo
    -> IO Int32

-- | A convenience synonym for @`Nothing` :: `Maybe` `RecentSortFunc`@.
noRecentSortFunc :: Maybe RecentSortFunc
noRecentSortFunc :: Maybe RecentSortFunc
noRecentSortFunc = Maybe RecentSortFunc
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type RecentSortFunc_WithClosures =
    Gtk.RecentInfo.RecentInfo
    -> Gtk.RecentInfo.RecentInfo
    -> Ptr ()
    -> IO Int32

-- | A convenience synonym for @`Nothing` :: `Maybe` `RecentSortFunc_WithClosures`@.
noRecentSortFunc_WithClosures :: Maybe RecentSortFunc_WithClosures
noRecentSortFunc_WithClosures :: Maybe RecentSortFunc_WithClosures
noRecentSortFunc_WithClosures = Maybe RecentSortFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_RecentSortFunc :: RecentSortFunc -> RecentSortFunc_WithClosures
drop_closures_RecentSortFunc :: RecentSortFunc -> RecentSortFunc_WithClosures
drop_closures_RecentSortFunc _f :: RecentSortFunc
_f a :: RecentInfo
a b :: RecentInfo
b _ = RecentSortFunc
_f RecentInfo
a RecentInfo
b

-- | Wrap the callback into a `GClosure`.
genClosure_RecentSortFunc :: MonadIO m => RecentSortFunc -> m (GClosure C_RecentSortFunc)
genClosure_RecentSortFunc :: RecentSortFunc -> m (GClosure C_RecentSortFunc)
genClosure_RecentSortFunc cb :: RecentSortFunc
cb = IO (GClosure C_RecentSortFunc) -> m (GClosure C_RecentSortFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_RecentSortFunc) -> m (GClosure C_RecentSortFunc))
-> IO (GClosure C_RecentSortFunc) -> m (GClosure C_RecentSortFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: RecentSortFunc_WithClosures
cb' = RecentSortFunc -> RecentSortFunc_WithClosures
drop_closures_RecentSortFunc RecentSortFunc
cb
    let cb'' :: C_RecentSortFunc
cb'' = Maybe (Ptr (FunPtr C_RecentSortFunc))
-> RecentSortFunc_WithClosures -> C_RecentSortFunc
wrap_RecentSortFunc Maybe (Ptr (FunPtr C_RecentSortFunc))
forall a. Maybe a
Nothing RecentSortFunc_WithClosures
cb'
    C_RecentSortFunc -> IO (FunPtr C_RecentSortFunc)
mk_RecentSortFunc C_RecentSortFunc
cb'' IO (FunPtr C_RecentSortFunc)
-> (FunPtr C_RecentSortFunc -> IO (GClosure C_RecentSortFunc))
-> IO (GClosure C_RecentSortFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_RecentSortFunc -> IO (GClosure C_RecentSortFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `RecentSortFunc` into a `C_RecentSortFunc`.
wrap_RecentSortFunc ::
    Maybe (Ptr (FunPtr C_RecentSortFunc)) ->
    RecentSortFunc_WithClosures ->
    C_RecentSortFunc
wrap_RecentSortFunc :: Maybe (Ptr (FunPtr C_RecentSortFunc))
-> RecentSortFunc_WithClosures -> C_RecentSortFunc
wrap_RecentSortFunc funptrptr :: Maybe (Ptr (FunPtr C_RecentSortFunc))
funptrptr _cb :: RecentSortFunc_WithClosures
_cb a :: Ptr RecentInfo
a b :: Ptr RecentInfo
b userData :: Ptr ()
userData = do
    (ManagedPtr RecentInfo -> RecentInfo)
-> Ptr RecentInfo -> (RecentInfo -> IO Int32) -> IO Int32
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr RecentInfo -> RecentInfo
Gtk.RecentInfo.RecentInfo Ptr RecentInfo
a ((RecentInfo -> IO Int32) -> IO Int32)
-> (RecentInfo -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \a' :: RecentInfo
a' -> do
        (ManagedPtr RecentInfo -> RecentInfo)
-> Ptr RecentInfo -> (RecentInfo -> IO Int32) -> IO Int32
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr RecentInfo -> RecentInfo
Gtk.RecentInfo.RecentInfo Ptr RecentInfo
b ((RecentInfo -> IO Int32) -> IO Int32)
-> (RecentInfo -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \b' :: RecentInfo
b' -> do
            Int32
result <- RecentSortFunc_WithClosures
_cb  RecentInfo
a' RecentInfo
b' Ptr ()
userData
            Maybe (Ptr (FunPtr C_RecentSortFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_RecentSortFunc))
funptrptr
            Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result


-- callback RecentFilterFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the file should be displayed", sinceVersion = Nothing}, args = [Arg {argCName = "filter_info", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilterInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilterInfo that is filled according\n to the @needed flags passed to gtk_recent_filter_add_custom()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data passed to gtk_recent_filter_add_custom()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of function that is used with custom filters,\nsee gtk_recent_filter_add_custom().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_RecentFilterFunc =
    Ptr Gtk.RecentFilterInfo.RecentFilterInfo ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "filter_info"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "RecentFilterInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkRecentFilterInfo that is filled according\n to the @needed flags passed to gtk_recent_filter_add_custom()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data passed to gtk_recent_filter_add_custom()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_RecentFilterFunc :: FunPtr C_RecentFilterFunc -> C_RecentFilterFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_RecentFilterFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_RecentFilterFunc
    -> Gtk.RecentFilterInfo.RecentFilterInfo
    -- ^ /@filterInfo@/: a t'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo' that is filled according
    --  to the /@needed@/ flags passed to 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'
    -> Ptr ()
    -- ^ /@userData@/: user data passed to 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the file should be displayed
dynamic_RecentFilterFunc :: FunPtr C_RecentFilterFunc -> RecentFilterInfo -> Ptr () -> m Bool
dynamic_RecentFilterFunc __funPtr :: FunPtr C_RecentFilterFunc
__funPtr filterInfo :: RecentFilterInfo
filterInfo userData :: Ptr ()
userData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr RecentFilterInfo
filterInfo' <- RecentFilterInfo -> IO (Ptr RecentFilterInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr RecentFilterInfo
filterInfo
    CInt
result <- (FunPtr C_RecentFilterFunc -> C_RecentFilterFunc
__dynamic_C_RecentFilterFunc FunPtr C_RecentFilterFunc
__funPtr) Ptr RecentFilterInfo
filterInfo' Ptr ()
userData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    RecentFilterInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr RecentFilterInfo
filterInfo
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_RecentFilterFunc`.
foreign import ccall "wrapper"
    mk_RecentFilterFunc :: C_RecentFilterFunc -> IO (FunPtr C_RecentFilterFunc)

-- | The type of function that is used with custom filters,
-- see 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'.
type RecentFilterFunc =
    Gtk.RecentFilterInfo.RecentFilterInfo
    -- ^ /@filterInfo@/: a t'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo' that is filled according
    --  to the /@needed@/ flags passed to 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the file should be displayed

-- | A convenience synonym for @`Nothing` :: `Maybe` `RecentFilterFunc`@.
noRecentFilterFunc :: Maybe RecentFilterFunc
noRecentFilterFunc :: Maybe RecentFilterFunc
noRecentFilterFunc = Maybe RecentFilterFunc
forall a. Maybe a
Nothing

-- | The type of function that is used with custom filters,
-- see 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'.
type RecentFilterFunc_WithClosures =
    Gtk.RecentFilterInfo.RecentFilterInfo
    -- ^ /@filterInfo@/: a t'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo' that is filled according
    --  to the /@needed@/ flags passed to 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'
    -> Ptr ()
    -- ^ /@userData@/: user data passed to 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the file should be displayed

-- | A convenience synonym for @`Nothing` :: `Maybe` `RecentFilterFunc_WithClosures`@.
noRecentFilterFunc_WithClosures :: Maybe RecentFilterFunc_WithClosures
noRecentFilterFunc_WithClosures :: Maybe RecentFilterFunc_WithClosures
noRecentFilterFunc_WithClosures = Maybe RecentFilterFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_RecentFilterFunc :: RecentFilterFunc -> RecentFilterFunc_WithClosures
drop_closures_RecentFilterFunc :: RecentFilterFunc -> RecentFilterFunc_WithClosures
drop_closures_RecentFilterFunc _f :: RecentFilterFunc
_f filterInfo :: RecentFilterInfo
filterInfo _ = RecentFilterFunc
_f RecentFilterInfo
filterInfo

-- | Wrap the callback into a `GClosure`.
genClosure_RecentFilterFunc :: MonadIO m => RecentFilterFunc -> m (GClosure C_RecentFilterFunc)
genClosure_RecentFilterFunc :: RecentFilterFunc -> m (GClosure C_RecentFilterFunc)
genClosure_RecentFilterFunc cb :: RecentFilterFunc
cb = IO (GClosure C_RecentFilterFunc) -> m (GClosure C_RecentFilterFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_RecentFilterFunc)
 -> m (GClosure C_RecentFilterFunc))
-> IO (GClosure C_RecentFilterFunc)
-> m (GClosure C_RecentFilterFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: RecentFilterFunc_WithClosures
cb' = RecentFilterFunc -> RecentFilterFunc_WithClosures
drop_closures_RecentFilterFunc RecentFilterFunc
cb
    let cb'' :: C_RecentFilterFunc
cb'' = Maybe (Ptr (FunPtr C_RecentFilterFunc))
-> RecentFilterFunc_WithClosures -> C_RecentFilterFunc
wrap_RecentFilterFunc Maybe (Ptr (FunPtr C_RecentFilterFunc))
forall a. Maybe a
Nothing RecentFilterFunc_WithClosures
cb'
    C_RecentFilterFunc -> IO (FunPtr C_RecentFilterFunc)
mk_RecentFilterFunc C_RecentFilterFunc
cb'' IO (FunPtr C_RecentFilterFunc)
-> (FunPtr C_RecentFilterFunc -> IO (GClosure C_RecentFilterFunc))
-> IO (GClosure C_RecentFilterFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_RecentFilterFunc -> IO (GClosure C_RecentFilterFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `RecentFilterFunc` into a `C_RecentFilterFunc`.
wrap_RecentFilterFunc ::
    Maybe (Ptr (FunPtr C_RecentFilterFunc)) ->
    RecentFilterFunc_WithClosures ->
    C_RecentFilterFunc
wrap_RecentFilterFunc :: Maybe (Ptr (FunPtr C_RecentFilterFunc))
-> RecentFilterFunc_WithClosures -> C_RecentFilterFunc
wrap_RecentFilterFunc funptrptr :: Maybe (Ptr (FunPtr C_RecentFilterFunc))
funptrptr _cb :: RecentFilterFunc_WithClosures
_cb filterInfo :: Ptr RecentFilterInfo
filterInfo userData :: Ptr ()
userData = do
    RecentFilterInfo
filterInfo' <- ((ManagedPtr RecentFilterInfo -> RecentFilterInfo)
-> Ptr RecentFilterInfo -> IO RecentFilterInfo
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr RecentFilterInfo -> RecentFilterInfo
Gtk.RecentFilterInfo.RecentFilterInfo) Ptr RecentFilterInfo
filterInfo
    Bool
result <- RecentFilterFunc_WithClosures
_cb  RecentFilterInfo
filterInfo' Ptr ()
userData
    Maybe (Ptr (FunPtr C_RecentFilterFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_RecentFilterFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback RcPropertyParser
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rc_string", argType = TInterface (Name {namespace = "GLib", name = "String"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_RcPropertyParser =
    Ptr GParamSpec ->
    Ptr GLib.String.String ->
    Ptr GValue ->
    IO CInt

-- Args: [ Arg
--           { argCName = "pspec"
--           , argType = TParamSpec
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "rc_string"
--           , argType =
--               TInterface Name { namespace = "GLib" , name = "String" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "property_value"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Value" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_RcPropertyParser :: FunPtr C_RcPropertyParser -> C_RcPropertyParser

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_RcPropertyParser ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_RcPropertyParser
    -> GParamSpec
    -> GLib.String.String
    -> GValue
    -> m Bool
dynamic_RcPropertyParser :: FunPtr C_RcPropertyParser
-> GParamSpec -> String -> GValue -> m Bool
dynamic_RcPropertyParser __funPtr :: FunPtr C_RcPropertyParser
__funPtr pspec :: GParamSpec
pspec rcString :: String
rcString propertyValue :: GValue
propertyValue = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr GParamSpec
pspec' <- GParamSpec -> IO (Ptr GParamSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GParamSpec
pspec
    Ptr String
rcString' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
rcString
    Ptr GValue
propertyValue' <- GValue -> IO (Ptr GValue)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GValue
propertyValue
    CInt
result <- (FunPtr C_RcPropertyParser -> C_RcPropertyParser
__dynamic_C_RcPropertyParser FunPtr C_RcPropertyParser
__funPtr) Ptr GParamSpec
pspec' Ptr String
rcString' Ptr GValue
propertyValue'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    GParamSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GParamSpec
pspec
    String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
rcString
    GValue -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GValue
propertyValue
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_RcPropertyParser`.
foreign import ccall "wrapper"
    mk_RcPropertyParser :: C_RcPropertyParser -> IO (FunPtr C_RcPropertyParser)

-- | /No description available in the introspection data./
type RcPropertyParser =
    GParamSpec
    -> GLib.String.String
    -> GValue
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `RcPropertyParser`@.
noRcPropertyParser :: Maybe RcPropertyParser
noRcPropertyParser :: Maybe RcPropertyParser
noRcPropertyParser = Maybe RcPropertyParser
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_RcPropertyParser :: MonadIO m => RcPropertyParser -> m (GClosure C_RcPropertyParser)
genClosure_RcPropertyParser :: RcPropertyParser -> m (GClosure C_RcPropertyParser)
genClosure_RcPropertyParser cb :: RcPropertyParser
cb = IO (GClosure C_RcPropertyParser) -> m (GClosure C_RcPropertyParser)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_RcPropertyParser)
 -> m (GClosure C_RcPropertyParser))
-> IO (GClosure C_RcPropertyParser)
-> m (GClosure C_RcPropertyParser)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_RcPropertyParser
cb' = Maybe (Ptr (FunPtr C_RcPropertyParser))
-> RcPropertyParser -> C_RcPropertyParser
wrap_RcPropertyParser Maybe (Ptr (FunPtr C_RcPropertyParser))
forall a. Maybe a
Nothing RcPropertyParser
cb
    C_RcPropertyParser -> IO (FunPtr C_RcPropertyParser)
mk_RcPropertyParser C_RcPropertyParser
cb' IO (FunPtr C_RcPropertyParser)
-> (FunPtr C_RcPropertyParser -> IO (GClosure C_RcPropertyParser))
-> IO (GClosure C_RcPropertyParser)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_RcPropertyParser -> IO (GClosure C_RcPropertyParser)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `RcPropertyParser` into a `C_RcPropertyParser`.
wrap_RcPropertyParser ::
    Maybe (Ptr (FunPtr C_RcPropertyParser)) ->
    RcPropertyParser ->
    C_RcPropertyParser
wrap_RcPropertyParser :: Maybe (Ptr (FunPtr C_RcPropertyParser))
-> RcPropertyParser -> C_RcPropertyParser
wrap_RcPropertyParser funptrptr :: Maybe (Ptr (FunPtr C_RcPropertyParser))
funptrptr _cb :: RcPropertyParser
_cb pspec :: Ptr GParamSpec
pspec rcString :: Ptr String
rcString propertyValue :: Ptr GValue
propertyValue = do
    GParamSpec
pspec' <- Ptr GParamSpec -> IO GParamSpec
B.GParamSpec.newGParamSpecFromPtr Ptr GParamSpec
pspec
    (ManagedPtr String -> String)
-> Ptr String -> (String -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr String -> String
GLib.String.String Ptr String
rcString ((String -> IO CInt) -> IO CInt) -> (String -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \rcString' :: String
rcString' -> do
        (ManagedPtr GValue -> GValue)
-> Ptr GValue -> (GValue -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr GValue -> GValue
GValue Ptr GValue
propertyValue ((GValue -> IO CInt) -> IO CInt) -> (GValue -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \propertyValue' :: GValue
propertyValue' -> do
            Bool
result <- RcPropertyParser
_cb  GParamSpec
pspec' String
rcString' GValue
propertyValue'
            Maybe (Ptr (FunPtr C_RcPropertyParser)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_RcPropertyParser))
funptrptr
            let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
            CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback PrintSettingsFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_PrintSettingsFunc =
    CString ->
    CString ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "key"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "value"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_PrintSettingsFunc :: FunPtr C_PrintSettingsFunc -> C_PrintSettingsFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_PrintSettingsFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_PrintSettingsFunc
    -> T.Text
    -> T.Text
    -> Ptr ()
    -> m ()
dynamic_PrintSettingsFunc :: FunPtr C_PrintSettingsFunc -> Text -> Text -> Ptr () -> m ()
dynamic_PrintSettingsFunc __funPtr :: FunPtr C_PrintSettingsFunc
__funPtr key :: Text
key value :: Text
value userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    CString
key' <- Text -> IO CString
textToCString Text
key
    CString
value' <- Text -> IO CString
textToCString Text
value
    (FunPtr C_PrintSettingsFunc -> C_PrintSettingsFunc
__dynamic_C_PrintSettingsFunc FunPtr C_PrintSettingsFunc
__funPtr) CString
key' CString
value' Ptr ()
userData
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
key'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_PrintSettingsFunc`.
foreign import ccall "wrapper"
    mk_PrintSettingsFunc :: C_PrintSettingsFunc -> IO (FunPtr C_PrintSettingsFunc)

-- | /No description available in the introspection data./
type PrintSettingsFunc =
    T.Text
    -> T.Text
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `PrintSettingsFunc`@.
noPrintSettingsFunc :: Maybe PrintSettingsFunc
noPrintSettingsFunc :: Maybe PrintSettingsFunc
noPrintSettingsFunc = Maybe PrintSettingsFunc
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type PrintSettingsFunc_WithClosures =
    T.Text
    -> T.Text
    -> Ptr ()
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `PrintSettingsFunc_WithClosures`@.
noPrintSettingsFunc_WithClosures :: Maybe PrintSettingsFunc_WithClosures
noPrintSettingsFunc_WithClosures :: Maybe PrintSettingsFunc_WithClosures
noPrintSettingsFunc_WithClosures = Maybe PrintSettingsFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PrintSettingsFunc :: PrintSettingsFunc -> PrintSettingsFunc_WithClosures
drop_closures_PrintSettingsFunc :: PrintSettingsFunc -> PrintSettingsFunc_WithClosures
drop_closures_PrintSettingsFunc _f :: PrintSettingsFunc
_f key :: Text
key value :: Text
value _ = PrintSettingsFunc
_f Text
key Text
value

-- | Wrap the callback into a `GClosure`.
genClosure_PrintSettingsFunc :: MonadIO m => PrintSettingsFunc -> m (GClosure C_PrintSettingsFunc)
genClosure_PrintSettingsFunc :: PrintSettingsFunc -> m (GClosure C_PrintSettingsFunc)
genClosure_PrintSettingsFunc cb :: PrintSettingsFunc
cb = IO (GClosure C_PrintSettingsFunc)
-> m (GClosure C_PrintSettingsFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_PrintSettingsFunc)
 -> m (GClosure C_PrintSettingsFunc))
-> IO (GClosure C_PrintSettingsFunc)
-> m (GClosure C_PrintSettingsFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: PrintSettingsFunc_WithClosures
cb' = PrintSettingsFunc -> PrintSettingsFunc_WithClosures
drop_closures_PrintSettingsFunc PrintSettingsFunc
cb
    let cb'' :: C_PrintSettingsFunc
cb'' = Maybe (Ptr (FunPtr C_PrintSettingsFunc))
-> PrintSettingsFunc_WithClosures -> C_PrintSettingsFunc
wrap_PrintSettingsFunc Maybe (Ptr (FunPtr C_PrintSettingsFunc))
forall a. Maybe a
Nothing PrintSettingsFunc_WithClosures
cb'
    C_PrintSettingsFunc -> IO (FunPtr C_PrintSettingsFunc)
mk_PrintSettingsFunc C_PrintSettingsFunc
cb'' IO (FunPtr C_PrintSettingsFunc)
-> (FunPtr C_PrintSettingsFunc
    -> IO (GClosure C_PrintSettingsFunc))
-> IO (GClosure C_PrintSettingsFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_PrintSettingsFunc -> IO (GClosure C_PrintSettingsFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `PrintSettingsFunc` into a `C_PrintSettingsFunc`.
wrap_PrintSettingsFunc ::
    Maybe (Ptr (FunPtr C_PrintSettingsFunc)) ->
    PrintSettingsFunc_WithClosures ->
    C_PrintSettingsFunc
wrap_PrintSettingsFunc :: Maybe (Ptr (FunPtr C_PrintSettingsFunc))
-> PrintSettingsFunc_WithClosures -> C_PrintSettingsFunc
wrap_PrintSettingsFunc funptrptr :: Maybe (Ptr (FunPtr C_PrintSettingsFunc))
funptrptr _cb :: PrintSettingsFunc_WithClosures
_cb key :: CString
key value :: CString
value userData :: Ptr ()
userData = do
    Text
key' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
key
    Text
value' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
value
    PrintSettingsFunc_WithClosures
_cb  Text
key' Text
value' Ptr ()
userData
    Maybe (Ptr (FunPtr C_PrintSettingsFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_PrintSettingsFunc))
funptrptr


-- callback PageSetupDoneFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "page_setup", argType = TInterface (Name {namespace = "Gtk", name = "PageSetup"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkPageSetup that has been", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data that has been passed to\n    gtk_print_run_page_setup_dialog_async()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of function that is passed to\ngtk_print_run_page_setup_dialog_async().\n\nThis function will be called when the page setup dialog\nis dismissed, and also serves as destroy notify for @data.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_PageSetupDoneFunc =
    Ptr Gtk.PageSetup.PageSetup ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "page_setup"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "PageSetup" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkPageSetup that has been"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "user data that has been passed to\n    gtk_print_run_page_setup_dialog_async()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_PageSetupDoneFunc :: FunPtr C_PageSetupDoneFunc -> C_PageSetupDoneFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_PageSetupDoneFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.PageSetup.IsPageSetup a) =>
    FunPtr C_PageSetupDoneFunc
    -> a
    -- ^ /@pageSetup@/: the t'GI.Gtk.Objects.PageSetup.PageSetup' that has been
    -> Ptr ()
    -- ^ /@data@/: user data that has been passed to
    --     'GI.Gtk.Functions.printRunPageSetupDialogAsync'
    -> m ()
dynamic_PageSetupDoneFunc :: FunPtr C_PageSetupDoneFunc -> a -> Ptr () -> m ()
dynamic_PageSetupDoneFunc __funPtr :: FunPtr C_PageSetupDoneFunc
__funPtr pageSetup :: a
pageSetup data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr PageSetup
pageSetup' <- a -> IO (Ptr PageSetup)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
pageSetup
    (FunPtr C_PageSetupDoneFunc -> C_PageSetupDoneFunc
__dynamic_C_PageSetupDoneFunc FunPtr C_PageSetupDoneFunc
__funPtr) Ptr PageSetup
pageSetup' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
pageSetup
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_PageSetupDoneFunc`.
foreign import ccall "wrapper"
    mk_PageSetupDoneFunc :: C_PageSetupDoneFunc -> IO (FunPtr C_PageSetupDoneFunc)

-- | The type of function that is passed to
-- 'GI.Gtk.Functions.printRunPageSetupDialogAsync'.
-- 
-- This function will be called when the page setup dialog
-- is dismissed, and also serves as destroy notify for /@data@/.
type PageSetupDoneFunc =
    Gtk.PageSetup.PageSetup
    -- ^ /@pageSetup@/: the t'GI.Gtk.Objects.PageSetup.PageSetup' that has been
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `PageSetupDoneFunc`@.
noPageSetupDoneFunc :: Maybe PageSetupDoneFunc
noPageSetupDoneFunc :: Maybe PageSetupDoneFunc
noPageSetupDoneFunc = Maybe PageSetupDoneFunc
forall a. Maybe a
Nothing

-- | The type of function that is passed to
-- 'GI.Gtk.Functions.printRunPageSetupDialogAsync'.
-- 
-- This function will be called when the page setup dialog
-- is dismissed, and also serves as destroy notify for /@data@/.
type PageSetupDoneFunc_WithClosures =
    Gtk.PageSetup.PageSetup
    -- ^ /@pageSetup@/: the t'GI.Gtk.Objects.PageSetup.PageSetup' that has been
    -> Ptr ()
    -- ^ /@data@/: user data that has been passed to
    --     'GI.Gtk.Functions.printRunPageSetupDialogAsync'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `PageSetupDoneFunc_WithClosures`@.
noPageSetupDoneFunc_WithClosures :: Maybe PageSetupDoneFunc_WithClosures
noPageSetupDoneFunc_WithClosures :: Maybe PageSetupDoneFunc_WithClosures
noPageSetupDoneFunc_WithClosures = Maybe PageSetupDoneFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_PageSetupDoneFunc :: PageSetupDoneFunc -> PageSetupDoneFunc_WithClosures
drop_closures_PageSetupDoneFunc :: PageSetupDoneFunc -> PageSetupDoneFunc_WithClosures
drop_closures_PageSetupDoneFunc _f :: PageSetupDoneFunc
_f pageSetup :: PageSetup
pageSetup _ = PageSetupDoneFunc
_f PageSetup
pageSetup

-- | Wrap the callback into a `GClosure`.
genClosure_PageSetupDoneFunc :: MonadIO m => PageSetupDoneFunc -> m (GClosure C_PageSetupDoneFunc)
genClosure_PageSetupDoneFunc :: PageSetupDoneFunc -> m (GClosure C_PageSetupDoneFunc)
genClosure_PageSetupDoneFunc cb :: PageSetupDoneFunc
cb = IO (GClosure C_PageSetupDoneFunc)
-> m (GClosure C_PageSetupDoneFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_PageSetupDoneFunc)
 -> m (GClosure C_PageSetupDoneFunc))
-> IO (GClosure C_PageSetupDoneFunc)
-> m (GClosure C_PageSetupDoneFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: PageSetupDoneFunc_WithClosures
cb' = PageSetupDoneFunc -> PageSetupDoneFunc_WithClosures
drop_closures_PageSetupDoneFunc PageSetupDoneFunc
cb
    let cb'' :: C_PageSetupDoneFunc
cb'' = Maybe (Ptr (FunPtr C_PageSetupDoneFunc))
-> PageSetupDoneFunc_WithClosures -> C_PageSetupDoneFunc
wrap_PageSetupDoneFunc Maybe (Ptr (FunPtr C_PageSetupDoneFunc))
forall a. Maybe a
Nothing PageSetupDoneFunc_WithClosures
cb'
    C_PageSetupDoneFunc -> IO (FunPtr C_PageSetupDoneFunc)
mk_PageSetupDoneFunc C_PageSetupDoneFunc
cb'' IO (FunPtr C_PageSetupDoneFunc)
-> (FunPtr C_PageSetupDoneFunc
    -> IO (GClosure C_PageSetupDoneFunc))
-> IO (GClosure C_PageSetupDoneFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_PageSetupDoneFunc -> IO (GClosure C_PageSetupDoneFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `PageSetupDoneFunc` into a `C_PageSetupDoneFunc`.
wrap_PageSetupDoneFunc ::
    Maybe (Ptr (FunPtr C_PageSetupDoneFunc)) ->
    PageSetupDoneFunc_WithClosures ->
    C_PageSetupDoneFunc
wrap_PageSetupDoneFunc :: Maybe (Ptr (FunPtr C_PageSetupDoneFunc))
-> PageSetupDoneFunc_WithClosures -> C_PageSetupDoneFunc
wrap_PageSetupDoneFunc funptrptr :: Maybe (Ptr (FunPtr C_PageSetupDoneFunc))
funptrptr _cb :: PageSetupDoneFunc_WithClosures
_cb pageSetup :: Ptr PageSetup
pageSetup data_ :: Ptr ()
data_ = do
    PageSetup
pageSetup' <- ((ManagedPtr PageSetup -> PageSetup)
-> Ptr PageSetup -> IO PageSetup
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr PageSetup -> PageSetup
Gtk.PageSetup.PageSetup) Ptr PageSetup
pageSetup
    PageSetupDoneFunc_WithClosures
_cb  PageSetup
pageSetup' Ptr ()
data_
    Maybe (Ptr (FunPtr C_PageSetupDoneFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_PageSetupDoneFunc))
funptrptr


-- callback ModuleInitFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "argc", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GTK+ always passes %NULL for this argument", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GTK+ always passes %NULL for this argument", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Each GTK+ module must have a function gtk_module_init() with this prototype.\nThis function is called after loading the module.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ModuleInitFunc =
    Int32 ->
    Ptr CString ->
    IO ()

-- Args: [ Arg
--           { argCName = "argc"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "GTK+ always passes %NULL for this argument"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "argv"
--           , argType = TCArray False (-1) 0 (TBasicType TUTF8)
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "GTK+ always passes %NULL for this argument"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: [ Arg
--              { argCName = "argc"
--              , argType = TBasicType TInt
--              , direction = DirectionIn
--              , mayBeNull = True
--              , argDoc =
--                  Documentation
--                    { rawDocText = Just "GTK+ always passes %NULL for this argument"
--                    , sinceVersion = Nothing
--                    }
--              , argScope = ScopeTypeInvalid
--              , argClosure = -1
--              , argDestroy = -1
--              , argCallerAllocates = False
--              , transfer = TransferNothing
--              }
--          ]
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ModuleInitFunc :: FunPtr C_ModuleInitFunc -> C_ModuleInitFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ModuleInitFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_ModuleInitFunc
    -> Maybe ([T.Text])
    -- ^ /@argv@/: GTK+ always passes 'P.Nothing' for this argument
    -> m ()
dynamic_ModuleInitFunc :: FunPtr C_ModuleInitFunc -> Maybe [Text] -> m ()
dynamic_ModuleInitFunc __funPtr :: FunPtr C_ModuleInitFunc
__funPtr argv :: Maybe [Text]
argv = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    let argc :: Int32
argc = case Maybe [Text]
argv of
            Nothing -> 0
            Just jArgv :: [Text]
jArgv -> Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ [Text] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [Text]
jArgv
    Ptr CString
maybeArgv <- case Maybe [Text]
argv of
        Nothing -> Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
forall a. Ptr a
nullPtr
        Just jArgv :: [Text]
jArgv -> do
            Ptr CString
jArgv' <- [Text] -> IO (Ptr CString)
packUTF8CArray [Text]
jArgv
            Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
jArgv'
    (FunPtr C_ModuleInitFunc -> C_ModuleInitFunc
__dynamic_C_ModuleInitFunc FunPtr C_ModuleInitFunc
__funPtr) Int32
argc Ptr CString
maybeArgv
    (Int32 -> (CString -> IO ()) -> Ptr CString -> IO ()
forall a b c.
(Storable a, Integral b) =>
b -> (a -> IO c) -> Ptr a -> IO ()
mapCArrayWithLength Int32
argc) CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeArgv
    Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybeArgv
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ModuleInitFunc`.
foreign import ccall "wrapper"
    mk_ModuleInitFunc :: C_ModuleInitFunc -> IO (FunPtr C_ModuleInitFunc)

-- | Each GTK+ module must have a function @/gtk_module_init()/@ with this prototype.
-- This function is called after loading the module.
type ModuleInitFunc =
    Maybe [T.Text]
    -- ^ /@argv@/: GTK+ always passes 'P.Nothing' for this argument
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ModuleInitFunc`@.
noModuleInitFunc :: Maybe ModuleInitFunc
noModuleInitFunc :: Maybe ModuleInitFunc
noModuleInitFunc = Maybe ModuleInitFunc
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ModuleInitFunc :: MonadIO m => ModuleInitFunc -> m (GClosure C_ModuleInitFunc)
genClosure_ModuleInitFunc :: ModuleInitFunc -> m (GClosure C_ModuleInitFunc)
genClosure_ModuleInitFunc cb :: ModuleInitFunc
cb = IO (GClosure C_ModuleInitFunc) -> m (GClosure C_ModuleInitFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ModuleInitFunc) -> m (GClosure C_ModuleInitFunc))
-> IO (GClosure C_ModuleInitFunc) -> m (GClosure C_ModuleInitFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ModuleInitFunc
cb' = Maybe (Ptr (FunPtr C_ModuleInitFunc))
-> ModuleInitFunc -> C_ModuleInitFunc
wrap_ModuleInitFunc Maybe (Ptr (FunPtr C_ModuleInitFunc))
forall a. Maybe a
Nothing ModuleInitFunc
cb
    C_ModuleInitFunc -> IO (FunPtr C_ModuleInitFunc)
mk_ModuleInitFunc C_ModuleInitFunc
cb' IO (FunPtr C_ModuleInitFunc)
-> (FunPtr C_ModuleInitFunc -> IO (GClosure C_ModuleInitFunc))
-> IO (GClosure C_ModuleInitFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ModuleInitFunc -> IO (GClosure C_ModuleInitFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ModuleInitFunc` into a `C_ModuleInitFunc`.
wrap_ModuleInitFunc ::
    Maybe (Ptr (FunPtr C_ModuleInitFunc)) ->
    ModuleInitFunc ->
    C_ModuleInitFunc
wrap_ModuleInitFunc :: Maybe (Ptr (FunPtr C_ModuleInitFunc))
-> ModuleInitFunc -> C_ModuleInitFunc
wrap_ModuleInitFunc funptrptr :: Maybe (Ptr (FunPtr C_ModuleInitFunc))
funptrptr _cb :: ModuleInitFunc
_cb argc :: Int32
argc argv :: Ptr CString
argv = do
    Maybe [Text]
maybeArgv <-
        if Ptr CString
argv Ptr CString -> Ptr CString -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr CString
forall a. Ptr a
nullPtr
        then Maybe [Text] -> IO (Maybe [Text])
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe [Text]
forall a. Maybe a
Nothing
        else do
            [Text]
argv' <- (Int32 -> Ptr CString -> IO [Text]
forall a.
(HasCallStack, Integral a) =>
a -> Ptr CString -> IO [Text]
unpackUTF8CArrayWithLength Int32
argc) Ptr CString
argv
            Maybe [Text] -> IO (Maybe [Text])
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe [Text] -> IO (Maybe [Text]))
-> Maybe [Text] -> IO (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ [Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [Text]
argv'
    ModuleInitFunc
_cb  Maybe [Text]
maybeArgv
    Maybe (Ptr (FunPtr C_ModuleInitFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ModuleInitFunc))
funptrptr


-- callback ModuleDisplayInitFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "display", argType = TInterface (Name {namespace = "Gdk", name = "Display"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an open #GdkDisplay", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A multihead-aware GTK+ module may have a gtk_module_display_init() function\nwith this prototype. GTK+ calls this function for each opened display.", sinceVersion = Just "2.2"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ModuleDisplayInitFunc =
    Ptr Gdk.Display.Display ->
    IO ()

-- Args: [ Arg
--           { argCName = "display"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Display" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "an open #GdkDisplay"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ModuleDisplayInitFunc :: FunPtr C_ModuleDisplayInitFunc -> C_ModuleDisplayInitFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ModuleDisplayInitFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gdk.Display.IsDisplay a) =>
    FunPtr C_ModuleDisplayInitFunc
    -> a
    -- ^ /@display@/: an open t'GI.Gdk.Objects.Display.Display'
    -> m ()
dynamic_ModuleDisplayInitFunc :: FunPtr C_ModuleDisplayInitFunc -> a -> m ()
dynamic_ModuleDisplayInitFunc __funPtr :: FunPtr C_ModuleDisplayInitFunc
__funPtr display :: a
display = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Display
display' <- a -> IO (Ptr Display)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
display
    (FunPtr C_ModuleDisplayInitFunc -> C_ModuleDisplayInitFunc
__dynamic_C_ModuleDisplayInitFunc FunPtr C_ModuleDisplayInitFunc
__funPtr) Ptr Display
display'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
display
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ModuleDisplayInitFunc`.
foreign import ccall "wrapper"
    mk_ModuleDisplayInitFunc :: C_ModuleDisplayInitFunc -> IO (FunPtr C_ModuleDisplayInitFunc)

-- | A multihead-aware GTK+ module may have a @/gtk_module_display_init()/@ function
-- with this prototype. GTK+ calls this function for each opened display.
-- 
-- /Since: 2.2/
type ModuleDisplayInitFunc =
    Gdk.Display.Display
    -- ^ /@display@/: an open t'GI.Gdk.Objects.Display.Display'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ModuleDisplayInitFunc`@.
noModuleDisplayInitFunc :: Maybe ModuleDisplayInitFunc
noModuleDisplayInitFunc :: Maybe ModuleDisplayInitFunc
noModuleDisplayInitFunc = Maybe ModuleDisplayInitFunc
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ModuleDisplayInitFunc :: MonadIO m => ModuleDisplayInitFunc -> m (GClosure C_ModuleDisplayInitFunc)
genClosure_ModuleDisplayInitFunc :: ModuleDisplayInitFunc -> m (GClosure C_ModuleDisplayInitFunc)
genClosure_ModuleDisplayInitFunc cb :: ModuleDisplayInitFunc
cb = IO (GClosure C_ModuleDisplayInitFunc)
-> m (GClosure C_ModuleDisplayInitFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ModuleDisplayInitFunc)
 -> m (GClosure C_ModuleDisplayInitFunc))
-> IO (GClosure C_ModuleDisplayInitFunc)
-> m (GClosure C_ModuleDisplayInitFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ModuleDisplayInitFunc
cb' = Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc))
-> ModuleDisplayInitFunc -> C_ModuleDisplayInitFunc
wrap_ModuleDisplayInitFunc Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc))
forall a. Maybe a
Nothing ModuleDisplayInitFunc
cb
    C_ModuleDisplayInitFunc -> IO (FunPtr C_ModuleDisplayInitFunc)
mk_ModuleDisplayInitFunc C_ModuleDisplayInitFunc
cb' IO (FunPtr C_ModuleDisplayInitFunc)
-> (FunPtr C_ModuleDisplayInitFunc
    -> IO (GClosure C_ModuleDisplayInitFunc))
-> IO (GClosure C_ModuleDisplayInitFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ModuleDisplayInitFunc
-> IO (GClosure C_ModuleDisplayInitFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ModuleDisplayInitFunc` into a `C_ModuleDisplayInitFunc`.
wrap_ModuleDisplayInitFunc ::
    Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc)) ->
    ModuleDisplayInitFunc ->
    C_ModuleDisplayInitFunc
wrap_ModuleDisplayInitFunc :: Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc))
-> ModuleDisplayInitFunc -> C_ModuleDisplayInitFunc
wrap_ModuleDisplayInitFunc funptrptr :: Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc))
funptrptr _cb :: ModuleDisplayInitFunc
_cb display :: Ptr Display
display = do
    Display
display' <- ((ManagedPtr Display -> Display) -> Ptr Display -> IO Display
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Display -> Display
Gdk.Display.Display) Ptr Display
display
    ModuleDisplayInitFunc
_cb  Display
display'
    Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ModuleDisplayInitFunc))
funptrptr


-- callback MenuPositionFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "menu", argType = TInterface (Name {namespace = "Gtk", name = "Menu"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkMenu.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionInout, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of the #gint representing the horizontal\n    position where the menu shall be drawn.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionInout, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of the #gint representing the vertical position\n    where the menu shall be drawn.  This is an output parameter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "push_in", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "This parameter controls how menus placed outside\n    the monitor are handled.  If this is set to %TRUE and part of\n    the menu is outside the monitor then GTK+ pushes the window\n    into the visible area, effectively modifying the popup\n    position.  Note that moving and possibly resizing the menu\n    around will alter the scroll position to keep the menu items\n    \8220in place\8221, i.e. at the same monitor position they would have\n    been without resizing.  In practice, this behavior is only\n    useful for combobox popups or option menus and cannot be used\n    to simply confine a menu to monitor boundaries.  In that case,\n    changing the scroll offset is not desirable.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data supplied by the user in the gtk_menu_popup()\n    @data parameter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A user function supplied when calling gtk_menu_popup() which\ncontrols the positioning of the menu when it is displayed.  The\nfunction sets the @x and @y parameters to the coordinates where the\nmenu is to be drawn.  To make the menu appear on a different\nmonitor than the mouse pointer, gtk_menu_set_monitor() must be\ncalled.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_MenuPositionFunc =
    Ptr Gtk.Menu.Menu ->
    Ptr Int32 ->
    Ptr Int32 ->
    Ptr CInt ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "menu"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Menu" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkMenu." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionInout
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "address of the #gint representing the horizontal\n    position where the menu shall be drawn."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionInout
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "address of the #gint representing the vertical position\n    where the menu shall be drawn.  This is an output parameter."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "push_in"
--           , argType = TBasicType TBoolean
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "This parameter controls how menus placed outside\n    the monitor are handled.  If this is set to %TRUE and part of\n    the menu is outside the monitor then GTK+ pushes the window\n    into the visible area, effectively modifying the popup\n    position.  Note that moving and possibly resizing the menu\n    around will alter the scroll position to keep the menu items\n    \8220in place\8221, i.e. at the same monitor position they would have\n    been without resizing.  In practice, this behavior is only\n    useful for combobox popups or option menus and cannot be used\n    to simply confine a menu to monitor boundaries.  In that case,\n    changing the scroll offset is not desirable."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the data supplied by the user in the gtk_menu_popup()\n    @data parameter."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_MenuPositionFunc :: FunPtr C_MenuPositionFunc -> C_MenuPositionFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_MenuPositionFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Menu.IsMenu a) =>
    FunPtr C_MenuPositionFunc
    -> a
    -- ^ /@menu@/: a t'GI.Gtk.Objects.Menu.Menu'.
    -> Int32
    -- ^ /@x@/: address of the @/gint/@ representing the horizontal
    --     position where the menu shall be drawn.
    -> Int32
    -- ^ /@y@/: address of the @/gint/@ representing the vertical position
    --     where the menu shall be drawn.  This is an output parameter.
    -> Ptr ()
    -- ^ /@userData@/: the data supplied by the user in the 'GI.Gtk.Objects.Menu.menuPopup'
    --     /@data@/ parameter.
    -> m ((Int32, Int32, Bool))
dynamic_MenuPositionFunc :: FunPtr C_MenuPositionFunc
-> a -> Int32 -> Int32 -> Ptr () -> m (Int32, Int32, Bool)
dynamic_MenuPositionFunc __funPtr :: FunPtr C_MenuPositionFunc
__funPtr menu :: a
menu x :: Int32
x y :: Int32
y userData :: Ptr ()
userData = IO (Int32, Int32, Bool) -> m (Int32, Int32, Bool)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32, Bool) -> m (Int32, Int32, Bool))
-> IO (Int32, Int32, Bool) -> m (Int32, Int32, Bool)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Menu
menu' <- a -> IO (Ptr Menu)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
menu
    Ptr Int32
x' <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
x' Int32
x
    Ptr Int32
y' <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
y' Int32
y
    Ptr CInt
pushIn <- IO (Ptr CInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CInt)
    (FunPtr C_MenuPositionFunc -> C_MenuPositionFunc
__dynamic_C_MenuPositionFunc FunPtr C_MenuPositionFunc
__funPtr) Ptr Menu
menu' Ptr Int32
x' Ptr Int32
y' Ptr CInt
pushIn Ptr ()
userData
    Int32
x'' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
x'
    Int32
y'' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
y'
    CInt
pushIn' <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CInt
pushIn
    let pushIn'' :: Bool
pushIn'' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
pushIn'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
menu
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
x'
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
y'
    Ptr CInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CInt
pushIn
    (Int32, Int32, Bool) -> IO (Int32, Int32, Bool)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
x'', Int32
y'', Bool
pushIn'')

-- | Generate a function pointer callable from C code, from a `C_MenuPositionFunc`.
foreign import ccall "wrapper"
    mk_MenuPositionFunc :: C_MenuPositionFunc -> IO (FunPtr C_MenuPositionFunc)

-- | A user function supplied when calling 'GI.Gtk.Objects.Menu.menuPopup' which
-- controls the positioning of the menu when it is displayed.  The
-- function sets the /@x@/ and /@y@/ parameters to the coordinates where the
-- menu is to be drawn.  To make the menu appear on a different
-- monitor than the mouse pointer, 'GI.Gtk.Objects.Menu.menuSetMonitor' must be
-- called.
type MenuPositionFunc =
    Gtk.Menu.Menu
    -- ^ /@menu@/: a t'GI.Gtk.Objects.Menu.Menu'.
    -> Int32
    -- ^ /@x@/: address of the @/gint/@ representing the horizontal
    --     position where the menu shall be drawn.
    -> Int32
    -- ^ /@y@/: address of the @/gint/@ representing the vertical position
    --     where the menu shall be drawn.  This is an output parameter.
    -> IO ((Int32, Int32, Bool))

-- | A convenience synonym for @`Nothing` :: `Maybe` `MenuPositionFunc`@.
noMenuPositionFunc :: Maybe MenuPositionFunc
noMenuPositionFunc :: Maybe MenuPositionFunc
noMenuPositionFunc = Maybe MenuPositionFunc
forall a. Maybe a
Nothing

-- | A user function supplied when calling 'GI.Gtk.Objects.Menu.menuPopup' which
-- controls the positioning of the menu when it is displayed.  The
-- function sets the /@x@/ and /@y@/ parameters to the coordinates where the
-- menu is to be drawn.  To make the menu appear on a different
-- monitor than the mouse pointer, 'GI.Gtk.Objects.Menu.menuSetMonitor' must be
-- called.
type MenuPositionFunc_WithClosures =
    Gtk.Menu.Menu
    -- ^ /@menu@/: a t'GI.Gtk.Objects.Menu.Menu'.
    -> Int32
    -- ^ /@x@/: address of the @/gint/@ representing the horizontal
    --     position where the menu shall be drawn.
    -> Int32
    -- ^ /@y@/: address of the @/gint/@ representing the vertical position
    --     where the menu shall be drawn.  This is an output parameter.
    -> Ptr ()
    -- ^ /@userData@/: the data supplied by the user in the 'GI.Gtk.Objects.Menu.menuPopup'
    --     /@data@/ parameter.
    -> IO ((Int32, Int32, Bool))

-- | A convenience synonym for @`Nothing` :: `Maybe` `MenuPositionFunc_WithClosures`@.
noMenuPositionFunc_WithClosures :: Maybe MenuPositionFunc_WithClosures
noMenuPositionFunc_WithClosures :: Maybe MenuPositionFunc_WithClosures
noMenuPositionFunc_WithClosures = Maybe MenuPositionFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_MenuPositionFunc :: MenuPositionFunc -> MenuPositionFunc_WithClosures
drop_closures_MenuPositionFunc :: MenuPositionFunc -> MenuPositionFunc_WithClosures
drop_closures_MenuPositionFunc _f :: MenuPositionFunc
_f menu :: Menu
menu x :: Int32
x y :: Int32
y _ = MenuPositionFunc
_f Menu
menu Int32
x Int32
y

-- | Wrap the callback into a `GClosure`.
genClosure_MenuPositionFunc :: MonadIO m => MenuPositionFunc -> m (GClosure C_MenuPositionFunc)
genClosure_MenuPositionFunc :: MenuPositionFunc -> m (GClosure C_MenuPositionFunc)
genClosure_MenuPositionFunc cb :: MenuPositionFunc
cb = IO (GClosure C_MenuPositionFunc) -> m (GClosure C_MenuPositionFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_MenuPositionFunc)
 -> m (GClosure C_MenuPositionFunc))
-> IO (GClosure C_MenuPositionFunc)
-> m (GClosure C_MenuPositionFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: MenuPositionFunc_WithClosures
cb' = MenuPositionFunc -> MenuPositionFunc_WithClosures
drop_closures_MenuPositionFunc MenuPositionFunc
cb
    let cb'' :: C_MenuPositionFunc
cb'' = Maybe (Ptr (FunPtr C_MenuPositionFunc))
-> MenuPositionFunc_WithClosures -> C_MenuPositionFunc
wrap_MenuPositionFunc Maybe (Ptr (FunPtr C_MenuPositionFunc))
forall a. Maybe a
Nothing MenuPositionFunc_WithClosures
cb'
    C_MenuPositionFunc -> IO (FunPtr C_MenuPositionFunc)
mk_MenuPositionFunc C_MenuPositionFunc
cb'' IO (FunPtr C_MenuPositionFunc)
-> (FunPtr C_MenuPositionFunc -> IO (GClosure C_MenuPositionFunc))
-> IO (GClosure C_MenuPositionFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_MenuPositionFunc -> IO (GClosure C_MenuPositionFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `MenuPositionFunc` into a `C_MenuPositionFunc`.
wrap_MenuPositionFunc ::
    Maybe (Ptr (FunPtr C_MenuPositionFunc)) ->
    MenuPositionFunc_WithClosures ->
    C_MenuPositionFunc
wrap_MenuPositionFunc :: Maybe (Ptr (FunPtr C_MenuPositionFunc))
-> MenuPositionFunc_WithClosures -> C_MenuPositionFunc
wrap_MenuPositionFunc funptrptr :: Maybe (Ptr (FunPtr C_MenuPositionFunc))
funptrptr _cb :: MenuPositionFunc_WithClosures
_cb menu :: Ptr Menu
menu x :: Ptr Int32
x y :: Ptr Int32
y pushIn :: Ptr CInt
pushIn userData :: Ptr ()
userData = do
    Menu
menu' <- ((ManagedPtr Menu -> Menu) -> Ptr Menu -> IO Menu
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Menu -> Menu
Gtk.Menu.Menu) Ptr Menu
menu
    Int32
x' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
x
    Int32
y' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
y
    (outx :: Int32
outx, outy :: Int32
outy, outpushIn :: Bool
outpushIn) <- MenuPositionFunc_WithClosures
_cb  Menu
menu' Int32
x' Int32
y' Ptr ()
userData
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
x Int32
outx
    Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
y Int32
outy
    let outpushIn' :: CInt
outpushIn' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
outpushIn
    Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr CInt
pushIn CInt
outpushIn'
    Maybe (Ptr (FunPtr C_MenuPositionFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_MenuPositionFunc))
funptrptr


-- callback MenuDetachFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "attach_widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkWidget that the menu is being detached from.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "menu", argType = TInterface (Name {namespace = "Gtk", name = "Menu"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkMenu being detached.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A user function supplied when calling gtk_menu_attach_to_widget() which\nwill be called when the menu is later detached from the widget.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_MenuDetachFunc =
    Ptr Gtk.Widget.Widget ->
    Ptr Gtk.Menu.Menu ->
    IO ()

-- Args: [ Arg
--           { argCName = "attach_widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the #GtkWidget that the menu is being detached from."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "menu"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Menu" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkMenu being detached."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_MenuDetachFunc :: FunPtr C_MenuDetachFunc -> C_MenuDetachFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_MenuDetachFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a, Gtk.Menu.IsMenu b) =>
    FunPtr C_MenuDetachFunc
    -> a
    -- ^ /@attachWidget@/: the t'GI.Gtk.Objects.Widget.Widget' that the menu is being detached from.
    -> b
    -- ^ /@menu@/: the t'GI.Gtk.Objects.Menu.Menu' being detached.
    -> m ()
dynamic_MenuDetachFunc :: FunPtr C_MenuDetachFunc -> a -> b -> m ()
dynamic_MenuDetachFunc __funPtr :: FunPtr C_MenuDetachFunc
__funPtr attachWidget :: a
attachWidget menu :: b
menu = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
attachWidget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
attachWidget
    Ptr Menu
menu' <- b -> IO (Ptr Menu)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
menu
    (FunPtr C_MenuDetachFunc -> C_MenuDetachFunc
__dynamic_C_MenuDetachFunc FunPtr C_MenuDetachFunc
__funPtr) Ptr Widget
attachWidget' Ptr Menu
menu'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
attachWidget
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
menu
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_MenuDetachFunc`.
foreign import ccall "wrapper"
    mk_MenuDetachFunc :: C_MenuDetachFunc -> IO (FunPtr C_MenuDetachFunc)

-- | A user function supplied when calling 'GI.Gtk.Objects.Menu.menuAttachToWidget' which
-- will be called when the menu is later detached from the widget.
type MenuDetachFunc =
    Gtk.Widget.Widget
    -- ^ /@attachWidget@/: the t'GI.Gtk.Objects.Widget.Widget' that the menu is being detached from.
    -> Gtk.Menu.Menu
    -- ^ /@menu@/: the t'GI.Gtk.Objects.Menu.Menu' being detached.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `MenuDetachFunc`@.
noMenuDetachFunc :: Maybe MenuDetachFunc
noMenuDetachFunc :: Maybe MenuDetachFunc
noMenuDetachFunc = Maybe MenuDetachFunc
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_MenuDetachFunc :: MonadIO m => MenuDetachFunc -> m (GClosure C_MenuDetachFunc)
genClosure_MenuDetachFunc :: MenuDetachFunc -> m (GClosure C_MenuDetachFunc)
genClosure_MenuDetachFunc cb :: MenuDetachFunc
cb = IO (GClosure C_MenuDetachFunc) -> m (GClosure C_MenuDetachFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_MenuDetachFunc) -> m (GClosure C_MenuDetachFunc))
-> IO (GClosure C_MenuDetachFunc) -> m (GClosure C_MenuDetachFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_MenuDetachFunc
cb' = Maybe (Ptr (FunPtr C_MenuDetachFunc))
-> MenuDetachFunc -> C_MenuDetachFunc
wrap_MenuDetachFunc Maybe (Ptr (FunPtr C_MenuDetachFunc))
forall a. Maybe a
Nothing MenuDetachFunc
cb
    C_MenuDetachFunc -> IO (FunPtr C_MenuDetachFunc)
mk_MenuDetachFunc C_MenuDetachFunc
cb' IO (FunPtr C_MenuDetachFunc)
-> (FunPtr C_MenuDetachFunc -> IO (GClosure C_MenuDetachFunc))
-> IO (GClosure C_MenuDetachFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_MenuDetachFunc -> IO (GClosure C_MenuDetachFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `MenuDetachFunc` into a `C_MenuDetachFunc`.
wrap_MenuDetachFunc ::
    Maybe (Ptr (FunPtr C_MenuDetachFunc)) ->
    MenuDetachFunc ->
    C_MenuDetachFunc
wrap_MenuDetachFunc :: Maybe (Ptr (FunPtr C_MenuDetachFunc))
-> MenuDetachFunc -> C_MenuDetachFunc
wrap_MenuDetachFunc funptrptr :: Maybe (Ptr (FunPtr C_MenuDetachFunc))
funptrptr _cb :: MenuDetachFunc
_cb attachWidget :: Ptr Widget
attachWidget menu :: Ptr Menu
menu = do
    Widget
attachWidget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
attachWidget
    Menu
menu' <- ((ManagedPtr Menu -> Menu) -> Ptr Menu -> IO Menu
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Menu -> Menu
Gtk.Menu.Menu) Ptr Menu
menu
    MenuDetachFunc
_cb  Widget
attachWidget' Menu
menu'
    Maybe (Ptr (FunPtr C_MenuDetachFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_MenuDetachFunc))
funptrptr


-- callback ListBoxUpdateHeaderFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "row", argType = TInterface (Name {namespace = "Gtk", name = "ListBoxRow"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the row to update", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "before", argType = TInterface (Name {namespace = "Gtk", name = "ListBoxRow"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the row before @row, or %NULL if it is first", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Whenever @row changes or which row is before @row changes this\nis called, which lets you update the header on @row. You may\nremove or set a new one via gtk_list_box_row_set_header() or\njust change the state of the current header widget.", sinceVersion = Just "3.10"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxUpdateHeaderFunc =
    Ptr Gtk.ListBoxRow.ListBoxRow ->
    Ptr Gtk.ListBoxRow.ListBoxRow ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "row"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBoxRow" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the row to update" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "before"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBoxRow" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the row before @row, or %NULL if it is first"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ListBoxUpdateHeaderFunc :: FunPtr C_ListBoxUpdateHeaderFunc -> C_ListBoxUpdateHeaderFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ListBoxUpdateHeaderFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.ListBoxRow.IsListBoxRow a, Gtk.ListBoxRow.IsListBoxRow b) =>
    FunPtr C_ListBoxUpdateHeaderFunc
    -> a
    -- ^ /@row@/: the row to update
    -> Maybe (b)
    -- ^ /@before@/: the row before /@row@/, or 'P.Nothing' if it is first
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m ()
dynamic_ListBoxUpdateHeaderFunc :: FunPtr C_ListBoxUpdateHeaderFunc -> a -> Maybe b -> Ptr () -> m ()
dynamic_ListBoxUpdateHeaderFunc __funPtr :: FunPtr C_ListBoxUpdateHeaderFunc
__funPtr row :: a
row before :: Maybe b
before userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListBoxRow
row' <- a -> IO (Ptr ListBoxRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
row
    Ptr ListBoxRow
maybeBefore <- case Maybe b
before of
        Nothing -> Ptr ListBoxRow -> IO (Ptr ListBoxRow)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ListBoxRow
forall a. Ptr a
nullPtr
        Just jBefore :: b
jBefore -> do
            Ptr ListBoxRow
jBefore' <- b -> IO (Ptr ListBoxRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jBefore
            Ptr ListBoxRow -> IO (Ptr ListBoxRow)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ListBoxRow
jBefore'
    (FunPtr C_ListBoxUpdateHeaderFunc -> C_ListBoxUpdateHeaderFunc
__dynamic_C_ListBoxUpdateHeaderFunc FunPtr C_ListBoxUpdateHeaderFunc
__funPtr) Ptr ListBoxRow
row' Ptr ListBoxRow
maybeBefore Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
row
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
before b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ListBoxUpdateHeaderFunc`.
foreign import ccall "wrapper"
    mk_ListBoxUpdateHeaderFunc :: C_ListBoxUpdateHeaderFunc -> IO (FunPtr C_ListBoxUpdateHeaderFunc)

-- | 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 'GI.Gtk.Objects.ListBoxRow.listBoxRowSetHeader' or
-- just change the state of the current header widget.
-- 
-- /Since: 3.10/
type ListBoxUpdateHeaderFunc =
    Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row@/: the row to update
    -> Maybe Gtk.ListBoxRow.ListBoxRow
    -- ^ /@before@/: the row before /@row@/, or 'P.Nothing' if it is first
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxUpdateHeaderFunc`@.
noListBoxUpdateHeaderFunc :: Maybe ListBoxUpdateHeaderFunc
noListBoxUpdateHeaderFunc :: Maybe ListBoxUpdateHeaderFunc
noListBoxUpdateHeaderFunc = Maybe ListBoxUpdateHeaderFunc
forall a. Maybe a
Nothing

-- | 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 'GI.Gtk.Objects.ListBoxRow.listBoxRowSetHeader' or
-- just change the state of the current header widget.
-- 
-- /Since: 3.10/
type ListBoxUpdateHeaderFunc_WithClosures =
    Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row@/: the row to update
    -> Maybe Gtk.ListBoxRow.ListBoxRow
    -- ^ /@before@/: the row before /@row@/, or 'P.Nothing' if it is first
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxUpdateHeaderFunc_WithClosures`@.
noListBoxUpdateHeaderFunc_WithClosures :: Maybe ListBoxUpdateHeaderFunc_WithClosures
noListBoxUpdateHeaderFunc_WithClosures :: Maybe ListBoxUpdateHeaderFunc_WithClosures
noListBoxUpdateHeaderFunc_WithClosures = Maybe ListBoxUpdateHeaderFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxUpdateHeaderFunc :: ListBoxUpdateHeaderFunc -> ListBoxUpdateHeaderFunc_WithClosures
drop_closures_ListBoxUpdateHeaderFunc :: ListBoxUpdateHeaderFunc -> ListBoxUpdateHeaderFunc_WithClosures
drop_closures_ListBoxUpdateHeaderFunc _f :: ListBoxUpdateHeaderFunc
_f row :: ListBoxRow
row before :: Maybe ListBoxRow
before _ = ListBoxUpdateHeaderFunc
_f ListBoxRow
row Maybe ListBoxRow
before

-- | Wrap the callback into a `GClosure`.
genClosure_ListBoxUpdateHeaderFunc :: MonadIO m => ListBoxUpdateHeaderFunc -> m (GClosure C_ListBoxUpdateHeaderFunc)
genClosure_ListBoxUpdateHeaderFunc :: ListBoxUpdateHeaderFunc -> m (GClosure C_ListBoxUpdateHeaderFunc)
genClosure_ListBoxUpdateHeaderFunc cb :: ListBoxUpdateHeaderFunc
cb = IO (GClosure C_ListBoxUpdateHeaderFunc)
-> m (GClosure C_ListBoxUpdateHeaderFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ListBoxUpdateHeaderFunc)
 -> m (GClosure C_ListBoxUpdateHeaderFunc))
-> IO (GClosure C_ListBoxUpdateHeaderFunc)
-> m (GClosure C_ListBoxUpdateHeaderFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ListBoxUpdateHeaderFunc_WithClosures
cb' = ListBoxUpdateHeaderFunc -> ListBoxUpdateHeaderFunc_WithClosures
drop_closures_ListBoxUpdateHeaderFunc ListBoxUpdateHeaderFunc
cb
    let cb'' :: C_ListBoxUpdateHeaderFunc
cb'' = Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc))
-> ListBoxUpdateHeaderFunc_WithClosures
-> C_ListBoxUpdateHeaderFunc
wrap_ListBoxUpdateHeaderFunc Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc))
forall a. Maybe a
Nothing ListBoxUpdateHeaderFunc_WithClosures
cb'
    C_ListBoxUpdateHeaderFunc -> IO (FunPtr C_ListBoxUpdateHeaderFunc)
mk_ListBoxUpdateHeaderFunc C_ListBoxUpdateHeaderFunc
cb'' IO (FunPtr C_ListBoxUpdateHeaderFunc)
-> (FunPtr C_ListBoxUpdateHeaderFunc
    -> IO (GClosure C_ListBoxUpdateHeaderFunc))
-> IO (GClosure C_ListBoxUpdateHeaderFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ListBoxUpdateHeaderFunc
-> IO (GClosure C_ListBoxUpdateHeaderFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ListBoxUpdateHeaderFunc` into a `C_ListBoxUpdateHeaderFunc`.
wrap_ListBoxUpdateHeaderFunc ::
    Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc)) ->
    ListBoxUpdateHeaderFunc_WithClosures ->
    C_ListBoxUpdateHeaderFunc
wrap_ListBoxUpdateHeaderFunc :: Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc))
-> ListBoxUpdateHeaderFunc_WithClosures
-> C_ListBoxUpdateHeaderFunc
wrap_ListBoxUpdateHeaderFunc funptrptr :: Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc))
funptrptr _cb :: ListBoxUpdateHeaderFunc_WithClosures
_cb row :: Ptr ListBoxRow
row before :: Ptr ListBoxRow
before userData :: Ptr ()
userData = do
    ListBoxRow
row' <- ((ManagedPtr ListBoxRow -> ListBoxRow)
-> Ptr ListBoxRow -> IO ListBoxRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBoxRow -> ListBoxRow
Gtk.ListBoxRow.ListBoxRow) Ptr ListBoxRow
row
    Maybe ListBoxRow
maybeBefore <-
        if Ptr ListBoxRow
before Ptr ListBoxRow -> Ptr ListBoxRow -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr ListBoxRow
forall a. Ptr a
nullPtr
        then Maybe ListBoxRow -> IO (Maybe ListBoxRow)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ListBoxRow
forall a. Maybe a
Nothing
        else do
            ListBoxRow
before' <- ((ManagedPtr ListBoxRow -> ListBoxRow)
-> Ptr ListBoxRow -> IO ListBoxRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBoxRow -> ListBoxRow
Gtk.ListBoxRow.ListBoxRow) Ptr ListBoxRow
before
            Maybe ListBoxRow -> IO (Maybe ListBoxRow)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe ListBoxRow -> IO (Maybe ListBoxRow))
-> Maybe ListBoxRow -> IO (Maybe ListBoxRow)
forall a b. (a -> b) -> a -> b
$ ListBoxRow -> Maybe ListBoxRow
forall a. a -> Maybe a
Just ListBoxRow
before'
    ListBoxUpdateHeaderFunc_WithClosures
_cb  ListBoxRow
row' Maybe ListBoxRow
maybeBefore Ptr ()
userData
    Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ListBoxUpdateHeaderFunc))
funptrptr


-- callback ListBoxSortFunc
--          -> Callable {returnType = Just (TBasicType TInt), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "< 0 if @row1 should be before @row2, 0 if they are\n    equal and > 0 otherwise", sinceVersion = Nothing}, args = [Arg {argCName = "row1", argType = TInterface (Name {namespace = "Gtk", name = "ListBoxRow"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the first row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row2", argType = TInterface (Name {namespace = "Gtk", name = "ListBoxRow"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the second row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Compare two rows to determine which should be first.", sinceVersion = Just "3.10"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxSortFunc =
    Ptr Gtk.ListBoxRow.ListBoxRow ->
    Ptr Gtk.ListBoxRow.ListBoxRow ->
    Ptr () ->
    IO Int32

-- Args: [ Arg
--           { argCName = "row1"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBoxRow" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the first row" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "row2"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBoxRow" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the second row" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ListBoxSortFunc :: FunPtr C_ListBoxSortFunc -> C_ListBoxSortFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ListBoxSortFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.ListBoxRow.IsListBoxRow a, Gtk.ListBoxRow.IsListBoxRow b) =>
    FunPtr C_ListBoxSortFunc
    -> a
    -- ^ /@row1@/: the first row
    -> b
    -- ^ /@row2@/: the second row
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m Int32
    -- ^ __Returns:__ \< 0 if /@row1@/ should be before /@row2@/, 0 if they are
    --     equal and > 0 otherwise
dynamic_ListBoxSortFunc :: FunPtr C_ListBoxSortFunc -> a -> b -> Ptr () -> m Int32
dynamic_ListBoxSortFunc __funPtr :: FunPtr C_ListBoxSortFunc
__funPtr row1 :: a
row1 row2 :: b
row2 userData :: Ptr ()
userData = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListBoxRow
row1' <- a -> IO (Ptr ListBoxRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
row1
    Ptr ListBoxRow
row2' <- b -> IO (Ptr ListBoxRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
row2
    Int32
result <- (FunPtr C_ListBoxSortFunc -> C_ListBoxSortFunc
__dynamic_C_ListBoxSortFunc FunPtr C_ListBoxSortFunc
__funPtr) Ptr ListBoxRow
row1' Ptr ListBoxRow
row2' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
row1
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
row2
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

-- | Generate a function pointer callable from C code, from a `C_ListBoxSortFunc`.
foreign import ccall "wrapper"
    mk_ListBoxSortFunc :: C_ListBoxSortFunc -> IO (FunPtr C_ListBoxSortFunc)

-- | Compare two rows to determine which should be first.
-- 
-- /Since: 3.10/
type ListBoxSortFunc =
    Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row1@/: the first row
    -> Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row2@/: the second row
    -> IO Int32
    -- ^ __Returns:__ \< 0 if /@row1@/ should be before /@row2@/, 0 if they are
    --     equal and > 0 otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxSortFunc`@.
noListBoxSortFunc :: Maybe ListBoxSortFunc
noListBoxSortFunc :: Maybe ListBoxSortFunc
noListBoxSortFunc = Maybe ListBoxSortFunc
forall a. Maybe a
Nothing

-- | Compare two rows to determine which should be first.
-- 
-- /Since: 3.10/
type ListBoxSortFunc_WithClosures =
    Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row1@/: the first row
    -> Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row2@/: the second row
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO Int32
    -- ^ __Returns:__ \< 0 if /@row1@/ should be before /@row2@/, 0 if they are
    --     equal and > 0 otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxSortFunc_WithClosures`@.
noListBoxSortFunc_WithClosures :: Maybe ListBoxSortFunc_WithClosures
noListBoxSortFunc_WithClosures :: Maybe ListBoxSortFunc_WithClosures
noListBoxSortFunc_WithClosures = Maybe ListBoxSortFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxSortFunc :: ListBoxSortFunc -> ListBoxSortFunc_WithClosures
drop_closures_ListBoxSortFunc :: ListBoxSortFunc -> ListBoxSortFunc_WithClosures
drop_closures_ListBoxSortFunc _f :: ListBoxSortFunc
_f row1 :: ListBoxRow
row1 row2 :: ListBoxRow
row2 _ = ListBoxSortFunc
_f ListBoxRow
row1 ListBoxRow
row2

-- | Wrap the callback into a `GClosure`.
genClosure_ListBoxSortFunc :: MonadIO m => ListBoxSortFunc -> m (GClosure C_ListBoxSortFunc)
genClosure_ListBoxSortFunc :: ListBoxSortFunc -> m (GClosure C_ListBoxSortFunc)
genClosure_ListBoxSortFunc cb :: ListBoxSortFunc
cb = IO (GClosure C_ListBoxSortFunc) -> m (GClosure C_ListBoxSortFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ListBoxSortFunc) -> m (GClosure C_ListBoxSortFunc))
-> IO (GClosure C_ListBoxSortFunc)
-> m (GClosure C_ListBoxSortFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ListBoxSortFunc_WithClosures
cb' = ListBoxSortFunc -> ListBoxSortFunc_WithClosures
drop_closures_ListBoxSortFunc ListBoxSortFunc
cb
    let cb'' :: C_ListBoxSortFunc
cb'' = Maybe (Ptr (FunPtr C_ListBoxSortFunc))
-> ListBoxSortFunc_WithClosures -> C_ListBoxSortFunc
wrap_ListBoxSortFunc Maybe (Ptr (FunPtr C_ListBoxSortFunc))
forall a. Maybe a
Nothing ListBoxSortFunc_WithClosures
cb'
    C_ListBoxSortFunc -> IO (FunPtr C_ListBoxSortFunc)
mk_ListBoxSortFunc C_ListBoxSortFunc
cb'' IO (FunPtr C_ListBoxSortFunc)
-> (FunPtr C_ListBoxSortFunc -> IO (GClosure C_ListBoxSortFunc))
-> IO (GClosure C_ListBoxSortFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ListBoxSortFunc -> IO (GClosure C_ListBoxSortFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ListBoxSortFunc` into a `C_ListBoxSortFunc`.
wrap_ListBoxSortFunc ::
    Maybe (Ptr (FunPtr C_ListBoxSortFunc)) ->
    ListBoxSortFunc_WithClosures ->
    C_ListBoxSortFunc
wrap_ListBoxSortFunc :: Maybe (Ptr (FunPtr C_ListBoxSortFunc))
-> ListBoxSortFunc_WithClosures -> C_ListBoxSortFunc
wrap_ListBoxSortFunc funptrptr :: Maybe (Ptr (FunPtr C_ListBoxSortFunc))
funptrptr _cb :: ListBoxSortFunc_WithClosures
_cb row1 :: Ptr ListBoxRow
row1 row2 :: Ptr ListBoxRow
row2 userData :: Ptr ()
userData = do
    ListBoxRow
row1' <- ((ManagedPtr ListBoxRow -> ListBoxRow)
-> Ptr ListBoxRow -> IO ListBoxRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBoxRow -> ListBoxRow
Gtk.ListBoxRow.ListBoxRow) Ptr ListBoxRow
row1
    ListBoxRow
row2' <- ((ManagedPtr ListBoxRow -> ListBoxRow)
-> Ptr ListBoxRow -> IO ListBoxRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBoxRow -> ListBoxRow
Gtk.ListBoxRow.ListBoxRow) Ptr ListBoxRow
row2
    Int32
result <- ListBoxSortFunc_WithClosures
_cb  ListBoxRow
row1' ListBoxRow
row2' Ptr ()
userData
    Maybe (Ptr (FunPtr C_ListBoxSortFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ListBoxSortFunc))
funptrptr
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result


-- callback ListBoxForeachFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "box", argType = TInterface (Name {namespace = "Gtk", name = "ListBox"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkListBox", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "row", argType = TInterface (Name {namespace = "Gtk", name = "ListBoxRow"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkListBoxRow", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used by gtk_list_box_selected_foreach().\nIt will be called on every selected child of the @box.", sinceVersion = Just "3.14"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxForeachFunc =
    Ptr Gtk.ListBox.ListBox ->
    Ptr Gtk.ListBoxRow.ListBoxRow ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "box"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBox" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkListBox" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "row"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBoxRow" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkListBoxRow" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ListBoxForeachFunc :: FunPtr C_ListBoxForeachFunc -> C_ListBoxForeachFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ListBoxForeachFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.ListBox.IsListBox a, Gtk.ListBoxRow.IsListBoxRow b) =>
    FunPtr C_ListBoxForeachFunc
    -> a
    -- ^ /@box@/: a t'GI.Gtk.Objects.ListBox.ListBox'
    -> b
    -- ^ /@row@/: a t'GI.Gtk.Objects.ListBoxRow.ListBoxRow'
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m ()
dynamic_ListBoxForeachFunc :: FunPtr C_ListBoxForeachFunc -> a -> b -> Ptr () -> m ()
dynamic_ListBoxForeachFunc __funPtr :: FunPtr C_ListBoxForeachFunc
__funPtr box :: a
box row :: b
row userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListBox
box' <- a -> IO (Ptr ListBox)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
box
    Ptr ListBoxRow
row' <- b -> IO (Ptr ListBoxRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
row
    (FunPtr C_ListBoxForeachFunc -> C_ListBoxForeachFunc
__dynamic_C_ListBoxForeachFunc FunPtr C_ListBoxForeachFunc
__funPtr) Ptr ListBox
box' Ptr ListBoxRow
row' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
box
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
row
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ListBoxForeachFunc`.
foreign import ccall "wrapper"
    mk_ListBoxForeachFunc :: C_ListBoxForeachFunc -> IO (FunPtr C_ListBoxForeachFunc)

-- | A function used by 'GI.Gtk.Objects.ListBox.listBoxSelectedForeach'.
-- It will be called on every selected child of the /@box@/.
-- 
-- /Since: 3.14/
type ListBoxForeachFunc =
    Gtk.ListBox.ListBox
    -- ^ /@box@/: a t'GI.Gtk.Objects.ListBox.ListBox'
    -> Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row@/: a t'GI.Gtk.Objects.ListBoxRow.ListBoxRow'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxForeachFunc`@.
noListBoxForeachFunc :: Maybe ListBoxForeachFunc
noListBoxForeachFunc :: Maybe ListBoxForeachFunc
noListBoxForeachFunc = Maybe ListBoxForeachFunc
forall a. Maybe a
Nothing

-- | A function used by 'GI.Gtk.Objects.ListBox.listBoxSelectedForeach'.
-- It will be called on every selected child of the /@box@/.
-- 
-- /Since: 3.14/
type ListBoxForeachFunc_WithClosures =
    Gtk.ListBox.ListBox
    -- ^ /@box@/: a t'GI.Gtk.Objects.ListBox.ListBox'
    -> Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row@/: a t'GI.Gtk.Objects.ListBoxRow.ListBoxRow'
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxForeachFunc_WithClosures`@.
noListBoxForeachFunc_WithClosures :: Maybe ListBoxForeachFunc_WithClosures
noListBoxForeachFunc_WithClosures :: Maybe ListBoxForeachFunc_WithClosures
noListBoxForeachFunc_WithClosures = Maybe ListBoxForeachFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxForeachFunc :: ListBoxForeachFunc -> ListBoxForeachFunc_WithClosures
drop_closures_ListBoxForeachFunc :: ListBoxForeachFunc -> ListBoxForeachFunc_WithClosures
drop_closures_ListBoxForeachFunc _f :: ListBoxForeachFunc
_f box :: ListBox
box row :: ListBoxRow
row _ = ListBoxForeachFunc
_f ListBox
box ListBoxRow
row

-- | Wrap the callback into a `GClosure`.
genClosure_ListBoxForeachFunc :: MonadIO m => ListBoxForeachFunc -> m (GClosure C_ListBoxForeachFunc)
genClosure_ListBoxForeachFunc :: ListBoxForeachFunc -> m (GClosure C_ListBoxForeachFunc)
genClosure_ListBoxForeachFunc cb :: ListBoxForeachFunc
cb = IO (GClosure C_ListBoxForeachFunc)
-> m (GClosure C_ListBoxForeachFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ListBoxForeachFunc)
 -> m (GClosure C_ListBoxForeachFunc))
-> IO (GClosure C_ListBoxForeachFunc)
-> m (GClosure C_ListBoxForeachFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ListBoxForeachFunc_WithClosures
cb' = ListBoxForeachFunc -> ListBoxForeachFunc_WithClosures
drop_closures_ListBoxForeachFunc ListBoxForeachFunc
cb
    let cb'' :: C_ListBoxForeachFunc
cb'' = Maybe (Ptr (FunPtr C_ListBoxForeachFunc))
-> ListBoxForeachFunc_WithClosures -> C_ListBoxForeachFunc
wrap_ListBoxForeachFunc Maybe (Ptr (FunPtr C_ListBoxForeachFunc))
forall a. Maybe a
Nothing ListBoxForeachFunc_WithClosures
cb'
    C_ListBoxForeachFunc -> IO (FunPtr C_ListBoxForeachFunc)
mk_ListBoxForeachFunc C_ListBoxForeachFunc
cb'' IO (FunPtr C_ListBoxForeachFunc)
-> (FunPtr C_ListBoxForeachFunc
    -> IO (GClosure C_ListBoxForeachFunc))
-> IO (GClosure C_ListBoxForeachFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ListBoxForeachFunc -> IO (GClosure C_ListBoxForeachFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ListBoxForeachFunc` into a `C_ListBoxForeachFunc`.
wrap_ListBoxForeachFunc ::
    Maybe (Ptr (FunPtr C_ListBoxForeachFunc)) ->
    ListBoxForeachFunc_WithClosures ->
    C_ListBoxForeachFunc
wrap_ListBoxForeachFunc :: Maybe (Ptr (FunPtr C_ListBoxForeachFunc))
-> ListBoxForeachFunc_WithClosures -> C_ListBoxForeachFunc
wrap_ListBoxForeachFunc funptrptr :: Maybe (Ptr (FunPtr C_ListBoxForeachFunc))
funptrptr _cb :: ListBoxForeachFunc_WithClosures
_cb box :: Ptr ListBox
box row :: Ptr ListBoxRow
row userData :: Ptr ()
userData = do
    ListBox
box' <- ((ManagedPtr ListBox -> ListBox) -> Ptr ListBox -> IO ListBox
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBox -> ListBox
Gtk.ListBox.ListBox) Ptr ListBox
box
    ListBoxRow
row' <- ((ManagedPtr ListBoxRow -> ListBoxRow)
-> Ptr ListBoxRow -> IO ListBoxRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBoxRow -> ListBoxRow
Gtk.ListBoxRow.ListBoxRow) Ptr ListBoxRow
row
    ListBoxForeachFunc_WithClosures
_cb  ListBox
box' ListBoxRow
row' Ptr ()
userData
    Maybe (Ptr (FunPtr C_ListBoxForeachFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ListBoxForeachFunc))
funptrptr


-- callback ListBoxFilterFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the row should be visible, %FALSE otherwise", sinceVersion = Nothing}, args = [Arg {argCName = "row", argType = TInterface (Name {namespace = "Gtk", name = "ListBoxRow"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the row that may be filtered", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Will be called whenever the row changes or is added and lets you control\nif the row should be visible or not.", sinceVersion = Just "3.10"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxFilterFunc =
    Ptr Gtk.ListBoxRow.ListBoxRow ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "row"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ListBoxRow" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the row that may be filtered"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ListBoxFilterFunc :: FunPtr C_ListBoxFilterFunc -> C_ListBoxFilterFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ListBoxFilterFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.ListBoxRow.IsListBoxRow a) =>
    FunPtr C_ListBoxFilterFunc
    -> a
    -- ^ /@row@/: the row that may be filtered
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the row should be visible, 'P.False' otherwise
dynamic_ListBoxFilterFunc :: FunPtr C_ListBoxFilterFunc -> a -> Ptr () -> m Bool
dynamic_ListBoxFilterFunc __funPtr :: FunPtr C_ListBoxFilterFunc
__funPtr row :: a
row userData :: Ptr ()
userData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr ListBoxRow
row' <- a -> IO (Ptr ListBoxRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
row
    CInt
result <- (FunPtr C_ListBoxFilterFunc -> C_ListBoxFilterFunc
__dynamic_C_ListBoxFilterFunc FunPtr C_ListBoxFilterFunc
__funPtr) Ptr ListBoxRow
row' Ptr ()
userData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
row
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_ListBoxFilterFunc`.
foreign import ccall "wrapper"
    mk_ListBoxFilterFunc :: C_ListBoxFilterFunc -> IO (FunPtr C_ListBoxFilterFunc)

-- | Will be called whenever the row changes or is added and lets you control
-- if the row should be visible or not.
-- 
-- /Since: 3.10/
type ListBoxFilterFunc =
    Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row@/: the row that may be filtered
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the row should be visible, 'P.False' otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxFilterFunc`@.
noListBoxFilterFunc :: Maybe ListBoxFilterFunc
noListBoxFilterFunc :: Maybe ListBoxFilterFunc
noListBoxFilterFunc = Maybe ListBoxFilterFunc
forall a. Maybe a
Nothing

-- | Will be called whenever the row changes or is added and lets you control
-- if the row should be visible or not.
-- 
-- /Since: 3.10/
type ListBoxFilterFunc_WithClosures =
    Gtk.ListBoxRow.ListBoxRow
    -- ^ /@row@/: the row that may be filtered
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the row should be visible, 'P.False' otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxFilterFunc_WithClosures`@.
noListBoxFilterFunc_WithClosures :: Maybe ListBoxFilterFunc_WithClosures
noListBoxFilterFunc_WithClosures :: Maybe ListBoxFilterFunc_WithClosures
noListBoxFilterFunc_WithClosures = Maybe ListBoxFilterFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxFilterFunc :: ListBoxFilterFunc -> ListBoxFilterFunc_WithClosures
drop_closures_ListBoxFilterFunc :: ListBoxFilterFunc -> ListBoxFilterFunc_WithClosures
drop_closures_ListBoxFilterFunc _f :: ListBoxFilterFunc
_f row :: ListBoxRow
row _ = ListBoxFilterFunc
_f ListBoxRow
row

-- | Wrap the callback into a `GClosure`.
genClosure_ListBoxFilterFunc :: MonadIO m => ListBoxFilterFunc -> m (GClosure C_ListBoxFilterFunc)
genClosure_ListBoxFilterFunc :: ListBoxFilterFunc -> m (GClosure C_ListBoxFilterFunc)
genClosure_ListBoxFilterFunc cb :: ListBoxFilterFunc
cb = IO (GClosure C_ListBoxFilterFunc)
-> m (GClosure C_ListBoxFilterFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ListBoxFilterFunc)
 -> m (GClosure C_ListBoxFilterFunc))
-> IO (GClosure C_ListBoxFilterFunc)
-> m (GClosure C_ListBoxFilterFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ListBoxFilterFunc_WithClosures
cb' = ListBoxFilterFunc -> ListBoxFilterFunc_WithClosures
drop_closures_ListBoxFilterFunc ListBoxFilterFunc
cb
    let cb'' :: C_ListBoxFilterFunc
cb'' = Maybe (Ptr (FunPtr C_ListBoxFilterFunc))
-> ListBoxFilterFunc_WithClosures -> C_ListBoxFilterFunc
wrap_ListBoxFilterFunc Maybe (Ptr (FunPtr C_ListBoxFilterFunc))
forall a. Maybe a
Nothing ListBoxFilterFunc_WithClosures
cb'
    C_ListBoxFilterFunc -> IO (FunPtr C_ListBoxFilterFunc)
mk_ListBoxFilterFunc C_ListBoxFilterFunc
cb'' IO (FunPtr C_ListBoxFilterFunc)
-> (FunPtr C_ListBoxFilterFunc
    -> IO (GClosure C_ListBoxFilterFunc))
-> IO (GClosure C_ListBoxFilterFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ListBoxFilterFunc -> IO (GClosure C_ListBoxFilterFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ListBoxFilterFunc` into a `C_ListBoxFilterFunc`.
wrap_ListBoxFilterFunc ::
    Maybe (Ptr (FunPtr C_ListBoxFilterFunc)) ->
    ListBoxFilterFunc_WithClosures ->
    C_ListBoxFilterFunc
wrap_ListBoxFilterFunc :: Maybe (Ptr (FunPtr C_ListBoxFilterFunc))
-> ListBoxFilterFunc_WithClosures -> C_ListBoxFilterFunc
wrap_ListBoxFilterFunc funptrptr :: Maybe (Ptr (FunPtr C_ListBoxFilterFunc))
funptrptr _cb :: ListBoxFilterFunc_WithClosures
_cb row :: Ptr ListBoxRow
row userData :: Ptr ()
userData = do
    ListBoxRow
row' <- ((ManagedPtr ListBoxRow -> ListBoxRow)
-> Ptr ListBoxRow -> IO ListBoxRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ListBoxRow -> ListBoxRow
Gtk.ListBoxRow.ListBoxRow) Ptr ListBoxRow
row
    Bool
result <- ListBoxFilterFunc_WithClosures
_cb  ListBoxRow
row' Ptr ()
userData
    Maybe (Ptr (FunPtr C_ListBoxFilterFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ListBoxFilterFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback ListBoxCreateWidgetFunc
--          -> Callable {returnType = Just (TInterface (Name {namespace = "Gtk", name = "Widget"})), returnMayBeNull = False, returnTransfer = TransferEverything, returnDocumentation = Documentation {rawDocText = Just "a #GtkWidget that represents @item", sinceVersion = Nothing}, args = [Arg {argCName = "item", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the item from the model for which to create a widget for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Called for list boxes that are bound to a #GListModel with\ngtk_list_box_bind_model() for each item that gets added to the model.\n\nVersions of GTK+ prior to 3.18 called gtk_widget_show_all() on the rows\ncreated by the GtkListBoxCreateWidgetFunc, but this forced all widgets\ninside the row to be shown, and is no longer the case. Applications should\nbe updated to show the desired row widgets.", sinceVersion = Just "3.16"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ListBoxCreateWidgetFunc =
    Ptr GObject.Object.Object ->
    Ptr () ->
    IO (Ptr Gtk.Widget.Widget)

-- Args: [ Arg
--           { argCName = "item"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Object" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the item from the model for which to create a widget for"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Widget" })
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ListBoxCreateWidgetFunc :: FunPtr C_ListBoxCreateWidgetFunc -> C_ListBoxCreateWidgetFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ListBoxCreateWidgetFunc ::
    (B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a) =>
    FunPtr C_ListBoxCreateWidgetFunc
    -> a
    -- ^ /@item@/: the item from the model for which to create a widget for
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m Gtk.Widget.Widget
    -- ^ __Returns:__ a t'GI.Gtk.Objects.Widget.Widget' that represents /@item@/
dynamic_ListBoxCreateWidgetFunc :: FunPtr C_ListBoxCreateWidgetFunc -> a -> Ptr () -> m Widget
dynamic_ListBoxCreateWidgetFunc __funPtr :: FunPtr C_ListBoxCreateWidgetFunc
__funPtr item :: a
item userData :: Ptr ()
userData = IO Widget -> m Widget
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Widget -> m Widget) -> IO Widget -> m Widget
forall a b. (a -> b) -> a -> b
$ do
    Ptr Object
item' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
item
    Ptr Widget
result <- (FunPtr C_ListBoxCreateWidgetFunc -> C_ListBoxCreateWidgetFunc
__dynamic_C_ListBoxCreateWidgetFunc FunPtr C_ListBoxCreateWidgetFunc
__funPtr) Ptr Object
item' Ptr ()
userData
    Text -> C_WidgetClassUnrealizeFieldCallback
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "listBoxCreateWidgetFunc" Ptr Widget
result
    Widget
result' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
item
    Widget -> IO Widget
forall (m :: * -> *) a. Monad m => a -> m a
return Widget
result'

-- | Generate a function pointer callable from C code, from a `C_ListBoxCreateWidgetFunc`.
foreign import ccall "wrapper"
    mk_ListBoxCreateWidgetFunc :: C_ListBoxCreateWidgetFunc -> IO (FunPtr C_ListBoxCreateWidgetFunc)

-- | Called for list boxes that are bound to a t'GI.Gio.Interfaces.ListModel.ListModel' with
-- 'GI.Gtk.Objects.ListBox.listBoxBindModel' for each item that gets added to the model.
-- 
-- Versions of GTK+ prior to 3.18 called 'GI.Gtk.Objects.Widget.widgetShowAll' on the rows
-- created by the GtkListBoxCreateWidgetFunc, but this forced all widgets
-- inside the row to be shown, and is no longer the case. Applications should
-- be updated to show the desired row widgets.
-- 
-- /Since: 3.16/
type ListBoxCreateWidgetFunc =
    GObject.Object.Object
    -- ^ /@item@/: the item from the model for which to create a widget for
    -> IO Gtk.Widget.Widget
    -- ^ __Returns:__ a t'GI.Gtk.Objects.Widget.Widget' that represents /@item@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxCreateWidgetFunc`@.
noListBoxCreateWidgetFunc :: Maybe ListBoxCreateWidgetFunc
noListBoxCreateWidgetFunc :: Maybe ListBoxCreateWidgetFunc
noListBoxCreateWidgetFunc = Maybe ListBoxCreateWidgetFunc
forall a. Maybe a
Nothing

-- | Called for list boxes that are bound to a t'GI.Gio.Interfaces.ListModel.ListModel' with
-- 'GI.Gtk.Objects.ListBox.listBoxBindModel' for each item that gets added to the model.
-- 
-- Versions of GTK+ prior to 3.18 called 'GI.Gtk.Objects.Widget.widgetShowAll' on the rows
-- created by the GtkListBoxCreateWidgetFunc, but this forced all widgets
-- inside the row to be shown, and is no longer the case. Applications should
-- be updated to show the desired row widgets.
-- 
-- /Since: 3.16/
type ListBoxCreateWidgetFunc_WithClosures =
    GObject.Object.Object
    -- ^ /@item@/: the item from the model for which to create a widget for
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO Gtk.Widget.Widget
    -- ^ __Returns:__ a t'GI.Gtk.Objects.Widget.Widget' that represents /@item@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `ListBoxCreateWidgetFunc_WithClosures`@.
noListBoxCreateWidgetFunc_WithClosures :: Maybe ListBoxCreateWidgetFunc_WithClosures
noListBoxCreateWidgetFunc_WithClosures :: Maybe ListBoxCreateWidgetFunc_WithClosures
noListBoxCreateWidgetFunc_WithClosures = Maybe ListBoxCreateWidgetFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ListBoxCreateWidgetFunc :: ListBoxCreateWidgetFunc -> ListBoxCreateWidgetFunc_WithClosures
drop_closures_ListBoxCreateWidgetFunc :: ListBoxCreateWidgetFunc -> ListBoxCreateWidgetFunc_WithClosures
drop_closures_ListBoxCreateWidgetFunc _f :: ListBoxCreateWidgetFunc
_f item :: Object
item _ = ListBoxCreateWidgetFunc
_f Object
item

-- | Wrap the callback into a `GClosure`.
genClosure_ListBoxCreateWidgetFunc :: MonadIO m => ListBoxCreateWidgetFunc -> m (GClosure C_ListBoxCreateWidgetFunc)
genClosure_ListBoxCreateWidgetFunc :: ListBoxCreateWidgetFunc -> m (GClosure C_ListBoxCreateWidgetFunc)
genClosure_ListBoxCreateWidgetFunc cb :: ListBoxCreateWidgetFunc
cb = IO (GClosure C_ListBoxCreateWidgetFunc)
-> m (GClosure C_ListBoxCreateWidgetFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ListBoxCreateWidgetFunc)
 -> m (GClosure C_ListBoxCreateWidgetFunc))
-> IO (GClosure C_ListBoxCreateWidgetFunc)
-> m (GClosure C_ListBoxCreateWidgetFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ListBoxCreateWidgetFunc_WithClosures
cb' = ListBoxCreateWidgetFunc -> ListBoxCreateWidgetFunc_WithClosures
drop_closures_ListBoxCreateWidgetFunc ListBoxCreateWidgetFunc
cb
    let cb'' :: C_ListBoxCreateWidgetFunc
cb'' = Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
-> ListBoxCreateWidgetFunc_WithClosures
-> C_ListBoxCreateWidgetFunc
wrap_ListBoxCreateWidgetFunc Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
forall a. Maybe a
Nothing ListBoxCreateWidgetFunc_WithClosures
cb'
    C_ListBoxCreateWidgetFunc -> IO (FunPtr C_ListBoxCreateWidgetFunc)
mk_ListBoxCreateWidgetFunc C_ListBoxCreateWidgetFunc
cb'' IO (FunPtr C_ListBoxCreateWidgetFunc)
-> (FunPtr C_ListBoxCreateWidgetFunc
    -> IO (GClosure C_ListBoxCreateWidgetFunc))
-> IO (GClosure C_ListBoxCreateWidgetFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ListBoxCreateWidgetFunc
-> IO (GClosure C_ListBoxCreateWidgetFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ListBoxCreateWidgetFunc` into a `C_ListBoxCreateWidgetFunc`.
wrap_ListBoxCreateWidgetFunc ::
    Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc)) ->
    ListBoxCreateWidgetFunc_WithClosures ->
    C_ListBoxCreateWidgetFunc
wrap_ListBoxCreateWidgetFunc :: Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
-> ListBoxCreateWidgetFunc_WithClosures
-> C_ListBoxCreateWidgetFunc
wrap_ListBoxCreateWidgetFunc funptrptr :: Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
funptrptr _cb :: ListBoxCreateWidgetFunc_WithClosures
_cb item :: Ptr Object
item userData :: Ptr ()
userData = do
    Object
item' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
GObject.Object.Object) Ptr Object
item
    Widget
result <- ListBoxCreateWidgetFunc_WithClosures
_cb  Object
item' Ptr ()
userData
    Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
funptrptr
    Ptr Widget
result' <- Widget -> IO (Ptr Widget)
forall a b. (HasCallStack, GObject a) => a -> IO (Ptr b)
B.ManagedPtr.disownObject Widget
result
    Ptr Widget -> IO (Ptr Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
result'


-- callback KeySnoopFunc
--          -> Callable {returnType = Just (TBasicType TInt), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE to stop further processing of @event, %FALSE to continue.", sinceVersion = Nothing}, args = [Arg {argCName = "grab_widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the widget to which the event will be delivered", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gdk", name = "EventKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the key event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "data supplied to gtk_key_snooper_install()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Key snooper functions are called before normal event delivery.\nThey can be used to implement custom key event handling.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_KeySnoopFunc =
    Ptr Gtk.Widget.Widget ->
    Ptr Gdk.EventKey.EventKey ->
    Ptr () ->
    IO Int32

-- Args: [ Arg
--           { argCName = "grab_widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the widget to which the event will be delivered"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "event"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "EventKey" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the key event" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "func_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "data supplied to gtk_key_snooper_install()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_KeySnoopFunc :: FunPtr C_KeySnoopFunc -> C_KeySnoopFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_KeySnoopFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_KeySnoopFunc
    -> a
    -- ^ /@grabWidget@/: the widget to which the event will be delivered
    -> Gdk.EventKey.EventKey
    -- ^ /@event@/: the key event
    -> Ptr ()
    -- ^ /@funcData@/: data supplied to @/gtk_key_snooper_install()/@
    -> m Int32
    -- ^ __Returns:__ 'P.True' to stop further processing of /@event@/, 'P.False' to continue.
dynamic_KeySnoopFunc :: FunPtr C_KeySnoopFunc -> a -> EventKey -> Ptr () -> m Int32
dynamic_KeySnoopFunc __funPtr :: FunPtr C_KeySnoopFunc
__funPtr grabWidget :: a
grabWidget event :: EventKey
event funcData :: Ptr ()
funcData = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
grabWidget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
grabWidget
    Ptr EventKey
event' <- EventKey -> IO (Ptr EventKey)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr EventKey
event
    Int32
result <- (FunPtr C_KeySnoopFunc -> C_KeySnoopFunc
__dynamic_C_KeySnoopFunc FunPtr C_KeySnoopFunc
__funPtr) Ptr Widget
grabWidget' Ptr EventKey
event' Ptr ()
funcData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
grabWidget
    EventKey -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr EventKey
event
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

-- | Generate a function pointer callable from C code, from a `C_KeySnoopFunc`.
foreign import ccall "wrapper"
    mk_KeySnoopFunc :: C_KeySnoopFunc -> IO (FunPtr C_KeySnoopFunc)

-- | Key snooper functions are called before normal event delivery.
-- They can be used to implement custom key event handling.
type KeySnoopFunc =
    Gtk.Widget.Widget
    -- ^ /@grabWidget@/: the widget to which the event will be delivered
    -> Gdk.EventKey.EventKey
    -- ^ /@event@/: the key event
    -> IO Int32
    -- ^ __Returns:__ 'P.True' to stop further processing of /@event@/, 'P.False' to continue.

-- | A convenience synonym for @`Nothing` :: `Maybe` `KeySnoopFunc`@.
noKeySnoopFunc :: Maybe KeySnoopFunc
noKeySnoopFunc :: Maybe KeySnoopFunc
noKeySnoopFunc = Maybe KeySnoopFunc
forall a. Maybe a
Nothing

-- | Key snooper functions are called before normal event delivery.
-- They can be used to implement custom key event handling.
type KeySnoopFunc_WithClosures =
    Gtk.Widget.Widget
    -- ^ /@grabWidget@/: the widget to which the event will be delivered
    -> Gdk.EventKey.EventKey
    -- ^ /@event@/: the key event
    -> Ptr ()
    -- ^ /@funcData@/: data supplied to @/gtk_key_snooper_install()/@
    -> IO Int32
    -- ^ __Returns:__ 'P.True' to stop further processing of /@event@/, 'P.False' to continue.

-- | A convenience synonym for @`Nothing` :: `Maybe` `KeySnoopFunc_WithClosures`@.
noKeySnoopFunc_WithClosures :: Maybe KeySnoopFunc_WithClosures
noKeySnoopFunc_WithClosures :: Maybe KeySnoopFunc_WithClosures
noKeySnoopFunc_WithClosures = Maybe KeySnoopFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_KeySnoopFunc :: KeySnoopFunc -> KeySnoopFunc_WithClosures
drop_closures_KeySnoopFunc :: KeySnoopFunc -> KeySnoopFunc_WithClosures
drop_closures_KeySnoopFunc _f :: KeySnoopFunc
_f grabWidget :: Widget
grabWidget event :: EventKey
event _ = KeySnoopFunc
_f Widget
grabWidget EventKey
event

-- | Wrap the callback into a `GClosure`.
genClosure_KeySnoopFunc :: MonadIO m => KeySnoopFunc -> m (GClosure C_KeySnoopFunc)
genClosure_KeySnoopFunc :: KeySnoopFunc -> m (GClosure C_KeySnoopFunc)
genClosure_KeySnoopFunc cb :: KeySnoopFunc
cb = IO (GClosure C_KeySnoopFunc) -> m (GClosure C_KeySnoopFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_KeySnoopFunc) -> m (GClosure C_KeySnoopFunc))
-> IO (GClosure C_KeySnoopFunc) -> m (GClosure C_KeySnoopFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: KeySnoopFunc_WithClosures
cb' = KeySnoopFunc -> KeySnoopFunc_WithClosures
drop_closures_KeySnoopFunc KeySnoopFunc
cb
    let cb'' :: C_KeySnoopFunc
cb'' = Maybe (Ptr (FunPtr C_KeySnoopFunc))
-> KeySnoopFunc_WithClosures -> C_KeySnoopFunc
wrap_KeySnoopFunc Maybe (Ptr (FunPtr C_KeySnoopFunc))
forall a. Maybe a
Nothing KeySnoopFunc_WithClosures
cb'
    C_KeySnoopFunc -> IO (FunPtr C_KeySnoopFunc)
mk_KeySnoopFunc C_KeySnoopFunc
cb'' IO (FunPtr C_KeySnoopFunc)
-> (FunPtr C_KeySnoopFunc -> IO (GClosure C_KeySnoopFunc))
-> IO (GClosure C_KeySnoopFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_KeySnoopFunc -> IO (GClosure C_KeySnoopFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `KeySnoopFunc` into a `C_KeySnoopFunc`.
wrap_KeySnoopFunc ::
    Maybe (Ptr (FunPtr C_KeySnoopFunc)) ->
    KeySnoopFunc_WithClosures ->
    C_KeySnoopFunc
wrap_KeySnoopFunc :: Maybe (Ptr (FunPtr C_KeySnoopFunc))
-> KeySnoopFunc_WithClosures -> C_KeySnoopFunc
wrap_KeySnoopFunc funptrptr :: Maybe (Ptr (FunPtr C_KeySnoopFunc))
funptrptr _cb :: KeySnoopFunc_WithClosures
_cb grabWidget :: Ptr Widget
grabWidget event :: Ptr EventKey
event funcData :: Ptr ()
funcData = do
    Widget
grabWidget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
grabWidget
    EventKey
event' <- ((ManagedPtr EventKey -> EventKey) -> Ptr EventKey -> IO EventKey
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr EventKey -> EventKey
Gdk.EventKey.EventKey) Ptr EventKey
event
    Int32
result <- KeySnoopFunc_WithClosures
_cb  Widget
grabWidget' EventKey
event' Ptr ()
funcData
    Maybe (Ptr (FunPtr C_KeySnoopFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_KeySnoopFunc))
funptrptr
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result


-- callback IconViewForeachFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "icon_view", argType = TInterface (Name {namespace = "Gtk", name = "IconView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkIconView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreePath of a selected row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used by gtk_icon_view_selected_foreach() to map all\nselected rows.  It will be called on every selected row in the view.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_IconViewForeachFunc =
    Ptr Gtk.IconView.IconView ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "icon_view"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "IconView" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkIconView" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The #GtkTreePath of a selected row"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_IconViewForeachFunc :: FunPtr C_IconViewForeachFunc -> C_IconViewForeachFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_IconViewForeachFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.IconView.IsIconView a) =>
    FunPtr C_IconViewForeachFunc
    -> a
    -- ^ /@iconView@/: a t'GI.Gtk.Objects.IconView.IconView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of a selected row
    -> Ptr ()
    -- ^ /@data@/: user data
    -> m ()
dynamic_IconViewForeachFunc :: FunPtr C_IconViewForeachFunc -> a -> TreePath -> Ptr () -> m ()
dynamic_IconViewForeachFunc __funPtr :: FunPtr C_IconViewForeachFunc
__funPtr iconView :: a
iconView path :: TreePath
path data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr IconView
iconView' <- a -> IO (Ptr IconView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
iconView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    (FunPtr C_IconViewForeachFunc -> C_IconViewForeachFunc
__dynamic_C_IconViewForeachFunc FunPtr C_IconViewForeachFunc
__funPtr) Ptr IconView
iconView' Ptr TreePath
path' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
iconView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_IconViewForeachFunc`.
foreign import ccall "wrapper"
    mk_IconViewForeachFunc :: C_IconViewForeachFunc -> IO (FunPtr C_IconViewForeachFunc)

-- | A function used by 'GI.Gtk.Objects.IconView.iconViewSelectedForeach' to map all
-- selected rows.  It will be called on every selected row in the view.
type IconViewForeachFunc =
    Gtk.IconView.IconView
    -- ^ /@iconView@/: a t'GI.Gtk.Objects.IconView.IconView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of a selected row
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `IconViewForeachFunc`@.
noIconViewForeachFunc :: Maybe IconViewForeachFunc
noIconViewForeachFunc :: Maybe IconViewForeachFunc
noIconViewForeachFunc = Maybe IconViewForeachFunc
forall a. Maybe a
Nothing

-- | A function used by 'GI.Gtk.Objects.IconView.iconViewSelectedForeach' to map all
-- selected rows.  It will be called on every selected row in the view.
type IconViewForeachFunc_WithClosures =
    Gtk.IconView.IconView
    -- ^ /@iconView@/: a t'GI.Gtk.Objects.IconView.IconView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' of a selected row
    -> Ptr ()
    -- ^ /@data@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `IconViewForeachFunc_WithClosures`@.
noIconViewForeachFunc_WithClosures :: Maybe IconViewForeachFunc_WithClosures
noIconViewForeachFunc_WithClosures :: Maybe IconViewForeachFunc_WithClosures
noIconViewForeachFunc_WithClosures = Maybe IconViewForeachFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_IconViewForeachFunc :: IconViewForeachFunc -> IconViewForeachFunc_WithClosures
drop_closures_IconViewForeachFunc :: IconViewForeachFunc -> IconViewForeachFunc_WithClosures
drop_closures_IconViewForeachFunc _f :: IconViewForeachFunc
_f iconView :: IconView
iconView path :: TreePath
path _ = IconViewForeachFunc
_f IconView
iconView TreePath
path

-- | Wrap the callback into a `GClosure`.
genClosure_IconViewForeachFunc :: MonadIO m => IconViewForeachFunc -> m (GClosure C_IconViewForeachFunc)
genClosure_IconViewForeachFunc :: IconViewForeachFunc -> m (GClosure C_IconViewForeachFunc)
genClosure_IconViewForeachFunc cb :: IconViewForeachFunc
cb = IO (GClosure C_IconViewForeachFunc)
-> m (GClosure C_IconViewForeachFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_IconViewForeachFunc)
 -> m (GClosure C_IconViewForeachFunc))
-> IO (GClosure C_IconViewForeachFunc)
-> m (GClosure C_IconViewForeachFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: IconViewForeachFunc_WithClosures
cb' = IconViewForeachFunc -> IconViewForeachFunc_WithClosures
drop_closures_IconViewForeachFunc IconViewForeachFunc
cb
    let cb'' :: C_IconViewForeachFunc
cb'' = Maybe (Ptr (FunPtr C_IconViewForeachFunc))
-> IconViewForeachFunc_WithClosures -> C_IconViewForeachFunc
wrap_IconViewForeachFunc Maybe (Ptr (FunPtr C_IconViewForeachFunc))
forall a. Maybe a
Nothing IconViewForeachFunc_WithClosures
cb'
    C_IconViewForeachFunc -> IO (FunPtr C_IconViewForeachFunc)
mk_IconViewForeachFunc C_IconViewForeachFunc
cb'' IO (FunPtr C_IconViewForeachFunc)
-> (FunPtr C_IconViewForeachFunc
    -> IO (GClosure C_IconViewForeachFunc))
-> IO (GClosure C_IconViewForeachFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_IconViewForeachFunc -> IO (GClosure C_IconViewForeachFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `IconViewForeachFunc` into a `C_IconViewForeachFunc`.
wrap_IconViewForeachFunc ::
    Maybe (Ptr (FunPtr C_IconViewForeachFunc)) ->
    IconViewForeachFunc_WithClosures ->
    C_IconViewForeachFunc
wrap_IconViewForeachFunc :: Maybe (Ptr (FunPtr C_IconViewForeachFunc))
-> IconViewForeachFunc_WithClosures -> C_IconViewForeachFunc
wrap_IconViewForeachFunc funptrptr :: Maybe (Ptr (FunPtr C_IconViewForeachFunc))
funptrptr _cb :: IconViewForeachFunc_WithClosures
_cb iconView :: Ptr IconView
iconView path :: Ptr TreePath
path data_ :: Ptr ()
data_ = do
    IconView
iconView' <- ((ManagedPtr IconView -> IconView) -> Ptr IconView -> IO IconView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr IconView -> IconView
Gtk.IconView.IconView) Ptr IconView
iconView
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \path' :: TreePath
path' -> do
        IconViewForeachFunc_WithClosures
_cb  IconView
iconView' TreePath
path' Ptr ()
data_
        Maybe (Ptr (FunPtr C_IconViewForeachFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_IconViewForeachFunc))
funptrptr


-- callback FontFilterFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the font should be displayed", sinceVersion = Nothing}, args = [Arg {argCName = "family", argType = TInterface (Name {namespace = "Pango", name = "FontFamily"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoFontFamily", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "face", argType = TInterface (Name {namespace = "Pango", name = "FontFace"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoFontFace belonging to @family", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data passed to gtk_font_chooser_set_filter_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of function that is used for deciding what fonts get\nshown in a #GtkFontChooser. See gtk_font_chooser_set_filter_func().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_FontFilterFunc =
    Ptr Pango.FontFamily.FontFamily ->
    Ptr Pango.FontFace.FontFace ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "family"
--           , argType =
--               TInterface Name { namespace = "Pango" , name = "FontFamily" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #PangoFontFamily" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "face"
--           , argType =
--               TInterface Name { namespace = "Pango" , name = "FontFace" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #PangoFontFace belonging to @family"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data passed to gtk_font_chooser_set_filter_func()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_FontFilterFunc :: FunPtr C_FontFilterFunc -> C_FontFilterFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_FontFilterFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Pango.FontFamily.IsFontFamily a, Pango.FontFace.IsFontFace b) =>
    FunPtr C_FontFilterFunc
    -> a
    -- ^ /@family@/: a t'GI.Pango.Objects.FontFamily.FontFamily'
    -> b
    -- ^ /@face@/: a t'GI.Pango.Objects.FontFace.FontFace' belonging to /@family@/
    -> Ptr ()
    -- ^ /@data@/: user data passed to 'GI.Gtk.Interfaces.FontChooser.fontChooserSetFilterFunc'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the font should be displayed
dynamic_FontFilterFunc :: FunPtr C_FontFilterFunc -> a -> b -> Ptr () -> m Bool
dynamic_FontFilterFunc __funPtr :: FunPtr C_FontFilterFunc
__funPtr family :: a
family face :: b
face data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr FontFamily
family' <- a -> IO (Ptr FontFamily)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
family
    Ptr FontFace
face' <- b -> IO (Ptr FontFace)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
face
    CInt
result <- (FunPtr C_FontFilterFunc -> C_FontFilterFunc
__dynamic_C_FontFilterFunc FunPtr C_FontFilterFunc
__funPtr) Ptr FontFamily
family' Ptr FontFace
face' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
family
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
face
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_FontFilterFunc`.
foreign import ccall "wrapper"
    mk_FontFilterFunc :: C_FontFilterFunc -> IO (FunPtr C_FontFilterFunc)

-- | The type of function that is used for deciding what fonts get
-- shown in a t'GI.Gtk.Interfaces.FontChooser.FontChooser'. See 'GI.Gtk.Interfaces.FontChooser.fontChooserSetFilterFunc'.
type FontFilterFunc =
    Pango.FontFamily.FontFamily
    -- ^ /@family@/: a t'GI.Pango.Objects.FontFamily.FontFamily'
    -> Pango.FontFace.FontFace
    -- ^ /@face@/: a t'GI.Pango.Objects.FontFace.FontFace' belonging to /@family@/
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the font should be displayed

-- | A convenience synonym for @`Nothing` :: `Maybe` `FontFilterFunc`@.
noFontFilterFunc :: Maybe FontFilterFunc
noFontFilterFunc :: Maybe FontFilterFunc
noFontFilterFunc = Maybe FontFilterFunc
forall a. Maybe a
Nothing

-- | The type of function that is used for deciding what fonts get
-- shown in a t'GI.Gtk.Interfaces.FontChooser.FontChooser'. See 'GI.Gtk.Interfaces.FontChooser.fontChooserSetFilterFunc'.
type FontFilterFunc_WithClosures =
    Pango.FontFamily.FontFamily
    -- ^ /@family@/: a t'GI.Pango.Objects.FontFamily.FontFamily'
    -> Pango.FontFace.FontFace
    -- ^ /@face@/: a t'GI.Pango.Objects.FontFace.FontFace' belonging to /@family@/
    -> Ptr ()
    -- ^ /@data@/: user data passed to 'GI.Gtk.Interfaces.FontChooser.fontChooserSetFilterFunc'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the font should be displayed

-- | A convenience synonym for @`Nothing` :: `Maybe` `FontFilterFunc_WithClosures`@.
noFontFilterFunc_WithClosures :: Maybe FontFilterFunc_WithClosures
noFontFilterFunc_WithClosures :: Maybe FontFilterFunc_WithClosures
noFontFilterFunc_WithClosures = Maybe FontFilterFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FontFilterFunc :: FontFilterFunc -> FontFilterFunc_WithClosures
drop_closures_FontFilterFunc :: FontFilterFunc -> FontFilterFunc_WithClosures
drop_closures_FontFilterFunc _f :: FontFilterFunc
_f family :: FontFamily
family face :: FontFace
face _ = FontFilterFunc
_f FontFamily
family FontFace
face

-- | Wrap the callback into a `GClosure`.
genClosure_FontFilterFunc :: MonadIO m => FontFilterFunc -> m (GClosure C_FontFilterFunc)
genClosure_FontFilterFunc :: FontFilterFunc -> m (GClosure C_FontFilterFunc)
genClosure_FontFilterFunc cb :: FontFilterFunc
cb = IO (GClosure C_FontFilterFunc) -> m (GClosure C_FontFilterFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_FontFilterFunc) -> m (GClosure C_FontFilterFunc))
-> IO (GClosure C_FontFilterFunc) -> m (GClosure C_FontFilterFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: FontFilterFunc_WithClosures
cb' = FontFilterFunc -> FontFilterFunc_WithClosures
drop_closures_FontFilterFunc FontFilterFunc
cb
    let cb'' :: C_FontFilterFunc
cb'' = Maybe (Ptr (FunPtr C_FontFilterFunc))
-> FontFilterFunc_WithClosures -> C_FontFilterFunc
wrap_FontFilterFunc Maybe (Ptr (FunPtr C_FontFilterFunc))
forall a. Maybe a
Nothing FontFilterFunc_WithClosures
cb'
    C_FontFilterFunc -> IO (FunPtr C_FontFilterFunc)
mk_FontFilterFunc C_FontFilterFunc
cb'' IO (FunPtr C_FontFilterFunc)
-> (FunPtr C_FontFilterFunc -> IO (GClosure C_FontFilterFunc))
-> IO (GClosure C_FontFilterFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_FontFilterFunc -> IO (GClosure C_FontFilterFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `FontFilterFunc` into a `C_FontFilterFunc`.
wrap_FontFilterFunc ::
    Maybe (Ptr (FunPtr C_FontFilterFunc)) ->
    FontFilterFunc_WithClosures ->
    C_FontFilterFunc
wrap_FontFilterFunc :: Maybe (Ptr (FunPtr C_FontFilterFunc))
-> FontFilterFunc_WithClosures -> C_FontFilterFunc
wrap_FontFilterFunc funptrptr :: Maybe (Ptr (FunPtr C_FontFilterFunc))
funptrptr _cb :: FontFilterFunc_WithClosures
_cb family :: Ptr FontFamily
family face :: Ptr FontFace
face data_ :: Ptr ()
data_ = do
    FontFamily
family' <- ((ManagedPtr FontFamily -> FontFamily)
-> Ptr FontFamily -> IO FontFamily
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FontFamily -> FontFamily
Pango.FontFamily.FontFamily) Ptr FontFamily
family
    FontFace
face' <- ((ManagedPtr FontFace -> FontFace) -> Ptr FontFace -> IO FontFace
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FontFace -> FontFace
Pango.FontFace.FontFace) Ptr FontFace
face
    Bool
result <- FontFilterFunc_WithClosures
_cb  FontFamily
family' FontFace
face' Ptr ()
data_
    Maybe (Ptr (FunPtr C_FontFilterFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_FontFilterFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback FlowBoxSortFunc
--          -> Callable {returnType = Just (TBasicType TInt), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "< 0 if @child1 should be before @child2, 0 if\n    the are equal, and > 0 otherwise", sinceVersion = Nothing}, args = [Arg {argCName = "child1", argType = TInterface (Name {namespace = "Gtk", name = "FlowBoxChild"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the first child", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child2", argType = TInterface (Name {namespace = "Gtk", name = "FlowBoxChild"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the second child", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to compare two children to determine which\nshould come first.", sinceVersion = Just "3.12"}}
-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxSortFunc =
    Ptr Gtk.FlowBoxChild.FlowBoxChild ->
    Ptr Gtk.FlowBoxChild.FlowBoxChild ->
    Ptr () ->
    IO Int32

-- Args: [ Arg
--           { argCName = "child1"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "FlowBoxChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the first child" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child2"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "FlowBoxChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the second child" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_FlowBoxSortFunc :: FunPtr C_FlowBoxSortFunc -> C_FlowBoxSortFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_FlowBoxSortFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.FlowBoxChild.IsFlowBoxChild a, Gtk.FlowBoxChild.IsFlowBoxChild b) =>
    FunPtr C_FlowBoxSortFunc
    -> a
    -- ^ /@child1@/: the first child
    -> b
    -- ^ /@child2@/: the second child
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m Int32
    -- ^ __Returns:__ \< 0 if /@child1@/ should be before /@child2@/, 0 if
    --     the are equal, and > 0 otherwise
dynamic_FlowBoxSortFunc :: FunPtr C_FlowBoxSortFunc -> a -> b -> Ptr () -> m Int32
dynamic_FlowBoxSortFunc __funPtr :: FunPtr C_FlowBoxSortFunc
__funPtr child1 :: a
child1 child2 :: b
child2 userData :: Ptr ()
userData = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr FlowBoxChild
child1' <- a -> IO (Ptr FlowBoxChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child1
    Ptr FlowBoxChild
child2' <- b -> IO (Ptr FlowBoxChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child2
    Int32
result <- (FunPtr C_FlowBoxSortFunc -> C_FlowBoxSortFunc
__dynamic_C_FlowBoxSortFunc FunPtr C_FlowBoxSortFunc
__funPtr) Ptr FlowBoxChild
child1' Ptr FlowBoxChild
child2' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child1
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child2
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

-- | Generate a function pointer callable from C code, from a `C_FlowBoxSortFunc`.
foreign import ccall "wrapper"
    mk_FlowBoxSortFunc :: C_FlowBoxSortFunc -> IO (FunPtr C_FlowBoxSortFunc)

-- | A function to compare two children to determine which
-- should come first.
-- 
-- /Since: 3.12/
type FlowBoxSortFunc =
    Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child1@/: the first child
    -> Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child2@/: the second child
    -> IO Int32
    -- ^ __Returns:__ \< 0 if /@child1@/ should be before /@child2@/, 0 if
    --     the are equal, and > 0 otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxSortFunc`@.
noFlowBoxSortFunc :: Maybe FlowBoxSortFunc
noFlowBoxSortFunc :: Maybe FlowBoxSortFunc
noFlowBoxSortFunc = Maybe FlowBoxSortFunc
forall a. Maybe a
Nothing

-- | A function to compare two children to determine which
-- should come first.
-- 
-- /Since: 3.12/
type FlowBoxSortFunc_WithClosures =
    Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child1@/: the first child
    -> Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child2@/: the second child
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO Int32
    -- ^ __Returns:__ \< 0 if /@child1@/ should be before /@child2@/, 0 if
    --     the are equal, and > 0 otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxSortFunc_WithClosures`@.
noFlowBoxSortFunc_WithClosures :: Maybe FlowBoxSortFunc_WithClosures
noFlowBoxSortFunc_WithClosures :: Maybe FlowBoxSortFunc_WithClosures
noFlowBoxSortFunc_WithClosures = Maybe FlowBoxSortFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxSortFunc :: FlowBoxSortFunc -> FlowBoxSortFunc_WithClosures
drop_closures_FlowBoxSortFunc :: FlowBoxSortFunc -> FlowBoxSortFunc_WithClosures
drop_closures_FlowBoxSortFunc _f :: FlowBoxSortFunc
_f child1 :: FlowBoxChild
child1 child2 :: FlowBoxChild
child2 _ = FlowBoxSortFunc
_f FlowBoxChild
child1 FlowBoxChild
child2

-- | Wrap the callback into a `GClosure`.
genClosure_FlowBoxSortFunc :: MonadIO m => FlowBoxSortFunc -> m (GClosure C_FlowBoxSortFunc)
genClosure_FlowBoxSortFunc :: FlowBoxSortFunc -> m (GClosure C_FlowBoxSortFunc)
genClosure_FlowBoxSortFunc cb :: FlowBoxSortFunc
cb = IO (GClosure C_FlowBoxSortFunc) -> m (GClosure C_FlowBoxSortFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_FlowBoxSortFunc) -> m (GClosure C_FlowBoxSortFunc))
-> IO (GClosure C_FlowBoxSortFunc)
-> m (GClosure C_FlowBoxSortFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: FlowBoxSortFunc_WithClosures
cb' = FlowBoxSortFunc -> FlowBoxSortFunc_WithClosures
drop_closures_FlowBoxSortFunc FlowBoxSortFunc
cb
    let cb'' :: C_FlowBoxSortFunc
cb'' = Maybe (Ptr (FunPtr C_FlowBoxSortFunc))
-> FlowBoxSortFunc_WithClosures -> C_FlowBoxSortFunc
wrap_FlowBoxSortFunc Maybe (Ptr (FunPtr C_FlowBoxSortFunc))
forall a. Maybe a
Nothing FlowBoxSortFunc_WithClosures
cb'
    C_FlowBoxSortFunc -> IO (FunPtr C_FlowBoxSortFunc)
mk_FlowBoxSortFunc C_FlowBoxSortFunc
cb'' IO (FunPtr C_FlowBoxSortFunc)
-> (FunPtr C_FlowBoxSortFunc -> IO (GClosure C_FlowBoxSortFunc))
-> IO (GClosure C_FlowBoxSortFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_FlowBoxSortFunc -> IO (GClosure C_FlowBoxSortFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `FlowBoxSortFunc` into a `C_FlowBoxSortFunc`.
wrap_FlowBoxSortFunc ::
    Maybe (Ptr (FunPtr C_FlowBoxSortFunc)) ->
    FlowBoxSortFunc_WithClosures ->
    C_FlowBoxSortFunc
wrap_FlowBoxSortFunc :: Maybe (Ptr (FunPtr C_FlowBoxSortFunc))
-> FlowBoxSortFunc_WithClosures -> C_FlowBoxSortFunc
wrap_FlowBoxSortFunc funptrptr :: Maybe (Ptr (FunPtr C_FlowBoxSortFunc))
funptrptr _cb :: FlowBoxSortFunc_WithClosures
_cb child1 :: Ptr FlowBoxChild
child1 child2 :: Ptr FlowBoxChild
child2 userData :: Ptr ()
userData = do
    FlowBoxChild
child1' <- ((ManagedPtr FlowBoxChild -> FlowBoxChild)
-> Ptr FlowBoxChild -> IO FlowBoxChild
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FlowBoxChild -> FlowBoxChild
Gtk.FlowBoxChild.FlowBoxChild) Ptr FlowBoxChild
child1
    FlowBoxChild
child2' <- ((ManagedPtr FlowBoxChild -> FlowBoxChild)
-> Ptr FlowBoxChild -> IO FlowBoxChild
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FlowBoxChild -> FlowBoxChild
Gtk.FlowBoxChild.FlowBoxChild) Ptr FlowBoxChild
child2
    Int32
result <- FlowBoxSortFunc_WithClosures
_cb  FlowBoxChild
child1' FlowBoxChild
child2' Ptr ()
userData
    Maybe (Ptr (FunPtr C_FlowBoxSortFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_FlowBoxSortFunc))
funptrptr
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result


-- callback FlowBoxForeachFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "box", argType = TInterface (Name {namespace = "Gtk", name = "FlowBox"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkFlowBox", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "FlowBoxChild"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkFlowBoxChild", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used by gtk_flow_box_selected_foreach().\nIt will be called on every selected child of the @box.", sinceVersion = Just "3.12"}}
-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxForeachFunc =
    Ptr Gtk.FlowBox.FlowBox ->
    Ptr Gtk.FlowBoxChild.FlowBoxChild ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "box"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "FlowBox" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkFlowBox" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "FlowBoxChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkFlowBoxChild" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_FlowBoxForeachFunc :: FunPtr C_FlowBoxForeachFunc -> C_FlowBoxForeachFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_FlowBoxForeachFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.FlowBox.IsFlowBox a, Gtk.FlowBoxChild.IsFlowBoxChild b) =>
    FunPtr C_FlowBoxForeachFunc
    -> a
    -- ^ /@box@/: a t'GI.Gtk.Objects.FlowBox.FlowBox'
    -> b
    -- ^ /@child@/: a t'GI.Gtk.Objects.FlowBoxChild.FlowBoxChild'
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m ()
dynamic_FlowBoxForeachFunc :: FunPtr C_FlowBoxForeachFunc -> a -> b -> Ptr () -> m ()
dynamic_FlowBoxForeachFunc __funPtr :: FunPtr C_FlowBoxForeachFunc
__funPtr box :: a
box child :: b
child userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr FlowBox
box' <- a -> IO (Ptr FlowBox)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
box
    Ptr FlowBoxChild
child' <- b -> IO (Ptr FlowBoxChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    (FunPtr C_FlowBoxForeachFunc -> C_FlowBoxForeachFunc
__dynamic_C_FlowBoxForeachFunc FunPtr C_FlowBoxForeachFunc
__funPtr) Ptr FlowBox
box' Ptr FlowBoxChild
child' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
box
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_FlowBoxForeachFunc`.
foreign import ccall "wrapper"
    mk_FlowBoxForeachFunc :: C_FlowBoxForeachFunc -> IO (FunPtr C_FlowBoxForeachFunc)

-- | A function used by 'GI.Gtk.Objects.FlowBox.flowBoxSelectedForeach'.
-- It will be called on every selected child of the /@box@/.
-- 
-- /Since: 3.12/
type FlowBoxForeachFunc =
    Gtk.FlowBox.FlowBox
    -- ^ /@box@/: a t'GI.Gtk.Objects.FlowBox.FlowBox'
    -> Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child@/: a t'GI.Gtk.Objects.FlowBoxChild.FlowBoxChild'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxForeachFunc`@.
noFlowBoxForeachFunc :: Maybe FlowBoxForeachFunc
noFlowBoxForeachFunc :: Maybe FlowBoxForeachFunc
noFlowBoxForeachFunc = Maybe FlowBoxForeachFunc
forall a. Maybe a
Nothing

-- | A function used by 'GI.Gtk.Objects.FlowBox.flowBoxSelectedForeach'.
-- It will be called on every selected child of the /@box@/.
-- 
-- /Since: 3.12/
type FlowBoxForeachFunc_WithClosures =
    Gtk.FlowBox.FlowBox
    -- ^ /@box@/: a t'GI.Gtk.Objects.FlowBox.FlowBox'
    -> Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child@/: a t'GI.Gtk.Objects.FlowBoxChild.FlowBoxChild'
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxForeachFunc_WithClosures`@.
noFlowBoxForeachFunc_WithClosures :: Maybe FlowBoxForeachFunc_WithClosures
noFlowBoxForeachFunc_WithClosures :: Maybe FlowBoxForeachFunc_WithClosures
noFlowBoxForeachFunc_WithClosures = Maybe FlowBoxForeachFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxForeachFunc :: FlowBoxForeachFunc -> FlowBoxForeachFunc_WithClosures
drop_closures_FlowBoxForeachFunc :: FlowBoxForeachFunc -> FlowBoxForeachFunc_WithClosures
drop_closures_FlowBoxForeachFunc _f :: FlowBoxForeachFunc
_f box :: FlowBox
box child :: FlowBoxChild
child _ = FlowBoxForeachFunc
_f FlowBox
box FlowBoxChild
child

-- | Wrap the callback into a `GClosure`.
genClosure_FlowBoxForeachFunc :: MonadIO m => FlowBoxForeachFunc -> m (GClosure C_FlowBoxForeachFunc)
genClosure_FlowBoxForeachFunc :: FlowBoxForeachFunc -> m (GClosure C_FlowBoxForeachFunc)
genClosure_FlowBoxForeachFunc cb :: FlowBoxForeachFunc
cb = IO (GClosure C_FlowBoxForeachFunc)
-> m (GClosure C_FlowBoxForeachFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_FlowBoxForeachFunc)
 -> m (GClosure C_FlowBoxForeachFunc))
-> IO (GClosure C_FlowBoxForeachFunc)
-> m (GClosure C_FlowBoxForeachFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: FlowBoxForeachFunc_WithClosures
cb' = FlowBoxForeachFunc -> FlowBoxForeachFunc_WithClosures
drop_closures_FlowBoxForeachFunc FlowBoxForeachFunc
cb
    let cb'' :: C_FlowBoxForeachFunc
cb'' = Maybe (Ptr (FunPtr C_FlowBoxForeachFunc))
-> FlowBoxForeachFunc_WithClosures -> C_FlowBoxForeachFunc
wrap_FlowBoxForeachFunc Maybe (Ptr (FunPtr C_FlowBoxForeachFunc))
forall a. Maybe a
Nothing FlowBoxForeachFunc_WithClosures
cb'
    C_FlowBoxForeachFunc -> IO (FunPtr C_FlowBoxForeachFunc)
mk_FlowBoxForeachFunc C_FlowBoxForeachFunc
cb'' IO (FunPtr C_FlowBoxForeachFunc)
-> (FunPtr C_FlowBoxForeachFunc
    -> IO (GClosure C_FlowBoxForeachFunc))
-> IO (GClosure C_FlowBoxForeachFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_FlowBoxForeachFunc -> IO (GClosure C_FlowBoxForeachFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `FlowBoxForeachFunc` into a `C_FlowBoxForeachFunc`.
wrap_FlowBoxForeachFunc ::
    Maybe (Ptr (FunPtr C_FlowBoxForeachFunc)) ->
    FlowBoxForeachFunc_WithClosures ->
    C_FlowBoxForeachFunc
wrap_FlowBoxForeachFunc :: Maybe (Ptr (FunPtr C_FlowBoxForeachFunc))
-> FlowBoxForeachFunc_WithClosures -> C_FlowBoxForeachFunc
wrap_FlowBoxForeachFunc funptrptr :: Maybe (Ptr (FunPtr C_FlowBoxForeachFunc))
funptrptr _cb :: FlowBoxForeachFunc_WithClosures
_cb box :: Ptr FlowBox
box child :: Ptr FlowBoxChild
child userData :: Ptr ()
userData = do
    FlowBox
box' <- ((ManagedPtr FlowBox -> FlowBox) -> Ptr FlowBox -> IO FlowBox
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FlowBox -> FlowBox
Gtk.FlowBox.FlowBox) Ptr FlowBox
box
    FlowBoxChild
child' <- ((ManagedPtr FlowBoxChild -> FlowBoxChild)
-> Ptr FlowBoxChild -> IO FlowBoxChild
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FlowBoxChild -> FlowBoxChild
Gtk.FlowBoxChild.FlowBoxChild) Ptr FlowBoxChild
child
    FlowBoxForeachFunc_WithClosures
_cb  FlowBox
box' FlowBoxChild
child' Ptr ()
userData
    Maybe (Ptr (FunPtr C_FlowBoxForeachFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_FlowBoxForeachFunc))
funptrptr


-- callback FlowBoxFilterFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the row should be visible, %FALSE otherwise", sinceVersion = Nothing}, args = [Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "FlowBoxChild"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkFlowBoxChild that may be filtered", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function that will be called whenrever a child changes\nor is added. It lets you control if the child should be\nvisible or not.", sinceVersion = Just "3.12"}}
-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxFilterFunc =
    Ptr Gtk.FlowBoxChild.FlowBoxChild ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "child"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "FlowBoxChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkFlowBoxChild that may be filtered"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_FlowBoxFilterFunc :: FunPtr C_FlowBoxFilterFunc -> C_FlowBoxFilterFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_FlowBoxFilterFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.FlowBoxChild.IsFlowBoxChild a) =>
    FunPtr C_FlowBoxFilterFunc
    -> a
    -- ^ /@child@/: a t'GI.Gtk.Objects.FlowBoxChild.FlowBoxChild' that may be filtered
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the row should be visible, 'P.False' otherwise
dynamic_FlowBoxFilterFunc :: FunPtr C_FlowBoxFilterFunc -> a -> Ptr () -> m Bool
dynamic_FlowBoxFilterFunc __funPtr :: FunPtr C_FlowBoxFilterFunc
__funPtr child :: a
child userData :: Ptr ()
userData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr FlowBoxChild
child' <- a -> IO (Ptr FlowBoxChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    CInt
result <- (FunPtr C_FlowBoxFilterFunc -> C_FlowBoxFilterFunc
__dynamic_C_FlowBoxFilterFunc FunPtr C_FlowBoxFilterFunc
__funPtr) Ptr FlowBoxChild
child' Ptr ()
userData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_FlowBoxFilterFunc`.
foreign import ccall "wrapper"
    mk_FlowBoxFilterFunc :: C_FlowBoxFilterFunc -> IO (FunPtr C_FlowBoxFilterFunc)

-- | A function that will be called whenrever a child changes
-- or is added. It lets you control if the child should be
-- visible or not.
-- 
-- /Since: 3.12/
type FlowBoxFilterFunc =
    Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child@/: a t'GI.Gtk.Objects.FlowBoxChild.FlowBoxChild' that may be filtered
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the row should be visible, 'P.False' otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxFilterFunc`@.
noFlowBoxFilterFunc :: Maybe FlowBoxFilterFunc
noFlowBoxFilterFunc :: Maybe FlowBoxFilterFunc
noFlowBoxFilterFunc = Maybe FlowBoxFilterFunc
forall a. Maybe a
Nothing

-- | A function that will be called whenrever a child changes
-- or is added. It lets you control if the child should be
-- visible or not.
-- 
-- /Since: 3.12/
type FlowBoxFilterFunc_WithClosures =
    Gtk.FlowBoxChild.FlowBoxChild
    -- ^ /@child@/: a t'GI.Gtk.Objects.FlowBoxChild.FlowBoxChild' that may be filtered
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the row should be visible, 'P.False' otherwise

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxFilterFunc_WithClosures`@.
noFlowBoxFilterFunc_WithClosures :: Maybe FlowBoxFilterFunc_WithClosures
noFlowBoxFilterFunc_WithClosures :: Maybe FlowBoxFilterFunc_WithClosures
noFlowBoxFilterFunc_WithClosures = Maybe FlowBoxFilterFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxFilterFunc :: FlowBoxFilterFunc -> FlowBoxFilterFunc_WithClosures
drop_closures_FlowBoxFilterFunc :: FlowBoxFilterFunc -> FlowBoxFilterFunc_WithClosures
drop_closures_FlowBoxFilterFunc _f :: FlowBoxFilterFunc
_f child :: FlowBoxChild
child _ = FlowBoxFilterFunc
_f FlowBoxChild
child

-- | Wrap the callback into a `GClosure`.
genClosure_FlowBoxFilterFunc :: MonadIO m => FlowBoxFilterFunc -> m (GClosure C_FlowBoxFilterFunc)
genClosure_FlowBoxFilterFunc :: FlowBoxFilterFunc -> m (GClosure C_FlowBoxFilterFunc)
genClosure_FlowBoxFilterFunc cb :: FlowBoxFilterFunc
cb = IO (GClosure C_FlowBoxFilterFunc)
-> m (GClosure C_FlowBoxFilterFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_FlowBoxFilterFunc)
 -> m (GClosure C_FlowBoxFilterFunc))
-> IO (GClosure C_FlowBoxFilterFunc)
-> m (GClosure C_FlowBoxFilterFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: FlowBoxFilterFunc_WithClosures
cb' = FlowBoxFilterFunc -> FlowBoxFilterFunc_WithClosures
drop_closures_FlowBoxFilterFunc FlowBoxFilterFunc
cb
    let cb'' :: C_FlowBoxFilterFunc
cb'' = Maybe (Ptr (FunPtr C_FlowBoxFilterFunc))
-> FlowBoxFilterFunc_WithClosures -> C_FlowBoxFilterFunc
wrap_FlowBoxFilterFunc Maybe (Ptr (FunPtr C_FlowBoxFilterFunc))
forall a. Maybe a
Nothing FlowBoxFilterFunc_WithClosures
cb'
    C_FlowBoxFilterFunc -> IO (FunPtr C_FlowBoxFilterFunc)
mk_FlowBoxFilterFunc C_FlowBoxFilterFunc
cb'' IO (FunPtr C_FlowBoxFilterFunc)
-> (FunPtr C_FlowBoxFilterFunc
    -> IO (GClosure C_FlowBoxFilterFunc))
-> IO (GClosure C_FlowBoxFilterFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_FlowBoxFilterFunc -> IO (GClosure C_FlowBoxFilterFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `FlowBoxFilterFunc` into a `C_FlowBoxFilterFunc`.
wrap_FlowBoxFilterFunc ::
    Maybe (Ptr (FunPtr C_FlowBoxFilterFunc)) ->
    FlowBoxFilterFunc_WithClosures ->
    C_FlowBoxFilterFunc
wrap_FlowBoxFilterFunc :: Maybe (Ptr (FunPtr C_FlowBoxFilterFunc))
-> FlowBoxFilterFunc_WithClosures -> C_FlowBoxFilterFunc
wrap_FlowBoxFilterFunc funptrptr :: Maybe (Ptr (FunPtr C_FlowBoxFilterFunc))
funptrptr _cb :: FlowBoxFilterFunc_WithClosures
_cb child :: Ptr FlowBoxChild
child userData :: Ptr ()
userData = do
    FlowBoxChild
child' <- ((ManagedPtr FlowBoxChild -> FlowBoxChild)
-> Ptr FlowBoxChild -> IO FlowBoxChild
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FlowBoxChild -> FlowBoxChild
Gtk.FlowBoxChild.FlowBoxChild) Ptr FlowBoxChild
child
    Bool
result <- FlowBoxFilterFunc_WithClosures
_cb  FlowBoxChild
child' Ptr ()
userData
    Maybe (Ptr (FunPtr C_FlowBoxFilterFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_FlowBoxFilterFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback FlowBoxCreateWidgetFunc
--          -> Callable {returnType = Just (TInterface (Name {namespace = "Gtk", name = "Widget"})), returnMayBeNull = False, returnTransfer = TransferEverything, returnDocumentation = Documentation {rawDocText = Just "a #GtkWidget that represents @item", sinceVersion = Nothing}, args = [Arg {argCName = "item", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the item from the model for which to create a widget for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data from gtk_flow_box_bind_model()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Called for flow boxes that are bound to a #GListModel with\ngtk_flow_box_bind_model() for each item that gets added to the model.", sinceVersion = Just "3.18"}}
-- | Type for the callback on the (unwrapped) C side.
type C_FlowBoxCreateWidgetFunc =
    Ptr GObject.Object.Object ->
    Ptr () ->
    IO (Ptr Gtk.Widget.Widget)

-- Args: [ Arg
--           { argCName = "item"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Object" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the item from the model for which to create a widget for"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data from gtk_flow_box_bind_model()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Widget" })
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_FlowBoxCreateWidgetFunc :: FunPtr C_FlowBoxCreateWidgetFunc -> C_FlowBoxCreateWidgetFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_FlowBoxCreateWidgetFunc ::
    (B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a) =>
    FunPtr C_FlowBoxCreateWidgetFunc
    -> Maybe (a)
    -- ^ /@item@/: the item from the model for which to create a widget for
    -> Ptr ()
    -- ^ /@userData@/: user data from 'GI.Gtk.Objects.FlowBox.flowBoxBindModel'
    -> m Gtk.Widget.Widget
    -- ^ __Returns:__ a t'GI.Gtk.Objects.Widget.Widget' that represents /@item@/
dynamic_FlowBoxCreateWidgetFunc :: FunPtr C_ListBoxCreateWidgetFunc -> Maybe a -> Ptr () -> m Widget
dynamic_FlowBoxCreateWidgetFunc __funPtr :: FunPtr C_ListBoxCreateWidgetFunc
__funPtr item :: Maybe a
item userData :: Ptr ()
userData = IO Widget -> m Widget
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Widget -> m Widget) -> IO Widget -> m Widget
forall a b. (a -> b) -> a -> b
$ do
    Ptr Object
maybeItem <- case Maybe a
item of
        Nothing -> Ptr Object -> IO (Ptr Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
forall a. Ptr a
nullPtr
        Just jItem :: a
jItem -> do
            Ptr Object
jItem' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
jItem
            Ptr Object -> IO (Ptr Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
jItem'
    Ptr Widget
result <- (FunPtr C_ListBoxCreateWidgetFunc -> C_ListBoxCreateWidgetFunc
__dynamic_C_FlowBoxCreateWidgetFunc FunPtr C_ListBoxCreateWidgetFunc
__funPtr) Ptr Object
maybeItem Ptr ()
userData
    Text -> C_WidgetClassUnrealizeFieldCallback
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "flowBoxCreateWidgetFunc" Ptr Widget
result
    Widget
result' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
result
    Maybe a -> (a -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe a
item a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Widget -> IO Widget
forall (m :: * -> *) a. Monad m => a -> m a
return Widget
result'

-- | Generate a function pointer callable from C code, from a `C_FlowBoxCreateWidgetFunc`.
foreign import ccall "wrapper"
    mk_FlowBoxCreateWidgetFunc :: C_FlowBoxCreateWidgetFunc -> IO (FunPtr C_FlowBoxCreateWidgetFunc)

-- | Called for flow boxes that are bound to a t'GI.Gio.Interfaces.ListModel.ListModel' with
-- 'GI.Gtk.Objects.FlowBox.flowBoxBindModel' for each item that gets added to the model.
-- 
-- /Since: 3.18/
type FlowBoxCreateWidgetFunc =
    Maybe GObject.Object.Object
    -- ^ /@item@/: the item from the model for which to create a widget for
    -> IO Gtk.Widget.Widget
    -- ^ __Returns:__ a t'GI.Gtk.Objects.Widget.Widget' that represents /@item@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxCreateWidgetFunc`@.
noFlowBoxCreateWidgetFunc :: Maybe FlowBoxCreateWidgetFunc
noFlowBoxCreateWidgetFunc :: Maybe FlowBoxCreateWidgetFunc
noFlowBoxCreateWidgetFunc = Maybe FlowBoxCreateWidgetFunc
forall a. Maybe a
Nothing

-- | Called for flow boxes that are bound to a t'GI.Gio.Interfaces.ListModel.ListModel' with
-- 'GI.Gtk.Objects.FlowBox.flowBoxBindModel' for each item that gets added to the model.
-- 
-- /Since: 3.18/
type FlowBoxCreateWidgetFunc_WithClosures =
    Maybe GObject.Object.Object
    -- ^ /@item@/: the item from the model for which to create a widget for
    -> Ptr ()
    -- ^ /@userData@/: user data from 'GI.Gtk.Objects.FlowBox.flowBoxBindModel'
    -> IO Gtk.Widget.Widget
    -- ^ __Returns:__ a t'GI.Gtk.Objects.Widget.Widget' that represents /@item@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `FlowBoxCreateWidgetFunc_WithClosures`@.
noFlowBoxCreateWidgetFunc_WithClosures :: Maybe FlowBoxCreateWidgetFunc_WithClosures
noFlowBoxCreateWidgetFunc_WithClosures :: Maybe FlowBoxCreateWidgetFunc_WithClosures
noFlowBoxCreateWidgetFunc_WithClosures = Maybe FlowBoxCreateWidgetFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FlowBoxCreateWidgetFunc :: FlowBoxCreateWidgetFunc -> FlowBoxCreateWidgetFunc_WithClosures
drop_closures_FlowBoxCreateWidgetFunc :: FlowBoxCreateWidgetFunc -> FlowBoxCreateWidgetFunc_WithClosures
drop_closures_FlowBoxCreateWidgetFunc _f :: FlowBoxCreateWidgetFunc
_f item :: Maybe Object
item _ = FlowBoxCreateWidgetFunc
_f Maybe Object
item

-- | Wrap the callback into a `GClosure`.
genClosure_FlowBoxCreateWidgetFunc :: MonadIO m => FlowBoxCreateWidgetFunc -> m (GClosure C_FlowBoxCreateWidgetFunc)
genClosure_FlowBoxCreateWidgetFunc :: FlowBoxCreateWidgetFunc -> m (GClosure C_ListBoxCreateWidgetFunc)
genClosure_FlowBoxCreateWidgetFunc cb :: FlowBoxCreateWidgetFunc
cb = IO (GClosure C_ListBoxCreateWidgetFunc)
-> m (GClosure C_ListBoxCreateWidgetFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ListBoxCreateWidgetFunc)
 -> m (GClosure C_ListBoxCreateWidgetFunc))
-> IO (GClosure C_ListBoxCreateWidgetFunc)
-> m (GClosure C_ListBoxCreateWidgetFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: FlowBoxCreateWidgetFunc_WithClosures
cb' = FlowBoxCreateWidgetFunc -> FlowBoxCreateWidgetFunc_WithClosures
drop_closures_FlowBoxCreateWidgetFunc FlowBoxCreateWidgetFunc
cb
    let cb'' :: C_ListBoxCreateWidgetFunc
cb'' = Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
-> FlowBoxCreateWidgetFunc_WithClosures
-> C_ListBoxCreateWidgetFunc
wrap_FlowBoxCreateWidgetFunc Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
forall a. Maybe a
Nothing FlowBoxCreateWidgetFunc_WithClosures
cb'
    C_ListBoxCreateWidgetFunc -> IO (FunPtr C_ListBoxCreateWidgetFunc)
mk_FlowBoxCreateWidgetFunc C_ListBoxCreateWidgetFunc
cb'' IO (FunPtr C_ListBoxCreateWidgetFunc)
-> (FunPtr C_ListBoxCreateWidgetFunc
    -> IO (GClosure C_ListBoxCreateWidgetFunc))
-> IO (GClosure C_ListBoxCreateWidgetFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ListBoxCreateWidgetFunc
-> IO (GClosure C_ListBoxCreateWidgetFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `FlowBoxCreateWidgetFunc` into a `C_FlowBoxCreateWidgetFunc`.
wrap_FlowBoxCreateWidgetFunc ::
    Maybe (Ptr (FunPtr C_FlowBoxCreateWidgetFunc)) ->
    FlowBoxCreateWidgetFunc_WithClosures ->
    C_FlowBoxCreateWidgetFunc
wrap_FlowBoxCreateWidgetFunc :: Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
-> FlowBoxCreateWidgetFunc_WithClosures
-> C_ListBoxCreateWidgetFunc
wrap_FlowBoxCreateWidgetFunc funptrptr :: Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
funptrptr _cb :: FlowBoxCreateWidgetFunc_WithClosures
_cb item :: Ptr Object
item userData :: Ptr ()
userData = do
    Maybe Object
maybeItem <-
        if Ptr Object
item Ptr Object -> Ptr Object -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr Object
forall a. Ptr a
nullPtr
        then Maybe Object -> IO (Maybe Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Object
forall a. Maybe a
Nothing
        else do
            Object
item' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
GObject.Object.Object) Ptr Object
item
            Maybe Object -> IO (Maybe Object)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe Object -> IO (Maybe Object))
-> Maybe Object -> IO (Maybe Object)
forall a b. (a -> b) -> a -> b
$ Object -> Maybe Object
forall a. a -> Maybe a
Just Object
item'
    Widget
result <- FlowBoxCreateWidgetFunc_WithClosures
_cb  Maybe Object
maybeItem Ptr ()
userData
    Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ListBoxCreateWidgetFunc))
funptrptr
    Ptr Widget
result' <- Widget -> IO (Ptr Widget)
forall a b. (HasCallStack, GObject a) => a -> IO (Ptr b)
B.ManagedPtr.disownObject Widget
result
    Ptr Widget -> IO (Ptr Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
result'


-- callback FileFilterFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if the file should be displayed", sinceVersion = Nothing}, args = [Arg {argCName = "filter_info", argType = TInterface (Name {namespace = "Gtk", name = "FileFilterInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkFileFilterInfo that is filled according\n  to the @needed flags passed to gtk_file_filter_add_custom()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data passed to gtk_file_filter_add_custom()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of function that is used with custom filters, see\ngtk_file_filter_add_custom().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_FileFilterFunc =
    Ptr Gtk.FileFilterInfo.FileFilterInfo ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "filter_info"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "FileFilterInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkFileFilterInfo that is filled according\n  to the @needed flags passed to gtk_file_filter_add_custom()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data passed to gtk_file_filter_add_custom()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_FileFilterFunc :: FunPtr C_FileFilterFunc -> C_FileFilterFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_FileFilterFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_FileFilterFunc
    -> Gtk.FileFilterInfo.FileFilterInfo
    -- ^ /@filterInfo@/: a t'GI.Gtk.Structs.FileFilterInfo.FileFilterInfo' that is filled according
    --   to the /@needed@/ flags passed to 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'
    -> Ptr ()
    -- ^ /@data@/: user data passed to 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the file should be displayed
dynamic_FileFilterFunc :: FunPtr C_FileFilterFunc -> FileFilterInfo -> Ptr () -> m Bool
dynamic_FileFilterFunc __funPtr :: FunPtr C_FileFilterFunc
__funPtr filterInfo :: FileFilterInfo
filterInfo data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr FileFilterInfo
filterInfo' <- FileFilterInfo -> IO (Ptr FileFilterInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FileFilterInfo
filterInfo
    CInt
result <- (FunPtr C_FileFilterFunc -> C_FileFilterFunc
__dynamic_C_FileFilterFunc FunPtr C_FileFilterFunc
__funPtr) Ptr FileFilterInfo
filterInfo' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    FileFilterInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr FileFilterInfo
filterInfo
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_FileFilterFunc`.
foreign import ccall "wrapper"
    mk_FileFilterFunc :: C_FileFilterFunc -> IO (FunPtr C_FileFilterFunc)

-- | The type of function that is used with custom filters, see
-- 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'.
type FileFilterFunc =
    Gtk.FileFilterInfo.FileFilterInfo
    -- ^ /@filterInfo@/: a t'GI.Gtk.Structs.FileFilterInfo.FileFilterInfo' that is filled according
    --   to the /@needed@/ flags passed to 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the file should be displayed

-- | A convenience synonym for @`Nothing` :: `Maybe` `FileFilterFunc`@.
noFileFilterFunc :: Maybe FileFilterFunc
noFileFilterFunc :: Maybe FileFilterFunc
noFileFilterFunc = Maybe FileFilterFunc
forall a. Maybe a
Nothing

-- | The type of function that is used with custom filters, see
-- 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'.
type FileFilterFunc_WithClosures =
    Gtk.FileFilterInfo.FileFilterInfo
    -- ^ /@filterInfo@/: a t'GI.Gtk.Structs.FileFilterInfo.FileFilterInfo' that is filled according
    --   to the /@needed@/ flags passed to 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'
    -> Ptr ()
    -- ^ /@data@/: user data passed to 'GI.Gtk.Objects.FileFilter.fileFilterAddCustom'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the file should be displayed

-- | A convenience synonym for @`Nothing` :: `Maybe` `FileFilterFunc_WithClosures`@.
noFileFilterFunc_WithClosures :: Maybe FileFilterFunc_WithClosures
noFileFilterFunc_WithClosures :: Maybe FileFilterFunc_WithClosures
noFileFilterFunc_WithClosures = Maybe FileFilterFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_FileFilterFunc :: FileFilterFunc -> FileFilterFunc_WithClosures
drop_closures_FileFilterFunc :: FileFilterFunc -> FileFilterFunc_WithClosures
drop_closures_FileFilterFunc _f :: FileFilterFunc
_f filterInfo :: FileFilterInfo
filterInfo _ = FileFilterFunc
_f FileFilterInfo
filterInfo

-- | Wrap the callback into a `GClosure`.
genClosure_FileFilterFunc :: MonadIO m => FileFilterFunc -> m (GClosure C_FileFilterFunc)
genClosure_FileFilterFunc :: FileFilterFunc -> m (GClosure C_FileFilterFunc)
genClosure_FileFilterFunc cb :: FileFilterFunc
cb = IO (GClosure C_FileFilterFunc) -> m (GClosure C_FileFilterFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_FileFilterFunc) -> m (GClosure C_FileFilterFunc))
-> IO (GClosure C_FileFilterFunc) -> m (GClosure C_FileFilterFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: FileFilterFunc_WithClosures
cb' = FileFilterFunc -> FileFilterFunc_WithClosures
drop_closures_FileFilterFunc FileFilterFunc
cb
    let cb'' :: C_FileFilterFunc
cb'' = Maybe (Ptr (FunPtr C_FileFilterFunc))
-> FileFilterFunc_WithClosures -> C_FileFilterFunc
wrap_FileFilterFunc Maybe (Ptr (FunPtr C_FileFilterFunc))
forall a. Maybe a
Nothing FileFilterFunc_WithClosures
cb'
    C_FileFilterFunc -> IO (FunPtr C_FileFilterFunc)
mk_FileFilterFunc C_FileFilterFunc
cb'' IO (FunPtr C_FileFilterFunc)
-> (FunPtr C_FileFilterFunc -> IO (GClosure C_FileFilterFunc))
-> IO (GClosure C_FileFilterFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_FileFilterFunc -> IO (GClosure C_FileFilterFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `FileFilterFunc` into a `C_FileFilterFunc`.
wrap_FileFilterFunc ::
    Maybe (Ptr (FunPtr C_FileFilterFunc)) ->
    FileFilterFunc_WithClosures ->
    C_FileFilterFunc
wrap_FileFilterFunc :: Maybe (Ptr (FunPtr C_FileFilterFunc))
-> FileFilterFunc_WithClosures -> C_FileFilterFunc
wrap_FileFilterFunc funptrptr :: Maybe (Ptr (FunPtr C_FileFilterFunc))
funptrptr _cb :: FileFilterFunc_WithClosures
_cb filterInfo :: Ptr FileFilterInfo
filterInfo data_ :: Ptr ()
data_ = do
    FileFilterInfo
filterInfo' <- ((ManagedPtr FileFilterInfo -> FileFilterInfo)
-> Ptr FileFilterInfo -> IO FileFilterInfo
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr FileFilterInfo -> FileFilterInfo
Gtk.FileFilterInfo.FileFilterInfo) Ptr FileFilterInfo
filterInfo
    Bool
result <- FileFilterFunc_WithClosures
_cb  FileFilterInfo
filterInfo' Ptr ()
data_
    Maybe (Ptr (FunPtr C_FileFilterFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_FileFilterFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback EntryCompletionMatchFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE if @iter should be displayed as a possible completion\n    for @key", sinceVersion = Nothing}, args = [Arg {argCName = "completion", argType = TInterface (Name {namespace = "Gtk", name = "EntryCompletion"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkEntryCompletion", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the string to match, normalized and case-folded", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeIter indicating the row to match", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data given to gtk_entry_completion_set_match_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function which decides whether the row indicated by @iter matches\na given @key, and should be displayed as a possible completion for @key.\nNote that @key is normalized and case-folded (see g_utf8_normalize()\nand g_utf8_casefold()). If this is not appropriate, match functions\nhave access to the unmodified key via\n`gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ()))`.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_EntryCompletionMatchFunc =
    Ptr Gtk.EntryCompletion.EntryCompletion ->
    CString ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "completion"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "EntryCompletion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkEntryCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "key"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the string to match, normalized and case-folded"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTreeIter indicating the row to match"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data given to gtk_entry_completion_set_match_func()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_EntryCompletionMatchFunc :: FunPtr C_EntryCompletionMatchFunc -> C_EntryCompletionMatchFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_EntryCompletionMatchFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.EntryCompletion.IsEntryCompletion a) =>
    FunPtr C_EntryCompletionMatchFunc
    -> a
    -- ^ /@completion@/: the t'GI.Gtk.Objects.EntryCompletion.EntryCompletion'
    -> T.Text
    -- ^ /@key@/: the string to match, normalized and case-folded
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' indicating the row to match
    -> Ptr ()
    -- ^ /@userData@/: user data given to 'GI.Gtk.Objects.EntryCompletion.entryCompletionSetMatchFunc'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if /@iter@/ should be displayed as a possible completion
    --     for /@key@/
dynamic_EntryCompletionMatchFunc :: FunPtr C_EntryCompletionMatchFunc
-> a -> Text -> TreeIter -> Ptr () -> m Bool
dynamic_EntryCompletionMatchFunc __funPtr :: FunPtr C_EntryCompletionMatchFunc
__funPtr completion :: a
completion key :: Text
key iter :: TreeIter
iter userData :: Ptr ()
userData = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr EntryCompletion
completion' <- a -> IO (Ptr EntryCompletion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
completion
    CString
key' <- Text -> IO CString
textToCString Text
key
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    CInt
result <- (FunPtr C_EntryCompletionMatchFunc -> C_EntryCompletionMatchFunc
__dynamic_C_EntryCompletionMatchFunc FunPtr C_EntryCompletionMatchFunc
__funPtr) Ptr EntryCompletion
completion' CString
key' Ptr TreeIter
iter' Ptr ()
userData
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
completion
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
key'
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_EntryCompletionMatchFunc`.
foreign import ccall "wrapper"
    mk_EntryCompletionMatchFunc :: C_EntryCompletionMatchFunc -> IO (FunPtr C_EntryCompletionMatchFunc)

-- | 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 'GI.GLib.Functions.utf8Normalize'
-- and 'GI.GLib.Functions.utf8Casefold'). If this is not appropriate, match functions
-- have access to the unmodified key via
-- @gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ()))@.
type EntryCompletionMatchFunc =
    Gtk.EntryCompletion.EntryCompletion
    -- ^ /@completion@/: the t'GI.Gtk.Objects.EntryCompletion.EntryCompletion'
    -> T.Text
    -- ^ /@key@/: the string to match, normalized and case-folded
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' indicating the row to match
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if /@iter@/ should be displayed as a possible completion
    --     for /@key@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `EntryCompletionMatchFunc`@.
noEntryCompletionMatchFunc :: Maybe EntryCompletionMatchFunc
noEntryCompletionMatchFunc :: Maybe EntryCompletionMatchFunc
noEntryCompletionMatchFunc = Maybe EntryCompletionMatchFunc
forall a. Maybe a
Nothing

-- | 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 'GI.GLib.Functions.utf8Normalize'
-- and 'GI.GLib.Functions.utf8Casefold'). If this is not appropriate, match functions
-- have access to the unmodified key via
-- @gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ()))@.
type EntryCompletionMatchFunc_WithClosures =
    Gtk.EntryCompletion.EntryCompletion
    -- ^ /@completion@/: the t'GI.Gtk.Objects.EntryCompletion.EntryCompletion'
    -> T.Text
    -- ^ /@key@/: the string to match, normalized and case-folded
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' indicating the row to match
    -> Ptr ()
    -- ^ /@userData@/: user data given to 'GI.Gtk.Objects.EntryCompletion.entryCompletionSetMatchFunc'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if /@iter@/ should be displayed as a possible completion
    --     for /@key@/

-- | A convenience synonym for @`Nothing` :: `Maybe` `EntryCompletionMatchFunc_WithClosures`@.
noEntryCompletionMatchFunc_WithClosures :: Maybe EntryCompletionMatchFunc_WithClosures
noEntryCompletionMatchFunc_WithClosures :: Maybe EntryCompletionMatchFunc_WithClosures
noEntryCompletionMatchFunc_WithClosures = Maybe EntryCompletionMatchFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_EntryCompletionMatchFunc :: EntryCompletionMatchFunc -> EntryCompletionMatchFunc_WithClosures
drop_closures_EntryCompletionMatchFunc :: EntryCompletionMatchFunc -> EntryCompletionMatchFunc_WithClosures
drop_closures_EntryCompletionMatchFunc _f :: EntryCompletionMatchFunc
_f completion :: EntryCompletion
completion key :: Text
key iter :: TreeIter
iter _ = EntryCompletionMatchFunc
_f EntryCompletion
completion Text
key TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_EntryCompletionMatchFunc :: MonadIO m => EntryCompletionMatchFunc -> m (GClosure C_EntryCompletionMatchFunc)
genClosure_EntryCompletionMatchFunc :: EntryCompletionMatchFunc -> m (GClosure C_EntryCompletionMatchFunc)
genClosure_EntryCompletionMatchFunc cb :: EntryCompletionMatchFunc
cb = IO (GClosure C_EntryCompletionMatchFunc)
-> m (GClosure C_EntryCompletionMatchFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_EntryCompletionMatchFunc)
 -> m (GClosure C_EntryCompletionMatchFunc))
-> IO (GClosure C_EntryCompletionMatchFunc)
-> m (GClosure C_EntryCompletionMatchFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: EntryCompletionMatchFunc_WithClosures
cb' = EntryCompletionMatchFunc -> EntryCompletionMatchFunc_WithClosures
drop_closures_EntryCompletionMatchFunc EntryCompletionMatchFunc
cb
    let cb'' :: C_EntryCompletionMatchFunc
cb'' = Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc))
-> EntryCompletionMatchFunc_WithClosures
-> C_EntryCompletionMatchFunc
wrap_EntryCompletionMatchFunc Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc))
forall a. Maybe a
Nothing EntryCompletionMatchFunc_WithClosures
cb'
    C_EntryCompletionMatchFunc
-> IO (FunPtr C_EntryCompletionMatchFunc)
mk_EntryCompletionMatchFunc C_EntryCompletionMatchFunc
cb'' IO (FunPtr C_EntryCompletionMatchFunc)
-> (FunPtr C_EntryCompletionMatchFunc
    -> IO (GClosure C_EntryCompletionMatchFunc))
-> IO (GClosure C_EntryCompletionMatchFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_EntryCompletionMatchFunc
-> IO (GClosure C_EntryCompletionMatchFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `EntryCompletionMatchFunc` into a `C_EntryCompletionMatchFunc`.
wrap_EntryCompletionMatchFunc ::
    Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc)) ->
    EntryCompletionMatchFunc_WithClosures ->
    C_EntryCompletionMatchFunc
wrap_EntryCompletionMatchFunc :: Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc))
-> EntryCompletionMatchFunc_WithClosures
-> C_EntryCompletionMatchFunc
wrap_EntryCompletionMatchFunc funptrptr :: Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc))
funptrptr _cb :: EntryCompletionMatchFunc_WithClosures
_cb completion :: Ptr EntryCompletion
completion key :: CString
key iter :: Ptr TreeIter
iter userData :: Ptr ()
userData = do
    EntryCompletion
completion' <- ((ManagedPtr EntryCompletion -> EntryCompletion)
-> Ptr EntryCompletion -> IO EntryCompletion
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr EntryCompletion -> EntryCompletion
Gtk.EntryCompletion.EntryCompletion) Ptr EntryCompletion
completion
    Text
key' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
key
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
        Bool
result <- EntryCompletionMatchFunc_WithClosures
_cb  EntryCompletion
completion' Text
key' TreeIter
iter' Ptr ()
userData
        Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_EntryCompletionMatchFunc))
funptrptr
        let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
        CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback ContainerClassSetFocusChildFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkContainer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GtkWidget, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassSetFocusChildFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkContainer" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkWidget, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassSetFocusChildFieldCallback :: FunPtr C_ContainerClassSetFocusChildFieldCallback -> C_ContainerClassSetFocusChildFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassSetFocusChildFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassSetFocusChildFieldCallback
    -> a
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Maybe (b)
    -- ^ /@child@/: a t'GI.Gtk.Objects.Widget.Widget', or 'P.Nothing'
    -> m ()
dynamic_ContainerClassSetFocusChildFieldCallback :: FunPtr C_ContainerClassSetFocusChildFieldCallback
-> a -> Maybe b -> m ()
dynamic_ContainerClassSetFocusChildFieldCallback __funPtr :: FunPtr C_ContainerClassSetFocusChildFieldCallback
__funPtr container :: a
container child :: Maybe b
child = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
maybeChild <- case Maybe b
child of
        Nothing -> Ptr Widget -> IO (Ptr Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
forall a. Ptr a
nullPtr
        Just jChild :: b
jChild -> do
            Ptr Widget
jChild' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jChild
            Ptr Widget -> IO (Ptr Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
jChild'
    (FunPtr C_ContainerClassSetFocusChildFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
__dynamic_C_ContainerClassSetFocusChildFieldCallback FunPtr C_ContainerClassSetFocusChildFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
maybeChild
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
child b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassSetFocusChildFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassSetFocusChildFieldCallback :: C_ContainerClassSetFocusChildFieldCallback -> IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassSetFocusChildFieldCallback =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Maybe Gtk.Widget.Widget
    -- ^ /@child@/: a t'GI.Gtk.Objects.Widget.Widget', or 'P.Nothing'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassSetFocusChildFieldCallback`@.
noContainerClassSetFocusChildFieldCallback :: Maybe ContainerClassSetFocusChildFieldCallback
noContainerClassSetFocusChildFieldCallback :: Maybe ContainerClassSetFocusChildFieldCallback
noContainerClassSetFocusChildFieldCallback = Maybe ContainerClassSetFocusChildFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassSetFocusChildFieldCallback :: MonadIO m => ContainerClassSetFocusChildFieldCallback -> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
genClosure_ContainerClassSetFocusChildFieldCallback :: ContainerClassSetFocusChildFieldCallback
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
genClosure_ContainerClassSetFocusChildFieldCallback cb :: ContainerClassSetFocusChildFieldCallback
cb = IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
 -> m (GClosure C_ContainerClassSetFocusChildFieldCallback))
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassSetFocusChildFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> ContainerClassSetFocusChildFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassSetFocusChildFieldCallback Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
forall a. Maybe a
Nothing ContainerClassSetFocusChildFieldCallback
cb
    C_ContainerClassSetFocusChildFieldCallback
-> IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)
mk_ContainerClassSetFocusChildFieldCallback C_ContainerClassSetFocusChildFieldCallback
cb' IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)
-> (FunPtr C_ContainerClassSetFocusChildFieldCallback
    -> IO (GClosure C_ContainerClassSetFocusChildFieldCallback))
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassSetFocusChildFieldCallback
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassSetFocusChildFieldCallback` into a `C_ContainerClassSetFocusChildFieldCallback`.
wrap_ContainerClassSetFocusChildFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback)) ->
    ContainerClassSetFocusChildFieldCallback ->
    C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassSetFocusChildFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> ContainerClassSetFocusChildFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassSetFocusChildFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
funptrptr _cb :: ContainerClassSetFocusChildFieldCallback
_cb container :: Ptr Container
container child :: Ptr Widget
child = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Maybe Widget
maybeChild <-
        if Ptr Widget
child Ptr Widget -> Ptr Widget -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr Widget
forall a. Ptr a
nullPtr
        then Maybe Widget -> IO (Maybe Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Widget
forall a. Maybe a
Nothing
        else do
            Widget
child' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
child
            Maybe Widget -> IO (Maybe Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe Widget -> IO (Maybe Widget))
-> Maybe Widget -> IO (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ Widget -> Maybe Widget
forall a. a -> Maybe a
Just Widget
child'
    ContainerClassSetFocusChildFieldCallback
_cb  Container
container' Maybe Widget
maybeChild
    Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
funptrptr


-- callback ContainerClassSetChildPropertyFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassSetChildPropertyFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    Word32 ->
    Ptr GValue ->
    Ptr GParamSpec ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "property_id"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "value"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Value" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "pspec"
--           , argType = TParamSpec
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassSetChildPropertyFieldCallback :: FunPtr C_ContainerClassSetChildPropertyFieldCallback -> C_ContainerClassSetChildPropertyFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassSetChildPropertyFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassSetChildPropertyFieldCallback
    -> a
    -> b
    -> Word32
    -> GValue
    -> GParamSpec
    -> m ()
dynamic_ContainerClassSetChildPropertyFieldCallback :: FunPtr C_ContainerClassSetChildPropertyFieldCallback
-> a -> b -> Word32 -> GValue -> GParamSpec -> m ()
dynamic_ContainerClassSetChildPropertyFieldCallback __funPtr :: FunPtr C_ContainerClassSetChildPropertyFieldCallback
__funPtr container :: a
container child :: b
child propertyId :: Word32
propertyId value :: GValue
value pspec :: GParamSpec
pspec = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr GValue
value' <- GValue -> IO (Ptr GValue)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GValue
value
    Ptr GParamSpec
pspec' <- GParamSpec -> IO (Ptr GParamSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GParamSpec
pspec
    (FunPtr C_ContainerClassSetChildPropertyFieldCallback
-> C_ContainerClassSetChildPropertyFieldCallback
__dynamic_C_ContainerClassSetChildPropertyFieldCallback FunPtr C_ContainerClassSetChildPropertyFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
child' Word32
propertyId Ptr GValue
value' Ptr GParamSpec
pspec'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    GValue -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GValue
value
    GParamSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GParamSpec
pspec
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassSetChildPropertyFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassSetChildPropertyFieldCallback :: C_ContainerClassSetChildPropertyFieldCallback -> IO (FunPtr C_ContainerClassSetChildPropertyFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassSetChildPropertyFieldCallback =
    Gtk.Container.Container
    -> Gtk.Widget.Widget
    -> Word32
    -> GValue
    -> GParamSpec
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassSetChildPropertyFieldCallback`@.
noContainerClassSetChildPropertyFieldCallback :: Maybe ContainerClassSetChildPropertyFieldCallback
noContainerClassSetChildPropertyFieldCallback :: Maybe ContainerClassSetChildPropertyFieldCallback
noContainerClassSetChildPropertyFieldCallback = Maybe ContainerClassSetChildPropertyFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassSetChildPropertyFieldCallback :: MonadIO m => ContainerClassSetChildPropertyFieldCallback -> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
genClosure_ContainerClassSetChildPropertyFieldCallback :: ContainerClassSetChildPropertyFieldCallback
-> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
genClosure_ContainerClassSetChildPropertyFieldCallback cb :: ContainerClassSetChildPropertyFieldCallback
cb = IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
-> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
 -> m (GClosure C_ContainerClassSetChildPropertyFieldCallback))
-> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
-> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassSetChildPropertyFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
-> ContainerClassSetChildPropertyFieldCallback
-> C_ContainerClassSetChildPropertyFieldCallback
wrap_ContainerClassSetChildPropertyFieldCallback Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
forall a. Maybe a
Nothing ContainerClassSetChildPropertyFieldCallback
cb
    C_ContainerClassSetChildPropertyFieldCallback
-> IO (FunPtr C_ContainerClassSetChildPropertyFieldCallback)
mk_ContainerClassSetChildPropertyFieldCallback C_ContainerClassSetChildPropertyFieldCallback
cb' IO (FunPtr C_ContainerClassSetChildPropertyFieldCallback)
-> (FunPtr C_ContainerClassSetChildPropertyFieldCallback
    -> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback))
-> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassSetChildPropertyFieldCallback
-> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassSetChildPropertyFieldCallback` into a `C_ContainerClassSetChildPropertyFieldCallback`.
wrap_ContainerClassSetChildPropertyFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback)) ->
    ContainerClassSetChildPropertyFieldCallback ->
    C_ContainerClassSetChildPropertyFieldCallback
wrap_ContainerClassSetChildPropertyFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
-> ContainerClassSetChildPropertyFieldCallback
-> C_ContainerClassSetChildPropertyFieldCallback
wrap_ContainerClassSetChildPropertyFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
funptrptr _cb :: ContainerClassSetChildPropertyFieldCallback
_cb container :: Ptr Container
container child :: Ptr Widget
child propertyId :: Word32
propertyId value :: Ptr GValue
value pspec :: Ptr GParamSpec
pspec = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Widget
child' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
child
    (ManagedPtr GValue -> GValue)
-> Ptr GValue -> (GValue -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr GValue -> GValue
GValue Ptr GValue
value ((GValue -> IO ()) -> IO ()) -> (GValue -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \value' :: GValue
value' -> do
        GParamSpec
pspec' <- Ptr GParamSpec -> IO GParamSpec
B.GParamSpec.newGParamSpecFromPtr Ptr GParamSpec
pspec
        ContainerClassSetChildPropertyFieldCallback
_cb  Container
container' Widget
child' Word32
propertyId GValue
value' GParamSpec
pspec'
        Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
funptrptr


-- callback ContainerClassRemoveFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkContainer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a current child of @container", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassRemoveFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkContainer" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a current child of @container"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassRemoveFieldCallback :: FunPtr C_ContainerClassRemoveFieldCallback -> C_ContainerClassRemoveFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassRemoveFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassRemoveFieldCallback
    -> a
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> b
    -- ^ /@widget@/: a current child of /@container@/
    -> m ()
dynamic_ContainerClassRemoveFieldCallback :: FunPtr C_ContainerClassSetFocusChildFieldCallback -> a -> b -> m ()
dynamic_ContainerClassRemoveFieldCallback __funPtr :: FunPtr C_ContainerClassSetFocusChildFieldCallback
__funPtr container :: a
container widget :: b
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
widget' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
widget
    (FunPtr C_ContainerClassSetFocusChildFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
__dynamic_C_ContainerClassRemoveFieldCallback FunPtr C_ContainerClassSetFocusChildFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassRemoveFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassRemoveFieldCallback :: C_ContainerClassRemoveFieldCallback -> IO (FunPtr C_ContainerClassRemoveFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassRemoveFieldCallback =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Gtk.Widget.Widget
    -- ^ /@widget@/: a current child of /@container@/
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassRemoveFieldCallback`@.
noContainerClassRemoveFieldCallback :: Maybe ContainerClassRemoveFieldCallback
noContainerClassRemoveFieldCallback :: Maybe ContainerClassRemoveFieldCallback
noContainerClassRemoveFieldCallback = Maybe ContainerClassRemoveFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassRemoveFieldCallback :: MonadIO m => ContainerClassRemoveFieldCallback -> m (GClosure C_ContainerClassRemoveFieldCallback)
genClosure_ContainerClassRemoveFieldCallback :: ContainerClassRemoveFieldCallback
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
genClosure_ContainerClassRemoveFieldCallback cb :: ContainerClassRemoveFieldCallback
cb = IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
 -> m (GClosure C_ContainerClassSetFocusChildFieldCallback))
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassSetFocusChildFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> ContainerClassRemoveFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassRemoveFieldCallback Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
forall a. Maybe a
Nothing ContainerClassRemoveFieldCallback
cb
    C_ContainerClassSetFocusChildFieldCallback
-> IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)
mk_ContainerClassRemoveFieldCallback C_ContainerClassSetFocusChildFieldCallback
cb' IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)
-> (FunPtr C_ContainerClassSetFocusChildFieldCallback
    -> IO (GClosure C_ContainerClassSetFocusChildFieldCallback))
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassSetFocusChildFieldCallback
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassRemoveFieldCallback` into a `C_ContainerClassRemoveFieldCallback`.
wrap_ContainerClassRemoveFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassRemoveFieldCallback)) ->
    ContainerClassRemoveFieldCallback ->
    C_ContainerClassRemoveFieldCallback
wrap_ContainerClassRemoveFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> ContainerClassRemoveFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassRemoveFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
funptrptr _cb :: ContainerClassRemoveFieldCallback
_cb container :: Ptr Container
container widget :: Ptr Widget
widget = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    ContainerClassRemoveFieldCallback
_cb  Container
container' Widget
widget'
    Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
funptrptr


-- callback ContainerClassGetPathForChildFieldCallback
--          -> Callable {returnType = Just (TInterface (Name {namespace = "Gtk", name = "WidgetPath"})), returnMayBeNull = False, returnTransfer = TransferEverything, returnDocumentation = Documentation {rawDocText = Just "A newly created #GtkWidgetPath", sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkContainer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a child of @container", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassGetPathForChildFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    IO (Ptr Gtk.WidgetPath.WidgetPath)

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkContainer" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a child of @container"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "WidgetPath" })
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassGetPathForChildFieldCallback :: FunPtr C_ContainerClassGetPathForChildFieldCallback -> C_ContainerClassGetPathForChildFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassGetPathForChildFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassGetPathForChildFieldCallback
    -> a
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> b
    -- ^ /@child@/: a child of /@container@/
    -> m Gtk.WidgetPath.WidgetPath
    -- ^ __Returns:__ A newly created t'GI.Gtk.Structs.WidgetPath.WidgetPath'
dynamic_ContainerClassGetPathForChildFieldCallback :: FunPtr C_ContainerClassGetPathForChildFieldCallback
-> a -> b -> m WidgetPath
dynamic_ContainerClassGetPathForChildFieldCallback __funPtr :: FunPtr C_ContainerClassGetPathForChildFieldCallback
__funPtr container :: a
container child :: b
child = IO WidgetPath -> m WidgetPath
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO WidgetPath -> m WidgetPath) -> IO WidgetPath -> m WidgetPath
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr WidgetPath
result <- (FunPtr C_ContainerClassGetPathForChildFieldCallback
-> C_ContainerClassGetPathForChildFieldCallback
__dynamic_C_ContainerClassGetPathForChildFieldCallback FunPtr C_ContainerClassGetPathForChildFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
child'
    Text -> Ptr WidgetPath -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "containerClassGetPathForChildFieldCallback" Ptr WidgetPath
result
    WidgetPath
result' <- ((ManagedPtr WidgetPath -> WidgetPath)
-> Ptr WidgetPath -> IO WidgetPath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr WidgetPath -> WidgetPath
Gtk.WidgetPath.WidgetPath) Ptr WidgetPath
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    WidgetPath -> IO WidgetPath
forall (m :: * -> *) a. Monad m => a -> m a
return WidgetPath
result'

-- | Generate a function pointer callable from C code, from a `C_ContainerClassGetPathForChildFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassGetPathForChildFieldCallback :: C_ContainerClassGetPathForChildFieldCallback -> IO (FunPtr C_ContainerClassGetPathForChildFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassGetPathForChildFieldCallback =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Gtk.Widget.Widget
    -- ^ /@child@/: a child of /@container@/
    -> IO Gtk.WidgetPath.WidgetPath
    -- ^ __Returns:__ A newly created t'GI.Gtk.Structs.WidgetPath.WidgetPath'

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassGetPathForChildFieldCallback`@.
noContainerClassGetPathForChildFieldCallback :: Maybe ContainerClassGetPathForChildFieldCallback
noContainerClassGetPathForChildFieldCallback :: Maybe ContainerClassGetPathForChildFieldCallback
noContainerClassGetPathForChildFieldCallback = Maybe ContainerClassGetPathForChildFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassGetPathForChildFieldCallback :: MonadIO m => ContainerClassGetPathForChildFieldCallback -> m (GClosure C_ContainerClassGetPathForChildFieldCallback)
genClosure_ContainerClassGetPathForChildFieldCallback :: ContainerClassGetPathForChildFieldCallback
-> m (GClosure C_ContainerClassGetPathForChildFieldCallback)
genClosure_ContainerClassGetPathForChildFieldCallback cb :: ContainerClassGetPathForChildFieldCallback
cb = IO (GClosure C_ContainerClassGetPathForChildFieldCallback)
-> m (GClosure C_ContainerClassGetPathForChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassGetPathForChildFieldCallback)
 -> m (GClosure C_ContainerClassGetPathForChildFieldCallback))
-> IO (GClosure C_ContainerClassGetPathForChildFieldCallback)
-> m (GClosure C_ContainerClassGetPathForChildFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassGetPathForChildFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback))
-> ContainerClassGetPathForChildFieldCallback
-> C_ContainerClassGetPathForChildFieldCallback
wrap_ContainerClassGetPathForChildFieldCallback Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback))
forall a. Maybe a
Nothing ContainerClassGetPathForChildFieldCallback
cb
    C_ContainerClassGetPathForChildFieldCallback
-> IO (FunPtr C_ContainerClassGetPathForChildFieldCallback)
mk_ContainerClassGetPathForChildFieldCallback C_ContainerClassGetPathForChildFieldCallback
cb' IO (FunPtr C_ContainerClassGetPathForChildFieldCallback)
-> (FunPtr C_ContainerClassGetPathForChildFieldCallback
    -> IO (GClosure C_ContainerClassGetPathForChildFieldCallback))
-> IO (GClosure C_ContainerClassGetPathForChildFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassGetPathForChildFieldCallback
-> IO (GClosure C_ContainerClassGetPathForChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassGetPathForChildFieldCallback` into a `C_ContainerClassGetPathForChildFieldCallback`.
wrap_ContainerClassGetPathForChildFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback)) ->
    ContainerClassGetPathForChildFieldCallback ->
    C_ContainerClassGetPathForChildFieldCallback
wrap_ContainerClassGetPathForChildFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback))
-> ContainerClassGetPathForChildFieldCallback
-> C_ContainerClassGetPathForChildFieldCallback
wrap_ContainerClassGetPathForChildFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback))
funptrptr _cb :: ContainerClassGetPathForChildFieldCallback
_cb container :: Ptr Container
container child :: Ptr Widget
child = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Widget
child' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
child
    WidgetPath
result <- ContainerClassGetPathForChildFieldCallback
_cb  Container
container' Widget
child'
    Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassGetPathForChildFieldCallback))
funptrptr
    Ptr WidgetPath
result' <- WidgetPath -> IO (Ptr WidgetPath)
forall a. (HasCallStack, BoxedObject a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed WidgetPath
result
    Ptr WidgetPath -> IO (Ptr WidgetPath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr WidgetPath
result'


-- callback ContainerClassGetChildPropertyFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassGetChildPropertyFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    Word32 ->
    Ptr GValue ->
    Ptr GParamSpec ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "property_id"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "value"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Value" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "pspec"
--           , argType = TParamSpec
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassGetChildPropertyFieldCallback :: FunPtr C_ContainerClassGetChildPropertyFieldCallback -> C_ContainerClassGetChildPropertyFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassGetChildPropertyFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassGetChildPropertyFieldCallback
    -> a
    -> b
    -> Word32
    -> GValue
    -> GParamSpec
    -> m ()
dynamic_ContainerClassGetChildPropertyFieldCallback :: FunPtr C_ContainerClassSetChildPropertyFieldCallback
-> a -> b -> Word32 -> GValue -> GParamSpec -> m ()
dynamic_ContainerClassGetChildPropertyFieldCallback __funPtr :: FunPtr C_ContainerClassSetChildPropertyFieldCallback
__funPtr container :: a
container child :: b
child propertyId :: Word32
propertyId value :: GValue
value pspec :: GParamSpec
pspec = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    Ptr GValue
value' <- GValue -> IO (Ptr GValue)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GValue
value
    Ptr GParamSpec
pspec' <- GParamSpec -> IO (Ptr GParamSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GParamSpec
pspec
    (FunPtr C_ContainerClassSetChildPropertyFieldCallback
-> C_ContainerClassSetChildPropertyFieldCallback
__dynamic_C_ContainerClassGetChildPropertyFieldCallback FunPtr C_ContainerClassSetChildPropertyFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
child' Word32
propertyId Ptr GValue
value' Ptr GParamSpec
pspec'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    GValue -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GValue
value
    GParamSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GParamSpec
pspec
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassGetChildPropertyFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassGetChildPropertyFieldCallback :: C_ContainerClassGetChildPropertyFieldCallback -> IO (FunPtr C_ContainerClassGetChildPropertyFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassGetChildPropertyFieldCallback =
    Gtk.Container.Container
    -> Gtk.Widget.Widget
    -> Word32
    -> GValue
    -> GParamSpec
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassGetChildPropertyFieldCallback`@.
noContainerClassGetChildPropertyFieldCallback :: Maybe ContainerClassGetChildPropertyFieldCallback
noContainerClassGetChildPropertyFieldCallback :: Maybe ContainerClassSetChildPropertyFieldCallback
noContainerClassGetChildPropertyFieldCallback = Maybe ContainerClassSetChildPropertyFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassGetChildPropertyFieldCallback :: MonadIO m => ContainerClassGetChildPropertyFieldCallback -> m (GClosure C_ContainerClassGetChildPropertyFieldCallback)
genClosure_ContainerClassGetChildPropertyFieldCallback :: ContainerClassSetChildPropertyFieldCallback
-> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
genClosure_ContainerClassGetChildPropertyFieldCallback cb :: ContainerClassSetChildPropertyFieldCallback
cb = IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
-> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
 -> m (GClosure C_ContainerClassSetChildPropertyFieldCallback))
-> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
-> m (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassSetChildPropertyFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
-> ContainerClassSetChildPropertyFieldCallback
-> C_ContainerClassSetChildPropertyFieldCallback
wrap_ContainerClassGetChildPropertyFieldCallback Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
forall a. Maybe a
Nothing ContainerClassSetChildPropertyFieldCallback
cb
    C_ContainerClassSetChildPropertyFieldCallback
-> IO (FunPtr C_ContainerClassSetChildPropertyFieldCallback)
mk_ContainerClassGetChildPropertyFieldCallback C_ContainerClassSetChildPropertyFieldCallback
cb' IO (FunPtr C_ContainerClassSetChildPropertyFieldCallback)
-> (FunPtr C_ContainerClassSetChildPropertyFieldCallback
    -> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback))
-> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassSetChildPropertyFieldCallback
-> IO (GClosure C_ContainerClassSetChildPropertyFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassGetChildPropertyFieldCallback` into a `C_ContainerClassGetChildPropertyFieldCallback`.
wrap_ContainerClassGetChildPropertyFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassGetChildPropertyFieldCallback)) ->
    ContainerClassGetChildPropertyFieldCallback ->
    C_ContainerClassGetChildPropertyFieldCallback
wrap_ContainerClassGetChildPropertyFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
-> ContainerClassSetChildPropertyFieldCallback
-> C_ContainerClassSetChildPropertyFieldCallback
wrap_ContainerClassGetChildPropertyFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
funptrptr _cb :: ContainerClassSetChildPropertyFieldCallback
_cb container :: Ptr Container
container child :: Ptr Widget
child propertyId :: Word32
propertyId value :: Ptr GValue
value pspec :: Ptr GParamSpec
pspec = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Widget
child' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
child
    (ManagedPtr GValue -> GValue)
-> Ptr GValue -> (GValue -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr GValue -> GValue
GValue Ptr GValue
value ((GValue -> IO ()) -> IO ()) -> (GValue -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \value' :: GValue
value' -> do
        GParamSpec
pspec' <- Ptr GParamSpec -> IO GParamSpec
B.GParamSpec.newGParamSpecFromPtr Ptr GParamSpec
pspec
        ContainerClassSetChildPropertyFieldCallback
_cb  Container
container' Widget
child' Word32
propertyId GValue
value' GParamSpec
pspec'
        Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassSetChildPropertyFieldCallback))
funptrptr


-- callback ContainerClassForallFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkContainer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "include_internals", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gtk", name = "Callback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a callback", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "callback user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassForallFieldCallback =
    Ptr Gtk.Container.Container ->
    CInt ->
    FunPtr C_Callback ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkContainer" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "include_internals"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "callback"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Callback" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a callback" , sinceVersion = Nothing }
--           , argScope = ScopeTypeCall
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "callback_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "callback user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassForallFieldCallback :: FunPtr C_ContainerClassForallFieldCallback -> C_ContainerClassForallFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassForallFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a) =>
    FunPtr C_ContainerClassForallFieldCallback
    -> a
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Bool
    -> Callback_WithClosures
    -- ^ /@callback@/: a callback
    -> Ptr ()
    -- ^ /@callbackData@/: callback user data
    -> m ()
dynamic_ContainerClassForallFieldCallback :: FunPtr C_ContainerClassForallFieldCallback
-> a -> Bool -> Callback_WithClosures -> Ptr () -> m ()
dynamic_ContainerClassForallFieldCallback __funPtr :: FunPtr C_ContainerClassForallFieldCallback
__funPtr container :: a
container includeInternals :: Bool
includeInternals callback :: Callback_WithClosures
callback callbackData :: Ptr ()
callbackData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    let includeInternals' :: CInt
includeInternals' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
includeInternals
    FunPtr C_Callback
callback' <- C_Callback -> IO (FunPtr C_Callback)
mk_Callback (Maybe (Ptr (FunPtr C_Callback))
-> Callback_WithClosures -> C_Callback
wrap_Callback Maybe (Ptr (FunPtr C_Callback))
forall a. Maybe a
Nothing Callback_WithClosures
callback)
    (FunPtr C_ContainerClassForallFieldCallback
-> C_ContainerClassForallFieldCallback
__dynamic_C_ContainerClassForallFieldCallback FunPtr C_ContainerClassForallFieldCallback
__funPtr) Ptr Container
container' CInt
includeInternals' FunPtr C_Callback
callback' Ptr ()
callbackData
    Ptr Any -> IO ()
forall a. Ptr a -> IO ()
safeFreeFunPtr (Ptr Any -> IO ()) -> Ptr Any -> IO ()
forall a b. (a -> b) -> a -> b
$ FunPtr C_Callback -> Ptr Any
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_Callback
callback'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassForallFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassForallFieldCallback :: C_ContainerClassForallFieldCallback -> IO (FunPtr C_ContainerClassForallFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassForallFieldCallback =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Bool
    -> Callback_WithClosures
    -- ^ /@callback@/: a callback
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassForallFieldCallback`@.
noContainerClassForallFieldCallback :: Maybe ContainerClassForallFieldCallback
noContainerClassForallFieldCallback :: Maybe ContainerClassForallFieldCallback
noContainerClassForallFieldCallback = Maybe ContainerClassForallFieldCallback
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
type ContainerClassForallFieldCallback_WithClosures =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Bool
    -> Callback_WithClosures
    -- ^ /@callback@/: a callback
    -> Ptr ()
    -- ^ /@callbackData@/: callback user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassForallFieldCallback_WithClosures`@.
noContainerClassForallFieldCallback_WithClosures :: Maybe ContainerClassForallFieldCallback_WithClosures
noContainerClassForallFieldCallback_WithClosures :: Maybe ContainerClassForallFieldCallback_WithClosures
noContainerClassForallFieldCallback_WithClosures = Maybe ContainerClassForallFieldCallback_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ContainerClassForallFieldCallback :: ContainerClassForallFieldCallback -> ContainerClassForallFieldCallback_WithClosures
drop_closures_ContainerClassForallFieldCallback :: ContainerClassForallFieldCallback
-> ContainerClassForallFieldCallback_WithClosures
drop_closures_ContainerClassForallFieldCallback _f :: ContainerClassForallFieldCallback
_f container :: Container
container includeInternals :: Bool
includeInternals callback :: Callback_WithClosures
callback _ = ContainerClassForallFieldCallback
_f Container
container Bool
includeInternals Callback_WithClosures
callback

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassForallFieldCallback :: MonadIO m => ContainerClassForallFieldCallback -> m (GClosure C_ContainerClassForallFieldCallback)
genClosure_ContainerClassForallFieldCallback :: ContainerClassForallFieldCallback
-> m (GClosure C_ContainerClassForallFieldCallback)
genClosure_ContainerClassForallFieldCallback cb :: ContainerClassForallFieldCallback
cb = IO (GClosure C_ContainerClassForallFieldCallback)
-> m (GClosure C_ContainerClassForallFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassForallFieldCallback)
 -> m (GClosure C_ContainerClassForallFieldCallback))
-> IO (GClosure C_ContainerClassForallFieldCallback)
-> m (GClosure C_ContainerClassForallFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ContainerClassForallFieldCallback_WithClosures
cb' = ContainerClassForallFieldCallback
-> ContainerClassForallFieldCallback_WithClosures
drop_closures_ContainerClassForallFieldCallback ContainerClassForallFieldCallback
cb
    let cb'' :: C_ContainerClassForallFieldCallback
cb'' = Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback))
-> ContainerClassForallFieldCallback_WithClosures
-> C_ContainerClassForallFieldCallback
wrap_ContainerClassForallFieldCallback Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback))
forall a. Maybe a
Nothing ContainerClassForallFieldCallback_WithClosures
cb'
    C_ContainerClassForallFieldCallback
-> IO (FunPtr C_ContainerClassForallFieldCallback)
mk_ContainerClassForallFieldCallback C_ContainerClassForallFieldCallback
cb'' IO (FunPtr C_ContainerClassForallFieldCallback)
-> (FunPtr C_ContainerClassForallFieldCallback
    -> IO (GClosure C_ContainerClassForallFieldCallback))
-> IO (GClosure C_ContainerClassForallFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassForallFieldCallback
-> IO (GClosure C_ContainerClassForallFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassForallFieldCallback` into a `C_ContainerClassForallFieldCallback`.
wrap_ContainerClassForallFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback)) ->
    ContainerClassForallFieldCallback_WithClosures ->
    C_ContainerClassForallFieldCallback
wrap_ContainerClassForallFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback))
-> ContainerClassForallFieldCallback_WithClosures
-> C_ContainerClassForallFieldCallback
wrap_ContainerClassForallFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback))
funptrptr _cb :: ContainerClassForallFieldCallback_WithClosures
_cb container :: Ptr Container
container includeInternals :: CInt
includeInternals callback :: FunPtr C_Callback
callback callbackData :: Ptr ()
callbackData = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    let includeInternals' :: Bool
includeInternals' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
includeInternals
    let callback' :: Callback_WithClosures
callback' = FunPtr C_Callback -> Callback_WithClosures
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsWidget a) =>
FunPtr C_Callback -> a -> Ptr () -> m ()
dynamic_Callback FunPtr C_Callback
callback
    ContainerClassForallFieldCallback_WithClosures
_cb  Container
container' Bool
includeInternals' Callback_WithClosures
callback' Ptr ()
callbackData
    Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassForallFieldCallback))
funptrptr


-- callback ContainerClassCompositeNameFieldCallback
--          -> Callable {returnType = Just (TBasicType TUTF8), returnMayBeNull = False, returnTransfer = TransferEverything, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassCompositeNameFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    IO CString

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassCompositeNameFieldCallback :: FunPtr C_ContainerClassCompositeNameFieldCallback -> C_ContainerClassCompositeNameFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassCompositeNameFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassCompositeNameFieldCallback
    -> a
    -> b
    -> m T.Text
dynamic_ContainerClassCompositeNameFieldCallback :: FunPtr C_ContainerClassCompositeNameFieldCallback
-> a -> b -> m Text
dynamic_ContainerClassCompositeNameFieldCallback __funPtr :: FunPtr C_ContainerClassCompositeNameFieldCallback
__funPtr container :: a
container child :: b
child = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
child' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
child
    CString
result <- (FunPtr C_ContainerClassCompositeNameFieldCallback
-> C_ContainerClassCompositeNameFieldCallback
__dynamic_C_ContainerClassCompositeNameFieldCallback FunPtr C_ContainerClassCompositeNameFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
child'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "containerClassCompositeNameFieldCallback" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
child
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

-- | Generate a function pointer callable from C code, from a `C_ContainerClassCompositeNameFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassCompositeNameFieldCallback :: C_ContainerClassCompositeNameFieldCallback -> IO (FunPtr C_ContainerClassCompositeNameFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassCompositeNameFieldCallback =
    Gtk.Container.Container
    -> Gtk.Widget.Widget
    -> IO T.Text

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassCompositeNameFieldCallback`@.
noContainerClassCompositeNameFieldCallback :: Maybe ContainerClassCompositeNameFieldCallback
noContainerClassCompositeNameFieldCallback :: Maybe ContainerClassCompositeNameFieldCallback
noContainerClassCompositeNameFieldCallback = Maybe ContainerClassCompositeNameFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassCompositeNameFieldCallback :: MonadIO m => ContainerClassCompositeNameFieldCallback -> m (GClosure C_ContainerClassCompositeNameFieldCallback)
genClosure_ContainerClassCompositeNameFieldCallback :: ContainerClassCompositeNameFieldCallback
-> m (GClosure C_ContainerClassCompositeNameFieldCallback)
genClosure_ContainerClassCompositeNameFieldCallback cb :: ContainerClassCompositeNameFieldCallback
cb = IO (GClosure C_ContainerClassCompositeNameFieldCallback)
-> m (GClosure C_ContainerClassCompositeNameFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassCompositeNameFieldCallback)
 -> m (GClosure C_ContainerClassCompositeNameFieldCallback))
-> IO (GClosure C_ContainerClassCompositeNameFieldCallback)
-> m (GClosure C_ContainerClassCompositeNameFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassCompositeNameFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback))
-> ContainerClassCompositeNameFieldCallback
-> C_ContainerClassCompositeNameFieldCallback
wrap_ContainerClassCompositeNameFieldCallback Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback))
forall a. Maybe a
Nothing ContainerClassCompositeNameFieldCallback
cb
    C_ContainerClassCompositeNameFieldCallback
-> IO (FunPtr C_ContainerClassCompositeNameFieldCallback)
mk_ContainerClassCompositeNameFieldCallback C_ContainerClassCompositeNameFieldCallback
cb' IO (FunPtr C_ContainerClassCompositeNameFieldCallback)
-> (FunPtr C_ContainerClassCompositeNameFieldCallback
    -> IO (GClosure C_ContainerClassCompositeNameFieldCallback))
-> IO (GClosure C_ContainerClassCompositeNameFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassCompositeNameFieldCallback
-> IO (GClosure C_ContainerClassCompositeNameFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassCompositeNameFieldCallback` into a `C_ContainerClassCompositeNameFieldCallback`.
wrap_ContainerClassCompositeNameFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback)) ->
    ContainerClassCompositeNameFieldCallback ->
    C_ContainerClassCompositeNameFieldCallback
wrap_ContainerClassCompositeNameFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback))
-> ContainerClassCompositeNameFieldCallback
-> C_ContainerClassCompositeNameFieldCallback
wrap_ContainerClassCompositeNameFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback))
funptrptr _cb :: ContainerClassCompositeNameFieldCallback
_cb container :: Ptr Container
container child :: Ptr Widget
child = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Widget
child' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
child
    Text
result <- ContainerClassCompositeNameFieldCallback
_cb  Container
container' Widget
child'
    Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassCompositeNameFieldCallback))
funptrptr
    CString
result' <- Text -> IO CString
textToCString Text
result
    CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
result'


-- callback ContainerClassChildTypeFieldCallback
--          -> Callable {returnType = Just (TBasicType TGType), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "a #GType.", sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkContainer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassChildTypeFieldCallback =
    Ptr Gtk.Container.Container ->
    IO CGType

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkContainer" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TGType)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassChildTypeFieldCallback :: FunPtr C_ContainerClassChildTypeFieldCallback -> C_ContainerClassChildTypeFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassChildTypeFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a) =>
    FunPtr C_ContainerClassChildTypeFieldCallback
    -> a
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> m GType
    -- ^ __Returns:__ a t'GType'.
dynamic_ContainerClassChildTypeFieldCallback :: FunPtr C_ContainerClassChildTypeFieldCallback -> a -> m GType
dynamic_ContainerClassChildTypeFieldCallback __funPtr :: FunPtr C_ContainerClassChildTypeFieldCallback
__funPtr container :: a
container = IO GType -> m GType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GType -> m GType) -> IO GType -> m GType
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Word64
result <- (FunPtr C_ContainerClassChildTypeFieldCallback
-> C_ContainerClassChildTypeFieldCallback
__dynamic_C_ContainerClassChildTypeFieldCallback FunPtr C_ContainerClassChildTypeFieldCallback
__funPtr) Ptr Container
container'
    let result' :: GType
result' = Word64 -> GType
GType Word64
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    GType -> IO GType
forall (m :: * -> *) a. Monad m => a -> m a
return GType
result'

-- | Generate a function pointer callable from C code, from a `C_ContainerClassChildTypeFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassChildTypeFieldCallback :: C_ContainerClassChildTypeFieldCallback -> IO (FunPtr C_ContainerClassChildTypeFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassChildTypeFieldCallback =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> IO GType
    -- ^ __Returns:__ a t'GType'.

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassChildTypeFieldCallback`@.
noContainerClassChildTypeFieldCallback :: Maybe ContainerClassChildTypeFieldCallback
noContainerClassChildTypeFieldCallback :: Maybe ContainerClassChildTypeFieldCallback
noContainerClassChildTypeFieldCallback = Maybe ContainerClassChildTypeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassChildTypeFieldCallback :: MonadIO m => ContainerClassChildTypeFieldCallback -> m (GClosure C_ContainerClassChildTypeFieldCallback)
genClosure_ContainerClassChildTypeFieldCallback :: ContainerClassChildTypeFieldCallback
-> m (GClosure C_ContainerClassChildTypeFieldCallback)
genClosure_ContainerClassChildTypeFieldCallback cb :: ContainerClassChildTypeFieldCallback
cb = IO (GClosure C_ContainerClassChildTypeFieldCallback)
-> m (GClosure C_ContainerClassChildTypeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassChildTypeFieldCallback)
 -> m (GClosure C_ContainerClassChildTypeFieldCallback))
-> IO (GClosure C_ContainerClassChildTypeFieldCallback)
-> m (GClosure C_ContainerClassChildTypeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassChildTypeFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback))
-> ContainerClassChildTypeFieldCallback
-> C_ContainerClassChildTypeFieldCallback
wrap_ContainerClassChildTypeFieldCallback Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback))
forall a. Maybe a
Nothing ContainerClassChildTypeFieldCallback
cb
    C_ContainerClassChildTypeFieldCallback
-> IO (FunPtr C_ContainerClassChildTypeFieldCallback)
mk_ContainerClassChildTypeFieldCallback C_ContainerClassChildTypeFieldCallback
cb' IO (FunPtr C_ContainerClassChildTypeFieldCallback)
-> (FunPtr C_ContainerClassChildTypeFieldCallback
    -> IO (GClosure C_ContainerClassChildTypeFieldCallback))
-> IO (GClosure C_ContainerClassChildTypeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassChildTypeFieldCallback
-> IO (GClosure C_ContainerClassChildTypeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassChildTypeFieldCallback` into a `C_ContainerClassChildTypeFieldCallback`.
wrap_ContainerClassChildTypeFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback)) ->
    ContainerClassChildTypeFieldCallback ->
    C_ContainerClassChildTypeFieldCallback
wrap_ContainerClassChildTypeFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback))
-> ContainerClassChildTypeFieldCallback
-> C_ContainerClassChildTypeFieldCallback
wrap_ContainerClassChildTypeFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback))
funptrptr _cb :: ContainerClassChildTypeFieldCallback
_cb container :: Ptr Container
container = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    GType
result <- ContainerClassChildTypeFieldCallback
_cb  Container
container'
    Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassChildTypeFieldCallback))
funptrptr
    let result' :: Word64
result' = GType -> Word64
gtypeToCGType GType
result
    Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result'


-- callback ContainerClassCheckResizeFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassCheckResizeFieldCallback =
    Ptr Gtk.Container.Container ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassCheckResizeFieldCallback :: FunPtr C_ContainerClassCheckResizeFieldCallback -> C_ContainerClassCheckResizeFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassCheckResizeFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a) =>
    FunPtr C_ContainerClassCheckResizeFieldCallback
    -> a
    -> m ()
dynamic_ContainerClassCheckResizeFieldCallback :: FunPtr C_ContainerClassCheckResizeFieldCallback -> a -> m ()
dynamic_ContainerClassCheckResizeFieldCallback __funPtr :: FunPtr C_ContainerClassCheckResizeFieldCallback
__funPtr container :: a
container = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    (FunPtr C_ContainerClassCheckResizeFieldCallback
-> C_ContainerClassCheckResizeFieldCallback
__dynamic_C_ContainerClassCheckResizeFieldCallback FunPtr C_ContainerClassCheckResizeFieldCallback
__funPtr) Ptr Container
container'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassCheckResizeFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassCheckResizeFieldCallback :: C_ContainerClassCheckResizeFieldCallback -> IO (FunPtr C_ContainerClassCheckResizeFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassCheckResizeFieldCallback =
    Gtk.Container.Container
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassCheckResizeFieldCallback`@.
noContainerClassCheckResizeFieldCallback :: Maybe ContainerClassCheckResizeFieldCallback
noContainerClassCheckResizeFieldCallback :: Maybe ContainerClassCheckResizeFieldCallback
noContainerClassCheckResizeFieldCallback = Maybe ContainerClassCheckResizeFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassCheckResizeFieldCallback :: MonadIO m => ContainerClassCheckResizeFieldCallback -> m (GClosure C_ContainerClassCheckResizeFieldCallback)
genClosure_ContainerClassCheckResizeFieldCallback :: ContainerClassCheckResizeFieldCallback
-> m (GClosure C_ContainerClassCheckResizeFieldCallback)
genClosure_ContainerClassCheckResizeFieldCallback cb :: ContainerClassCheckResizeFieldCallback
cb = IO (GClosure C_ContainerClassCheckResizeFieldCallback)
-> m (GClosure C_ContainerClassCheckResizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassCheckResizeFieldCallback)
 -> m (GClosure C_ContainerClassCheckResizeFieldCallback))
-> IO (GClosure C_ContainerClassCheckResizeFieldCallback)
-> m (GClosure C_ContainerClassCheckResizeFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassCheckResizeFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback))
-> ContainerClassCheckResizeFieldCallback
-> C_ContainerClassCheckResizeFieldCallback
wrap_ContainerClassCheckResizeFieldCallback Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback))
forall a. Maybe a
Nothing ContainerClassCheckResizeFieldCallback
cb
    C_ContainerClassCheckResizeFieldCallback
-> IO (FunPtr C_ContainerClassCheckResizeFieldCallback)
mk_ContainerClassCheckResizeFieldCallback C_ContainerClassCheckResizeFieldCallback
cb' IO (FunPtr C_ContainerClassCheckResizeFieldCallback)
-> (FunPtr C_ContainerClassCheckResizeFieldCallback
    -> IO (GClosure C_ContainerClassCheckResizeFieldCallback))
-> IO (GClosure C_ContainerClassCheckResizeFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassCheckResizeFieldCallback
-> IO (GClosure C_ContainerClassCheckResizeFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassCheckResizeFieldCallback` into a `C_ContainerClassCheckResizeFieldCallback`.
wrap_ContainerClassCheckResizeFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback)) ->
    ContainerClassCheckResizeFieldCallback ->
    C_ContainerClassCheckResizeFieldCallback
wrap_ContainerClassCheckResizeFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback))
-> ContainerClassCheckResizeFieldCallback
-> C_ContainerClassCheckResizeFieldCallback
wrap_ContainerClassCheckResizeFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback))
funptrptr _cb :: ContainerClassCheckResizeFieldCallback
_cb container :: Ptr Container
container = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    ContainerClassCheckResizeFieldCallback
_cb  Container
container'
    Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassCheckResizeFieldCallback))
funptrptr


-- callback ContainerClassAddFieldCallback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "container", argType = TInterface (Name {namespace = "Gtk", name = "Container"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkContainer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a widget to be placed inside @container", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ContainerClassAddFieldCallback =
    Ptr Gtk.Container.Container ->
    Ptr Gtk.Widget.Widget ->
    IO ()

-- Args: [ Arg
--           { argCName = "container"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Container" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkContainer" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a widget to be placed inside @container"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ContainerClassAddFieldCallback :: FunPtr C_ContainerClassAddFieldCallback -> C_ContainerClassAddFieldCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ContainerClassAddFieldCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Container.IsContainer a, Gtk.Widget.IsWidget b) =>
    FunPtr C_ContainerClassAddFieldCallback
    -> a
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> b
    -- ^ /@widget@/: a widget to be placed inside /@container@/
    -> m ()
dynamic_ContainerClassAddFieldCallback :: FunPtr C_ContainerClassSetFocusChildFieldCallback -> a -> b -> m ()
dynamic_ContainerClassAddFieldCallback __funPtr :: FunPtr C_ContainerClassSetFocusChildFieldCallback
__funPtr container :: a
container widget :: b
widget = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Container
container' <- a -> IO (Ptr Container)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
container
    Ptr Widget
widget' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
widget
    (FunPtr C_ContainerClassSetFocusChildFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
__dynamic_C_ContainerClassAddFieldCallback FunPtr C_ContainerClassSetFocusChildFieldCallback
__funPtr) Ptr Container
container' Ptr Widget
widget'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
container
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ContainerClassAddFieldCallback`.
foreign import ccall "wrapper"
    mk_ContainerClassAddFieldCallback :: C_ContainerClassAddFieldCallback -> IO (FunPtr C_ContainerClassAddFieldCallback)

-- | /No description available in the introspection data./
type ContainerClassAddFieldCallback =
    Gtk.Container.Container
    -- ^ /@container@/: a t'GI.Gtk.Objects.Container.Container'
    -> Gtk.Widget.Widget
    -- ^ /@widget@/: a widget to be placed inside /@container@/
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ContainerClassAddFieldCallback`@.
noContainerClassAddFieldCallback :: Maybe ContainerClassAddFieldCallback
noContainerClassAddFieldCallback :: Maybe ContainerClassRemoveFieldCallback
noContainerClassAddFieldCallback = Maybe ContainerClassRemoveFieldCallback
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ContainerClassAddFieldCallback :: MonadIO m => ContainerClassAddFieldCallback -> m (GClosure C_ContainerClassAddFieldCallback)
genClosure_ContainerClassAddFieldCallback :: ContainerClassRemoveFieldCallback
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
genClosure_ContainerClassAddFieldCallback cb :: ContainerClassRemoveFieldCallback
cb = IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
 -> m (GClosure C_ContainerClassSetFocusChildFieldCallback))
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
-> m (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ContainerClassSetFocusChildFieldCallback
cb' = Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> ContainerClassRemoveFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassAddFieldCallback Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
forall a. Maybe a
Nothing ContainerClassRemoveFieldCallback
cb
    C_ContainerClassSetFocusChildFieldCallback
-> IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)
mk_ContainerClassAddFieldCallback C_ContainerClassSetFocusChildFieldCallback
cb' IO (FunPtr C_ContainerClassSetFocusChildFieldCallback)
-> (FunPtr C_ContainerClassSetFocusChildFieldCallback
    -> IO (GClosure C_ContainerClassSetFocusChildFieldCallback))
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ContainerClassSetFocusChildFieldCallback
-> IO (GClosure C_ContainerClassSetFocusChildFieldCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ContainerClassAddFieldCallback` into a `C_ContainerClassAddFieldCallback`.
wrap_ContainerClassAddFieldCallback ::
    Maybe (Ptr (FunPtr C_ContainerClassAddFieldCallback)) ->
    ContainerClassAddFieldCallback ->
    C_ContainerClassAddFieldCallback
wrap_ContainerClassAddFieldCallback :: Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> ContainerClassRemoveFieldCallback
-> C_ContainerClassSetFocusChildFieldCallback
wrap_ContainerClassAddFieldCallback funptrptr :: Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
funptrptr _cb :: ContainerClassRemoveFieldCallback
_cb container :: Ptr Container
container widget :: Ptr Widget
widget = do
    Container
container' <- ((ManagedPtr Container -> Container)
-> Ptr Container -> IO Container
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Container -> Container
Gtk.Container.Container) Ptr Container
container
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    ContainerClassRemoveFieldCallback
_cb  Container
container' Widget
widget'
    Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ContainerClassSetFocusChildFieldCallback))
funptrptr


-- callback ColorSelectionChangePaletteWithScreenFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "screen", argType = TInterface (Name {namespace = "Gdk", name = "Screen"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "colors", argType = TCArray False (-1) 2 (TInterface (Name {namespace = "Gdk", name = "Color"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Array of colors", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_colors", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of colors in the array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Just (DeprecationInfo {deprecatedSinceVersion = Just "3.4", deprecationMessage = Nothing}), callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Just "2.2"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ColorSelectionChangePaletteWithScreenFunc =
    Ptr Gdk.Screen.Screen ->
    Ptr Gdk.Color.Color ->
    Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "screen"
--           , argType = TInterface Name { namespace = "Gdk" , name = "Screen" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "colors"
--           , argType =
--               TCArray
--                 False
--                 (-1)
--                 2
--                 (TInterface Name { namespace = "Gdk" , name = "Color" })
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Array of colors" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "n_colors"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Number of colors in the array"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: [ Arg
--              { argCName = "n_colors"
--              , argType = TBasicType TInt
--              , direction = DirectionIn
--              , mayBeNull = False
--              , argDoc =
--                  Documentation
--                    { rawDocText = Just "Number of colors in the array"
--                    , sinceVersion = Nothing
--                    }
--              , argScope = ScopeTypeInvalid
--              , argClosure = -1
--              , argDestroy = -1
--              , argCallerAllocates = False
--              , transfer = TransferNothing
--              }
--          ]
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ColorSelectionChangePaletteWithScreenFunc :: FunPtr C_ColorSelectionChangePaletteWithScreenFunc -> C_ColorSelectionChangePaletteWithScreenFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ColorSelectionChangePaletteWithScreenFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gdk.Screen.IsScreen a) =>
    FunPtr C_ColorSelectionChangePaletteWithScreenFunc
    -> a
    -> [Gdk.Color.Color]
    -- ^ /@colors@/: Array of colors
    -> m ()
dynamic_ColorSelectionChangePaletteWithScreenFunc :: FunPtr C_ColorSelectionChangePaletteWithScreenFunc
-> a -> [Color] -> m ()
dynamic_ColorSelectionChangePaletteWithScreenFunc __funPtr :: FunPtr C_ColorSelectionChangePaletteWithScreenFunc
__funPtr screen :: a
screen colors :: [Color]
colors = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    let nColors :: Int32
nColors = Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ [Color] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [Color]
colors
    Ptr Screen
screen' <- a -> IO (Ptr Screen)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
screen
    [Ptr Color]
colors' <- (Color -> IO (Ptr Color)) -> [Color] -> IO [Ptr Color]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM Color -> IO (Ptr Color)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr [Color]
colors
    Ptr Color
colors'' <- Int -> [Ptr Color] -> IO (Ptr Color)
forall a. Int -> [Ptr a] -> IO (Ptr a)
packBlockArray 12 [Ptr Color]
colors'
    (FunPtr C_ColorSelectionChangePaletteWithScreenFunc
-> C_ColorSelectionChangePaletteWithScreenFunc
__dynamic_C_ColorSelectionChangePaletteWithScreenFunc FunPtr C_ColorSelectionChangePaletteWithScreenFunc
__funPtr) Ptr Screen
screen' Ptr Color
colors'' Int32
nColors
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
screen
    (Color -> IO ()) -> [Color] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Color -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [Color]
colors
    Ptr Color -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Color
colors''
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ColorSelectionChangePaletteWithScreenFunc`.
foreign import ccall "wrapper"
    mk_ColorSelectionChangePaletteWithScreenFunc :: C_ColorSelectionChangePaletteWithScreenFunc -> IO (FunPtr C_ColorSelectionChangePaletteWithScreenFunc)

{-# DEPRECATED ColorSelectionChangePaletteWithScreenFunc ["(Since version 3.4)"] #-}
-- | /No description available in the introspection data./
-- 
-- /Since: 2.2/
type ColorSelectionChangePaletteWithScreenFunc =
    Gdk.Screen.Screen
    -> [Gdk.Color.Color]
    -- ^ /@colors@/: Array of colors
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ColorSelectionChangePaletteWithScreenFunc`@.
noColorSelectionChangePaletteWithScreenFunc :: Maybe ColorSelectionChangePaletteWithScreenFunc
noColorSelectionChangePaletteWithScreenFunc :: Maybe ColorSelectionChangePaletteWithScreenFunc
noColorSelectionChangePaletteWithScreenFunc = Maybe ColorSelectionChangePaletteWithScreenFunc
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ColorSelectionChangePaletteWithScreenFunc :: MonadIO m => ColorSelectionChangePaletteWithScreenFunc -> m (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
genClosure_ColorSelectionChangePaletteWithScreenFunc :: ColorSelectionChangePaletteWithScreenFunc
-> m (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
genClosure_ColorSelectionChangePaletteWithScreenFunc cb :: ColorSelectionChangePaletteWithScreenFunc
cb = IO (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
-> m (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
 -> m (GClosure C_ColorSelectionChangePaletteWithScreenFunc))
-> IO (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
-> m (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ColorSelectionChangePaletteWithScreenFunc
cb' = Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc))
-> ColorSelectionChangePaletteWithScreenFunc
-> C_ColorSelectionChangePaletteWithScreenFunc
wrap_ColorSelectionChangePaletteWithScreenFunc Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc))
forall a. Maybe a
Nothing ColorSelectionChangePaletteWithScreenFunc
cb
    C_ColorSelectionChangePaletteWithScreenFunc
-> IO (FunPtr C_ColorSelectionChangePaletteWithScreenFunc)
mk_ColorSelectionChangePaletteWithScreenFunc C_ColorSelectionChangePaletteWithScreenFunc
cb' IO (FunPtr C_ColorSelectionChangePaletteWithScreenFunc)
-> (FunPtr C_ColorSelectionChangePaletteWithScreenFunc
    -> IO (GClosure C_ColorSelectionChangePaletteWithScreenFunc))
-> IO (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ColorSelectionChangePaletteWithScreenFunc
-> IO (GClosure C_ColorSelectionChangePaletteWithScreenFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ColorSelectionChangePaletteWithScreenFunc` into a `C_ColorSelectionChangePaletteWithScreenFunc`.
wrap_ColorSelectionChangePaletteWithScreenFunc ::
    Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc)) ->
    ColorSelectionChangePaletteWithScreenFunc ->
    C_ColorSelectionChangePaletteWithScreenFunc
wrap_ColorSelectionChangePaletteWithScreenFunc :: Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc))
-> ColorSelectionChangePaletteWithScreenFunc
-> C_ColorSelectionChangePaletteWithScreenFunc
wrap_ColorSelectionChangePaletteWithScreenFunc funptrptr :: Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc))
funptrptr _cb :: ColorSelectionChangePaletteWithScreenFunc
_cb screen :: Ptr Screen
screen colors :: Ptr Color
colors nColors :: Int32
nColors = do
    Screen
screen' <- ((ManagedPtr Screen -> Screen) -> Ptr Screen -> IO Screen
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Screen -> Screen
Gdk.Screen.Screen) Ptr Screen
screen
    [Ptr Color]
colors' <- (Int -> Int32 -> Ptr Color -> IO [Ptr Color]
forall a b.
(Integral a, BoxedObject b) =>
Int -> a -> Ptr b -> IO [Ptr b]
unpackBoxedArrayWithLength 12 Int32
nColors) Ptr Color
colors
    [Color]
colors'' <- (Ptr Color -> IO Color) -> [Ptr Color] -> IO [Color]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr Color -> Color) -> Ptr Color -> IO Color
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Color -> Color
Gdk.Color.Color) [Ptr Color]
colors'
    ColorSelectionChangePaletteWithScreenFunc
_cb  Screen
screen' [Color]
colors''
    Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc))
-> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteWithScreenFunc))
funptrptr


-- callback ColorSelectionChangePaletteFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "colors", argType = TCArray False (-1) 1 (TInterface (Name {namespace = "Gdk", name = "Color"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Array of colors", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_colors", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of colors in the array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Just (DeprecationInfo {deprecatedSinceVersion = Just "3.4", deprecationMessage = Nothing}), callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ColorSelectionChangePaletteFunc =
    Ptr Gdk.Color.Color ->
    Int32 ->
    IO ()

-- Args: [ Arg
--           { argCName = "colors"
--           , argType =
--               TCArray
--                 False
--                 (-1)
--                 1
--                 (TInterface Name { namespace = "Gdk" , name = "Color" })
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Array of colors" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "n_colors"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Number of colors in the array"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: [ Arg
--              { argCName = "n_colors"
--              , argType = TBasicType TInt
--              , direction = DirectionIn
--              , mayBeNull = False
--              , argDoc =
--                  Documentation
--                    { rawDocText = Just "Number of colors in the array"
--                    , sinceVersion = Nothing
--                    }
--              , argScope = ScopeTypeInvalid
--              , argClosure = -1
--              , argDestroy = -1
--              , argCallerAllocates = False
--              , transfer = TransferNothing
--              }
--          ]
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ColorSelectionChangePaletteFunc :: FunPtr C_ColorSelectionChangePaletteFunc -> C_ColorSelectionChangePaletteFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ColorSelectionChangePaletteFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_ColorSelectionChangePaletteFunc
    -> [Gdk.Color.Color]
    -- ^ /@colors@/: Array of colors
    -> m ()
dynamic_ColorSelectionChangePaletteFunc :: FunPtr C_ColorSelectionChangePaletteFunc -> [Color] -> m ()
dynamic_ColorSelectionChangePaletteFunc __funPtr :: FunPtr C_ColorSelectionChangePaletteFunc
__funPtr colors :: [Color]
colors = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    let nColors :: Int32
nColors = Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ [Color] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [Color]
colors
    [Ptr Color]
colors' <- (Color -> IO (Ptr Color)) -> [Color] -> IO [Ptr Color]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM Color -> IO (Ptr Color)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr [Color]
colors
    Ptr Color
colors'' <- Int -> [Ptr Color] -> IO (Ptr Color)
forall a. Int -> [Ptr a] -> IO (Ptr a)
packBlockArray 12 [Ptr Color]
colors'
    (FunPtr C_ColorSelectionChangePaletteFunc
-> C_ColorSelectionChangePaletteFunc
__dynamic_C_ColorSelectionChangePaletteFunc FunPtr C_ColorSelectionChangePaletteFunc
__funPtr) Ptr Color
colors'' Int32
nColors
    (Color -> IO ()) -> [Color] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Color -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [Color]
colors
    Ptr Color -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Color
colors''
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ColorSelectionChangePaletteFunc`.
foreign import ccall "wrapper"
    mk_ColorSelectionChangePaletteFunc :: C_ColorSelectionChangePaletteFunc -> IO (FunPtr C_ColorSelectionChangePaletteFunc)

{-# DEPRECATED ColorSelectionChangePaletteFunc ["(Since version 3.4)"] #-}
-- | /No description available in the introspection data./
type ColorSelectionChangePaletteFunc =
    [Gdk.Color.Color]
    -- ^ /@colors@/: Array of colors
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ColorSelectionChangePaletteFunc`@.
noColorSelectionChangePaletteFunc :: Maybe ColorSelectionChangePaletteFunc
noColorSelectionChangePaletteFunc :: Maybe ([Color] -> IO ())
noColorSelectionChangePaletteFunc = Maybe ([Color] -> IO ())
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ColorSelectionChangePaletteFunc :: MonadIO m => ColorSelectionChangePaletteFunc -> m (GClosure C_ColorSelectionChangePaletteFunc)
genClosure_ColorSelectionChangePaletteFunc :: ([Color] -> IO ())
-> m (GClosure C_ColorSelectionChangePaletteFunc)
genClosure_ColorSelectionChangePaletteFunc cb :: [Color] -> IO ()
cb = IO (GClosure C_ColorSelectionChangePaletteFunc)
-> m (GClosure C_ColorSelectionChangePaletteFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ColorSelectionChangePaletteFunc)
 -> m (GClosure C_ColorSelectionChangePaletteFunc))
-> IO (GClosure C_ColorSelectionChangePaletteFunc)
-> m (GClosure C_ColorSelectionChangePaletteFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ColorSelectionChangePaletteFunc
cb' = Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc))
-> ([Color] -> IO ()) -> C_ColorSelectionChangePaletteFunc
wrap_ColorSelectionChangePaletteFunc Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc))
forall a. Maybe a
Nothing [Color] -> IO ()
cb
    C_ColorSelectionChangePaletteFunc
-> IO (FunPtr C_ColorSelectionChangePaletteFunc)
mk_ColorSelectionChangePaletteFunc C_ColorSelectionChangePaletteFunc
cb' IO (FunPtr C_ColorSelectionChangePaletteFunc)
-> (FunPtr C_ColorSelectionChangePaletteFunc
    -> IO (GClosure C_ColorSelectionChangePaletteFunc))
-> IO (GClosure C_ColorSelectionChangePaletteFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ColorSelectionChangePaletteFunc
-> IO (GClosure C_ColorSelectionChangePaletteFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ColorSelectionChangePaletteFunc` into a `C_ColorSelectionChangePaletteFunc`.
wrap_ColorSelectionChangePaletteFunc ::
    Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc)) ->
    ColorSelectionChangePaletteFunc ->
    C_ColorSelectionChangePaletteFunc
wrap_ColorSelectionChangePaletteFunc :: Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc))
-> ([Color] -> IO ()) -> C_ColorSelectionChangePaletteFunc
wrap_ColorSelectionChangePaletteFunc funptrptr :: Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc))
funptrptr _cb :: [Color] -> IO ()
_cb colors :: Ptr Color
colors nColors :: Int32
nColors = do
    [Ptr Color]
colors' <- (Int -> Int32 -> Ptr Color -> IO [Ptr Color]
forall a b.
(Integral a, BoxedObject b) =>
Int -> a -> Ptr b -> IO [Ptr b]
unpackBoxedArrayWithLength 12 Int32
nColors) Ptr Color
colors
    [Color]
colors'' <- (Ptr Color -> IO Color) -> [Ptr Color] -> IO [Color]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr Color -> Color) -> Ptr Color -> IO Color
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Color -> Color
Gdk.Color.Color) [Ptr Color]
colors'
    [Color] -> IO ()
_cb  [Color]
colors''
    Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ColorSelectionChangePaletteFunc))
funptrptr


-- callback ClipboardURIReceivedFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uris", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the received URIs", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data supplied to\n  gtk_clipboard_request_uris().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to be called when the results of\ngtk_clipboard_request_uris() are received, or when the request\nfails.", sinceVersion = Just "2.14"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardURIReceivedFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr CString ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "uris"
--           , argType = TCArray True (-1) (-1) (TBasicType TUTF8)
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the received URIs" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the @user_data supplied to\n  gtk_clipboard_request_uris()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardURIReceivedFunc :: FunPtr C_ClipboardURIReceivedFunc -> C_ClipboardURIReceivedFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardURIReceivedFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardURIReceivedFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> [T.Text]
    -- ^ /@uris@/: the received URIs
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestUris'.
    -> m ()
dynamic_ClipboardURIReceivedFunc :: FunPtr C_ClipboardURIReceivedFunc -> a -> [Text] -> Ptr () -> m ()
dynamic_ClipboardURIReceivedFunc __funPtr :: FunPtr C_ClipboardURIReceivedFunc
__funPtr clipboard :: a
clipboard uris :: [Text]
uris data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    Ptr CString
uris' <- [Text] -> IO (Ptr CString)
packZeroTerminatedUTF8CArray [Text]
uris
    (FunPtr C_ClipboardURIReceivedFunc -> C_ClipboardURIReceivedFunc
__dynamic_C_ClipboardURIReceivedFunc FunPtr C_ClipboardURIReceivedFunc
__funPtr) Ptr Clipboard
clipboard' Ptr CString
uris' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    (CString -> IO ()) -> Ptr CString -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
uris'
    Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
uris'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardURIReceivedFunc`.
foreign import ccall "wrapper"
    mk_ClipboardURIReceivedFunc :: C_ClipboardURIReceivedFunc -> IO (FunPtr C_ClipboardURIReceivedFunc)

-- | A function to be called when the results of
-- 'GI.Gtk.Objects.Clipboard.clipboardRequestUris' are received, or when the request
-- fails.
-- 
-- /Since: 2.14/
type ClipboardURIReceivedFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> [T.Text]
    -- ^ /@uris@/: the received URIs
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardURIReceivedFunc`@.
noClipboardURIReceivedFunc :: Maybe ClipboardURIReceivedFunc
noClipboardURIReceivedFunc :: Maybe ClipboardURIReceivedFunc
noClipboardURIReceivedFunc = Maybe ClipboardURIReceivedFunc
forall a. Maybe a
Nothing

-- | A function to be called when the results of
-- 'GI.Gtk.Objects.Clipboard.clipboardRequestUris' are received, or when the request
-- fails.
-- 
-- /Since: 2.14/
type ClipboardURIReceivedFunc_WithClosures =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> [T.Text]
    -- ^ /@uris@/: the received URIs
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestUris'.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardURIReceivedFunc_WithClosures`@.
noClipboardURIReceivedFunc_WithClosures :: Maybe ClipboardURIReceivedFunc_WithClosures
noClipboardURIReceivedFunc_WithClosures :: Maybe ClipboardURIReceivedFunc_WithClosures
noClipboardURIReceivedFunc_WithClosures = Maybe ClipboardURIReceivedFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ClipboardURIReceivedFunc :: ClipboardURIReceivedFunc -> ClipboardURIReceivedFunc_WithClosures
drop_closures_ClipboardURIReceivedFunc :: ClipboardURIReceivedFunc -> ClipboardURIReceivedFunc_WithClosures
drop_closures_ClipboardURIReceivedFunc _f :: ClipboardURIReceivedFunc
_f clipboard :: Clipboard
clipboard uris :: [Text]
uris _ = ClipboardURIReceivedFunc
_f Clipboard
clipboard [Text]
uris

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardURIReceivedFunc :: MonadIO m => ClipboardURIReceivedFunc -> m (GClosure C_ClipboardURIReceivedFunc)
genClosure_ClipboardURIReceivedFunc :: ClipboardURIReceivedFunc -> m (GClosure C_ClipboardURIReceivedFunc)
genClosure_ClipboardURIReceivedFunc cb :: ClipboardURIReceivedFunc
cb = IO (GClosure C_ClipboardURIReceivedFunc)
-> m (GClosure C_ClipboardURIReceivedFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardURIReceivedFunc)
 -> m (GClosure C_ClipboardURIReceivedFunc))
-> IO (GClosure C_ClipboardURIReceivedFunc)
-> m (GClosure C_ClipboardURIReceivedFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ClipboardURIReceivedFunc_WithClosures
cb' = ClipboardURIReceivedFunc -> ClipboardURIReceivedFunc_WithClosures
drop_closures_ClipboardURIReceivedFunc ClipboardURIReceivedFunc
cb
    let cb'' :: C_ClipboardURIReceivedFunc
cb'' = Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc))
-> ClipboardURIReceivedFunc_WithClosures
-> C_ClipboardURIReceivedFunc
wrap_ClipboardURIReceivedFunc Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc))
forall a. Maybe a
Nothing ClipboardURIReceivedFunc_WithClosures
cb'
    C_ClipboardURIReceivedFunc
-> IO (FunPtr C_ClipboardURIReceivedFunc)
mk_ClipboardURIReceivedFunc C_ClipboardURIReceivedFunc
cb'' IO (FunPtr C_ClipboardURIReceivedFunc)
-> (FunPtr C_ClipboardURIReceivedFunc
    -> IO (GClosure C_ClipboardURIReceivedFunc))
-> IO (GClosure C_ClipboardURIReceivedFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardURIReceivedFunc
-> IO (GClosure C_ClipboardURIReceivedFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardURIReceivedFunc` into a `C_ClipboardURIReceivedFunc`.
wrap_ClipboardURIReceivedFunc ::
    Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc)) ->
    ClipboardURIReceivedFunc_WithClosures ->
    C_ClipboardURIReceivedFunc
wrap_ClipboardURIReceivedFunc :: Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc))
-> ClipboardURIReceivedFunc_WithClosures
-> C_ClipboardURIReceivedFunc
wrap_ClipboardURIReceivedFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc))
funptrptr _cb :: ClipboardURIReceivedFunc_WithClosures
_cb clipboard :: Ptr Clipboard
clipboard uris :: Ptr CString
uris data_ :: Ptr ()
data_ = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    [Text]
uris' <- HasCallStack => Ptr CString -> IO [Text]
Ptr CString -> IO [Text]
unpackZeroTerminatedUTF8CArray Ptr CString
uris
    ClipboardURIReceivedFunc_WithClosures
_cb  Clipboard
clipboard' [Text]
uris' Ptr ()
data_
    Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardURIReceivedFunc))
funptrptr


-- callback ClipboardTextReceivedFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the text received, as a UTF-8 encoded string, or\n  %NULL if retrieving the data failed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data supplied to\n  gtk_clipboard_request_text().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to be called when the results of gtk_clipboard_request_text()\nare received, or when the request fails.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardTextReceivedFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    CString ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "text"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the text received, as a UTF-8 encoded string, or\n  %NULL if retrieving the data failed."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the @user_data supplied to\n  gtk_clipboard_request_text()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardTextReceivedFunc :: FunPtr C_ClipboardTextReceivedFunc -> C_ClipboardTextReceivedFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardTextReceivedFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardTextReceivedFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Maybe (T.Text)
    -- ^ /@text@/: the text received, as a UTF-8 encoded string, or
    --   'P.Nothing' if retrieving the data failed.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestText'.
    -> m ()
dynamic_ClipboardTextReceivedFunc :: FunPtr C_ClipboardTextReceivedFunc
-> a -> Maybe Text -> Ptr () -> m ()
dynamic_ClipboardTextReceivedFunc __funPtr :: FunPtr C_ClipboardTextReceivedFunc
__funPtr clipboard :: a
clipboard text :: Maybe Text
text data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    CString
maybeText <- case Maybe Text
text of
        Nothing -> CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
        Just jText :: Text
jText -> do
            CString
jText' <- Text -> IO CString
textToCString Text
jText
            CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jText'
    (FunPtr C_ClipboardTextReceivedFunc -> C_ClipboardTextReceivedFunc
__dynamic_C_ClipboardTextReceivedFunc FunPtr C_ClipboardTextReceivedFunc
__funPtr) Ptr Clipboard
clipboard' CString
maybeText Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeText
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardTextReceivedFunc`.
foreign import ccall "wrapper"
    mk_ClipboardTextReceivedFunc :: C_ClipboardTextReceivedFunc -> IO (FunPtr C_ClipboardTextReceivedFunc)

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestText'
-- are received, or when the request fails.
type ClipboardTextReceivedFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Maybe T.Text
    -- ^ /@text@/: the text received, as a UTF-8 encoded string, or
    --   'P.Nothing' if retrieving the data failed.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardTextReceivedFunc`@.
noClipboardTextReceivedFunc :: Maybe ClipboardTextReceivedFunc
noClipboardTextReceivedFunc :: Maybe ClipboardTextReceivedFunc
noClipboardTextReceivedFunc = Maybe ClipboardTextReceivedFunc
forall a. Maybe a
Nothing

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestText'
-- are received, or when the request fails.
type ClipboardTextReceivedFunc_WithClosures =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Maybe T.Text
    -- ^ /@text@/: the text received, as a UTF-8 encoded string, or
    --   'P.Nothing' if retrieving the data failed.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestText'.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardTextReceivedFunc_WithClosures`@.
noClipboardTextReceivedFunc_WithClosures :: Maybe ClipboardTextReceivedFunc_WithClosures
noClipboardTextReceivedFunc_WithClosures :: Maybe ClipboardTextReceivedFunc_WithClosures
noClipboardTextReceivedFunc_WithClosures = Maybe ClipboardTextReceivedFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ClipboardTextReceivedFunc :: ClipboardTextReceivedFunc -> ClipboardTextReceivedFunc_WithClosures
drop_closures_ClipboardTextReceivedFunc :: ClipboardTextReceivedFunc -> ClipboardTextReceivedFunc_WithClosures
drop_closures_ClipboardTextReceivedFunc _f :: ClipboardTextReceivedFunc
_f clipboard :: Clipboard
clipboard text :: Maybe Text
text _ = ClipboardTextReceivedFunc
_f Clipboard
clipboard Maybe Text
text

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardTextReceivedFunc :: MonadIO m => ClipboardTextReceivedFunc -> m (GClosure C_ClipboardTextReceivedFunc)
genClosure_ClipboardTextReceivedFunc :: ClipboardTextReceivedFunc
-> m (GClosure C_ClipboardTextReceivedFunc)
genClosure_ClipboardTextReceivedFunc cb :: ClipboardTextReceivedFunc
cb = IO (GClosure C_ClipboardTextReceivedFunc)
-> m (GClosure C_ClipboardTextReceivedFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardTextReceivedFunc)
 -> m (GClosure C_ClipboardTextReceivedFunc))
-> IO (GClosure C_ClipboardTextReceivedFunc)
-> m (GClosure C_ClipboardTextReceivedFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ClipboardTextReceivedFunc_WithClosures
cb' = ClipboardTextReceivedFunc -> ClipboardTextReceivedFunc_WithClosures
drop_closures_ClipboardTextReceivedFunc ClipboardTextReceivedFunc
cb
    let cb'' :: C_ClipboardTextReceivedFunc
cb'' = Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc))
-> ClipboardTextReceivedFunc_WithClosures
-> C_ClipboardTextReceivedFunc
wrap_ClipboardTextReceivedFunc Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc))
forall a. Maybe a
Nothing ClipboardTextReceivedFunc_WithClosures
cb'
    C_ClipboardTextReceivedFunc
-> IO (FunPtr C_ClipboardTextReceivedFunc)
mk_ClipboardTextReceivedFunc C_ClipboardTextReceivedFunc
cb'' IO (FunPtr C_ClipboardTextReceivedFunc)
-> (FunPtr C_ClipboardTextReceivedFunc
    -> IO (GClosure C_ClipboardTextReceivedFunc))
-> IO (GClosure C_ClipboardTextReceivedFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardTextReceivedFunc
-> IO (GClosure C_ClipboardTextReceivedFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardTextReceivedFunc` into a `C_ClipboardTextReceivedFunc`.
wrap_ClipboardTextReceivedFunc ::
    Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc)) ->
    ClipboardTextReceivedFunc_WithClosures ->
    C_ClipboardTextReceivedFunc
wrap_ClipboardTextReceivedFunc :: Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc))
-> ClipboardTextReceivedFunc_WithClosures
-> C_ClipboardTextReceivedFunc
wrap_ClipboardTextReceivedFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc))
funptrptr _cb :: ClipboardTextReceivedFunc_WithClosures
_cb clipboard :: Ptr Clipboard
clipboard text :: CString
text data_ :: Ptr ()
data_ = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    Maybe Text
maybeText <-
        if CString
text CString -> CString -> Bool
forall a. Eq a => a -> a -> Bool
== CString
forall a. Ptr a
nullPtr
        then Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
forall a. Maybe a
Nothing
        else do
            Text
text' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
text
            Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe Text -> IO (Maybe Text)) -> Maybe Text -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text
forall a. a -> Maybe a
Just Text
text'
    ClipboardTextReceivedFunc_WithClosures
_cb  Clipboard
clipboard' Maybe Text
maybeText Ptr ()
data_
    Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardTextReceivedFunc))
funptrptr


-- callback ClipboardTargetsReceivedFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "atoms", argType = TCArray False (-1) 2 (TInterface (Name {namespace = "Gdk", name = "Atom"})), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the supported targets,\n  as array of #GdkAtom, or %NULL if retrieving the data failed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_atoms", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @atoms array.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data supplied to\n  gtk_clipboard_request_targets().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to be called when the results of gtk_clipboard_request_targets()\nare received, or when the request fails.", sinceVersion = Just "2.4"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardTargetsReceivedFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr (Ptr Gdk.Atom.Atom) ->
    Int32 ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "atoms"
--           , argType =
--               TCArray
--                 False
--                 (-1)
--                 2
--                 (TInterface Name { namespace = "Gdk" , name = "Atom" })
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the supported targets,\n  as array of #GdkAtom, or %NULL if retrieving the data failed."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "n_atoms"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the length of the @atoms array."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the @user_data supplied to\n  gtk_clipboard_request_targets()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: [ Arg
--              { argCName = "n_atoms"
--              , argType = TBasicType TInt
--              , direction = DirectionIn
--              , mayBeNull = False
--              , argDoc =
--                  Documentation
--                    { rawDocText = Just "the length of the @atoms array."
--                    , sinceVersion = Nothing
--                    }
--              , argScope = ScopeTypeInvalid
--              , argClosure = -1
--              , argDestroy = -1
--              , argCallerAllocates = False
--              , transfer = TransferNothing
--              }
--          ]
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardTargetsReceivedFunc :: FunPtr C_ClipboardTargetsReceivedFunc -> C_ClipboardTargetsReceivedFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardTargetsReceivedFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardTargetsReceivedFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Maybe ([Gdk.Atom.Atom])
    -- ^ /@atoms@/: the supported targets,
    --   as array of t'GI.Gdk.Structs.Atom.Atom', or 'P.Nothing' if retrieving the data failed.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestTargets'.
    -> m ()
dynamic_ClipboardTargetsReceivedFunc :: FunPtr C_ClipboardTargetsReceivedFunc
-> a -> Maybe [Atom] -> Ptr () -> m ()
dynamic_ClipboardTargetsReceivedFunc __funPtr :: FunPtr C_ClipboardTargetsReceivedFunc
__funPtr clipboard :: a
clipboard atoms :: Maybe [Atom]
atoms data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    let nAtoms :: Int32
nAtoms = case Maybe [Atom]
atoms of
            Nothing -> 0
            Just jAtoms :: [Atom]
jAtoms -> Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ [Atom] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [Atom]
jAtoms
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    Ptr (Ptr Atom)
maybeAtoms <- case Maybe [Atom]
atoms of
        Nothing -> Ptr (Ptr Atom) -> IO (Ptr (Ptr Atom))
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr (Ptr Atom)
forall a. Ptr a
nullPtr
        Just jAtoms :: [Atom]
jAtoms -> do
            [Ptr Atom]
jAtoms' <- (Atom -> IO (Ptr Atom)) -> [Atom] -> IO [Ptr Atom]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM Atom -> IO (Ptr Atom)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr [Atom]
jAtoms
            Ptr (Ptr Atom)
jAtoms'' <- [Ptr Atom] -> IO (Ptr (Ptr Atom))
forall a. [Ptr a] -> IO (Ptr (Ptr a))
packPtrArray [Ptr Atom]
jAtoms'
            Ptr (Ptr Atom) -> IO (Ptr (Ptr Atom))
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr (Ptr Atom)
jAtoms''
    (FunPtr C_ClipboardTargetsReceivedFunc
-> C_ClipboardTargetsReceivedFunc
__dynamic_C_ClipboardTargetsReceivedFunc FunPtr C_ClipboardTargetsReceivedFunc
__funPtr) Ptr Clipboard
clipboard' Ptr (Ptr Atom)
maybeAtoms Int32
nAtoms Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    Maybe [Atom] -> ([Atom] -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe [Atom]
atoms ((Atom -> IO ()) -> [Atom] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Atom -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr)
    Ptr (Ptr Atom) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Atom)
maybeAtoms
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardTargetsReceivedFunc`.
foreign import ccall "wrapper"
    mk_ClipboardTargetsReceivedFunc :: C_ClipboardTargetsReceivedFunc -> IO (FunPtr C_ClipboardTargetsReceivedFunc)

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestTargets'
-- are received, or when the request fails.
-- 
-- /Since: 2.4/
type ClipboardTargetsReceivedFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Maybe [Gdk.Atom.Atom]
    -- ^ /@atoms@/: the supported targets,
    --   as array of t'GI.Gdk.Structs.Atom.Atom', or 'P.Nothing' if retrieving the data failed.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardTargetsReceivedFunc`@.
noClipboardTargetsReceivedFunc :: Maybe ClipboardTargetsReceivedFunc
noClipboardTargetsReceivedFunc :: Maybe ClipboardTargetsReceivedFunc
noClipboardTargetsReceivedFunc = Maybe ClipboardTargetsReceivedFunc
forall a. Maybe a
Nothing

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestTargets'
-- are received, or when the request fails.
-- 
-- /Since: 2.4/
type ClipboardTargetsReceivedFunc_WithClosures =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Maybe [Gdk.Atom.Atom]
    -- ^ /@atoms@/: the supported targets,
    --   as array of t'GI.Gdk.Structs.Atom.Atom', or 'P.Nothing' if retrieving the data failed.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestTargets'.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardTargetsReceivedFunc_WithClosures`@.
noClipboardTargetsReceivedFunc_WithClosures :: Maybe ClipboardTargetsReceivedFunc_WithClosures
noClipboardTargetsReceivedFunc_WithClosures :: Maybe ClipboardTargetsReceivedFunc_WithClosures
noClipboardTargetsReceivedFunc_WithClosures = Maybe ClipboardTargetsReceivedFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ClipboardTargetsReceivedFunc :: ClipboardTargetsReceivedFunc -> ClipboardTargetsReceivedFunc_WithClosures
drop_closures_ClipboardTargetsReceivedFunc :: ClipboardTargetsReceivedFunc
-> ClipboardTargetsReceivedFunc_WithClosures
drop_closures_ClipboardTargetsReceivedFunc _f :: ClipboardTargetsReceivedFunc
_f clipboard :: Clipboard
clipboard atoms :: Maybe [Atom]
atoms _ = ClipboardTargetsReceivedFunc
_f Clipboard
clipboard Maybe [Atom]
atoms

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardTargetsReceivedFunc :: MonadIO m => ClipboardTargetsReceivedFunc -> m (GClosure C_ClipboardTargetsReceivedFunc)
genClosure_ClipboardTargetsReceivedFunc :: ClipboardTargetsReceivedFunc
-> m (GClosure C_ClipboardTargetsReceivedFunc)
genClosure_ClipboardTargetsReceivedFunc cb :: ClipboardTargetsReceivedFunc
cb = IO (GClosure C_ClipboardTargetsReceivedFunc)
-> m (GClosure C_ClipboardTargetsReceivedFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardTargetsReceivedFunc)
 -> m (GClosure C_ClipboardTargetsReceivedFunc))
-> IO (GClosure C_ClipboardTargetsReceivedFunc)
-> m (GClosure C_ClipboardTargetsReceivedFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ClipboardTargetsReceivedFunc_WithClosures
cb' = ClipboardTargetsReceivedFunc
-> ClipboardTargetsReceivedFunc_WithClosures
drop_closures_ClipboardTargetsReceivedFunc ClipboardTargetsReceivedFunc
cb
    let cb'' :: C_ClipboardTargetsReceivedFunc
cb'' = Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc))
-> ClipboardTargetsReceivedFunc_WithClosures
-> C_ClipboardTargetsReceivedFunc
wrap_ClipboardTargetsReceivedFunc Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc))
forall a. Maybe a
Nothing ClipboardTargetsReceivedFunc_WithClosures
cb'
    C_ClipboardTargetsReceivedFunc
-> IO (FunPtr C_ClipboardTargetsReceivedFunc)
mk_ClipboardTargetsReceivedFunc C_ClipboardTargetsReceivedFunc
cb'' IO (FunPtr C_ClipboardTargetsReceivedFunc)
-> (FunPtr C_ClipboardTargetsReceivedFunc
    -> IO (GClosure C_ClipboardTargetsReceivedFunc))
-> IO (GClosure C_ClipboardTargetsReceivedFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardTargetsReceivedFunc
-> IO (GClosure C_ClipboardTargetsReceivedFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardTargetsReceivedFunc` into a `C_ClipboardTargetsReceivedFunc`.
wrap_ClipboardTargetsReceivedFunc ::
    Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc)) ->
    ClipboardTargetsReceivedFunc_WithClosures ->
    C_ClipboardTargetsReceivedFunc
wrap_ClipboardTargetsReceivedFunc :: Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc))
-> ClipboardTargetsReceivedFunc_WithClosures
-> C_ClipboardTargetsReceivedFunc
wrap_ClipboardTargetsReceivedFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc))
funptrptr _cb :: ClipboardTargetsReceivedFunc_WithClosures
_cb clipboard :: Ptr Clipboard
clipboard atoms :: Ptr (Ptr Atom)
atoms nAtoms :: Int32
nAtoms data_ :: Ptr ()
data_ = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    Maybe [Atom]
maybeAtoms <-
        if Ptr (Ptr Atom)
atoms Ptr (Ptr Atom) -> Ptr (Ptr Atom) -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr (Ptr Atom)
forall a. Ptr a
nullPtr
        then Maybe [Atom] -> IO (Maybe [Atom])
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe [Atom]
forall a. Maybe a
Nothing
        else do
            [Ptr Atom]
atoms' <- (Int32 -> Ptr (Ptr Atom) -> IO [Ptr Atom]
forall a b. Integral a => a -> Ptr (Ptr b) -> IO [Ptr b]
unpackPtrArrayWithLength Int32
nAtoms) Ptr (Ptr Atom)
atoms
            [Atom]
atoms'' <- (Ptr Atom -> IO Atom) -> [Ptr Atom] -> IO [Atom]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr Atom -> Atom) -> Ptr Atom -> IO Atom
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr Atom -> Atom
Gdk.Atom.Atom) [Ptr Atom]
atoms'
            Maybe [Atom] -> IO (Maybe [Atom])
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe [Atom] -> IO (Maybe [Atom]))
-> Maybe [Atom] -> IO (Maybe [Atom])
forall a b. (a -> b) -> a -> b
$ [Atom] -> Maybe [Atom]
forall a. a -> Maybe a
Just [Atom]
atoms''
    ClipboardTargetsReceivedFunc_WithClosures
_cb  Clipboard
clipboard' Maybe [Atom]
maybeAtoms Ptr ()
data_
    Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardTargetsReceivedFunc))
funptrptr


-- callback ClipboardRichTextReceivedFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "Gdk", name = "Atom"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The format of the rich text", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the rich text received, as\n  a UTF-8 encoded string, or %NULL if retrieving the data failed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of the text.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data supplied to\n  gtk_clipboard_request_rich_text().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to be called when the results of\ngtk_clipboard_request_rich_text() are received, or when the request\nfails.", sinceVersion = Just "2.10"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardRichTextReceivedFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr Gdk.Atom.Atom ->
    CString ->
    Word64 ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "format"
--           , argType = TInterface Name { namespace = "Gdk" , name = "Atom" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The format of the rich text"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "text"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the rich text received, as\n  a UTF-8 encoded string, or %NULL if retrieving the data failed."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "length"
--           , argType = TBasicType TUInt64
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Length of the text."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the @user_data supplied to\n  gtk_clipboard_request_rich_text()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardRichTextReceivedFunc :: FunPtr C_ClipboardRichTextReceivedFunc -> C_ClipboardRichTextReceivedFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardRichTextReceivedFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardRichTextReceivedFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gdk.Atom.Atom
    -- ^ /@format@/: The format of the rich text
    -> Maybe (T.Text)
    -- ^ /@text@/: the rich text received, as
    --   a UTF-8 encoded string, or 'P.Nothing' if retrieving the data failed.
    -> Word64
    -- ^ /@length@/: Length of the text.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestRichText'.
    -> m ()
dynamic_ClipboardRichTextReceivedFunc :: FunPtr C_ClipboardRichTextReceivedFunc
-> a -> Atom -> Maybe Text -> Word64 -> Ptr () -> m ()
dynamic_ClipboardRichTextReceivedFunc __funPtr :: FunPtr C_ClipboardRichTextReceivedFunc
__funPtr clipboard :: a
clipboard format :: Atom
format text :: Maybe Text
text length_ :: Word64
length_ data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    Ptr Atom
format' <- Atom -> IO (Ptr Atom)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Atom
format
    CString
maybeText <- case Maybe Text
text of
        Nothing -> CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
        Just jText :: Text
jText -> do
            CString
jText' <- Text -> IO CString
textToCString Text
jText
            CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jText'
    (FunPtr C_ClipboardRichTextReceivedFunc
-> C_ClipboardRichTextReceivedFunc
__dynamic_C_ClipboardRichTextReceivedFunc FunPtr C_ClipboardRichTextReceivedFunc
__funPtr) Ptr Clipboard
clipboard' Ptr Atom
format' CString
maybeText Word64
length_ Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    Atom -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Atom
format
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeText
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardRichTextReceivedFunc`.
foreign import ccall "wrapper"
    mk_ClipboardRichTextReceivedFunc :: C_ClipboardRichTextReceivedFunc -> IO (FunPtr C_ClipboardRichTextReceivedFunc)

-- | A function to be called when the results of
-- 'GI.Gtk.Objects.Clipboard.clipboardRequestRichText' are received, or when the request
-- fails.
-- 
-- /Since: 2.10/
type ClipboardRichTextReceivedFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gdk.Atom.Atom
    -- ^ /@format@/: The format of the rich text
    -> Maybe T.Text
    -- ^ /@text@/: the rich text received, as
    --   a UTF-8 encoded string, or 'P.Nothing' if retrieving the data failed.
    -> Word64
    -- ^ /@length@/: Length of the text.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardRichTextReceivedFunc`@.
noClipboardRichTextReceivedFunc :: Maybe ClipboardRichTextReceivedFunc
noClipboardRichTextReceivedFunc :: Maybe ClipboardRichTextReceivedFunc
noClipboardRichTextReceivedFunc = Maybe ClipboardRichTextReceivedFunc
forall a. Maybe a
Nothing

-- | A function to be called when the results of
-- 'GI.Gtk.Objects.Clipboard.clipboardRequestRichText' are received, or when the request
-- fails.
-- 
-- /Since: 2.10/
type ClipboardRichTextReceivedFunc_WithClosures =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gdk.Atom.Atom
    -- ^ /@format@/: The format of the rich text
    -> Maybe T.Text
    -- ^ /@text@/: the rich text received, as
    --   a UTF-8 encoded string, or 'P.Nothing' if retrieving the data failed.
    -> Word64
    -- ^ /@length@/: Length of the text.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestRichText'.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardRichTextReceivedFunc_WithClosures`@.
noClipboardRichTextReceivedFunc_WithClosures :: Maybe ClipboardRichTextReceivedFunc_WithClosures
noClipboardRichTextReceivedFunc_WithClosures :: Maybe ClipboardRichTextReceivedFunc_WithClosures
noClipboardRichTextReceivedFunc_WithClosures = Maybe ClipboardRichTextReceivedFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ClipboardRichTextReceivedFunc :: ClipboardRichTextReceivedFunc -> ClipboardRichTextReceivedFunc_WithClosures
drop_closures_ClipboardRichTextReceivedFunc :: ClipboardRichTextReceivedFunc
-> ClipboardRichTextReceivedFunc_WithClosures
drop_closures_ClipboardRichTextReceivedFunc _f :: ClipboardRichTextReceivedFunc
_f clipboard :: Clipboard
clipboard format :: Atom
format text :: Maybe Text
text length_ :: Word64
length_ _ = ClipboardRichTextReceivedFunc
_f Clipboard
clipboard Atom
format Maybe Text
text Word64
length_

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardRichTextReceivedFunc :: MonadIO m => ClipboardRichTextReceivedFunc -> m (GClosure C_ClipboardRichTextReceivedFunc)
genClosure_ClipboardRichTextReceivedFunc :: ClipboardRichTextReceivedFunc
-> m (GClosure C_ClipboardRichTextReceivedFunc)
genClosure_ClipboardRichTextReceivedFunc cb :: ClipboardRichTextReceivedFunc
cb = IO (GClosure C_ClipboardRichTextReceivedFunc)
-> m (GClosure C_ClipboardRichTextReceivedFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardRichTextReceivedFunc)
 -> m (GClosure C_ClipboardRichTextReceivedFunc))
-> IO (GClosure C_ClipboardRichTextReceivedFunc)
-> m (GClosure C_ClipboardRichTextReceivedFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ClipboardRichTextReceivedFunc_WithClosures
cb' = ClipboardRichTextReceivedFunc
-> ClipboardRichTextReceivedFunc_WithClosures
drop_closures_ClipboardRichTextReceivedFunc ClipboardRichTextReceivedFunc
cb
    let cb'' :: C_ClipboardRichTextReceivedFunc
cb'' = Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc))
-> ClipboardRichTextReceivedFunc_WithClosures
-> C_ClipboardRichTextReceivedFunc
wrap_ClipboardRichTextReceivedFunc Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc))
forall a. Maybe a
Nothing ClipboardRichTextReceivedFunc_WithClosures
cb'
    C_ClipboardRichTextReceivedFunc
-> IO (FunPtr C_ClipboardRichTextReceivedFunc)
mk_ClipboardRichTextReceivedFunc C_ClipboardRichTextReceivedFunc
cb'' IO (FunPtr C_ClipboardRichTextReceivedFunc)
-> (FunPtr C_ClipboardRichTextReceivedFunc
    -> IO (GClosure C_ClipboardRichTextReceivedFunc))
-> IO (GClosure C_ClipboardRichTextReceivedFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardRichTextReceivedFunc
-> IO (GClosure C_ClipboardRichTextReceivedFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardRichTextReceivedFunc` into a `C_ClipboardRichTextReceivedFunc`.
wrap_ClipboardRichTextReceivedFunc ::
    Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc)) ->
    ClipboardRichTextReceivedFunc_WithClosures ->
    C_ClipboardRichTextReceivedFunc
wrap_ClipboardRichTextReceivedFunc :: Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc))
-> ClipboardRichTextReceivedFunc_WithClosures
-> C_ClipboardRichTextReceivedFunc
wrap_ClipboardRichTextReceivedFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc))
funptrptr _cb :: ClipboardRichTextReceivedFunc_WithClosures
_cb clipboard :: Ptr Clipboard
clipboard format :: Ptr Atom
format text :: CString
text length_ :: Word64
length_ data_ :: Ptr ()
data_ = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    Atom
format' <- ((ManagedPtr Atom -> Atom) -> Ptr Atom -> IO Atom
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr Atom -> Atom
Gdk.Atom.Atom) Ptr Atom
format
    Maybe Text
maybeText <-
        if CString
text CString -> CString -> Bool
forall a. Eq a => a -> a -> Bool
== CString
forall a. Ptr a
nullPtr
        then Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
forall a. Maybe a
Nothing
        else do
            Text
text' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
text
            Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe Text -> IO (Maybe Text)) -> Maybe Text -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text
forall a. a -> Maybe a
Just Text
text'
    ClipboardRichTextReceivedFunc_WithClosures
_cb  Clipboard
clipboard' Atom
format' Maybe Text
maybeText Word64
length_ Ptr ()
data_
    Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardRichTextReceivedFunc))
funptrptr


-- callback ClipboardReceivedFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_data", argType = TInterface (Name {namespace = "Gtk", name = "SelectionData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSelectionData containing the data was received.\n  If retrieving the data failed, then then length field\n  of @selection_data will be negative.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data supplied to\n  gtk_clipboard_request_contents().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to be called when the results of gtk_clipboard_request_contents()\nare received, or when the request fails.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardReceivedFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr Gtk.SelectionData.SelectionData ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "selection_data"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "SelectionData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkSelectionData containing the data was received.\n  If retrieving the data failed, then then length field\n  of @selection_data will be negative."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the @user_data supplied to\n  gtk_clipboard_request_contents()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardReceivedFunc :: FunPtr C_ClipboardReceivedFunc -> C_ClipboardReceivedFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardReceivedFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardReceivedFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gtk.SelectionData.SelectionData
    -- ^ /@selectionData@/: a t'GI.Gtk.Structs.SelectionData.SelectionData' containing the data was received.
    --   If retrieving the data failed, then then length field
    --   of /@selectionData@/ will be negative.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestContents'.
    -> m ()
dynamic_ClipboardReceivedFunc :: FunPtr C_ClipboardReceivedFunc
-> a -> SelectionData -> Ptr () -> m ()
dynamic_ClipboardReceivedFunc __funPtr :: FunPtr C_ClipboardReceivedFunc
__funPtr clipboard :: a
clipboard selectionData :: SelectionData
selectionData data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    Ptr SelectionData
selectionData' <- SelectionData -> IO (Ptr SelectionData)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SelectionData
selectionData
    (FunPtr C_ClipboardReceivedFunc -> C_ClipboardReceivedFunc
__dynamic_C_ClipboardReceivedFunc FunPtr C_ClipboardReceivedFunc
__funPtr) Ptr Clipboard
clipboard' Ptr SelectionData
selectionData' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    SelectionData -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SelectionData
selectionData
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardReceivedFunc`.
foreign import ccall "wrapper"
    mk_ClipboardReceivedFunc :: C_ClipboardReceivedFunc -> IO (FunPtr C_ClipboardReceivedFunc)

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestContents'
-- are received, or when the request fails.
type ClipboardReceivedFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gtk.SelectionData.SelectionData
    -- ^ /@selectionData@/: a t'GI.Gtk.Structs.SelectionData.SelectionData' containing the data was received.
    --   If retrieving the data failed, then then length field
    --   of /@selectionData@/ will be negative.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardReceivedFunc`@.
noClipboardReceivedFunc :: Maybe ClipboardReceivedFunc
noClipboardReceivedFunc :: Maybe ClipboardReceivedFunc
noClipboardReceivedFunc = Maybe ClipboardReceivedFunc
forall a. Maybe a
Nothing

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestContents'
-- are received, or when the request fails.
type ClipboardReceivedFunc_WithClosures =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gtk.SelectionData.SelectionData
    -- ^ /@selectionData@/: a t'GI.Gtk.Structs.SelectionData.SelectionData' containing the data was received.
    --   If retrieving the data failed, then then length field
    --   of /@selectionData@/ will be negative.
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestContents'.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardReceivedFunc_WithClosures`@.
noClipboardReceivedFunc_WithClosures :: Maybe ClipboardReceivedFunc_WithClosures
noClipboardReceivedFunc_WithClosures :: Maybe ClipboardReceivedFunc_WithClosures
noClipboardReceivedFunc_WithClosures = Maybe ClipboardReceivedFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ClipboardReceivedFunc :: ClipboardReceivedFunc -> ClipboardReceivedFunc_WithClosures
drop_closures_ClipboardReceivedFunc :: ClipboardReceivedFunc -> ClipboardReceivedFunc_WithClosures
drop_closures_ClipboardReceivedFunc _f :: ClipboardReceivedFunc
_f clipboard :: Clipboard
clipboard selectionData :: SelectionData
selectionData _ = ClipboardReceivedFunc
_f Clipboard
clipboard SelectionData
selectionData

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardReceivedFunc :: MonadIO m => ClipboardReceivedFunc -> m (GClosure C_ClipboardReceivedFunc)
genClosure_ClipboardReceivedFunc :: ClipboardReceivedFunc -> m (GClosure C_ClipboardReceivedFunc)
genClosure_ClipboardReceivedFunc cb :: ClipboardReceivedFunc
cb = IO (GClosure C_ClipboardReceivedFunc)
-> m (GClosure C_ClipboardReceivedFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardReceivedFunc)
 -> m (GClosure C_ClipboardReceivedFunc))
-> IO (GClosure C_ClipboardReceivedFunc)
-> m (GClosure C_ClipboardReceivedFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ClipboardReceivedFunc_WithClosures
cb' = ClipboardReceivedFunc -> ClipboardReceivedFunc_WithClosures
drop_closures_ClipboardReceivedFunc ClipboardReceivedFunc
cb
    let cb'' :: C_ClipboardReceivedFunc
cb'' = Maybe (Ptr (FunPtr C_ClipboardReceivedFunc))
-> ClipboardReceivedFunc_WithClosures -> C_ClipboardReceivedFunc
wrap_ClipboardReceivedFunc Maybe (Ptr (FunPtr C_ClipboardReceivedFunc))
forall a. Maybe a
Nothing ClipboardReceivedFunc_WithClosures
cb'
    C_ClipboardReceivedFunc -> IO (FunPtr C_ClipboardReceivedFunc)
mk_ClipboardReceivedFunc C_ClipboardReceivedFunc
cb'' IO (FunPtr C_ClipboardReceivedFunc)
-> (FunPtr C_ClipboardReceivedFunc
    -> IO (GClosure C_ClipboardReceivedFunc))
-> IO (GClosure C_ClipboardReceivedFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardReceivedFunc
-> IO (GClosure C_ClipboardReceivedFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardReceivedFunc` into a `C_ClipboardReceivedFunc`.
wrap_ClipboardReceivedFunc ::
    Maybe (Ptr (FunPtr C_ClipboardReceivedFunc)) ->
    ClipboardReceivedFunc_WithClosures ->
    C_ClipboardReceivedFunc
wrap_ClipboardReceivedFunc :: Maybe (Ptr (FunPtr C_ClipboardReceivedFunc))
-> ClipboardReceivedFunc_WithClosures -> C_ClipboardReceivedFunc
wrap_ClipboardReceivedFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardReceivedFunc))
funptrptr _cb :: ClipboardReceivedFunc_WithClosures
_cb clipboard :: Ptr Clipboard
clipboard selectionData :: Ptr SelectionData
selectionData data_ :: Ptr ()
data_ = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    (ManagedPtr SelectionData -> SelectionData)
-> Ptr SelectionData -> (SelectionData -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr SelectionData -> SelectionData
Gtk.SelectionData.SelectionData Ptr SelectionData
selectionData ((SelectionData -> IO ()) -> IO ())
-> (SelectionData -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \selectionData' :: SelectionData
selectionData' -> do
        ClipboardReceivedFunc_WithClosures
_cb  Clipboard
clipboard' SelectionData
selectionData' Ptr ()
data_
        Maybe (Ptr (FunPtr C_ClipboardReceivedFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardReceivedFunc))
funptrptr


-- callback ClipboardImageReceivedFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbuf", argType = TInterface (Name {namespace = "GdkPixbuf", name = "Pixbuf"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the received image", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data supplied to\n  gtk_clipboard_request_image().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function to be called when the results of gtk_clipboard_request_image()\nare received, or when the request fails.", sinceVersion = Just "2.6"}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardImageReceivedFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr GdkPixbuf.Pixbuf.Pixbuf ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "pixbuf"
--           , argType =
--               TInterface Name { namespace = "GdkPixbuf" , name = "Pixbuf" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the received image" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the @user_data supplied to\n  gtk_clipboard_request_image()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardImageReceivedFunc :: FunPtr C_ClipboardImageReceivedFunc -> C_ClipboardImageReceivedFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardImageReceivedFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a, GdkPixbuf.Pixbuf.IsPixbuf b) =>
    FunPtr C_ClipboardImageReceivedFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> b
    -- ^ /@pixbuf@/: the received image
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestImage'.
    -> m ()
dynamic_ClipboardImageReceivedFunc :: FunPtr C_ClipboardImageReceivedFunc -> a -> b -> Ptr () -> m ()
dynamic_ClipboardImageReceivedFunc __funPtr :: FunPtr C_ClipboardImageReceivedFunc
__funPtr clipboard :: a
clipboard pixbuf :: b
pixbuf data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    Ptr Pixbuf
pixbuf' <- b -> IO (Ptr Pixbuf)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
pixbuf
    (FunPtr C_ClipboardImageReceivedFunc -> C_ClipboardImageReceivedFunc
__dynamic_C_ClipboardImageReceivedFunc FunPtr C_ClipboardImageReceivedFunc
__funPtr) Ptr Clipboard
clipboard' Ptr Pixbuf
pixbuf' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
pixbuf
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardImageReceivedFunc`.
foreign import ccall "wrapper"
    mk_ClipboardImageReceivedFunc :: C_ClipboardImageReceivedFunc -> IO (FunPtr C_ClipboardImageReceivedFunc)

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestImage'
-- are received, or when the request fails.
-- 
-- /Since: 2.6/
type ClipboardImageReceivedFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> GdkPixbuf.Pixbuf.Pixbuf
    -- ^ /@pixbuf@/: the received image
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardImageReceivedFunc`@.
noClipboardImageReceivedFunc :: Maybe ClipboardImageReceivedFunc
noClipboardImageReceivedFunc :: Maybe ClipboardImageReceivedFunc
noClipboardImageReceivedFunc = Maybe ClipboardImageReceivedFunc
forall a. Maybe a
Nothing

-- | A function to be called when the results of 'GI.Gtk.Objects.Clipboard.clipboardRequestImage'
-- are received, or when the request fails.
-- 
-- /Since: 2.6/
type ClipboardImageReceivedFunc_WithClosures =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> GdkPixbuf.Pixbuf.Pixbuf
    -- ^ /@pixbuf@/: the received image
    -> Ptr ()
    -- ^ /@data@/: the /@userData@/ supplied to
    --   'GI.Gtk.Objects.Clipboard.clipboardRequestImage'.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardImageReceivedFunc_WithClosures`@.
noClipboardImageReceivedFunc_WithClosures :: Maybe ClipboardImageReceivedFunc_WithClosures
noClipboardImageReceivedFunc_WithClosures :: Maybe ClipboardImageReceivedFunc_WithClosures
noClipboardImageReceivedFunc_WithClosures = Maybe ClipboardImageReceivedFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_ClipboardImageReceivedFunc :: ClipboardImageReceivedFunc -> ClipboardImageReceivedFunc_WithClosures
drop_closures_ClipboardImageReceivedFunc :: ClipboardImageReceivedFunc
-> ClipboardImageReceivedFunc_WithClosures
drop_closures_ClipboardImageReceivedFunc _f :: ClipboardImageReceivedFunc
_f clipboard :: Clipboard
clipboard pixbuf :: Pixbuf
pixbuf _ = ClipboardImageReceivedFunc
_f Clipboard
clipboard Pixbuf
pixbuf

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardImageReceivedFunc :: MonadIO m => ClipboardImageReceivedFunc -> m (GClosure C_ClipboardImageReceivedFunc)
genClosure_ClipboardImageReceivedFunc :: ClipboardImageReceivedFunc
-> m (GClosure C_ClipboardImageReceivedFunc)
genClosure_ClipboardImageReceivedFunc cb :: ClipboardImageReceivedFunc
cb = IO (GClosure C_ClipboardImageReceivedFunc)
-> m (GClosure C_ClipboardImageReceivedFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardImageReceivedFunc)
 -> m (GClosure C_ClipboardImageReceivedFunc))
-> IO (GClosure C_ClipboardImageReceivedFunc)
-> m (GClosure C_ClipboardImageReceivedFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: ClipboardImageReceivedFunc_WithClosures
cb' = ClipboardImageReceivedFunc
-> ClipboardImageReceivedFunc_WithClosures
drop_closures_ClipboardImageReceivedFunc ClipboardImageReceivedFunc
cb
    let cb'' :: C_ClipboardImageReceivedFunc
cb'' = Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc))
-> ClipboardImageReceivedFunc_WithClosures
-> C_ClipboardImageReceivedFunc
wrap_ClipboardImageReceivedFunc Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc))
forall a. Maybe a
Nothing ClipboardImageReceivedFunc_WithClosures
cb'
    C_ClipboardImageReceivedFunc
-> IO (FunPtr C_ClipboardImageReceivedFunc)
mk_ClipboardImageReceivedFunc C_ClipboardImageReceivedFunc
cb'' IO (FunPtr C_ClipboardImageReceivedFunc)
-> (FunPtr C_ClipboardImageReceivedFunc
    -> IO (GClosure C_ClipboardImageReceivedFunc))
-> IO (GClosure C_ClipboardImageReceivedFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardImageReceivedFunc
-> IO (GClosure C_ClipboardImageReceivedFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardImageReceivedFunc` into a `C_ClipboardImageReceivedFunc`.
wrap_ClipboardImageReceivedFunc ::
    Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc)) ->
    ClipboardImageReceivedFunc_WithClosures ->
    C_ClipboardImageReceivedFunc
wrap_ClipboardImageReceivedFunc :: Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc))
-> ClipboardImageReceivedFunc_WithClosures
-> C_ClipboardImageReceivedFunc
wrap_ClipboardImageReceivedFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc))
funptrptr _cb :: ClipboardImageReceivedFunc_WithClosures
_cb clipboard :: Ptr Clipboard
clipboard pixbuf :: Ptr Pixbuf
pixbuf data_ :: Ptr ()
data_ = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    Pixbuf
pixbuf' <- ((ManagedPtr Pixbuf -> Pixbuf) -> Ptr Pixbuf -> IO Pixbuf
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Pixbuf -> Pixbuf
GdkPixbuf.Pixbuf.Pixbuf) Ptr Pixbuf
pixbuf
    ClipboardImageReceivedFunc_WithClosures
_cb  Clipboard
clipboard' Pixbuf
pixbuf' Ptr ()
data_
    Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardImageReceivedFunc))
funptrptr


-- callback ClipboardGetFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection_data", argType = TInterface (Name {namespace = "Gtk", name = "SelectionData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSelectionData argument in which the requested\n  data should be stored.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the info field corresponding to the requested target from the\n  #GtkTargetEntry array passed to gtk_clipboard_set_with_data() or\n  gtk_clipboard_set_with_owner().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data_or_owner", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data argument passed to\n  gtk_clipboard_set_with_data(), or the @owner argument passed to\n  gtk_clipboard_set_with_owner()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function that will be called to provide the contents of the selection.\nIf multiple types of data were advertised, the requested type can\nbe determined from the @info parameter or by checking the target field\nof @selection_data. If the data could successfully be converted into\nthen it should be stored into the @selection_data object by\ncalling gtk_selection_data_set() (or related functions such\nas gtk_selection_data_set_text()). If no data is set, the requestor\nwill be informed that the attempt to get the data failed.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardGetFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr Gtk.SelectionData.SelectionData ->
    Word32 ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "selection_data"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "SelectionData" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkSelectionData argument in which the requested\n  data should be stored."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "info"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the info field corresponding to the requested target from the\n  #GtkTargetEntry array passed to gtk_clipboard_set_with_data() or\n  gtk_clipboard_set_with_owner()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data_or_owner"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the @user_data argument passed to\n  gtk_clipboard_set_with_data(), or the @owner argument passed to\n  gtk_clipboard_set_with_owner()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardGetFunc :: FunPtr C_ClipboardGetFunc -> C_ClipboardGetFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardGetFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardGetFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gtk.SelectionData.SelectionData
    -- ^ /@selectionData@/: a t'GI.Gtk.Structs.SelectionData.SelectionData' argument in which the requested
    --   data should be stored.
    -> Word32
    -- ^ /@info@/: the info field corresponding to the requested target from the
    --   t'GI.Gtk.Structs.TargetEntry.TargetEntry' array passed to @/gtk_clipboard_set_with_data()/@ or
    --   @/gtk_clipboard_set_with_owner()/@.
    -> Ptr ()
    -- ^ /@userDataOrOwner@/: the /@userData@/ argument passed to
    --   @/gtk_clipboard_set_with_data()/@, or the /@owner@/ argument passed to
    --   @/gtk_clipboard_set_with_owner()/@
    -> m ()
dynamic_ClipboardGetFunc :: FunPtr C_ClipboardGetFunc
-> a -> SelectionData -> Word32 -> Ptr () -> m ()
dynamic_ClipboardGetFunc __funPtr :: FunPtr C_ClipboardGetFunc
__funPtr clipboard :: a
clipboard selectionData :: SelectionData
selectionData info :: Word32
info userDataOrOwner :: Ptr ()
userDataOrOwner = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    Ptr SelectionData
selectionData' <- SelectionData -> IO (Ptr SelectionData)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr SelectionData
selectionData
    (FunPtr C_ClipboardGetFunc -> C_ClipboardGetFunc
__dynamic_C_ClipboardGetFunc FunPtr C_ClipboardGetFunc
__funPtr) Ptr Clipboard
clipboard' Ptr SelectionData
selectionData' Word32
info Ptr ()
userDataOrOwner
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    SelectionData -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr SelectionData
selectionData
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardGetFunc`.
foreign import ccall "wrapper"
    mk_ClipboardGetFunc :: C_ClipboardGetFunc -> IO (FunPtr C_ClipboardGetFunc)

-- | A function that will be called to provide the contents of the selection.
-- If multiple types of data were advertised, the requested type can
-- be determined from the /@info@/ parameter or by checking the target field
-- of /@selectionData@/. If the data could successfully be converted into
-- then it should be stored into the /@selectionData@/ object by
-- calling 'GI.Gtk.Structs.SelectionData.selectionDataSet' (or related functions such
-- as 'GI.Gtk.Structs.SelectionData.selectionDataSetText'). If no data is set, the requestor
-- will be informed that the attempt to get the data failed.
type ClipboardGetFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Gtk.SelectionData.SelectionData
    -- ^ /@selectionData@/: a t'GI.Gtk.Structs.SelectionData.SelectionData' argument in which the requested
    --   data should be stored.
    -> Word32
    -- ^ /@info@/: the info field corresponding to the requested target from the
    --   t'GI.Gtk.Structs.TargetEntry.TargetEntry' array passed to @/gtk_clipboard_set_with_data()/@ or
    --   @/gtk_clipboard_set_with_owner()/@.
    -> Ptr ()
    -- ^ /@userDataOrOwner@/: the /@userData@/ argument passed to
    --   @/gtk_clipboard_set_with_data()/@, or the /@owner@/ argument passed to
    --   @/gtk_clipboard_set_with_owner()/@
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardGetFunc`@.
noClipboardGetFunc :: Maybe ClipboardGetFunc
noClipboardGetFunc :: Maybe ClipboardGetFunc
noClipboardGetFunc = Maybe ClipboardGetFunc
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardGetFunc :: MonadIO m => ClipboardGetFunc -> m (GClosure C_ClipboardGetFunc)
genClosure_ClipboardGetFunc :: ClipboardGetFunc -> m (GClosure C_ClipboardGetFunc)
genClosure_ClipboardGetFunc cb :: ClipboardGetFunc
cb = IO (GClosure C_ClipboardGetFunc) -> m (GClosure C_ClipboardGetFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardGetFunc)
 -> m (GClosure C_ClipboardGetFunc))
-> IO (GClosure C_ClipboardGetFunc)
-> m (GClosure C_ClipboardGetFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ClipboardGetFunc
cb' = Maybe (Ptr (FunPtr C_ClipboardGetFunc))
-> ClipboardGetFunc -> C_ClipboardGetFunc
wrap_ClipboardGetFunc Maybe (Ptr (FunPtr C_ClipboardGetFunc))
forall a. Maybe a
Nothing ClipboardGetFunc
cb
    C_ClipboardGetFunc -> IO (FunPtr C_ClipboardGetFunc)
mk_ClipboardGetFunc C_ClipboardGetFunc
cb' IO (FunPtr C_ClipboardGetFunc)
-> (FunPtr C_ClipboardGetFunc -> IO (GClosure C_ClipboardGetFunc))
-> IO (GClosure C_ClipboardGetFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardGetFunc -> IO (GClosure C_ClipboardGetFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardGetFunc` into a `C_ClipboardGetFunc`.
wrap_ClipboardGetFunc ::
    Maybe (Ptr (FunPtr C_ClipboardGetFunc)) ->
    ClipboardGetFunc ->
    C_ClipboardGetFunc
wrap_ClipboardGetFunc :: Maybe (Ptr (FunPtr C_ClipboardGetFunc))
-> ClipboardGetFunc -> C_ClipboardGetFunc
wrap_ClipboardGetFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardGetFunc))
funptrptr _cb :: ClipboardGetFunc
_cb clipboard :: Ptr Clipboard
clipboard selectionData :: Ptr SelectionData
selectionData info :: Word32
info userDataOrOwner :: Ptr ()
userDataOrOwner = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    (ManagedPtr SelectionData -> SelectionData)
-> Ptr SelectionData -> (SelectionData -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr SelectionData -> SelectionData
Gtk.SelectionData.SelectionData Ptr SelectionData
selectionData ((SelectionData -> IO ()) -> IO ())
-> (SelectionData -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \selectionData' :: SelectionData
selectionData' -> do
        ClipboardGetFunc
_cb  Clipboard
clipboard' SelectionData
selectionData' Word32
info Ptr ()
userDataOrOwner
        Maybe (Ptr (FunPtr C_ClipboardGetFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardGetFunc))
funptrptr


-- callback ClipboardClearFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "clipboard", argType = TInterface (Name {namespace = "Gtk", name = "Clipboard"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GtkClipboard", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data_or_owner", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the @user_data argument passed to gtk_clipboard_set_with_data(),\n  or the @owner argument passed to gtk_clipboard_set_with_owner()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function that will be called when the contents of the clipboard are changed\nor cleared. Once this has called, the @user_data_or_owner argument\nwill not be used again.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_ClipboardClearFunc =
    Ptr Gtk.Clipboard.Clipboard ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "clipboard"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Clipboard" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #GtkClipboard" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data_or_owner"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the @user_data argument passed to gtk_clipboard_set_with_data(),\n  or the @owner argument passed to gtk_clipboard_set_with_owner()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_ClipboardClearFunc :: FunPtr C_ClipboardClearFunc -> C_ClipboardClearFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_ClipboardClearFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Clipboard.IsClipboard a) =>
    FunPtr C_ClipboardClearFunc
    -> a
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Ptr ()
    -- ^ /@userDataOrOwner@/: the /@userData@/ argument passed to @/gtk_clipboard_set_with_data()/@,
    --   or the /@owner@/ argument passed to @/gtk_clipboard_set_with_owner()/@
    -> m ()
dynamic_ClipboardClearFunc :: FunPtr C_ClipboardClearFunc -> a -> Ptr () -> m ()
dynamic_ClipboardClearFunc __funPtr :: FunPtr C_ClipboardClearFunc
__funPtr clipboard :: a
clipboard userDataOrOwner :: Ptr ()
userDataOrOwner = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Clipboard
clipboard' <- a -> IO (Ptr Clipboard)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
clipboard
    (FunPtr C_ClipboardClearFunc -> C_ClipboardClearFunc
__dynamic_C_ClipboardClearFunc FunPtr C_ClipboardClearFunc
__funPtr) Ptr Clipboard
clipboard' Ptr ()
userDataOrOwner
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
clipboard
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_ClipboardClearFunc`.
foreign import ccall "wrapper"
    mk_ClipboardClearFunc :: C_ClipboardClearFunc -> IO (FunPtr C_ClipboardClearFunc)

-- | A function that will be called when the contents of the clipboard are changed
-- or cleared. Once this has called, the /@userDataOrOwner@/ argument
-- will not be used again.
type ClipboardClearFunc =
    Gtk.Clipboard.Clipboard
    -- ^ /@clipboard@/: the t'GI.Gtk.Objects.Clipboard.Clipboard'
    -> Ptr ()
    -- ^ /@userDataOrOwner@/: the /@userData@/ argument passed to @/gtk_clipboard_set_with_data()/@,
    --   or the /@owner@/ argument passed to @/gtk_clipboard_set_with_owner()/@
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `ClipboardClearFunc`@.
noClipboardClearFunc :: Maybe ClipboardClearFunc
noClipboardClearFunc :: Maybe ClipboardClearFunc
noClipboardClearFunc = Maybe ClipboardClearFunc
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_ClipboardClearFunc :: MonadIO m => ClipboardClearFunc -> m (GClosure C_ClipboardClearFunc)
genClosure_ClipboardClearFunc :: ClipboardClearFunc -> m (GClosure C_ClipboardClearFunc)
genClosure_ClipboardClearFunc cb :: ClipboardClearFunc
cb = IO (GClosure C_ClipboardClearFunc)
-> m (GClosure C_ClipboardClearFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ClipboardClearFunc)
 -> m (GClosure C_ClipboardClearFunc))
-> IO (GClosure C_ClipboardClearFunc)
-> m (GClosure C_ClipboardClearFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_ClipboardClearFunc
cb' = Maybe (Ptr (FunPtr C_ClipboardClearFunc))
-> ClipboardClearFunc -> C_ClipboardClearFunc
wrap_ClipboardClearFunc Maybe (Ptr (FunPtr C_ClipboardClearFunc))
forall a. Maybe a
Nothing ClipboardClearFunc
cb
    C_ClipboardClearFunc -> IO (FunPtr C_ClipboardClearFunc)
mk_ClipboardClearFunc C_ClipboardClearFunc
cb' IO (FunPtr C_ClipboardClearFunc)
-> (FunPtr C_ClipboardClearFunc
    -> IO (GClosure C_ClipboardClearFunc))
-> IO (GClosure C_ClipboardClearFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ClipboardClearFunc -> IO (GClosure C_ClipboardClearFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `ClipboardClearFunc` into a `C_ClipboardClearFunc`.
wrap_ClipboardClearFunc ::
    Maybe (Ptr (FunPtr C_ClipboardClearFunc)) ->
    ClipboardClearFunc ->
    C_ClipboardClearFunc
wrap_ClipboardClearFunc :: Maybe (Ptr (FunPtr C_ClipboardClearFunc))
-> ClipboardClearFunc -> C_ClipboardClearFunc
wrap_ClipboardClearFunc funptrptr :: Maybe (Ptr (FunPtr C_ClipboardClearFunc))
funptrptr _cb :: ClipboardClearFunc
_cb clipboard :: Ptr Clipboard
clipboard userDataOrOwner :: Ptr ()
userDataOrOwner = do
    Clipboard
clipboard' <- ((ManagedPtr Clipboard -> Clipboard)
-> Ptr Clipboard -> IO Clipboard
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Clipboard -> Clipboard
Gtk.Clipboard.Clipboard) Ptr Clipboard
clipboard
    ClipboardClearFunc
_cb  Clipboard
clipboard' Ptr ()
userDataOrOwner
    Maybe (Ptr (FunPtr C_ClipboardClearFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_ClipboardClearFunc))
funptrptr


-- callback CellLayoutDataFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "cell_layout", argType = TInterface (Name {namespace = "Gtk", name = "CellLayout"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkCellLayout", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cell", argType = TInterface (Name {namespace = "Gtk", name = "CellRenderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the cell renderer whose value is to be set", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tree_model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the model", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeIter indicating the row to set the value for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data passed to gtk_cell_layout_set_cell_data_func()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function which should set the value of @cell_layout\8217s cell renderer(s)\nas appropriate.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_CellLayoutDataFunc =
    Ptr Gtk.CellLayout.CellLayout ->
    Ptr Gtk.CellRenderer.CellRenderer ->
    Ptr Gtk.TreeModel.TreeModel ->
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "cell_layout"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellLayout" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkCellLayout" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the cell renderer whose value is to be set"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "tree_model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the model" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "a #GtkTreeIter indicating the row to set the value for"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data passed to gtk_cell_layout_set_cell_data_func()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_CellLayoutDataFunc :: FunPtr C_CellLayoutDataFunc -> C_CellLayoutDataFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_CellLayoutDataFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.CellLayout.IsCellLayout a, Gtk.CellRenderer.IsCellRenderer b, Gtk.TreeModel.IsTreeModel c) =>
    FunPtr C_CellLayoutDataFunc
    -> a
    -- ^ /@cellLayout@/: a t'GI.Gtk.Interfaces.CellLayout.CellLayout'
    -> b
    -- ^ /@cell@/: the cell renderer whose value is to be set
    -> c
    -- ^ /@treeModel@/: the model
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' indicating the row to set the value for
    -> Ptr ()
    -- ^ /@data@/: user data passed to 'GI.Gtk.Interfaces.CellLayout.cellLayoutSetCellDataFunc'
    -> m ()
dynamic_CellLayoutDataFunc :: FunPtr C_CellLayoutDataFunc
-> a -> b -> c -> TreeIter -> Ptr () -> m ()
dynamic_CellLayoutDataFunc __funPtr :: FunPtr C_CellLayoutDataFunc
__funPtr cellLayout :: a
cellLayout cell :: b
cell treeModel :: c
treeModel iter :: TreeIter
iter data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr CellLayout
cellLayout' <- a -> IO (Ptr CellLayout)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
cellLayout
    Ptr CellRenderer
cell' <- b -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
cell
    Ptr TreeModel
treeModel' <- c -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
treeModel
    Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
    (FunPtr C_CellLayoutDataFunc -> C_CellLayoutDataFunc
__dynamic_C_CellLayoutDataFunc FunPtr C_CellLayoutDataFunc
__funPtr) Ptr CellLayout
cellLayout' Ptr CellRenderer
cell' Ptr TreeModel
treeModel' Ptr TreeIter
iter' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
cellLayout
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
cell
    c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr c
treeModel
    TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_CellLayoutDataFunc`.
foreign import ccall "wrapper"
    mk_CellLayoutDataFunc :: C_CellLayoutDataFunc -> IO (FunPtr C_CellLayoutDataFunc)

-- | A function which should set the value of /@cellLayout@/’s cell renderer(s)
-- as appropriate.
type CellLayoutDataFunc =
    Gtk.CellLayout.CellLayout
    -- ^ /@cellLayout@/: a t'GI.Gtk.Interfaces.CellLayout.CellLayout'
    -> Gtk.CellRenderer.CellRenderer
    -- ^ /@cell@/: the cell renderer whose value is to be set
    -> Gtk.TreeModel.TreeModel
    -- ^ /@treeModel@/: the model
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' indicating the row to set the value for
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `CellLayoutDataFunc`@.
noCellLayoutDataFunc :: Maybe CellLayoutDataFunc
noCellLayoutDataFunc :: Maybe CellLayoutDataFunc
noCellLayoutDataFunc = Maybe CellLayoutDataFunc
forall a. Maybe a
Nothing

-- | A function which should set the value of /@cellLayout@/’s cell renderer(s)
-- as appropriate.
type CellLayoutDataFunc_WithClosures =
    Gtk.CellLayout.CellLayout
    -- ^ /@cellLayout@/: a t'GI.Gtk.Interfaces.CellLayout.CellLayout'
    -> Gtk.CellRenderer.CellRenderer
    -- ^ /@cell@/: the cell renderer whose value is to be set
    -> Gtk.TreeModel.TreeModel
    -- ^ /@treeModel@/: the model
    -> Gtk.TreeIter.TreeIter
    -- ^ /@iter@/: a t'GI.Gtk.Structs.TreeIter.TreeIter' indicating the row to set the value for
    -> Ptr ()
    -- ^ /@data@/: user data passed to 'GI.Gtk.Interfaces.CellLayout.cellLayoutSetCellDataFunc'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `CellLayoutDataFunc_WithClosures`@.
noCellLayoutDataFunc_WithClosures :: Maybe CellLayoutDataFunc_WithClosures
noCellLayoutDataFunc_WithClosures :: Maybe CellLayoutDataFunc_WithClosures
noCellLayoutDataFunc_WithClosures = Maybe CellLayoutDataFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CellLayoutDataFunc :: CellLayoutDataFunc -> CellLayoutDataFunc_WithClosures
drop_closures_CellLayoutDataFunc :: CellLayoutDataFunc -> CellLayoutDataFunc_WithClosures
drop_closures_CellLayoutDataFunc _f :: CellLayoutDataFunc
_f cellLayout :: CellLayout
cellLayout cell :: CellRenderer
cell treeModel :: TreeModel
treeModel iter :: TreeIter
iter _ = CellLayoutDataFunc
_f CellLayout
cellLayout CellRenderer
cell TreeModel
treeModel TreeIter
iter

-- | Wrap the callback into a `GClosure`.
genClosure_CellLayoutDataFunc :: MonadIO m => CellLayoutDataFunc -> m (GClosure C_CellLayoutDataFunc)
genClosure_CellLayoutDataFunc :: CellLayoutDataFunc -> m (GClosure C_CellLayoutDataFunc)
genClosure_CellLayoutDataFunc cb :: CellLayoutDataFunc
cb = IO (GClosure C_CellLayoutDataFunc)
-> m (GClosure C_CellLayoutDataFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_CellLayoutDataFunc)
 -> m (GClosure C_CellLayoutDataFunc))
-> IO (GClosure C_CellLayoutDataFunc)
-> m (GClosure C_CellLayoutDataFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: CellLayoutDataFunc_WithClosures
cb' = CellLayoutDataFunc -> CellLayoutDataFunc_WithClosures
drop_closures_CellLayoutDataFunc CellLayoutDataFunc
cb
    let cb'' :: C_CellLayoutDataFunc
cb'' = Maybe (Ptr (FunPtr C_CellLayoutDataFunc))
-> CellLayoutDataFunc_WithClosures -> C_CellLayoutDataFunc
wrap_CellLayoutDataFunc Maybe (Ptr (FunPtr C_CellLayoutDataFunc))
forall a. Maybe a
Nothing CellLayoutDataFunc_WithClosures
cb'
    C_CellLayoutDataFunc -> IO (FunPtr C_CellLayoutDataFunc)
mk_CellLayoutDataFunc C_CellLayoutDataFunc
cb'' IO (FunPtr C_CellLayoutDataFunc)
-> (FunPtr C_CellLayoutDataFunc
    -> IO (GClosure C_CellLayoutDataFunc))
-> IO (GClosure C_CellLayoutDataFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_CellLayoutDataFunc -> IO (GClosure C_CellLayoutDataFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `CellLayoutDataFunc` into a `C_CellLayoutDataFunc`.
wrap_CellLayoutDataFunc ::
    Maybe (Ptr (FunPtr C_CellLayoutDataFunc)) ->
    CellLayoutDataFunc_WithClosures ->
    C_CellLayoutDataFunc
wrap_CellLayoutDataFunc :: Maybe (Ptr (FunPtr C_CellLayoutDataFunc))
-> CellLayoutDataFunc_WithClosures -> C_CellLayoutDataFunc
wrap_CellLayoutDataFunc funptrptr :: Maybe (Ptr (FunPtr C_CellLayoutDataFunc))
funptrptr _cb :: CellLayoutDataFunc_WithClosures
_cb cellLayout :: Ptr CellLayout
cellLayout cell :: Ptr CellRenderer
cell treeModel :: Ptr TreeModel
treeModel iter :: Ptr TreeIter
iter data_ :: Ptr ()
data_ = do
    CellLayout
cellLayout' <- ((ManagedPtr CellLayout -> CellLayout)
-> Ptr CellLayout -> IO CellLayout
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CellLayout -> CellLayout
Gtk.CellLayout.CellLayout) Ptr CellLayout
cellLayout
    CellRenderer
cell' <- ((ManagedPtr CellRenderer -> CellRenderer)
-> Ptr CellRenderer -> IO CellRenderer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CellRenderer -> CellRenderer
Gtk.CellRenderer.CellRenderer) Ptr CellRenderer
cell
    TreeModel
treeModel' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
treeModel
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO ()) -> IO ()) -> (TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \iter' :: TreeIter
iter' -> do
        CellLayoutDataFunc_WithClosures
_cb  CellLayout
cellLayout' CellRenderer
cell' TreeModel
treeModel' TreeIter
iter' Ptr ()
data_
        Maybe (Ptr (FunPtr C_CellLayoutDataFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_CellLayoutDataFunc))
funptrptr


-- callback CellCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE to stop iterating over cells.", sinceVersion = Nothing}, args = [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Gtk", name = "CellRenderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the cell renderer to operate on", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user-supplied data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of the callback functions used for iterating over\nthe cell renderers of a #GtkCellArea, see gtk_cell_area_foreach().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_CellCallback =
    Ptr Gtk.CellRenderer.CellRenderer ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "renderer"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the cell renderer to operate on"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user-supplied data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_CellCallback :: FunPtr C_CellCallback -> C_CellCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_CellCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.CellRenderer.IsCellRenderer a) =>
    FunPtr C_CellCallback
    -> a
    -- ^ /@renderer@/: the cell renderer to operate on
    -> Ptr ()
    -- ^ /@data@/: user-supplied data
    -> m Bool
    -- ^ __Returns:__ 'P.True' to stop iterating over cells.
dynamic_CellCallback :: FunPtr C_CellCallback -> a -> Ptr () -> m Bool
dynamic_CellCallback __funPtr :: FunPtr C_CellCallback
__funPtr renderer :: a
renderer data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr CellRenderer
renderer' <- a -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
renderer
    CInt
result <- (FunPtr C_CellCallback -> C_CellCallback
__dynamic_C_CellCallback FunPtr C_CellCallback
__funPtr) Ptr CellRenderer
renderer' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
renderer
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_CellCallback`.
foreign import ccall "wrapper"
    mk_CellCallback :: C_CellCallback -> IO (FunPtr C_CellCallback)

-- | The type of the callback functions used for iterating over
-- the cell renderers of a t'GI.Gtk.Objects.CellArea.CellArea', see 'GI.Gtk.Objects.CellArea.cellAreaForeach'.
type CellCallback =
    Gtk.CellRenderer.CellRenderer
    -- ^ /@renderer@/: the cell renderer to operate on
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop iterating over cells.

-- | A convenience synonym for @`Nothing` :: `Maybe` `CellCallback`@.
noCellCallback :: Maybe CellCallback
noCellCallback :: Maybe CellCallback
noCellCallback = Maybe CellCallback
forall a. Maybe a
Nothing

-- | The type of the callback functions used for iterating over
-- the cell renderers of a t'GI.Gtk.Objects.CellArea.CellArea', see 'GI.Gtk.Objects.CellArea.cellAreaForeach'.
type CellCallback_WithClosures =
    Gtk.CellRenderer.CellRenderer
    -- ^ /@renderer@/: the cell renderer to operate on
    -> Ptr ()
    -- ^ /@data@/: user-supplied data
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop iterating over cells.

-- | A convenience synonym for @`Nothing` :: `Maybe` `CellCallback_WithClosures`@.
noCellCallback_WithClosures :: Maybe CellCallback_WithClosures
noCellCallback_WithClosures :: Maybe CellCallback_WithClosures
noCellCallback_WithClosures = Maybe CellCallback_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CellCallback :: CellCallback -> CellCallback_WithClosures
drop_closures_CellCallback :: CellCallback -> CellCallback_WithClosures
drop_closures_CellCallback _f :: CellCallback
_f renderer :: CellRenderer
renderer _ = CellCallback
_f CellRenderer
renderer

-- | Wrap the callback into a `GClosure`.
genClosure_CellCallback :: MonadIO m => CellCallback -> m (GClosure C_CellCallback)
genClosure_CellCallback :: CellCallback -> m (GClosure C_CellCallback)
genClosure_CellCallback cb :: CellCallback
cb = IO (GClosure C_CellCallback) -> m (GClosure C_CellCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_CellCallback) -> m (GClosure C_CellCallback))
-> IO (GClosure C_CellCallback) -> m (GClosure C_CellCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: CellCallback_WithClosures
cb' = CellCallback -> CellCallback_WithClosures
drop_closures_CellCallback CellCallback
cb
    let cb'' :: C_CellCallback
cb'' = Maybe (Ptr (FunPtr C_CellCallback))
-> CellCallback_WithClosures -> C_CellCallback
wrap_CellCallback Maybe (Ptr (FunPtr C_CellCallback))
forall a. Maybe a
Nothing CellCallback_WithClosures
cb'
    C_CellCallback -> IO (FunPtr C_CellCallback)
mk_CellCallback C_CellCallback
cb'' IO (FunPtr C_CellCallback)
-> (FunPtr C_CellCallback -> IO (GClosure C_CellCallback))
-> IO (GClosure C_CellCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_CellCallback -> IO (GClosure C_CellCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `CellCallback` into a `C_CellCallback`.
wrap_CellCallback ::
    Maybe (Ptr (FunPtr C_CellCallback)) ->
    CellCallback_WithClosures ->
    C_CellCallback
wrap_CellCallback :: Maybe (Ptr (FunPtr C_CellCallback))
-> CellCallback_WithClosures -> C_CellCallback
wrap_CellCallback funptrptr :: Maybe (Ptr (FunPtr C_CellCallback))
funptrptr _cb :: CellCallback_WithClosures
_cb renderer :: Ptr CellRenderer
renderer data_ :: Ptr ()
data_ = do
    CellRenderer
renderer' <- ((ManagedPtr CellRenderer -> CellRenderer)
-> Ptr CellRenderer -> IO CellRenderer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CellRenderer -> CellRenderer
Gtk.CellRenderer.CellRenderer) Ptr CellRenderer
renderer
    Bool
result <- CellCallback_WithClosures
_cb  CellRenderer
renderer' Ptr ()
data_
    Maybe (Ptr (FunPtr C_CellCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_CellCallback))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback CellAllocCallback
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "%TRUE to stop iterating over cells.", sinceVersion = Nothing}, args = [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Gtk", name = "CellRenderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the cell renderer to operate on", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cell_area", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the area allocated to @renderer inside the rectangle\n    provided to gtk_cell_area_foreach_alloc().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cell_background", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the background area for @renderer inside the\n    background area provided to gtk_cell_area_foreach_alloc().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user-supplied data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of the callback functions used for iterating over the\ncell renderers and their allocated areas inside a #GtkCellArea,\nsee gtk_cell_area_foreach_alloc().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_CellAllocCallback =
    Ptr Gtk.CellRenderer.CellRenderer ->
    Ptr Gdk.Rectangle.Rectangle ->
    Ptr Gdk.Rectangle.Rectangle ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "renderer"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the cell renderer to operate on"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell_area"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Rectangle" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the area allocated to @renderer inside the rectangle\n    provided to gtk_cell_area_foreach_alloc()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell_background"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Rectangle" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the background area for @renderer inside the\n    background area provided to gtk_cell_area_foreach_alloc()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user-supplied data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 3
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_CellAllocCallback :: FunPtr C_CellAllocCallback -> C_CellAllocCallback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_CellAllocCallback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.CellRenderer.IsCellRenderer a) =>
    FunPtr C_CellAllocCallback
    -> a
    -- ^ /@renderer@/: the cell renderer to operate on
    -> Gdk.Rectangle.Rectangle
    -- ^ /@cellArea@/: the area allocated to /@renderer@/ inside the rectangle
    --     provided to 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
    -> Gdk.Rectangle.Rectangle
    -- ^ /@cellBackground@/: the background area for /@renderer@/ inside the
    --     background area provided to 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
    -> Ptr ()
    -- ^ /@data@/: user-supplied data
    -> m Bool
    -- ^ __Returns:__ 'P.True' to stop iterating over cells.
dynamic_CellAllocCallback :: FunPtr C_CellAllocCallback
-> a -> Rectangle -> Rectangle -> Ptr () -> m Bool
dynamic_CellAllocCallback __funPtr :: FunPtr C_CellAllocCallback
__funPtr renderer :: a
renderer cellArea :: Rectangle
cellArea cellBackground :: Rectangle
cellBackground data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr CellRenderer
renderer' <- a -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
renderer
    Ptr Rectangle
cellArea' <- Rectangle -> IO (Ptr Rectangle)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Rectangle
cellArea
    Ptr Rectangle
cellBackground' <- Rectangle -> IO (Ptr Rectangle)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Rectangle
cellBackground
    CInt
result <- (FunPtr C_CellAllocCallback -> C_CellAllocCallback
__dynamic_C_CellAllocCallback FunPtr C_CellAllocCallback
__funPtr) Ptr CellRenderer
renderer' Ptr Rectangle
cellArea' Ptr Rectangle
cellBackground' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
renderer
    Rectangle -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Rectangle
cellArea
    Rectangle -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Rectangle
cellBackground
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_CellAllocCallback`.
foreign import ccall "wrapper"
    mk_CellAllocCallback :: C_CellAllocCallback -> IO (FunPtr C_CellAllocCallback)

-- | The type of the callback functions used for iterating over the
-- cell renderers and their allocated areas inside a t'GI.Gtk.Objects.CellArea.CellArea',
-- see 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
type CellAllocCallback =
    Gtk.CellRenderer.CellRenderer
    -- ^ /@renderer@/: the cell renderer to operate on
    -> Gdk.Rectangle.Rectangle
    -- ^ /@cellArea@/: the area allocated to /@renderer@/ inside the rectangle
    --     provided to 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
    -> Gdk.Rectangle.Rectangle
    -- ^ /@cellBackground@/: the background area for /@renderer@/ inside the
    --     background area provided to 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop iterating over cells.

-- | A convenience synonym for @`Nothing` :: `Maybe` `CellAllocCallback`@.
noCellAllocCallback :: Maybe CellAllocCallback
noCellAllocCallback :: Maybe CellAllocCallback
noCellAllocCallback = Maybe CellAllocCallback
forall a. Maybe a
Nothing

-- | The type of the callback functions used for iterating over the
-- cell renderers and their allocated areas inside a t'GI.Gtk.Objects.CellArea.CellArea',
-- see 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
type CellAllocCallback_WithClosures =
    Gtk.CellRenderer.CellRenderer
    -- ^ /@renderer@/: the cell renderer to operate on
    -> Gdk.Rectangle.Rectangle
    -- ^ /@cellArea@/: the area allocated to /@renderer@/ inside the rectangle
    --     provided to 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
    -> Gdk.Rectangle.Rectangle
    -- ^ /@cellBackground@/: the background area for /@renderer@/ inside the
    --     background area provided to 'GI.Gtk.Objects.CellArea.cellAreaForeachAlloc'.
    -> Ptr ()
    -- ^ /@data@/: user-supplied data
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop iterating over cells.

-- | A convenience synonym for @`Nothing` :: `Maybe` `CellAllocCallback_WithClosures`@.
noCellAllocCallback_WithClosures :: Maybe CellAllocCallback_WithClosures
noCellAllocCallback_WithClosures :: Maybe CellAllocCallback_WithClosures
noCellAllocCallback_WithClosures = Maybe CellAllocCallback_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CellAllocCallback :: CellAllocCallback -> CellAllocCallback_WithClosures
drop_closures_CellAllocCallback :: CellAllocCallback -> CellAllocCallback_WithClosures
drop_closures_CellAllocCallback _f :: CellAllocCallback
_f renderer :: CellRenderer
renderer cellArea :: Rectangle
cellArea cellBackground :: Rectangle
cellBackground _ = CellAllocCallback
_f CellRenderer
renderer Rectangle
cellArea Rectangle
cellBackground

-- | Wrap the callback into a `GClosure`.
genClosure_CellAllocCallback :: MonadIO m => CellAllocCallback -> m (GClosure C_CellAllocCallback)
genClosure_CellAllocCallback :: CellAllocCallback -> m (GClosure C_CellAllocCallback)
genClosure_CellAllocCallback cb :: CellAllocCallback
cb = IO (GClosure C_CellAllocCallback)
-> m (GClosure C_CellAllocCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_CellAllocCallback)
 -> m (GClosure C_CellAllocCallback))
-> IO (GClosure C_CellAllocCallback)
-> m (GClosure C_CellAllocCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: CellAllocCallback_WithClosures
cb' = CellAllocCallback -> CellAllocCallback_WithClosures
drop_closures_CellAllocCallback CellAllocCallback
cb
    let cb'' :: C_CellAllocCallback
cb'' = Maybe (Ptr (FunPtr C_CellAllocCallback))
-> CellAllocCallback_WithClosures -> C_CellAllocCallback
wrap_CellAllocCallback Maybe (Ptr (FunPtr C_CellAllocCallback))
forall a. Maybe a
Nothing CellAllocCallback_WithClosures
cb'
    C_CellAllocCallback -> IO (FunPtr C_CellAllocCallback)
mk_CellAllocCallback C_CellAllocCallback
cb'' IO (FunPtr C_CellAllocCallback)
-> (FunPtr C_CellAllocCallback
    -> IO (GClosure C_CellAllocCallback))
-> IO (GClosure C_CellAllocCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_CellAllocCallback -> IO (GClosure C_CellAllocCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `CellAllocCallback` into a `C_CellAllocCallback`.
wrap_CellAllocCallback ::
    Maybe (Ptr (FunPtr C_CellAllocCallback)) ->
    CellAllocCallback_WithClosures ->
    C_CellAllocCallback
wrap_CellAllocCallback :: Maybe (Ptr (FunPtr C_CellAllocCallback))
-> CellAllocCallback_WithClosures -> C_CellAllocCallback
wrap_CellAllocCallback funptrptr :: Maybe (Ptr (FunPtr C_CellAllocCallback))
funptrptr _cb :: CellAllocCallback_WithClosures
_cb renderer :: Ptr CellRenderer
renderer cellArea :: Ptr Rectangle
cellArea cellBackground :: Ptr Rectangle
cellBackground data_ :: Ptr ()
data_ = do
    CellRenderer
renderer' <- ((ManagedPtr CellRenderer -> CellRenderer)
-> Ptr CellRenderer -> IO CellRenderer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CellRenderer -> CellRenderer
Gtk.CellRenderer.CellRenderer) Ptr CellRenderer
renderer
    (ManagedPtr Rectangle -> Rectangle)
-> Ptr Rectangle -> (Rectangle -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr Rectangle -> Rectangle
Gdk.Rectangle.Rectangle Ptr Rectangle
cellArea ((Rectangle -> IO CInt) -> IO CInt)
-> (Rectangle -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \cellArea' :: Rectangle
cellArea' -> do
        (ManagedPtr Rectangle -> Rectangle)
-> Ptr Rectangle -> (Rectangle -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr Rectangle -> Rectangle
Gdk.Rectangle.Rectangle Ptr Rectangle
cellBackground ((Rectangle -> IO CInt) -> IO CInt)
-> (Rectangle -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \cellBackground' :: Rectangle
cellBackground' -> do
            Bool
result <- CellAllocCallback_WithClosures
_cb  CellRenderer
renderer' Rectangle
cellArea' Rectangle
cellBackground' Ptr ()
data_
            Maybe (Ptr (FunPtr C_CellAllocCallback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_CellAllocCallback))
funptrptr
            let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
            CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback Callback
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the widget to operate on", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user-supplied data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "The type of the callback functions used for e.g. iterating over\nthe children of a container, see gtk_container_foreach().", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_Callback =
    Ptr Gtk.Widget.Widget ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "widget"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the widget to operate on"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user-supplied data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_Callback :: FunPtr C_Callback -> C_Callback

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_Callback ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) =>
    FunPtr C_Callback
    -> a
    -- ^ /@widget@/: the widget to operate on
    -> Ptr ()
    -- ^ /@data@/: user-supplied data
    -> m ()
dynamic_Callback :: FunPtr C_Callback -> a -> Ptr () -> m ()
dynamic_Callback __funPtr :: FunPtr C_Callback
__funPtr widget :: a
widget data_ :: Ptr ()
data_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Widget
widget' <- a -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
widget
    (FunPtr C_Callback -> C_Callback
__dynamic_C_Callback FunPtr C_Callback
__funPtr) Ptr Widget
widget' Ptr ()
data_
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
widget
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_Callback`.
foreign import ccall "wrapper"
    mk_Callback :: C_Callback -> IO (FunPtr C_Callback)

-- | The type of the callback functions used for e.g. iterating over
-- the children of a container, see 'GI.Gtk.Objects.Container.containerForeach'.
type Callback =
    Gtk.Widget.Widget
    -- ^ /@widget@/: the widget to operate on
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `Callback`@.
noCallback :: Maybe Callback
noCallback :: Maybe WidgetClassUnrealizeFieldCallback
noCallback = Maybe WidgetClassUnrealizeFieldCallback
forall a. Maybe a
Nothing

-- | The type of the callback functions used for e.g. iterating over
-- the children of a container, see 'GI.Gtk.Objects.Container.containerForeach'.
type Callback_WithClosures =
    Gtk.Widget.Widget
    -- ^ /@widget@/: the widget to operate on
    -> Ptr ()
    -- ^ /@data@/: user-supplied data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `Callback_WithClosures`@.
noCallback_WithClosures :: Maybe Callback_WithClosures
noCallback_WithClosures :: Maybe Callback_WithClosures
noCallback_WithClosures = Maybe Callback_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_Callback :: Callback -> Callback_WithClosures
drop_closures_Callback :: WidgetClassUnrealizeFieldCallback -> Callback_WithClosures
drop_closures_Callback _f :: WidgetClassUnrealizeFieldCallback
_f widget :: Widget
widget _ = WidgetClassUnrealizeFieldCallback
_f Widget
widget

-- | Wrap the callback into a `GClosure`.
genClosure_Callback :: MonadIO m => Callback -> m (GClosure C_Callback)
genClosure_Callback :: WidgetClassUnrealizeFieldCallback -> m (GClosure C_Callback)
genClosure_Callback cb :: WidgetClassUnrealizeFieldCallback
cb = IO (GClosure C_Callback) -> m (GClosure C_Callback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_Callback) -> m (GClosure C_Callback))
-> IO (GClosure C_Callback) -> m (GClosure C_Callback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: Callback_WithClosures
cb' = WidgetClassUnrealizeFieldCallback -> Callback_WithClosures
drop_closures_Callback WidgetClassUnrealizeFieldCallback
cb
    let cb'' :: C_Callback
cb'' = Maybe (Ptr (FunPtr C_Callback))
-> Callback_WithClosures -> C_Callback
wrap_Callback Maybe (Ptr (FunPtr C_Callback))
forall a. Maybe a
Nothing Callback_WithClosures
cb'
    C_Callback -> IO (FunPtr C_Callback)
mk_Callback C_Callback
cb'' IO (FunPtr C_Callback)
-> (FunPtr C_Callback -> IO (GClosure C_Callback))
-> IO (GClosure C_Callback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_Callback -> IO (GClosure C_Callback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `Callback` into a `C_Callback`.
wrap_Callback ::
    Maybe (Ptr (FunPtr C_Callback)) ->
    Callback_WithClosures ->
    C_Callback
wrap_Callback :: Maybe (Ptr (FunPtr C_Callback))
-> Callback_WithClosures -> C_Callback
wrap_Callback funptrptr :: Maybe (Ptr (FunPtr C_Callback))
funptrptr _cb :: Callback_WithClosures
_cb widget :: Ptr Widget
widget data_ :: Ptr ()
data_ = do
    Widget
widget' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
widget
    Callback_WithClosures
_cb  Widget
widget' Ptr ()
data_
    Maybe (Ptr (FunPtr C_Callback)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_Callback))
funptrptr


-- callback CalendarDetailFunc
--          -> Callable {returnType = Just (TBasicType TUTF8), returnMayBeNull = True, returnTransfer = TransferEverything, returnDocumentation = Documentation {rawDocText = Just "Newly allocated string with Pango markup\n    with details for the specified day or %NULL.", sinceVersion = Nothing}, args = [Arg {argCName = "calendar", argType = TInterface (Name {namespace = "Gtk", name = "Calendar"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkCalendar.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the year for which details are needed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the month for which details are needed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the day of @month for which details are needed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data passed with gtk_calendar_set_detail_func().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "This kind of functions provide Pango markup with detail information for the\nspecified day. Examples for such details are holidays or appointments. The\nfunction returns %NULL when no information is available.", sinceVersion = Just "2.14"}}
-- | Type for the callback on the (unwrapped) C side.
type C_CalendarDetailFunc =
    Ptr Gtk.Calendar.Calendar ->
    Word32 ->
    Word32 ->
    Word32 ->
    Ptr () ->
    IO CString

-- Args: [ Arg
--           { argCName = "calendar"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Calendar" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkCalendar." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "year"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the year for which details are needed."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "month"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the month for which details are needed."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "day"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the day of @month for which details are needed."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the data passed with gtk_calendar_set_detail_func()."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 4
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_CalendarDetailFunc :: FunPtr C_CalendarDetailFunc -> C_CalendarDetailFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_CalendarDetailFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Calendar.IsCalendar a) =>
    FunPtr C_CalendarDetailFunc
    -> a
    -- ^ /@calendar@/: a t'GI.Gtk.Objects.Calendar.Calendar'.
    -> Word32
    -- ^ /@year@/: the year for which details are needed.
    -> Word32
    -- ^ /@month@/: the month for which details are needed.
    -> Word32
    -- ^ /@day@/: the day of /@month@/ for which details are needed.
    -> Ptr ()
    -- ^ /@userData@/: the data passed with 'GI.Gtk.Objects.Calendar.calendarSetDetailFunc'.
    -> m (Maybe T.Text)
    -- ^ __Returns:__ Newly allocated string with Pango markup
    --     with details for the specified day or 'P.Nothing'.
dynamic_CalendarDetailFunc :: FunPtr C_CalendarDetailFunc
-> a -> Word32 -> Word32 -> Word32 -> Ptr () -> m (Maybe Text)
dynamic_CalendarDetailFunc __funPtr :: FunPtr C_CalendarDetailFunc
__funPtr calendar :: a
calendar year :: Word32
year month :: Word32
month day :: Word32
day userData :: Ptr ()
userData = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
    Ptr Calendar
calendar' <- a -> IO (Ptr Calendar)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
calendar
    CString
result <- (FunPtr C_CalendarDetailFunc -> C_CalendarDetailFunc
__dynamic_C_CalendarDetailFunc FunPtr C_CalendarDetailFunc
__funPtr) Ptr Calendar
calendar' Word32
year Word32
month Word32
day Ptr ()
userData
    Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \result' :: CString
result' -> do
        Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result'
        Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
calendar
    Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult

-- | Generate a function pointer callable from C code, from a `C_CalendarDetailFunc`.
foreign import ccall "wrapper"
    mk_CalendarDetailFunc :: C_CalendarDetailFunc -> IO (FunPtr C_CalendarDetailFunc)

-- | This kind of functions provide Pango markup with detail information for the
-- specified day. Examples for such details are holidays or appointments. The
-- function returns 'P.Nothing' when no information is available.
-- 
-- /Since: 2.14/
type CalendarDetailFunc =
    Gtk.Calendar.Calendar
    -- ^ /@calendar@/: a t'GI.Gtk.Objects.Calendar.Calendar'.
    -> Word32
    -- ^ /@year@/: the year for which details are needed.
    -> Word32
    -- ^ /@month@/: the month for which details are needed.
    -> Word32
    -- ^ /@day@/: the day of /@month@/ for which details are needed.
    -> IO (Maybe T.Text)
    -- ^ __Returns:__ Newly allocated string with Pango markup
    --     with details for the specified day or 'P.Nothing'.

-- | A convenience synonym for @`Nothing` :: `Maybe` `CalendarDetailFunc`@.
noCalendarDetailFunc :: Maybe CalendarDetailFunc
noCalendarDetailFunc :: Maybe CalendarDetailFunc
noCalendarDetailFunc = Maybe CalendarDetailFunc
forall a. Maybe a
Nothing

-- | This kind of functions provide Pango markup with detail information for the
-- specified day. Examples for such details are holidays or appointments. The
-- function returns 'P.Nothing' when no information is available.
-- 
-- /Since: 2.14/
type CalendarDetailFunc_WithClosures =
    Gtk.Calendar.Calendar
    -- ^ /@calendar@/: a t'GI.Gtk.Objects.Calendar.Calendar'.
    -> Word32
    -- ^ /@year@/: the year for which details are needed.
    -> Word32
    -- ^ /@month@/: the month for which details are needed.
    -> Word32
    -- ^ /@day@/: the day of /@month@/ for which details are needed.
    -> Ptr ()
    -- ^ /@userData@/: the data passed with 'GI.Gtk.Objects.Calendar.calendarSetDetailFunc'.
    -> IO (Maybe T.Text)
    -- ^ __Returns:__ Newly allocated string with Pango markup
    --     with details for the specified day or 'P.Nothing'.

-- | A convenience synonym for @`Nothing` :: `Maybe` `CalendarDetailFunc_WithClosures`@.
noCalendarDetailFunc_WithClosures :: Maybe CalendarDetailFunc_WithClosures
noCalendarDetailFunc_WithClosures :: Maybe CalendarDetailFunc_WithClosures
noCalendarDetailFunc_WithClosures = Maybe CalendarDetailFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_CalendarDetailFunc :: CalendarDetailFunc -> CalendarDetailFunc_WithClosures
drop_closures_CalendarDetailFunc :: CalendarDetailFunc -> CalendarDetailFunc_WithClosures
drop_closures_CalendarDetailFunc _f :: CalendarDetailFunc
_f calendar :: Calendar
calendar year :: Word32
year month :: Word32
month day :: Word32
day _ = CalendarDetailFunc
_f Calendar
calendar Word32
year Word32
month Word32
day

-- | Wrap the callback into a `GClosure`.
genClosure_CalendarDetailFunc :: MonadIO m => CalendarDetailFunc -> m (GClosure C_CalendarDetailFunc)
genClosure_CalendarDetailFunc :: CalendarDetailFunc -> m (GClosure C_CalendarDetailFunc)
genClosure_CalendarDetailFunc cb :: CalendarDetailFunc
cb = IO (GClosure C_CalendarDetailFunc)
-> m (GClosure C_CalendarDetailFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_CalendarDetailFunc)
 -> m (GClosure C_CalendarDetailFunc))
-> IO (GClosure C_CalendarDetailFunc)
-> m (GClosure C_CalendarDetailFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: CalendarDetailFunc_WithClosures
cb' = CalendarDetailFunc -> CalendarDetailFunc_WithClosures
drop_closures_CalendarDetailFunc CalendarDetailFunc
cb
    let cb'' :: C_CalendarDetailFunc
cb'' = Maybe (Ptr (FunPtr C_CalendarDetailFunc))
-> CalendarDetailFunc_WithClosures -> C_CalendarDetailFunc
wrap_CalendarDetailFunc Maybe (Ptr (FunPtr C_CalendarDetailFunc))
forall a. Maybe a
Nothing CalendarDetailFunc_WithClosures
cb'
    C_CalendarDetailFunc -> IO (FunPtr C_CalendarDetailFunc)
mk_CalendarDetailFunc C_CalendarDetailFunc
cb'' IO (FunPtr C_CalendarDetailFunc)
-> (FunPtr C_CalendarDetailFunc
    -> IO (GClosure C_CalendarDetailFunc))
-> IO (GClosure C_CalendarDetailFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_CalendarDetailFunc -> IO (GClosure C_CalendarDetailFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `CalendarDetailFunc` into a `C_CalendarDetailFunc`.
wrap_CalendarDetailFunc ::
    Maybe (Ptr (FunPtr C_CalendarDetailFunc)) ->
    CalendarDetailFunc_WithClosures ->
    C_CalendarDetailFunc
wrap_CalendarDetailFunc :: Maybe (Ptr (FunPtr C_CalendarDetailFunc))
-> CalendarDetailFunc_WithClosures -> C_CalendarDetailFunc
wrap_CalendarDetailFunc funptrptr :: Maybe (Ptr (FunPtr C_CalendarDetailFunc))
funptrptr _cb :: CalendarDetailFunc_WithClosures
_cb calendar :: Ptr Calendar
calendar year :: Word32
year month :: Word32
month day :: Word32
day userData :: Ptr ()
userData = do
    Calendar
calendar' <- ((ManagedPtr Calendar -> Calendar) -> Ptr Calendar -> IO Calendar
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Calendar -> Calendar
Gtk.Calendar.Calendar) Ptr Calendar
calendar
    Maybe Text
result <- CalendarDetailFunc_WithClosures
_cb  Calendar
calendar' Word32
year Word32
month Word32
day Ptr ()
userData
    Maybe (Ptr (FunPtr C_CalendarDetailFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_CalendarDetailFunc))
funptrptr
    CString -> Maybe Text -> (Text -> IO CString) -> IO CString
forall (m :: * -> *) b a.
Monad m =>
b -> Maybe a -> (a -> m b) -> m b
maybeM CString
forall a. Ptr a
nullPtr Maybe Text
result ((Text -> IO CString) -> IO CString)
-> (Text -> IO CString) -> IO CString
forall a b. (a -> b) -> a -> b
$ \result' :: Text
result' -> do
        CString
result'' <- Text -> IO CString
textToCString Text
result'
        CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
result''


-- callback BuilderConnectFunc
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "builder", argType = TInterface (Name {namespace = "Gtk", name = "Builder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkBuilder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "object to connect a signal to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "name of the signal", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "name of the handler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "connect_object", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GObject, if non-%NULL, use g_signal_connect_object()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GObject", name = "ConnectFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GConnectFlags to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "This is the signature of a function used to connect signals.  It is used\nby the gtk_builder_connect_signals() and gtk_builder_connect_signals_full()\nmethods.  It is mainly intended for interpreted language bindings, but\ncould be useful where the programmer wants more control over the signal\nconnection process. Note that this function can only be called once,\nsubsequent calls will do nothing.", sinceVersion = Just "2.12"}}
-- | Type for the callback on the (unwrapped) C side.
type C_BuilderConnectFunc =
    Ptr Gtk.Builder.Builder ->
    Ptr GObject.Object.Object ->
    CString ->
    CString ->
    Ptr GObject.Object.Object ->
    CUInt ->
    Ptr () ->
    IO ()

-- Args: [ Arg
--           { argCName = "builder"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Builder" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkBuilder" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "object"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Object" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "object to connect a signal to"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "signal_name"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "name of the signal" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "handler_name"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "name of the handler"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "connect_object"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Object" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "a #GObject, if non-%NULL, use g_signal_connect_object()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "flags"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "ConnectFlags" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "#GConnectFlags to use"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 6
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_BuilderConnectFunc :: FunPtr C_BuilderConnectFunc -> C_BuilderConnectFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_BuilderConnectFunc ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.Builder.IsBuilder a, GObject.Object.IsObject b, GObject.Object.IsObject c) =>
    FunPtr C_BuilderConnectFunc
    -> a
    -- ^ /@builder@/: a t'GI.Gtk.Objects.Builder.Builder'
    -> b
    -- ^ /@object@/: object to connect a signal to
    -> T.Text
    -- ^ /@signalName@/: name of the signal
    -> T.Text
    -- ^ /@handlerName@/: name of the handler
    -> Maybe (c)
    -- ^ /@connectObject@/: a t'GI.GObject.Objects.Object.Object', if non-'P.Nothing', use @/g_signal_connect_object()/@
    -> [GObject.Flags.ConnectFlags]
    -- ^ /@flags@/: t'GI.GObject.Flags.ConnectFlags' to use
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> m ()
dynamic_BuilderConnectFunc :: FunPtr C_BuilderConnectFunc
-> a
-> b
-> Text
-> Text
-> Maybe c
-> [ConnectFlags]
-> Ptr ()
-> m ()
dynamic_BuilderConnectFunc __funPtr :: FunPtr C_BuilderConnectFunc
__funPtr builder :: a
builder object :: b
object signalName :: Text
signalName handlerName :: Text
handlerName connectObject :: Maybe c
connectObject flags :: [ConnectFlags]
flags userData :: Ptr ()
userData = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Builder
builder' <- a -> IO (Ptr Builder)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
builder
    Ptr Object
object' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
object
    CString
signalName' <- Text -> IO CString
textToCString Text
signalName
    CString
handlerName' <- Text -> IO CString
textToCString Text
handlerName
    Ptr Object
maybeConnectObject <- case Maybe c
connectObject of
        Nothing -> Ptr Object -> IO (Ptr Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
forall a. Ptr a
nullPtr
        Just jConnectObject :: c
jConnectObject -> do
            Ptr Object
jConnectObject' <- c -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jConnectObject
            Ptr Object -> IO (Ptr Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
jConnectObject'
    let flags' :: CUInt
flags' = [ConnectFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [ConnectFlags]
flags
    (FunPtr C_BuilderConnectFunc -> C_BuilderConnectFunc
__dynamic_C_BuilderConnectFunc FunPtr C_BuilderConnectFunc
__funPtr) Ptr Builder
builder' Ptr Object
object' CString
signalName' CString
handlerName' Ptr Object
maybeConnectObject CUInt
flags' Ptr ()
userData
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
builder
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
object
    Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
connectObject c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
signalName'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
handlerName'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_BuilderConnectFunc`.
foreign import ccall "wrapper"
    mk_BuilderConnectFunc :: C_BuilderConnectFunc -> IO (FunPtr C_BuilderConnectFunc)

-- | This is the signature of a function used to connect signals.  It is used
-- by the 'GI.Gtk.Objects.Builder.builderConnectSignals' and 'GI.Gtk.Objects.Builder.builderConnectSignalsFull'
-- methods.  It is mainly intended for interpreted language bindings, but
-- could be useful where the programmer wants more control over the signal
-- connection process. Note that this function can only be called once,
-- subsequent calls will do nothing.
-- 
-- /Since: 2.12/
type BuilderConnectFunc =
    Gtk.Builder.Builder
    -- ^ /@builder@/: a t'GI.Gtk.Objects.Builder.Builder'
    -> GObject.Object.Object
    -- ^ /@object@/: object to connect a signal to
    -> T.Text
    -- ^ /@signalName@/: name of the signal
    -> T.Text
    -- ^ /@handlerName@/: name of the handler
    -> Maybe GObject.Object.Object
    -- ^ /@connectObject@/: a t'GI.GObject.Objects.Object.Object', if non-'P.Nothing', use @/g_signal_connect_object()/@
    -> [GObject.Flags.ConnectFlags]
    -- ^ /@flags@/: t'GI.GObject.Flags.ConnectFlags' to use
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `BuilderConnectFunc`@.
noBuilderConnectFunc :: Maybe BuilderConnectFunc
noBuilderConnectFunc :: Maybe BuilderConnectFunc
noBuilderConnectFunc = Maybe BuilderConnectFunc
forall a. Maybe a
Nothing

-- | This is the signature of a function used to connect signals.  It is used
-- by the 'GI.Gtk.Objects.Builder.builderConnectSignals' and 'GI.Gtk.Objects.Builder.builderConnectSignalsFull'
-- methods.  It is mainly intended for interpreted language bindings, but
-- could be useful where the programmer wants more control over the signal
-- connection process. Note that this function can only be called once,
-- subsequent calls will do nothing.
-- 
-- /Since: 2.12/
type BuilderConnectFunc_WithClosures =
    Gtk.Builder.Builder
    -- ^ /@builder@/: a t'GI.Gtk.Objects.Builder.Builder'
    -> GObject.Object.Object
    -- ^ /@object@/: object to connect a signal to
    -> T.Text
    -- ^ /@signalName@/: name of the signal
    -> T.Text
    -- ^ /@handlerName@/: name of the handler
    -> Maybe GObject.Object.Object
    -- ^ /@connectObject@/: a t'GI.GObject.Objects.Object.Object', if non-'P.Nothing', use @/g_signal_connect_object()/@
    -> [GObject.Flags.ConnectFlags]
    -- ^ /@flags@/: t'GI.GObject.Flags.ConnectFlags' to use
    -> Ptr ()
    -- ^ /@userData@/: user data
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `BuilderConnectFunc_WithClosures`@.
noBuilderConnectFunc_WithClosures :: Maybe BuilderConnectFunc_WithClosures
noBuilderConnectFunc_WithClosures :: Maybe BuilderConnectFunc_WithClosures
noBuilderConnectFunc_WithClosures = Maybe BuilderConnectFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_BuilderConnectFunc :: BuilderConnectFunc -> BuilderConnectFunc_WithClosures
drop_closures_BuilderConnectFunc :: BuilderConnectFunc -> BuilderConnectFunc_WithClosures
drop_closures_BuilderConnectFunc _f :: BuilderConnectFunc
_f builder :: Builder
builder object :: Object
object signalName :: Text
signalName handlerName :: Text
handlerName connectObject :: Maybe Object
connectObject flags :: [ConnectFlags]
flags _ = BuilderConnectFunc
_f Builder
builder Object
object Text
signalName Text
handlerName Maybe Object
connectObject [ConnectFlags]
flags

-- | Wrap the callback into a `GClosure`.
genClosure_BuilderConnectFunc :: MonadIO m => BuilderConnectFunc -> m (GClosure C_BuilderConnectFunc)
genClosure_BuilderConnectFunc :: BuilderConnectFunc -> m (GClosure C_BuilderConnectFunc)
genClosure_BuilderConnectFunc cb :: BuilderConnectFunc
cb = IO (GClosure C_BuilderConnectFunc)
-> m (GClosure C_BuilderConnectFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_BuilderConnectFunc)
 -> m (GClosure C_BuilderConnectFunc))
-> IO (GClosure C_BuilderConnectFunc)
-> m (GClosure C_BuilderConnectFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: BuilderConnectFunc_WithClosures
cb' = BuilderConnectFunc -> BuilderConnectFunc_WithClosures
drop_closures_BuilderConnectFunc BuilderConnectFunc
cb
    let cb'' :: C_BuilderConnectFunc
cb'' = Maybe (Ptr (FunPtr C_BuilderConnectFunc))
-> BuilderConnectFunc_WithClosures -> C_BuilderConnectFunc
wrap_BuilderConnectFunc Maybe (Ptr (FunPtr C_BuilderConnectFunc))
forall a. Maybe a
Nothing BuilderConnectFunc_WithClosures
cb'
    C_BuilderConnectFunc -> IO (FunPtr C_BuilderConnectFunc)
mk_BuilderConnectFunc C_BuilderConnectFunc
cb'' IO (FunPtr C_BuilderConnectFunc)
-> (FunPtr C_BuilderConnectFunc
    -> IO (GClosure C_BuilderConnectFunc))
-> IO (GClosure C_BuilderConnectFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_BuilderConnectFunc -> IO (GClosure C_BuilderConnectFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `BuilderConnectFunc` into a `C_BuilderConnectFunc`.
wrap_BuilderConnectFunc ::
    Maybe (Ptr (FunPtr C_BuilderConnectFunc)) ->
    BuilderConnectFunc_WithClosures ->
    C_BuilderConnectFunc
wrap_BuilderConnectFunc :: Maybe (Ptr (FunPtr C_BuilderConnectFunc))
-> BuilderConnectFunc_WithClosures -> C_BuilderConnectFunc
wrap_BuilderConnectFunc funptrptr :: Maybe (Ptr (FunPtr C_BuilderConnectFunc))
funptrptr _cb :: BuilderConnectFunc_WithClosures
_cb builder :: Ptr Builder
builder object :: Ptr Object
object signalName :: CString
signalName handlerName :: CString
handlerName connectObject :: Ptr Object
connectObject flags :: CUInt
flags userData :: Ptr ()
userData = do
    Builder
builder' <- ((ManagedPtr Builder -> Builder) -> Ptr Builder -> IO Builder
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Builder -> Builder
Gtk.Builder.Builder) Ptr Builder
builder
    Object
object' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
GObject.Object.Object) Ptr Object
object
    Text
signalName' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
signalName
    Text
handlerName' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
handlerName
    Maybe Object
maybeConnectObject <-
        if Ptr Object
connectObject Ptr Object -> Ptr Object -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr Object
forall a. Ptr a
nullPtr
        then Maybe Object -> IO (Maybe Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Object
forall a. Maybe a
Nothing
        else do
            Object
connectObject' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
GObject.Object.Object) Ptr Object
connectObject
            Maybe Object -> IO (Maybe Object)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe Object -> IO (Maybe Object))
-> Maybe Object -> IO (Maybe Object)
forall a b. (a -> b) -> a -> b
$ Object -> Maybe Object
forall a. a -> Maybe a
Just Object
connectObject'
    let flags' :: [ConnectFlags]
flags' = CUInt -> [ConnectFlags]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
flags
    BuilderConnectFunc_WithClosures
_cb  Builder
builder' Object
object' Text
signalName' Text
handlerName' Maybe Object
maybeConnectObject [ConnectFlags]
flags' Ptr ()
userData
    Maybe (Ptr (FunPtr C_BuilderConnectFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_BuilderConnectFunc))
funptrptr


-- callback AssistantPageFunc
--          -> Callable {returnType = Just (TBasicType TInt), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Just "The next page number.", sinceVersion = Nothing}, args = [Arg {argCName = "current_page", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The page number used to calculate the next page.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "A function used by gtk_assistant_set_forward_page_func() to know which\nis the next page given a current one. It\8217s called both for computing the\nnext page when the user presses the \8220forward\8221 button and for handling\nthe behavior of the \8220last\8221 button.", sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_AssistantPageFunc =
    Int32 ->
    Ptr () ->
    IO Int32

-- Args: [ Arg
--           { argCName = "current_page"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The page number used to calculate the next page."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_AssistantPageFunc :: FunPtr C_AssistantPageFunc -> C_AssistantPageFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_AssistantPageFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_AssistantPageFunc
    -> Int32
    -- ^ /@currentPage@/: The page number used to calculate the next page.
    -> Ptr ()
    -- ^ /@data@/: user data.
    -> m Int32
    -- ^ __Returns:__ The next page number.
dynamic_AssistantPageFunc :: FunPtr C_AssistantPageFunc -> Int32 -> Ptr () -> m Int32
dynamic_AssistantPageFunc __funPtr :: FunPtr C_AssistantPageFunc
__funPtr currentPage :: Int32
currentPage data_ :: Ptr ()
data_ = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Int32
result <- (FunPtr C_AssistantPageFunc -> C_AssistantPageFunc
__dynamic_C_AssistantPageFunc FunPtr C_AssistantPageFunc
__funPtr) Int32
currentPage Ptr ()
data_
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

-- | Generate a function pointer callable from C code, from a `C_AssistantPageFunc`.
foreign import ccall "wrapper"
    mk_AssistantPageFunc :: C_AssistantPageFunc -> IO (FunPtr C_AssistantPageFunc)

-- | A function used by 'GI.Gtk.Objects.Assistant.assistantSetForwardPageFunc' to know which
-- is the next page given a current one. 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.
type AssistantPageFunc =
    Int32
    -- ^ /@currentPage@/: The page number used to calculate the next page.
    -> IO Int32
    -- ^ __Returns:__ The next page number.

-- | A convenience synonym for @`Nothing` :: `Maybe` `AssistantPageFunc`@.
noAssistantPageFunc :: Maybe AssistantPageFunc
noAssistantPageFunc :: Maybe (Int32 -> IO Int32)
noAssistantPageFunc = Maybe (Int32 -> IO Int32)
forall a. Maybe a
Nothing

-- | A function used by 'GI.Gtk.Objects.Assistant.assistantSetForwardPageFunc' to know which
-- is the next page given a current one. 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.
type AssistantPageFunc_WithClosures =
    Int32
    -- ^ /@currentPage@/: The page number used to calculate the next page.
    -> Ptr ()
    -- ^ /@data@/: user data.
    -> IO Int32
    -- ^ __Returns:__ The next page number.

-- | A convenience synonym for @`Nothing` :: `Maybe` `AssistantPageFunc_WithClosures`@.
noAssistantPageFunc_WithClosures :: Maybe AssistantPageFunc_WithClosures
noAssistantPageFunc_WithClosures :: Maybe C_AssistantPageFunc
noAssistantPageFunc_WithClosures = Maybe C_AssistantPageFunc
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_AssistantPageFunc :: AssistantPageFunc -> AssistantPageFunc_WithClosures
drop_closures_AssistantPageFunc :: (Int32 -> IO Int32) -> C_AssistantPageFunc
drop_closures_AssistantPageFunc _f :: Int32 -> IO Int32
_f currentPage :: Int32
currentPage _ = Int32 -> IO Int32
_f Int32
currentPage

-- | Wrap the callback into a `GClosure`.
genClosure_AssistantPageFunc :: MonadIO m => AssistantPageFunc -> m (GClosure C_AssistantPageFunc)
genClosure_AssistantPageFunc :: (Int32 -> IO Int32) -> m (GClosure C_AssistantPageFunc)
genClosure_AssistantPageFunc cb :: Int32 -> IO Int32
cb = IO (GClosure C_AssistantPageFunc)
-> m (GClosure C_AssistantPageFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_AssistantPageFunc)
 -> m (GClosure C_AssistantPageFunc))
-> IO (GClosure C_AssistantPageFunc)
-> m (GClosure C_AssistantPageFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_AssistantPageFunc
cb' = (Int32 -> IO Int32) -> C_AssistantPageFunc
drop_closures_AssistantPageFunc Int32 -> IO Int32
cb
    let cb'' :: C_AssistantPageFunc
cb'' = Maybe (Ptr (FunPtr C_AssistantPageFunc))
-> C_AssistantPageFunc -> C_AssistantPageFunc
wrap_AssistantPageFunc Maybe (Ptr (FunPtr C_AssistantPageFunc))
forall a. Maybe a
Nothing C_AssistantPageFunc
cb'
    C_AssistantPageFunc -> IO (FunPtr C_AssistantPageFunc)
mk_AssistantPageFunc C_AssistantPageFunc
cb'' IO (FunPtr C_AssistantPageFunc)
-> (FunPtr C_AssistantPageFunc
    -> IO (GClosure C_AssistantPageFunc))
-> IO (GClosure C_AssistantPageFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_AssistantPageFunc -> IO (GClosure C_AssistantPageFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `AssistantPageFunc` into a `C_AssistantPageFunc`.
wrap_AssistantPageFunc ::
    Maybe (Ptr (FunPtr C_AssistantPageFunc)) ->
    AssistantPageFunc_WithClosures ->
    C_AssistantPageFunc
wrap_AssistantPageFunc :: Maybe (Ptr (FunPtr C_AssistantPageFunc))
-> C_AssistantPageFunc -> C_AssistantPageFunc
wrap_AssistantPageFunc funptrptr :: Maybe (Ptr (FunPtr C_AssistantPageFunc))
funptrptr _cb :: C_AssistantPageFunc
_cb currentPage :: Int32
currentPage data_ :: Ptr ()
data_ = do
    Int32
result <- C_AssistantPageFunc
_cb  Int32
currentPage Ptr ()
data_
    Maybe (Ptr (FunPtr C_AssistantPageFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_AssistantPageFunc))
funptrptr
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result


-- callback AccelMapForeach
--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "User data passed to gtk_accel_map_foreach() or\n gtk_accel_map_foreach_unfiltered()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accel_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Accel path of the current accelerator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accel_key", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Key of the current accelerator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accel_mods", argType = TInterface (Name {namespace = "Gdk", name = "ModifierType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Modifiers of the current accelerator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "changed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Changed flag of the accelerator (if %TRUE, accelerator has changed\n during runtime and would need to be saved during an accelerator dump)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_AccelMapForeach =
    Ptr () ->
    CString ->
    Word32 ->
    CUInt ->
    CInt ->
    IO ()

-- Args: [ Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "User data passed to gtk_accel_map_foreach() or\n gtk_accel_map_foreach_unfiltered()"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "accel_path"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Accel path of the current accelerator"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "accel_key"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Key of the current accelerator"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "accel_mods"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "ModifierType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Modifiers of the current accelerator"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "changed"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "Changed flag of the accelerator (if %TRUE, accelerator has changed\n during runtime and would need to be saved during an accelerator dump)"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_AccelMapForeach :: FunPtr C_AccelMapForeach -> C_AccelMapForeach

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_AccelMapForeach ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_AccelMapForeach
    -> Ptr ()
    -- ^ /@data@/: User data passed to 'GI.Gtk.Objects.AccelMap.accelMapForeach' or
    --  'GI.Gtk.Objects.AccelMap.accelMapForeachUnfiltered'
    -> T.Text
    -- ^ /@accelPath@/: Accel path of the current accelerator
    -> Word32
    -- ^ /@accelKey@/: Key of the current accelerator
    -> [Gdk.Flags.ModifierType]
    -- ^ /@accelMods@/: Modifiers of the current accelerator
    -> Bool
    -- ^ /@changed@/: Changed flag of the accelerator (if 'P.True', accelerator has changed
    --  during runtime and would need to be saved during an accelerator dump)
    -> m ()
dynamic_AccelMapForeach :: FunPtr C_AccelMapForeach
-> Ptr () -> Text -> Word32 -> [ModifierType] -> Bool -> m ()
dynamic_AccelMapForeach __funPtr :: FunPtr C_AccelMapForeach
__funPtr data_ :: Ptr ()
data_ accelPath :: Text
accelPath accelKey :: Word32
accelKey accelMods :: [ModifierType]
accelMods changed :: Bool
changed = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    CString
accelPath' <- Text -> IO CString
textToCString Text
accelPath
    let accelMods' :: CUInt
accelMods' = [ModifierType] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [ModifierType]
accelMods
    let changed' :: CInt
changed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
changed
    (FunPtr C_AccelMapForeach -> C_AccelMapForeach
__dynamic_C_AccelMapForeach FunPtr C_AccelMapForeach
__funPtr) Ptr ()
data_ CString
accelPath' Word32
accelKey CUInt
accelMods' CInt
changed'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
accelPath'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

-- | Generate a function pointer callable from C code, from a `C_AccelMapForeach`.
foreign import ccall "wrapper"
    mk_AccelMapForeach :: C_AccelMapForeach -> IO (FunPtr C_AccelMapForeach)

-- | /No description available in the introspection data./
type AccelMapForeach =
    Ptr ()
    -- ^ /@data@/: User data passed to 'GI.Gtk.Objects.AccelMap.accelMapForeach' or
    --  'GI.Gtk.Objects.AccelMap.accelMapForeachUnfiltered'
    -> T.Text
    -- ^ /@accelPath@/: Accel path of the current accelerator
    -> Word32
    -- ^ /@accelKey@/: Key of the current accelerator
    -> [Gdk.Flags.ModifierType]
    -- ^ /@accelMods@/: Modifiers of the current accelerator
    -> Bool
    -- ^ /@changed@/: Changed flag of the accelerator (if 'P.True', accelerator has changed
    --  during runtime and would need to be saved during an accelerator dump)
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `AccelMapForeach`@.
noAccelMapForeach :: Maybe AccelMapForeach
noAccelMapForeach :: Maybe AccelMapForeach
noAccelMapForeach = Maybe AccelMapForeach
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_AccelMapForeach :: MonadIO m => AccelMapForeach -> m (GClosure C_AccelMapForeach)
genClosure_AccelMapForeach :: AccelMapForeach -> m (GClosure C_AccelMapForeach)
genClosure_AccelMapForeach cb :: AccelMapForeach
cb = IO (GClosure C_AccelMapForeach) -> m (GClosure C_AccelMapForeach)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_AccelMapForeach) -> m (GClosure C_AccelMapForeach))
-> IO (GClosure C_AccelMapForeach)
-> m (GClosure C_AccelMapForeach)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_AccelMapForeach
cb' = Maybe (Ptr (FunPtr C_AccelMapForeach))
-> AccelMapForeach -> C_AccelMapForeach
wrap_AccelMapForeach Maybe (Ptr (FunPtr C_AccelMapForeach))
forall a. Maybe a
Nothing AccelMapForeach
cb
    C_AccelMapForeach -> IO (FunPtr C_AccelMapForeach)
mk_AccelMapForeach C_AccelMapForeach
cb' IO (FunPtr C_AccelMapForeach)
-> (FunPtr C_AccelMapForeach -> IO (GClosure C_AccelMapForeach))
-> IO (GClosure C_AccelMapForeach)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_AccelMapForeach -> IO (GClosure C_AccelMapForeach)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `AccelMapForeach` into a `C_AccelMapForeach`.
wrap_AccelMapForeach ::
    Maybe (Ptr (FunPtr C_AccelMapForeach)) ->
    AccelMapForeach ->
    C_AccelMapForeach
wrap_AccelMapForeach :: Maybe (Ptr (FunPtr C_AccelMapForeach))
-> AccelMapForeach -> C_AccelMapForeach
wrap_AccelMapForeach funptrptr :: Maybe (Ptr (FunPtr C_AccelMapForeach))
funptrptr _cb :: AccelMapForeach
_cb data_ :: Ptr ()
data_ accelPath :: CString
accelPath accelKey :: Word32
accelKey accelMods :: CUInt
accelMods changed :: CInt
changed = do
    Text
accelPath' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
accelPath
    let accelMods' :: [ModifierType]
accelMods' = CUInt -> [ModifierType]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
accelMods
    let changed' :: Bool
changed' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
changed
    AccelMapForeach
_cb  Ptr ()
data_ Text
accelPath' Word32
accelKey [ModifierType]
accelMods' Bool
changed'
    Maybe (Ptr (FunPtr C_AccelMapForeach)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_AccelMapForeach))
funptrptr


-- callback AccelGroupFindFunc
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "key", argType = TInterface (Name {namespace = "Gtk", name = "AccelKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TGClosure Nothing, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Just "2.2"}}
-- | Type for the callback on the (unwrapped) C side.
type C_AccelGroupFindFunc =
    Ptr Gtk.AccelKey.AccelKey ->
    Ptr (GClosure ()) ->
    Ptr () ->
    IO CInt

-- Args: [ Arg
--           { argCName = "key"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "AccelKey" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "closure"
--           , argType = TGClosure Nothing
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_AccelGroupFindFunc :: FunPtr C_AccelGroupFindFunc -> C_AccelGroupFindFunc

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_AccelGroupFindFunc ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    FunPtr C_AccelGroupFindFunc
    -> Gtk.AccelKey.AccelKey
    -> GClosure a
    -> Ptr ()
    -> m Bool
dynamic_AccelGroupFindFunc :: FunPtr C_AccelGroupFindFunc
-> AccelKey -> GClosure a -> Ptr () -> m Bool
dynamic_AccelGroupFindFunc __funPtr :: FunPtr C_AccelGroupFindFunc
__funPtr key :: AccelKey
key closure :: GClosure a
closure data_ :: Ptr ()
data_ = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr AccelKey
key' <- AccelKey -> IO (Ptr AccelKey)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AccelKey
key
    Ptr (GClosure ())
closure' <- GClosure a -> IO (Ptr (GClosure ()))
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr GClosure a
closure
    CInt
result <- (FunPtr C_AccelGroupFindFunc -> C_AccelGroupFindFunc
__dynamic_C_AccelGroupFindFunc FunPtr C_AccelGroupFindFunc
__funPtr) Ptr AccelKey
key' Ptr (GClosure ())
closure' Ptr ()
data_
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    AccelKey -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AccelKey
key
    GClosure a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GClosure a
closure
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_AccelGroupFindFunc`.
foreign import ccall "wrapper"
    mk_AccelGroupFindFunc :: C_AccelGroupFindFunc -> IO (FunPtr C_AccelGroupFindFunc)

-- | /No description available in the introspection data./
-- 
-- /Since: 2.2/
type AccelGroupFindFunc =
    Gtk.AccelKey.AccelKey
    -> GClosure ()
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `AccelGroupFindFunc`@.
noAccelGroupFindFunc :: Maybe AccelGroupFindFunc
noAccelGroupFindFunc :: Maybe AccelGroupFindFunc
noAccelGroupFindFunc = Maybe AccelGroupFindFunc
forall a. Maybe a
Nothing

-- | /No description available in the introspection data./
-- 
-- /Since: 2.2/
type AccelGroupFindFunc_WithClosures =
    Gtk.AccelKey.AccelKey
    -> GClosure ()
    -> Ptr ()
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `AccelGroupFindFunc_WithClosures`@.
noAccelGroupFindFunc_WithClosures :: Maybe AccelGroupFindFunc_WithClosures
noAccelGroupFindFunc_WithClosures :: Maybe AccelGroupFindFunc_WithClosures
noAccelGroupFindFunc_WithClosures = Maybe AccelGroupFindFunc_WithClosures
forall a. Maybe a
Nothing

-- | A simple wrapper that ignores the closure arguments.
drop_closures_AccelGroupFindFunc :: AccelGroupFindFunc -> AccelGroupFindFunc_WithClosures
drop_closures_AccelGroupFindFunc :: AccelGroupFindFunc -> AccelGroupFindFunc_WithClosures
drop_closures_AccelGroupFindFunc _f :: AccelGroupFindFunc
_f key :: AccelKey
key closure :: GClosure ()
closure _ = AccelGroupFindFunc
_f AccelKey
key GClosure ()
closure

-- | Wrap the callback into a `GClosure`.
genClosure_AccelGroupFindFunc :: MonadIO m => AccelGroupFindFunc -> m (GClosure C_AccelGroupFindFunc)
genClosure_AccelGroupFindFunc :: AccelGroupFindFunc -> m (GClosure C_AccelGroupFindFunc)
genClosure_AccelGroupFindFunc cb :: AccelGroupFindFunc
cb = IO (GClosure C_AccelGroupFindFunc)
-> m (GClosure C_AccelGroupFindFunc)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_AccelGroupFindFunc)
 -> m (GClosure C_AccelGroupFindFunc))
-> IO (GClosure C_AccelGroupFindFunc)
-> m (GClosure C_AccelGroupFindFunc)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: AccelGroupFindFunc_WithClosures
cb' = AccelGroupFindFunc -> AccelGroupFindFunc_WithClosures
drop_closures_AccelGroupFindFunc AccelGroupFindFunc
cb
    let cb'' :: C_AccelGroupFindFunc
cb'' = Maybe (Ptr (FunPtr C_AccelGroupFindFunc))
-> AccelGroupFindFunc_WithClosures -> C_AccelGroupFindFunc
wrap_AccelGroupFindFunc Maybe (Ptr (FunPtr C_AccelGroupFindFunc))
forall a. Maybe a
Nothing AccelGroupFindFunc_WithClosures
cb'
    C_AccelGroupFindFunc -> IO (FunPtr C_AccelGroupFindFunc)
mk_AccelGroupFindFunc C_AccelGroupFindFunc
cb'' IO (FunPtr C_AccelGroupFindFunc)
-> (FunPtr C_AccelGroupFindFunc
    -> IO (GClosure C_AccelGroupFindFunc))
-> IO (GClosure C_AccelGroupFindFunc)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_AccelGroupFindFunc -> IO (GClosure C_AccelGroupFindFunc)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `AccelGroupFindFunc` into a `C_AccelGroupFindFunc`.
wrap_AccelGroupFindFunc ::
    Maybe (Ptr (FunPtr C_AccelGroupFindFunc)) ->
    AccelGroupFindFunc_WithClosures ->
    C_AccelGroupFindFunc
wrap_AccelGroupFindFunc :: Maybe (Ptr (FunPtr C_AccelGroupFindFunc))
-> AccelGroupFindFunc_WithClosures -> C_AccelGroupFindFunc
wrap_AccelGroupFindFunc funptrptr :: Maybe (Ptr (FunPtr C_AccelGroupFindFunc))
funptrptr _cb :: AccelGroupFindFunc_WithClosures
_cb key :: Ptr AccelKey
key closure :: Ptr (GClosure ())
closure data_ :: Ptr ()
data_ = do
    AccelKey
key' <- ((ManagedPtr AccelKey -> AccelKey) -> Ptr AccelKey -> IO AccelKey
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr AccelKey -> AccelKey
Gtk.AccelKey.AccelKey) Ptr AccelKey
key
    GClosure ()
closure' <- (Ptr (GClosure ()) -> IO (GClosure ())
forall a. Ptr (GClosure a) -> IO (GClosure a)
B.GClosure.newGClosureFromPtr (Ptr (GClosure ()) -> IO (GClosure ()))
-> (Ptr (GClosure ()) -> Ptr (GClosure ()))
-> Ptr (GClosure ())
-> IO (GClosure ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr (GClosure ()) -> Ptr (GClosure ())
forall a b. Ptr a -> Ptr b
FP.castPtr) Ptr (GClosure ())
closure
    Bool
result <- AccelGroupFindFunc_WithClosures
_cb  AccelKey
key' GClosure ()
closure' Ptr ()
data_
    Maybe (Ptr (FunPtr C_AccelGroupFindFunc)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_AccelGroupFindFunc))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- callback AccelGroupActivate
--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "accel_group", argType = TInterface (Name {namespace = "Gtk", name = "AccelGroup"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "acceleratable", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifier", argType = TInterface (Name {namespace = "Gdk", name = "ModifierType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}
-- | Type for the callback on the (unwrapped) C side.
type C_AccelGroupActivate =
    Ptr Gtk.AccelGroup.AccelGroup ->
    Ptr GObject.Object.Object ->
    Word32 ->
    CUInt ->
    IO CInt

-- Args: [ Arg
--           { argCName = "accel_group"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "AccelGroup" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "acceleratable"
--           , argType =
--               TInterface Name { namespace = "GObject" , name = "Object" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "keyval"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "modifier"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "ModifierType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "dynamic" __dynamic_C_AccelGroupActivate :: FunPtr C_AccelGroupActivate -> C_AccelGroupActivate

-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
dynamic_AccelGroupActivate ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.AccelGroup.IsAccelGroup a, GObject.Object.IsObject b) =>
    FunPtr C_AccelGroupActivate
    -> a
    -> b
    -> Word32
    -> [Gdk.Flags.ModifierType]
    -> m Bool
dynamic_AccelGroupActivate :: FunPtr C_AccelGroupActivate
-> a -> b -> Word32 -> [ModifierType] -> m Bool
dynamic_AccelGroupActivate __funPtr :: FunPtr C_AccelGroupActivate
__funPtr accelGroup :: a
accelGroup acceleratable :: b
acceleratable keyval :: Word32
keyval modifier :: [ModifierType]
modifier = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr AccelGroup
accelGroup' <- a -> IO (Ptr AccelGroup)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
accelGroup
    Ptr Object
acceleratable' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
acceleratable
    let modifier' :: CUInt
modifier' = [ModifierType] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [ModifierType]
modifier
    CInt
result <- (FunPtr C_AccelGroupActivate -> C_AccelGroupActivate
__dynamic_C_AccelGroupActivate FunPtr C_AccelGroupActivate
__funPtr) Ptr AccelGroup
accelGroup' Ptr Object
acceleratable' Word32
keyval CUInt
modifier'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
accelGroup
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
acceleratable
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

-- | Generate a function pointer callable from C code, from a `C_AccelGroupActivate`.
foreign import ccall "wrapper"
    mk_AccelGroupActivate :: C_AccelGroupActivate -> IO (FunPtr C_AccelGroupActivate)

-- | /No description available in the introspection data./
type AccelGroupActivate =
    Gtk.AccelGroup.AccelGroup
    -> GObject.Object.Object
    -> Word32
    -> [Gdk.Flags.ModifierType]
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `AccelGroupActivate`@.
noAccelGroupActivate :: Maybe AccelGroupActivate
noAccelGroupActivate :: Maybe AccelGroupActivate
noAccelGroupActivate = Maybe AccelGroupActivate
forall a. Maybe a
Nothing

-- | Wrap the callback into a `GClosure`.
genClosure_AccelGroupActivate :: MonadIO m => AccelGroupActivate -> m (GClosure C_AccelGroupActivate)
genClosure_AccelGroupActivate :: AccelGroupActivate -> m (GClosure C_AccelGroupActivate)
genClosure_AccelGroupActivate cb :: AccelGroupActivate
cb = IO (GClosure C_AccelGroupActivate)
-> m (GClosure C_AccelGroupActivate)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_AccelGroupActivate)
 -> m (GClosure C_AccelGroupActivate))
-> IO (GClosure C_AccelGroupActivate)
-> m (GClosure C_AccelGroupActivate)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_AccelGroupActivate
cb' = Maybe (Ptr (FunPtr C_AccelGroupActivate))
-> AccelGroupActivate -> C_AccelGroupActivate
wrap_AccelGroupActivate Maybe (Ptr (FunPtr C_AccelGroupActivate))
forall a. Maybe a
Nothing AccelGroupActivate
cb
    C_AccelGroupActivate -> IO (FunPtr C_AccelGroupActivate)
mk_AccelGroupActivate C_AccelGroupActivate
cb' IO (FunPtr C_AccelGroupActivate)
-> (FunPtr C_AccelGroupActivate
    -> IO (GClosure C_AccelGroupActivate))
-> IO (GClosure C_AccelGroupActivate)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_AccelGroupActivate -> IO (GClosure C_AccelGroupActivate)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `AccelGroupActivate` into a `C_AccelGroupActivate`.
wrap_AccelGroupActivate ::
    Maybe (Ptr (FunPtr C_AccelGroupActivate)) ->
    AccelGroupActivate ->
    C_AccelGroupActivate
wrap_AccelGroupActivate :: Maybe (Ptr (FunPtr C_AccelGroupActivate))
-> AccelGroupActivate -> C_AccelGroupActivate
wrap_AccelGroupActivate funptrptr :: Maybe (Ptr (FunPtr C_AccelGroupActivate))
funptrptr _cb :: AccelGroupActivate
_cb accelGroup :: Ptr AccelGroup
accelGroup acceleratable :: Ptr Object
acceleratable keyval :: Word32
keyval modifier :: CUInt
modifier = do
    AccelGroup
accelGroup' <- ((ManagedPtr AccelGroup -> AccelGroup)
-> Ptr AccelGroup -> IO AccelGroup
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr AccelGroup -> AccelGroup
Gtk.AccelGroup.AccelGroup) Ptr AccelGroup
accelGroup
    Object
acceleratable' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
GObject.Object.Object) Ptr Object
acceleratable
    let modifier' :: [ModifierType]
modifier' = CUInt -> [ModifierType]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
modifier
    Bool
result <- AccelGroupActivate
_cb  AccelGroup
accelGroup' Object
acceleratable' Word32
keyval [ModifierType]
modifier'
    Maybe (Ptr (FunPtr C_AccelGroupActivate)) -> IO ()
forall a. Maybe (Ptr (FunPtr a)) -> IO ()
maybeReleaseFunPtr Maybe (Ptr (FunPtr C_AccelGroupActivate))
funptrptr
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'