From: Ian L. <ig...@ea...> - 2004-03-25 17:42:46
|
On Thu, Mar 25, 2004 at 11:32:17AM +0100, Daan Leijen wrote: > Hi Ian, > > >I've written a simple application using wxHaskell, mainly to see how the > >library works. It's at http://urchin.earth.li/~ian/mamot/ > > Ha, I have another screenshot :-) :-) > >I'm not sure how to get it to both display correctly and not flicker. > >I've tried various combinations of dcBuffer, windowFreeze/windowThaw, > >fullRepaintOnResize := False, but don't seem to have hit upon the magic > >combination yet? > > I want to document this soon, as it is rather obscurely done in wxWidgets. > I'll look into this issue in some more detail, maybe I can come up with > a nice abstraction. > > For now, you need to set "fullRepaintOnResize" indeed to "False", but you > need to > do that for both the frame and panel (and drawing areas?). Oh, I forgot to add that I could eliminate the flicker with fullRepaintOnResize but then I can cause the screen to be redrawn incorrectly as follows: * Make the window too small so the scroll bar appears * Scroll fully to the right * Make the window wider on the right The right hand side is then redrawn as the window gets bigger so you get lots of rights stuck on the right of the original left. My word that sentence is confusing - see http://urchin.earth.li/~ian/iv_rights.png for a screenshot. > Furthermore, it > could help to set the "wxCLIP_CHILDREN" flag. Try: Doing this to both alters the symptoms but it still isn't right. > Look also to the "imageviewer" sample. This also happens with your image viewer. > >The scrolled window seems to like increasing its virtual size when > >the window gets bigger unless I explicitly keep resetting it. Is there a > >nice way to get the behaviour I want? > > You have to be more specific about the behaviour you want -- should the > virtual size stay the same when the window is resized? Yes, sorry. The problem was that when the window got bigger the scrolled area was increasing its virtual size to match and so was getting scrollbars as soon as it was made any smaller. This doesn't seem to happen with your image viewer, though, so it might have just been me doing something silly and I can't easily check now, so probably best to ignore this one unless it comes up again. > >I have to give the "wx-config --gl-libs" options as well as the "--libs" > >ones when linking. Otherwise I get things like > > This is bug is fixed now -- cvs head lets you give the "--with-opengl" > flag to configure. Hmm, but this only lets you specify globally whether you want to use OpenGL, right? What I'd want to be able to do is install a single copy of wxHaskell and use it to make either non-OpenGL or OpenGL programs. Currently if I have the ability to make OpenGL programs then any non-OpenGL programs I create will need to be linked against the GL libraries anyway. Perhaps wxHaskell should create a libwxc-gl-0.6.so too which contains the code for the OpenGL wxHaskell functionality to solve this? In the same way that we have libwx_gtk-2.4.so.0 and libwx_gtk_gl-2.4.so.0. Thanks Ian |