2008-05-02 Mike Kestner <mkestner@novell.com>

* atk/Atk.metadata: hide Global.AddGlobalEventListener.
	* atk/Global.custom: AddGlobalEventListener impl.
	* atk/Util.custom: AddGlobalEventListenerHandler prop.
	[Fixes the rest of #365437]

svn path=/trunk/gtk-sharp/; revision=102333
This commit is contained in:
Mike Kestner 2008-05-02 15:13:35 +00:00
parent 50358ea1b0
commit 9ff6fc7588
5 changed files with 73 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2008-05-02 Mike Kestner <mkestner@novell.com>
* atk/Atk.metadata: hide Global.AddGlobalEventListener.
* atk/Global.custom: AddGlobalEventListener impl.
* atk/Util.custom: AddGlobalEventListenerHandler prop.
[Fixes the rest of #365437]
2008-05-01 Mike Kestner <mkestner@novell.com>
* gtk/gtk-api-2.12.raw: regen, removes some private printing API.

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?>
<metadata>
<attr path="/api/namespace/class[@cname='AtkGlobal']/method[@name='AddGlobalEventListener']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='AtkState_']" name="name">StateManager</attr>
<attr path="/api/namespace/interface[@cname='AtkComponent']/*[@name='RefAccessibleAtPoint']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='AtkDocument']/method[@name='GetAttributes']/return-type" name="element_type">AtkAttribute*</attr>

35
atk/Global.custom Normal file
View File

@ -0,0 +1,35 @@
// Global.custom - Atk Global class customizations
//
// Author: Mike Kestner <mkestner@novell.com>
//
// Copyright (c) 2008 Novell, Inc.
//
// This code is inserted after the automatically generated code.
//
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of version 2 of the Lesser GNU General
// Public License as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA.
[DllImport("libatk-1.0-0.dll")]
static extern uint atk_add_global_event_listener (GLib.Signal.EmissionHookNative hook, IntPtr event_type);
public static uint AddGlobalEventListener (GLib.Signal.EmissionHook hook, string event_type)
{
IntPtr native_event_type = GLib.Marshaller.StringToPtrGStrdup (event_type);
uint id = atk_add_global_event_listener (new GLib.Signal.EmissionHookMarshaler (hook).Callback, native_event_type);
GLib.Marshaller.Free (native_event_type);
return id;
}

View File

@ -8,6 +8,7 @@ references = ../glib/glib-sharp.dll
sources =
customs = \
Global.custom \
Misc.custom \
Object.custom \
Util.custom

View File

@ -22,6 +22,35 @@
// Boston, MA 02111-1307, USA.
[GLib.CDeclCallback]
delegate uint AddGlobalEventListenerNativeDelegate (GLib.Signal.EmissionHookNative hook, IntPtr event_type);
static AddGlobalEventListenerDelegate add_global_event_listener_handler;
static AddGlobalEventListenerNativeDelegate add_global_event_listener_callback;
static uint AddGlobalEventListenerCallback (GLib.Signal.EmissionHookNative hook, IntPtr event_type)
{
try {
return add_global_event_listener_handler (new GLib.Signal.EmissionHookMarshaler (hook, IntPtr.Zero).Invoker, GLib.Marshaller.Utf8PtrToString (event_type));
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
return 0;
}
public delegate uint AddGlobalEventListenerDelegate (GLib.Signal.EmissionHook hook, string event_type);
[DllImport("atksharpglue-2")]
static extern void atksharp_util_override_add_global_event_listener (AddGlobalEventListenerNativeDelegate cb);
public static AddGlobalEventListenerDelegate AddGlobalEventListenerHandler {
set {
add_global_event_listener_handler = value;
if (add_global_event_listener_callback == null)
add_global_event_listener_callback = new AddGlobalEventListenerNativeDelegate (AddGlobalEventListenerCallback);
atksharp_util_override_add_global_event_listener (add_global_event_listener_callback);
}
}
[GLib.CDeclCallback]
delegate void RemoveListenerNativeDelegate (uint listener_id);