Commit graph

29 commits

Author SHA1 Message Date
Mike Kestner
23464e6514 2003-07-23 Mike Kestner <mkestner@ximian.com>
[Equal credit to Ettore Perazzoli <ettore@ximian.com> for fixing
	all the bugs in the initial patch]
	* */*.custom : fix incorrect usage of new Object (IntPtr) where
	Glib.Object.GetObject should've been used.  add ref_owned param
	to GetObject calls.
	* generator/CallbackGen.cs : setup ref_owned in bodies
	* generator/ClassBase.cs : add ref_owned to GetObject FromNative call
	* generator/Method.cs : setup ref_owned in bodies
	* generator/Property.cs : setup ref_owned in bodies
	* generator/SignalHandler.cs : pass ref_owned to GetObject
	* generator/StructBase.cs : setup ref_owned in bodies
	* glib/Object.cs : kill Ref/Unref methods.  Don't want it to be
	easy for users to screw with ref counts, or make it look like they
	should need to.
	(GetObject): add ref_owned param and ref/unref to remain at 1
	* glib/Value.cs : pass ref_owned to GetObject

svn path=/trunk/gtk-sharp/; revision=16581
2003-07-23 17:19:21 +00:00
Mike Kestner
31001501ed 2003-07-22 Mike Kestner <mkestner@speakeasy.net>
* generator/Method.cs (GenerateBody): kill the "cast_type"
	overload of this, since cast_type wasn't even used.
	* generator/Property.cs : call simpler GenerateBody sig

svn path=/trunk/gtk-sharp/; revision=16550
2003-07-22 22:56:10 +00:00
Mike Kestner
90705a1c98 2003-07-14 Mike Kestner <mkestner@speakeasy.net>
* api/*-api.xml : regenerated
	* gdk/Drawable.custom : DrawRectangle filled param is now bool
	* generator/Parameters.cs : studlify names ending w/ uscore
	* gtk/GtkSharp.GtkClipboardClearFuncNative : s/Opaque/Object
	* gtk/GtkSharp.GtkClipboardGetFuncNative : s/Opaque/Object
	* parser/gapi2xml.pl : put <ns>_string_* methods in Global
	* sample/Scribble.cs : update to new DrawRectangle api
	* sources/Gdk.metadata : hide some conflicting methods
	* sources/Gtk.metadata : finally fix the Progress crap and
	renames, hides and such to fix conflicts
	* sources/README : mention new gtk-2.2 reqs
	* sources/gtk-sharp.sources : update to new gtk-2.2 reqs
	* sources/makefile : update for 2.2 api

svn path=/trunk/gtk-sharp/; revision=16254
2003-07-15 05:52:09 +00:00
Rachel Hestilow
fe699e9fbb 2003-05-29 Rachel Hestilow <rachel@nullenvoid.com>
* gconf/Value.cs: Update to use new string marshalling.

	* generator/StringGen.cs, ConstStringGen.cs: Added.
	* generator/IGeneratable.cs: Add new method ToNativeReturn.
	* generator/CallbackGen.cs: Implement ToNativeReturn. Call
	ToNativeReturn for the return statement. Fix a couple of
	places where s_ret was being used incorrectly for m_ret.
	* generator/ClassGen.cs, EnumGen.cs, ManualGen.cs,
	SimpleGen.cs, StructBase.cs: Implement ToNativeReturn.
	* generator/SignalHandler.cs: Call ToNativeReturn for the
	return statement, instead of CallByName.
	* generator/SymbolTable.cs: Use StringGen for gchar, char,
	and gunichar, and ConstStringGen for their const variants.
	Add a new method wrapper for ToNativeReturn.
	(Trim): Add a special-case for const strings so that the
	const is not stripped. Otherwise there is no way of
	resolving the const case.

	* glade/XML.custom: Update to use new string marshalling.

	* glib/Marshaller.cs: Added.
	* glib/GException.cs, Markup.cs, ObjectManager.cs,
	Value.cs: Update to use new string marshalling.
	* glib/Object.cs: Remove old g_type_name DllImport
	as it is no longer used.

	* glue/fileselection.c (gtksharp_file_selection_get_fileop_entry):
	Mark this as const return.

	* gtk/ColorSelection.custom, FileSelection.custom,
	SelectionData.custom: Update to use new string marshalling.

svn path=/trunk/gtk-sharp/; revision=15286
2003-06-10 18:09:47 +00:00
Mike Kestner
b6114fef1e 2003-05-18 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : use non-static symtab, kill doc comments
	* generator/ClassBase.cs : use non-static symtab
	* generator/CodeGenerator.cs : use non-static symtab
	* generator/EnumGen.cs : kill doc comments, don't gen using System here
	* generator/GenBase.cs : gen using System here for all types
	* generator/InterfaceGen.cs : don't gen using System here.
	* generator/Method.cs : use non-static symtab
	* generator/ObjectGen.cs : kill doc comments, use non-static symtab
	* generator/OpaqueGen.cs : don't gen using System here.
	* generator/Parameters.cs : use non static symtab.
	* generator/Parser.cs : use non static symtab. add SimpleGen's and
	ManualGen's
	* generator/Property.cs : use non static symtab
	* generator/SignalHandler.cs : use non static symtab
	* generator/StructBase.cs : use non static symtab
	* generator/SymbolTable.cs : major refactoring. now uses SimpleGen and
	ManualGen IGeneratables to simplify the method and prop code.  Is now
	instance based with a static prop to get the singleton instance, so that
	a this indexer can be provided to access the IGeneratables nicely. Gearing
	up to remove even more code from here by accessing IGeneratables directly.

svn path=/trunk/gtk-sharp/; revision=14687
2003-05-19 02:45:17 +00:00
Mike Kestner
9e325bd283 2003-05-07 Mike Kestner <mkestner@speakeasy.net>
* generator/ClassBase.cs (GenSignals): remove doc comment param
	* generator/GenBase.cs (CreateWriter): alter generated file comment
	* generator/InterfaceGen.cs (CreateWriter): remove doc comments
	* generator/ObjectGen.cs (Generate): use new GenSignals sig
	* generator/Signal.cs : make signal marshalers internal and remove
	doc comments.
	* generator/SignalHandler.cs : make signal marshalers internal and remove
	doc comments.
	* gnome/CanvasProxy.cs : use Gnome.voidObjectSignal since the gtk one is
	inaccessible now.

svn path=/trunk/gtk-sharp/; revision=14385
2003-05-08 04:44:13 +00:00
Charles Iliya Krempeaux
03ebb1fcb3 2003-04-02 Charles Iliya Krempeaux <charles@reptile.ca>
* generator/SignalHandler.cs : Added Patch submitted by
	  Mark Crichton <crichton@gimp.org>, to get GtkMozEmbed
	  bindings working.

svn path=/trunk/gtk-sharp/; revision=13043
2003-04-02 22:29:26 +00:00
Gonzalo Paniagua Javier
4465050e40 2003-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* generator/SignalHandler.cs: the generated Dispose method now calls
	base.Dispose and always disconnects the handler. Thanks to
	Petr Danecek <danecek@ucl.cas.cz>.

svn path=/trunk/gtk-sharp/; revision=12060
2003-02-28 10:55:59 +00:00
Gonzalo Paniagua Javier
4a6b18ee0f 2003-02-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* generator/Parser.cs: use XmlDocument.Load (Stream). The one using
	(String) expects an uri.

	* generator/Signal.cs: always remove the delegate from the signal
	callback (prior to this, the last handler was not being removed).
	Dispose the callback (ie, disconnect from the signal) when there are
	no registered delegates to handle it.

	* generator/SignalHandler.cs: added 2 new fields to hold the instance
	and the handler ID. The finalization is now done in Dispose and
	disconnects the signal handler when no delegate will handle the signal.
	Changed gobject-2.0 to libgobject-2.0-0.dll.

	* glib/SignalCallback.cs: implemented IDisposable interface.

svn path=/trunk/gtk-sharp/; revision=11976
2003-02-26 02:16:38 +00:00
Mike Kestner
ccd555425e 2003-02-19 Mike Kestner <mkestner@speakeasy.net>
* generator/GenBase.cs : mark #line 1 for .customs
	* generator/SignalHandler.cs : fix for GObj retvals

svn path=/trunk/gtk-sharp/; revision=11714
2003-02-19 06:23:36 +00:00
Gonzalo Paniagua Javier
97fec24e46 2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* glib/SignalCallback.cs: new methods AddDelegate and RemoveDelegate.

	* generator/Signal.cs: add/remove signal handlers from the delegate used
	to invoke them.

	* generator/SignalHandler.cs: use Delegate instead of MulticastDelegate.

svn path=/trunk/gtk-sharp/; revision=11255
2003-02-06 00:58:02 +00:00
Vladimir Vukicevic
9ad6d1b6a4 * generator/StructBase.cs: create a Zero static member for
use when the IntPtr is NULL.

* generator/SignalHandler.cs, generator/CallbackGen.cs: removed
call to Initialize for structs

* gtk/Clipboard.custom, gtk/ClipboardClearFunc.cs,
gtk/ClipboardGetFunc.cs,
gtk/GtkSharp.GtkClipboardClearFuncNative.cs,
gtk/GtkSharp.ClipboardGetFuncNative.cs, SelectionData.custom:
Hand-wrapped selection handling stuff, along with relevant
signals and the like.

* gnome/voidObjectAffineSVPintSignal.cs: removed Initialize
for hand-wrapped signal

* sample/GnomeHelloWorld.cs, sample/Size.cs: compare against
.Zero instead of using IsNull

* api/gtk-api.xml, sources/Gtk.metadata: metadata updates for
hiding some manually-wrapped stuff

svn path=/trunk/gtk-sharp/; revision=8912
2002-11-10 10:03:51 +00:00
Mike Kestner
b2f04c1d80 2002-10-26 Mike Kestner <mkestner@speakeasy.net>
Much of this patch from Vlad, with substantial rework by mk.
	* */makefile.win32 : introduce mapdllnames.pl, api, and glue
	* generator/CallbackGen.cs : rework namespacing for csc compilation
	* generator/Parameters.cs : ditto
	* generator/Signal.cs : ditto
	* generator/SignalHandler.cs : ditto
	* glue/win32dll.c : new dll construction source
	* glib/Value.cs : new ushort ctor/cast operator
	* gtk/Table.custom : comment this out until we add a default ctor tag
	* gtk/ThreadNotify.cs : make ReadyEvent public
	* sources/Gdk.metadata : mark a Parse() param as ref

