|
From: Daan L. <daa...@xs...> - 2004-10-23 11:40:18
|
Daniel Fischer wrote:
>Hello!
>
>I have a strange problem when using splitter windows with a spin
>control inside. I reduced my problem to the sample code below. When I
>running it on Windows I'm unable to resize the top left area by moving
>the vertical splitter bar left or right. But the horizontal splitter
>bar works fine. It seems to be a problem with the spin control. When
>replacing the spin control by a simple text entry (changing the line
>"spin <- spinCtrl panelLeft 0 100 []" to "spin <- textEntry panelLeft []")
>both splitter bars work fine. Strangly this problem does not occur
>when running it on Linux.
>
>Is it my fault or is there a bug in wxHaskell or in wxWidgets?
>I'm using Windows XP prof SP2, ghc 6.2.1 and wxHaskell 0.8.
>
>
It seems a wxWidgets problem. I will try this out on monday on my
windowsXP system.
(it also seems that spin controls don't propagate their events
correctly, so it might be
related to that bug)
-- Daan.
>And just another related question: how can I make the splitter windows
>respect the minimum size needed for the controls in the splitter
>panes?
>
>Many thanks in advance for your help
>Daniel Fischer
>
>---8<---------- sample code ----------8<---
>
>module Main where
>
>import Graphics.UI.WX
>import Graphics.UI.WXCore
>
>main :: IO ()
>main
> = start gui
>
>gui :: IO ()
>gui
> = do f <- frame [ text := "error?" ]
>
> hSplit <- splitterWindow f [ style := wxSP_3DSASH ]
> vSplit <- splitterWindow hSplit [ style := wxSP_3DSASH ]
> panelLeft <- panel vSplit []
>
> spin <- spinCtrl panelLeft 0 100 []
> entry <- textEntry panelLeft []
> btn1 <- button panelLeft [ text := "Ok" ]
> btn2 <- button panelLeft [ text := "Ok" ]
> list1 <- listCtrl panelLeft [ columns := [("foo",AlignLeft,100)] ]
> list2 <- listCtrl vSplit [ columns := [("bar",AlignLeft,100)] ]
> list3 <- listCtrl hSplit [ columns := [("baz",AlignLeft,100)] ]
>
> subLayoutLeft <- return $ vfill $ column 5
> [ boxed "box 1" $ row 5 [ fill $ widget spin, widget btn1 ]
> , boxed "box 2" $ row 5 [ fill $ widget entry, widget btn2 ]
> ]
>
> layoutLeft <- return $ fill $ row 5 [ fill $ widget list1, subLayoutLeft ]
> set panelLeft [ layout := layoutLeft ]
>
> layoutTop <- return $ vsplit vSplit 5 300 (widget panelLeft) (widget list2)
> layoutAll <- return $ hsplit hSplit 5 300 layoutTop (widget list3)
>
> set f [ layout := minsize (sz 640 400) $ fill layoutAll ]
>
>
>
>
>-------------------------------------------------------
>This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
>Use IT products in your business? Tell us what you think of them. Give us
>Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
>http://productguide.itmanagersjournal.com/guidepromo.tmpl
>_______________________________________________
>wxhaskell-users mailing list
>wxh...@li...
>https://lists.sourceforge.net/lists/listinfo/wxhaskell-users
>
>
>
>
|