Delivered-To: garrigue at math.nagoya-u.ac.jp Delivered-To: lablgtk at yquem.inria.fr Message-ID: <4C07C1B0.9050408 at fastwebnet.it> Date: Thu, 03 Jun 2010 16:52:32 +0200 From: "Stalkern 2 (Fastweb)" MIME-Version: 1.0 To: lablgtk at yquem.inria.fr Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Subject: [Lablgtk] Question about how to start editing GTree.cell_renderer_text's in some easy and safe way... Status: RO Hello to everybody! I was looking at the tree.ml example provided with lablgtk2 and I was modifying it so to get cell editing just as soon as cursor is moved to an editable cell, without needing to activate the row or press the [Space] key or the [Return] key. Here is the code: ------------------------------- tree_testForCellEditing1.ml ------------------------------- open StdLabels open Gobject.Data let cols = new GTree.column_list let title = cols#add string let author = cols#add string let checked = cols#add boolean let authorCellrenderer = (GTree.cell_renderer_text[]) (*set 'author' cell as editable*) let () = (authorCellrenderer#set_properties [ (`EDITABLE true) ]) let create_model () = let store = GTree.tree_store cols in let row = store#append () in store#set ~row ~column:title "The Arch of Computer Programming"; store#set ~row ~column:author "Donald Knots"; store#set ~row ~column:checked false; let row = store#append () in store#set ~row ~column:title "The Chart of Programmers' Computing"; store#set ~row ~column:author "A. N. Onymous"; store#set ~row ~column:checked false; let row = store#append () in store#set ~row ~column:title "The Bar of Histeric Scripting"; store#set ~row ~column:author "Gerald Fitz"; store#set ~row ~column:checked false; (*store#set ~row:(store#append ~parent:row ()) ~column:title "Volume 1: Fundamental Algorithms"; store#set ~row:(store#append ~parent:row ()) ~column:title "Volume 2: Seminumerical Algorithms"; store#set ~row:(store#append ~parent:row ()) ~column:title "Volume 3: Sorting and Searching Algorithms";*) store let main () = let model = create_model () in let window = GWindow.window () in window#connect#destroy ~callback:GMain.quit; let view = GTree.view ~model ~packing:window#add () in let col = GTree.view_column ~title:"Title" () ~renderer:(GTree.cell_renderer_text[], ["text",title]) in view#append_column col; let col = GTree.view_column ~title:"Author" () ~renderer:(authorCellrenderer, ["text",author]) in view#append_column col; let col = GTree.view_column ~title:"Checked-out" () ~renderer:(GTree.cell_renderer_text[], ["text",checked]) in view#append_column col; view#selection#connect#after#changed ~callback: begin fun () -> prerr_endline "selection changed"; List.iter view#selection#get_selected_rows ~f: ( fun p -> ( prerr_endline (GtkTree.TreePath.to_string p); view#set_cursor ~cell:authorCellrenderer ~edit:true (*start_editing?*) p (view#get_column 1) ) ) end; window#show (); GMain.main () let () = main () ------------------------------- If I run the above code with $ lablgtk2 tree_testForCellEditing1.ml I don't see *any* editing "just" triggered by the selection_changed callback. Indeed, I notice *no difference* between the behaviour obtained writing --8<----8<----8<----8<----8<----8<---- view#set_cursor ~cell:authorCellrenderer ~edit:false p (view#get_column 1) ---->8---->8---->8---->8---->8---->8-- and the one obtained writing --8<----8<----8<----8<----8<----8<---- view#set_cursor ~cell:authorCellrenderer ~edit:true p (view#get_column 1) ---->8---->8---->8---->8---->8---->8-- I've been noticing this using lablgtk 2.10.1 with glib-2.0 version 2.20.0 and gtk+-2.0 version 2.14.7. I've been reading around for days, but I did not find anything about this behaviour. One issue with missing the editing keys is that "input methods" windows pop up, take the focus and then I end up filling something in the outer space, far away from my app, with no hope of coming back ... Any idea? Thank you in advance for any hint! Ernesto Torresin _______________________________________________ Lablgtk mailing list Lablgtk@yquem.inria.fr http://yquem.inria.fr/cgi-bin/mailman/listinfo/lablgtk