Commit graph

39 commits

Author SHA1 Message Date
Radek Doulik
0d2387f900 make Unref method public, it's needed for reparenting widgets
svn path=/trunk/gtk-sharp/; revision=10792
2003-01-21 21:43:12 +00:00
Mike Kestner
f750d78d6a 2002-12-24 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : generate protected GType ctors
	* generator/SymbolTable.cs : map GType to uint
	* glib/Object.cs : add GType ctor. add RegisterGType.
	* glue/type.c (gtksharp_register_type): new GType registrar
	* */*.custom : make GType params uints
	* sample/Subclass.cs : a simple type registration example

svn path=/trunk/gtk-sharp/; revision=9870
2002-12-25 00:36:00 +00:00
Radek Doulik
07b8de88cc 2002-11-17 Radek Doulik <rodo@ximian.com>
* glib/Value.cs: cast Typefundamentals.* to uint (GType is
	unsigned int), fix Value (GLib.Object) - use new GetGType method

	* glib/Object.cs: new GetGType method, returns _obj GType

svn path=/trunk/gtk-sharp/; revision=9063
2002-11-18 18:55:39 +00:00
Vladimir Vukicevic
58f6f01d45 * glib/Object.cs: add needs_ref boolean that controls whether
we need to ref this object once we have a pointer to it or not.
By default this is set to true -- constructors and other functions
where we do own the object need to set this to false before setting
the "Raw" property.  Also added Unref and RefCount methods.

* glue/object.c, glue/type.c: some utility functions for
refcounting support

* gdk/Pixbuf.custom: manually wrap a few functions so that
the refcount ends up being correct at the end (need an extra Unref)

* api/gdk-api.xml, sources/Gdk.metadata: metadata updates for
hiding manually-wrapped Pixbuf stuff

svn path=/trunk/gtk-sharp/; revision=8913
2002-11-10 10:09:05 +00:00
Ettore Perazzoli
cf139575c2 Changed so that Objects is a hash of
WeakReferences instead of hashing the real objects.  Without this
change, GObjects were never collected.
(Raw, set): Put a WeakReference to the object in Objects.
(Object.GetObject): Get the WeakReference from Objects, and from
there the actual object.
(Object.DisposeNative): Remove the Raw pointer from Objects.

svn path=/trunk/gtk-sharp/; revision=8578
2002-10-26 08:37:48 +00:00
Mike Kestner
2e07bf7e87 2002-10-26 Mike Kestner <mkestner@speakeasy.net>
* api/*.xml : get libgda and libgnomedb metadata setup
	* gconf/*/Makefile.in : patch from MauricioC for -L's and /r's
	* gnomedb/Makefile.in : patch from MauricioC for -L's and /r's
	* generator/ClassBase.cs (ctor): mangle hash names for sigs and props
	* generator/Parameters.cs (MangleName): handle params, null, and ref
	* generator/Parser.cs (ParseNamespace): ignore "hidden" types
	* generator/StructBase.cs (MangleName): handle params, null, and ref
	* glib/Object.cs (Equals): kill, also kill == and !=
	* sources/Gda.metadata : new, make Gda behave without hand edits
	* sources/GnomeDb.metadata : ditto

svn path=/trunk/gtk-sharp/; revision=8577
2002-10-26 08:03:16 +00:00
Miguel de Icaza
f95bf9dbbd 2002-10-20 Miguel de Icaza <miguel@ximian.com>
* glib/Object.cs: Avoid recursive calls with the previous operator
	!= and operator ==

svn path=/trunk/gtk-sharp/; revision=8418
2002-10-20 07:16:22 +00:00
Miguel de Icaza
39885119ee Am very sorry, very sorry
svn path=/trunk/gtk-sharp/; revision=8411
2002-10-19 23:15:05 +00:00
Miguel de Icaza
88d38246f5 2002-10-19 Miguel de Icaza <miguel@ximian.com>
* glib/Object.cs: Added operator != and operator == overloads.

svn path=/trunk/gtk-sharp/; revision=8400
2002-10-19 20:03:51 +00:00
Mike Kestner
58b5241e6f 2002-10-14 Mike Kestner <mkestner@speakeasy.net>
* glib/Object.cs (GetObject): remove (int) cast

svn path=/trunk/gtk-sharp/; revision=8277
2002-10-15 04:07:24 +00:00
Miguel de Icaza
c9434076c5 2002-09-11 Miguel de Icaza <miguel@ximian.com>
* glib/Object.cs (DisposeNative): Call GC.SuppressFinalize, and
	set the obj to null.