svn path=/trunk/gtk-sharp/; revision=8590
2002-10-27 02:30:51 +00:00
Rachel Hestilow
e9d1e0b6dc 2002-08-19 Rachel Hestilow <hestilow@ximian.com>
* art/Makefile.in (clean): Change to avoid bugging out on generated/CVS.

	* glib/ObjectManager.cs: Added. Used to be auto-generated, but
	now it can infer names, and relies on per-namespace ObjectManager
	classes to inform it of oddly-named classes.

	* generator/IGeneratable.cs, GenBase.cs: New "DoGenerate" property.
	* generator/*Gen.cs: Honor DoGenerate.
	* generator/CodeGenerator.cs: Support including dependency files
	which will not be generated.
	* generator/ObjectGen.cs: Generate mapping file per-namespace, as one
	that calls back to the one in glib. Only generate if the name does
	not follow the normal conventions, otherwise, GtkSharp.ObjectManager
	can infer the name.
	* generator/Parser.cs: Accept 'generate' flag to pass on to the
	IGeneratables. Parse a new toplevel element, "symbol", which adds
	a type to the SymbolTable (instead of hard-coding it).
	* generator/SignalHandler.cs: Do not optimize signal handler creation,
   instead creating them in their own namespaces. Do not generate
	if the calling Signal told us not to.
	* generator/Signal.cs: Do not generate handlers if container's DoGenerate
	is false. Adjust to the marshaller name being in a sub-namespace.
	* generator/SymbolTable.cs (AddSimpleType, AddManualType): Used
	to add simple and manually wrapped types at runtime instead of
	compile-time.
	(FromNative): Remove hard-coded cases for manually wrapped types, use
	a generic case instead.

	* api: Added. Move api files and generation targets here.
	* source: Added. Move source parsing here.

	* generator/makefile: Move actual generation to api/.
	* glib/Makefile.in: Remove generated/* target.
	* glue/Makefile.am: Fix to include canvas-marshal. Move canvas stuff
	to GNOME target.

	* gnome/CanvasProxy.cs: Update to work with SignalHandlers being
	namespace-specific.

	* parser/Metadata.pm: Moved to GAPI/Metadata.pm, renamed, etc.
	* parser/gapi2xml.pl: Use GAPI::Metadata.
	* parser/makefile: Install scripts, remove source parse build target.
	Rename formatXML to gapi_format_xml.

svn path=/trunk/gtk-sharp/; revision=6818
2002-08-20 19:56:18 +00:00
Rachel Hestilow
0bf76f0d61 2002-08-06 Rachel Hestilow <hestilow@ximian.com>
* generator/SignalHandler.cs: Handle null arguments and return values.

	* sample/Makefile.in: Add fifteen game.

svn path=/trunk/gtk-sharp/; revision=6483
2002-08-06 21:56:57 +00:00
Rachel Hestilow
967e3e9c5a 2002-07-30 Rachel Hestilow <hestilow@ximian.com>
* generator/ClassBase.cs: Change hasDefaultConstructor to protected,
	adjust now that it is an attr and not a subnode. Also add virtual
	property AssignToName (for ctors).

	* generator/Ctor.cs: Add property ForceStatic.
	(Generate): Optimize return code a bit for the static case.

	* generator/Method.cs: Assign to a "raw_ret" pointer before calling
	FromNativeReturn.

	* generator/Parameters.cs: Change "out ref" to "out", not "ref".

	* generator/Property.cs: Fix to work correctly with all object and
	struct types (mostly just some if-cases added).

	* generator/SignalHandler.cs: Remove args_type and argfields (unused).
	(Generate): Initialize struct if necessary.

	* generator/StructBase.cs: Massive reworking to support methods, ctors,
	etc.

	* generator/SymbolTable.cs: Add GdkAtom and gconstpointer simple types.

	* glib/Boxed.cs: Accept both IntPtr and object ctors. Add access for both.

	* glib/Opaque.cs: Fix copy/pasted copyright notice, remove data and event
	fields. Fix docs.

	* glib/Value.cs: Work correctly with boxed properties.

	* gnome/Modules.cs: Use new struct ctors.

	* gnome/Program.custom: Remove Get, this is being generated now.

	* parser/Gdk.metadata: Fix the drawable classes to inherit correctly.

	* parser/Metadata.pm: Change per-class attributes to actually be
	attributes.

	* parser/Gtk.metadata: Add a dummy attribute value for disabledefaultctor.

	* parser/gapi2xml.pl: Add hacks for the (broken) Drawable and Bitmap
	typedefs.

	* sample/test/TestColorSelection.cs: Display color string in hex format,
	update to use IsNull instead of == null, and size dialog to look pretty.

	* sample/Size.cs: Added.

svn path=/trunk/gtk-sharp/; revision=6264
2002-07-30 23:02:12 +00:00
Rachel Hestilow
4d92d54b3f 2002-07-25 Rachel Hestilow <hestilow@ximian.com>
[about 60% of the marshalling patch that I lost.
	 The rest to come tomorrow.]

	* generator/BoxedGen.cs, StructGen.cs: Move most of this to StructBase,
	delete large chunks duplicated from ClassBase.

	* generator/IGeneratable.cs: Add MarshalReturnType, FromNativeReturn.

	* generator/ClassBase.cs: Move ctor stuff here. Add a CallByName
	overload with no parameters for the "self" reference.

	* generator/EnumGen.cs, CallbackGen.cs: Implement new MarshalReturnType,
	  FromNativeReturn.

   * generator/Method.cs: Use container_type.MarshalType, CallByName, and
	  SymbolTable.FromNativeReturn when generating call and import sigs.

	* generator/OpaqueGen.cs: Added.

	* generator/Property.cs: Handle boxed and opaques differently.

	* generator/SymbolTable.cs: Update for the opaque stuff and the new Return
	methods. Also change GetClassGen to simply call the as operator.

	* glib/Boxed.cs: Update for struct usage -- this is now a wrapper for
	  the purposes of using with Value.

   * glib/Opaque.cs: Added. New base class for opaque structs.

	* glue/textiter.c, gtk/TextIter.custom: Remove.

	* gnome/Program.cs: Update for new struct marshalling.

	* parser/Metadata.pm: Use our own getChildrenByTagName.

	* parser/README: Update for new requirements (was out of sync with
	  build.pl)

	* parser/gapi2xml.pl: Hide struct like const in field elements.

	* parser/gapi_pp.pl: Handle embedded union fields (poorly).

	* sample/test/TestColorSelection.cs: Comment out null color tests
     for now.

svn path=/trunk/gtk-sharp/; revision=6186
2002-07-26 06:08:52 +00:00
Mike Kestner
ccfec8b7e2 2002-07-24 Mike Kestner <mkestner@speakeasy.net>
* generator/SignalHandler.cs : use ref parameters in signal cb's.

svn path=/trunk/gtk-sharp/; revision=6136
2002-07-24 14:11:40 +00:00
Mike Kestner
738aef2a29 2002-07-20 Mike Kestner <mkestner@speakeasy.net>
* generator/SignalHandler.cs : pring unexpected key in exception.

svn path=/trunk/gtk-sharp/; revision=5967
2002-07-20 15:00:10 +00:00
Mike Kestner
8b85bf647a 2002-07-16 Mike Kestner <mkestner@speakeasy.net>
* generator/ClassBase.cs : make MarshalType virtual.
	* generator/Parameters.cs : add Parameter class and Indexer.
	* generator/Signal.cs : Now use Parameters.
	(GetHandlerName): New abstraction of name handling.
	(GenerateDecls): use GetHandlerName.
	(GenComments): make private.
	(GenHandler): New. Generate custom event handlers and args.
	(Generate): use GenHandler. Pass args type to SignalHandler.
	* generate/SignalHandler.cs : store args type. Generate handler
	  dependent args and use MulticastDelegate.DynamicInvoke.
	* generate/StructGen.cs : override MarshalType.
	* glib/SignalCallback.cs : store a MulticastDelegate and args type
	* sample/*.cs : use new DeleteEventHandler

svn path=/trunk/gtk-sharp/; revision=5834
2002-07-16 23:14:35 +00:00
Mike Kestner
79e7514057 2002-07-09 Mike Kestner <mkestner@speakeasy.net>
* generator/ClassBase.cs : handle overloaded method hash collision
	* generator/SignalHandler.cs : generate *Handler delegates. stub *Args
	* parser/Gtk.metadata : add *Defaults method renaming

svn path=/trunk/gtk-sharp/; revision=5678
2002-07-10 03:09:39 +00:00
Rachel Hestilow
b203c33bb7 2002-06-26 Rachel Hestilow <hestilow@ximian.com>
* generator/*.cs: Deal with whitespace XmlNodes.

	* parser/build.pl: Dump non-indented file to local directory.

	* parser/makefile, parser/formatXml.c: Added.

	* generator/gtkapi.xml: Nicely indented now. woo!

svn path=/trunk/gtk-sharp/; revision=5465
2002-06-26 13:10:48 +00:00
Rachel Hestilow
02c9fb725c 2002-06-26 Rachel Hestilow <hestilow@ximian.com>
* configure.in, makefile, makefile.win32: add gnome.

	* doc/index.html, netdoc.xsl: Add gnome.

	* gdk/Event.cs: New manual wrap for GdkEvent.

	* generator/ClassBase.cs: Add methods GetProperty,
	GetPropertyRecursively, GetMethodRecursively.
	Move Parent property here from ObjectGen.cs. Pass this pointer
	into Property.

	* generator/Ctor.cs: Generate docs.

	* generator/Method.cs, Property.cs: Tag method as "new" if a
	Method/Property with the same name is found in the class hierarchy.

	* generator/SignalHandler.cs: Correctly wrap complex signal argument
	types. Add gnome directory.

	* generator/SymbolTable.cs: Add manually wrapped types hash
	(contains GLib.GSList and Gdk.Event). Add method IsManuallyWrapped.

	* glib/SList.cs: Add constructor from IntPtr.

	* glue/slist.c, glue/event.c: Added (field accessor glue).

	* glue/Makefile.am: Update.

	* parser/Gtk.metadata: Add new signal renames for new signals
	exposed by GdkEvent changes.

	* parser/README, parser/build.pl: Add libgnome, libgnomecanvas,
	libgnomeui.

	* parser/gapi2xml.pl: Handle literal-length array parameters,
	and NULL property doc strings.

	* sample/: Add new test GnomeHelloWorld.cs.

	* gnome/: Added.

	* parser/Gnome.metadata: Added.

svn path=/trunk/gtk-sharp/; revision=5461
2002-06-26 08:36:05 +00:00
Mike Kestner
948bb15432 2002-06-22 Mike Kestner <mkestner@speakeasy.net>
* */makefile.win32 : add docs target
	* generator/ClassBase.cs : Make GenMethods public for interface gen
	* generator/Method.cs : Lose the CallingConvention
	* generator/Parameters.cs : fix uninitialized var
	* generator/SignalHandler.cs : Lose the CallingConvention
	* generator/StructBase.cs : Lose the CallingConvention

