gi-gtk-3.0.28: GI/Gtk/Structs/TreeRowReference.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
A GtkTreeRowReference tracks model changes so that it always refers to the
same row (a 'GI.Gtk.Structs.TreePath.TreePath' refers to a position, not a fixed row). Create a
new GtkTreeRowReference with 'GI.Gtk.Structs.TreeRowReference.treeRowReferenceNew'.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gtk.Structs.TreeRowReference
(
-- * Exported types
TreeRowReference(..) ,
noTreeRowReference ,
-- * Methods
-- ** copy #method:copy#
#if ENABLE_OVERLOADING
TreeRowReferenceCopyMethodInfo ,
#endif
treeRowReferenceCopy ,
-- ** deleted #method:deleted#
treeRowReferenceDeleted ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
TreeRowReferenceFreeMethodInfo ,
#endif
treeRowReferenceFree ,
-- ** getModel #method:getModel#
#if ENABLE_OVERLOADING
TreeRowReferenceGetModelMethodInfo ,
#endif
treeRowReferenceGetModel ,
-- ** getPath #method:getPath#
#if ENABLE_OVERLOADING
TreeRowReferenceGetPathMethodInfo ,
#endif
treeRowReferenceGetPath ,
-- ** inserted #method:inserted#
treeRowReferenceInserted ,
-- ** new #method:new#
treeRowReferenceNew ,
-- ** newProxy #method:newProxy#
treeRowReferenceNewProxy ,
-- ** valid #method:valid#
#if ENABLE_OVERLOADING
TreeRowReferenceValidMethodInfo ,
#endif
treeRowReferenceValid ,
) 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.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.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeModel as Gtk.TreeModel
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreePath as Gtk.TreePath
-- | Memory-managed wrapper type.
newtype TreeRowReference = TreeRowReference (ManagedPtr TreeRowReference)
foreign import ccall "gtk_tree_row_reference_get_type" c_gtk_tree_row_reference_get_type ::
IO GType
instance BoxedObject TreeRowReference where
boxedType _ = c_gtk_tree_row_reference_get_type
-- | A convenience alias for `Nothing` :: `Maybe` `TreeRowReference`.
noTreeRowReference :: Maybe TreeRowReference
noTreeRowReference = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList TreeRowReference
type instance O.AttributeList TreeRowReference = TreeRowReferenceAttributeList
type TreeRowReferenceAttributeList = ('[ ] :: [(Symbol, *)])
#endif
-- method TreeRowReference::new
-- method type : Constructor
-- Args : [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeModel", 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 "a valid #GtkTreePath-struct to monitor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}))
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_new" gtk_tree_row_reference_new ::
Ptr Gtk.TreeModel.TreeModel -> -- model : TInterface (Name {namespace = "Gtk", name = "TreeModel"})
Ptr Gtk.TreePath.TreePath -> -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
IO (Ptr TreeRowReference)
{- |
Creates a row reference based on /@path@/.
This reference will keep pointing to the node pointed to
by /@path@/, so long as it exists. Any changes that occur on /@model@/ are
propagated, and the path is updated appropriately. If
/@path@/ isn’t a valid path in /@model@/, then 'Nothing' is returned.
-}
treeRowReferenceNew ::
(B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
a
{- ^ /@model@/: a 'GI.Gtk.Interfaces.TreeModel.TreeModel' -}
-> Gtk.TreePath.TreePath
{- ^ /@path@/: a valid 'GI.Gtk.Structs.TreePath.TreePath'-struct to monitor -}
-> m TreeRowReference
{- ^ __Returns:__ a newly allocated 'GI.Gtk.Structs.TreeRowReference.TreeRowReference', or 'Nothing' -}
treeRowReferenceNew model path = liftIO $ do
model' <- unsafeManagedPtrCastPtr model
path' <- unsafeManagedPtrGetPtr path
result <- gtk_tree_row_reference_new model' path'
checkUnexpectedReturnNULL "treeRowReferenceNew" result
result' <- (wrapBoxed TreeRowReference) result
touchManagedPtr model
touchManagedPtr path
return result'
#if ENABLE_OVERLOADING
#endif
-- method TreeRowReference::new_proxy
-- method type : Constructor
-- Args : [Arg {argCName = "proxy", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a proxy #GObject", 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", 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 "a valid #GtkTreePath-struct to monitor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}))
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_new_proxy" gtk_tree_row_reference_new_proxy ::
Ptr GObject.Object.Object -> -- proxy : TInterface (Name {namespace = "GObject", name = "Object"})
Ptr Gtk.TreeModel.TreeModel -> -- model : TInterface (Name {namespace = "Gtk", name = "TreeModel"})
Ptr Gtk.TreePath.TreePath -> -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
IO (Ptr TreeRowReference)
{- |
You do not need to use this function.
Creates a row reference based on /@path@/.
This reference will keep pointing to the node pointed to
by /@path@/, so long as it exists. If /@path@/ isn’t a valid
path in /@model@/, then 'Nothing' is returned. However, unlike
references created with 'GI.Gtk.Structs.TreeRowReference.treeRowReferenceNew', it
does not listen to the model for changes. The creator of
the row reference must do this explicitly using
'GI.Gtk.Functions.treeRowReferenceInserted', 'GI.Gtk.Functions.treeRowReferenceDeleted',
@/gtk_tree_row_reference_reordered()/@.
These functions must be called exactly once per proxy when the
corresponding signal on the model is emitted. This single call
updates all row references for that proxy. Since built-in GTK+
objects like 'GI.Gtk.Objects.TreeView.TreeView' already use this mechanism internally,
using them as the proxy object will produce unpredictable results.
Further more, passing the same object as /@model@/ and /@proxy@/
doesn’t work for reasons of internal implementation.
This type of row reference is primarily meant by structures that
need to carefully monitor exactly when a row reference updates
itself, and is not generally needed by most applications.
-}
treeRowReferenceNewProxy ::
(B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a, Gtk.TreeModel.IsTreeModel b) =>
a
{- ^ /@proxy@/: a proxy 'GI.GObject.Objects.Object.Object' -}
-> b
{- ^ /@model@/: a 'GI.Gtk.Interfaces.TreeModel.TreeModel' -}
-> Gtk.TreePath.TreePath
{- ^ /@path@/: a valid 'GI.Gtk.Structs.TreePath.TreePath'-struct to monitor -}
-> m TreeRowReference
{- ^ __Returns:__ a newly allocated 'GI.Gtk.Structs.TreeRowReference.TreeRowReference', or 'Nothing' -}
treeRowReferenceNewProxy proxy model path = liftIO $ do
proxy' <- unsafeManagedPtrCastPtr proxy
model' <- unsafeManagedPtrCastPtr model
path' <- unsafeManagedPtrGetPtr path
result <- gtk_tree_row_reference_new_proxy proxy' model' path'
checkUnexpectedReturnNULL "treeRowReferenceNewProxy" result
result' <- (wrapBoxed TreeRowReference) result
touchManagedPtr proxy
touchManagedPtr model
touchManagedPtr path
return result'
#if ENABLE_OVERLOADING
#endif
-- method TreeRowReference::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "reference", argType = TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeRowReference", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}))
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_copy" gtk_tree_row_reference_copy ::
Ptr TreeRowReference -> -- reference : TInterface (Name {namespace = "Gtk", name = "TreeRowReference"})
IO (Ptr TreeRowReference)
{- |
Copies a 'GI.Gtk.Structs.TreeRowReference.TreeRowReference'.
/Since: 2.2/
-}
treeRowReferenceCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeRowReference
{- ^ /@reference@/: a 'GI.Gtk.Structs.TreeRowReference.TreeRowReference' -}
-> m TreeRowReference
{- ^ __Returns:__ a copy of /@reference@/ -}
treeRowReferenceCopy reference = liftIO $ do
reference' <- unsafeManagedPtrGetPtr reference
result <- gtk_tree_row_reference_copy reference'
checkUnexpectedReturnNULL "treeRowReferenceCopy" result
result' <- (wrapBoxed TreeRowReference) result
touchManagedPtr reference
return result'
#if ENABLE_OVERLOADING
data TreeRowReferenceCopyMethodInfo
instance (signature ~ (m TreeRowReference), MonadIO m) => O.MethodInfo TreeRowReferenceCopyMethodInfo TreeRowReference signature where
overloadedMethod _ = treeRowReferenceCopy
#endif
-- method TreeRowReference::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "reference", argType = TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeRowReference, 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 "gtk_tree_row_reference_free" gtk_tree_row_reference_free ::
Ptr TreeRowReference -> -- reference : TInterface (Name {namespace = "Gtk", name = "TreeRowReference"})
IO ()
{- |
Free’s /@reference@/. /@reference@/ may be 'Nothing'
-}
treeRowReferenceFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeRowReference
{- ^ /@reference@/: a 'GI.Gtk.Structs.TreeRowReference.TreeRowReference', or 'Nothing' -}
-> m ()
treeRowReferenceFree reference = liftIO $ do
reference' <- unsafeManagedPtrGetPtr reference
gtk_tree_row_reference_free reference'
touchManagedPtr reference
return ()
#if ENABLE_OVERLOADING
data TreeRowReferenceFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo TreeRowReferenceFreeMethodInfo TreeRowReference signature where
overloadedMethod _ = treeRowReferenceFree
#endif
-- method TreeRowReference::get_model
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "reference", argType = TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeRowReference", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeModel"}))
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_get_model" gtk_tree_row_reference_get_model ::
Ptr TreeRowReference -> -- reference : TInterface (Name {namespace = "Gtk", name = "TreeRowReference"})
IO (Ptr Gtk.TreeModel.TreeModel)
{- |
Returns the model that the row reference is monitoring.
/Since: 2.8/
-}
treeRowReferenceGetModel ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeRowReference
{- ^ /@reference@/: a 'GI.Gtk.Structs.TreeRowReference.TreeRowReference' -}
-> m Gtk.TreeModel.TreeModel
{- ^ __Returns:__ the model -}
treeRowReferenceGetModel reference = liftIO $ do
reference' <- unsafeManagedPtrGetPtr reference
result <- gtk_tree_row_reference_get_model reference'
checkUnexpectedReturnNULL "treeRowReferenceGetModel" result
result' <- (newObject Gtk.TreeModel.TreeModel) result
touchManagedPtr reference
return result'
#if ENABLE_OVERLOADING
data TreeRowReferenceGetModelMethodInfo
instance (signature ~ (m Gtk.TreeModel.TreeModel), MonadIO m) => O.MethodInfo TreeRowReferenceGetModelMethodInfo TreeRowReference signature where
overloadedMethod _ = treeRowReferenceGetModel
#endif
-- method TreeRowReference::get_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "reference", argType = TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeRowReference", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreePath"}))
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_get_path" gtk_tree_row_reference_get_path ::
Ptr TreeRowReference -> -- reference : TInterface (Name {namespace = "Gtk", name = "TreeRowReference"})
IO (Ptr Gtk.TreePath.TreePath)
{- |
Returns a path that the row reference currently points to,
or 'Nothing' if the path pointed to is no longer valid.
-}
treeRowReferenceGetPath ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeRowReference
{- ^ /@reference@/: a 'GI.Gtk.Structs.TreeRowReference.TreeRowReference' -}
-> m (Maybe Gtk.TreePath.TreePath)
{- ^ __Returns:__ a current path, or 'Nothing' -}
treeRowReferenceGetPath reference = liftIO $ do
reference' <- unsafeManagedPtrGetPtr reference
result <- gtk_tree_row_reference_get_path reference'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Gtk.TreePath.TreePath) result'
return result''
touchManagedPtr reference
return maybeResult
#if ENABLE_OVERLOADING
data TreeRowReferenceGetPathMethodInfo
instance (signature ~ (m (Maybe Gtk.TreePath.TreePath)), MonadIO m) => O.MethodInfo TreeRowReferenceGetPathMethodInfo TreeRowReference signature where
overloadedMethod _ = treeRowReferenceGetPath
#endif
-- method TreeRowReference::valid
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "reference", argType = TInterface (Name {namespace = "Gtk", name = "TreeRowReference"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeRowReference, or %NULL", 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 "gtk_tree_row_reference_valid" gtk_tree_row_reference_valid ::
Ptr TreeRowReference -> -- reference : TInterface (Name {namespace = "Gtk", name = "TreeRowReference"})
IO CInt
{- |
Returns 'True' if the /@reference@/ is non-'Nothing' and refers to
a current valid path.
-}
treeRowReferenceValid ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeRowReference
{- ^ /@reference@/: a 'GI.Gtk.Structs.TreeRowReference.TreeRowReference', or 'Nothing' -}
-> m Bool
{- ^ __Returns:__ 'True' if /@reference@/ points to a valid path -}
treeRowReferenceValid reference = liftIO $ do
reference' <- unsafeManagedPtrGetPtr reference
result <- gtk_tree_row_reference_valid reference'
let result' = (/= 0) result
touchManagedPtr reference
return result'
#if ENABLE_OVERLOADING
data TreeRowReferenceValidMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo TreeRowReferenceValidMethodInfo TreeRowReference signature where
overloadedMethod _ = treeRowReferenceValid
#endif
-- method TreeRowReference::deleted
-- method type : MemberFunction
-- Args : [Arg {argCName = "proxy", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GObject", 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 position that was deleted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_deleted" gtk_tree_row_reference_deleted ::
Ptr GObject.Object.Object -> -- proxy : TInterface (Name {namespace = "GObject", name = "Object"})
Ptr Gtk.TreePath.TreePath -> -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
IO ()
{- |
Lets a set of row reference created by
'GI.Gtk.Structs.TreeRowReference.treeRowReferenceNewProxy' know that the
model emitted the 'GI.Gtk.Interfaces.TreeModel.TreeModel'::@/row-deleted/@ signal.
-}
treeRowReferenceDeleted ::
(B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a) =>
a
{- ^ /@proxy@/: a 'GI.GObject.Objects.Object.Object' -}
-> Gtk.TreePath.TreePath
{- ^ /@path@/: the path position that was deleted -}
-> m ()
treeRowReferenceDeleted proxy path = liftIO $ do
proxy' <- unsafeManagedPtrCastPtr proxy
path' <- unsafeManagedPtrGetPtr path
gtk_tree_row_reference_deleted proxy' path'
touchManagedPtr proxy
touchManagedPtr path
return ()
#if ENABLE_OVERLOADING
#endif
-- method TreeRowReference::inserted
-- method type : MemberFunction
-- Args : [Arg {argCName = "proxy", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GObject", 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 row position that was inserted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_row_reference_inserted" gtk_tree_row_reference_inserted ::
Ptr GObject.Object.Object -> -- proxy : TInterface (Name {namespace = "GObject", name = "Object"})
Ptr Gtk.TreePath.TreePath -> -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
IO ()
{- |
Lets a set of row reference created by
'GI.Gtk.Structs.TreeRowReference.treeRowReferenceNewProxy' know that the
model emitted the 'GI.Gtk.Interfaces.TreeModel.TreeModel'::@/row-inserted/@ signal.
-}
treeRowReferenceInserted ::
(B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a) =>
a
{- ^ /@proxy@/: a 'GI.GObject.Objects.Object.Object' -}
-> Gtk.TreePath.TreePath
{- ^ /@path@/: the row position that was inserted -}
-> m ()
treeRowReferenceInserted proxy path = liftIO $ do
proxy' <- unsafeManagedPtrCastPtr proxy
path' <- unsafeManagedPtrGetPtr path
gtk_tree_row_reference_inserted proxy' path'
touchManagedPtr proxy
touchManagedPtr path
return ()
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type family ResolveTreeRowReferenceMethod (t :: Symbol) (o :: *) :: * where
ResolveTreeRowReferenceMethod "copy" o = TreeRowReferenceCopyMethodInfo
ResolveTreeRowReferenceMethod "free" o = TreeRowReferenceFreeMethodInfo
ResolveTreeRowReferenceMethod "valid" o = TreeRowReferenceValidMethodInfo
ResolveTreeRowReferenceMethod "getModel" o = TreeRowReferenceGetModelMethodInfo
ResolveTreeRowReferenceMethod "getPath" o = TreeRowReferenceGetPathMethodInfo
ResolveTreeRowReferenceMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTreeRowReferenceMethod t TreeRowReference, O.MethodInfo info TreeRowReference p) => OL.IsLabel t (TreeRowReference -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif