Commit Graph

22 Commits

Author SHA1 Message Date
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
Joe Shaw
ba6aa935d4 2002-05-08 Joe Shaw <joe@assbarn.com>
* generator/ObjectGen.cs (GenProperty): And uncomment it out because
	the compiler bug is fixed.

svn path=/trunk/gtk-sharp/; revision=4424
2002-05-08 18:33:05 +00:00
Joe Shaw
c6ed501d04 2002-05-08 Joe Shaw <joe@assbarn.com>
* generator/ObjectGen.cs (GenProperty): Comment the last checkin out
	because it exposes a compiler bug.
	(GenSignal): Back this change out.

svn path=/trunk/gtk-sharp/; revision=4421
2002-05-08 14:08:12 +00:00
Joe Shaw
3fec7ca60a 2002-05-08 Joe Shaw <joe@assbarn.com>
* */Makefile.in: Don't allow the shell to do file globbing; makes
	--recurse work.

	* generator/ObjectGen.cs (GenProperty): We need to cast a GLib.Value
	to a GLib.Object and then to whatever it is, because explicit casts
	don't work to child classes.
	(GenSignal): Append "EventHandler" when generating signal handlers
	so we don't get symbol conflicts.

svn path=/trunk/gtk-sharp/; revision=4414
2002-05-08 11:52:21 +00:00
Mike Kestner
6fbe8bcaf8 2002-05-06 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : When generating a ctor(void)
	  for subclassing purposes, mark it protected, not public.
	  Thanks to Miguel for reporting this bug.

svn path=/trunk/gtk-sharp/; revision=4335
2002-05-06 13:51:45 +00:00
Mike Kestner
9d0184d61c 2002-05-02 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : Add support for .custom files.
	* gtk/Window.custom : clean up build
	* sample/HelloWorld.cs : Use the customizations.
	* sample/ButtonApp.cs : Use the customizations.

svn path=/trunk/gtk-sharp/; revision=4237
2002-05-02 23:29:33 +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
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
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
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
61b1d1de13 2002-02-14 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : suppress generation of get/set methods when
	  properties exist. Mangle method names on signal name clashes.  Gen
	  the signals.
	* generator/SymbolTable.cs : Add GetName. Add some more calls to Trim.
	* generator/gtkapi.xml : adding binary file as an experiment.  If the
	  diff's show this file, I'll be removing it with apologies and going
	  back to the separate package idea.
	* parser/gapi2xml.pl : some signal related fixes.
	* sample/HelloWorld.cs : uncomment the event hook.

svn path=/trunk/gtk-sharp/; revision=2419
2002-02-15 01:08:57 +00:00
Mike Kestner
123557fb68 2002-02-10 Mike Kestner <mkestner@speakeasy.net>
* generator/BoxedGen.cs (FromNative): Add explicit cast.
	* generator/ObjectGen.cs (FromNative): Add explicit cast.
	(GenSignal): New.  Partial.  Not hooked in yet.
	* generator/StructBase.cs (GenMethod): return-type is a sub-element,
	  not an attribute.

svn path=/trunk/gtk-sharp/; revision=2304
2002-02-10 23:11:25 +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
e99a131e6a 2002-02-06 Mike Kestner <mkestner@speakeasy.net>
* generator/BoxedGen.cs : Marshal as IntPtr using Raw prop.
	* generator/ObjectGen.cs : Use Handle for marshaling.
	* generator/StructBase.cs (CallByName): Fill out the stub.
	(GetImportSig): Fill out the stub.
	* generator/StructGen.cs (MarshalType): Use QualifiedName.
	* generator/SymbolTable.cs (GetMarshalType): Trim type.
	(CallByName): New. Provides calling syntax.
	* sample/HelloWorld.cs : Make it compile.

svn path=/trunk/gtk-sharp/; revision=2253
2002-02-06 20:09:14 +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
2a29390caf 2002-01-17 Mike Kestner <mkestner@speakeasy.net>
* generator/BoxedGen.cs : Removed Name, CName, and QualifiedName.
	* generator/ObjectGen.cs : Removed Name, CName, and QualifiedName.
	* generator/StructBase.cs : Add Name, CName, and QualifiedName. Add
	  GenCtor method. Stub GetCallString, GetImportSig, and GetSignature
	  methods.
	* generator/StructGen.cs : Removed Name, CName, and QualifiedName.
	* generator/SymbolTable.cs : Add GetDllName method.
	* parser/gapi2xml.pl : Fix a couple <parameters> bugs.

svn path=/trunk/gtk-sharp/; revision=2030
2002-01-17 23:44:56 +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
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
e33710f1c3 2002-01-07 Mike Kestner <mkestner@speakeasy.net>
* generator/ObjectGen.cs : Make parent debug statement more helpful.
	* generator/Parser.cs : Add interface element case.
	* parser/gapi2xml.pl : Add interface types.
	* parser/gapi_pp.pl : Grab G_TYPE_INSTANCE_GET_INTERFACE defines. Grab
	  struct declarations out of private headers.

svn path=/trunk/gtk-sharp/; revision=1904
2002-01-07 23:30:01 +00:00
Mike Kestner
8648757e19 2002-01-06 Mike Kestner <mkestner@speakeasy.net>
* */makefile : Add atk to the build.
	* generator/EnumGen.cs : Create the generated dir if necessary.
	* generator/ObjectGen.cs : Create the generated dir if necessary.
	* generator/StructGen.cs : Create the generated dir if necessary.
	* parser/gapi2xml.pl : Squash bug in comma separated field defs.

svn path=/trunk/gtk-sharp/; revision=1882
2002-01-07 00:25:51 +00:00
Mike Kestner
ca64721a09 2002-01-06 Mike Kestner <mkestner@speakeasy.net>
* generator/EnumGen.cs : Open stream Create only.
	* generator/ObjectGen.cs : New generatable for GObject subclasses.
	* generator/Parser.cs : Add the object element hook.
	* generator/StructBase.cs : Handle bits element in GenField.
	* generator/StructGen.cs : Open stream Create only.
	* generator/SymbolTable.cs : Additions to simple_types hash.
	* parser/gapi2xml.pl : Parse bitflags into the bits element.

svn path=/trunk/gtk-sharp/; revision=1871
2002-01-06 13:33:25 +00:00