svn path=/trunk/gtk-sharp/; revision=7411
2002-09-12 19:21:46 +00:00
Rachel Hestilow
32ae593a0e 2002-09-11 Rachel Hestilow <hestilow@ximian.com>
* glib/Object.cs (Ref): Added.

	* gtk/Object.custom (Ref): Overload. Note that we were reffed.
	(DisposeNative): Unref if we were explicitly reffed.

	* generator/Method.cs: Call Ref if needs_ret is set.
	* generator/StructBase.cs: Call Ref on all object accessors.

	* glue/style.c: Ref returned GCs.

	* sources/Gtk.metadata: Set needs_ret on various gdk-related
	accessors in GtkWidget. Hide Ref/Unref methods on Widget and
	RcStyle as these ought to be deprecated anyway.

svn path=/trunk/gtk-sharp/; revision=7380
2002-09-12 05:21:16 +00:00
Mike Kestner
ab081f8358 2002-09-04 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : generate dtors.
	* glib/Object.cs : Implement IDisposable. Add a new DisposeNative
	method. Implement default dtor.
	* glue/object.c : new gtksharp_object_unref_if_floating method.
	* gtk/Object.custom : override DisposeNative to check float bit.

svn path=/trunk/gtk-sharp/; revision=7235
2002-09-04 05:25:58 +00:00
Rachel Hestilow
c8d090f62f 2002-08-31 Rachel Hestilow <hestilow@ximian.com>
Proper GList, GSList support. Read-only for now.

	* glue/list.c: Added.
	* glue/Makefile.am: Add list.c
	* glue/type.c: Add function gtksharp_is_object.

	* glib/ListBase.cs, List.cs: Added.
	* glib/SList.cs: Inherit from ListBase.
	* glib/Object.cs: Add static method "IsObject".

	* generator/Method.cs: Pass on element_type to constructor
	if specified.
	* generator/SymbolTable.cs: Move GList to manual types.

	* sample/GladeViewer.cs: Remove list hacks.

	* sources/Gnome.metadata: Specify element types for
	CanvasPathDef.Split and IconList.GetSelection. Rename
	CanvasPathDef *to methods to properly capitalized *To.
	* sources/Gtk.metadata: Hide Widget.ListAccelClosures until
	GClosure is handled properly.
	* sources/Pango.metadata: Added.

	* sample/test/TestToolbar.cs: Compile with recent delegate changes.

svn path=/trunk/gtk-sharp/; revision=7166
2002-09-01 04:46:38 +00:00
Mike Kestner
15432372a6 2002-08-22 Mike Kestner <mkestner@speakeasy.net>
* glib/IWrapper.cs : remove set_Handle
	* glib/Object.cs : ditto
	* glib/Opaque.cs : ditto

svn path=/trunk/gtk-sharp/; revision=6835
2002-08-21 00:22:24 +00:00
Mike Kestner
903349cd37 2002-08-08 Mike Kestner <mkestner@speakeasy.net>
* generator/Method.cs : s/GetType/GetGType. Don't generated static
	  methods for interfaces.
	* glib/Object.cs : add GType prop
	* gnome/*.custom : s/Type/GType
	* parser/Gtk.metadata : rule to make TreeIter opaque
	* parser/gapi2xml.pl : handle interface methods properly
	* sample/Fifteen.cs : s/Type/GType

svn path=/trunk/gtk-sharp/; revision=6556
2002-08-09 03:56:27 +00:00
Mike Kestner
66c0ec1d43 2002-08-07 Mike Kestner <mkestner@speakeasy.net>
* generator/CodeGenerator.cs : call ObjectGen.GenerateMapper
	* generator/Method.cs : Remove the if null workaround
	* generator/ObjectGen.cs : build a hash of object types.
	(GenerateMapper): generate the GtkSharp.ObjectManager class.
	* glib/Object.cs : use ObjectManager.CreateObject.
	* glue/type.c : helper for typename lookup.

svn path=/trunk/gtk-sharp/; revision=6526
2002-08-08 04:48:41 +00:00
Rachel Hestilow
acc160cd01 2002-06-23 Rachel Hestilow <hestilow@ximian.com>
* glib/Object.cs, glib/SList.cs, glib/Value.cs, gtk/Application.cs:
	Move documentation to right before their actual methods, rather
	than the DllImported ones.

	* generator/Method.cs: Generate documentation before the actual
	method and not the DllImport.

svn path=/trunk/gtk-sharp/; revision=5423
2002-06-23 18:49:33 +00:00
Rachel Hestilow
6857128f07 2002-06-21 Rachel Hestilow <hestilow@ximian.com>
* generator/ClassBase.cs: New base class for classes and interfaces.

	* generator/InterfaceGen.cs: Inherit from ClassBase, generate declarations.

	* generator/ObjectGen.cs: Move half of this into ClassBase.

	* generator/Method.cs: Turn all applicable Get/Set functions into .NET
	accessors. Remove redundant == overload and move into Equals, as
	it was confusing "!= null".

	* generator/Parameters.cs: Alter signature creation to accept "is_set"
	option, add support for variable arguments. Add properties "Count",
	"IsVarArgs", "VAType".

	* generator/Ctor.cs: Fixup for changes in Parameters (indenting,
	signature creation).

	* generator/Signal.cs: Support generating declarations.

	* generator/SymbolTable: Change GetObjectGen to GetClassGen.

	* glib/IWrapper.cs: Move "Handle" declaration to here, so
	both classes and interfaces can benefit from it.

	* glib/Object.cs: Inherit from IWrapper.cs

	* parser/Metadata.pm: Support attribute changes on constructors,
	methods, signals, and paramater lists.

	* parser/gapi2xml.pl: Parse init funcs for interfaces. Ignore "_"
	functions here.

	* parser/gapi_pp.pl: Remove boxed_type_register check, as it will
	be caught in the init funcs.

	* parser/Atk.metadata: Added.

	* parser/Gtk.metadata: Add all needed signal/method collision
	renames. Rename GtkEditable.Editable accessors to IsEditable,
	as .NET does not like accessors with the same name as their
	declaring type. Tag TreeStore constructor as varargs.

	* samples/ButtonApp.cs: s/EmitAdd/Add.

	* samples/Menu.cs: s/EmitAdd/Add, s/Activate/Activated.

svn path=/trunk/gtk-sharp/; revision=5394
2002-06-21 17:15:19 +00:00
Mike Kestner
e1b9f7343a 2002-06-05 Mike Kestner <mkestner@speakeasy.net>
* generator/Property.cs : Fix get{} GLib.Value passing.
	* glib/Object.cs : GetProperty passes the GLib.Value now.
	* glib/Value.cs : Add a ctor to create Values for props.
	* glue/value.c : add gtksharp_value_create_from_property.

svn path=/trunk/gtk-sharp/; revision=5133
2002-06-05 21:59:10 +00:00
Mike Kestner
cd73a17587 2002-05-02 Mike Kestner <mkestner@speakeasy.net>
* README : Describe the new make procedure.
	* configure.in : Add the new Makefile generation.
	* makefile : add the glue dir, make linux the default build,
	  add an install target
	* */makefile.win32 : temp build files for win32
	* */Makefile.in : new configurable make system
	* */makefile : killed
	* generator/BoxedGen.cs : Now uses GLib.Boxed
	* generator/ObjectGen.cs : Use Values for Props.
	* generator/SymbolTable.cs : Add IsEnum method.
	* glib/Boxed.cs : Major overhaul.
	* glib/Object.cs : Remove type specific (Get|Set)Property. Now
	  use GValue based property accessors.
	* glib/TypeFundamentals.cs : Update to current values.
	* glib/Value.cs : Refactor to use glue.

svn path=/trunk/gtk-sharp/; revision=4236
2002-05-02 21:57:41 +00:00
Mike Kestner
28049f1c2b 2002-03-28 Mike Kestner <mkestner@speakeasy.net>
* generator/SignalHandler.cs : switch to 2.0 libs
	* generator/SymbolTable.cs : switch to 2.0 libs
	* glib/Object.cs : switch to 2.0 libs
	* glib/SList.cs : switch to 2.0 libs
	* glib/Value.cs : switch to 2.0 libs
	* gtk/Application.cs : switch to 2.0 libs

svn path=/trunk/gtk-sharp/; revision=3468
2002-03-28 21:16:43 +00:00
Mike Kestner
f3a997ca6f 2002-03-25 Mike Kestner <mkestner@speakeasy.net>
* generator/StructBase.cs : Throttle _gtk methods.
	* generator/SymbolTable.cs : tweak dll names.
	* glib/Object.cs : restructure DllImports and prop code.
	* glib/SList.cs : restructure DllImports.
	* glib/Value.cs : restructure DllImports.
	* gtk/Application.cs : overload Init() to get past the string[]
	  marshaling crash on linux.
	* sample/HelloWorld.cs : Use App::Init() since no args are needed.

svn path=/trunk/gtk-sharp/; revision=3341
2002-03-26 01:29:43 +00:00
Mike Kestner
d5d3baa601 2002-02-19 Mike Kestner <mkestner@speakeasy.net>
* generator/BoxedGen.cs : Add ctor and method generation.
	* generator/StructBase.cs : Switch to Raw syntax.
	* glib/Boxed.cs : Add Handle prop, make Raw protected, and add ctors.
	* glib/Object.cs : s/RawObject/Raw to simplify generation.

svn path=/trunk/gtk-sharp/; revision=2518
2002-02-19 19:46:44 +00:00
Mike Kestner
2918e60a50 2002-02-02 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : Add IntPtr constructor generation. Pass a
	  ctor signature hash around to use in clash resolution. Generate a
	  void ctor if none is present which just calls the parent ctor.
	* generator/StructBase.cs : Add non-void signature ctor generation,
	  including collision handling logic. Collisions are implemented as
	  static methods.
	* generator/SymbolTable.cs : Map GSList to GLib.SList. Add type
	  trimming to remove trailing *'s.  Need to suppress leading const yet.
	* glib/Object.cs : Add default ctor for void and IntPtr ctors.
	* glib/SList.cs : Implementation of a wrapper class for GSLists.  Lots
	  of FIXMEs.
	* parser/gapi2xml.pl : Handle ** and array params.

svn path=/trunk/gtk-sharp/; revision=2232
2002-02-03 03:44:10 +00:00
Mike Kestner
88175147cf 2002-01-16 Mike Kestner <mkestner@speakeasy.net>
* generator/BoxedGen.cs : New boxed type generatable.
	* generator/ObjectGen.cs : Add boxed type property generation and stub
	  off interface properties for now.
	* generator/Parser.cs : Add boxed element parsing.
	* generator/SymbolTable.cs : Add IsBoxed and IsInterface methods.
	* glib/Boxed.cs : New base class for deriving boxed types.
	* glib/Object.cs : Add boxed GetProp/SetProp methods.
	* parser/gapi2xml.pl : Add boxed type element formatting.
	* parser/gapi_pp.pl : Add preprocessing of the generated sourcefiles.
	  Handle the builtins and make them identifiable to the xml generator.

svn path=/trunk/gtk-sharp/; revision=2012
2002-01-17 00:26:46 +00:00
Mike Kestner
9fcf82d28e 2002-01-11 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : Add property generation.
	* generator/SymbolTable.cs : More fixage to simple_types. Add
	  GetMarshalType and IsObject methods.
	* glib/Object.cs : Rename Events prop to EventList to avoid name
	  collision. Add float, double, uint, and IntPtr GetProp and SetProp
	  methods.
	* parser/TODO : Add a couple prop related bugs to come back for.
	* parser/gapi2xml.pl (addPropElems): Restructure.  It was thoroughly
	  broken.  It's better now.

svn path=/trunk/gtk-sharp/; revision=1960
2002-01-12 02:08:16 +00:00
Mike Kestner
c3b0ed58d9 2001-10-30 Mike Kestner <mkestner@speakeasy.net>
* codegen/defs-parse.pl : streamline mkdir stuff.  Prune the object
	list back to just Window for now. Suppress generation of the Prop
	get/set accessor methods.
	* codegen/gdk-types.defs : Updated the 2button/3button event types
	since I don't feel like automangling them now.
	* gdk/Event.cs : Killed the now redundant EventType declaration.
	* glib/Object.cs : Override the Equals and GetHashCode methods.

svn path=/trunk/gtk-sharp/; revision=1231
2001-10-31 01:31:05 +00:00
Mike Kestner
bdec55ab35 2001-10-25 Mike Kestner <mkestner@speakeasy.net>
* glib/Object.cs : Added Get|SetProperty methods for Object
	properties.

svn path=/trunk/gtk-sharp/; revision=1204
2001-10-25 22:44:49 +00:00
Mike Kestner
aa1077bbb1 2001-10-07 Mike Kestner <mkestner@speakeasy.net>
* glib/Object.cs : Added public Handle property.  It would be nice
	if I could make the RawObject public for get and protected for set,
	but that doesn't appear to be possible with C# properties.
	* gtk/Container.cs : New class with 2 of the 3 props and the Add/Remove
	methods only implemented.
	* gtk/Widget.cs : Added SizeRequest prop which is a combination of
	HeightRequest and SizeRequest. Embrace and extend gtk...
	* gtk/Window.cs : Derive from newly added Container subclass.
	* sample/ButtonApp.cs : Simple tire-kicking app.

