부분적으로 prev 질문을 풀었습니다.Ptr()을 SourceCompletionProvider로 변환하십시오.
은 지금은 내가 c'g_type_add_interface_static 기능을 사용하여 SourceCompletionProvider
을 구현할 수 있습니다 (hpase 참조) bindings-gobject
를 통해 GObject
하위 유형을 등록 할 수있어 (아직 시도하지 않았다).
유일한 문제는 c'g_object_newv
에 의해 반환 된 Ptr()
을 gtk2hs
데이터 형식 SourceCompletionProvider
으로 변환하는 것입니다. 내가 어떻게 해? 어떤 힌트?
newtype SourceCompletionProvider = SourceCompletionProvider (ForeignPtr (SourceCompletionProvider))
무엇이 정의는 의미 않습니다
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