mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2025-02-28 20:16:52 +00:00
2009-08-07 Mike Kestner <mkestner@novell.com>
* configure.in.in: add new dir and autofu for it. * Makefile.am: add new dir * gapi/*: a small extension method library to add generation-related api to GType in 2.0. Access it with -pkg:gapi-2.0-compat to pick up the needed refs. * generator/GObjectVM.cs: generate new GType getter methods. * generator/ObjectGen.cs: generate new GType getter methods. * glib/GType.cs: change a few props to methods to make them extension method friendly for 2.0 compat. * glib/Object.cs: use new GType getter methods. * glib/Value.cs: use new GType getter methods. * gtk/Widget.custom: use new GetClassPtr method. svn path=/trunk/gtk-sharp/; revision=139609
This commit is contained in:
parent
10cae1b1cb
commit
7db633218f
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
||||||
|
2009-08-07 Mike Kestner <mkestner@novell.com>
|
||||||
|
|
||||||
|
* configure.in.in: add new dir and autofu for it.
|
||||||
|
* Makefile.am: add new dir
|
||||||
|
* gapi/*: a small extension method library to add generation-related
|
||||||
|
api to GType in 2.0. Access it with -pkg:gapi-2.0-compat to pick up
|
||||||
|
the needed refs.
|
||||||
|
* generator/GObjectVM.cs: generate new GType getter methods.
|
||||||
|
* generator/ObjectGen.cs: generate new GType getter methods.
|
||||||
|
* glib/GType.cs: change a few props to methods to make them extension
|
||||||
|
method friendly for 2.0 compat.
|
||||||
|
* glib/Object.cs: use new GType getter methods.
|
||||||
|
* glib/Value.cs: use new GType getter methods.
|
||||||
|
* gtk/Widget.custom: use new GetClassPtr method.
|
||||||
|
|
||||||
2009-08-07 Mike Kestner <mkestner@novell.com>
|
2009-08-07 Mike Kestner <mkestner@novell.com>
|
||||||
|
|
||||||
* generator/ObjectGen.cs: kill GType ctor generation.
|
* generator/ObjectGen.cs: kill GType ctor generation.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
SUBDIRS = sources generator parser glib gio cairo pango atk gdk gtk glade gtkdotnet sample doc
|
SUBDIRS = sources generator parser gapi glib gio cairo pango atk gdk gtk glade gtkdotnet sample doc
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
mono.snk \
|
mono.snk \
|
||||||
|
|
|
@ -167,6 +167,9 @@ AC_SUBST(GENERATED_SOURCES)
|
||||||
PKG_CHECK_MODULES(MONO_CAIRO, mono-cairo >= $MONO_REQUIRED_VERSION, enable_mono_cairo=no, enable_mono_cairo=yes)
|
PKG_CHECK_MODULES(MONO_CAIRO, mono-cairo >= $MONO_REQUIRED_VERSION, enable_mono_cairo=no, enable_mono_cairo=yes)
|
||||||
AC_SUBST(MONO_CAIRO_LIBS)
|
AC_SUBST(MONO_CAIRO_LIBS)
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(GLIBSHARP2, glib-sharp-2.0, enable_glib2_compat=yes, enable_glib2_compat=no)
|
||||||
|
AC_SUBST(GLIBSHARP2_LIBS)
|
||||||
|
|
||||||
GTK_REQUIRED_VERSION=@GTK_REQUIRED_VERSION@
|
GTK_REQUIRED_VERSION=@GTK_REQUIRED_VERSION@
|
||||||
GLIB_REQUIRED_VERSION=@GLIB_REQUIRED_VERSION@
|
GLIB_REQUIRED_VERSION=@GLIB_REQUIRED_VERSION@
|
||||||
|
|
||||||
|
@ -214,6 +217,7 @@ AM_CONDITIONAL(ENABLE_GLADE, test "x$enable_glade" = "xyes")
|
||||||
AM_CONDITIONAL(ENABLE_DOTNET, test "x$enable_dotnet" = "xyes")
|
AM_CONDITIONAL(ENABLE_DOTNET, test "x$enable_dotnet" = "xyes")
|
||||||
AM_CONDITIONAL(ENABLE_MONODOC, test "x$enable_monodoc" = "xyes")
|
AM_CONDITIONAL(ENABLE_MONODOC, test "x$enable_monodoc" = "xyes")
|
||||||
AM_CONDITIONAL(ENABLE_MONOGETOPTIONS, test "x$has_mono" = "xtrue")
|
AM_CONDITIONAL(ENABLE_MONOGETOPTIONS, test "x$has_mono" = "xtrue")
|
||||||
|
AM_CONDITIONAL(ENABLE_GLIBSHARP2_COMPAT, test "x$enable_glib2_compat" = "xyes")
|
||||||
|
|
||||||
AC_SUBST(CFLAGS)
|
AC_SUBST(CFLAGS)
|
||||||
|
|
||||||
|
@ -228,6 +232,8 @@ parser/Makefile
|
||||||
parser/gapi-3.0.pc
|
parser/gapi-3.0.pc
|
||||||
parser/gapi3-fixup
|
parser/gapi3-fixup
|
||||||
parser/gapi3-parser
|
parser/gapi3-parser
|
||||||
|
gapi/Makefile
|
||||||
|
gapi/gapi-2.0-compat.pc
|
||||||
generator/Makefile
|
generator/Makefile
|
||||||
generator/gapi3-codegen
|
generator/gapi3-codegen
|
||||||
glib/Makefile
|
glib/Makefile
|
||||||
|
|
6
gapi/AssemblyInfo.cs
Normal file
6
gapi/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
[assembly:AssemblyVersion("3.0.0.0")]
|
||||||
|
[assembly:AssemblyDelaySign(false)]
|
||||||
|
[assembly:AssemblyKeyFile("gtk-sharp.snk")]
|
94
gapi/GTypeExtensions.cs
Normal file
94
gapi/GTypeExtensions.cs
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
// Author: Mike Kestner <mkestner@novell.com>
|
||||||
|
//
|
||||||
|
// Copyright (c) 2009 Novell, Inc.
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace Gapi {
|
||||||
|
|
||||||
|
public static class GTypeExtensions {
|
||||||
|
|
||||||
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
|
static extern IntPtr g_type_class_peek (IntPtr gtype);
|
||||||
|
|
||||||
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
|
static extern IntPtr g_type_class_ref (IntPtr gtype);
|
||||||
|
|
||||||
|
public static IntPtr GetClassPtr (this GLib.GType gtype)
|
||||||
|
{
|
||||||
|
IntPtr klass = g_type_class_peek (gtype.Val);
|
||||||
|
if (klass == IntPtr.Zero)
|
||||||
|
klass = g_type_class_ref (gtype.Val);
|
||||||
|
return klass;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
|
static extern IntPtr g_type_parent (IntPtr type);
|
||||||
|
|
||||||
|
public static GLib.GType GetBaseType (this GLib.GType gtype)
|
||||||
|
{
|
||||||
|
IntPtr parent = g_type_parent (gtype.Val);
|
||||||
|
return parent == IntPtr.Zero ? GLib.GType.None : new GLib.GType (parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GLib.GType GetThresholdType (this GLib.GType gtype)
|
||||||
|
{
|
||||||
|
GLib.GType curr = gtype;
|
||||||
|
while (curr.ToString ().StartsWith ("__gtksharp_"))
|
||||||
|
curr = GetBaseType (curr);
|
||||||
|
return curr;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct GTypeQuery {
|
||||||
|
public IntPtr type;
|
||||||
|
public IntPtr type_name;
|
||||||
|
public uint class_size;
|
||||||
|
public uint instance_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
|
static extern void g_type_query (IntPtr type, out GTypeQuery query);
|
||||||
|
|
||||||
|
public static uint GetClassSize (this GLib.GType gtype)
|
||||||
|
{
|
||||||
|
GTypeQuery query;
|
||||||
|
g_type_query (gtype.Val, out query);
|
||||||
|
return query.class_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
static IntPtr ValFromInstancePtr (IntPtr handle)
|
||||||
|
{
|
||||||
|
if (handle == IntPtr.Zero)
|
||||||
|
return IntPtr.Zero;
|
||||||
|
|
||||||
|
// First field of instance is a GTypeClass*.
|
||||||
|
IntPtr klass = Marshal.ReadIntPtr (handle);
|
||||||
|
// First field of GTypeClass is a GType.
|
||||||
|
return Marshal.ReadIntPtr (klass);
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
|
static extern bool g_type_is_a (IntPtr type, IntPtr is_a_type);
|
||||||
|
|
||||||
|
public static bool IsInstance (this GLib.GType gtype, IntPtr raw)
|
||||||
|
{
|
||||||
|
return g_type_is_a (ValFromInstancePtr (raw), gtype.Val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
44
gapi/Makefile.am
Normal file
44
gapi/Makefile.am
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
if ENABLE_GLIBSHARP2_COMPAT
|
||||||
|
TARGET = $(ASSEMBLY)
|
||||||
|
else
|
||||||
|
TARGET =
|
||||||
|
endif
|
||||||
|
|
||||||
|
ASSEMBLY = $(ASSEMBLY_NAME).dll
|
||||||
|
ASSEMBLY_NAME = gapi-2.0-compat
|
||||||
|
noinst_DATA = $(TARGET)
|
||||||
|
|
||||||
|
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb gtk-sharp.snk
|
||||||
|
|
||||||
|
references = $(GLIBSHARP2_LIBS)
|
||||||
|
|
||||||
|
sources = \
|
||||||
|
AssemblyInfo.cs \
|
||||||
|
GTypeExtensions.cs
|
||||||
|
|
||||||
|
build_sources = $(addprefix $(srcdir)/, $(sources))
|
||||||
|
dist_sources = $(sources)
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(dist_sources) \
|
||||||
|
$(ASSEMBLY).config
|
||||||
|
|
||||||
|
gtk-sharp.snk: $(top_srcdir)/gtk-sharp.snk
|
||||||
|
cp $(top_srcdir)/gtk-sharp.snk .
|
||||||
|
|
||||||
|
$(ASSEMBLY): $(build_sources) gtk-sharp.snk
|
||||||
|
@rm -f $(ASSEMBLY).mdb
|
||||||
|
$(CSC) $(CSFLAGS) -unsafe -nowarn:0169,0612,0618 -out:$(ASSEMBLY) -target:library $(references) $(build_sources)
|
||||||
|
|
||||||
|
install-data-local:
|
||||||
|
@if test -n '$(TARGET)'; then \
|
||||||
|
echo "$(GACUTIL) /i $(ASSEMBLY) /f $(GACUTIL_FLAGS)"; \
|
||||||
|
$(GACUTIL) /i $(ASSEMBLY) /f $(GACUTIL_FLAGS) || exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall-local:
|
||||||
|
@if test -n '$(TARGET)'; then \
|
||||||
|
echo "$(GACUTIL) /u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS)"; \
|
||||||
|
$(GACUTIL) /u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS) || exit 1; \
|
||||||
|
fi
|
||||||
|
|
4
gapi/gapi-2.0-compat.dll.config
Normal file
4
gapi/gapi-2.0-compat.dll.config
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<configuration>
|
||||||
|
<dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.so.0" os="!windows" />
|
||||||
|
<dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.0.dylib" os="osx" />
|
||||||
|
</configuration>
|
10
gapi/gapi-2.0-compat.pc.in
Normal file
10
gapi/gapi-2.0-compat.pc.in
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
prefix=${pcfiledir}/../..
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
libdir=${exec_prefix}/lib
|
||||||
|
|
||||||
|
Name: GAPI 2.0 Compatibility library
|
||||||
|
Description: Provides extensions necessary for using gapi 3.0 with glib 2.0.
|
||||||
|
Version: @VERSION@
|
||||||
|
Libs: -r:${libdir}/mono/@PACKAGE_VERSION@/gapi-2.0-compat.dll
|
||||||
|
Requires: glib-sharp-2.0
|
||||||
|
|
|
@ -204,7 +204,7 @@ namespace GtkSharp.Generation {
|
||||||
|
|
||||||
this.GenerateMethodBody (sw, null);
|
this.GenerateMethodBody (sw, null);
|
||||||
// Find the first unmanaged ancestor
|
// Find the first unmanaged ancestor
|
||||||
sw.WriteLine ("\t\t\t{0}NativeDelegate unmanaged = GetClassStruct (this.LookupGType ().ThresholdType, true).{0};", this.Name);
|
sw.WriteLine ("\t\t\t{0}NativeDelegate unmanaged = GetClassStruct (this.LookupGType ().GetThresholdType (), true).{0};", this.Name);
|
||||||
sw.Write ("\t\t\tif (unmanaged == null) ");
|
sw.Write ("\t\t\tif (unmanaged == null) ");
|
||||||
if (parms.HasOutParam)
|
if (parms.HasOutParam)
|
||||||
sw.WriteLine ("throw new InvalidOperationException (\"No base method to invoke\");");
|
sw.WriteLine ("throw new InvalidOperationException (\"No base method to invoke\");");
|
||||||
|
@ -286,7 +286,7 @@ namespace GtkSharp.Generation {
|
||||||
glue.WriteLine ();
|
glue.WriteLine ();
|
||||||
|
|
||||||
GenerateOverrideBody (sw);
|
GenerateOverrideBody (sw);
|
||||||
sw.WriteLine ("\t\t\t{0} (gtype.ClassPtr, callback);", glue_name);
|
sw.WriteLine ("\t\t\t{0} (gtype.GetClassPtr (), callback);", glue_name);
|
||||||
sw.WriteLine ("\t\t}");
|
sw.WriteLine ("\t\t}");
|
||||||
sw.WriteLine ();
|
sw.WriteLine ();
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ namespace GtkSharp.Generation {
|
||||||
|
|
||||||
GenerateMethodBody (sw, null);
|
GenerateMethodBody (sw, null);
|
||||||
Body.Initialize (gen_info, false, false, String.Empty);
|
Body.Initialize (gen_info, false, false, String.Empty);
|
||||||
string glue_call_string = "this.LookupGType ().ThresholdType.ClassPtr";
|
string glue_call_string = "this.LookupGType ().GetThresholdType ().GetClassPtr ()";
|
||||||
if (!IsStatic)
|
if (!IsStatic)
|
||||||
glue_call_string += ", Handle";
|
glue_call_string += ", Handle";
|
||||||
if (parms.Count > 0)
|
if (parms.Count > 0)
|
||||||
|
|
|
@ -302,7 +302,7 @@ namespace GtkSharp.Generation {
|
||||||
if (cs_parent == "")
|
if (cs_parent == "")
|
||||||
sw.WriteLine ("\t\tstatic uint class_offset = 0;");
|
sw.WriteLine ("\t\tstatic uint class_offset = 0;");
|
||||||
else
|
else
|
||||||
sw.WriteLine ("\t\tstatic uint class_offset = ((GLib.GType) typeof ({0})).ClassSize;", cs_parent);
|
sw.WriteLine ("\t\tstatic uint class_offset = ((GLib.GType) typeof ({0})).GetClassSize ();", cs_parent);
|
||||||
sw.WriteLine ("\t\tstatic Hashtable class_structs;");
|
sw.WriteLine ("\t\tstatic Hashtable class_structs;");
|
||||||
sw.WriteLine ();
|
sw.WriteLine ();
|
||||||
sw.WriteLine ("\t\tstatic {0} GetClassStruct (GLib.GType gtype, bool use_cache)", class_struct_name);
|
sw.WriteLine ("\t\tstatic {0} GetClassStruct (GLib.GType gtype, bool use_cache)", class_struct_name);
|
||||||
|
@ -313,7 +313,7 @@ namespace GtkSharp.Generation {
|
||||||
sw.WriteLine ("\t\t\tif (use_cache && class_structs.Contains (gtype))");
|
sw.WriteLine ("\t\t\tif (use_cache && class_structs.Contains (gtype))");
|
||||||
sw.WriteLine ("\t\t\t\treturn ({0}) class_structs [gtype];", class_struct_name);
|
sw.WriteLine ("\t\t\t\treturn ({0}) class_structs [gtype];", class_struct_name);
|
||||||
sw.WriteLine ("\t\t\telse {");
|
sw.WriteLine ("\t\t\telse {");
|
||||||
sw.WriteLine ("\t\t\t\tIntPtr class_ptr = new IntPtr (gtype.ClassPtr.ToInt64 () + class_offset);");
|
sw.WriteLine ("\t\t\t\tIntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);");
|
||||||
sw.WriteLine ("\t\t\t\t{0} class_struct = ({0}) Marshal.PtrToStructure (class_ptr, typeof ({0}));", class_struct_name);
|
sw.WriteLine ("\t\t\t\t{0} class_struct = ({0}) Marshal.PtrToStructure (class_ptr, typeof ({0}));", class_struct_name);
|
||||||
sw.WriteLine ("\t\t\t\tif (use_cache)");
|
sw.WriteLine ("\t\t\t\tif (use_cache)");
|
||||||
sw.WriteLine ("\t\t\t\t\tclass_structs.Add (gtype, class_struct);");
|
sw.WriteLine ("\t\t\t\t\tclass_structs.Add (gtype, class_struct);");
|
||||||
|
@ -323,7 +323,7 @@ namespace GtkSharp.Generation {
|
||||||
sw.WriteLine ();
|
sw.WriteLine ();
|
||||||
sw.WriteLine ("\t\tstatic void OverrideClassStruct (GLib.GType gtype, {0} class_struct)", class_struct_name);
|
sw.WriteLine ("\t\tstatic void OverrideClassStruct (GLib.GType gtype, {0} class_struct)", class_struct_name);
|
||||||
sw.WriteLine ("\t\t{");
|
sw.WriteLine ("\t\t{");
|
||||||
sw.WriteLine ("\t\t\tIntPtr class_ptr = new IntPtr (gtype.ClassPtr.ToInt64 () + class_offset);");
|
sw.WriteLine ("\t\t\tIntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);");
|
||||||
sw.WriteLine ("\t\t\tMarshal.StructureToPtr (class_struct, class_ptr, false);");
|
sw.WriteLine ("\t\t\tMarshal.StructureToPtr (class_struct, class_ptr, false);");
|
||||||
sw.WriteLine ("\t\t}");
|
sw.WriteLine ("\t\t}");
|
||||||
sw.WriteLine ();
|
sw.WriteLine ();
|
||||||
|
|
|
@ -285,41 +285,33 @@ namespace GLib {
|
||||||
return Marshaller.Utf8PtrToString (g_type_name (val));
|
return Marshaller.Utf8PtrToString (g_type_name (val));
|
||||||
}
|
}
|
||||||
|
|
||||||
public IntPtr ClassPtr {
|
public IntPtr GetClassPtr ()
|
||||||
get {
|
{
|
||||||
IntPtr klass = g_type_class_peek (val);
|
IntPtr klass = g_type_class_peek (val);
|
||||||
if (klass == IntPtr.Zero)
|
if (klass == IntPtr.Zero)
|
||||||
klass = g_type_class_ref (val);
|
klass = g_type_class_ref (val);
|
||||||
return klass;
|
return klass;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GType BaseType {
|
public GType GetBaseType ()
|
||||||
get {
|
{
|
||||||
IntPtr parent = g_type_parent (this.Val);
|
IntPtr parent = g_type_parent (this.Val);
|
||||||
if (parent == IntPtr.Zero)
|
return parent == IntPtr.Zero ? GType.None : new GType (parent);
|
||||||
return GType.None;
|
|
||||||
else
|
|
||||||
return new GType (parent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GType ThresholdType {
|
public GType GetThresholdType ()
|
||||||
get {
|
{
|
||||||
GLib.GType curr_type = this;
|
GType curr_type = this;
|
||||||
while (curr_type.ToString ().StartsWith ("__gtksharp_")) {
|
while (curr_type.ToString ().StartsWith ("__gtksharp_"))
|
||||||
curr_type = curr_type.BaseType;
|
curr_type = curr_type.GetBaseType ();
|
||||||
}
|
return curr_type;
|
||||||
return curr_type;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public uint ClassSize {
|
public uint GetClassSize ()
|
||||||
get {
|
{
|
||||||
GTypeQuery query;
|
GTypeQuery query;
|
||||||
g_type_query (this.Val, out query);
|
g_type_query (this.Val, out query);
|
||||||
return query.class_size;
|
return query.class_size;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void EnsureClass ()
|
internal void EnsureClass ()
|
||||||
|
|
|
@ -211,7 +211,7 @@ namespace GLib {
|
||||||
|
|
||||||
static void OverridePropertyHandlers (GType gtype, GetPropertyDelegate get_cb, SetPropertyDelegate set_cb)
|
static void OverridePropertyHandlers (GType gtype, GetPropertyDelegate get_cb, SetPropertyDelegate set_cb)
|
||||||
{
|
{
|
||||||
IntPtr class_ptr = gtype.ClassPtr;
|
IntPtr class_ptr = gtype.GetClassPtr ();
|
||||||
GObjectClass klass = (GObjectClass) Marshal.PtrToStructure (class_ptr, typeof (GObjectClass));
|
GObjectClass klass = (GObjectClass) Marshal.PtrToStructure (class_ptr, typeof (GObjectClass));
|
||||||
klass.get_prop_cb = get_cb;
|
klass.get_prop_cb = get_cb;
|
||||||
klass.set_prop_cb = set_cb;
|
klass.set_prop_cb = set_cb;
|
||||||
|
@ -223,7 +223,7 @@ namespace GLib {
|
||||||
|
|
||||||
static IntPtr RegisterProperty (GType type, string name, string nick, string blurb, uint property_id, GType property_type, bool can_read, bool can_write)
|
static IntPtr RegisterProperty (GType type, string name, string nick, string blurb, uint property_id, GType property_type, bool can_read, bool can_write)
|
||||||
{
|
{
|
||||||
IntPtr declaring_class = type.ClassPtr;
|
IntPtr declaring_class = type.GetClassPtr ();
|
||||||
ParamSpec pspec = new ParamSpec (name, nick, blurb, property_type, can_read, can_write);
|
ParamSpec pspec = new ParamSpec (name, nick, blurb, property_type, can_read, can_write);
|
||||||
|
|
||||||
g_object_class_install_property (declaring_class, property_id, pspec.Handle);
|
g_object_class_install_property (declaring_class, property_id, pspec.Handle);
|
||||||
|
|
|
@ -553,7 +553,7 @@ namespace GLib {
|
||||||
void InitForProperty (GType gtype, string name)
|
void InitForProperty (GType gtype, string name)
|
||||||
{
|
{
|
||||||
IntPtr p_name = Marshaller.StringToPtrGStrdup (name);
|
IntPtr p_name = Marshaller.StringToPtrGStrdup (name);
|
||||||
IntPtr spec_ptr = g_object_class_find_property (gtype.ClassPtr, p_name);
|
IntPtr spec_ptr = g_object_class_find_property (gtype.GetClassPtr (), p_name);
|
||||||
Marshaller.Free (p_name);
|
Marshaller.Free (p_name);
|
||||||
|
|
||||||
if (spec_ptr == IntPtr.Zero)
|
if (spec_ptr == IntPtr.Zero)
|
||||||
|
|
|
@ -251,7 +251,7 @@ static void ConnectSetScrollAdjustments (GLib.GType gtype)
|
||||||
SetScrollAdjustmentsMarshalCallback = new ClosureMarshal (SetScrollAdjustmentsMarshal_cb);
|
SetScrollAdjustmentsMarshalCallback = new ClosureMarshal (SetScrollAdjustmentsMarshal_cb);
|
||||||
|
|
||||||
uint signal_id = RegisterSignal ("set_scroll_adjustments", gtype, GLib.Signal.Flags.RunLast, GLib.GType.None, new GLib.GType [] {Adjustment.GType, Adjustment.GType}, SetScrollAdjustmentsMarshalCallback);
|
uint signal_id = RegisterSignal ("set_scroll_adjustments", gtype, GLib.Signal.Flags.RunLast, GLib.GType.None, new GLib.GType [] {Adjustment.GType, Adjustment.GType}, SetScrollAdjustmentsMarshalCallback);
|
||||||
gtksharp_widget_class_set_set_scroll_adjustments_signal (gtype.ClassPtr, signal_id);
|
gtksharp_widget_class_set_set_scroll_adjustments_signal (gtype.GetClassPtr (), signal_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
[GLib.DefaultSignalHandler (Type=typeof (Gtk.Widget), ConnectionMethod="ConnectSetScrollAdjustments")]
|
[GLib.DefaultSignalHandler (Type=typeof (Gtk.Widget), ConnectionMethod="ConnectSetScrollAdjustments")]
|
||||||
|
@ -286,7 +286,7 @@ static void ConnectActivate (GLib.GType gtype)
|
||||||
ActivateMarshalCallback = new ClosureMarshal (ActivateMarshal_cb);
|
ActivateMarshalCallback = new ClosureMarshal (ActivateMarshal_cb);
|
||||||
|
|
||||||
uint signal_id = RegisterSignal ("activate_signal", gtype, GLib.Signal.Flags.RunLast, GLib.GType.None, new GLib.GType [0], ActivateMarshalCallback);
|
uint signal_id = RegisterSignal ("activate_signal", gtype, GLib.Signal.Flags.RunLast, GLib.GType.None, new GLib.GType [0], ActivateMarshalCallback);
|
||||||
gtksharp_widget_class_set_activate_signal (gtype.ClassPtr, signal_id);
|
gtksharp_widget_class_set_activate_signal (gtype.GetClassPtr (), signal_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
[GLib.DefaultSignalHandler (Type=typeof (Gtk.Widget), ConnectionMethod="ConnectActivate")]
|
[GLib.DefaultSignalHandler (Type=typeof (Gtk.Widget), ConnectionMethod="ConnectActivate")]
|
||||||
|
@ -393,7 +393,7 @@ static void ClassInit (GLib.GType gtype, Type t)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GLib.SList binding_args = new GLib.SList (new object[] {arg}, typeof (GtkBindingArg), false, false);
|
GLib.SList binding_args = new GLib.SList (new object[] {arg}, typeof (GtkBindingArg), false, false);
|
||||||
gtk_binding_entry_add_signall (gtk_binding_set_by_class (gtype.ClassPtr), (uint) attr.Key, attr.Mod, native_signame, binding_args.Handle);
|
gtk_binding_entry_add_signall (gtk_binding_set_by_class (gtype.GetClassPtr ()), (uint) attr.Key, attr.Mod, native_signame, binding_args.Handle);
|
||||||
binding_args.Dispose ();
|
binding_args.Dispose ();
|
||||||
}
|
}
|
||||||
GLib.Marshaller.Free (native_signame);
|
GLib.Marshaller.Free (native_signame);
|
||||||
|
@ -422,7 +422,7 @@ internal GLib.Value StyleGetPropertyValue (string property_name)
|
||||||
{
|
{
|
||||||
IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (property_name);
|
IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (property_name);
|
||||||
try {
|
try {
|
||||||
IntPtr pspec_ptr = gtk_widget_class_find_style_property (this.LookupGType ().ClassPtr, native_name);
|
IntPtr pspec_ptr = gtk_widget_class_find_style_property (this.LookupGType ().GetClassPtr (), native_name);
|
||||||
if (pspec_ptr == IntPtr.Zero)
|
if (pspec_ptr == IntPtr.Zero)
|
||||||
throw new ArgumentException (String.Format ("Cannot find style property \"{0}\"", property_name));
|
throw new ArgumentException (String.Format ("Cannot find style property \"{0}\"", property_name));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue