Commit graph

24 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
bbf727c80e 2003-06-14 Mike Kestner <mkestner@speakeasy.net>
* CallbackGen.cs : rework for internal callback helpers,
	pass NS to parms ctor
	* Ctor.cs : pass NS to parms ctor
	* Method.cs : pass NS to parms ctor
	* Parameters.cs : refactoring, plus rework for internal
	callback helpers.
	* Signal.cs : pass NS to parms ctor

svn path=/trunk/gtk-sharp/; revision=15385
2003-06-14 17:30:32 +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
b09f7e3679 2003-05-13 Mike Kestner <mkestner@speakeasy.net>
* configure.in : bump the version to 0.10
	* generator/CallbackGen.cs (GenWrapper): Update sig preparing for
	external assembly wrapper generation. Kill doc comment generation.
	Make marshaling delegate internal.

svn path=/trunk/gtk-sharp/; revision=14564
2003-05-14 00:27:00 +00:00
Gonzalo Paniagua Javier
3821938764 2003-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* generator/CallbackGen.cs: the new generated wrappers have:
		-(optional) Field of the same type returned by the callback.
		-A call to RemoveIfNotAlive at the beginning. It returns true,
		return the dummy field.
		-Added an object to the ctor signature and pass it to the base
		class.

	* generator/Ctor.cs: added a Params property.

	* generator/Method.cs: set Static property in Parameters if the method
	is static.

	* generator/Parameters.cs: added Static property. The call creation of
	the delegate wrapper (if applicable) uses the new signature. Pass a null
	as object is the method is static.

	* generator/StructBase.cs: set Static for the parameters of the ctors.

	* glib/DelegateWrapper.cs: the ctor takes an object (the one creating
	the wrapper or null) and creates a weak reference to it. Store it in
	a static Hashtable (this way the wrapper itself is not garbage
	collected).
	(RemoveIfNotAlive): called from the native delegate callbacks. If the
	target of the weak reference has been garbage collected, removes itself
	from the hashtable to let the GC dispose this instance and returns true.

	* gdk/Pixbuf.custom:
	* gtk/Clipboard.custom:
	* gtk/GtkSharp.GtkClipboardClearFuncNative.cs:
	* gtk/GtkSharp.GtkClipboardGetFuncNative.cs:
	* glade/XML.custom: changed delegate wrappers to match the new
	signature.

svn path=/trunk/gtk-sharp/; revision=13237
2003-04-06 09:21:15 +00:00
Mike Kestner
554450a33a 2003-02-23 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : suppress len params from
	  string/len pairs.
	* generator/Parameters.cs : begin the refactoring to use
	  Parameter class. Suppress len params from string/len pairs.
	*/*.custom : remove all overrides of string/len pairs
	*/*.cs : ditto.  Thanks to Alp Toker for the foundation
	  patch that this change was built upon.

