/src/wrappers/gtk/library/toggled_callback.e
Specman e | 81 lines | 62 code | 14 blank | 5 comment | 3 complexity | ef3efbeaa85a1c73c43e063aaf5a6440 MD5 | raw file
1indexing 2 description: "Generic callback for the toggled signal" 3 copyright: "[ 4 Copyright (C) 2006 Paolo redaelli, 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 TOGGLED_CALLBACK [W -> G_OBJECT] 26 27inherit 28 CALLBACK redefine object end 29 30insert 31 G_OBJECT_FACTORY [W] 32 33creation make 34 35feature 36 object: W 37 38feature 39 callback (instance: POINTER) is 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 the button is actually created bu the Eiffel 46 -- application. 47 object := wrapper(instance) 48 -- The above line replaces "create object.from_external_pointer 49 -- (instance)" which continuosly creates new Eiffel wrappers 50 procedure.call ([object]) 51 end 52 53 callback_pointer: POINTER is 54 do 55 Result := get_callback_pointer ($callback) 56 ensure 57 Result.is_not_null 58 end 59 60 connect (an_object: W; a_procedure: PROCEDURE [ANY, TUPLE[W]]) is 61 do 62 debug 63 print ("TOGGLED_CALLBACK.connect (an_object=") print (an_object.to_pointer.to_string) 64 print (" an_object.handle=") print (an_object.handle.to_string) 65 print (") Current=") print (to_pointer.to_string) 66 print (" Current.handle=") print (handle.to_string) 67 print ("%N") 68 end 69 70 handler_id := g_signal_connect_closure (an_object.handle, 71 signal_name.to_external, 72 handle, 73 0 -- i.e. call it before default handler 74 ) 75 procedure:=a_procedure 76 end 77 78 signal_name: STRING is "toggled" 79 80 procedure: PROCEDURE [ANY, TUPLE[W]] 81end