svn path=/trunk/gtk-sharp/; revision=5418
2002-06-22 22:12:51 +00:00
Mike Kestner
6d30cf0c3e refactoring to remove substantial code duplication thoughout the generator
2002-05-23  Mike Kestner <mkestner@speakeasy.net>

	* generator/BoxedGen.cs : Update for Static SymbolTable
	* generator/CallbackGen.cs : Use GenBase and Parameters classes
	* generator/CodeGenerator.cs : Update for Static SymbolTable
	* generator/Ctor.cs : code from StructBase using Parameters class
	* generator/EnumGen.cs : Use GenBase
	* generator/GenBase.cs : Abstract Stream Writer creation, stream
	  boilerplate, and common *Name properties
	* generator/IGeneratable.cs : Update for Static SymbolTable
	* generator/InterfaceGen.cs : Use GenBase
	* generator/Method.cs : code from StructBase using Parameters class
	* generator/ObjectGen.cs : Major refactoring. Use GenBase. Build
	  tables of Member generatables at construct time to facilitate
	  future name collision resolution logic.
	* generator/Parameters.cs : new generatable to abstract duplicated
	  parameter parsing logic.
	* generator/Parser.cs : Update for Static SymbolTable
	* generator/Property.cs : code from ObjectGen
	* generator/Signal.cs : code from ObjectGen
	* generator/SignalHandler.cs : Update for Static SymbolTable
	* generator/StructBase.cs : Update for Static SymbolTable
	* generator/StructGen.cs : Update for Static SymbolTable
	* generator/SymbolTable.cs : Make all methods and private members
	  static.  There is no reason to ever have multiple tables.

svn path=/trunk/gtk-sharp/; revision=4895
2002-05-23 23:43:25 +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
4242ad7415 2002-03-26 Mike Kestner <mkestner@speakeasy.net>
* generator/SignalHandler.cs : Use Path.DirectorySeparatorChar.

svn path=/trunk/gtk-sharp/; revision=3381
2002-03-27 01:24:56 +00:00
Mike Kestner
486c867726 2002-02-15 Mike Kestner <mkestner@speakeasy.net>
* generator/SignalHandler.cs : Create the SignalArgs.Args array and fix
	  indexing into it.
	* sample/ButtonApp.cs : A little cleanup.  Not quite there yet.
	* sample/HelloWorld.cs : Set up the RetVal in the delete handler.

svn path=/trunk/gtk-sharp/; revision=2426
2002-02-15 11:15:11 +00:00
Mike Kestner
ecc2f8407c Oops, forgot the add on this.
svn path=/trunk/gtk-sharp/; revision=2420
2002-02-15 01:10:14 +00:00