/src/wrappers/gtk/library/edited_callback.e
Specman e | 88 lines | 68 code | 16 blank | 4 comment | 5 complexity | 479fe349ed4991ecd39cdb4c9f83df68 MD5 | raw file
1indexing 2 description: "Generic callback for the edited 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 EDITED_CALLBACK 26 27inherit CALLBACK redefine object end 28 29insert G_OBJECT_FACTORY [GTK_CELL_RENDERER_TEXT] 30 31creation make 32 33feature 34 object: GTK_CELL_RENDERER_TEXT 35 36feature 37 callback (arg1, arg2, instance: POINTER) is 38 local 39 str1, str2: STRING 40 do 41 debug 42 print ("Callback: instance=") print (instance.to_string) print ("%N") 43 end 44 -- The following is written with the implicit requirement 45 -- that object actually has an Eiffel wrapper. 46 object := wrapper(instance) 47 48 if arg1.is_not_null then 49 -- FIXME: are we leaving a mem leak by doing a copy? :-/ 50 create str1.from_external_copy (arg1) 51 end 52 if arg2.is_not_null then 53 -- FIXME: are we leaving a mem leak by doing a copy? :-/ 54 create str2.from_external_copy (arg2) 55 end 56 procedure.call ([str1, str2, object]) 57 end 58 59 callback_pointer: POINTER is 60 do 61 Result := get_callback_pointer ($callback) 62 ensure 63 Result.is_not_null 64 end 65 66 connect (an_object: GTK_CELL_RENDERER_TEXT; a_procedure: PROCEDURE [ANY, TUPLE[STRING, STRING, GTK_CELL_RENDERER_TEXT]]) is 67 do 68 debug 69 print ("EDITED_CALLBACK.connect (an_object=") print (an_object.to_pointer.to_string) 70 print (" an_object.handle=") print (an_object.handle.to_string) 71 print (") Current=") print (to_pointer.to_string) 72 print (" Current.handle=") print (handle.to_string) 73 print ("%N") 74 end 75 76 handler_id := g_signal_connect_closure (an_object.handle, 77 signal_name.to_external, 78 handle, 79 0 -- i.e. call it before default handler 80 ) 81 procedure:=a_procedure 82 end 83 84 signal_name: STRING is "edited" 85 86 procedure: PROCEDURE [ANY, TUPLE[STRING, STRING, GTK_CELL_RENDERER_TEXT]] 87 88end