2009-08-30 Christian Hoff <christian_hoff@gmx.net>
* gtk/Object.custom: Deglue the floating reference API. We should consider moving all that stuff to GInitiallyUnowned as Gtk+ did several releases ago. svn path=/trunk/gtk-sharp/; revision=140940
This commit is contained in:
parent
7552545b46
commit
33fd1cbece
4 changed files with 21 additions and 60 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2009-08-30 Christian Hoff <christian_hoff@gmx.net>
|
||||||
|
|
||||||
|
* gtk/Object.custom: Deglue the floating reference API.
|
||||||
|
We should consider moving all that stuff to GInitiallyUnowned
|
||||||
|
as Gtk+ did several releases ago.
|
||||||
|
|
||||||
2009-08-30 Christian Hoff <christian_hoff@gmx.net>
|
2009-08-30 Christian Hoff <christian_hoff@gmx.net>
|
||||||
|
|
||||||
* gtk/StatusIcon.custom: Use managed code to pass the address of
|
* gtk/StatusIcon.custom: Use managed code to pass the address of
|
||||||
|
|
|
@ -132,18 +132,26 @@
|
||||||
InternalDestroyed -= NativeDestroyHandler;
|
InternalDestroyed -= NativeDestroyHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
[DllImport("gtksharpglue-2")]
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
private static extern bool gtksharp_object_is_floating (IntPtr raw);
|
static extern bool g_object_is_floating (IntPtr raw);
|
||||||
|
|
||||||
[DllImport("gtksharpglue-2")]
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
private static extern bool gtksharp_object_set_floating (IntPtr raw, bool val);
|
static extern void g_object_force_floating (IntPtr raw);
|
||||||
|
|
||||||
|
[DllImport("libgobject-2.0-0.dll")]
|
||||||
|
static extern void g_object_unref (IntPtr raw);
|
||||||
|
|
||||||
public bool IsFloating {
|
public bool IsFloating {
|
||||||
get {
|
get {
|
||||||
return gtksharp_object_is_floating (Handle);
|
return g_object_is_floating (Handle);
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
gtksharp_object_set_floating (Handle, value);
|
if (value == true) {
|
||||||
|
if (!IsFloating)
|
||||||
|
g_object_force_floating (Handle);
|
||||||
|
} else {
|
||||||
|
g_object_ref_sink (Handle);
|
||||||
|
g_object_unref (Handle);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ lib_LTLIBRARIES = libgtksharpglue-2.la
|
||||||
libgtksharpglue_2_la_SOURCES = \
|
libgtksharpglue_2_la_SOURCES = \
|
||||||
cellrenderer.c \
|
cellrenderer.c \
|
||||||
container.c \
|
container.c \
|
||||||
object.c \
|
|
||||||
style.c \
|
style.c \
|
||||||
vmglueheaders.h \
|
vmglueheaders.h \
|
||||||
widget.c
|
widget.c
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
/* object.c : Glue to clean up GtkObject references.
|
|
||||||
*
|
|
||||||
* Author: Mike Kestner <mkestner@speakeasy.net>
|
|
||||||
*
|
|
||||||
* Copyright (c) 2002 Mike Kestner
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <glib-object.h>
|
|
||||||
#include <gtk/gtkobject.h>
|
|
||||||
|
|
||||||
/* Forward declarations */
|
|
||||||
void gtksharp_object_unref_if_floating (GObject *obj);
|
|
||||||
gboolean gtksharp_object_is_floating (GObject *obj);
|
|
||||||
void gtksharp_object_set_floating (GtkObject *obj, gboolean val);
|
|
||||||
/* */
|
|
||||||
|
|
||||||
void
|
|
||||||
gtksharp_object_unref_if_floating (GObject *obj)
|
|
||||||
{
|
|
||||||
if (GTK_OBJECT_FLOATING (obj))
|
|
||||||
g_object_unref (obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gtksharp_object_is_floating (GObject *obj)
|
|
||||||
{
|
|
||||||
return GTK_OBJECT_FLOATING (obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
gtksharp_object_set_floating (GtkObject *obj, gboolean val)
|
|
||||||
{
|
|
||||||
if (val == TRUE)
|
|
||||||
GTK_OBJECT_SET_FLAGS (obj, GTK_FLOATING);
|
|
||||||
else
|
|
||||||
gtk_object_sink (obj);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue