/src/wrappers/gtk/library/drag_motion_callback.e
Specman e | 81 lines | 65 code | 16 blank | 0 comment | 3 complexity | 92821bd06e90a6d70d1b40c71e4c89ac MD5 | raw file
1indexing 2 description: "Generic callback for the drag-motion 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 DRAG_MOTION_CALLBACK 26 27inherit CALLBACK redefine object end 28 29insert G_OBJECT_FACTORY [GTK_WIDGET] 30 31creation make 32 33feature 34 object: GTK_WIDGET 35 36feature 37 callback (drag_context_ptr: POINTER; x, y, time: INTEGER; instance: POINTER): INTEGER is 38 local drag_context: GDK_DRAG_CONTEXT 39 do 40 debug print ("Callback: instance=") print (instance.to_string) print ("%N") end 41 check 42 instance.is_not_null 43 drag_context_ptr.is_not_null 44 end 45 object := wrapper(instance) 46 create drag_context.secondary_wrapper_from (drag_context_ptr) 47 48 Result := function.item ([drag_context, x, y, time, object]).to_integer 49 end 50 51 callback_pointer: POINTER is 52 do 53 Result := get_callback_pointer ($callback) 54 ensure 55 Result.is_not_null 56 end 57 58 connect (an_object: GTK_WIDGET; a_function: FUNCTION [ANY, TUPLE [GDK_DRAG_CONTEXT, INTEGER, INTEGER, 59 INTEGER, GTK_WIDGET], BOOLEAN]) is 60 do 61 debug 62 print ("DRAG_MOTION_CALLBACK.connect (an_object=") print (an_object.to_pointer.to_string) 63 print (" an_object.handle=") print (an_object.handle.to_string) 64 print (") Current=") print (to_pointer.to_string) 65 print (" Current.handle=") print (handle.to_string) 66 print ("%N") 67 end 68 69 handler_id := g_signal_connect_closure (an_object.handle, 70 signal_name.to_external, 71 handle, 72 0 -- i.e. call it before default handler 73 ) 74 function:=a_function 75 end 76 77 signal_name: STRING is "drag-motion" 78 79 function: FUNCTION [ANY, TUPLE [GDK_DRAG_CONTEXT, INTEGER, INTEGER, INTEGER, GTK_WIDGET], BOOLEAN] 80 81end