我已经部分解决了上一个问题。
现在我可以GObject
通过bindings-gobject
(参见hpase)注册子类型,我可以SourceCompletionProvider
使用c'g_type_add_interface_static函数来实现(但还没有尝试过)。
唯一的问题是Ptr ()
将由返回的转换c'g_object_newv
为gtk2hs
数据类型SourceCompletionProvider
。我该怎么做?有什么提示吗?
SourceCompletionProvider
定义如下:
newtype SourceCompletionProvider = SourceCompletionProvider (ForeignPtr (SourceCompletionProvider))
这个定义是什么意思?为什么它是递归的?提供者是ForeignPtr
提供者——对我来说看起来很奇怪。
谢谢。
解决方案:
makeNewGObject mkGObject $ castPtr <$> c'g_object_newv myObType 0 nullPtr