wxHaskell を使用して staticText 要素のサイズをコンテンツに合わせて変更する方法を理解しようとしています。私が知る限り、これは wxWidgets のデフォルトの動作ですが、wxHaskell ラッパーは特にこの動作を無効にしています。しかし、新しい要素を作成するライブラリ コードは、私を非常に混乱させます。このコードが何をするのか説明できる人はいますか?
staticText :: Window a -> [Prop (StaticText ())] -> IO (StaticText ())
staticText parent props
= feed2 props 0 $
initialWindow $ \id rect ->
initialText $ \txt -> \props flags ->
do t <- staticTextCreate parent id txt rect flags {- (wxALIGN_LEFT + wxST_NO_AUTORESIZE) -}
set t props
return t
私はそれを知っておりfeed2 x y f = f x y
、initialWindow の型シグネチャは
initialWindow :: (Id -> Rect -> [Prop (Window w)] -> Style -> a) -> [Prop (Window w)] -> Style -> a
そして、initialText の署名は
initialText :: Textual w => (String -> [Prop w] -> a) -> [Prop w] -> a
しかし、すべてのラムダに頭を包むことはできません。