25000abee7
*.cs : Added .dll extension to a load of DllImports. * makefile : now can make the project with one make windows and on both NT and Win98. * gdk/Event.cs : Fixed some invalid symbol names and commented out a load of stuff. * gdk/SimpleEvent.cs : Relocated file from unnecessary subdir and fixed several event keyword clashing bugs. Need to relocate the EventArgs class out of here into its own file. Fixed loads of typos. * glib/Object.cs : Killed the Constructor, this should be a purely abstract class. made Events property public until I can fix the Signal proxying system's broken reliance on it. * glib/SimpleSignal.cs : Relocated, namespaces, and named this Class. Loads of bugfixes. Still doesn't work worth a damn, but it builds. * glib/TypeFundamentals.cs : New enum for use in the Value code. * glib/Value.cs : Implemented a more opaque approach with heap allocated memory and g_value_init and friends. Still doesn't work. Will probably switch to a more C# like approach and avoid GValues altogether. * gtk/Button.cs : Commented out some brokeness until I can get around to fixing it later. * gtk/Widget.cs : Commented out a bunch of the new signal stuff until I get around to it. * gtk/Window.cs (Title): using g_object_set until I work out the details of the new Value/SetProperty system. It looks like g_object_set will end up being easier to use via PInvoke. svn path=/trunk/gtk-sharp/; revision=1008
127 lines
3 KiB
C#
Executable file
127 lines
3 KiB
C#
Executable file
// GTK.Widget.cs - GTK Widget class implementation
|
|
//
|
|
// Author: Mike Kestner <mkestner@speakeasy.net>
|
|
//
|
|
// (c) 2001 Mike Kestner
|
|
|
|
namespace Gtk {
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using GLib;
|
|
using Gdk;
|
|
|
|
|
|
public class Widget : Object {
|
|
public Widget() {}
|
|
~Widget()
|
|
{
|
|
/* FIXME: Find a valid way to Delete the handlers
|
|
foreach (EventHandler e in Events[DelEvName])
|
|
{
|
|
DeleteEvent -= e;
|
|
}
|
|
*/
|
|
}
|
|
|
|
private static readonly string DelEvName = "delete-event";
|
|
|
|
public event EventHandler DeleteEvent {
|
|
add {
|
|
if (Events [DelEvName] == null)
|
|
ConnectSignal(DelEvName);
|
|
|
|
Events.AddHandler(DelEvName, value);
|
|
}
|
|
remove {
|
|
Events.RemoveHandler(DelEvName, value);
|
|
if (Events [DelEvName] == null)
|
|
DisconnectSignal (DelEvName);
|
|
}
|
|
}
|
|
/*
|
|
public void AddSimpleEvent(Object type, string name, EventHandler value)
|
|
{
|
|
if (Events[type] == null)
|
|
{
|
|
ConnectSimpleSignal(name, type);
|
|
}
|
|
Events.AddHandler(type, value);
|
|
}
|
|
|
|
public void RemoveSimpleEvent(Object type, string name, EventHandler value)
|
|
{
|
|
Events.RemoveHandler(type, value);
|
|
if (Events[type] == null)
|
|
{
|
|
DisconnectSimpleSignal(name, type);
|
|
}
|
|
}
|
|
|
|
public void AddGdkSimpleEvent(Object type, string name, EventHandler value)
|
|
{
|
|
if (Events[type] == null)
|
|
{
|
|
ConnectGdkSimpleEventSignal(name, type);
|
|
}
|
|
Events.AddHandler(type, value);
|
|
}
|
|
|
|
public void RemoveGdkSimpleEvent(Object type, string name, EventHandler value)
|
|
{
|
|
Events.RemoveHandler(type, value);
|
|
if (Events[type] == null)
|
|
{
|
|
DisconnectGdkSimpleEventSignal(name, type);
|
|
}
|
|
}
|
|
*/
|
|
[DllImport("gtk-1.3.dll")]
|
|
static extern void gtk_signal_connect_full (
|
|
IntPtr obj, string evname,
|
|
SimpleDelegate cb, IntPtr unsupported,
|
|
String data, IntPtr destroycb,
|
|
int objsig, int after );
|
|
|
|
public void ConnectSignal(string name)
|
|
{
|
|
gtk_signal_connect_full(RawObject, name, SimpleSignal.Delegate,
|
|
new IntPtr (0), name,
|
|
new IntPtr (0), 0, 0);
|
|
}
|
|
|
|
public void DisconnectSignal(string name)
|
|
{
|
|
SimpleSignal.Unref();
|
|
}
|
|
|
|
/*
|
|
public void ConnectGdkSimpleSignal(string name, Object signal)
|
|
{
|
|
gtk_signal_connect_full(RawObject, name, SimpleEvent.Delegate,
|
|
new IntPtr (0), name,
|
|
new IntPtr (0), 0, 0);
|
|
}
|
|
|
|
public void DisconnectGdkSimpleSignal(string name, Object signal)
|
|
{
|
|
SimpleEvent.Unref();
|
|
}
|
|
*/
|
|
/// <summary>
|
|
/// Show Method
|
|
/// </summary>
|
|
///
|
|
/// <remarks>
|
|
/// Makes the Widget visible on the display.
|
|
/// </remarks>
|
|
|
|
[DllImport("gtk-1.3.dll")]
|
|
static extern void gtk_widget_show (IntPtr obj);
|
|
|
|
public void Show ()
|
|
{
|
|
gtk_widget_show (RawObject);
|
|
}
|
|
}
|
|
}
|