我已經部分解決了prev問題。將Ptr()轉換爲SourceCompletionProvider
現在我能夠通過bindings-gobject
註冊GObject
亞型(見hpase) 我可以用c'g_type_add_interface_static功能實現SourceCompletionProvider
(但仍沒有嘗試過)。
唯一的問題是將Ptr()
,由c'g_object_newv
返回到gtk2hs
數據類型SourceCompletionProvider
。我該怎麼做?任何提示?
SourceCompletionProvider
的定義如下:
newtype SourceCompletionProvider = SourceCompletionProvider (ForeignPtr (SourceCompletionProvider))
是什麼定義,意味着什麼?爲什麼它是遞歸的?提供商是提供商ForeignPtr
- 對我來說看起來很奇怪。
謝謝。
解決方案:
makeNewGObject mkGObject $ castPtr <$> c'g_object_newv myObType 0 nullPtr
嗯...我想我需要添加終結器,對吧?我可以使用'p'g_object_unref'作爲終結器,這足夠嗎? – Yuras
從查看[C接口文檔](http://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#g-object-unref)後我可以看出,你對了。 –
剛剛嘗試過 - 像一個魅力。謝謝! – Yuras