* generator/CodeGenerator.cs (Main): use new ObjectGen.GenerateMappers.
* generator/GenerationInfo.cs (Ctor): new (dir, assembly) ctor
* generator/ObjectGen.cs : move hash management to Generate from Ctor,
index it on dir, and make it hold new DirectoryInfo refs. Refactor
GenerateMapper. The object mappers are now assembly based instead of
namespace based.
svn path=/trunk/gtk-sharp/; revision=18681
* 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
* 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
* generator/ObjectGen.cs : gen GLib.Value ctor, not uint
* glib/Object.cs : use GLib.Type in RegisterGType and
make the g_object_new ctor use GLib.Type.
* glib/Type.cs : new thin wrapper for GValue type
* glib/*.cs : s/Type/System.Type
svn path=/trunk/gtk-sharp/; revision=11920
* 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
[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
* gtk/ScrolledWindow.custom: new file with ScrolledWindow custom
default constructor
* parser/Metadata.pm: addClassData subroutine to add
<disabledefaultconstructor/>
* parser/Gtk.metadata: disable default constructor for
ScrolledWindow
* generator/ObjectGen.cs: added hasDefaultConstructor flag, dont
generate default protected empty constructor if
hasDefaultConstructor is false, it will be provided by .custom
file
* generator/makefile (RUNTIME): use RUNTIME variable
svn path=/trunk/gtk-sharp/; revision=5854
* parser/Gnome.metadata, Gtk.metadata: More conflict
fixes.
* parser/build.pl: Fully qualify all lib names. (Gtk+ packages
are now LFS-compliant in Debian...)
* parser/gapi2xml.pl: Fix for whitespace in fields, defines,
and docs.
* generator/BoxedGen.cs: Remove extraneous CallByName definition,
add "override" keyword to FromNative.
(Generate): Generate methods after fields.
* generator/ClassBase.cs: Change CallByName, FromNative to virtual.
(.ctor): Ignore "hidden" nodes. Set container on signal.
(GenSignals, GenMethods): Add "implementor" argument for interface
use.
(Get(Method|Signal|Property)Recursively): Rework to correctly
recurse interfaces.
(Implements): Added.
* generator/Ctor.cs (Initialize): Move clash initialization completely
out of Generate, so we can check for collisions.
* generator/Method.cs (GenerateDeclCommon): Check for duplicates,
for "new" keyword.
(Generate): Add "implementor" argument.
* generator/ObjectGen.cs (Generate): Initialize ctor clashes on
this and all parents, before generating.
(Ctors, InitializeCtors): Added.
* generator/Signal.cs: Store the container_type, check for
collisions.
* generator/StructGen.cs: Add "override" keyword to overriden methods.
* gtk/FileSelection.custom (ActionArea): Add "new" keyword.
svn path=/trunk/gtk-sharp/; revision=5782
* ObjectGen.cs: Support static string elements. Do
not generate Ctors or Signals if it is not a GObject.
* parser/gapi2xml.pl: Add stock defines.
svn path=/trunk/gtk-sharp/; revision=5616
* 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
* glib/EnumWrapper.cs: New class which holds an enum int.
* glib/Value.cs: Add support for glib enum types. We needed
to use EnumWrapper for this because otherwise the int operator
wouldn't know which glib function to use.
* generator/BoxedGen.cs, ClassBase.cs, Ctor.cs, EnumGen.cs,
InterfaceGen.cs, Method.cs, ObjectGen.cs, Signal.cs, StructGen.cs:
Create more doc stubs.
* generator/Property.cs: Generate enum values correctly.
* generator/Ctor.cs: Refactor generation to honor metadata-specified
collision preference.
* parser/Gtk.metadata: Added constructor collision preferences to
all known clashes.
* parse/Gdk.metadata: Added (for Pixbuf clashes).
svn path=/trunk/gtk-sharp/; revision=5437
* generator/ClassBase.cs: Add accessors for methods and signals.
Change GenSignals and GenMethods to public, as csc has a different
idea of protected than mcs. Handle interface collisions in
GenMethods.
* generator/Method.cs: Add accessor Protection - "public" by default.
* generator/ObjectGen.cs: Make sure wrapper's Signals hashtable only
gets generated once. Generate a list of collisions for GenMethods.
Remove dead foreach loop from Validate.
* generator/Paramaters.cs (CreateSignature): Initialize last_param.
* parser/Gtk.metadata: Add property & event collision renames
for TextBuffer and OldEditable.
* sample/makefile.win32: Reference atk-sharp.dll.
* makefile.win32: Do not build gdk.imaging.
svn path=/trunk/gtk-sharp/; revision=5420
* 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
* 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
* generator/GenBase.cs: new method AppendCustom, moved from ObjectGen.
* generator/BoxedGen.cs, ObjectGen.cs, StructGen.cs:
Call AppendCustom in Generate ();
* generator/Method.cs, Parameters.cs: Add support for "out"
parameters. Additionally, output an accessor instead of a
regular method if it is an accessor-style function (ie GetStartIter).
* generator/Property.cs: Add additional cast to Boxed, if necessary.
* glue/textiter.c: New constructor for GtkTextIter.
* glue/Makefile.am: Add textiter.c, build with Gtk+ cflags.
* configure.in: Check for Gtk+ cflags.
* parser/Metadata.pm, Gtk.metadata: Added.
* parser/gapi2xml.pl: Call Metadata::fixup on the document.
Also work around gtk's screwy boxed type name registration
(GtkFoo -> GtkTypeFoo).
* gtk/TextIter.custom: Added.
svn path=/trunk/gtk-sharp/; revision=5205
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
* 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
* */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
* 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
* 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
* 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
* generator/Statistics.cs : New. Gathers stats about generation.
* generator/*.cs : Hook in the stat counters.
svn path=/trunk/gtk-sharp/; revision=2491
* 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
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
* 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
* 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
* 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
* 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
* 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
* */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