/src/wrappers/gtk/library/editing_started_callback.e
Specman e | 84 lines | 65 code | 16 blank | 3 comment | 4 complexity | 4227b40cbcd2e7c00741e749c8789393 MD5 | raw file
1indexing 2 description: "Generic callback for the editing-started signal" 3 copyright: "[ 4 Copyright (C) 2006 eiffel-libraries team, GTK+ team and others 5 6 This library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Lesser General Public License 8 as published by the Free Software Foundation; either version 2.1 of 9 the License, or (at your option) any later version. 10 11 This library is distributed in the hope that it will be useful, but 12 WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Lesser General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public 17 License along with this library; if not, write to the Free Software 18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19 02110-1301 USA 20 ]" 21 license: "LGPL v2 or later" 22 date: "$Date:$" 23 revision "$Revision:$" 24 25class EDITING_STARTED_CALLBACK 26 27inherit CALLBACK redefine object end 28 29insert G_OBJECT_FACTORY [GTK_CELL_RENDERER] 30 31creation make 32 33feature 34 object: GTK_CELL_RENDERER 35 36feature 37 callback (editable_ptr, path_ptr, instance: POINTER) is 38 local 39 cell_editable_factory: G_OBJECT_FACTORY[GTK_CELL_EDITABLE] 40 an_editable: GTK_CELL_EDITABLE 41 a_path: STRING 42 do 43 debug print ("Callback: instance=") print (instance.to_string) print ("%N") end 44 -- The following is written with the implicit requirement 45 -- that the button is actually created bu the Eiffel 46 -- application. 47 object := wrapper(instance) 48 49 an_editable := cell_editable_factory.wrapper(editable_ptr) 50 51 if path_ptr.is_not_null then create {CONST_STRING} a_path.from_external(path_ptr) end 52 procedure.call ([an_editable, a_path, object]) 53 end 54 55 callback_pointer: POINTER is 56 do 57 Result := get_callback_pointer ($callback) 58 ensure 59 Result.is_not_null 60 end 61 62 connect (an_object: GTK_CELL_RENDERER; a_procedure: PROCEDURE [ANY, TUPLE[GTK_CELL_EDITABLE, 63 STRING, GTK_CELL_RENDERER]]) is 64 do 65 debug 66 print ("EDITING_STARTED_CALLBACK.connect (an_object=") print (an_object.to_pointer.to_string) 67 print (" an_object.handle=") print (an_object.handle.to_string) 68 print (") Current=") print (to_pointer.to_string) 69 print (" Current.handle=") print (handle.to_string) 70 print ("%N") 71 end 72 73 handler_id := g_signal_connect_closure (an_object.handle, 74 signal_name.to_external, 75 handle, 76 0 -- i.e. call it before default handler 77 ) 78 procedure:=a_procedure 79 end 80 81 signal_name: STRING is "editing-started" 82 83 procedure: PROCEDURE [ANY, TUPLE[GTK_CELL_EDITABLE, STRING, GTK_CELL_RENDERER]] 84end