Re: List view : no scroll bar and maximum length ?
Julien Moutinho <[email protected]>
| Newsgroups | gmane.comp.lang.ocaml.lib.gtk |
|---|---|
| Message-ID | <20080204220421.GA28520@localhost> |
On Mon, Feb 04, 2008 at 10:01:48PM +0100, Adrien wrote: > Hi, Hi, > I've written a small mp3 player during the week-end, mainly in order > to check whether it was possible to write a light and fast one with > lablgtk (I miss foobar2000's interface under linux). > > I've encountered some problems, especially with list view (which the > biggest difference between a foobar ui and a winamp one : > http://foobar2000.org/screenshots/img/main-simple.png.html ) > > My interface looks like : http://ocaml.yaxm.org/files/blatere/pr11n.png > (1000 times the same file in order to see how it scaled) > > First, I don't have any scroll bar though my playlist is 1000 elements > long. I know there is the GRange module but I can't believe these > scroll bars are not automatic. Use a GBin.scrolled_window. % diff -u second_try.ml.old second_try.ml --- second_try.ml.old 2008-02-04 22:47:05.000000000 +0100 +++ second_try.ml 2008-02-04 22:55:02.000000000 +0100 @@ -39,7 +39,9 @@ let rank_column=playlist#add Gobject.Data.string let fileinfo_column=playlist#add Gobject.Data.string -let playlist_view=GTree.view ~packing:vbox#pack () +let sw = GBin.scrolled_window () ~packing: vbox#add + ~hpolicy: `AUTOMATIC ~vpolicy: `AUTOMATIC +let playlist_view=GTree.view () ~packing:sw#add let _=playlist_view#append_column (GTree.view_column ~title:"Rank" ~renderer:(GTree.cell_renderer_text [], ["text", rank_column]) ()) let _=playlist_view#append_column (GTree.view_column ~title:"File Info" ~renderer:(GTree.cell_renderer_text [], ["text", fileinfo_column]) ()) > Second, if I create a 2000 elements-long playlist, my program crashes > with the following message: > The program 'blatère' received an X Window System error. > This probably reflects a bug in the program. > The error was 'BadAlloc (insufficient resources for operation)'. > (Details: serial 462 error_code 11 request_code 53 minor_code 0) > (Note to programmers: normally, X errors are reported asynchronously; > that is, you will receive the error a while after causing it. > To debug your program, run it with the --sync command line > option to change this behavior. You can then get a meaningful > backtrace from your debugger if you break on the gdk_x_error() function.) It should not crash any longer once the scroll bar has been added. HTH.