{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.SearchEntry
    ( 

-- * Exported types
    SearchEntry(..)                         ,
    SearchEntryK                            ,
    toSearchEntry                           ,
    noSearchEntry                           ,


 -- * Methods
-- ** searchEntryHandleEvent
    searchEntryHandleEvent                  ,


-- ** searchEntryNew
    searchEntryNew                          ,




 -- * Signals
-- ** NextMatch
    SearchEntryNextMatchCallback            ,
    SearchEntryNextMatchCallbackC           ,
    SearchEntryNextMatchSignalInfo          ,
    afterSearchEntryNextMatch               ,
    mkSearchEntryNextMatchCallback          ,
    noSearchEntryNextMatchCallback          ,
    onSearchEntryNextMatch                  ,
    searchEntryNextMatchCallbackWrapper     ,
    searchEntryNextMatchClosure             ,


-- ** PreviousMatch
    SearchEntryPreviousMatchCallback        ,
    SearchEntryPreviousMatchCallbackC       ,
    SearchEntryPreviousMatchSignalInfo      ,
    afterSearchEntryPreviousMatch           ,
    mkSearchEntryPreviousMatchCallback      ,
    noSearchEntryPreviousMatchCallback      ,
    onSearchEntryPreviousMatch              ,
    searchEntryPreviousMatchCallbackWrapper ,
    searchEntryPreviousMatchClosure         ,


-- ** SearchChanged
    SearchEntrySearchChangedCallback        ,
    SearchEntrySearchChangedCallbackC       ,
    SearchEntrySearchChangedSignalInfo      ,
    afterSearchEntrySearchChanged           ,
    mkSearchEntrySearchChangedCallback      ,
    noSearchEntrySearchChangedCallback      ,
    onSearchEntrySearchChanged              ,
    searchEntrySearchChangedCallbackWrapper ,
    searchEntrySearchChangedClosure         ,


-- ** StopSearch
    SearchEntryStopSearchCallback           ,
    SearchEntryStopSearchCallbackC          ,
    SearchEntryStopSearchSignalInfo         ,
    afterSearchEntryStopSearch              ,
    mkSearchEntryStopSearchCallback         ,
    noSearchEntryStopSearchCallback         ,
    onSearchEntryStopSearch                 ,
    searchEntryStopSearchCallbackWrapper    ,
    searchEntryStopSearchClosure            ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk

newtype SearchEntry = SearchEntry (ForeignPtr SearchEntry)
foreign import ccall "gtk_search_entry_get_type"
    c_gtk_search_entry_get_type :: IO GType

type instance ParentTypes SearchEntry = SearchEntryParentTypes
type SearchEntryParentTypes = '[Entry, Widget, GObject.Object, Atk.ImplementorIface, Buildable, CellEditable, Editable]

instance GObject SearchEntry where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_search_entry_get_type
    

class GObject o => SearchEntryK o
instance (GObject o, IsDescendantOf SearchEntry o) => SearchEntryK o

toSearchEntry :: SearchEntryK o => o -> IO SearchEntry
toSearchEntry = unsafeCastTo SearchEntry

noSearchEntry :: Maybe SearchEntry
noSearchEntry = Nothing

-- signal SearchEntry::next-match
type SearchEntryNextMatchCallback =
    IO ()

noSearchEntryNextMatchCallback :: Maybe SearchEntryNextMatchCallback
noSearchEntryNextMatchCallback = Nothing

type SearchEntryNextMatchCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkSearchEntryNextMatchCallback :: SearchEntryNextMatchCallbackC -> IO (FunPtr SearchEntryNextMatchCallbackC)

searchEntryNextMatchClosure :: SearchEntryNextMatchCallback -> IO Closure
searchEntryNextMatchClosure cb = newCClosure =<< mkSearchEntryNextMatchCallback wrapped
    where wrapped = searchEntryNextMatchCallbackWrapper cb

searchEntryNextMatchCallbackWrapper ::
    SearchEntryNextMatchCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
searchEntryNextMatchCallbackWrapper _cb _ _ = do
    _cb 

onSearchEntryNextMatch :: (GObject a, MonadIO m) => a -> SearchEntryNextMatchCallback -> m SignalHandlerId
onSearchEntryNextMatch obj cb = liftIO $ connectSearchEntryNextMatch obj cb SignalConnectBefore
afterSearchEntryNextMatch :: (GObject a, MonadIO m) => a -> SearchEntryNextMatchCallback -> m SignalHandlerId
afterSearchEntryNextMatch obj cb = connectSearchEntryNextMatch obj cb SignalConnectAfter

connectSearchEntryNextMatch :: (GObject a, MonadIO m) =>
                               a -> SearchEntryNextMatchCallback -> SignalConnectMode -> m SignalHandlerId
connectSearchEntryNextMatch obj cb after = liftIO $ do
    cb' <- mkSearchEntryNextMatchCallback (searchEntryNextMatchCallbackWrapper cb)
    connectSignalFunPtr obj "next-match" cb' after

-- signal SearchEntry::previous-match
type SearchEntryPreviousMatchCallback =
    IO ()

noSearchEntryPreviousMatchCallback :: Maybe SearchEntryPreviousMatchCallback
noSearchEntryPreviousMatchCallback = Nothing

type SearchEntryPreviousMatchCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkSearchEntryPreviousMatchCallback :: SearchEntryPreviousMatchCallbackC -> IO (FunPtr SearchEntryPreviousMatchCallbackC)

searchEntryPreviousMatchClosure :: SearchEntryPreviousMatchCallback -> IO Closure
searchEntryPreviousMatchClosure cb = newCClosure =<< mkSearchEntryPreviousMatchCallback wrapped
    where wrapped = searchEntryPreviousMatchCallbackWrapper cb

searchEntryPreviousMatchCallbackWrapper ::
    SearchEntryPreviousMatchCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
searchEntryPreviousMatchCallbackWrapper _cb _ _ = do
    _cb 

onSearchEntryPreviousMatch :: (GObject a, MonadIO m) => a -> SearchEntryPreviousMatchCallback -> m SignalHandlerId
onSearchEntryPreviousMatch obj cb = liftIO $ connectSearchEntryPreviousMatch obj cb SignalConnectBefore
afterSearchEntryPreviousMatch :: (GObject a, MonadIO m) => a -> SearchEntryPreviousMatchCallback -> m SignalHandlerId
afterSearchEntryPreviousMatch obj cb = connectSearchEntryPreviousMatch obj cb SignalConnectAfter

connectSearchEntryPreviousMatch :: (GObject a, MonadIO m) =>
                                   a -> SearchEntryPreviousMatchCallback -> SignalConnectMode -> m SignalHandlerId
connectSearchEntryPreviousMatch obj cb after = liftIO $ do
    cb' <- mkSearchEntryPreviousMatchCallback (searchEntryPreviousMatchCallbackWrapper cb)
    connectSignalFunPtr obj "previous-match" cb' after

-- signal SearchEntry::search-changed
type SearchEntrySearchChangedCallback =
    IO ()

noSearchEntrySearchChangedCallback :: Maybe SearchEntrySearchChangedCallback
noSearchEntrySearchChangedCallback = Nothing

type SearchEntrySearchChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkSearchEntrySearchChangedCallback :: SearchEntrySearchChangedCallbackC -> IO (FunPtr SearchEntrySearchChangedCallbackC)

searchEntrySearchChangedClosure :: SearchEntrySearchChangedCallback -> IO Closure
searchEntrySearchChangedClosure cb = newCClosure =<< mkSearchEntrySearchChangedCallback wrapped
    where wrapped = searchEntrySearchChangedCallbackWrapper cb

searchEntrySearchChangedCallbackWrapper ::
    SearchEntrySearchChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
searchEntrySearchChangedCallbackWrapper _cb _ _ = do
    _cb 

onSearchEntrySearchChanged :: (GObject a, MonadIO m) => a -> SearchEntrySearchChangedCallback -> m SignalHandlerId
onSearchEntrySearchChanged obj cb = liftIO $ connectSearchEntrySearchChanged obj cb SignalConnectBefore
afterSearchEntrySearchChanged :: (GObject a, MonadIO m) => a -> SearchEntrySearchChangedCallback -> m SignalHandlerId
afterSearchEntrySearchChanged obj cb = connectSearchEntrySearchChanged obj cb SignalConnectAfter

connectSearchEntrySearchChanged :: (GObject a, MonadIO m) =>
                                   a -> SearchEntrySearchChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectSearchEntrySearchChanged obj cb after = liftIO $ do
    cb' <- mkSearchEntrySearchChangedCallback (searchEntrySearchChangedCallbackWrapper cb)
    connectSignalFunPtr obj "search-changed" cb' after

-- signal SearchEntry::stop-search
type SearchEntryStopSearchCallback =
    IO ()

noSearchEntryStopSearchCallback :: Maybe SearchEntryStopSearchCallback
noSearchEntryStopSearchCallback = Nothing

type SearchEntryStopSearchCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkSearchEntryStopSearchCallback :: SearchEntryStopSearchCallbackC -> IO (FunPtr SearchEntryStopSearchCallbackC)

searchEntryStopSearchClosure :: SearchEntryStopSearchCallback -> IO Closure
searchEntryStopSearchClosure cb = newCClosure =<< mkSearchEntryStopSearchCallback wrapped
    where wrapped = searchEntryStopSearchCallbackWrapper cb

searchEntryStopSearchCallbackWrapper ::
    SearchEntryStopSearchCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
searchEntryStopSearchCallbackWrapper _cb _ _ = do
    _cb 

onSearchEntryStopSearch :: (GObject a, MonadIO m) => a -> SearchEntryStopSearchCallback -> m SignalHandlerId
onSearchEntryStopSearch obj cb = liftIO $ connectSearchEntryStopSearch obj cb SignalConnectBefore
afterSearchEntryStopSearch :: (GObject a, MonadIO m) => a -> SearchEntryStopSearchCallback -> m SignalHandlerId
afterSearchEntryStopSearch obj cb = connectSearchEntryStopSearch obj cb SignalConnectAfter

connectSearchEntryStopSearch :: (GObject a, MonadIO m) =>
                                a -> SearchEntryStopSearchCallback -> SignalConnectMode -> m SignalHandlerId
connectSearchEntryStopSearch obj cb after = liftIO $ do
    cb' <- mkSearchEntryStopSearchCallback (searchEntryStopSearchCallbackWrapper cb)
    connectSignalFunPtr obj "stop-search" cb' after

type instance AttributeList SearchEntry = SearchEntryAttributeList
type SearchEntryAttributeList = ('[ '("activates-default", EntryActivatesDefaultPropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("attributes", EntryAttributesPropertyInfo), '("buffer", EntryBufferPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("caps-lock-warning", EntryCapsLockWarningPropertyInfo), '("completion", EntryCompletionPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("cursor-position", EntryCursorPositionPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("editable", EntryEditablePropertyInfo), '("editing-canceled", CellEditableEditingCanceledPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-frame", EntryHasFramePropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("im-module", EntryImModulePropertyInfo), '("inner-border", EntryInnerBorderPropertyInfo), '("input-hints", EntryInputHintsPropertyInfo), '("input-purpose", EntryInputPurposePropertyInfo), '("invisible-char", EntryInvisibleCharPropertyInfo), '("invisible-char-set", EntryInvisibleCharSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("max-length", EntryMaxLengthPropertyInfo), '("max-width-chars", EntryMaxWidthCharsPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("overwrite-mode", EntryOverwriteModePropertyInfo), '("parent", WidgetParentPropertyInfo), '("placeholder-text", EntryPlaceholderTextPropertyInfo), '("populate-all", EntryPopulateAllPropertyInfo), '("primary-icon-activatable", EntryPrimaryIconActivatablePropertyInfo), '("primary-icon-gicon", EntryPrimaryIconGiconPropertyInfo), '("primary-icon-name", EntryPrimaryIconNamePropertyInfo), '("primary-icon-pixbuf", EntryPrimaryIconPixbufPropertyInfo), '("primary-icon-sensitive", EntryPrimaryIconSensitivePropertyInfo), '("primary-icon-stock", EntryPrimaryIconStockPropertyInfo), '("primary-icon-storage-type", EntryPrimaryIconStorageTypePropertyInfo), '("primary-icon-tooltip-markup", EntryPrimaryIconTooltipMarkupPropertyInfo), '("primary-icon-tooltip-text", EntryPrimaryIconTooltipTextPropertyInfo), '("progress-fraction", EntryProgressFractionPropertyInfo), '("progress-pulse-step", EntryProgressPulseStepPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("scroll-offset", EntryScrollOffsetPropertyInfo), '("secondary-icon-activatable", EntrySecondaryIconActivatablePropertyInfo), '("secondary-icon-gicon", EntrySecondaryIconGiconPropertyInfo), '("secondary-icon-name", EntrySecondaryIconNamePropertyInfo), '("secondary-icon-pixbuf", EntrySecondaryIconPixbufPropertyInfo), '("secondary-icon-sensitive", EntrySecondaryIconSensitivePropertyInfo), '("secondary-icon-stock", EntrySecondaryIconStockPropertyInfo), '("secondary-icon-storage-type", EntrySecondaryIconStorageTypePropertyInfo), '("secondary-icon-tooltip-markup", EntrySecondaryIconTooltipMarkupPropertyInfo), '("secondary-icon-tooltip-text", EntrySecondaryIconTooltipTextPropertyInfo), '("selection-bound", EntrySelectionBoundPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("shadow-type", EntryShadowTypePropertyInfo), '("style", WidgetStylePropertyInfo), '("tabs", EntryTabsPropertyInfo), '("text", EntryTextPropertyInfo), '("text-length", EntryTextLengthPropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("truncate-multiline", EntryTruncateMultilinePropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visibility", EntryVisibilityPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-chars", EntryWidthCharsPropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo), '("xalign", EntryXalignPropertyInfo)] :: [(Symbol, *)])

data SearchEntryNextMatchSignalInfo
instance SignalInfo SearchEntryNextMatchSignalInfo where
    type HaskellCallbackType SearchEntryNextMatchSignalInfo = SearchEntryNextMatchCallback
    connectSignal _ = connectSearchEntryNextMatch

data SearchEntryPreviousMatchSignalInfo
instance SignalInfo SearchEntryPreviousMatchSignalInfo where
    type HaskellCallbackType SearchEntryPreviousMatchSignalInfo = SearchEntryPreviousMatchCallback
    connectSignal _ = connectSearchEntryPreviousMatch

data SearchEntrySearchChangedSignalInfo
instance SignalInfo SearchEntrySearchChangedSignalInfo where
    type HaskellCallbackType SearchEntrySearchChangedSignalInfo = SearchEntrySearchChangedCallback
    connectSignal _ = connectSearchEntrySearchChanged

data SearchEntryStopSearchSignalInfo
instance SignalInfo SearchEntryStopSearchSignalInfo where
    type HaskellCallbackType SearchEntryStopSearchSignalInfo = SearchEntryStopSearchCallback
    connectSignal _ = connectSearchEntryStopSearch

type instance SignalList SearchEntry = SearchEntrySignalList
type SearchEntrySignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("activate", EntryActivateSignalInfo), '("backspace", EntryBackspaceSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("changed", EditableChangedSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("copy-clipboard", EntryCopyClipboardSignalInfo), '("cut-clipboard", EntryCutClipboardSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("delete-from-cursor", EntryDeleteFromCursorSignalInfo), '("delete-text", EditableDeleteTextSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("editing-done", CellEditableEditingDoneSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("icon-press", EntryIconPressSignalInfo), '("icon-release", EntryIconReleaseSignalInfo), '("insert-at-cursor", EntryInsertAtCursorSignalInfo), '("insert-text", EditableInsertTextSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-cursor", EntryMoveCursorSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("next-match", SearchEntryNextMatchSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("paste-clipboard", EntryPasteClipboardSignalInfo), '("populate-popup", EntryPopulatePopupSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("preedit-changed", EntryPreeditChangedSignalInfo), '("previous-match", SearchEntryPreviousMatchSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("realize", WidgetRealizeSignalInfo), '("remove-widget", CellEditableRemoveWidgetSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("search-changed", SearchEntrySearchChangedSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("stop-search", SearchEntryStopSearchSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("toggle-overwrite", EntryToggleOverwriteSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method SearchEntry::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "SearchEntry"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_search_entry_new" gtk_search_entry_new :: 
    IO (Ptr SearchEntry)


searchEntryNew ::
    (MonadIO m) =>
    m SearchEntry
searchEntryNew  = liftIO $ do
    result <- gtk_search_entry_new
    checkUnexpectedReturnNULL "gtk_search_entry_new" result
    result' <- (newObject SearchEntry) result
    return result'

-- method SearchEntry::handle_event
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "SearchEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "SearchEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_search_entry_handle_event" gtk_search_entry_handle_event :: 
    Ptr SearchEntry ->                      -- _obj : TInterface "Gtk" "SearchEntry"
    Ptr Gdk.Event ->                        -- event : TInterface "Gdk" "Event"
    IO CInt


searchEntryHandleEvent ::
    (MonadIO m, SearchEntryK a) =>
    a ->                                    -- _obj
    Gdk.Event ->                            -- event
    m Bool
searchEntryHandleEvent _obj event = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let event' = unsafeManagedPtrGetPtr event
    result <- gtk_search_entry_handle_event _obj' event'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr event
    return result'