svn path=/trunk/gtk-sharp/; revision=11913
2003-02-24 03:13:08 +00:00
Duncan Mak
fb60c23e4a 2003-01-05 Duncan Mak <duncan@ximian.com>
* generator/GenBase.cs (AppendCustom): Add #region to code from
	.custom files.

	* generator/*Gen.cs: Add #region markers.

svn path=/trunk/gtk-sharp/; revision=10188
2003-01-05 23:51:37 +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
Mike Kestner
3b1dd1079b 2002-10-10 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : some fixes
	* generator/Parameters.cs (CreateSignature): handle void params

svn path=/trunk/gtk-sharp/; revision=8156
2002-10-11 00:27:46 +00:00
Rachel Hestilow
38e7bdeec5 2002-08-28 Rachel Hestilow <hestilow@ximian.com>
* generator/CallbackGen.cs: Generate wrappers to map
	from managed delegates to native ones.
	* generator/Ctor.cs: Call parms.Initialize for the static case.
	* generator/Parameters.cs: Add "CType" property. Append []
	to CSType if necessary. Add "HideData" property if a container
	wishes to hide the user_data (used in callbacks).
	(Initialize): Add case for callback.
	* generator/SymbolTable.cs: Add size_t.

	* glue/program.c: string[] marshalling is no longer broken,
	remove hack.

	* sources/Gtk.metadata: Disable
	GtkColorSelection.SetChangePaletteHook and
	GtkTreeView.GetSearchEqualFunc for now, they return delegates and
	we don't support native->managed delegate mapping yet.

svn path=/trunk/gtk-sharp/; revision=7133
2002-08-28 20:58:01 +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
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
5d67982de9 2002-06-21 Mike Kestner <mkestner@speakeasy.net>
* makefile : remove gdk.imaging from the build
	* gdk.imaging/* : kill
	* generated/BoxedGen.cs : XmlNode namespace handling. Use GenBase.
	* generated/CallbackGen.cs : XmlNode namespace handling.
	* generated/Ctor.cs : construct with libname not ns.
	* generated/EnumGen.cs : XmlNode namespace handling.
	* generated/GenBase.cs : XmlNode namespace handling. Make AppendCustom
	  an instance method so it can use the private fields instead of params.
	* generated/InterfaceGen.cs : XmlNode namespace handling.
	* generated/Method.cs : construct with libname not ns.
	* generated/ObjectGen.cs : XmlNode namespace handling.
	* generated/Parser.cs : Use new XmlNode namespace ctors.
	* generated/Signal.cs : Lose the namespace field.
	* generated/StructBase.cs : derive from ClassBase
	* generated/StructGen.cs : XmlNode namespace handling. Use GenBase.
	* generated/SymbolTable.cs : nuke GetDllName method.
	* generator/gtkapi.xml : Add library name to namespace node.
	* parser/build.pl : refactor for library name param
	* parser/gapi2xml.pl : add libname param handling
	* sample/Makefile.in : build linux on make install, but don't install.

svn path=/trunk/gtk-sharp/; revision=5400
2002-06-21 20:25:43 +00:00
Mike Kestner
c1be55f103 2002-05-29 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : Fix build breaker from refactoring.
	* sample/Makefile.in : Build the menu sample on linux.

svn path=/trunk/gtk-sharp/; revision=5001
2002-05-29 08:13:46 +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
138b6c1644 2002-04-04 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : Unstubify.
	* generator/SymbolTable.cs : qualify some simple typenames.

svn path=/trunk/gtk-sharp/; revision=3615
2002-04-04 16:20:53 +00:00
Mike Kestner
12acb7ff05 2002-03-24 Mike Kestner <mkestner@speakeasy.net>
* generator/*Gen.cs : Use Path.DirectorySeparatorChar.
	* generator/Parser.cs : better debug for unexpected types.
	* generator/SymbolTable.cs : Use linux library names.

svn path=/trunk/gtk-sharp/; revision=3308
2002-03-24 17:04:25 +00:00
Mike Kestner
ede9016e25 2002-02-19 Mike Kestner <mkestner@speakeasy.net>
* generator/Statistics.cs : New. Gathers stats about generation.
	* generator/*.cs : Hook in the stat counters.

svn path=/trunk/gtk-sharp/; revision=2491
2002-02-19 03:12:47 +00:00
Mike Kestner
4966896f1e This should be the last enormo-diff on mono-patches. I have removed the
api.xml file from CVS with this commit.  It can be downloaded from
http://sf.net/projects/gtk-sharp.  I will be uploading new versions of the
file, now named gtkapi.xml, to the project download area from now on.

2002-02-08  Mike Kestner <mkestner@speakeasy.net>

	* README : Some updates.
	* generator/BoxedGen.cs : Add FromNative method.
	* generator/CallbackGen.cs : Add FromNative method.
	* generator/EnumGen.cs : Add FromNative method.
	* generator/IGeneratable.cs : Add FromNative method.
	* generator/InterfaceGen.cs : Add FromNative method.
	* generator/ObjectGen.cs : Add FromNative method. Hook in GenMethod.
	* generator/StructBase.cs : Revamp param handling. Add GenMethod.
	* generator/StructGen.cs : Add FromNative method.
	* generator/SymbolTable.cs : Add FromNative method.
	* parser/gapi2xml.pl : Detect ctors before methods. Fix method names.
	* sample/HelloWorld.cs : uncomment the Show call.

svn path=/trunk/gtk-sharp/; revision=2277
2002-02-08 23:56:27 +00:00
Mike Kestner
d828b8ce59 2002-01-08 Mike Kestner <mkestner@speakeasy.net>
* generator/StructBase.cs (GenField): Return a bool success indicator.
	* generator/ObjectGen.cs : Check the return of GenField.
	* generator/SymbolTable.cs : More fixage to simple_types.
	* parser/gapi2xml.pl : Fix multiline comment bug, and callback name
	  hashing logic. Squash callbacks that aren't in the namespace.
	* sample/HelloWorld.cs : Clean out some debugging to make it closer to
	  compiling.  Not quite there yet.

svn path=/trunk/gtk-sharp/; revision=1948
2002-01-10 15:01:31 +00:00
Mike Kestner
dbadac1885 2002-01-08 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : Use name in QualName, not cname.
	* generator/EnumGen.cs : Use name in QualName, not cname.
	* generator/InterfaceGen.cs : Use name in QualName, not cname.
	* generator/StructBase.cs (GenField): gen as public.

svn path=/trunk/gtk-sharp/; revision=1920
2002-01-08 20:30:29 +00:00
Mike Kestner
a9581bd50b 2002-01-08 Mike Kestner <mkestner@speakeasy.net>
* generator/CallbackGen.cs : New stub for delegate generation.
	* generator/InterfaceGen.cs : New stub for interface generation.
	* generator/Parser.cs : Add the interface and callback element hooks.
	* generator/SymbolTable.cs : Additions to simple_types hash.

svn path=/trunk/gtk-sharp/; revision=1919
2002-01-08 20:05:47 +00:00