]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/examples/clist.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20001129-0.1.0 / examples / clist.ml
1 (* $Id$ *)
2
3 open GMain
4
5 let main () =
6   let window = GWindow.window ~title:"CList example" ~width:300 ~height:150 () in
7   window#connect#destroy ~callback:Main.quit;
8
9   let vbox = GPack.vbox ~border_width:5 ~packing:window#add () in
10
11   let hbox = GPack.hbox ~packing:vbox#add () in
12   let sb =
13     GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) () in
14   let clist =
15     GList.clist ~titles:["Ingredients";"Amount"] ~shadow_type:`OUT
16       ~packing:hbox#add ~vadjustment:sb#adjustment () in
17   clist#connect#select_row ~callback:
18     begin fun ~row ~column ~event ->
19       let text = clist#cell_text row column in
20       Printf.printf "You selected row %d. More specifically you clicked in column %d, and the text in this cell is %s\n\n" row column text;
21       flush stdout
22     end;
23
24   let hbox = GPack.hbox ~packing:vbox#pack () in
25
26   let button_add = GButton.button ~label:"Add List" ~packing:hbox#add () in
27   button_add#connect#clicked ~callback:
28     begin fun () ->
29       List.iter ~f:(fun t -> ignore (clist#append t))
30         [ ["Milk"; "3 Oz"];
31           ["Water"; "6 l"];
32           ["Carrots"; "2"];
33           ["Snakes"; "55"] ]
34     end;
35
36   let button_clear = GButton.button ~label:"Clear List" ~packing:hbox#add () in
37   button_clear#connect#clicked ~callback:clist#clear;
38
39   let button_hide_show =
40     GButton.button ~label:"Hide/Show titles" ~packing:hbox#add () in
41   let flag = ref false in
42   button_hide_show#connect#clicked ~callback:
43     begin fun () ->
44       clist#set_titles_show !flag;
45       flag := not !flag
46     end;
47
48   window#show ();
49   Main.main ()
50
51 let _ = main ()