svn path=/trunk/gtk-sharp/; revision=1112
2001-10-07 00:41:52 +00:00
Mike Kestner
bda62ac3b7 2001-10-02 Mike Kestner <mkestner@speakeasy.net>
* glib/Value.cs : Tried adding CallingConvention.Cdecl to all the
	DllImports, but still couldn't get reliable Propery setting without
	periodic NullReference exceptions.  When all else fails, drop back
	and punt.
	* glib/Object.cs : Rewrote Set|GetProperty methods.  Now they use
	g_object_get|set and don't rely on GValues. The int, bool, and string
	prop types are now working reliably.
	* gtk/Window.cs : Update all Properties to use new GLib.Object
	signatures.
	* sample/HelloWorld.cs : added some more property usage for testing
	purposes.

svn path=/trunk/gtk-sharp/; revision=1048
2001-10-02 01:27:44 +00:00
Mike Kestner
e6979f31de 2001-09-28 Mike Kestner <mkestner@speakeasy.net>
* glib/Object.cs (GetProperty): New, gets props from the raw obj.
	(SetProperty): New, for setting props on the raw obj.
	* glib/Value.cs (type ctor): New needed for get accessors.
	*gtk/Window.cs (AllowGrow): Uncommented and filled out.
	(AllowShrink): Uncommented and filled out.
	(DestroyWithParent): Uncommented and filled out.
	(Modal): Uncommented and filled out.
	(Resizable): Added. All the bool Props work now.

svn path=/trunk/gtk-sharp/; revision=1030
2001-09-28 18:23:14 +00:00
Mike Kestner
4a2fa05bee 2001-09-27 Mike Kestner <mkestner@speakeasy.net>
* glib/Object.cs : Docs for everything. Made Objects hash private.
	Some coding style cleanup.  Pruned some of the TODO methods from the
	commented header listing to make a more relistic picture of the
	remaining effort. Some GSignal stuff probly belongs here too.
	([Get|Set]Data): Killed some DllImports and set up methods to store
	arbitrary data in a managed hash table.

svn path=/trunk/gtk-sharp/; revision=1012
2001-09-27 18:39:53 +00:00
Mike Kestner
25000abee7 2001-09-27 Mike Kestner <mkestner@speakeasy.net>
*.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
2001-09-27 17:17:33 +00:00
Bob Smith
5056f3e4b3 glib/Object.cs: Rewrote the way the wrapper is kept track of.
svn path=/trunk/gtk-sharp/; revision=921
2001-09-21 16:24:46 +00:00
Bob Smith
3d40a27630 ObjectManager.cs nuked, Glib.Object now keeps track of the wrapper class, and Gtk.Object should have a better signal handling system.
svn path=/trunk/gtk-sharp/; revision=894
2001-09-20 04:03:27 +00:00
Mike Kestner
91c58501fa 2001-09-19 Mike Kestner <mkestner@speakeasy.net>
* HACKING : New rulez.
	* NOTES: Killed.  We have a mailing list now for this kind of stuff.
	* glib/makefile : New, to build the new glib-sharp.dll target.
	* glib/Object.cs : (GetObject): Commented out. Design problems here.
	IntPtr's can't be used in the manner this code attempts to use them.
	(Data prop): Commented out.  Apparently keyed properties are not
	supported.
	(Object prop): Renamed RawObject, and made it protected.
	(Events): Fixed to cause list to be initialized if null and then
	return the list.
	* glib/ObjectManager.cs : commented out entirely.  Not sure what this
	code is trying to accomplish and it doesn't compile.
	* glib/Value.cs : New attempt at implementing GValues. Doesn't work
	yet.
	* gtk/Button.cs : Updated to use RawObject.
	(Clicked event): s/EmitDeleteEvent/EmitClickedEvent.
	(Button(String)): s/gtk_label_new_with_lable/gtk_button_new_with_label.
	* gtk/Label.cs : Fixed some yank and paste errors where 2 value params
	were getting passed to all the set_* property methods.
	* gtk/Window.cs : Fixed hanging GTK namespace ref.
	* sample/HelloWorld.cs : Fixed hanging GTK namespace ref.

svn path=/trunk/gtk-sharp/; revision=884
2001-09-19 11:37:15 +00:00
Bob Smith
b4c11b3210 GObject fixes.
svn path=/trunk/gtk-sharp/; revision=878
2001-09-19 04:47:48 +00:00
Bob Smith
22b77037ed More implementation
svn path=/trunk/gtk-sharp/; revision=876
2001-09-19 02:04:57 +00:00